diff --git a/.config/aerc/accounts.conf b/.config/aerc/accounts.conf index 9ff3e83..9633b56 100644 --- a/.config/aerc/accounts.conf +++ b/.config/aerc/accounts.conf @@ -1,7 +1,6 @@ [bonsai] -source = imaps://brk%40bonsai.cool:panda@mail.bonsai.cool -outgoing = smtps://brk%40bonsai.cool:panda@mail.bonsai.cool +source = maildir://~/mail/bonsai/ +outgoing = /home/brk/bin/msmtpq default = INBOX from = Jovan Djokic-Sumarac -cache-headers = true copy-to = Sent diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini index 688672d..9264a52 100644 --- a/.config/foot/foot.ini +++ b/.config/foot/foot.ini @@ -8,7 +8,7 @@ # title=foot # locked-title=no -font = 0xProto Nerd Font:size=12,Noto Sans CJK JP:size=12 +font = 0xProto Nerd Font:size=12,FiraCode Nerd Font:size=12,Noto Sans CJK JP:size=12 # font-bold= # font-italic= diff --git a/.config/hypr/bak/decor.conf b/.config/hypr/bak/decor.conf deleted file mode 100755 index d51e21e..0000000 --- a/.config/hypr/bak/decor.conf +++ /dev/null @@ -1,31 +0,0 @@ - -decoration { - rounding=12 - multisample_edges=1 - - active_opacity=1 - inactive_opacity=1 - - blur=1 - blur_size=3 - blur_passes=1 - blur_new_optimizations = true - - drop_shadow=true - shadow_range=20 - shadow_render_power = 3 -} - - -bezier=slow,0,0.85,0.3,1 -bezier=overshot,0.7,0.6,0.1,1.1 - -animations { - enabled=1 - - bezier=overshot,0.13,0.99,0.29,1.1 - animation=windows,1,4,overshot,slide - animation=border,1,10,default - animation=fade,1,10,default - animation=workspaces,1,6,overshot,slide -} diff --git a/.config/hypr/bak/general.conf b/.config/hypr/bak/general.conf deleted file mode 100755 index 1367f43..0000000 --- a/.config/hypr/bak/general.conf +++ /dev/null @@ -1,44 +0,0 @@ - -input { - kb_layout=us,rs - kb_variant=,yz - kb_options=caps:escape,grp:menu_toggle - - follow_mouse=1 - - numlock_by_default=1 - repeat_rate=50 - repeat_delay=300 -} - -general { - sensitivity=2 - - gaps_in=10 - gaps_out=20 - - layout=master - - col.active_border = rgba(ee111166) rgba(11ee1166) rgba(1111ee66) 45deg - col.inactive_border = rgba(00000000) - border_size=3 - no_border_on_floating=true -} - - - -gestures { - workspace_swipe=true - workspace_swipe_fingers=3 - -} - - - -misc { - enable_swallow=1 - swallow_regex=^(alacritty)$ -} - - - diff --git a/.config/hypr/bak/keybinds.conf b/.config/hypr/bak/keybinds.conf deleted file mode 100755 index 7920eb0..0000000 --- a/.config/hypr/bak/keybinds.conf +++ /dev/null @@ -1,67 +0,0 @@ -# some nice mouse binds -bindm=SUPER,mouse:272,movewindow -bindm=SUPER,mouse:273,resizewindow - -# example binds -bind=SUPER,Return,exec,footclient -bind=SUPER,W,exec,chromium --ignore-gpu-blocklist --enable-gpu-rasterization --enable-zero-copy --ozone-platform-hint=auto -bind=SUPER,Escape,exec,powermenu-v -bind=SUPER,Q,killactive, -bind=SUPER,Space,fullscreen,1 -bind=SUPERSHIFT,Space,fullscreen,0 -bind=SUPERSHIFT,Q,exit, -bind=SUPER,E,exec,footclient --title nmtuiterm -e nmtuidelay -bind=SUPER,R,exec,footclient --title lfterm -e lf "$(cat .cache/lfdir)" -bind=SUPER,F,togglefloating, -bind=SUPER,D,exec,tmenu -bind=SUPERSHIFT,D,exec,tmenu -d - - -bind=SUPER,left,movefocus,l -bind=SUPER,right,movefocus,r -bind=SUPER,up,movefocus,u -bind=SUPER,down,movefocus,d - -bind=SUPER,1,workspace,1 -bind=SUPER,2,workspace,2 -bind=SUPER,3,workspace,3 -bind=SUPER,4,workspace,4 -bind=SUPER,5,workspace,5 -bind=SUPER,6,workspace,6 - -bind=SUPERSHIFT,1,movetoworkspace,1 -bind=SUPERSHIFT,2,movetoworkspace,2 -bind=SUPERSHIFT,3,movetoworkspace,3 -bind=SUPERSHIFT,4,movetoworkspace,4 -bind=SUPERSHIFT,5,movetoworkspace,5 -bind=SUPERSHIFT,6,movetoworkspace,6 - -bind=SUPER,mouse_down,workspace,e+1 -bind=SUPER,mouse_up,workspace,e-1 - -bind=SUPERSHIFT,R,forcerendererreload - - - -bind=SUPER,S,togglespecialworkspace -bind=SUPERSHIFT,S,movetoworkspace,special - - - - -bind=SUPER,Tab,cyclenext - - - -bind=,F4,exec,pamixer --toggle-mute -bind=,F2,exec,volctl --down -bind=,F3,exec,volctl --up -bind=,F7,exec,lightctl --down -bind=,F8,exec,lightctl --up - - - -bind=,XF86AudioPlay,exec,playerctl play-pause -bind=,XF86Audiostop,exec,playerctl stop -bind=,XF86AudioNext,exec,playerctl next -bind=,XF86AudioPrev,exec,playerctl previous diff --git a/.config/hypr/bak/layout.conf b/.config/hypr/bak/layout.conf deleted file mode 100755 index 76ade67..0000000 --- a/.config/hypr/bak/layout.conf +++ /dev/null @@ -1,3 +0,0 @@ -monitor=eDP-1,1920x1080@60,1920x0,1 -monitor=HDMI-A-1,1920x1080@165,0x0,1 -monitor=HDMI-A-1,transform,0 diff --git a/.config/hypr/bak/rules.conf b/.config/hypr/bak/rules.conf deleted file mode 100755 index 48a6efe..0000000 --- a/.config/hypr/bak/rules.conf +++ /dev/null @@ -1,6 +0,0 @@ -windowrule=float,title:^(pulsemixerterm)$ -windowrule=float,title:^(nmtuiterm)$ -windowrule=workspace special silent,title:^(scratchpad)$ -windowrule=workspace 2,class:^(chromium)$ -windowrule=workspace 6,class:^(ferdium)$ -windowrule=workspace 4,class:^(org.pwmt.zathura)$ diff --git a/.config/hypr/bak/startup.conf b/.config/hypr/bak/startup.conf deleted file mode 100755 index 3342aeb..0000000 --- a/.config/hypr/bak/startup.conf +++ /dev/null @@ -1,25 +0,0 @@ - -# WALLPAPER - -#exec-once=mpvpaper -vs -o "no-audio loop --speed=0.4" eDP-1 ~/.config/wall.webm -#exec-once=swaybg -m fill -i hdd/wallpapers/berk/berserker_armor_devouring.png - - -# STUFF - -exec-once=/usr/bin/polkit-dumb-agent -exec-once=hyprpaper -exec-once=salut -exec-once=mkfifo /tmp/wobpipe -exec-once=tail -f /tmp/wobpipe | wob - -exec-once=waybar -exec-once=tuf-tray - -exec-once=foot --server -# WM go brrr? - -exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - - -exec-once=rgb-borders diff --git a/.config/hypr/hhh b/.config/hypr/hhh deleted file mode 100644 index 1debae4..0000000 --- a/.config/hypr/hhh +++ /dev/null @@ -1,176 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Monitors/ -monitor = HDMI-A-1, 2560x1440@75, 0x0, 1,# transform,1 -monitor = DP-1, 1920x1080@165, 2560x0, 1 -monitor = eDP-1, 1920x1080@120, 3480x0, 1 - -# See https://wiki.hyprland.org/Configuring/Keywords/ for more - -# Execute your favorite apps at launch -# exec-once = waybar & hyprpaper & firefox - -# Source a file (multi-file configs) -# source = ~/.config/hypr/myColors.conf - -# Set programs that you use -$terminal = kitty -$fileManager = dolphin -$menu = wofi --show drun - -# Some default env vars. -env = XCURSOR_SIZE,24 -env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that - -# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ -input { - kb_layout = us - kb_variant = - kb_model = - kb_options = - kb_rules = - - follow_mouse = 1 - - touchpad { - natural_scroll = no - } - - sensitivity = 0 # -1.0 to 1.0, 0 means no modification. -} - -general { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - gaps_in = 5 - gaps_out = 20 - border_size = 2 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - col.inactive_border = rgba(595959aa) - - layout = dwindle - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false -} - -decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 10 - - blur { - enabled = true - size = 3 - passes = 1 - } - - drop_shadow = yes - shadow_range = 4 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) -} - -animations { - enabled = yes - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - animation = windows, 1, 7, myBezier - animation = windowsOut, 1, 7, default, popin 80% - animation = border, 1, 10, default - animation = borderangle, 1, 8, default - animation = fade, 1, 7, default - animation = workspaces, 1, 6, default -} - -dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this -} - -master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - new_is_master = true -} - -gestures { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - workspace_swipe = off -} - -misc { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers -} - -# Example per-device config -# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more -device { - name = epic-mouse-v1 - sensitivity = -0.5 -} - -# Example windowrule v1 -# windowrule = float, ^(kitty)$ -# Example windowrule v2 -# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. - - -# See https://wiki.hyprland.org/Configuring/Keywords/ for more -$mainMod = SUPER - -# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, Q, exec, $terminal -bind = $mainMod, C, killactive, -bind = $mainMod, M, exit, -bind = $mainMod, E, exec, $fileManager -bind = $mainMod, V, togglefloating, -bind = $mainMod, R, exec, $menu -bind = $mainMod, P, pseudo, # dwindle -bind = $mainMod, J, togglesplit, # dwindle - -# Move focus with mainMod + arrow keys -bind = $mainMod, left, movefocus, l -bind = $mainMod, right, movefocus, r -bind = $mainMod, up, movefocus, u -bind = $mainMod, down, movefocus, d - -# Switch workspaces with mainMod + [0-9] -bind = $mainMod, 1, workspace, 1 -bind = $mainMod, 2, workspace, 2 -bind = $mainMod, 3, workspace, 3 -bind = $mainMod, 4, workspace, 4 -bind = $mainMod, 5, workspace, 5 -bind = $mainMod, 6, workspace, 6 -bind = $mainMod, 7, workspace, 7 -bind = $mainMod, 8, workspace, 8 -bind = $mainMod, 9, workspace, 9 -bind = $mainMod, 0, workspace, 10 - -# Move active window to a workspace with mainMod + SHIFT + [0-9] -bind = $mainMod SHIFT, 1, movetoworkspace, 1 -bind = $mainMod SHIFT, 2, movetoworkspace, 2 -bind = $mainMod SHIFT, 3, movetoworkspace, 3 -bind = $mainMod SHIFT, 4, movetoworkspace, 4 -bind = $mainMod SHIFT, 5, movetoworkspace, 5 -bind = $mainMod SHIFT, 6, movetoworkspace, 6 -bind = $mainMod SHIFT, 7, movetoworkspace, 7 -bind = $mainMod SHIFT, 8, movetoworkspace, 8 -bind = $mainMod SHIFT, 9, movetoworkspace, 9 -bind = $mainMod SHIFT, 0, movetoworkspace, 10 - -# Example special workspace (scratchpad) -bind = $mainMod, S, togglespecialworkspace, magic -bind = $mainMod SHIFT, S, movetoworkspace, special:magic - -# Scroll through existing workspaces with mainMod + scroll -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow -bindm = $mainMod, mouse:273, resizewindow diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf index 913c6b5..1ee98e3 100755 --- a/.config/hypr/hypridle.conf +++ b/.config/hypr/hypridle.conf @@ -8,7 +8,7 @@ general { listener { timeout = 300 # in seconds - on-timeout = hyprlock # command to run when timeout has passed + on-timeout = syslock # command to run when timeout has passed on-resume = notify-send "Welcome back!" # command to run when activity is detected after timeout has fired. } diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 75775a7..e3e21a6 100755 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -4,28 +4,26 @@ # who cares? \ o Y o / # put the \ \__ __/ / # tranny on the '.__'-'__.' -# choping block ''' +# chopping block ''' -source = ~/.config/hypr/monitors.conf -source = ~/.config/hypr/general.conf -source = ~/.config/hypr/decoration.conf -source = ~/.config/hypr/rules.conf -source = ~/.config/hypr/keybinds.conf -source = ~/.config/hypr/workspaces.conf -source = ~/.config/hypr/env.conf +source = ~/.config/hypr/slices/monitors.conf +source = ~/.config/hypr/slices/general.conf +source = ~/.config/hypr/slices/decoration.conf +source = ~/.config/hypr/slices/rules.conf +source = ~/.config/hypr/slices/keybinds.conf +source = ~/.config/hypr/slices/workspaces.conf +source = ~/.config/hypr/slices/env.conf # STARTUP exec-once = dunst exec-once = foot --server -exec-once = avizo-service -exec-once = avizo-client +exec-once = syshud exec-once = waybar -exec-once = hyprpaper -exec-once = ~/bin/xdg-portal-hyprland -exec-once = wl-paste --watch cliphist store -exec-once = hypridle +# exec-once = wl-paste --watch cliphist store exec-once = wayland-pipewire-idle-inhibit +exec-once = hyprsunset -t 5000 exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = ~/bin/xdg-portal-hyprland diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf index b48c80f..973b1f4 100755 --- a/.config/hypr/hyprpaper.conf +++ b/.config/hypr/hyprpaper.conf @@ -1,7 +1,5 @@ -preload = /home/brk/pics/guts_stars.jpg +preload = /home/brk/pics/lll/japan_sunset.png -wallpaper = eDP-1,/home/brk/pics/guts_stars.jpg -wallpaper = DP-1,/home/brk/pics/guts_stars.jpg -wallpaper = HDMI-A-1,/home/brk/pics/guts_stars.jpg +wallpaper = ,/home/brk/pics/lll/japan_sunset.png ipc = off diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf deleted file mode 100644 index 2c8f085..0000000 --- a/.config/hypr/monitors.conf +++ /dev/null @@ -1,23 +0,0 @@ -# MONITOR LAYOUT -# -# monitor = HDMI-A-1, 2560x1440@75, 0x0, 1.0, bitdepth, 10 -# monitor = DP-1, disabled -# monitor = eDP-1, disabled -# - -# monitor=HDMI-A-1,2560x1440@75,1920x0,1.0,bitdepth,10 -# monitor=eDP-1,1920x1080@120,0x0,1.0,bitdepth,10 -# monitor=DP-1,1920x1080@165,4480x0,1.0,bitdepth,10 - -# monitor = eDP-1, 1920x1080@120, 0x0, 1.0, bitdepth, 10 -# monitor = HDMI-A-1, 2560x1440@75, 1920x0, 1.0 -# monitor = DP-1, 1920x1080@165, 4480x0, 1.0, bitdepth, 10 - -monitor = eDP-1, disabled -monitor = HDMI-A-1, 2560x1440@75, 0x0, 1.0 -monitor = DP-1, 1920x1080@165, 2560x0, 1.0, bitdepth, 10 - -#monitor = HDMI-A-1, disabled # 1920x1080@60, 0x0, 1 -#monitor = eDP-1, disabled -#monitor = HDMI-A-1, 3840x2160@60, 0x0, 1 -#monitor = eDP-1, 1920x1080@120, 3840x0, 1 diff --git a/.config/hypr/rules.conf b/.config/hypr/rules.conf deleted file mode 100644 index 4baf46d..0000000 --- a/.config/hypr/rules.conf +++ /dev/null @@ -1,62 +0,0 @@ -# RULES - - -windowrule=float,title:^(iwgtk)$ -windowrule=center,title:^(iwgtk)$ -windowrule=size 45% 60%,title:^(iwgtk)$ - - -windowrule=float,title:^(Torrent Options)$ -windowrule=center,title:^(Torrent Options)$ -windowrule=size 45% 60%,title:^(Torrent Options)$ - - -windowrule=float,title:^(Picture-in-Picture)$ -windowrule=center,title:^(Picture-in-Picture)$ -windowrule=size 60% 60%,title:^(Picture-in-Picture)$ - -windowrule=float,title:^(connterm)$ -windowrule=center,title:^(connterm)$ -windowrule=size 45% 60%,title:^(connterm)$ - - -windowrule=float,title:^(blueterm)$ -windowrule=center,title:^(blueterm)$ -windowrule=size 45% 60%,title:^(blueterm)$ - - -windowrule=float,title:^(btoppy)$ -windowrule=center,title:^(btoppy)$ -windowrule=size 75% 65%,title:^(btoppy)$ - -windowrule=float,class:^(steam)$ -windowrule=center,class:^(steam)$ -windowrule=size 95% 90%,class:^(steam)$ - -windowrule=float,title:^(pavucontrol)$ -windowrule=center,title:^(pavucontrol)$ -windowrule=size 30% 60%,title:^(pavucontrol)$ - -windowrule=workspace special silent,title:^(scratchpad)$ - - - - -windowrule = float, file_progress -windowrule = float, confirm -windowrule = float, dialog -windowrule = float, download -windowrule = float, notification -windowrule = float, error -windowrule = float, splash -windowrule = float, confirmreset -windowrule = float, title:Open File -windowrule = float, title:branchdialog -windowrule = float, Lxappearance -windowrule = float, Rofi -windowrule = float, pavucontrol -windowrule = animation none,Rofi - -layerrule = blur, fuzzel -layerrule = blur, waybar -layerrule = blur, avizo diff --git a/.config/hypr/sb1.conf b/.config/hypr/sb1.conf deleted file mode 100755 index 97274db..0000000 --- a/.config/hypr/sb1.conf +++ /dev/null @@ -1,21 +0,0 @@ -bind=SUPER,1,workspace,1 -bind=SUPER,2,workspace,2 -bind=SUPER,3,workspace,3 -bind=SUPER,4,workspace,4 -bind=SUPER,5,workspace,5 -bind=SUPER,6,workspace,6 -bind=SUPER,7,workspace,7 -bind=SUPER,8,workspace,8 -bind=SUPER,9,workspace,9 -bind=SUPER,0,workspace,10 -bind=SUPERSHIFT,1,movetoworkspace,1 -bind=SUPERSHIFT,2,movetoworkspace,2 -bind=SUPERSHIFT,3,movetoworkspace,3 -bind=SUPERSHIFT,4,movetoworkspace,4 -bind=SUPERSHIFT,5,movetoworkspace,5 -bind=SUPERSHIFT,6,movetoworkspace,6 -bind=SUPERSHIFT,7,movetoworkspace,7 -bind=SUPERSHIFT,8,movetoworkspace,8 -bind=SUPERSHIFT,9,movetoworkspace,9 -bind=SUPERSHIFT,0,movetoworkspace,10 - diff --git a/.config/hypr/sb2.conf b/.config/hypr/sb2.conf deleted file mode 100755 index 5e3b0e7..0000000 --- a/.config/hypr/sb2.conf +++ /dev/null @@ -1,20 +0,0 @@ -bind=SUPER,1,split-workspace,1 -bind=SUPER,2,split-workspace,2 -bind=SUPER,3,split-workspace,3 -bind=SUPER,4,split-workspace,4 -bind=SUPER,5,split-workspace,5 -bind=SUPER,6,split-workspace,6 -bind=SUPER,7,split-workspace,7 -bind=SUPER,8,split-workspace,8 -bind=SUPER,9,split-workspace,9 -bind=SUPER,0,split-workspace,10 -bind=SUPERSHIFT,1,split-movetoworkspace,1 -bind=SUPERSHIFT,2,split-movetoworkspace,2 -bind=SUPERSHIFT,3,split-movetoworkspace,3 -bind=SUPERSHIFT,4,split-movetoworkspace,4 -bind=SUPERSHIFT,5,split-movetoworkspace,5 -bind=SUPERSHIFT,6,split-movetoworkspace,6 -bind=SUPERSHIFT,7,split-movetoworkspace,7 -bind=SUPERSHIFT,8,split-movetoworkspace,8 -bind=SUPERSHIFT,9,split-movetoworkspace,9 -bind=SUPERSHIFT,0,split-movetoworkspace,10 diff --git a/.config/hypr/decoration.conf b/.config/hypr/slices/decoration.conf similarity index 77% rename from .config/hypr/decoration.conf rename to .config/hypr/slices/decoration.conf index 13c5333..6f3c922 100644 --- a/.config/hypr/decoration.conf +++ b/.config/hypr/slices/decoration.conf @@ -1,16 +1,8 @@ # DECORATION decoration { - - active_opacity = 1 - inactive_opacity = 1 - rounding = 0 - blur { - enabled = false - new_optimizations = true - xray = false - passes = 3 + enabled = false } } diff --git a/.config/hypr/env.conf b/.config/hypr/slices/env.conf similarity index 79% rename from .config/hypr/env.conf rename to .config/hypr/slices/env.conf index 884e1b3..3b21fae 100644 --- a/.config/hypr/env.conf +++ b/.config/hypr/slices/env.conf @@ -1,7 +1,7 @@ env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_SESSION_TYPE, wayland env = XDG_SESSION_DESKTOP, Hyprland -exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +# exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP env = LIBVA_DRIVER_NAME, nvidia env = __GLX_VENDOR_LIBRARY_NAME, nvidia @@ -28,3 +28,8 @@ env = BROWSER, chromium env = TERM, footclient env = EDITOR, nvim env = _JAVA_AWT_WM_NONREPARENTING, 1 + +env = NVD_BACKEND, direct +env = ELECTRON_OZONE_PLATFORM_HINT, wayland + +env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 diff --git a/.config/hypr/general.conf b/.config/hypr/slices/general.conf similarity index 63% rename from .config/hypr/general.conf rename to .config/hypr/slices/general.conf index 94f28a5..26be807 100644 --- a/.config/hypr/general.conf +++ b/.config/hypr/slices/general.conf @@ -4,7 +4,7 @@ input { kb_layout = us,rs kb_variant = ,yz - kb_options = caps:escape,grp:menu_toggle + kb_options = caps:escape,grp:win_space_toggle follow_mouse = 1 @@ -21,24 +21,31 @@ input { tap-and-drag = true disable_while_typing = true } +} - +$LAPTOP_KB_ENABLED = true +device { + name = at-translated-set-2-keyboard + enabled = $LAPTOP_KB_ENABLED } cursor { - allow_dumb_copy = true + use_cpu_buffer = true } general { col.inactive_border = 0xff45475a col.active_border = rgba(cba6f7ff) rgba(89b4faff) rgba(94e2d5ff) 10deg - gaps_in = 7 - gaps_out = 15 + gaps_out = 14 layout = dwindle border_size = 0 + resize_on_border = true + + no_border_on_floating = true + allow_tearing = false } @@ -49,20 +56,14 @@ gestures { misc { - vfr = true vrr = 1 - swallow_regex = ^(kitty)$ + swallow_regex = ^(Alacritty|kitty|footclient|com.mitchellh.ghostty)$ enable_swallow = 1 disable_hyprland_logo = true } - - -master { - no_gaps_when_only = false +xwayland { + enabled = true } -dwindle { - no_gaps_when_only = false -} diff --git a/.config/hypr/keybinds.conf b/.config/hypr/slices/keybinds.conf similarity index 65% rename from .config/hypr/keybinds.conf rename to .config/hypr/slices/keybinds.conf index 2b016ec..4e7ee3f 100644 --- a/.config/hypr/keybinds.conf +++ b/.config/hypr/slices/keybinds.conf @@ -1,25 +1,25 @@ # KEYBINDS - -bind = SUPER, N, exec, neovide -- -c "Telescope oldfiles" +$terminal = footclient +$browser = brave bind = SUPER, Q, killactive -bind = SUPER, Space, fullscreen, 1 -bind = SUPERSHIFT, Space, fullscreen, 0 +bind = CTRL, Space, fullscreen, 1 +bind = CTRLSHIFT, Space, fullscreen, 0 bind = SUPERSHIFT, Q, exit -bind = SUPER, F, fakefullscreen bind = SUPERSHIFT, F, togglefloating -bind = SUPER, Return, exec, footclient -bind = SUPER, W, exec, firefox-nightly -bind = SUPER, R, exec, footclient -e yazi +bind = SUPER, Return, exec, $terminal +bind = SUPER, W, exec, $browser +bind = SUPER, R, exec, $terminal -e yazi bind = SUPER, D, exec, fuzzel -bind = SUPER, L, exec, hyprlock bind = SUPER, V, exec, clippy bind = SUPER, B, exec, killall -SIGUSR1 waybar bind = SUPERSHIFT, B, exec, killall -SIGUSR2 waybar -bind = CTRLSHIFT, Escape, exec, footclient --title btoppy -e btop +bind = CTRLSHIFT, Escape, exec, $terminal --title=btoppy -e btop +bind = SUPER, P, exec, $terminal --title=pulsemixer -e pulsemixer +bind = SUPER, End, exec, syspower bind = SUPER, E, exec, iwgtk bind = SUPER, C, exec, /usr/bin/discord --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform=wayland -bind = SUPERSHIFT, E, exec, footclient --title blueterm -e bluetuith +bind = SUPERSHIFT, E, exec, $terminal --title=blueterm -e bluetuith bind = SUPER, S, exec, grimblast copy area @@ -31,10 +31,10 @@ bind = SUPERCTRL, 2, focusmonitor, HDMI-A-1 bind = SUPERCTRL, 3, focusmonitor, DP-1 -bind=SUPER,h,movefocus,l -bind=SUPER,l,movefocus,r -bind=SUPER,k,movefocus,u -bind=SUPER,j,movefocus,d +bind = SUPER, H, movefocus, l +bind = SUPER, L, movefocus, r +bind = SUPER, K, movefocus, u +bind = SUPER, , movefocus, d diff --git a/.config/hypr/slices/monitors.conf b/.config/hypr/slices/monitors.conf new file mode 100644 index 0000000..65594c2 --- /dev/null +++ b/.config/hypr/slices/monitors.conf @@ -0,0 +1,19 @@ +# MONITOR LAYOUT + +bindl = , switch:on:[Lid Switch], exec, hyprctl keyword monitor "eDP-1, disable" +bindl = , switch:off:[Lid Switch], exec, hyprctl keyword monitor "eDP-1, preffered, auto, 1" + +# ON OFF OFF +# monitor = eDP-1, preffered, auto, 1 +# monitor = HDMI-A-1, disabled +# monitor = DP-1, disabled + +# ON ON ON +monitor = HDMI-A-1, 2560x1440@75, 0x0, 1 +monitor = eDP-1, preffered, auto-left, 1 +monitor = DP-1, 1920x1080@165, auto-right, 1 + +# OFF ON ON +# monitor = eDP-1, disabled +# monitor = HDMI-A-1, 2560x1440@75, auto, 1 +# monitor = DP-1, 1920x1080@165, auto-right, 1 diff --git a/.config/hypr/slices/rules.conf b/.config/hypr/slices/rules.conf new file mode 100644 index 0000000..e4ed89a --- /dev/null +++ b/.config/hypr/slices/rules.conf @@ -0,0 +1,67 @@ +# RULES + + +windowrulev2=float,title:iwgtk +windowrulev2=center,title:iwgtk +windowrulev2=size 45% 60%,title:iwgtk + + +windowrulev2=float, title:pulsemixer +windowrulev2=center, title:pulsemixer +windowrulev2=size 45% 60%, title:pulsemixer + + +windowrulev2=float,title:Torrent Options +windowrulev2=center,title:Torrent Options +windowrulev2=size 45% 60%,title:Torrent Options + + +windowrulev2=float,title:Picture-in-Picture +windowrulev2=center,title:Picture-in-Picture +windowrulev2=size 60% 60%,title:Picture-in-Picture + +windowrulev2=float,title:connterm +windowrulev2=center,title:connterm +windowrulev2=size 45% 60%,title:connterm + + +windowrulev2=float,title:blueterm +windowrulev2=center,title:blueterm +windowrulev2=size 45% 60%,title:blueterm + + +windowrulev2=float,title:btoppy +windowrulev2=center,title:btoppy +windowrulev2=size 75% 65%,title:btoppy + +windowrulev2=float,class:steam +windowrulev2=center,class:steam +windowrulev2=size 95% 90%,class:steam + +windowrulev2=float,title:pavucontrol +windowrulev2=center,title:pavucontrol +windowrulev2=size 30% 60%,title:pavucontrol + +windowrulev2=workspace special silent,title:scratchpad + + + + +windowrule = float, file_progress +windowrule = float, confirm +windowrule = float, dialog +windowrule = float, download +windowrule = float, notification +windowrule = float, error +windowrule = float, splash +windowrule = float, confirmreset +windowrule = float, title:Open File +windowrule = float, title:branchdialog +windowrule = float, Lxappearance +windowrule = float, Rofi +windowrule = float, pavucontrol +windowrule = animation none,Rofi + +layerrule = blur, fuzzel +layerrule = blur, waybar +layerrule = blur, avizo diff --git a/.config/hypr/workspaces.conf b/.config/hypr/slices/workspaces.conf similarity index 87% rename from .config/hypr/workspaces.conf rename to .config/hypr/slices/workspaces.conf index ea9e9b8..805a0b6 100644 --- a/.config/hypr/workspaces.conf +++ b/.config/hypr/slices/workspaces.conf @@ -1,5 +1,12 @@ # Workspace stuff +workspace = w[tv1], gapsout:0, gapsin:0 +workspace = f[1], gapsout:0, gapsin:0 +windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] +windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] +windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] +windowrulev2 = rounding 0, floating:0, onworkspace:f[1] + # workspace = 1, monitor:HDMI-1-A, default:true # workspace = 2, monitor:HDMI-1-A diff --git a/.config/hypr/split-binds.conf b/.config/hypr/split-binds.conf deleted file mode 100755 index 97274db..0000000 --- a/.config/hypr/split-binds.conf +++ /dev/null @@ -1,21 +0,0 @@ -bind=SUPER,1,workspace,1 -bind=SUPER,2,workspace,2 -bind=SUPER,3,workspace,3 -bind=SUPER,4,workspace,4 -bind=SUPER,5,workspace,5 -bind=SUPER,6,workspace,6 -bind=SUPER,7,workspace,7 -bind=SUPER,8,workspace,8 -bind=SUPER,9,workspace,9 -bind=SUPER,0,workspace,10 -bind=SUPERSHIFT,1,movetoworkspace,1 -bind=SUPERSHIFT,2,movetoworkspace,2 -bind=SUPERSHIFT,3,movetoworkspace,3 -bind=SUPERSHIFT,4,movetoworkspace,4 -bind=SUPERSHIFT,5,movetoworkspace,5 -bind=SUPERSHIFT,6,movetoworkspace,6 -bind=SUPERSHIFT,7,movetoworkspace,7 -bind=SUPERSHIFT,8,movetoworkspace,8 -bind=SUPERSHIFT,9,movetoworkspace,9 -bind=SUPERSHIFT,0,movetoworkspace,10 - diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf index 8b8dbff..23b4ce1 100755 --- a/.config/mpv/mpv.conf +++ b/.config/mpv/mpv.conf @@ -1,5 +1,6 @@ # vim: syntax=config - +sub-auto=fuzzy +sub-file-paths=** ########### # General # @@ -17,7 +18,7 @@ use-filedir-conf # look for additional config files in th autofit-larger=100%x95% # resize window in case it's larger than W%xH% of the screen cursor-autohide-fs-only # don't autohide the cursor in window mode, only fullscreen input-media-keys=no # enable/disable OSX media keys -cursor-autohide=yes +cursor-autohide=1 force-seekable=yes screenshot-format=png @@ -41,9 +42,9 @@ ytdl-format=bestvideo[height<=?1080][fps<=?30][vcodec!=?vp9][protocol!=http_dash # Cache # ######### -cache=no -demuxer-max-bytes=3GiB -demuxer-max-back-bytes=2GiB +cache=yes +demuxer-max-bytes=1GiB +demuxer-max-back-bytes=1GiB ############# @@ -51,7 +52,7 @@ demuxer-max-back-bytes=2GiB ############# osd-level=1 # enable osd and display --osd-status-msg on interaction -osd-duration=2500 # hide the osd after x ms +osd-duration=250 # hide the osd after x ms osd-status-msg='${time-pos} / ${duration}${?percent-pos: (${percent-pos}%)}${?frame-drop-count:${!frame-drop-count==0: Dropped: ${frame-drop-count}}}\n${?chapter:Chapter: ${chapter}}' osd-font='Source Sans Pro' @@ -81,7 +82,7 @@ sub-file-paths-append=subtitles embeddedfonts=yes # use embedded fonts for SSA/ASS subs sub-fix-timing=no # do not try to fix gaps (which might make it worse in some cases) -sub-ass-force-style=Kerning=yes # allows you to override style parameters of ASS scripts +sub-ass-style-overrides=Kerning=yes # allows you to override style parameters of ASS scripts sub-use-margins sub-ass-force-margins @@ -129,7 +130,7 @@ tscale=oversample # [sharp] oversample <-> linear (triangle # "yes" is currently bugged: https://github.com/mpv-player/mpv/issues/4988 #icc-profile-auto #icc-force-contrast=1000 # silence some warning because the profile is bad -hwdec=no +hwdec=yes [high-quality] profile-desc=cond:is_high(get('width', 0), get('height', 0), get('estimated-vf-fps', 0)) diff --git a/.config/mpv/scripts/fuzzydir.lua b/.config/mpv/scripts/fuzzydir.lua new file mode 100644 index 0000000..b3f2fa9 --- /dev/null +++ b/.config/mpv/scripts/fuzzydir.lua @@ -0,0 +1,280 @@ +--[[ + fuzzydir / by sibwaf / https://github.com/sibwaf/mpv-scripts + + Allows using "**" wildcards in sub-file-paths and audio-file-paths + so you don't have to specify all the possible directory names. + + Basically, allows you to do this and never have the need to edit any paths ever again: + audio-file-paths = ** + sub-file-paths = ** + + MIT license - do whatever you want, but I'm not responsible for any possible problems. + Please keep the URL to the original repository. Thanks! +]] + +--[[ + Configuration: + + # enabled + + Determines whether the script is enabled or not + + # max_search_depth + + Determines the max depth of recursive search, should be >= 1 + + Examples for "sub-file-paths = **": + "max_search_depth = 1" => mpv will be able to find [xyz.ass, subs/xyz.ass] + "max_search_depth = 2" => mpv will be able to find [xyz.ass, subs/xyz.ass, subs/moresubs/xyz.ass] + + Please be careful when setting this value too high as it can result in awful performance or even stack overflow + + + # discovery_threshold + + fuzzydir will skip paths which contain more than discovery_threshold directories in them + + This is done to keep at least some garbage from getting into *-file-paths properties in case of big collections: + - dir1 <- will be ignored on opening video.mp4 as it's probably unrelated to the file + - ... + - dir999 <- will be ignored + - video.mp4 + + Use 0 to disable this behavior completely + + + # use_powershell + + fuzzydir will use PowerShell to traverse directories when it's available + + Can be faster in some cases, but can also be significantly slower +]] + +local msg = require 'mp.msg' +local utils = require 'mp.utils' +local options = require 'mp.options' + +o = { + enabled = true, + max_search_depth = 3, + discovery_threshold = 10, + use_powershell = false, +} +options.read_options(o, _, function() end) + +---------- + +local default_audio_paths = mp.get_property_native("options/audio-file-paths") +local default_sub_paths = mp.get_property_native("options/sub-file-paths") + +function foreach(list, action) + for _, item in pairs(list) do + action(item) + end +end + +function starts_with(str, prefix) + return string.sub(str, 1, string.len(prefix)) == prefix +end + +function ends_with(str, suffix) + return suffix == "" or string.sub(str, -string.len(suffix)) == suffix +end + +function add_all(to, from) + for index, element in pairs(from) do + table.insert(to, element) + end +end + +function contains(t, e) + for index, element in pairs(t) do + if element == e then + return true + end + end + return false +end + +function normalize(path) + if path == "." then + return "" + end + + if starts_with(path, "./") or starts_with(path, ".\\") then + path = string.sub(path, 3, -1) + end + if ends_with(path, "/") or ends_with(path, "\\") then + path = string.sub(path, 1, -2) + end + + return path +end + +function call_command(command) + local command_string = "" + for _, part in pairs(command) do + command_string = command_string .. part .. " " + end + + msg.trace("Calling external command:", command_string) + + local process = mp.command_native({ + name = "subprocess", + playback_only = false, + capture_stdout = true, + capture_stderr = true, + args = command, + }) + + if process.status ~= 0 then + msg.verbose("External command failed with status " .. process.status .. ": " .. command_string) + if process.stderr ~= "" then + msg.debug(process.stderr) + end + + return nil + end + + local result = {} + for line in string.gmatch(process.stdout, "([^\r\n]+)") do + table.insert(result, line) + end + return result +end + +-- Platform-dependent optimization + +local powershell_version = nil +if o.use_powershell then + powershell_version = call_command({ + "powershell", + "-NoProfile", + "-Command", + "$Host.Version.Major", + }) +end +if powershell_version ~= nil then + powershell_version = tonumber(powershell_version[1]) +end +if powershell_version == nil then + powershell_version = -1 +end +msg.debug("PowerShell version", powershell_version) + +function fast_readdir(path) + if powershell_version >= 3 then + msg.trace("Scanning", path, "with PowerShell") + result = call_command({ + "powershell", + "-NoProfile", + "-Command", + [[ + $dirs = Get-ChildItem -LiteralPath ]] .. string.format("%q", path) .. [[ -Directory + foreach($dir in $dirs) { + $u8clip = [System.Text.Encoding]::UTF8.GetBytes($dir.Name) + [Console]::OpenStandardOutput().Write($u8clip, 0, $u8clip.Length) + Write-Host "" + } ]], + }) + msg.trace("Finished scanning", path, "with PowerShell") + return result + end + + msg.trace("Scanning", path, "with default readdir") + result = utils.readdir(path, "dirs") + msg.trace("Finished scanning", path, "with default readdir") + return result +end + +-- Platform-dependent optimization end + +function traverse(search_path, current_path, level, cache) + local full_path = utils.join_path(search_path, current_path) + + if level > o.max_search_depth then + msg.trace("Traversed too deep, skipping scan for", full_path) + return {} + end + + if cache[full_path] ~= nil then + msg.trace("Returning from cache for", full_path) + return cache[full_path] + end + + local result = {} + + local discovered_paths = fast_readdir(full_path) + if discovered_paths == nil then + -- noop + msg.debug("Unable to scan " .. full_path .. ", skipping") + elseif o.discovery_threshold > 0 and #discovered_paths > o.discovery_threshold then + -- noop + msg.debug("Too many directories in " .. full_path .. ", skipping") + else + for _, discovered_path in pairs(discovered_paths) do + local new_path = utils.join_path(current_path, discovered_path) + + table.insert(result, new_path) + add_all(result, traverse(search_path, new_path, level + 1, cache)) + end + end + + cache[full_path] = result + + return result +end + +function explode(raw_paths, search_path, cache) + local result = {} + for _, raw_path in pairs(raw_paths) do + local parent, leftover = utils.split_path(raw_path) + if leftover == "**" then + msg.trace("Expanding wildcard for", raw_path) + table.insert(result, parent) + add_all(result, traverse(search_path, parent, 1, cache)) + else + msg.trace("Path", raw_path, "doesn't have a wildcard, keeping as-is") + table.insert(result, raw_path) + end + end + + local normalized = {} + for index, path in pairs(result) do + local normalized_path = normalize(path) + if not contains(normalized, normalized_path) and normalized_path ~= "" then + table.insert(normalized, normalized_path) + end + end + + return normalized +end + +function explode_all() + if not o.enabled then return end + msg.debug("max_search_depth = ".. o.max_search_depth .. ", discovery_threshold = " .. o.discovery_threshold) + + local video_path = mp.get_property("path") + local search_path, _ = utils.split_path(video_path) + msg.debug("search_path = " .. search_path) + + local cache = {} + + foreach(default_audio_paths, function(it) msg.debug("audio-file-paths:", it) end) + local audio_paths = explode(default_audio_paths, search_path, cache) + foreach(audio_paths, function(it) msg.debug("Adding to audio-file-paths:", it) end) + mp.set_property_native("options/audio-file-paths", audio_paths) + + msg.verbose("Done expanding audio-file-paths") + + foreach(default_sub_paths, function(it) msg.debug("sub-file-paths:", it) end) + local sub_paths = explode(default_sub_paths, search_path, cache) + foreach(sub_paths, function(it) msg.debug("Adding to sub-file-paths:", it) end) + mp.set_property_native("options/sub-file-paths", sub_paths) + + msg.verbose("Done expanding sub-file-paths") + + msg.debug("Done expanding paths") +end + +mp.add_hook("on_load", 50, explode_all) diff --git a/.config/mpv/scripts/sub-fonts-dir-auto.lua b/.config/mpv/scripts/sub-fonts-dir-auto.lua new file mode 100644 index 0000000..95d5d28 --- /dev/null +++ b/.config/mpv/scripts/sub-fonts-dir-auto.lua @@ -0,0 +1,124 @@ +--[[ + + Automatically look for a fonts directory to use with `sub-fonts-dir`. + + This mpv Lua script will automatically use the `sub-fonts-dir` option (to + override the default `~~/fonts` location) if it find a `Fonts` directory + alongside the currently playing file. (The name of the directory is + matched case-insensitively.) + + **NOTE:** The `sub-fonts-dir` option has been submitted as part of [PR + #9856](https://github.com/mpv-player/mpv/pull/9856). Until it is merged + upstream, you will have to download and compile the [mpv + source](https://github.com/mpv-player/mpv) yourself. + + + USAGE: + + Simply drop this script in your scripts configuration directory (usually + `~/.config/mpv/scripts/`). + + + REQUIREMENTS: + + This script requires a version of mpv that includes the `sub-fonts-dir` + option. + + + NOTES: + + - Any `--sub-fonts-dir` option passed on the command-line will override + this script. + + - When going through a playlist, `sub-fonts-dir` will be dynamically + updated for each individual file. + + - This script will output some additional information on higher verbosity + levels (`-v`). To increase the verbosity for this script only, use + `--msg-level=sub_fonts_dir_auto=v` (or `=debug` for more output). + + + AUTHOR: + + Frédéric Brière (fbriere@fbriere.net) + + Licensed under the GNU General Public License, version 2 or later. + +--]] + + +local utils = require 'mp.utils' +local msg = require 'mp.msg' +-- msg.trace() was added in 0.28.0 -- define it ourselves if it's missing +if msg.trace == nil then + msg.trace = function(...) return mp.log("trace", ...) end +end + + +-- Directory name we are looking for (case-insensitive) +local FONTS_DIR_NAME = "Fonts" +-- Option name that we want to set +local OPTION_NAME = "sub-fonts-dir" +-- Make sure this option is available in this version of mpv +do + local _, err = mp.get_property(OPTION_NAME) + if err then + msg.error(string.format("This version of mpv does not support the %s option", OPTION_NAME)) + return + end +end + + +-- Whether a path is a directory +local function isdir(path) + return utils.readdir(path .. "/.") ~= nil +end + +-- Set an option's value for this file, without overriding the command-line +local function set_option(name, value) + if not mp.get_property_bool(string.format("option-info/%s/set-from-commandline", name)) then + msg.verbose(string.format("Setting %s to %q", name, value)) + mp.set_property(string.format("file-local-options/%s", name), value) + else + msg.debug(string.format("Option %s was set on command-line -- leaving it as-is", name)) + end +end + +-- Find a "Fonts" directory under a single path +local function find_fonts_dir(path) + local entries = utils.readdir(path, "dirs") + if entries == nil then + -- mpv will throw an error message soon enough, no need to intervene + return + end + msg.trace(string.format("Iterating over directories under %q", path)) + for _, entry in ipairs(entries) do + msg.trace("Candidate directory:", entry) + if entry:lower() == FONTS_DIR_NAME:lower() then + msg.trace("Match found") + return utils.join_path(path, entry) + end + end + msg.trace("No match found") +end + +-- "on_load" hook callback for when a file is about to be loaded. +local function on_load() + local path = mp.get_property("path") + if isdir(path) then + msg.debug("Playing 'file' is actually a directory -- skipping") + return + end + + local path_dir = utils.split_path(path) + -- Cosmetic nitpicking: That trailing "/" just looks annoying to me + path_dir = path_dir:gsub("(.)/+$", "%1") + + msg.debug(string.format("Searching %q for fonts directory", path_dir)) + local fonts_dir = find_fonts_dir(path_dir) + if fonts_dir then + msg.debug("Found fonts directory:", fonts_dir) + set_option(OPTION_NAME, fonts_dir) + end +end +mp.add_hook("on_load", 50, on_load) diff --git a/.config/msmtp/config b/.config/msmtp/config new file mode 100644 index 0000000..5fbce83 --- /dev/null +++ b/.config/msmtp/config @@ -0,0 +1,12 @@ +defaults +tls on + +account brk +auth on +host mail.bonsai.cool +port 587 +user brk +from brk@bonsai.cool +passwordeval gopass show -o bonsai/mail + +account default: brk diff --git a/.config/nvim b/.config/nvim index ca0d4fa..1776bc8 160000 --- a/.config/nvim +++ b/.config/nvim @@ -1 +1 @@ -Subproject commit ca0d4faec420a99de6141fccbdcad0ecc085d1ff +Subproject commit 1776bc8edcc5cc6da250133e9153d1229f75d610 diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml index 0a7ea69..99c44d5 100644 --- a/.config/qutebrowser/autoconfig.yml +++ b/.config/qutebrowser/autoconfig.yml @@ -11,6 +11,7 @@ settings: colors.webpage.darkmode.enabled: global: false content.notifications.enabled: + https://www.facebook.com: true https://www.netflix.com: true content.register_protocol_handler: https://mail.proton.me#mailto=%25s: true diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py index d056c26..862f1a8 100644 --- a/.config/qutebrowser/config.py +++ b/.config/qutebrowser/config.py @@ -193,8 +193,8 @@ c.tabs.show = 'multiple' # Setting default page for when opening new tabs or new windows with # commands like :open -t and :open -w . -c.url.default_page = 'google.com' -c.url.start_pages = 'google.com' +c.url.default_page = 'bonsai.cool' +c.url.start_pages = 'bonsai.cool' # Search engines which can be used via the address bar. Maps a search # engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}` @@ -214,10 +214,10 @@ c.url.start_pages = 'google.com' # the search engine name to the search term, e.g. `:open google # qutebrowser`. # Type: Dict -c.url.searchengines = {'DEFAULT': 'https://google.com/search?q={}', +c.url.searchengines = {'DEFAULT': "https://search.bonsai.cool/search?q={}", 'am': 'https://www.amazon.com/s?k={}', 'aw': 'https://wiki.archlinux.org/?search={}', - 'goog': 'https://www.google.com/search?q={}', + 'g': 'https://www.google.com/search?q={}', 'hoog': 'https://hoogle.haskell.org/?hoogle={}', 're': 'https://www.reddit.com/r/{}', 'ub': 'https://www.urbandictionary.com/define.php?term={}', diff --git a/.config/waybar/config b/.config/waybar/config index a94dcbb..3f4c891 100755 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -1,91 +1,31 @@ -{ - "height": 35, +[{ "layer": "top", - "position": "top", - "modules-left": ["hyprland/workspaces"], - "modules-center": [], - "modules-right": ["cpu", "temperature", "battery", "network", "clock"], + "output": "HDMI-A-1", + "width": 10, + "position": "left", + "reload_style_on_change": true, + "modules-left": ["cpu", "temperature", ], + "modules-center": ["hyprland/workspaces"], + "modules-right": ["network", "clock"], - "wlr/workspaces": { - "disable-scroll": true, + "hyprland/workspaces": { "active-only": false, - "all-outputs": false, "on-click": "activate", - "on-scroll-up": "hyprctl dispatch workspace e+1", - "on-scroll-down": "hyprctl dispatch workspace e-1", - }, - - - "custom/bar" : { - "interval" : "once", - "format" : "▊", - "tooltip" : false - }, - - - "custom/launcher": { - "interval": "once", - "format": "", - "tooltip": false - }, - - "custom/pkgs": { - "interval": "once", - "format": "{}", - "exec" : "hyprctl version -j | jq '.tag' -r | cut -d'-' -f1" - }, - - "custom/audio_idle_inhibitor": { - "format": "{icon}", - "exec": "sway-audio-idle-inhibit --dry-print-both-waybar", - "exec-if": "which sway-audio-idle-inhibit", - "return-type": "json", - "format-icons": { - "output": "", - "input": "", - "output-input": " ", - "none": "" - } - }, - - - "custom/cpu": { - "interval": "once", - "format": "", }, "cpu": { "interval": 1, - "format": " \t{usage}%", - "max-length": 10, + "format": "{usage}%", + "max-length": 4, "min-length": 4 }, - - - "custom/temp": { - "interval": "once", - "format": "", - }, - "temperature": { "hwmon-path-abs": "/sys/devices/platform/coretemp.0/hwmon", "input-filename": "temp1_input", - "format": "{temperatureC}°C", + "format": "{temperatureC}°", }, - - - - "backlight": { - "format": "{icon}", - "format-icons": ["", "", "", "", "", "", "", "", ""], - "on-scroll-up": "light -A 1", - "on-scroll-down": "light -U 1" - }, - - - "pulseaudio": { "format": "{icon}", "format-bluetooth": "{icon} {volume}% {format_source}", @@ -104,24 +44,10 @@ "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" }, - - - "custom/net": { - "interval": "once", - "format": "󰤨", - }, - "network": { - "format-wifi": "󰤨 {essid}", + "format-wifi": "󰤨 ", "format-ethernet": "󰈀 ", "format-disconnected": "󰌙 ", - "max-length" : 20 - }, - - - "custom/bat" : { - "interval" : "once", - "format" : "" }, "battery": { @@ -133,24 +59,175 @@ "critical": 15 }, "max-length": 20, - "format": " {icon} {capacity}%", - "format-warning": " {icon} {capacity}%", - "format-critical": " {icon} {capacity}%", - "format-charging": " {icon} {capacity}%", - "format-plugged": " {icon} {capacity}%", + "format": "{icon}", + "format-warning": "󰂃", + "format-critical": "󰂃", + "format-charging": "󰂄", + "format-plugged": "󰂄", "format-alt": " {icon} {time} ", "format-full": "", - "format-icons": [" ", " ", " ", " ", " "] - }, - - "custom/clock" : { - "format" : "󱑓" + "format-icons": ["󰁺", "󰁽", "󰁿", "󰂁", "󰁹"] }, "clock": { "format-alt": " {:%a %b %d}", - "format": "󱑓 {:%H:%M}" + "format": "{:%H\n%M}" + }, +}, + +{ + "layer": "top", + "output": "DP-1", + "width": 10, + "position": "right", + "reload_style_on_change": true, + "modules-left": ["cpu", "temperature", ], + "modules-center": ["hyprland/workspaces"], + "modules-right": ["network", "clock"], + + "hyprland/workspaces": { + "active-only": false, + "on-click": "activate", + }, + + "cpu": { + "interval": 1, + "format": "{usage}%", + "max-length": 4, + "min-length": 4 + }, + + "temperature": { + "hwmon-path-abs": "/sys/devices/platform/coretemp.0/hwmon", + "input-filename": "temp1_input", + "format": "{temperatureC}°", + }, + + "pulseaudio": { + "format": "{icon}", + "format-bluetooth": "{icon} {volume}% {format_source}", + "format-bluetooth-muted": "x {icon} {format_source}", + "format-muted": "婢", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click-right": "pavucontrol", + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" + }, + + "network": { + "format-wifi": "󰤨 ", + "format-ethernet": "󰈀 ", + "format-disconnected": "󰌙 ", + }, + + "battery": { + "bat": "BAT0", + "adapter": "ADP0", + "interval": 60, + "states": { + "warning": 30, + "critical": 15 + }, + "max-length": 20, + "format": "{icon}", + "format-warning": "󰂃", + "format-critical": "󰂃", + "format-charging": "󰂄", + "format-plugged": "󰂄", + "format-alt": " {icon} {time} ", + "format-full": "", + "format-icons": ["󰁺", "󰁽", "󰁿", "󰂁", "󰁹"] }, -} + "clock": { + "format-alt": " {:%a %b %d}", + "format": "{:%H\n%M}" + }, + +}, +{ + "layer": "top", + "output": "eDP-1", + "width": 10, + "position": "left", + "reload_style_on_change": true, + "modules-left": ["cpu", "temperature", ], + "modules-center": ["hyprland/workspaces"], + "modules-right": ["battery", "network", "clock"], + + "hyprland/workspaces": { + "active-only": false, + "on-click": "activate", + }, + + "cpu": { + "interval": 1, + "format": "{usage}%", + "max-length": 4, + "min-length": 4 + }, + + "temperature": { + "hwmon-path-abs": "/sys/devices/platform/coretemp.0/hwmon", + "input-filename": "temp1_input", + "format": "{temperatureC}°", + }, + + "pulseaudio": { + "format": "{icon}", + "format-bluetooth": "{icon} {volume}% {format_source}", + "format-bluetooth-muted": "x {icon} {format_source}", + "format-muted": "婢", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click-right": "pavucontrol", + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" + }, + + "network": { + "format-wifi": "󰤨 ", + "format-ethernet": "󰈀 ", + "format-disconnected": "󰌙 ", + }, + + "battery": { + "bat": "BAT0", + "adapter": "ADP0", + "interval": 60, + "states": { + "warning": 30, + "critical": 15 + }, + "max-length": 20, + "format": "{icon}", + "format-warning": "󰂃", + "format-critical": "󰂃", + "format-charging": "󰂄", + "format-plugged": "󰂄", + "format-alt": " {icon} {time} ", + "format-full": "", + "format-icons": ["󰁺", "󰁽", "󰁿", "󰂁", "󰁹"] + }, + + "clock": { + "format-alt": " {:%a %b %d}", + "format": "{:%H\n%M}" + }, +}, + +] diff --git a/.config/waybar/style.css b/.config/waybar/style.css index 4ce3fa9..1f76874 100755 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -3,34 +3,49 @@ /* margin: top right bottom left */ /* Spacing outside the element */ -/* padding: top right bottom left */ /* Spacing inside the element */ * { font-family: FiraCode Mono Nerd Font; - font-size: 15px; + font-size: 13px; + min-height: 0; + margin: 0px; + padding: 2px 0px; + border-radius: 6px; } +#clock, +#battery, +#cpu, +#temperature, +#backlight, +#network, +#pulseaudio { + color: @crust; + font-family: FiraCode Mono Nerd Font; + font-size: 13px; + min-height: 0; + margin: 4px; + padding: 6px 1px; + background: #1B1B1B; +} + + window#waybar { - background-color: #0A0A0A; + background-color: #070707; color: @text; transition-property: background-color; transition-duration: 0.5s; - border-radius: 0px; transition-duration: .5s; - margin: 16px 16px; + border-radius: 0px; + margin: 0px; + padding: 0px; } -window#waybar.hidden { - opacity: 0.2; -} #workspaces button { color: #A9A1E1; - background: #191919; - border-radius: 8px; - padding: 0px 10px 0px 10px; - margin: 10px 5px 10px 5px; + background: #1B1B1B; transition: all 0.3s ease-in-out; } @@ -40,183 +55,36 @@ window#waybar.hidden { } #workspaces button.active { - color: #A9A1E1; - background: #141414; - border-bottom: 2px solid #A9A1E1; - border-radius: 8px; - padding: 0px 10px 0px 10px; - margin: 10px 5px 10px 5px; -} - -#custom-launcher, -#clock, -#battery, -#cpu, -#temperature, -#backlight, -#network, -#pulseaudio, -#custom-dunst, -#custom-powermenu{ - padding: 20px 20px; - margin: 7px 0px 10px 0px; - border-radius: 10px; - color: @crust; -} - -#window, - - - - -#custom-audio_idle_inhibitor { - padding: 0px 15px 0px 10px; - margin: 7px 0px 10px 10px; - background-color: #C678DD; - color: @joksi-bg; - border-radius: 10px; - font-size: 20px; -} - - - -#custom-launcher { - padding: 0px 15px 0px 10px; - margin: 7px 0px 10px 10px; - background-color: #C678DD; - color: @joksi-bg; - border-radius: 10px 0px 0px 10px; - font-size: 20px; -} - -#custom-pkgs { - padding: 0px 15px 0px 10px; - margin: 7px 0px 10px 0px; - background-color: @joksi-bg; - color: #C678DD; - border-radius: 0px 10px 10px 0px; -} - -#custom-cpu { - background-color: #51AFEF; - color: @joksi-bg; - border-radius: 10px 0px 0px 10px; - padding: 0px 10px 0px 10px; - margin: 7px 0px 10px 10px; - - font-size: 20px; + color: #1B1B1B; + background: #A9A1E1; + padding: 0px; + margin: 7px; } #cpu { - background: #141414; color: #51AFEF; - border-radius: 8px 0px 0px 8px; - border-bottom: 2px solid #51AFEF; - padding: 0px 10px 0px 10px; - margin: 10px 0px 10px 0px; - } -#custom-temp { - background: #141414; - color: @joksi-bg; - border-radius: 10px 0px 0px 10px; - padding: 0px 10px 0px 10px; - margin: 7px 0px 10px 10px; - - font-size: 20px; -} - - #temperature { - background: #141414; color: #51AFEF; - border-bottom: 2px solid #51AFEF; - border-radius: 0px 8px 8px 0px; - padding: 0px 10px 0px 10px; - margin: 10px 5px 10px 0px; - } - - -#backlight { - background-color: #CCCCCC; - padding: 0px 10px 0px 10px; - border-radius: 10px 0px 0px 10px; -} - - #pulseaudio { background-color: @joksi-bg; - color:#A9A1E1; - padding: 0px 10px 0px 10px; - border-radius: 10px 0px 0px 10px; - -} - - - - -#custom-net { - background-color: #A9A1E1; - color: @joksi-bg; - border-radius: 10px 0px 0px 10px; - padding: 0px 15px 0px 10px; - margin: 7px 0px 10px 10px; - - font-size: 20px; + color: #A9A1E1; } #network { color: #A9A1E1; - background: #141414; - border-bottom: 2px solid #A9A1E1; - border-radius: 8px; - padding: 0px 5px 0px 5px; - margin: 10px 5px 10px 5px; - font-size: 15px; } - - -#custom-bat { - background-color: #EC5F67; - color: @joksi-bg; - border-radius: 10px 0px 0px 10px; - padding: 0px 15px 0px 10px; - margin: 7px 0px 10px 10px; - - font-size: 20px; -} - - #battery { background-color: @joksi-bg; color: #EC5F67; - border-radius: 0px 10px 10px 0px; - padding: 0px 10px 0px 10px; - margin: 7px 0px 10px 0px; -} - - -#custom-clock { - color: @joksi-bg; - background-color: #98BE65; - font-size: 20px; - border-bottom: 2px solid #98BE65; - border-radius: 0px; - padding: 0px 15px 0px 10px; - margin: 7px 0px 10px 10px; } #clock { - padding: 0px 10px 0px 10px; - margin: 10px 5px 10px 5px; color: #98BE65; - border-bottom: 2px solid #98BE65; - border-radius: 8px; - background: #141414; } diff --git a/.config/yazi/keymap.toml b/.config/yazi/keymap.toml deleted file mode 100755 index b53da37..0000000 --- a/.config/yazi/keymap.toml +++ /dev/null @@ -1,300 +0,0 @@ -# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config. -# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas. -"$schema" = "https://yazi-rs.github.io/schemas/keymap.json" - -[manager] - -keymap = [ - { on = [ "" ], exec = "escape", desc = "Exit visual mode, clear selected, or cancel search" }, - { on = [ "q" ], exec = "quit", desc = "Exit the process" }, - { on = [ "Q" ], exec = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" }, - { on = [ "" ], exec = "close", desc = "Close the current tab, or quit if it is last tab" }, - { on = [ "" ], exec = "suspend", desc = "Suspend the process" }, - - # Navigation - { on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "j" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "K" ], exec = "arrow -5", desc = "Move cursor up 5 lines" }, - { on = [ "J" ], exec = "arrow 5", desc = "Move cursor down 5 lines" }, - - { on = [ "" ], exec = "arrow -5", desc = "Move cursor up 5 lines" }, - { on = [ "" ], exec = "arrow 5", desc = "Move cursor down 5 lines" }, - - { on = [ "" ], exec = "arrow -50%", desc = "Move cursor up half page" }, - { on = [ "" ], exec = "arrow 50%", desc = "Move cursor down half page" }, - { on = [ "" ], exec = "arrow -100%", desc = "Move cursor up one page" }, - { on = [ "" ], exec = "arrow 100%", desc = "Move cursor down one page" }, - - { on = [ "" ], exec = "arrow -50%", desc = "Move cursor up half page" }, - { on = [ "" ], exec = "arrow 50%", desc = "Move cursor down half page" }, - { on = [ "" ], exec = "arrow -100%", desc = "Move cursor up one page" }, - { on = [ "" ], exec = "arrow 100%", desc = "Move cursor down one page" }, - - { on = [ "h" ], exec = [ "escape --visual", "leave" ], desc = "Go back to the parent directory" }, - { on = [ "l" ], exec = [ "escape --visual", "enter" ], desc = "Enter the child directory" }, - - { on = [ "H" ], exec = "back", desc = "Go back to the previous directory" }, - { on = [ "L" ], exec = "forward", desc = "Go forward to the next directory" }, - - { on = [ "" ], exec = "seek -5", desc = "Seek up 5 units in the preview" }, - { on = [ "" ], exec = "seek 5", desc = "Seek down 5 units in the preview" }, - { on = [ "" ], exec = "seek -5", desc = "Seek up 5 units in the preview" }, - { on = [ "" ], exec = "seek 5", desc = "Seek down 5 units in the preview" }, - - { on = [ "" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "" ], exec = "arrow 1", desc = "Move cursor down" }, - { on = [ "" ], exec = "leave", desc = "Go back to the parent directory" }, - { on = [ "" ], exec = "enter", desc = "Enter the child directory" }, - - { on = [ "g", "g" ], exec = "arrow -99999999", desc = "Move cursor to the top" }, - { on = [ "G" ], exec = "arrow 99999999", desc = "Move cursor to the bottom" }, - - # Selection - { on = [ "" ], exec = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" }, - { on = [ "v" ], exec = "visual_mode", desc = "Enter visual mode (selection mode)" }, - { on = [ "V" ], exec = "visual_mode --unset", desc = "Enter visual mode (unset mode)" }, - { on = [ "" ], exec = "select_all --state=true", desc = "Select all files" }, - { on = [ "" ], exec = "select_all --state=none", desc = "Inverse selection of all files" }, - - # Operation - { on = [ "o" ], exec = [ "escape --visual", "open" ], desc = "Open the selected files" }, - { on = [ "O" ], exec = [ "escape --visual", "open --interactive" ], desc = "Open the selected files interactively" }, - { on = [ "" ], exec = [ "escape --visual", "open" ], desc = "Open the selected files" }, - { on = [ "" ], exec = [ "escape --visual", "open --interactive" ], desc = "Open the selected files interactively" }, - { on = [ "y" ], exec = [ "escape --visual", "yank" ], desc = "Copy the selected files" }, - { on = [ "Y" ], exec = "unyank", desc = "Cancel the yank status of files" }, - { on = [ "x" ], exec = [ "escape --visual", "yank --cut" ], desc = "Cut the selected files" }, - { on = [ "p" ], exec = "paste", desc = "Paste the files" }, - { on = [ "P" ], exec = "paste --force", desc = "Paste the files (overwrite if the destination exists)" }, - { on = [ "-" ], exec = "link", desc = "Symlink the absolute path of files" }, - { on = [ "_" ], exec = "link --relative", desc = "Symlink the relative path of files" }, - { on = [ "d" ], exec = [ "escape --visual", "remove --permanently" ], desc = "Permanently delete the files" }, - { on = [ "D" ], exec = [ "escape --visual", "remove --permanently" ], desc = "Permanently delete the files" }, - { on = [ "a" ], exec = "create", desc = "Create a file or directory (ends with / for directories)" }, - { on = [ "r" ], exec = [ "escape --visual", "rename --cursor=before_ext" ], desc = "Rename a file or directory" }, - { on = [ ";" ], exec = [ "escape --visual", "shell" ], desc = "Run a shell command" }, - { on = [ ":" ], exec = [ "escape --visual", "shell --block" ], desc = "Run a shell command (block the UI until the command finishes)" }, - { on = [ "." ], exec = "hidden toggle", desc = "Toggle the visibility of hidden files" }, - { on = [ "s" ], exec = "search fd", desc = "Search files by name using fd" }, - { on = [ "S" ], exec = "search rg", desc = "Search files by content using ripgrep" }, - { on = [ "" ], exec = "search none", desc = "Cancel the ongoing search" }, - { on = [ "z" ], exec = "jump zoxide", desc = "Jump to a directory using zoxide" }, - { on = [ "Z" ], exec = "jump fzf", desc = "Jump to a directory, or reveal a file using fzf" }, - - # Linemode - { on = [ "m", "s" ], exec = "linemode size", desc = "Set linemode to size" }, - { on = [ "m", "p" ], exec = "linemode permissions", desc = "Set linemode to permissions" }, - { on = [ "m", "m" ], exec = "linemode mtime", desc = "Set linemode to mtime" }, - { on = [ "m", "n" ], exec = "linemode none", desc = "Set linemode to none" }, - - # Copy - { on = [ "c", "c" ], exec = [ "escape --visual", "copy path" ], desc = "Copy the absolute path" }, - { on = [ "c", "d" ], exec = [ "escape --visual", "copy dirname" ], desc = "Copy the path of the parent directory" }, - { on = [ "c", "f" ], exec = [ "escape --visual", "copy filename" ], desc = "Copy the name of the file" }, - { on = [ "c", "n" ], exec = [ "escape --visual", "copy name_without_ext" ], desc = "Copy the name of the file without the extension" }, - - # Filter - { on = [ "f" ], exec = "filter --smart", desc = "Filter the files" }, - - # Find - { on = [ "/" ], exec = "find --smart", desc = "Find next file" }, - { on = [ "?" ], exec = "find --previous --smart", desc = "Find previous file" }, - { on = [ "n" ], exec = "find_arrow", desc = "Go to next found file" }, - { on = [ "N" ], exec = "find_arrow --previous", desc = "Go to previous found file" }, - - # Sorting - { on = [ ",", "m" ], exec = "sort modified --dir-first", desc = "Sort by modified time" }, - { on = [ ",", "M" ], exec = "sort modified --reverse --dir-first", desc = "Sort by modified time (reverse)" }, - { on = [ ",", "c" ], exec = "sort created --dir-first", desc = "Sort by created time" }, - { on = [ ",", "C" ], exec = "sort created --reverse --dir-first", desc = "Sort by created time (reverse)" }, - { on = [ ",", "e" ], exec = "sort extension --dir-first", desc = "Sort by extension" }, - { on = [ ",", "E" ], exec = "sort extension --reverse --dir-first", desc = "Sort by extension (reverse)" }, - { on = [ ",", "a" ], exec = "sort alphabetical --dir-first", desc = "Sort alphabetically" }, - { on = [ ",", "A" ], exec = "sort alphabetical --reverse --dir-first", desc = "Sort alphabetically (reverse)" }, - { on = [ ",", "n" ], exec = "sort natural --dir-first", desc = "Sort naturally" }, - { on = [ ",", "N" ], exec = "sort natural --reverse --dir-first", desc = "Sort naturally (reverse)" }, - { on = [ ",", "s" ], exec = "sort size --dir-first", desc = "Sort by size" }, - { on = [ ",", "S" ], exec = "sort size --reverse --dir-first", desc = "Sort by size (reverse)" }, - - # Tabs - { on = [ "t" ], exec = "tab_create --current", desc = "Create a new tab using the current path" }, - - { on = [ "1" ], exec = "tab_switch 0", desc = "Switch to the first tab" }, - { on = [ "2" ], exec = "tab_switch 1", desc = "Switch to the second tab" }, - { on = [ "3" ], exec = "tab_switch 2", desc = "Switch to the third tab" }, - { on = [ "4" ], exec = "tab_switch 3", desc = "Switch to the fourth tab" }, - { on = [ "5" ], exec = "tab_switch 4", desc = "Switch to the fifth tab" }, - { on = [ "6" ], exec = "tab_switch 5", desc = "Switch to the sixth tab" }, - { on = [ "7" ], exec = "tab_switch 6", desc = "Switch to the seventh tab" }, - { on = [ "8" ], exec = "tab_switch 7", desc = "Switch to the eighth tab" }, - { on = [ "9" ], exec = "tab_switch 8", desc = "Switch to the ninth tab" }, - - { on = [ "[" ], exec = "tab_switch -1 --relative", desc = "Switch to the previous tab" }, - { on = [ "]" ], exec = "tab_switch 1 --relative", desc = "Switch to the next tab" }, - - { on = [ "{" ], exec = "tab_swap -1", desc = "Swap the current tab with the previous tab" }, - { on = [ "}" ], exec = "tab_swap 1", desc = "Swap the current tab with the next tab" }, - - # Tasks - { on = [ "w" ], exec = "tasks_show", desc = "Show the tasks manager" }, - - # Goto - { on = [ "g", "h" ], exec = "cd ~", desc = "Go to the home directory" }, - { on = [ "g", "c" ], exec = "cd ~/.config", desc = "Go to the config directory" }, - { on = [ "g", "d" ], exec = "cd ~/Downloads", desc = "Go to the downloads directory" }, - { on = [ "g", "t" ], exec = "cd /tmp", desc = "Go to the temporary directory" }, - { on = [ "g", "" ], exec = "cd --interactive", desc = "Go to a directory interactively" }, - - # Help - { on = [ "~" ], exec = "help", desc = "Open help" }, -] - -[tasks] - -keymap = [ - { on = [ "" ], exec = "close", desc = "Hide the task manager" }, - { on = [ "" ], exec = "close", desc = "Hide the task manager" }, - { on = [ "w" ], exec = "close", desc = "Hide the task manager" }, - - { on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "j" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "" ], exec = "inspect", desc = "Inspect the task" }, - { on = [ "x" ], exec = "cancel", desc = "Cancel the task" }, - - { on = [ "~" ], exec = "help", desc = "Open help" } -] - -[select] - -keymap = [ - { on = [ "" ], exec = "close", desc = "Cancel selection" }, - { on = [ "" ], exec = "close", desc = "Cancel selection" }, - { on = [ "" ], exec = "close --submit", desc = "Submit the selection" }, - - { on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "j" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "K" ], exec = "arrow -5", desc = "Move cursor up 5 lines" }, - { on = [ "J" ], exec = "arrow 5", desc = "Move cursor down 5 lines" }, - - { on = [ "" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "" ], exec = "arrow -5", desc = "Move cursor up 5 lines" }, - { on = [ "" ], exec = "arrow 5", desc = "Move cursor down 5 lines" }, - - { on = [ "~" ], exec = "help", desc = "Open help" } -] - -[input] - -keymap = [ - { on = [ "" ], exec = "close", desc = "Cancel input" }, - { on = [ "" ], exec = "close --submit", desc = "Submit the input" }, - { on = [ "" ], exec = "escape", desc = "Go back the normal mode, or cancel input" }, - - # Mode - { on = [ "i" ], exec = "insert", desc = "Enter insert mode" }, - { on = [ "a" ], exec = "insert --append", desc = "Enter append mode" }, - { on = [ "I" ], exec = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" }, - { on = [ "A" ], exec = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" }, - { on = [ "v" ], exec = "visual", desc = "Enter visual mode" }, - { on = [ "V" ], exec = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" }, - - # Character-wise movement - { on = [ "h" ], exec = "move -1", desc = "Move back a character" }, - { on = [ "l" ], exec = "move 1", desc = "Move forward a character" }, - { on = [ "" ], exec = "move -1", desc = "Move back a character" }, - { on = [ "" ], exec = "move 1", desc = "Move forward a character" }, - { on = [ "" ], exec = "move -1", desc = "Move back a character" }, - { on = [ "" ], exec = "move 1", desc = "Move forward a character" }, - - # Word-wise movement - { on = [ "b" ], exec = "backward", desc = "Move back to the start of the current or previous word" }, - { on = [ "w" ], exec = "forward", desc = "Move forward to the start of the next word" }, - { on = [ "e" ], exec = "forward --end-of-word", desc = "Move forward to the end of the current or next word" }, - { on = [ "" ], exec = "backward", desc = "Move back to the start of the current or previous word" }, - { on = [ "" ], exec = "forward --end-of-word", desc = "Move forward to the end of the current or next word" }, - - # Line-wise movement - { on = [ "0" ], exec = "move -999", desc = "Move to the BOL" }, - { on = [ "$" ], exec = "move 999", desc = "Move to the EOL" }, - { on = [ "" ], exec = "move -999", desc = "Move to the BOL" }, - { on = [ "" ], exec = "move 999", desc = "Move to the EOL" }, - { on = [ "" ], exec = "move -999", desc = "Move to the BOL" }, - { on = [ "" ], exec = "move 999", desc = "Move to the EOL" }, - - # Delete - { on = [ "" ], exec = "backspace", desc = "Delete the character before the cursor" }, - { on = [ "" ], exec = "backspace --under", desc = "Delete the character under the cursor" }, - { on = [ "" ], exec = "backspace", desc = "Delete the character before the cursor" }, - { on = [ "" ], exec = "backspace --under", desc = "Delete the character under the cursor" }, - - # Kill - { on = [ "" ], exec = "kill bol", desc = "Kill backwards to the BOL" }, - { on = [ "" ], exec = "kill eol", desc = "Kill forwards to the EOL" }, - { on = [ "" ], exec = "kill backward", desc = "Kill backwards to the start of the current word" }, - { on = [ "" ], exec = "kill forward", desc = "Kill forwards to the end of the current word" }, - - # Cut/Yank/Paste - { on = [ "d" ], exec = "delete --cut", desc = "Cut the selected characters" }, - { on = [ "D" ], exec = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" }, - { on = [ "c" ], exec = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" }, - { on = [ "C" ], exec = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" }, - { on = [ "x" ], exec = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" }, - { on = [ "y" ], exec = "yank", desc = "Copy the selected characters" }, - { on = [ "p" ], exec = "paste", desc = "Paste the copied characters after the cursor" }, - { on = [ "P" ], exec = "paste --before", desc = "Paste the copied characters before the cursor" }, - - # Undo/Redo - { on = [ "u" ], exec = "undo", desc = "Undo the last operation" }, - { on = [ "" ], exec = "redo", desc = "Redo the last operation" }, - - # Help - { on = [ "~" ], exec = "help", desc = "Open help" } -] - -[completion] - -keymap = [ - { on = [ "" ], exec = "close", desc = "Cancel completion" }, - { on = [ "" ], exec = "close --submit", desc = "Submit the completion" }, - { on = [ "" ], exec = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" }, - - { on = [ "" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "~" ], exec = "help", desc = "Open help" } -] - -[help] - -keymap = [ - { on = [ "" ], exec = "escape", desc = "Clear the filter, or hide the help" }, - { on = [ "q" ], exec = "close", desc = "Exit the process" }, - { on = [ "" ], exec = "close", desc = "Hide the help" }, - - # Navigation - { on = [ "k" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "j" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "K" ], exec = "arrow -5", desc = "Move cursor up 5 lines" }, - { on = [ "J" ], exec = "arrow 5", desc = "Move cursor down 5 lines" }, - - { on = [ "" ], exec = "arrow -1", desc = "Move cursor up" }, - { on = [ "" ], exec = "arrow 1", desc = "Move cursor down" }, - - { on = [ "" ], exec = "arrow -5", desc = "Move cursor up 5 lines" }, - { on = [ "" ], exec = "arrow 5", desc = "Move cursor down 5 lines" }, - - # Filtering - { on = [ "/" ], exec = "filter", desc = "Apply a filter for the help items" }, -] diff --git a/.config/yazi/theme.toml b/.config/yazi/theme.toml deleted file mode 100755 index 6c959c5..0000000 --- a/.config/yazi/theme.toml +++ /dev/null @@ -1,145 +0,0 @@ -# vim:fileencoding=utf-8:foldmethod=marker - -# : Manager {{{ - -[manager] -cwd = { fg = "#81c8be" } - -# Hovered -hovered = { fg = "#303446", bg = "#8caaee" } -preview_hovered = { underline = true } - -# Find -find_keyword = { fg = "#e5c890", italic = true } -find_position = { fg = "#f4b8e4", bg = "reset", italic = true } - -# Marker -marker_selected = { fg = "#a6d189", bg = "#a6d189" } -marker_copied = { fg = "#e5c890", bg = "#e5c890" } -marker_cut = { fg = "#e78284", bg = "#e78284" } - -# Tab -tab_active = { fg = "#303446", bg = "#8caaee" } -tab_inactive = { fg = "#c6d0f5", bg = "#51576d" } -tab_width = 1 - -# Border -border_symbol = "│" -border_style = { fg = "#838ba7" } - -# Highlighting -syntect_theme = "~/.config/yazi/Catppuccin-frappe.tmTheme" - -# : }}} - - -# : Status {{{ - -[status] -separator_open = "" -separator_close = "" -separator_style = { fg = "#51576d", bg = "#51576d" } - -# Mode -mode_normal = { fg = "#303446", bg = "#8caaee", bold = true } -mode_select = { fg = "#303446", bg = "#a6d189", bold = true } -mode_unset = { fg = "#303446", bg = "#eebebe", bold = true } - -# Progress -progress_label = { fg = "#ffffff", bold = true } -progress_normal = { fg = "#8caaee", bg = "#51576d" } -progress_error = { fg = "#e78284", bg = "#51576d" } - -# Permissions -permissions_t = { fg = "#8caaee" } -permissions_r = { fg = "#e5c890" } -permissions_w = { fg = "#e78284" } -permissions_x = { fg = "#a6d189" } -permissions_s = { fg = "#838ba7" } - -# : }}} - - -# : Input {{{ - -[input] -border = { fg = "#8caaee" } -title = {} -value = {} -selected = { reversed = true } - -# : }}} - - -# : Select {{{ - -[select] -border = { fg = "#8caaee" } -active = { fg = "#f4b8e4" } -inactive = {} - -# : }}} - - -# : Tasks {{{ - -[tasks] -border = { fg = "#8caaee" } -title = {} -hovered = { underline = true } - -# : }}} - - -# : Which {{{ - -[which] -mask = { bg = "#414559" } -cand = { fg = "#81c8be" } -rest = { fg = "#949cbb" } -desc = { fg = "#f4b8e4" } -separator = "  " -separator_style = { fg = "#626880" } - -# : }}} - - -# : Help {{{ - -[help] -on = { fg = "#f4b8e4" } -exec = { fg = "#81c8be" } -desc = { fg = "#949cbb" } -hovered = { bg = "#626880", bold = true } -footer = { fg = "#51576d", bg = "#c6d0f5" } - -# : }}} - - -# : File-specific styles {{{ - -[filetype] - -rules = [ - # Images - { mime = "image/*", fg = "#81c8be" }, - - # Videos - { mime = "video/*", fg = "#e5c890" }, - { mime = "audio/*", fg = "#e5c890" }, - - # Archives - { mime = "application/zip", fg = "#f4b8e4" }, - { mime = "application/gzip", fg = "#f4b8e4" }, - { mime = "application/x-tar", fg = "#f4b8e4" }, - { mime = "application/x-bzip", fg = "#f4b8e4" }, - { mime = "application/x-bzip2", fg = "#f4b8e4" }, - { mime = "application/x-7z-compressed", fg = "#f4b8e4" }, - { mime = "application/x-rar", fg = "#f4b8e4" }, - - # Fallback - { name = "*", fg = "#c6d0f5" }, - { name = "*/", fg = "#8caaee" } -] - -# : }}} diff --git a/.config/yazi/yazi.toml b/.config/yazi/yazi.toml old mode 100755 new mode 100644 index e721150..dd0f240 --- a/.config/yazi/yazi.toml +++ b/.config/yazi/yazi.toml @@ -3,21 +3,26 @@ "$schema" = "https://yazi-rs.github.io/schemas/yazi.json" [manager] -ratio = [ 1, 2, 3 ] +ratio = [ 1, 4, 3 ] sort_by = "alphabetical" -sort_sensitive = true -sort_reverse = false +sort_sensitive = false +sort_reverse = false sort_dir_first = true -linemode = "size" +sort_translit = false +linemode = "none" show_hidden = false show_symlink = true scrolloff = 5 +mouse_events = [ "click", "scroll" ] +title_format = "Yazi: {cwd}" [preview] -tab_size = 4 -max_width = 900 +wrap = "no" +tab_size = 2 +max_width = 600 max_height = 900 cache_dir = "" +image_delay = 30 image_filter = "triangle" image_quality = 75 sixel_fraction = 15 @@ -26,116 +31,132 @@ ueberzug_offset = [ 0, 0, 0, 0 ] [opener] edit = [ - { exec = '${EDITOR:=nvim} "$@"', desc = "$EDITOR", block = true, for = "unix" }, - { exec = 'code "%*"', orphan = true, for = "windows" }, + { run = '${EDITOR:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" }, + { run = 'code %*', orphan = true, desc = "code", for = "windows" }, + { run = 'code -w %*', block = true, desc = "code (block)", for = "windows" }, ] open = [ - { exec = 'xdg-open "$@"', desc = "Open", for = "linux" }, - { exec = 'open "$@"', desc = "Open", for = "macos" }, - { exec = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" } + { run = 'xdg-open "$1"', desc = "Open", for = "linux" }, + { run = 'open "$@"', desc = "Open", for = "macos" }, + { run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" }, ] reveal = [ - { exec = 'open -R "$1"', desc = "Reveal", for = "macos" }, - { exec = 'explorer /select, "%1"', orphan = true, desc = "Reveal", for = "windows" }, - { exec = '''exiftool "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show EXIF", for = "unix" }, + { run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" }, + { run = 'open -R "$1"', desc = "Reveal", for = "macos" }, + { run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" }, + { run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" }, ] extract = [ - { exec = 'unar "$1"', desc = "Extract here", for = "unix" }, - { exec = 'unar "%1"', desc = "Extract here", for = "windows" }, + { run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" }, + { run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" }, ] play = [ - { exec = 'mpv "$@"', orphan = true, for = "unix" }, - { exec = 'mpv "%1"', orphan = true, for = "windows" }, - { exec = '''mediainfo "$1"; echo "Press enter to exit"; read''', block = true, desc = "Show media info", for = "unix" }, + { run = 'mpv --force-window "$@"', orphan = true, for = "unix" }, + { run = 'mpv --force-window %*', orphan = true, for = "windows" }, + { run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" }, ] -imv = [ { exec = 'imv "$@"', orphan = true, for = "unix"} ] -zathura = [ { exec = 'zathura "$@"', orphan = true, for = "unix"} ] [open] rules = [ + # Folder { name = "*/", use = [ "edit", "open", "reveal" ] }, - - { mime = "text/*", use = [ "edit", "reveal" ] }, - { mime = "image/vnd.djvu", use = [ "zathura" ] }, - { mime = "image/vnd.djvu+multipage", use = [ "zathura" ] }, - { mime = "image/*", use = [ "imv" ] }, - { mime = "video/*", use = [ "play", "reveal" ] }, - { mime = "audio/*", use = [ "play", "reveal" ] }, - { mime = "inode/x-empty", use = [ "edit", "reveal" ] }, - - { mime = "application/json", use = [ "edit", "reveal" ] }, - { mime = "application/pdf", use = [ "zathura" ] }, - { mime = "*/javascript", use = [ "edit", "reveal" ] }, - - { mime = "application/zip", use = [ "extract", "reveal" ] }, - { mime = "application/gzip", use = [ "extract", "reveal" ] }, - { mime = "application/x-tar", use = [ "extract", "reveal" ] }, - { mime = "application/x-bzip", use = [ "extract", "reveal" ] }, - { mime = "application/x-bzip2", use = [ "extract", "reveal" ] }, - { mime = "application/x-7z-compressed", use = [ "extract", "reveal" ] }, - { mime = "application/x-rar", use = [ "extract", "reveal" ] }, - { mime = "application/xz", use = [ "extract", "reveal" ] }, - - { mime = "*", use = [ "open", "reveal" ] }, + # Text + { mime = "text/*", use = [ "edit", "reveal" ] }, + # Image + { mime = "image/*", use = [ "open", "reveal" ] }, + # Media + { mime = "{audio,video}/*", use = [ "play", "reveal" ] }, + # Archive + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", use = [ "extract", "reveal" ] }, + # JSON + { mime = "application/{json,ndjson}", use = [ "edit", "reveal" ] }, + { mime = "*/javascript", use = [ "edit", "reveal" ] }, + # Empty file + { mime = "inode/empty", use = [ "edit", "reveal" ] }, + # Fallback + { name = "*", use = [ "open", "reveal" ] }, ] [tasks] -micro_workers = 20 -macro_workers = 40 -bizarre_retry = 5 +micro_workers = 10 +macro_workers = 10 +bizarre_retry = 3 image_alloc = 536870912 # 512MB image_bound = [ 0, 0 ] suppress_preload = false [plugin] -preloaders = [ - { name = "*", cond = "!mime", exec = "mime", multi = true, prio = "high" }, +fetchers = [ + # Mimetype + { id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" }, +] +spotters = [ + { name = "*/", run = "folder" }, + # Code + { mime = "text/*", run = "code" }, + { mime = "*/{xml,javascript,wine-extension-ini}", run = "code" }, # Image - { mime = "image/vnd.djvu", exec = "noop" }, - { mime = "image/*", exec = "image" }, + { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" }, + { mime = "image/*", run = "image" }, # Video - { mime = "video/*", exec = "video" }, + { mime = "video/*", run = "video" }, + # Fallback + { name = "*", run = "file" }, +] +preloaders = [ + # Image + { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" }, + { mime = "image/*", run = "image" }, + # Video + { mime = "video/*", run = "video" }, # PDF - { mime = "application/pdf", exec = "pdf" }, + { mime = "application/pdf", run = "pdf" }, + # Font + { mime = "font/*", run = "font" }, + { mime = "application/ms-opentype", run = "font" }, ] previewers = [ - { name = "*/", exec = "folder", sync = true }, + { name = "*/", run = "folder", sync = true }, # Code - { mime = "text/*", exec = "code" }, - { mime = "*/xml", exec = "code" }, - { mime = "*/javascript", exec = "code" }, - { mime = "*/x-wine-extension-ini", exec = "code" }, + { mime = "text/*", run = "code" }, + { mime = "*/{xml,javascript,wine-extension-ini}", run = "code" }, # JSON - { mime = "application/json", exec = "json" }, + { mime = "application/{json,ndjson}", run = "json" }, # Image - { mime = "image/vnd.djvu", exec = "noop" }, - { mime = "image/*", exec = "image" }, + { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" }, + { mime = "image/*", run = "image" }, # Video - { mime = "video/*", exec = "video" }, + { mime = "video/*", run = "video" }, # PDF - { mime = "application/pdf", exec = "pdf" }, + { mime = "application/pdf", run = "pdf" }, # Archive - { mime = "application/zip", exec = "archive" }, - { mime = "application/gzip", exec = "archive" }, - { mime = "application/x-tar", exec = "archive" }, - { mime = "application/x-bzip", exec = "archive" }, - { mime = "application/x-bzip2", exec = "archive" }, - { mime = "application/x-7z-compressed", exec = "archive" }, - { mime = "application/x-rar", exec = "archive" }, - { mime = "application/xz", exec = "archive" }, + { mime = "application/{zip,rar,7z*,tar,gzip,xz,zstd,bzip*,lzma,compress,archive,cpio,arj,xar,ms-cab*}", run = "archive" }, + { mime = "application/{debian*-package,redhat-package-manager,rpm,android.package-archive}", run = "archive" }, + { name = "*.{AppImage,appimage}", run = "archive" }, + # Virtual Disk / Disk Image + { mime = "application/{iso9660-image,qemu-disk,ms-wim,apple-diskimage}", run = "archive" }, + { mime = "application/virtualbox-{vhd,vhdx}", run = "archive" }, + { name = "*.{img,fat,ext,ext2,ext3,ext4,squashfs,ntfs,hfs,hfsx}", run = "archive" }, + # Font + { mime = "font/*", run = "font" }, + { mime = "application/ms-opentype", run = "font" }, + # Empty file + { mime = "inode/empty", run = "empty" }, # Fallback - { name = "*", exec = "file" }, + { name = "*", run = "file" }, ] [input] +cursor_blink = false + # cd cd_title = "Change directory:" cd_origin = "top-center" cd_offset = [ 0, 2, 50, 3 ] # create -create_title = "Create:" +create_title = [ "Create:", "Create (dir):" ] create_origin = "top-center" create_offset = [ 0, 2, 50, 3 ] @@ -144,16 +165,6 @@ rename_title = "Rename:" rename_origin = "hovered" rename_offset = [ 0, 1, 50, 3 ] -# trash -trash_title = "Move {n} selected file{s} to trash? (y/N)" -trash_origin = "top-center" -trash_offset = [ 0, 2, 50, 3 ] - -# delete -delete_title = "Delete {n} selected file{s} permanently? (y/N)" -delete_origin = "top-center" -delete_offset = [ 0, 2, 50, 3 ] - # filter filter_title = "Filter:" filter_origin = "top-center" @@ -174,25 +185,36 @@ shell_title = [ "Shell:", "Shell (block):" ] shell_origin = "top-center" shell_offset = [ 0, 2, 50, 3 ] +[confirm] +# trash +trash_title = "Trash {n} selected file{s}?" +trash_origin = "center" +trash_offset = [ 0, 0, 70, 20 ] + +# delete +delete_title = "Permanently delete {n} selected file{s}?" +delete_origin = "center" +delete_offset = [ 0, 0, 70, 20 ] + # overwrite -overwrite_title = "Overwrite an existing file? (y/N)" -overwrite_origin = "top-center" -overwrite_offset = [ 0, 2, 50, 3 ] +overwrite_title = "Overwrite file?" +overwrite_content = "Will overwrite the following file:" +overwrite_origin = "center" +overwrite_offset = [ 0, 0, 50, 15 ] # quit -quit_title = "{n} task{s} running, sure to quit? (y/N)" -quit_origin = "top-center" -quit_offset = [ 0, 2, 50, 3 ] +quit_title = "Quit?" +quit_content = "The following task is still running, are you sure you want to quit?" +quit_origin = "center" +quit_offset = [ 0, 0, 50, 15 ] -[select] +[pick] open_title = "Open with:" open_origin = "hovered" open_offset = [ 0, 1, 50, 7 ] [which] -sort_by = "none" +sort_by = "none" sort_sensitive = false -sort_reverse = false - -[log] -enabled = false +sort_reverse = false +sort_translit = false diff --git a/.config/zsh-abbr/user-abbreviations b/.config/zsh-abbr/user-abbreviations index f5f7f61..6ae5881 100644 --- a/.config/zsh-abbr/user-abbreviations +++ b/.config/zsh-abbr/user-abbreviations @@ -1,5 +1,3 @@ -abbr -g "aur"="sudo aura" -abbr -g "aura"="sudo aura" abbr -g "cat"="bat" abbr -g "neo"="nvim +'Telescope oldfiles'" abbr -g "mann"="nvim +'Telescope man_pages'" diff --git a/.gitconfig b/.gitconfig index d5e0ff2..48a2575 100644 --- a/.gitconfig +++ b/.gitconfig @@ -84,3 +84,10 @@ [rebase] updateRefs = true +[init] + defaultBranch = master +[filter "lfs"] + required = true + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process diff --git a/.mbsyncrc b/.mbsyncrc new file mode 100644 index 0000000..b667e92 --- /dev/null +++ b/.mbsyncrc @@ -0,0 +1,20 @@ +IMAPStore bonsai-remote +Host mail.bonsai.cool +Port 993 +User brk@bonsai.cool +PassCmd "gopass show -o bonsai/mail" +SSLType IMAPS +CertificateFile /etc/ssl/certs/ca-certificates.crt + +MaildirStore bonsai-local +Path ~/mail/bonsai/ +Inbox ~/mail/bonsai/INBOX +Subfolders Verbatim + +Channel bonsai +Far :bonsai-remote: +Near :bonsai-local: +Create Both +Expunge Both +Patterns % !Archive +SyncState * diff --git a/.zshrc b/.zshrc index c3f282f..2b3c0b6 100644 --- a/.zshrc +++ b/.zshrc @@ -95,6 +95,7 @@ compdef _directories md # Define aliases. alias tree='tree -a -I .git' alias ls='exa -1 --icons=always --group-directories-first' +alias pacman='aura' # Add flags to existing aliases. # Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html. @@ -109,11 +110,23 @@ autoload -Uz compinit zstyle ':completion:*' menu select fpath+=~/.zfunc -kat=" - /l、 -(゚、 。 7 - l ~ヽ_ - じしf_,)ノ -" +# kat=" +# /l、 +# (゚、 。 7 +# l ~ヽ_ +# じしf_,)ノ +# " +# +# printf $kat +eval "$(zoxide init zsh --cmd cd)" -echo $kat +# bun completions +[ -s "/home/brk/.bun/_bun" ] && source "/home/brk/.bun/_bun" + +# bun +export BUN_INSTALL="$HOME/.bun" +export PATH="$BUN_INSTALL/bin:$PATH" + +if uwsm check may-start && uwsm select; then + exec uwsm start default +fi diff --git a/bin/1337x b/bin/1337x new file mode 100755 index 0000000..8de3119 --- /dev/null +++ b/bin/1337x @@ -0,0 +1,69 @@ +#!/usr/bin/bash + +# 1337x.to, if this domain is blocked for you try to use 1377x.to or 1337xx.to. + +clear +mkdir -p $HOME/.cache/1337x + +query=$* + +baseurl="https://1337x.to" +cachedir="$HOME/.cache/1337x" +query="$(sed 's/ /+/g' <<<$query)" + +# This is where default database can be chaned ie. Television, Movies, Music etc. +# See https://1337x.to/ for a list of query strings. +# curl -s https://www.1377x.to/category-search/$query/TV/1/ > $cachedir/tmp.html +# curl -s https://www.1377x.to/category-search/$query/Music/1/ > $cachedir/tmp.html +curl -s https://1337x.to/category-search/$query/Movies/1/ > $cachedir/tmp.html + +# Get Titles +grep -o '' $cachedir/tmp.html | + sed 's/<[^>]*>//g' | sed 'N;s/\n/ /' > $cachedir/seedleech.bw + +# Size +grep -o '.*<\/span>//g' | + sed -e 's/<[^>]*>//g' > $cachedir/size.bw + +# Links +grep -E '/torrent/' $cachedir/tmp.html | + sed -E 's#.*(/torrent/.*)/">.*/#\1#' | + sed 's/td>//g' > $cachedir/links.bw + +# Clearning up some data to display. +sed 's/\./ /g; s/\-/ /g' $cachedir/titles.bw | + sed 's/[^A-Za-z0-9 ]//g' | tr -s " " > $cachedir/tmp && mv $cachedir/tmp $cachedir/titles.bw + +awk '{print NR " - ["$0"]"}' $cachedir/size.bw > $cachedir/tmp && mv $cachedir/tmp $cachedir/size.bw +awk '{print "[S:"$1 ", L:"$2"]" }' $cachedir/seedleech.bw > $cachedir/tmp && mv $cachedir/tmp $cachedir/seedleech.bw + +# Getting the line number. +LINE=$(paste -d\ $cachedir/size.bw $cachedir/seedleech.bw $cachedir/titles.bw | + fzf -i | + cut -d\- -f1 | + awk '{$1=$1; print}') + +url=$(head -n $LINE $cachedir/links.bw 2> /dev/null | tail -n +$LINE 2> /dev/null) +fullURL="${baseurl}${url}/" + +# Requesting page for magnet link. +curl -s $fullURL > $cachedir/tmp.html +magnet=$(grep -Po "magnet:\?xt=urn:btih:[a-zA-Z0-9]*" $cachedir/tmp.html | head -n 1 2> /dev/null) + +if [[ $magnet == '' ]]; then + exit 0 +fi + +# Default username:password passed by default. +transmission-remote -n transmission:transmission --add "$magnet" && notify-send "Torrent added to queue." diff --git a/bin/GodotSharp/Api/Debug/GodotPlugins.dll b/bin/GodotSharp/Api/Debug/GodotPlugins.dll new file mode 100644 index 0000000..3e5d664 Binary files /dev/null and b/bin/GodotSharp/Api/Debug/GodotPlugins.dll differ diff --git a/bin/GodotSharp/Api/Debug/GodotPlugins.pdb b/bin/GodotSharp/Api/Debug/GodotPlugins.pdb new file mode 100644 index 0000000..35156db Binary files /dev/null and b/bin/GodotSharp/Api/Debug/GodotPlugins.pdb differ diff --git a/bin/GodotSharp/Api/Debug/GodotPlugins.runtimeconfig.json b/bin/GodotSharp/Api/Debug/GodotPlugins.runtimeconfig.json new file mode 100644 index 0000000..824cfe4 --- /dev/null +++ b/bin/GodotSharp/Api/Debug/GodotPlugins.runtimeconfig.json @@ -0,0 +1,13 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "rollForward": "LatestMajor", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/bin/GodotSharp/Api/Debug/GodotSharp.dll b/bin/GodotSharp/Api/Debug/GodotSharp.dll new file mode 100644 index 0000000..3095d86 Binary files /dev/null and b/bin/GodotSharp/Api/Debug/GodotSharp.dll differ diff --git a/bin/GodotSharp/Api/Debug/GodotSharp.pdb b/bin/GodotSharp/Api/Debug/GodotSharp.pdb new file mode 100644 index 0000000..2154687 Binary files /dev/null and b/bin/GodotSharp/Api/Debug/GodotSharp.pdb differ diff --git a/bin/GodotSharp/Api/Debug/GodotSharp.xml b/bin/GodotSharp/Api/Debug/GodotSharp.xml new file mode 100644 index 0000000..b119982 --- /dev/null +++ b/bin/GodotSharp/Api/Debug/GodotSharp.xml @@ -0,0 +1,260491 @@ + + + + GodotSharp + + + + + Axis-Aligned Bounding Box. AABB consists of a position, a size, and + several utility functions. It is typically used for fast overlap tests. + + + + + Beginning corner. Typically has values lower than . + + Directly uses a private field. + + + + Size from to . Typically all components are positive. + If the size is negative, you can use to fix it. + + Directly uses a private field. + + + + Ending corner. This is calculated as plus + . Setting this value will change the size. + + + Getting is equivalent to = + , + setting is equivalent to = - + + + + + The volume of this . + See also . + + + + + Returns an with equivalent position and size, modified so that + the most-negative corner is the origin and the size is positive. + + The modified . + + + + Returns the center of the , which is equal + to + ( / 2). + + The center. + + + + Returns if this completely encloses another one. + + The other that may be enclosed. + + A for whether or not this encloses . + + + + + Returns this expanded to include a given point. + + The point to include. + The expanded . + + + + Gets the position of one of the 8 endpoints of the . + + Which endpoint to get. + + is less than 0 or greater than 7. + + An endpoint of the . + + + + Returns the normalized longest axis of the . + + A vector representing the normalized longest axis of the . + + + + Returns the index of the longest axis of the . + + A index for which axis is longest. + + + + Returns the scalar length of the longest axis of the . + + The scalar length of the longest axis of the . + + + + Returns the normalized shortest axis of the . + + A vector representing the normalized shortest axis of the . + + + + Returns the index of the shortest axis of the . + + A index for which axis is shortest. + + + + Returns the scalar length of the shortest axis of the . + + The scalar length of the shortest axis of the . + + + + Returns the support point in a given direction. + This is useful for collision detection algorithms. + + The direction to find support for. + A vector representing the support. + + + + Returns a copy of the grown a given amount of units towards all the sides. + + The amount to grow by. + The grown . + + + + Returns if the contains a point, + or otherwise. + + The point to check. + + A for whether or not the contains . + + + + + Returns if the + has a surface or a length, and + if the is empty (all components + of are zero or negative). + + + A for whether or not the has surface. + + + + + Returns if the has + area, and if the + is linear, empty, or has a negative . + See also . + + + A for whether or not the has volume. + + + + + Returns the intersection of this and . + + The other . + The clipped . + + + + Returns if the overlaps with + (i.e. they have at least one point in common). + + The other to check for intersections with. + + A for whether or not they are intersecting. + + + + + Returns if the is on both sides of . + + The to check for intersection. + + A for whether or not the intersects the . + + + + + Returns if the intersects + the line segment between and . + + The start of the line segment. + The end of the line segment. + + A for whether or not the intersects the line segment. + + + + + Returns if this is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns a larger that contains this and . + + The other . + The merged . + + + + Constructs an from a position and size. + + The position. + The size, typically positive. + + + + Constructs an from a , + , , and . + + The position. + The width, typically positive. + The height, typically positive. + The depth, typically positive. + + + + Constructs an from , + , , and . + + The position's X coordinate. + The position's Y coordinate. + The position's Z coordinate. + The size, typically positive. + + + + Constructs an from , + , , , + , and . + + The position's X coordinate. + The position's Y coordinate. + The position's Z coordinate. + The width, typically positive. + The height, typically positive. + The depth, typically positive. + + + + Returns if the AABBs are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left AABB. + The right AABB. + Whether or not the AABBs are exactly equal. + + + + Returns if the AABBs are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left AABB. + The right AABB. + Whether or not the AABBs are not equal. + + + + Returns if the AABB is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the AABB and the object are equal. + + + + Returns if the AABBs are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other AABB. + Whether or not the AABBs are exactly equal. + + + + Returns if this AABB and are approximately equal, + by running on each component. + + The other AABB to compare. + Whether or not the AABBs structures are approximately equal. + + + + Serves as the hash function for . + + A hash code for this AABB. + + + + Converts this to a string. + + A string representation of this AABB. + + + + Converts this to a string with the given . + + A string representation of this AABB. + + + + Exports the annotated as a clickable button. + + + + + The label of the button. + + + + + If defined, used to fetch an icon for the button via , + from the EditorIcons theme type. + + + + + Exports the annotated as a clickable button. + + The label of the button. + + + + Callable is a first class object which can be held in variables and passed to functions. + It represents a given method in an Object, and is typically used for signal callbacks. + + + + public void PrintArgs(object ar1, object arg2, object arg3 = null) + { + GD.PrintS(arg1, arg2, arg3); + } + + public void Test() + { + // This Callable object will call the PrintArgs method defined above. + Callable callable = new Callable(this, nameof(PrintArgs)); + callable.Call("hello", "world"); // Prints "hello world null". + callable.Call(Vector2.Up, 42, callable); // Prints "(0, -1) 42 Node(Node.cs)::PrintArgs". + callable.Call("invalid"); // Invalid call, should have at least 2 arguments. + } + + + + + + Constructs a new for the given . + + Action method that will be called. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constructs a new for the given . + + Action method that will be called. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Object that contains the method. + + + + + Name of the method that will be called. + + + + + Delegate of the method that will be called. + + + + + Trampoline function pointer for dynamically invoking . + + + + + Constructs a new for the method called + in the specified . + + Object that contains the method. + Name of the method that will be called. + + + + Calls the method represented by this . + Arguments can be passed and should match the method's signature. + + Arguments that will be passed to the method call. + The value returned by the method. + + + + Calls the method represented by this in deferred mode, i.e. during the idle frame. + Arguments can be passed and should match the method's signature. + + Arguments that will be passed to the method call. + + + + + Constructs a new using the + function pointer to dynamically invoke the given . + + + The parameters passed to the function are: + + + + delegateObj + The given , upcast to . + + + args + Array of arguments. + + + ret + Return value of type . + + + + The delegate should be downcast to a more specific delegate type before invoking. + + + + Usage example: + + + static void Trampoline(object delegateObj, NativeVariantPtrArgs args, out godot_variant ret) + { + if (args.Count != 1) + throw new ArgumentException($"Callable expected {1} arguments but received {args.Count}."); + + TResult res = ((Func<int, string>)delegateObj)( + VariantConversionCallbacks.GetToManagedCallback<int>()(args[0]) + ); + + ret = VariantConversionCallbacks.GetToVariantCallback<string>()(res); + } + + var callable = Callable.CreateWithUnsafeTrampoline((int num) => "foo" + num.ToString(), &Trampoline); + var res = (string)callable.Call(10); + Console.WriteLine(res); + + + Delegate method that will be called. + Trampoline function pointer for invoking the delegate. + + + + Provides a GCHandle that becomes weak when unloading the assembly load context, without having + to manually replace the GCHandle. This hides all the complexity of releasing strong GC handles + to allow the assembly load context to unload properly. + + Internally, a strong CustomGCHandle actually contains a weak GCHandle, while the actual strong + reference is stored in a static table. + + + + + Wrapper around Godot's Array class, an array of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. Otherwise prefer .NET collections + such as or . + + + + + Constructs a new empty . + + + + + Constructs a new from the given collection's elements. + + + The is . + + The collection of elements to construct from. + A new Godot Array. + + + + Constructs a new from the given objects. + + + The is . + + The objects to put in the new array. + A new Godot Array. + + + + Constructs a new from the given span's elements. + + + The is . + + A new Godot Array. + + + + Constructs a new from the given span's elements. + + + The is . + + A new Godot Array. + + + + Constructs a new from the given span's elements. + + + The is . + + A new Godot Array. + + + + Constructs a new from the given ReadOnlySpan's elements. + + + The is . + + A new Godot Array. + + + + Disposes of this . + + + + + Returns a copy of the . + If is , a deep copy if performed: + all nested arrays and dictionaries are duplicated and will not be shared with + the original array. If , a shallow copy is made and + references to the original nested arrays and dictionaries are kept, so that + modifying a sub-array or dictionary in the copy will also impact those + referenced in the source array. Note that any derived + elements will be shallow copied regardless of the + setting. + + If , performs a deep copy. + A new Godot Array. + + + + Assigns the given value to all elements in the array. This can typically be + used together with to create an array with a given + size and initialized elements. + Note: If is of a reference type ( + derived, or , etc.) then the array + is filled with the references to the same object, i.e. no duplicates are + created. + + + + var array = new Godot.Collections.Array(); + array.Resize(10); + array.Fill(0); // Initialize the 10 elements to 0. + + + + The array is read-only. + + The value to fill the array with. + + + + Returns the maximum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The maximum value contained in the array. + + + + Returns the minimum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The minimum value contained in the array. + + + + Returns a random value from the target array. + + + + var array = new Godot.Collections.Array { 1, 2, 3, 4 }; + GD.Print(array.PickRandom()); // Prints either of the four numbers. + + + A random element from the array. + + + + Compares this against the + recursively. Returns if the + sizes and contents of the arrays are equal, + otherwise. + + The other array to compare against. + + if the sizes and contents of the arrays are equal, + otherwise. + + + + + Resizes the array to contain a different number of elements. If the array + size is smaller, elements are cleared, if bigger, new elements are + . + + + The array is read-only. + + The new size of the array. + if successful, or an error code. + + + + Reverses the order of the elements in the array. + + + The array is read-only. + + + + + Shuffles the array such that the items will have a random order. + This method uses the global random number generator common to methods + such as . Call to + ensure that a new seed will be used each time if you want + non-reproducible shuffling. + + + The array is read-only. + + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + A new array that contains the elements inside the slice range. + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + -or- + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + The length of the range. + A new array that contains the elements inside the slice range. + + + + Returns the slice of the , from + (inclusive) to (exclusive), as a new . + The absolute value of and + will be clamped to the array size. + If either or are negative, they + will be relative to the end of the array (i.e. arr.GetSliceRange(0, -2) + is a shorthand for arr.GetSliceRange(0, arr.Count - 2)). + If specified, is the relative index between source + elements. It can be negative, then must be higher than + . For example, [0, 1, 2, 3, 4, 5].GetSliceRange(5, 1, -2) + returns [5, 3]. + If is true, each element will be copied by value + rather than by reference. + + The zero-based index at which the range starts. + The zero-based index at which the range ends. + The relative index between source elements to take. + If , performs a deep copy. + A new array that contains the elements inside the slice range. + + + + Sorts the array. + Note: The sorting algorithm used is not stable. This means that values + considered equal may have their order changed when using . + Note: Strings are sorted in alphabetical order (as opposed to natural order). + This may lead to unexpected behavior when sorting an array of strings ending + with a sequence of numbers. + To sort with a custom predicate use + . + + + + var strings = new Godot.Collections.Array { "string1", "string2", "string10", "string11" }; + strings.Sort(); + GD.Print(strings); // Prints [string1, string10, string11, string2] + + + + The array is read-only. + + + + + Concatenates two s together, with the + being added to the end of the specified in . + For example, [1, 2] + [3, 4] results in [1, 2, 3, 4]. + + The first array. + The second array. + A new Godot Array with the contents of both arrays. + + + + Returns the item at the given . + + + The property is assigned and the array is read-only. + + + is less than 0 or greater than the array's size. + + The item at the given . + + + + Adds an item to the end of this . + This is the same as append or push_back in GDScript. + + + The array is read-only. + + The item to add. + + + + Adds the elements of the specified collection to the end of this . + + + The array is read-only. + + + The is . + + Collection of items to add. + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an + unsorted array results in unexpected behavior. + + + is less than 0. + -or- + is less than 0. + + + and do not denote + a valid range in the . + + The starting index of the range to search. + The length of the range to search. + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an unsorted + array results in unexpected behavior. + + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Returns if the array contains the given value. + + + + var arr = new Godot.Collections.Array { "inside", 7 }; + GD.Print(arr.Contains("inside")); // True + GD.Print(arr.Contains("outside")); // False + GD.Print(arr.Contains(7)); // True + GD.Print(arr.Contains("7")); // False + + + The item to look for. + Whether or not this array contains the given item. + + + + Clears the array. This is the equivalent to using + with a size of 0 + + + The array is read-only. + + + + + Searches the array for a value and returns its index or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value and returns its index or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Inserts a new element at a given position in the array. The position + must be valid, or at the end of the array (pos == Count - 1). + Existing items will be moved to the right. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index to insert at. + The item to insert. + + + + Removes the first occurrence of the specified + from this . + + + The array is read-only. + + The value to remove. + + + + Removes an element from the array by index. + To remove an element by searching for its value, use + instead. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index of the element to remove. + + + + Returns the number of elements in this . + This is also known as the size or length of the array. + + The number of elements. + + + + Returns if the array is read-only. + See . + + + + + Makes the read-only, i.e. disabled modying of the + array's elements. Does not apply to nested content, e.g. content of + nested arrays. + + + + + Copies the elements of this to the given + C# array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The array to copy to. + The index to start at. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this array. + + + + The variant returned via the parameter is owned by the Array and must not be disposed. + + + is less than 0 or greater than the array's size. + + + + + The variant returned via the parameter is owned by the Array and must not be disposed. + + + + + Typed wrapper around Godot's Array class, an array of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. Otherwise prefer .NET collections + such as arrays or . + + The type of the array. + + + + Constructs a new empty . + + A new Godot Array. + + + + Constructs a new from the given collection's elements. + + + The is . + + The collection of elements to construct from. + A new Godot Array. + + + + Constructs a new from the given items. + + + The is . + + The items to put in the new array. + A new Godot Array. + + + + Constructs a typed from an untyped . + + + The is . + + The untyped array to construct from. + A new Godot Array. + + + + Converts this typed to an untyped . + + The typed array to convert. + A new Godot Array, or if was null. + + + + Duplicates this . + + If , performs a deep copy. + A new Godot Array. + + + + Assigns the given value to all elements in the array. This can typically be + used together with to create an array with a given + size and initialized elements. + Note: If is of a reference type ( + derived, or , etc.) then the array + is filled with the references to the same object, i.e. no duplicates are + created. + + + + var array = new Godot.Collections.Array<int>(); + array.Resize(10); + array.Fill(0); // Initialize the 10 elements to 0. + + + + The array is read-only. + + The value to fill the array with. + + + + Returns the maximum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The maximum value contained in the array. + + + + Returns the minimum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The minimum value contained in the array. + + + + Returns a random value from the target array. + + + + var array = new Godot.Collections.Array<int> { 1, 2, 3, 4 }; + GD.Print(array.PickRandom()); // Prints either of the four numbers. + + + A random element from the array. + + + + Compares this against the + recursively. Returns if the + sizes and contents of the arrays are equal, + otherwise. + + The other array to compare against. + + if the sizes and contents of the arrays are equal, + otherwise. + + + + + Resizes this to the given size. + + + The array is read-only. + + The new size of the array. + if successful, or an error code. + + + + Reverses the order of the elements in the array. + + + The array is read-only. + + + + + Shuffles the array such that the items will have a random order. + This method uses the global random number generator common to methods + such as . Call to + ensure that a new seed will be used each time if you want + non-reproducible shuffling. + + + The array is read-only. + + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + A new array that contains the elements inside the slice range. + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + -or- + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + The length of the range. + A new array that contains the elements inside the slice range. + + + + Returns the slice of the , from + (inclusive) to (exclusive), as a new . + The absolute value of and + will be clamped to the array size. + If either or are negative, they + will be relative to the end of the array (i.e. arr.GetSliceRange(0, -2) + is a shorthand for arr.GetSliceRange(0, arr.Count - 2)). + If specified, is the relative index between source + elements. It can be negative, then must be higher than + . For example, [0, 1, 2, 3, 4, 5].GetSliceRange(5, 1, -2) + returns [5, 3]. + If is true, each element will be copied by value + rather than by reference. + + The zero-based index at which the range starts. + The zero-based index at which the range ends. + The relative index between source elements to take. + If , performs a deep copy. + A new array that contains the elements inside the slice range. + + + + Sorts the array. + Note: The sorting algorithm used is not stable. This means that values + considered equal may have their order changed when using . + Note: Strings are sorted in alphabetical order (as opposed to natural order). + This may lead to unexpected behavior when sorting an array of strings ending + with a sequence of numbers. + To sort with a custom predicate use + . + + + + var strings = new Godot.Collections.Array<string> { "string1", "string2", "string10", "string11" }; + strings.Sort(); + GD.Print(strings); // Prints [string1, string10, string11, string2] + + + + The array is read-only. + + + + + Concatenates two s together, with the + being added to the end of the specified in . + For example, [1, 2] + [3, 4] results in [1, 2, 3, 4]. + + The first array. + The second array. + A new Godot Array with the contents of both arrays. + + + + Returns the item at the given . + + + The property is assigned and the array is read-only. + + + is less than 0 or greater than the array's size. + + The item at the given . + + + + Searches the array for a value and returns its index or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value and returns its index or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Inserts a new element at a given position in the array. The position + must be valid, or at the end of the array (pos == Count - 1). + Existing items will be moved to the right. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index to insert at. + The item to insert. + + + + Removes an element from the array by index. + To remove an element by searching for its value, use + instead. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index of the element to remove. + + + + Returns the number of elements in this . + This is also known as the size or length of the array. + + The number of elements. + + + + Returns if the array is read-only. + See . + + + + + Makes the read-only, i.e. disabled modying of the + array's elements. Does not apply to nested content, e.g. content of + nested arrays. + + + + + Adds an item to the end of this . + This is the same as append or push_back in GDScript. + + + The array is read-only. + + The item to add. + + + + Adds the elements of the specified collection to the end of this . + + + The array is read-only. + + + The is . + + Collection of items to add. + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an unsorted + array results in unexpected behavior. + + + is less than 0. + -or- + is less than 0. + + + and do not denote + a valid range in the . + + The starting index of the range to search. + The length of the range to search. + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an unsorted + array results in unexpected behavior. + + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Clears the array. This is the equivalent to using + with a size of 0 + + + The array is read-only. + + + + + Returns if the array contains the given value. + + + + var arr = new Godot.Collections.Array<string> { "inside", "7" }; + GD.Print(arr.Contains("inside")); // True + GD.Print(arr.Contains("outside")); // False + GD.Print(arr.Contains(7)); // False + GD.Print(arr.Contains("7")); // True + + + The item to look for. + Whether or not this array contains the given item. + + + + Copies the elements of this to the given + C# array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The C# array to copy to. + The index to start at. + + + + Removes the first occurrence of the specified + from this . + + + The array is read-only. + + The value to remove. + A indicating success or failure. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this array. + + + + Wrapper around Godot's Dictionary class, a dictionary of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. + + + + + Constructs a new empty . + + + + + Disposes of this . + + + + + Returns a copy of the . + If is , a deep copy is performed: + all nested arrays and dictionaries are duplicated and will not be shared with + the original dictionary. If , a shallow copy is made and + references to the original nested arrays and dictionaries are kept, so that + modifying a sub-array or dictionary in the copy will also impact those + referenced in the source dictionary. Note that any derived + elements will be shallow copied regardless of the + setting. + + If , performs a deep copy. + A new Godot Dictionary. + + + + Adds entries from to this dictionary. + By default, duplicate keys are not copied over, unless + is . + + + The dictionary is read-only. + + Dictionary to copy entries from. + If duplicate keys should be copied over as well. + + + + Compares this against the + recursively. Returns if the + two dictionaries contain the same keys and values. The order of the entries + does not matter. + otherwise. + + The other dictionary to compare against. + + if the dictionaries contain the same keys and values, + otherwise. + + + + + Gets the collection of keys in this . + + + + + Gets the collection of elements in this . + + + + + Returns the value at the given . + + + The property is assigned and the dictionary is read-only. + + + The property is retrieved and an entry for + does not exist in the dictionary. + + The value at the given . + + + + Adds an value at key + to this . + + + The dictionary is read-only. + + + An entry for already exists in the dictionary. + + The key at which to add the value. + The value to add. + + + + Clears the dictionary, removing all entries from it. + + + The dictionary is read-only. + + + + + Checks if this contains the given key. + + The key to look for. + Whether or not this dictionary contains the given key. + + + + Removes an element from this by key. + + + The dictionary is read-only. + + The key of the element to remove. + + + + Returns the number of elements in this . + This is also known as the size or length of the dictionary. + + The number of elements. + + + + Returns if the dictionary is read-only. + See . + + + + + Makes the read-only, i.e. disabled modying of the + dictionary's elements. Does not apply to nested content, e.g. content of + nested dictionaries. + + + + + Gets the value for the given in the dictionary. + Returns if an entry for the given key exists in + the dictionary; otherwise, returns . + + The key of the element to get. + The value at the given . + If an entry was found for the given . + + + + Copies the elements of this to the given untyped + array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The array to copy to. + The index to start at. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this dictionary. + + + + Typed wrapper around Godot's Dictionary class, a dictionary of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. Otherwise prefer .NET collections + such as . + + The type of the dictionary's keys. + The type of the dictionary's values. + + + + Constructs a new empty . + + A new Godot Dictionary. + + + + Constructs a new from the given dictionary's elements. + + + The is . + + The dictionary to construct from. + A new Godot Dictionary. + + + + Constructs a new from the given dictionary's elements. + + + The is . + + The dictionary to construct from. + A new Godot Dictionary. + + + + Converts this typed to an untyped . + + The typed dictionary to convert. + A new Godot Dictionary, or if was null. + + + + Returns a copy of the . + If is , a deep copy is performed: + all nested arrays and dictionaries are duplicated and will not be shared with + the original dictionary. If , a shallow copy is made and + references to the original nested arrays and dictionaries are kept, so that + modifying a sub-array or dictionary in the copy will also impact those + referenced in the source dictionary. Note that any derived + elements will be shallow copied regardless of the + setting. + + If , performs a deep copy. + A new Godot Dictionary. + + + + Adds entries from to this dictionary. + By default, duplicate keys are not copied over, unless + is . + + + The dictionary is read-only. + + Dictionary to copy entries from. + If duplicate keys should be copied over as well. + + + + Compares this against the + recursively. Returns if the + two dictionaries contain the same keys and values. The order of the entries does not matter. + otherwise. + + The other dictionary to compare against. + + if the dictionaries contain the same keys and values, + otherwise. + + + + + Returns the value at the given . + + + The property is assigned and the dictionary is read-only. + + + The property is retrieved and an entry for + does not exist in the dictionary. + + The value at the given . + + + + Gets the collection of keys in this . + + + + + Gets the collection of elements in this . + + + + + Adds an object at key + to this . + + + The dictionary is read-only. + + + An element with the same already exists. + + The key at which to add the object. + The object to add. + + + + Checks if this contains the given key. + + The key to look for. + Whether or not this dictionary contains the given key. + + + + Removes an element from this by key. + + + The dictionary is read-only. + + The key of the element to remove. + + + + Gets the value for the given in the dictionary. + Returns if an entry for the given key exists in + the dictionary; otherwise, returns . + + The key of the element to get. + The value at the given . + If an entry was found for the given . + + + + Returns the number of elements in this . + This is also known as the size or length of the dictionary. + + The number of elements. + + + + Returns if the dictionary is read-only. + See . + + + + + Makes the read-only, i.e. disabled + modying of the dictionary's elements. Does not apply to nested content, + e.g. content of nested dictionaries. + + + + + Clears the dictionary, removing all entries from it. + + + The dictionary is read-only. + + + + + Copies the elements of this to the given + untyped C# array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The array to copy to. + The index to start at. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this dictionary. + + + + Attribute that determines that the assembly contains Godot scripts and, optionally, the + collection of types that implement scripts; otherwise, retrieving the types requires lookup. + + + + + If the Godot scripts contained in the assembly require lookup + and can't rely on . + + + + + The collection of types that implement a Godot script. + + + + + Constructs a new AssemblyHasScriptsAttribute instance + that requires lookup to get the Godot scripts. + + + + + Constructs a new AssemblyHasScriptsAttribute instance + that includes the Godot script types and requires no lookup. + + The collection of types that implement a Godot script. + + + + Exports the annotated member as a property of the Godot Object. + + + + + Optional hint that determines how the property should be handled by the editor. + + + + + Optional string that can contain additional metadata for the . + + + + + Constructs a new ExportAttribute Instance. + + The hint for the exported property. + A string that may contain additional metadata for the hint. + + + + Define a new category for the following exported properties. This helps to organize properties in the Inspector dock. + + + + + Name of the category. + + + + + Define a new category for the following exported properties. + + The name of the category. + + + + Define a new group for the following exported properties. This helps to organize properties in the Inspector dock. + + + + + Name of the group. + + + + + If provided, the prefix that all properties must have to be considered part of the group. + + + + + Define a new group for the following exported properties. + + The name of the group. + If provided, the group would make group to only consider properties that have this prefix. + + + + Define a new subgroup for the following exported properties. This helps to organize properties in the Inspector dock. + + + + + Name of the subgroup. + + + + + If provided, the prefix that all properties must have to be considered part of the subgroup. + + + + + Define a new subgroup for the following exported properties. This helps to organize properties in the Inspector dock. + + The name of the subgroup. + If provided, the subgroup would make group to only consider properties that have this prefix. + + + + Exposes the target class as a global script class to Godot Engine. + + + + + Attribute that specifies the engine class name when it's not the same + as the generated C# class name. This allows introspection code to find + the name associated with the class. If the attribute is not present, + the C# class name can be used instead. + + + + + Original engine class name. + + + + + Specifies a custom icon for representing this class in the Godot Editor. + + + + + File path to a custom icon for representing this class in the Godot Editor. + + + + + Specify the custom icon that represents the class. + + File path to the custom icon. + + + + Attribute that restricts generic type parameters to be only types + that can be marshaled from/to a . + + + + + Attribute that changes the RPC mode for the annotated method to the given , + optionally specifying the and (on supported peers). + See and . + By default, methods are not exposed to networking (and RPCs). + + + + + RPC mode for the annotated method. + + + + + If the method will also be called locally; otherwise, it is only called remotely. + + + + + Transfer mode for the annotated method. + + + + + Transfer channel for the annotated mode. + + + + + Constructs a instance. + + The RPC mode to use. + + + + An attribute that contains the path to the object's script. + + + + + File path to the script. + + + + + Constructs a new ScriptPathAttribute instance. + + The file path to the script + + + + 3×3 matrix used for 3D rotation and scale. + Almost always used as an orthogonal basis for a Transform. + + Contains 3 vector fields X, Y and Z as its columns, which are typically + interpreted as the local basis vectors of a 3D transformation. For such use, + it is composed of a scaling and a rotation matrix, in that order (M = R.S). + + Can also be accessed as array of 3D vectors. These vectors are normally + orthogonal to each other, but are not necessarily normalized (due to scaling). + + For more information, read this documentation article: + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html + + + + + The basis matrix's X vector (column 0). + + Equivalent to and array index [0]. + + + + The basis matrix's Y vector (column 1). + + Equivalent to and array index [1]. + + + + The basis matrix's Z vector (column 2). + + Equivalent to and array index [2]. + + + + Row 0 of the basis matrix. Shows which vectors contribute + to the X direction. Rows are not very useful for user code, + but are more efficient for some internal calculations. + + + + + Row 1 of the basis matrix. Shows which vectors contribute + to the Y direction. Rows are not very useful for user code, + but are more efficient for some internal calculations. + + + + + Row 2 of the basis matrix. Shows which vectors contribute + to the Z direction. Rows are not very useful for user code, + but are more efficient for some internal calculations. + + + + + Column 0 of the basis matrix (the X vector). + + Equivalent to and array index [0]. + + + + Column 1 of the basis matrix (the Y vector). + + Equivalent to and array index [1]. + + + + Column 2 of the basis matrix (the Z vector). + + Equivalent to and array index [2]. + + + + Assuming that the matrix is the combination of a rotation and scaling, + return the absolute value of scaling factors along each axis. + + + + + Access whole columns in the form of . + + Which column vector. + + is not 0, 1, 2 or 3. + + The basis column. + + + + Access matrix elements in column-major order. + + Which column, the matrix horizontal position. + Which row, the matrix vertical position. + The matrix element. + + + + Returns the determinant of the basis matrix. If the basis is + uniformly scaled, its determinant is the square of the scale. + + A negative determinant means the basis has a negative scale. + A zero determinant means the basis isn't invertible, + and is usually considered invalid. + + The determinant of the basis matrix. + + + + Returns the basis's rotation in the form of Euler angles. + The Euler order depends on the parameter, + by default it uses the YXZ convention: when decomposing, + first Z, then X, and Y last. The returned vector contains + the rotation angles in the format (X angle, Y angle, Z angle). + + Consider using the method instead, which + returns a quaternion instead of Euler angles. + + The Euler order to use. By default, use YXZ order (most common). + A representing the basis rotation in Euler angles. + + + + Returns the 's rotation in the form of a + . See if you + need Euler angles, but keep in mind quaternions should generally + be preferred to Euler angles. + + The basis rotation. + + + + Returns the inverse of the matrix. + + The inverse matrix. + + + + Returns if this basis is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Creates a with a rotation such that the forward + axis (-Z) points towards the position. + The up axis (+Y) points as close to the vector + as possible while staying perpendicular to the forward axis. + The resulting Basis is orthonormalized. + The and vectors + cannot be zero, and cannot be parallel to each other. + + The position to look at. + The relative up direction. + + If true, then the model is oriented in reverse, + towards the model front axis (+Z, Vector3.ModelFront), + which is more useful for orienting 3D models. + + The resulting basis matrix. + + + + + + + Returns the orthonormalized version of the basis matrix (useful to + call occasionally to avoid rounding errors for orthogonal matrices). + This performs a Gram-Schmidt orthonormalization on the basis of the matrix. + + An orthonormalized basis matrix. + + + + Introduce an additional rotation around the given + by (in radians). The axis must be a normalized vector. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + The rotated basis matrix. + + + + Introduce an additional scaling specified by the given 3D scaling factor. + + The scale to introduce. + The scaled basis matrix. + + + + Assuming that the matrix is a proper rotation matrix, slerp performs + a spherical-linear interpolation with another rotation matrix. + + The destination basis for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting basis matrix of the interpolation. + + + + Transposed dot product with the X axis of the matrix. + + A vector to calculate the dot product with. + The resulting dot product. + + + + Transposed dot product with the Y axis of the matrix. + + A vector to calculate the dot product with. + The resulting dot product. + + + + Transposed dot product with the Z axis of the matrix. + + A vector to calculate the dot product with. + The resulting dot product. + + + + Returns the transposed version of the basis matrix. + + The transposed basis matrix. + + + + The identity basis, with no rotation or scaling applied. + This is used as a replacement for Basis() in GDScript. + Do not use new Basis() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Basis(Vector3.Right, Vector3.Up, Vector3.Back). + + + + The basis that will flip something along the X axis when used in a transformation. + + Equivalent to new Basis(Vector3.Left, Vector3.Up, Vector3.Back). + + + + The basis that will flip something along the Y axis when used in a transformation. + + Equivalent to new Basis(Vector3.Right, Vector3.Down, Vector3.Back). + + + + The basis that will flip something along the Z axis when used in a transformation. + + Equivalent to new Basis(Vector3.Right, Vector3.Up, Vector3.Forward). + + + + Constructs a pure rotation basis matrix from the given quaternion. + + The quaternion to create the basis from. + + + + Constructs a pure rotation basis matrix, rotated around the given + by (in radians). The axis must be a normalized vector. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + + + + Constructs a basis matrix from 3 axis vectors (matrix columns). + + The X vector, or Column0. + The Y vector, or Column1. + The Z vector, or Column2. + + + + Constructs a transformation matrix from the given components. + Arguments are named such that xy is equal to calling X.Y. + + The X component of the X column vector, accessed via b.X.X or [0][0]. + The X component of the Y column vector, accessed via b.Y.X or [1][0]. + The X component of the Z column vector, accessed via b.Z.X or [2][0]. + The Y component of the X column vector, accessed via b.X.Y or [0][1]. + The Y component of the Y column vector, accessed via b.Y.Y or [1][1]. + The Y component of the Z column vector, accessed via b.Y.Y or [2][1]. + The Z component of the X column vector, accessed via b.X.Y or [0][2]. + The Z component of the Y column vector, accessed via b.Y.Y or [1][2]. + The Z component of the Z column vector, accessed via b.Y.Y or [2][2]. + + + + Constructs a Basis matrix from Euler angles in the specified rotation order. By default, use YXZ order (most common). + + The Euler angles to use. + The order to compose the Euler angles. + + + + Constructs a pure scale basis matrix with no rotation or shearing. + The scale values are set as the main diagonal of the matrix, + and all of the other parts of the matrix are zero. + + The scale Vector3. + A pure scale Basis matrix. + + + + Composes these two basis matrices by multiplying them + together. This has the effect of transforming the second basis + (the child) by the first basis (the parent). + + The parent basis. + The child basis. + The composed basis. + + + + Returns a Vector3 transformed (multiplied) by the basis matrix. + + The basis matrix transformation to apply. + A Vector3 to transform. + The transformed Vector3. + + + + Returns a Vector3 transformed (multiplied) by the inverse basis matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + vector * basis is equivalent to basis.Transposed() * vector. See . + For transforming by inverse of a non-orthonormal basis (e.g. with scaling) basis.Inverse() * vector can be used instead. See . + + A Vector3 to inversely transform. + The basis matrix transformation to apply. + The inversely transformed vector. + + + + Returns if the basis matrices are exactly + equal. Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left basis. + The right basis. + Whether or not the basis matrices are exactly equal. + + + + Returns if the basis matrices are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left basis. + The right basis. + Whether or not the basis matrices are not equal. + + + + Returns if the is + exactly equal to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the basis matrix and the object are exactly equal. + + + + Returns if the basis matrices are exactly + equal. Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other basis. + Whether or not the basis matrices are exactly equal. + + + + Returns if this basis and are approximately equal, + by running on each component. + + The other basis to compare. + Whether or not the bases are approximately equal. + + + + Serves as the hash function for . + + A hash code for this basis. + + + + Converts this to a string. + + A string representation of this basis. + + + + Converts this to a string with the given . + + A string representation of this basis. + + + + A color represented by red, green, blue, and alpha (RGBA) components. + The alpha component is often used for transparency. + Values are in floating-point and usually range from 0 to 1. + Some properties (such as ) may accept values + greater than 1 (overbright or HDR colors). + + If you want to supply values in a range of 0 to 255, you should use + and the r8/g8/b8/a8 properties. + + + + + The color's red component, typically on the range of 0 to 1. + + + + + The color's green component, typically on the range of 0 to 1. + + + + + The color's blue component, typically on the range of 0 to 1. + + + + + The color's alpha component, typically on the range of 0 to 1. + A value of 0 means that the color is fully transparent. + A value of 1 means that the color is fully opaque. + + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + The HSV hue of this color, on the range 0 to 1. + + Getting is a long process, refer to the source code for details. Setting uses . + + + + The HSV saturation of this color, on the range 0 to 1. + + Getting is equivalent to the ratio between the min and max RGB value. Setting uses . + + + + The HSV value (brightness) of this color, on the range 0 to 1. + + Getting is equivalent to using on the RGB components. Setting uses . + + + + Returns the light intensity of the color, as a value between 0.0 and 1.0 (inclusive). + This is useful when determining light or dark color. Colors with a luminance smaller + than 0.5 can be generally considered dark. + Note: relies on the color being in the linear color space to + return an accurate relative luminance value. If the color is in the sRGB color space + use to convert it to the linear color space first. + + + + + Access color components using their index. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to , + [3] is equivalent to . + + + + + Returns a new color resulting from blending this color over another. + If the color is opaque, the result is also opaque. + The second color may have a range of alpha values. + + The color to blend over. + This color blended over . + + + + Returns a new color with all components clamped between the + components of and + using . + + The color with minimum allowed values. + The color with maximum allowed values. + The color with all components clamped. + + + + Returns a new color resulting from making this color darker + by the specified ratio (on the range of 0 to 1). + + The ratio to darken by. + The darkened color. + + + + Returns the inverted color: (1 - r, 1 - g, 1 - b, a). + + The inverted color. + + + + Returns a new color resulting from making this color lighter + by the specified ratio (on the range of 0 to 1). + + The ratio to lighten by. + The lightened color. + + + + Returns the result of the linear interpolation between + this color and by amount . + + The destination color for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting color of the interpolation. + + + + Returns the color converted to the sRGB color space. + This method assumes the original color is in the linear color space. + See also which performs the opposite operation. + + The sRGB color. + + + + Returns the color converted to linear color space. + This method assumes the original color already is in sRGB color space. + See also which performs the opposite operation. + + The color in linear color space. + + + + Returns the color converted to an unsigned 32-bit integer in ABGR + format (each byte represents a color channel). + ABGR is the reversed version of the default format. + + A representing this color in ABGR32 format. + + + + Returns the color converted to an unsigned 64-bit integer in ABGR + format (each word represents a color channel). + ABGR is the reversed version of the default format. + + A representing this color in ABGR64 format. + + + + Returns the color converted to an unsigned 32-bit integer in ARGB + format (each byte represents a color channel). + ARGB is more compatible with DirectX, but not used much in Godot. + + A representing this color in ARGB32 format. + + + + Returns the color converted to an unsigned 64-bit integer in ARGB + format (each word represents a color channel). + ARGB is more compatible with DirectX, but not used much in Godot. + + A representing this color in ARGB64 format. + + + + Returns the color converted to an unsigned 32-bit integer in RGBA + format (each byte represents a color channel). + RGBA is Godot's default and recommended format. + + A representing this color in RGBA32 format. + + + + Returns the color converted to an unsigned 64-bit integer in RGBA + format (each word represents a color channel). + RGBA is Godot's default and recommended format. + + A representing this color in RGBA64 format. + + + + Returns the color's HTML hexadecimal color string in RGBA format. + + + Whether or not to include alpha. If , the color is RGB instead of RGBA. + + A string for the HTML hexadecimal representation of this color. + + + + Constructs a from RGBA values, typically on the range of 0 to 1. + + The color's red component, typically on the range of 0 to 1. + The color's green component, typically on the range of 0 to 1. + The color's blue component, typically on the range of 0 to 1. + + The color's alpha value, typically on the range of 0 to 1. + A value of 0 means that the color is fully transparent. + A value of 1 means that the color is fully opaque. + + + + + Constructs a from an existing color and an alpha value. + + The color to construct from. Only its RGB values are used. + + The color's alpha value, typically on the range of 0 to 1. + A value of 0 means that the color is fully transparent. + A value of 1 means that the color is fully opaque. + + + + + Constructs a from an unsigned 32-bit integer in RGBA format + (each byte represents a color channel). + + The representing the color as 0xRRGGBBAA. + + + + Constructs a from an unsigned 64-bit integer in RGBA format + (each word represents a color channel). + + The representing the color as 0xRRRRGGGGBBBBAAAA. + + + + Constructs a either from an HTML color code or from a + standardized color name. Supported color names are the same as the + constants. + + The HTML color code or color name to construct from. + + A color cannot be inferred from the given . + It was invalid HTML and a color with that name was not found. + + + + + Constructs a either from an HTML color code or from a + standardized color name, with on the range of 0 to 1. Supported + color names are the same as the constants. + + The HTML color code or color name to construct from. + The alpha (transparency) value, typically on the range of 0 to 1. + + + + Constructs a from the HTML hexadecimal color string in RGBA format. + + A string for the HTML hexadecimal representation of this color. + + color code is invalid. + + + + + Returns a color constructed from integer red, green, blue, and alpha channels. + Each channel should have 8 bits of information ranging from 0 to 255. + + The red component represented on the range of 0 to 255. + The green component represented on the range of 0 to 255. + The blue component represented on the range of 0 to 255. + The alpha (transparency) component represented on the range of 0 to 255. + The constructed color. + + + + Returns a color according to the standardized name, with the + specified alpha value. Supported color names are the same as + the constants defined in . + + The name of the color. + + A color with the given name is not found. + + The constructed color. + + + + Returns a color according to the standardized name, with the + specified alpha value. Supported color names are the same as + the constants defined in . + If a color with the given name is not found, it returns + . + + The name of the color. + + The default color to return when a color with the given name + is not found. + + The constructed color. + + + + Constructs a color from an HSV profile. The , + , and are typically + between 0.0 and 1.0. + + The HSV hue, typically on the range of 0 to 1. + The HSV saturation, typically on the range of 0 to 1. + The HSV value (brightness), typically on the range of 0 to 1. + The alpha (transparency) value, typically on the range of 0 to 1. + The constructed color. + + + + Converts a color to HSV values. This is equivalent to using each of + the h/s/v properties, but much more efficient. + + Output parameter for the HSV hue. + Output parameter for the HSV saturation. + Output parameter for the HSV value. + + + + Constructs a color from an OK HSL profile. The , + , and are typically + between 0.0 and 1.0. + + The OK HSL hue, typically on the range of 0 to 1. + The OK HSL saturation, typically on the range of 0 to 1. + The OK HSL lightness, typically on the range of 0 to 1. + The alpha (transparency) value, typically on the range of 0 to 1. + The constructed color. + + + + Encodes a from a RGBE9995 format integer. + See . + + The RGBE9995 encoded color. + The constructed color. + + + + Constructs a color from the given string, which can be either an HTML color + code or a named color. Returns if the color cannot + be inferred from the string. Supported color names are the same as the + constants. + + The HTML color code or color name. + The fallback color to return if the color cannot be inferred. + The constructed color. + + + + Returns if is a valid HTML hexadecimal + color string. The string must be a hexadecimal value (case-insensitive) of either 3, + 4, 6 or 8 digits, and may be prefixed by a hash sign (#). This method is + identical to . + + The HTML hexadecimal color string. + Whether or not the string was a valid HTML hexadecimal color string. + + + + Adds each component of the + with the components of the given . + + The left color. + The right color. + The added color. + + + + Subtracts each component of the + by the components of the given . + + The left color. + The right color. + The subtracted color. + + + + Inverts the given color. This is equivalent to + Colors.White - c or + new Color(1 - c.R, 1 - c.G, 1 - c.B, 1 - c.A). + + The color to invert. + The inverted color. + + + + Multiplies each component of the + by the given . + + The color to multiply. + The value to multiply by. + The multiplied color. + + + + Multiplies each component of the + by the given . + + The value to multiply by. + The color to multiply. + The multiplied color. + + + + Multiplies each component of the + by the components of the given . + + The left color. + The right color. + The multiplied color. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided color. + + + + Divides each component of the + by the components of the given . + + The dividend color. + The divisor color. + The divided color. + + + + Returns if the colors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left color. + The right color. + Whether or not the colors are equal. + + + + Returns if the colors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left color. + The right color. + Whether or not the colors are equal. + + + + Compares two s by first checking if + the red value of the color is less than + the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is less than the right. + + + + Compares two s by first checking if + the red value of the color is greater than + the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is greater than the right. + + + + Compares two s by first checking if + the red value of the color is less than + or equal to the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is less than or equal to the right. + + + + Compares two s by first checking if + the red value of the color is greater than + or equal to the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is greater than or equal to the right. + + + + Returns if this color and are equal. + + The other object to compare. + Whether or not the color and the other object are equal. + + + + Returns if the colors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other color. + Whether or not the colors are equal. + + + + Returns if this color and are approximately equal, + by running on each component. + + The other color to compare. + Whether or not the colors are approximately equal. + + + + Serves as the hash function for . + + A hash code for this color. + + + + Converts this to a string. + + A string representation of this color. + + + + Converts this to a string with the given . + + A string representation of this color. + + + + This class contains color constants created from standardized color names. + The standardized color set is based on the X11 and .NET color names. + + + + + An advanced 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 instance is able to call because it inherits from . + You can create new instances, using Object.new() in GDScript, or new GodotObject in C#. + To delete an Object instance, call . 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, (and by extension ) deletes itself when no longer referenced, and deletes its children when freed. + Objects can have a attached to them. Once the 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 , may be overridden to customize properties in several ways. This allows them to be available to the editor, display as lists of options, sub-divide into groups, save on disk, etc. Scripting languages offer easier ways to customize properties, such as with the [annotation @GDScript.@export] annotation. + Godot is very dynamic. An object's script, and therefore its properties, methods and signals, can be changed at run-time. Because of this, there can be occasions where, for example, a property required by a method may not exist. To prevent run-time errors, see methods such as , , , , , etc. Note that these methods are much slower than direct references. + In GDScript, you can also check if a given property, method, or signal name exists in an object with the in operator: + + var node = Node.new() + print("name" in node) # Prints true + print("get_parent" in node) # Prints true + print("tree_entered" in node) # Prints true + print("unknown" in node) # Prints false + + Notifications are constants commonly sent and received by objects. For example, on every rendered frame, the notifies nodes inside the tree with a . The nodes receive it and may call to update. To make use of notifications, see and . + Lastly, every object can also contain metadata (data about data). 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 , references to an object stored in a variable can become invalid without being set to . To check if an object has been deleted, do not compare it against . Instead, use @GlobalScope.is_instance_valid. It's also recommended to inherit from for classes storing data instead of . + Note: The script is not exposed like most properties. To set or get an object's in code, use and , respectively. + Note: In a boolean context, an will evaluate to if it is equal to or it has been freed. Otherwise, an will always evaluate to . See also @GlobalScope.is_instance_valid. + + + + + Returns the that corresponds to . + All Objects have a unique instance ID. See also . + + + + public partial class MyNode : Node + { + public string Foo { get; set; } = "bar"; + + public override void _Ready() + { + ulong id = GetInstanceId(); + var inst = (MyNode)InstanceFromId(Id); + GD.Print(inst.Foo); // Prints bar + } + } + + + Instance ID of the Object to retrieve. + The instance. + + + + Returns if the that corresponds + to is a valid object (e.g. has not been deleted from + memory). All Objects have a unique instance ID. + + The Object ID to check. + If the instance with the given ID is a valid object. + + + + Returns if is a + valid (e.g. has not been deleted from memory). + + The instance to check. + If the instance is a valid object. + + + + Returns a weak reference to an object, or + if the argument is invalid. + A weak reference to an object is not enough to keep the object alive: + when the only remaining references to a referent are weak references, + garbage collection is free to destroy the referent and reuse its memory + for something else. However, until the object is actually destroyed the + weak reference may return the object even if there are no strong references + to it. + + The object. + + The reference to the object or . + + + + + Constructs a new . + + + + + The pointer to the native instance of this . + + + + + Disposes of this . + + + + + Disposes implementation of this . + + + + + Converts this to a string. + + A string representation of this object. + + + + Returns a new awaiter configured to complete when the instance + emits the signal specified by the parameter. + + + The instance the awaiter will be listening to. + + + The signal the awaiter will be waiting for. + + + This sample prints a message once every frame up to 100 times. + + public override void _Ready() + { + for (int i = 0; i < 100; i++) + { + await ToSignal(GetTree(), "process_frame"); + GD.Print($"Frame {i}"); + } + } + + + + A that completes when + emits the . + + + + + Set the value of a property contained in this class. + This method is used by Godot to assign property values. + Do not call or override this method. + + Name of the property to set. + Value to set the property to if it was found. + if a property with the given name was found. + + + + Get the value of a property contained in this class. + This method is used by Godot to retrieve property values. + Do not call or override this method. + + Name of the property to get. + Value of the property if it was found. + if a property with the given name was found. + + + + Raises the signal with the given name, using the given arguments. + This method is used by Godot to raise signals from the engine side.\n" + Do not call or override this method. + + Name of the signal to raise. + Arguments to use with the raised signal. + + + + Saves this instance's state to be restored when reloading assemblies. + Do not call or override this method. + To add data to be saved and restored, implement . + + Object used to save the data. + + + + Restores this instance's state after reloading assemblies. + Do not call or override this method. + To add data to be saved and restored, implement . + + Object that contains the previously saved data. + + + + Notification received when the object is initialized, before its script is attached. Used internally. + + + + + Notification received when the object is about to be deleted. Can be used like destructors in object-oriented programming languages. + + + + + Notification received when the object finishes hot reloading. This notification is only sent for extensions classes and derived. + + + + + Deferred connections trigger their s on idle time (at the end of the frame), rather than instantly. + + + + + Persisting connections are stored when the object is serialized (such as when using ). In the editor, connections created through the Node dock are always persisting. + + + + + One-shot connections disconnect themselves after emission. + + + + + Reference-counted connections can be assigned to the same multiple times. Each disconnection decreases the internal counter. The signal fully disconnects only when the counter reaches 0. + + + + + Override this method to customize the behavior of . Should return the given 's value, or if the should be handled normally. + Combined with and , this method allows defining custom properties, which is particularly useful for editor plugins. Note that a property must be present in , otherwise this method will not be called. + + public override Variant _Get(StringName property) + { + if (property == "FakeProperty") + { + GD.Print("Getting my property!"); + return 4; + } + return default; + } + + public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() + { + return new Godot.Collections.Array<Godot.Collections.Dictionary>() + { + new Godot.Collections.Dictionary() + { + { "name", "FakeProperty" }, + { "type", (int)Variant.Type.Int } + } + }; + } + + + + + + Override this method to provide a custom list of additional properties to handle by the engine. + Should return a property list, as an of dictionaries. The result is added to the array of , and should be formatted in the same way. Each must at least contain the name and type entries. + You can use and to customize the default values of the properties added by this method. + The example below displays a list of numbers shown as words going from ZERO to FIVE, with number_count controlling the size of the list: + + [Tool] + public partial class MyNode : Node + { + private int _numberCount; + + [Export] + public int NumberCount + { + get => _numberCount; + set + { + _numberCount = value; + _numbers.Resize(_numberCount); + NotifyPropertyListChanged(); + } + } + + private Godot.Collections.Array<int> _numbers = new(); + + public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() + { + var properties = new Godot.Collections.Array<Godot.Collections.Dictionary>(); + + for (int i = 0; i < _numberCount; i++) + { + properties.Add(new Godot.Collections.Dictionary() + { + { "name", $"number_{i}" }, + { "type", (int)Variant.Type.Int }, + { "hint", (int)PropertyHint.Enum }, + { "hint_string", "Zero,One,Two,Three,Four,Five" }, + }); + } + + return properties; + } + + public override Variant _Get(StringName property) + { + string propertyName = property.ToString(); + if (propertyName.StartsWith("number_")) + { + int index = int.Parse(propertyName.Substring("number_".Length)); + return _numbers[index]; + } + return default; + } + + public override bool _Set(StringName property, Variant value) + { + string propertyName = property.ToString(); + if (propertyName.StartsWith("number_")) + { + int index = int.Parse(propertyName.Substring("number_".Length)); + _numbers[index] = value.As<int>(); + return true; + } + return false; + } + } + + Note: This method is intended for advanced purposes. For most common use cases, the scripting languages offer easier ways to handle properties. See [annotation @GDScript.@export], [annotation @GDScript.@export_enum], [annotation @GDScript.@export_group], etc. If you want to customize exported properties, use . + Note: If the object's script is not [annotation @GDScript.@tool], this method will not be called in the editor. + + + + + Returns the current iterable value. stores the iteration state, but unlike and the state is supposed to be read-only, so there is no wrapper. + + + + + Initializes the iterator. stores the iteration state. Since GDScript does not support passing arguments by reference, a single-element array is used as a wrapper. Returns so long as the iterator has not reached the end. + Example: + + class MyRange: + var _from + var _to + + func _init(from, to): + assert(from <= to) + _from = from + _to = to + + func _iter_init(iter): + iter[0] = _from + return iter[0] < _to + + func _iter_next(iter): + iter[0] += 1 + return iter[0] < _to + + func _iter_get(iter): + return iter + + func _ready(): + var my_range = MyRange.new(2, 5) + for x in my_range: + print(x) # Prints 2, 3, 4. + + Note: Alternatively, you can ignore and use the object's state instead, see online docs for an example. Note that in this case you will not be able to reuse the same iterator instance in nested loops. Also, make sure you reset the iterator state in this method if you want to reuse the same instance multiple times. + + + + + Moves the iterator to the next iteration. stores the iteration state. Since GDScript does not support passing arguments by reference, a single-element array is used as a wrapper. Returns so long as the iterator has not reached the end. + + + + + Called when the object receives a notification, which can be identified in by comparing it with a constant. See also . + + public override void _Notification(int what) + { + if (what == NotificationPredelete) + { + GD.Print("Goodbye!"); + } + } + + Note: The base defines a few notifications ( and ). Inheriting classes such as define a lot more notifications, which are also received by this method. + + + + + Override this method to customize the given 's revert behavior. Should return if the has a custom default value and is revertible in the Inspector dock. Use to specify the 's default value. + Note: This method must return consistently, regardless of the current value of the . + + + + + Override this method to customize the given 's revert behavior. Should return the default value for the . If the default value differs from the 's current value, a revert icon is displayed in the Inspector dock. + Note: must also be overridden for this method to be called. + + + + + Override this method to customize the behavior of . Should set the to and return , or if the should be handled normally. The exact way to set the is up to this method's implementation. + Combined with and , this method allows defining custom properties, which is particularly useful for editor plugins. Note that a property must be present in , otherwise this method will not be called. + + private Godot.Collections.Dictionary _internalData = new Godot.Collections.Dictionary(); + + public override bool _Set(StringName property, Variant value) + { + if (property == "FakeProperty") + { + // Storing the value in the fake property. + _internalData["FakeProperty"] = value; + return true; + } + + return false; + } + + public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() + { + return new Godot.Collections.Array<Godot.Collections.Dictionary>() + { + new Godot.Collections.Dictionary() + { + { "name", "FakeProperty" }, + { "type", (int)Variant.Type.Int } + } + }; + } + + + + + + Override this method to customize existing properties. Every property info goes through this method, except properties added with . The dictionary contents is the same as in . + + [Tool] + public partial class MyNode : Node + { + private bool _isNumberEditable; + + [Export] + public bool IsNumberEditable + { + get => _isNumberEditable; + set + { + _isNumberEditable = value; + NotifyPropertyListChanged(); + } + } + + [Export] + public int Number { get; set; } + + public override void _ValidateProperty(Godot.Collections.Dictionary property) + { + if (property["name"].AsStringName() == PropertyName.Number && !IsNumberEditable) + { + var usage = property["usage"].As<PropertyUsageFlags>() | PropertyUsageFlags.ReadOnly; + property["usage"] = (int)usage; + } + } + } + + + + + + Deletes the object from memory. Pre-existing references to the object become invalid, and any attempt to access them will result in a run-time error. Checking the references with @GlobalScope.is_instance_valid will return . + + + + + Returns the object's built-in class name, as a . See also . + Note: This method ignores class_name declarations. If this object's script has defined a class_name, the base, built-in class name is returned instead. + + + + + Returns if the object inherits from the given . See also . + + var sprite2D = new Sprite2D(); + sprite2D.IsClass("Sprite2D"); // Returns true + sprite2D.IsClass("Node"); // Returns true + sprite2D.IsClass("Node3D"); // Returns false + + Note: This method ignores class_name declarations in the object's script. + + + + + Assigns to the given . If the property does not exist or the given 's type doesn't match, nothing happens. + + var node = new Node2D(); + node.Set(Node2D.PropertyName.GlobalScale, new Vector2(8, 2.5f)); + GD.Print(node.GlobalScale); // Prints (8, 2.5) + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Returns the value of the given . If the does not exist, this method returns . + + var node = new Node2D(); + node.Rotation = 1.5f; + var a = node.Get(Node2D.PropertyName.Rotation); // a is 1.5 + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Assigns a new to the property identified by the . The path should be a relative to this object, and can use the colon character (:) to access nested properties. + + var node = new Node2D(); + node.SetIndexed("position", new Vector2(42, 0)); + node.SetIndexed("position:y", -10); + GD.Print(node.Position); // Prints (42, -10) + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Gets the object's property indexed by the given . The path should be a relative to the current object and can use the colon character (:) to access nested properties. + Examples: "position:x" or "material:next_pass:blend_mode". + + var node = new Node2D(); + node.Position = new Vector2(5, -10); + var a = node.GetIndexed("position"); // a is Vector2(5, -10) + var b = node.GetIndexed("position:y"); // b is -10 + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + Note: This method does not support actual paths to nodes in the , only sub-property paths. In the context of nodes, use instead. + + + + + Returns the object's property list as an of dictionaries. Each contains the following entries: + - name is the property's name, as a ; + - class_name is an empty , unless the property is and it inherits from a class; + - type is the property's type, as an (see ); + - hint is how the property is meant to be edited (see ); + - hint_string depends on the hint (see ); + - usage is a combination of . + Note: In GDScript, all class members are treated as properties. In C# and GDExtension, it may be necessary to explicitly mark class members as Godot properties using decorators or attributes. + + + + + Returns this object's methods and their signatures as an of dictionaries. Each contains the following entries: + - name is the name of the method, as a ; + - args is an of dictionaries representing the arguments; + - default_args is the default arguments as an of variants; + - flags is a combination of ; + - id is the method's internal identifier ; + - return is the returned value, as a ; + Note: The dictionaries of args and return are formatted identically to the results of , although not all entries are used. + + + + + Returns if the given has a custom default value. Use to get the 's default value. + Note: This method is used by the Inspector dock to display a revert icon. The object must implement to customize the default value. If is not implemented, this method returns . + + + + + Returns the custom default value of the given . Use to check if the has a custom default value. + Note: This method is used by the Inspector dock to display a revert icon. The object must implement to customize the default value. If is not implemented, this method returns . + + + + + Sends the given notification to all classes inherited by the object, triggering calls to , starting from the highest ancestor (the class) and going down to the object's script. + If is , the call order is reversed. + + var player = new Node2D(); + player.SetScript(GD.Load("res://player.gd")); + + player.Notification(NotificationEnterTree); + // The call order is GodotObject -> Node -> Node2D -> player.gd. + + player.Notification(NotificationEnterTree, true); + // The call order is player.gd -> Node2D -> Node -> GodotObject. + + + + + + Returns the object's unique instance ID. This ID can be saved in , and can be used to retrieve this object instance with @GlobalScope.instance_from_id. + Note: This ID is only useful during the current session. It won't correspond to a similar object if the ID is sent over a network, or loaded from a file at a later time. + + + + + Attaches to the object, and instantiates it. As a result, the script's is called. A is used to extend the object's functionality. + If a script already exists, its instance is detached, and its property values and state are lost. Built-in property values are still kept. + + + + + Returns the object's instance, or if no script is attached. + + + + + Adds or changes the entry inside the object's metadata. The metadata can be any , although some types cannot be serialized correctly. + If is , the entry is removed. This is the equivalent of using . See also and . + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Removes the given entry from the object's metadata. See also , and . + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Returns the object's metadata value for the given entry . If the entry does not exist, returns . If is , an error is also generated. + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Returns if a metadata entry is found with the given . See also , and . + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Returns the object's metadata entry names as a []. + + + + + Adds a user-defined signal named . Optional arguments for the signal can be added as an of dictionaries, each defining a name and a type (see ). See also and . + + AddUserSignal("Hurt", new Godot.Collections.Array() + { + new Godot.Collections.Dictionary() + { + { "name", "damage" }, + { "type", (int)Variant.Type.Int } + }, + new Godot.Collections.Dictionary() + { + { "name", "source" }, + { "type", (int)Variant.Type.Object } + } + }); + + + + + + Returns if the given user-defined name exists. Only signals added with are included. See also . + + + + + Removes the given user signal from the object. See also and . + + + + + Emits the given by name. The signal must exist, so it should be a built-in signal of this class or one of its inherited classes, or a user-defined signal (see ). This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + Returns if does not exist or the parameters are invalid. + + EmitSignal(SignalName.Hit, "sword", 100); + EmitSignal(SignalName.GameOver); + + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Emits the given by name. The signal must exist, so it should be a built-in signal of this class or one of its inherited classes, or a user-defined signal (see ). This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + Returns if does not exist or the parameters are invalid. + + EmitSignal(SignalName.Hit, "sword", 100); + EmitSignal(SignalName.GameOver); + + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Calls the on the object and returns the result. This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.Call(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls the on the object and returns the result. This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.Call(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls the on the object during idle time. Always returns , not the method's result. + Idle time happens mainly at the end of process and physics frames. In it, deferred calls will be run until there are none left, which means you can defer calls from other deferred calls and they'll still be run in the current idle time cycle. This means you should not call a method deferred from itself (or from a method called by it), as this causes infinite recursion the same way as if you had called the method directly. + This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + See also Callable.call_deferred. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + Note: If you're looking to delay the function call by a frame, refer to the and signals. + + var node = Node3D.new() + # Make a Callable and bind the arguments to the node's rotate() call. + var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571) + # Connect the callable to the process_frame signal, so it gets called in the next process frame. + # CONNECT_ONE_SHOT makes sure it only gets called once instead of every frame. + get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT) + + + + + + Calls the on the object during idle time. Always returns , not the method's result. + Idle time happens mainly at the end of process and physics frames. In it, deferred calls will be run until there are none left, which means you can defer calls from other deferred calls and they'll still be run in the current idle time cycle. This means you should not call a method deferred from itself (or from a method called by it), as this causes infinite recursion the same way as if you had called the method directly. + This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + See also Callable.call_deferred. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + Note: If you're looking to delay the function call by a frame, refer to the and signals. + + var node = Node3D.new() + # Make a Callable and bind the arguments to the node's rotate() call. + var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571) + # Connect the callable to the process_frame signal, so it gets called in the next process frame. + # CONNECT_ONE_SHOT makes sure it only gets called once instead of every frame. + get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT) + + + + + + Assigns to the given , at the end of the current frame. This is equivalent to calling through . + + var node = new Node2D(); + node.Rotation = 1.5f; + node.SetDeferred(Node2D.PropertyName.Rotation, 3f); + GD.Print(node.Rotation); // Prints 1.5 + + await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame); + GD.Print(node.Rotation); // Prints 3.0 + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Calls the on the object and returns the result. Unlike , this method expects all parameters to be contained inside . + + var node = new Node3D(); + node.Callv(Node3D.MethodName.Rotate, new Godot.Collections.Array { new Vector3(1f, 0f, 0f), 1.571f }); + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Returns if the given name exists in the object. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Returns the number of arguments of the given by name. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Returns if the given name exists in the object. + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Returns the list of existing signals as an of dictionaries. + Note: Due of the implementation, each is formatted very similarly to the returned values of . + + + + + Returns an of connections for the given name. Each connection is represented as a that contains three entries: + - signal is a reference to the ; + - callable is a reference to the connected ; + - flags is a combination of . + + + + + Returns an of signal connections received by this object. Each connection is represented as a that contains three entries: + - signal is a reference to the ; + - callable is a reference to the ; + - flags is a combination of . + + + + + Connects a by name to a . Optional can be also added to configure the connection's behavior (see constants). + A signal can only be connected once to the same . If the signal is already connected, this method returns and pushes an error message, unless the signal is connected with . To prevent this, use first to check for existing connections. + If the 's object is freed, the connection will be lost. + Examples with recommended syntax: + Connecting signals is one of the most common operations in Godot and the API gives many options to do so, which are described further down. The code block below shows the recommended approach. + + public override void _Ready() + { + var button = new Button(); + // C# supports passing signals as events, so we can use this idiomatic construct: + button.ButtonDown += OnButtonDown; + + // This assumes that a `Player` class exists, which defines a `Hit` signal. + var player = new Player(); + // We can use lambdas when we need to bind additional parameters. + player.Hit += () => OnPlayerHit("sword", 100); + } + + private void OnButtonDown() + { + GD.Print("Button down!"); + } + + private void OnPlayerHit(string weaponType, int damage) + { + GD.Print($"Hit with weapon {weaponType} for {damage} damage."); + } + + Object.connect() or Signal.connect()? + As seen above, the recommended method to connect signals is not . The code block below shows the four options for connecting signals, using either this legacy method or the recommended Signal.connect, and using either an implicit or a manually defined one. + + public override void _Ready() + { + var button = new Button(); + // Option 1: In C#, we can use signals as events and connect with this idiomatic syntax: + button.ButtonDown += OnButtonDown; + // Option 2: GodotObject.Connect() with a constructed Callable from a method group. + button.Connect(Button.SignalName.ButtonDown, Callable.From(OnButtonDown)); + // Option 3: GodotObject.Connect() with a constructed Callable using a target object and method name. + button.Connect(Button.SignalName.ButtonDown, new Callable(this, MethodName.OnButtonDown)); + } + + private void OnButtonDown() + { + GD.Print("Button down!"); + } + + While all options have the same outcome (button's signal will be connected to _on_button_down), option 3 offers the best validation: it will print a compile-time error if either the button_down or the _on_button_down are not defined. On the other hand, option 2 only relies on string names and will only be able to validate either names at runtime: it will print a runtime error if "button_down" doesn't correspond to a signal, or if "_on_button_down" is not a registered method in the object self. The main reason for using options 1, 2, or 4 would be if you actually need to use strings (e.g. to connect signals programmatically based on strings read from a configuration file). Otherwise, option 3 is the recommended (and fastest) method. + Binding and passing parameters: + The syntax to bind parameters is through Callable.bind, which returns a copy of the with its parameters bound. + When calling or Signal.emit, the signal parameters can be also passed. The examples below show the relationship between these signal parameters and bound parameters. + + public override void _Ready() + { + // This assumes that a `Player` class exists, which defines a `Hit` signal. + var player = new Player(); + // Using lambda expressions that create a closure that captures the additional parameters. + // The lambda only receives the parameters defined by the signal's delegate. + player.Hit += (hitBy, level) => OnPlayerHit(hitBy, level, "sword", 100); + + // Parameters added when emitting the signal are passed first. + player.EmitSignal(SignalName.Hit, "Dark lord", 5); + } + + // We pass two arguments when emitting (`hit_by`, `level`), + // and bind two more arguments when connecting (`weapon_type`, `damage`). + private void OnPlayerHit(string hitBy, int level, string weaponType, int damage) + { + GD.Print($"Hit by {hitBy} (level {level}) with weapon {weaponType} for {damage} damage."); + } + + + + + + Disconnects a by name from a given . If the connection does not exist, generates an error. Use to make sure that the connection exists. + + + + + Returns if a connection exists between the given name and . + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Returns if any connection exists on the given name. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + If set to , the object becomes unable to emit signals. As such, and signal connections will not work, until it is set to . + + + + + Returns if the object is blocking its signals from being emitted. See . + + + + + Emits the signal. This is mainly used to refresh the editor, so that the Inspector and editor plugins are properly updated. + + + + + If set to , allows the object to translate messages with and . Enabled by default. See also . + + + + + Returns if the object is allowed to translate messages with and . See also . + + + + + Translates a , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. Note that most nodes automatically translate their strings, so this method is mostly useful for formatted strings or custom drawn text. + If is , or no translation is available, this method returns the without changes. See . + For detailed examples, see Internationalizing games. + Note: This method can't be used without an instance, as it requires the method. To translate strings in a static context, use . + + + + + Translates a or , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. + If is , or no translation is available, this method returns or , without changes. See . + The is the number, or amount, of the message's subject. It is used by the translation system to fetch the correct plural form for the current language. + For detailed examples, see Localization using gettext. + Note: Negative and numbers may not properly apply to some countable subjects. It's recommended to handle these cases with . + Note: This method can't be used without an instance, as it requires the method. To translate strings in a static context, use . + + + + + Returns the name of the translation domain used by and . See also . + + + + + Sets the name of the translation domain used by and . See also . + + + + + Returns if the method was called for the object. + + + + + If this method is called during , this object will reject being freed and will remain allocated. This is mostly an internal function used for error handling to avoid the user from freeing objects when they are not intended to. + + + + + Emitted when the object's script is changed. + Note: When this signal is emitted, the new script is not initialized yet. If you need to access the new script, defer connections to this signal with . + + + + + Emitted when is called. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get' method. + + + + + Cached name for the '_get_property_list' method. + + + + + Cached name for the '_iter_get' method. + + + + + Cached name for the '_iter_init' method. + + + + + Cached name for the '_iter_next' method. + + + + + Cached name for the '_notification' method. + + + + + Cached name for the '_property_can_revert' method. + + + + + Cached name for the '_property_get_revert' method. + + + + + Cached name for the '_set' method. + + + + + Cached name for the '_validate_property' method. + + + + + Cached name for the 'free' method. + + + + + Cached name for the 'get_class' method. + + + + + Cached name for the 'is_class' method. + + + + + Cached name for the 'set' method. + + + + + Cached name for the 'get' method. + + + + + Cached name for the 'set_indexed' method. + + + + + Cached name for the 'get_indexed' method. + + + + + Cached name for the 'get_property_list' method. + + + + + Cached name for the 'get_method_list' method. + + + + + Cached name for the 'property_can_revert' method. + + + + + Cached name for the 'property_get_revert' method. + + + + + Cached name for the 'notification' method. + + + + + Cached name for the 'get_instance_id' method. + + + + + Cached name for the 'set_script' method. + + + + + Cached name for the 'get_script' method. + + + + + Cached name for the 'set_meta' method. + + + + + Cached name for the 'remove_meta' method. + + + + + Cached name for the 'get_meta' method. + + + + + Cached name for the 'has_meta' method. + + + + + Cached name for the 'get_meta_list' method. + + + + + Cached name for the 'add_user_signal' method. + + + + + Cached name for the 'has_user_signal' method. + + + + + Cached name for the 'remove_user_signal' method. + + + + + Cached name for the 'emit_signal' method. + + + + + Cached name for the 'call' method. + + + + + Cached name for the 'call_deferred' method. + + + + + Cached name for the 'set_deferred' method. + + + + + Cached name for the 'callv' method. + + + + + Cached name for the 'has_method' method. + + + + + Cached name for the 'get_method_argument_count' method. + + + + + Cached name for the 'has_signal' method. + + + + + Cached name for the 'get_signal_list' method. + + + + + Cached name for the 'get_signal_connection_list' method. + + + + + Cached name for the 'get_incoming_connections' method. + + + + + Cached name for the 'connect' method. + + + + + Cached name for the 'disconnect' method. + + + + + Cached name for the 'is_connected' method. + + + + + Cached name for the 'has_connections' method. + + + + + Cached name for the 'set_block_signals' method. + + + + + Cached name for the 'is_blocking_signals' method. + + + + + Cached name for the 'notify_property_list_changed' method. + + + + + Cached name for the 'set_message_translation' method. + + + + + Cached name for the 'can_translate_messages' method. + + + + + Cached name for the 'tr' method. + + + + + Cached name for the 'tr_n' method. + + + + + Cached name for the 'get_translation_domain' method. + + + + + Cached name for the 'set_translation_domain' method. + + + + + Cached name for the 'is_queued_for_deletion' method. + + + + + Cached name for the 'cancel_free' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'script_changed' signal. + + + + + Cached name for the 'property_list_changed' signal. + + + + + Nodes are Godot's building blocks. They can be assigned as the child of another node, resulting in a tree arrangement. A given node can contain any number of nodes as children with the requirement that all siblings (direct children of a node) should have unique names. + A tree of nodes is called a scene. Scenes can be saved to the disk and then instantiated into other scenes. This allows for very high flexibility in the architecture and data model of Godot projects. + Scene tree: The contains the active tree of nodes. When a node is added to the scene tree, it receives the notification and its callback is triggered. Child nodes are always added after their parent node, i.e. the 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 notification and their respective callbacks are triggered. For groups of nodes, the 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: of the parent, of the children, of the children and finally of the parent (recursively for the entire scene tree). + Processing: Nodes can override the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback , toggled with ) happens as fast as possible and is dependent on the frame rate, so the processing time delta (in seconds) is passed as an argument. Physics processing (callback , toggled with ) 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 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 function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI 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 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 or , it will also free all its children. + Groups: Nodes can be added to as many groups as you want to be easy to manage, you could create groups like "enemies" or "collectables" for example, depending on your game. See , and . You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on . + Networking with nodes: After connecting to a server (or making one, see ), it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling 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 (make sure node names are the same on all peers). Also, take a look at the high-level networking tutorial and corresponding demos. + Note: The script property is part of the class, not . It isn't exposed like most properties but does have a setter and getter (see and ). + + + + + Fetches a node. The can be either a relative path (from + the current node) or an absolute path (in the scene tree) to a node. If the path + does not exist, a instance is returned and an error + is logged. Attempts to access methods on the return value will result in an + "Attempt to call <method> on a null instance." error. + Note: Fetching absolute paths only works when the node is inside the scene tree + (see ). + + + Example: Assume your current node is Character and the following tree: + + /root + /root/Character + /root/Character/Sword + /root/Character/Backpack/Dagger + /root/MyGame + /root/Swamp/Alligator + /root/Swamp/Mosquito + /root/Swamp/Goblin + + Possible paths are: + + GetNode("Sword"); + GetNode("Backpack/Dagger"); + GetNode("../Swamp/Alligator"); + GetNode("/root/MyGame"); + + + + The path to the node to fetch. + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The at the given . + + + + + Similar to , but does not log an error if + does not point to a valid . + + + Example: Assume your current node is Character and the following tree: + + /root + /root/Character + /root/Character/Sword + /root/Character/Backpack/Dagger + /root/MyGame + /root/Swamp/Alligator + /root/Swamp/Mosquito + /root/Swamp/Goblin + + Possible paths are: + + GetNode("Sword"); + GetNode("Backpack/Dagger"); + GetNode("../Swamp/Alligator"); + GetNode("/root/MyGame"); + + + + The path to the node to fetch. + The type to cast to. Should be a descendant of . + + The at the given , or if not found. + + + + + Returns a child node by its index (see ). + This method is often used for iterating all children of a node. + Negative indices access the children from the last one. + To access a child node via its name, use . + + + Child index. + + If , internal children are skipped (see internal + parameter in ). + + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The child at the given index . + + + + + Returns a child node by its index (see ). + This method is often used for iterating all children of a node. + Negative indices access the children from the last one. + To access a child node via its name, use . + + + Child index. + + If , internal children are skipped (see internal + parameter in ). + + The type to cast to. Should be a descendant of . + + The child at the given index , or if not found. + + + + + The node owner. A node can have any other node as owner (as long as it is + a valid parent, grandparent, etc. ascending in the tree). When saving a + node (using ), all the nodes it owns will be saved + with it. This allows for the creation of complex s, + with instancing and subinstancing. + + + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The owner . + + + + + The node owner. A node can have any other node as owner (as long as it is + a valid parent, grandparent, etc. ascending in the tree). When saving a + node (using ), all the nodes it owns will be saved + with it. This allows for the creation of complex s, + with instancing and subinstancing. + + + The type to cast to. Should be a descendant of . + + The owner , or if there is no owner. + + + + + Returns the parent node of the current node, or a instance + if the node lacks a parent. + + + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The parent . + + + + + Returns the parent node of the current node, or a instance + if the node lacks a parent. + + + The type to cast to. Should be a descendant of . + + The parent , or if the node has no parent. + + + + + Notification received when the node enters a . See . + This notification is received before the related signal. + + + + + Notification received when the node is about to exit a . See . + This notification is received after the related signal. + + + + + Notification received when the node is ready. See . + + + + + Notification received when the node is paused. See . + + + + + Notification received when the node is unpaused. See . + + + + + Notification received from the tree every physics frame when returns . See . + + + + + Notification received from the tree every rendered frame when returns . See . + + + + + Notification received when the node is set as a child of another node (see and ). + Note: This does not mean that the node entered the . + + + + + Notification received when the parent node calls on this node. + Note: This does not mean that the node exited the . + + + + + Notification received only by the newly instantiated scene root node, when is completed. + + + + + Notification received when a drag operation begins. All nodes receive this notification, not only the dragged one. + Can be triggered either by dragging a that provides drag data (see ) or using . + Use to get the dragged data. + + + + + Notification received when a drag operation ends. + Use to check if the drag succeeded. + + + + + Notification received when the node's or one of its ancestors' is changed. This notification is not received when the node is removed from the . + + + + + Notification received when the list of children is changed. This happens when child nodes are added, moved or removed. + + + + + Notification received from the tree every rendered frame when returns . + + + + + Notification received from the tree every physics frame when returns . + + + + + Notification received when the node enters the tree, just before may be received. Unlike the latter, it is sent every time the node enters tree, not just once. + + + + + Notification received when the node is disabled. See . + + + + + Notification received when the node is enabled again after being disabled. See . + + + + + Notification received when is called on the node or its ancestors. + + + + + Notification received right before the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects. + + + + + Notification received right after the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects. + + + + + Notification received when the mouse enters the window. + Implemented for embedded windows and on desktop and web platforms. + + + + + Notification received when the mouse leaves the window. + Implemented for embedded windows and on desktop and web platforms. + + + + + Notification received from the OS when the node's ancestor is focused. This may be a change of focus between two windows of the same engine instance, or from the OS desktop or a third-party application to a window of the game (in which case is also received). + A node receives this notification when it is focused. + + + + + Notification received from the OS when the node's ancestor is defocused. This may be a change of focus between two windows of the same engine instance, or from a window of the game to the OS desktop or a third-party application (in which case is also received). + A node receives this notification when it is defocused. + + + + + Notification received from the OS when a close request is sent (e.g. closing the window with a "Close" button or Alt + F4). + Implemented on desktop platforms. + + + + + Notification received from the OS when a go back request is sent (e.g. pressing the "Back" button on Android). + Implemented only on Android. + + + + + Notification received when the window is resized. + Note: Only the resized node receives this notification, and it's not propagated to the child nodes. + + + + + Notification received from the OS when the screen's dots per inch (DPI) scale is changed. Only implemented on macOS. + + + + + Notification received when the mouse cursor enters the 's visible area, that is not occluded behind other s or s, provided its is and regardless if it's currently focused or not. + + + + + Notification received when the mouse cursor leaves the 's visible area, that is not occluded behind other s or s, provided its is and regardless if it's currently focused or not. + + + + + Notification received from the OS when the application is exceeding its allocated memory. + Implemented only on iOS. + + + + + Notification received when translations may have changed. Can be triggered by the user changing the locale, changing or when the node enters the scene tree. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like . + Note: This notification is received alongside , so if you are instantiating a scene, the child nodes will not be initialized yet. You can use it to setup translations for this node, child nodes created from script, or if you want to access child nodes added in the editor, make sure the node is ready using . + + func _notification(what): + if what == NOTIFICATION_TRANSLATION_CHANGED: + if not is_node_ready(): + await ready # Wait until ready signal. + $Label.text = atr("%d Bananas") % banana_counter + + + + + + Notification received from the OS when a request for "About" information is sent. + Implemented only on macOS. + + + + + Notification received from Godot's crash handler when the engine is about to crash. + Implemented on desktop platforms, if the crash handler is enabled. + + + + + Notification received from the OS when an update of the Input Method Engine occurs (e.g. change of IME cursor position or composition string). + Implemented only on macOS. + + + + + Notification received from the OS when the application is resumed. + Specific to the Android and iOS platforms. + + + + + Notification received from the OS when the application is paused. + Specific to the Android and iOS platforms. + Note: On iOS, you only have approximately 5 seconds to finish a task started by this signal. If you go over this allotment, iOS will kill the app instead of pausing it. + + + + + Notification received from the OS when the application is focused, i.e. when changing the focus from the OS desktop or a thirdparty application to any open window of the Godot instance. + Implemented on desktop and mobile platforms. + + + + + Notification received from the OS when the application is defocused, i.e. when changing the focus from any open window of the Godot instance to the OS desktop or a thirdparty application. + Implemented on desktop and mobile platforms. + + + + + Notification received when the is changed. + + + + + Inherits from the node's parent. This is the default for any newly created node. + + + + + Stops processing when is . This is the inverse of , and the default for the root node. + + + + + Process only when is . This is the inverse of . + + + + + Always process. Keeps processing, ignoring . This is the inverse of . + + + + + Never process. Completely disables processing, ignoring . This is the inverse of . + + + + + 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 for more information. + + + + + Process this node (and child nodes set to inherit) on the main thread. See for more information. + + + + + Process this node (and child nodes set to inherit) on a sub-thread. See for more information. + + + + + Allows this node to process threaded messages created with right before is called. + + + + + Allows this node to process threaded messages created with right before is called. + + + + + Allows this node to process threaded messages created with right before either or are called. + + + + + Inherits from the node's parent. This is the default for any newly created node. + + + + + Enables physics interpolation for this node and for children set to . This is the default for the root node. + + + + + Disables physics interpolation for this node and for children set to . + + + + + Duplicate the node's signal connections. + + + + + Duplicate the node's groups. + + + + + Duplicate the node's script (also overriding the duplicated children's scripts, if combined with ). + + + + + Duplicate using . If the node comes from a scene saved on disk, reuses as the base for the duplicated node and its children. + + + + + The node will not be internal. + + + + + The node will be placed at the beginning of the parent's children, before any non-internal sibling. + + + + + The node will be placed at the end of the parent's children, after any non-internal sibling. + + + + + Inherits from the node's parent. This is the default for any newly created node. + + + + + Always automatically translate. This is the inverse of , and the default for the root node. + + + + + Never automatically translate. This is the inverse of . + String parsing for POT generation will be skipped for this node and children that are set to . + + + + + The name of the node. This name must be unique among the siblings (other child nodes from the same parent). When set to an existing sibling's name, the node is automatically renamed. + Note: When changing the name, the following characters will be replaced with an underscore: (. : @ / " %). In particular, the @ character is reserved for auto-generated names. See also String.validate_node_name. + + + + + If , the node can be accessed from any node sharing the same or from the itself, with special %Name syntax in . + Note: If another node with the same shares the same as this node, the other node will no longer be accessible as unique. + + + + + The original scene's file path, if the node has been instantiated from a file. Only scene root nodes contains this. + + + + + The owner of this node. The owner must be an ancestor of this node. When packing the owner node in a , all the nodes it owns are also saved with it. See also . + Note: In the editor, nodes not owned by the scene root are usually not displayed in the Scene dock, and will not be saved. To prevent this, remember to set the owner after calling . + + + + + The instance associated with this node. See . + Note: Renaming the node, or moving it in the tree, will not move the to the new path, you will have to update this manually. + + + + + The node's processing behavior (see ). To check if the node can process in its current mode, use . + + + + + The node's execution order of the process callbacks (, , and ). Nodes whose priority value is lower call their process callbacks first, regardless of tree order. + + + + + Similar to but for , , or . + + + + + Set the process thread group for this node (basically, whether it receives , , or (and the internal versions) on the main thread or in a sub-thread. + By default, the thread group is , which means that this node belongs to the same thread group as the parent node. The thread groups means that nodes in a specific thread group will process together, separate to other thread groups (depending on ). If the value is set is , this thread group will occur on a sub thread (not the main thread), otherwise if set to it will process on the main thread. If there is not a parent or grandparent node set to something other than inherit, the node will belong to the default thread group. This default group will process on the main thread and its group order is 0. + During processing in a sub-thread, accessing most functions in nodes outside the thread group is forbidden (and it will result in an error in debug mode). Use , , and the likes in order to communicate from the thread groups to the main thread (or to other thread groups). + To better understand process thread groups, the idea is that any node set to any other value than will include any child (and grandchild) nodes set to inherit into its process thread group. This means that the processing of all the nodes in the group will happen together, at the same time as the node including them. + + + + + Change the process thread group order. Groups with a lesser order will process before groups with a greater order. This is useful when a large amount of nodes process in sub thread and, afterwards, another group wants to collect their result in the main thread, as an example. + + + + + Set whether the current thread group will process messages (calls to on threads), and whether it wants to receive them during regular process or physics process callbacks. + + + + + Allows enabling or disabling physics interpolation per node, offering a finer grain of control than turning physics interpolation on and off globally. See ProjectSettings.physics/common/physics_interpolation and for the global setting. + Note: When teleporting a node to a distant position you should temporarily disable interpolation with . + + + + + Defines if any text should automatically change to its translated version depending on the current locale (for nodes such as , , , etc.). Also decides if the node's strings should be parsed for POT generation. + Note: For the root node, auto translate mode can also be set via ProjectSettings.internationalization/rendering/root_node_auto_translate. + + + + + An optional description to the node. It will be displayed as a tooltip when hovering over the node in the editor's Scene dock. + + + + + Called when the node enters the (e.g. upon instantiating, scene changing, or after calling in a script). If the node has children, its callback will be called first, and then that of the children. + Corresponds to the notification in . + + + + + Called when the node is about to leave the (e.g. upon freeing, scene changing, or after calling in a script). If the node has children, its callback will be called last, after all its children have left the tree. + Corresponds to the notification in and signal . To get notified when the node has already left the active tree, connect to the . + + + + + 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 tool script. + Returning an empty array produces no warnings. + Call when the warnings need to be updated for this node. + + @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 [] + + + + + + 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + For gameplay input, and are usually a better fit as they allow the GUI to intercept the events first. + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + + + + + 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 parameter will generally be constant (see exceptions below). 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 . + Processing happens in order of , lower priority values are called first. Nodes with the same priority are processed in tree order, or top to bottom as seen in the editor (also known as pre-order traversal). + Corresponds to the notification in . + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the time since the previous frame is not constant. 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 . + Processing happens in order of , lower priority values are called first. Nodes with the same priority are processed in tree order, or top to bottom as seen in the editor (also known as pre-order traversal). + Corresponds to the notification in . + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + 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 callbacks get triggered first, and the parent node will receive the ready notification afterwards. + Corresponds to the notification in . See also the @onready annotation for variables. + Usually used for initialization. For even earlier initialization, may be used. See also . + Note: This method may be called only once for each node. After removing a node from the scene tree and adding it again, will not be called a second time. This can be bypassed by requesting another call with , which may be called anywhere before adding the node again. + + + + + Called when an , , or hasn't been consumed by or any GUI item. It is called before and . 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + This method can be used to handle shortcuts. For generic GUI events, use instead. Gameplay events should usually be handled with either or . + Note: This method is only called if the node is present in the scene tree (i.e. if it's not orphan). + + + + + Called when an hasn't been consumed by or any GUI item. It is called after and after . 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + For gameplay input, this method is usually a better fit than , as GUI events need a higher priority. For keyboard shortcuts, consider using instead, as it is called before this method. Finally, to handle keyboard events, consider using for performance reasons. + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + + + + + Called when an hasn't been consumed by or any GUI item. It is called after but before . 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + This method can be used to handle Unicode character input with Alt, Alt + Ctrl, and Alt + Shift modifiers, after shortcuts were handled. + For gameplay input, this and are usually a better fit than , as GUI events should be handled first. This method also performs better than , since unrelated events such as are automatically filtered. For shortcuts, consider using instead. + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + + + + + Prints all orphan nodes (nodes outside the ). Useful for debugging. + Note: This method only works in debug builds. Does nothing in a project exported in release mode. + + + + + Adds a node to this node's parent, and moves the added sibling right below this node. + If is , improves the readability of the added . If not named, the is renamed to its type, and if it shares with a sibling, a number is suffixed more appropriately. This operation is very slow. As such, it is recommended leaving this to , which assigns a dummy name featuring @ in both situations. + Use instead of this method if you don't need the child node to be added below a specific node in the list of children. + Note: If this node is internal, the added sibling will be internal too (see 's internal parameter). + + + + + Adds a child . Nodes can have any number of children, but every child must have a unique name. Child nodes are automatically deleted when the parent node is deleted, so an entire scene can be removed by deleting its topmost node. + If is , improves the readability of the added . If not named, the is renamed to its type, and if it shares with a sibling, a number is suffixed more appropriately. This operation is very slow. As such, it is recommended leaving this to , which assigns a dummy name featuring @ in both situations. + If is different than , the child will be added as internal node. These nodes are ignored by methods like , unless their parameter include_internal is . The intended usage is to hide the internal nodes from the user, so the user won't accidentally delete or modify them. Used by some GUI nodes, e.g. . See for available modes. + Note: If already has a parent, this method will fail. Use first to remove from its current parent. For example: + + Node childNode = GetChild(0); + if (childNode.GetParent() != null) + { + childNode.GetParent().RemoveChild(childNode); + } + AddChild(childNode); + + If you need the child node to be added below a specific node in the list of children, use instead of this method. + Note: If you want a child to be persisted to a , you must set in addition to calling . This is typically relevant for tool scripts and editor plugins. If is called without setting , the newly added will not be visible in the scene tree, though it will be visible in the 2D/3D view. + + + + + Removes a child . The , along with its children, are not deleted. To delete a node, see . + Note: When this node is inside the tree, this method sets the of the removed (or its descendants) to , if their is no longer an ancestor (see ). + + + + + Changes the parent of this to the . The node needs to already have a parent. The node's is preserved if its owner is still reachable from the new location (i.e., the node is still a descendant of the new parent after the operation). + If is , the node's global transform will be preserved if supported. , and support this argument (but keeps only position). + + + + + Returns the number of children of this node. + If is , internal children are not counted (see 's internal parameter). + + + + + Returns all children of this node inside an . + If is , excludes internal children from the returned array (see 's internal parameter). + + + + + Fetches a child node by its index. Each child node has an index relative its siblings (see ). The first child is at index 0. Negative values can also be used to start from the end of the list. This method can be used in combination with to iterate over this node's children. If no child exists at the given index, this method returns and an error is generated. + If is , internal children are ignored (see 's internal parameter). + + # Assuming the following are children of this node, in order: + # First, Middle, Last. + + var a = get_child(0).name # a is "First" + var b = get_child(1).name # b is "Middle" + var b = get_child(2).name # b is "Last" + var c = get_child(-1).name # c is "Last" + + Note: To fetch a node by , use . + + + + + Returns if the points to a valid node. See also . + + + + + Fetches a node. The can either be a relative path (from this node), or an absolute path (from the ) to a node. If does not point to a valid node, generates an error and returns . Attempts to access methods on the return value will result in an "Attempt to call <method> on a null instance." error. + Note: Fetching by absolute path only works when the node is inside the scene tree (see ). + Example: Assume this method is called from the Character node, inside the following tree: + + ┖╴root + ┠╴Character (you are here!) + ┃ ┠╴Sword + ┃ ┖╴Backpack + ┃ ┖╴Dagger + ┠╴MyGame + ┖╴Swamp + ┠╴Alligator + ┠╴Mosquito + ┖╴Goblin + + The following calls will return a valid node: + + GetNode("Sword"); + GetNode("Backpack/Dagger"); + GetNode("../Swamp/Alligator"); + GetNode("/root/MyGame"); + + + + + + Fetches a node by . Similar to , but does not generate an error if does not point to a valid node. + + + + + Returns this node's parent node, or if the node doesn't have a parent. + + + + + Finds the first descendant of this node whose matches , returning if no match is found. The matching is done against node names, not their paths, through String.match. As such, it is case-sensitive, "*" matches zero or more characters, and "?" matches any single character. + If is , only this node's direct children are checked. Nodes are checked in tree order, so this node's first direct child is checked first, then its own direct children, etc., before moving to the second direct child, and so on. Internal children are also included in the search (see internal parameter in ). + If is , only descendants with a valid node are checked. + Note: This method can be very slow. Consider storing a reference to the found node in a variable. Alternatively, use with unique names (see ). + Note: To find all descendant nodes matching a pattern or a class type, see . + + + + + Finds all descendants of this node whose names match , returning an empty if no match is found. The matching is done against node names, not their paths, through String.match. As such, it is case-sensitive, "*" matches zero or more characters, and "?" matches any single character. + If is not empty, only ancestors inheriting from are included (see ). + If is , only this node's direct children are checked. Nodes are checked in tree order, so this node's first direct child is checked first, then its own direct children, etc., before moving to the second direct child, and so on. Internal children are also included in the search (see internal parameter in ). + If is , only descendants with a valid node are checked. + Note: This method can be very slow. Consider storing references to the found nodes in a variable. + Note: To find a single descendant node matching a pattern, see . + + + + + Finds the first ancestor of this node whose matches , returning if no match is found. The matching is done through String.match. As such, it is case-sensitive, "*" matches zero or more characters, and "?" matches any single character. See also and . + Note: As this method walks upwards in the scene tree, it can be slow in large, deeply nested nodes. Consider storing a reference to the found node in a variable. Alternatively, use with unique names (see ). + + + + + Returns if points to a valid node and its subnames point to a valid , e.g. Area2D/CollisionShape2D:shape. Properties that are not types (such as nodes or other types) are not considered. See also . + + + + + Fetches a node and its most nested resource as specified by the 's subname. Returns an of size 3 where: + - Element 0 is the , or if not found; + - Element 1 is the subname's last nested , or if not found; + - Element 2 is the remaining , referring to an existing, non- property (see ). + Example: Assume that the child's has been assigned a : + + var a = GetNodeAndResource(NodePath("Area2D/Sprite2D")); + GD.Print(a[0].Name); // Prints Sprite2D + GD.Print(a[1]); // Prints <null> + GD.Print(a[2]); // Prints ^" + + var b = GetNodeAndResource(NodePath("Area2D/Sprite2D:texture:atlas")); + GD.Print(b[0].name); // Prints Sprite2D + GD.Print(b[1].get_class()); // Prints AtlasTexture + GD.Print(b[2]); // Prints ^"" + + var c = GetNodeAndResource(NodePath("Area2D/Sprite2D:texture:atlas:region")); + GD.Print(c[0].name); // Prints Sprite2D + GD.Print(c[1].get_class()); // Prints AtlasTexture + GD.Print(c[2]); // Prints ^":region" + + + + + + Returns if this node is currently inside a . See also . + + + + + Returns if the node is part of the scene currently opened in the editor. + + + + + Returns if the given is a direct or indirect child of this node. + + + + + Returns if the given occurs later in the scene hierarchy than this node. A node occurring later is usually processed last. + + + + + Returns the node's absolute path, relative to the . If the node is not inside the scene tree, this method fails and returns an empty . + + + + + Returns the relative from this node to the specified . Both nodes must be in the same or scene hierarchy, otherwise this method fails and returns an empty . + If is , returns the shortest path accounting for this node's unique name (see ). + Note: If you get a relative path which starts from a unique node, the path may be longer than a normal relative path, due to the addition of the unique node's name. + + + + + Adds the node to the . Groups can be helpful to organize a subset of nodes, for example "enemies" or "collectables". See notes in the description, and the group methods in . + If is , the group will be stored when saved inside a . All groups created and displayed in the Node dock are persistent. + Note: To improve performance, the order of group names is not guaranteed and may vary between project runs. Therefore, do not rely on the group order. + Note: 's group methods will not work on this node if not inside the tree (see ). + + + + + Removes the node from the given . Does nothing if the node is not in the . See also notes in the description, and the 's group methods. + + + + + Returns if this node has been added to the given . See and . See also notes in the description, and the 's group methods. + + + + + Moves to the given index. A node's index is the order among its siblings. If is negative, the index is counted from the end of the list. See also and . + Note: The processing order of several engine callbacks (, , etc.) and notifications sent through is affected by tree order. nodes are also rendered in tree order. See also . + + + + + Returns an of group names that the node has been added to. + Note: To improve performance, the order of group names is not guaranteed and may vary between project runs. Therefore, do not rely on the group order. + Note: This method may also return some group names starting with an underscore (_). These are internally used by the engine. To avoid conflicts, do not use custom groups starting with underscores. To exclude internal groups, see the following code snippet: + + // Stores the node's non-internal groups only (as a List of StringNames). + List<string> nonInternalGroups = new List<string>(); + foreach (string group in GetGroups()) + { + if (!group.BeginsWith("_")) + nonInternalGroups.Add(group); + } + + + + + + Returns this node's order among its siblings. The first node's index is 0. See also . + If is , returns the index ignoring internal children. The first, non-internal child will have an index of 0 (see 's internal parameter). + + + + + Prints the node and its children to the console, recursively. The node does not have to be inside the tree. This method outputs s relative to this node, and is good for copy/pasting into . See also . + May print, for example: + + . + Menu + Menu/Label + Menu/Camera2D + SplashScreen + SplashScreen/Camera2D + + + + + + Prints the node and its children to the console, recursively. The node does not have to be inside the tree. Similar to , but the graphical representation looks like what is displayed in the editor's Scene dock. It is useful for inspecting larger trees. + May print, for example: + + ┖╴TheGame + ┠╴Menu + ┃ ┠╴Label + ┃ ┖╴Camera2D + ┖╴SplashScreen + ┖╴Camera2D + + + + + + Returns the tree as a . Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the function. It also can be used in game UI/UX. + May print, for example: + + TheGame + TheGame/Menu + TheGame/Menu/Label + TheGame/Menu/Camera2D + TheGame/SplashScreen + TheGame/SplashScreen/Camera2D + + + + + + Similar to , this returns the tree as a . This version displays a more graphical representation similar to what is displayed in the Scene Dock. It is useful for inspecting larger trees. + May print, for example: + + ┖╴TheGame + ┠╴Menu + ┃ ┠╴Label + ┃ ┖╴Camera2D + ┖╴SplashScreen + ┖╴Camera2D + + + + + + Calls with on this node and all of its children, recursively. + + + + + Calls the given name, passing as arguments, on this node and all of its children, recursively. + If is , the method is called on this node first, then on all of its children. If , the children's methods are called first. + + + + + If set to , enables physics (fixed framerate) processing. When a node is being processed, it will receive a at a fixed (usually 60 FPS, see to change) interval (and the callback will be called if it exists). + Note: If is overridden, this will be automatically enabled before is called. + + + + + Returns the time elapsed (in seconds) since the last physics callback. This value is identical to 's delta parameter, and is often consistent at run-time, unless is changed. See also . + Note: The returned value will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using delta for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Returns if physics processing is enabled (see ). + + + + + Returns the time elapsed (in seconds) since the last process callback. This value is identical to 's delta parameter, and may vary from frame to frame. See also . + Note: The returned value will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using delta for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + If set to , enables processing. When a node is being processed, it will receive a on every drawn frame (and the callback will be called if it exists). + Note: If is overridden, this will be automatically enabled before is called. + Note: This method only affects the callback, i.e. it has no effect on other callbacks like . If you want to disable all processing for the node, set to . + + + + + Returns if processing is enabled (see ). + + + + + If set to , enables input processing. + Note: If is overridden, this will be automatically enabled before is called. Input processing is also already enabled for GUI controls, such as and . + + + + + Returns if the node is processing input (see ). + + + + + If set to , enables shortcut processing for this node. + Note: If is overridden, this will be automatically enabled before is called. + + + + + Returns if the node is processing shortcuts (see ). + + + + + If set to , enables unhandled input processing. It enables the node to receive all input that was not previously handled (usually by a ). + Note: If is overridden, this will be automatically enabled before is called. Unhandled input processing is also already enabled for GUI controls, such as and . + + + + + Returns if the node is processing unhandled input (see ). + + + + + If set to , enables unhandled key input processing. + Note: If is overridden, this will be automatically enabled before is called. + + + + + Returns if the node is processing unhandled key input (see ). + + + + + Returns if the node can receive processing notifications and input callbacks (, , etc.) from the and . The returned value depends on : + - If set to , returns when the game is processing, i.e. is ; + - If set to , returns when the game is paused, i.e. is ; + - If set to , always returns ; + - If set to , always returns ; + - If set to , use the parent node's to determine the result. + If the node is not inside the tree, returns no matter the value of . + + + + + If set to , the node appears folded in the Scene dock. As a result, all of its children are hidden. This method is intended to be used in editor plugins and tools, but it also works in release builds. See also . + + + + + Returns if the node is folded (collapsed) in the Scene dock. This method is intended to be used in editor plugins and tools. See also . + + + + + If set to , enables internal processing for this node. Internal processing happens in isolation from the normal calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or processing is disabled for scripting (). + Warning: Built-in nodes rely on internal processing for their internal logic. Disabling it is unsafe and may lead to unexpected behavior. Use this method if you know what you are doing. + + + + + Returns if internal processing is enabled (see ). + + + + + If set to , enables internal physics for this node. Internal physics processing happens in isolation from the normal calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or physics processing is disabled for scripting (). + Warning: Built-in nodes rely on internal processing for their internal logic. Disabling it is unsafe and may lead to unexpected behavior. Use this method if you know what you are doing. + + + + + Returns if internal physics processing is enabled (see ). + + + + + Returns if physics interpolation is enabled for this node (see ). + Note: Interpolation will only be active if both the flag is set and physics interpolation is enabled within the . This can be tested using . + + + + + Returns if physics interpolation is enabled (see ) and enabled in the . + This is a convenience version of that also checks whether physics interpolation is enabled globally. + See and ProjectSettings.physics/common/physics_interpolation. + + + + + When physics interpolation is active, moving a node to a radically different transform (such as placement within a level) can result in a visible glitch as the object is rendered moving from the old to new position over the physics tick. + That glitch can be prevented by calling this method, which temporarily disables interpolation until the physics tick is complete. + The notification will be received by the node and all children recursively. + Note: This function should be called after moving the node, rather than before. + + + + + Makes this node inherit the translation domain from its parent node. If this node has no parent, the main translation domain will be used. + This is the default behavior for all nodes. Calling disables this behavior. + + + + + Returns the that contains this node. If the node is in the main window, this is equivalent to getting the root node (get_tree().get_root()). + + + + + Returns the that contains this node, or the last exclusive child in a chain of windows starting with the one that contains this node. + + + + + Returns the that contains this node. If this node is not inside the tree, generates an error and returns . See also . + + + + + Creates a new and binds it to this node. + This is the equivalent of doing: + + GetTree().CreateTween().BindNode(this); + + The Tween will start automatically on the next process frame or physics frame (depending on ). See for more info on Tweens bound to nodes. + Note: The method can still be used when the node is not inside . It can fail in an unlikely case of using a custom . + + + + + Duplicates the node, returning a new node with all of its properties, signals, groups, and children copied from the original. The behavior can be tweaked through the (see ). + Note: For nodes with a attached, if has been defined with required parameters, the duplicated node will not have a . + + + + + Replaces this node by the given . All children of this node are moved to . + If is , the is added to the same groups that the replaced node is in (see ). + Warning: The replaced node is removed from the tree, but it is not deleted. To prevent memory leaks, store a reference to the node in a variable, or use . + + + + + If set to , the node becomes a when packed and instantiated from a . See also . + + + + + Returns if this node is an instance load placeholder. See and . + + + + + Set to to allow all nodes owned by to be available, and editable, in the Scene dock, even if their is not the scene root. This method is intended to be used in editor plugins and tools, but it also works in release builds. See also . + + + + + Returns if has editable children enabled relative to this node. This method is intended to be used in editor plugins and tools. See also . + + + + + Returns the node's closest ancestor, if the node is inside the tree. Otherwise, returns . + + + + + Queues this node to be deleted at the end of the current frame. When deleted, all of its children are deleted as well, and all references to the node and its children become invalid. + Unlike with , the node is not deleted instantly, and it can still be accessed before deletion. It is also safe to call multiple times. Use to check if the node will be deleted at the end of the frame. + Note: The node will only be freed after all other deferred calls are finished. Using this method is not always the same as calling through . + + + + + Requests to be called again the next time the node enters the tree. Does not immediately call . + Note: This method only affects the current node. If the node's children also need to request ready, this method needs to be called for each one of them. When the node and its children enter the tree again, the order of callbacks will be the same as normal. + + + + + Returns if the node is ready, i.e. it's inside scene tree and all its children are initialized. + resets it back to . + + + + + Sets the node's multiplayer authority to the peer with the given peer . The multiplayer authority is the peer that has authority over the node on the network. Defaults to peer ID 1 (the server). Useful in conjunction with and the . + If is , the given peer is recursively set as the authority for all children of this node. + Warning: This does not automatically replicate the new authority to other peers. It is the developer's responsibility to do so. You may replicate the new authority's information using , an RPC, or a . Furthermore, the parent's authority does not propagate to newly added children. + + + + + Returns the peer ID of the multiplayer authority for this node. See . + + + + + Returns if the local system is the multiplayer authority of this node. + + + + + Changes the RPC configuration for the given . should either be to disable the feature (as by default), or a containing the following entries: + - rpc_mode: see ; + - transfer_mode: see ; + - call_local: if , the method will also be called locally; + - channel: an representing the channel to send the RPC on. + Note: In GDScript, this method corresponds to the [annotation @GDScript.@rpc] annotation, with various parameters passed (@rpc(any), @rpc(authority)...). See also the high-level multiplayer tutorial. + + + + + Returns a mapping method names to their RPC configuration defined for this node using . + + + + + Translates a , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. Note that most nodes automatically translate their strings, so this method is mostly useful for formatted strings or custom drawn text. + This method works the same as , with the addition of respecting the state. + If is , or no translation is available, this method returns the without changes. See . + For detailed examples, see Internationalizing games. + + + + + Translates a or , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. + This method works the same as , with the addition of respecting the state. + If is , or no translation is available, this method returns or , without changes. See . + The is the number, or amount, of the message's subject. It is used by the translation system to fetch the correct plural form for the current language. + For detailed examples, see Localization using gettext. + Note: Negative and numbers may not properly apply to some countable subjects. It's recommended to handle these cases with . + + + + + Sends a remote procedure call request for the given to peers on the network (and locally), sending additional arguments to the method called by the RPC. The call request will only be received by nodes with the same , including the exact same . Behavior depends on the RPC configuration for the given (see and [annotation @GDScript.@rpc]). By default, methods are not exposed to RPCs. + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + Note: You can only safely use RPCs on clients after you received the signal from the . You also need to keep track of the connection state, either by the signals like or by checking (get_multiplayer().peer.get_connection_status() == CONNECTION_CONNECTED). + + + + + Sends a remote procedure call request for the given to peers on the network (and locally), sending additional arguments to the method called by the RPC. The call request will only be received by nodes with the same , including the exact same . Behavior depends on the RPC configuration for the given (see and [annotation @GDScript.@rpc]). By default, methods are not exposed to RPCs. + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + Note: You can only safely use RPCs on clients after you received the signal from the . You also need to keep track of the connection state, either by the signals like or by checking (get_multiplayer().peer.get_connection_status() == CONNECTION_CONNECTED). + + + + + Sends a to a specific peer identified by (see ). + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + + + + + Sends a to a specific peer identified by (see ). + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + + + + + Refreshes the warnings displayed for this node in the Scene dock. Use to customize the warning messages to display. + + + + + This function is similar to except that the call will take place when the node thread group is processed. If the node thread group processes in sub-threads, then the call will be done on that thread, right before or , the or or their internal versions are called. + + + + + This function is similar to except that the call will take place when the node thread group is processed. If the node thread group processes in sub-threads, then the call will be done on that thread, right before or , the or or their internal versions are called. + + + + + Similar to , but for setting properties. + + + + + Similar to , but for notifications. + + + + + This function ensures that the calling of this function will succeed, no matter whether it's being done from a thread or not. If called from a thread that is not allowed to call the function, the call will become deferred. Otherwise, the call will go through directly. + + + + + This function ensures that the calling of this function will succeed, no matter whether it's being done from a thread or not. If called from a thread that is not allowed to call the function, the call will become deferred. Otherwise, the call will go through directly. + + + + + Similar to , but for setting properties. + + + + + Similar to , but for notifications. + + + + + Emitted when the node is considered ready, after is called. + + + + + Emitted when the node's is changed, if the node is inside the tree. + + + + + Emitted when the node enters the tree. + This signal is emitted after the related notification. + + + + + Emitted when the node is just about to exit the tree. The node is still valid. As such, this is the right place for de-initialization (or a "destructor", if you will). + This signal is emitted after the node's , and before the related . + + + + + Emitted after the node exits the tree and is no longer active. + This signal is emitted after the related notification. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the child node enters the , usually because this node entered the tree (see ), or has been called. + This signal is emitted after the child node's own and . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the child node is about to exit the , usually because this node is exiting the tree (see ), or because the child node is being removed or freed. + When this signal is received, the child node is still accessible inside the tree. This signal is emitted after the child node's own and . + + + + + Emitted when the list of children is changed. This happens when child nodes are added, moved or removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this node is being replaced by the node, see . + This signal is emitted after node has been added as a child of the original parent node, but before all original child nodes have been reparented to node. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node's editor description field changed. + + + + + Emitted when an attribute of the node that is relevant to the editor is changed. Only emitted in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_import_path' property. + + + + + Cached name for the 'name' property. + + + + + Cached name for the 'unique_name_in_owner' property. + + + + + Cached name for the 'scene_file_path' property. + + + + + Cached name for the 'owner' property. + + + + + Cached name for the 'multiplayer' property. + + + + + Cached name for the 'process_mode' property. + + + + + Cached name for the 'process_priority' property. + + + + + Cached name for the 'process_physics_priority' property. + + + + + Cached name for the 'process_thread_group' property. + + + + + Cached name for the 'process_thread_group_order' property. + + + + + Cached name for the 'process_thread_messages' property. + + + + + Cached name for the 'physics_interpolation_mode' property. + + + + + Cached name for the 'auto_translate_mode' property. + + + + + Cached name for the 'editor_description' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_enter_tree' method. + + + + + Cached name for the '_exit_tree' method. + + + + + Cached name for the '_get_configuration_warnings' method. + + + + + Cached name for the '_input' method. + + + + + Cached name for the '_physics_process' method. + + + + + Cached name for the '_process' method. + + + + + Cached name for the '_ready' method. + + + + + Cached name for the '_shortcut_input' method. + + + + + Cached name for the '_unhandled_input' method. + + + + + Cached name for the '_unhandled_key_input' method. + + + + + Cached name for the 'print_orphan_nodes' method. + + + + + Cached name for the 'add_sibling' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'add_child' method. + + + + + Cached name for the 'remove_child' method. + + + + + Cached name for the 'reparent' method. + + + + + Cached name for the 'get_child_count' method. + + + + + Cached name for the 'get_children' method. + + + + + Cached name for the 'get_child' method. + + + + + Cached name for the 'has_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'get_node_or_null' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'find_child' method. + + + + + Cached name for the 'find_children' method. + + + + + Cached name for the 'find_parent' method. + + + + + Cached name for the 'has_node_and_resource' method. + + + + + Cached name for the 'get_node_and_resource' method. + + + + + Cached name for the 'is_inside_tree' method. + + + + + Cached name for the 'is_part_of_edited_scene' method. + + + + + Cached name for the 'is_ancestor_of' method. + + + + + Cached name for the 'is_greater_than' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'get_path_to' method. + + + + + Cached name for the 'add_to_group' method. + + + + + Cached name for the 'remove_from_group' method. + + + + + Cached name for the 'is_in_group' method. + + + + + Cached name for the 'move_child' method. + + + + + Cached name for the 'get_groups' method. + + + + + Cached name for the 'set_owner' method. + + + + + Cached name for the 'get_owner' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'print_tree' method. + + + + + Cached name for the 'print_tree_pretty' method. + + + + + Cached name for the 'get_tree_string' method. + + + + + Cached name for the 'get_tree_string_pretty' method. + + + + + Cached name for the 'set_scene_file_path' method. + + + + + Cached name for the 'get_scene_file_path' method. + + + + + Cached name for the 'propagate_notification' method. + + + + + Cached name for the 'propagate_call' method. + + + + + Cached name for the 'set_physics_process' method. + + + + + Cached name for the 'get_physics_process_delta_time' method. + + + + + Cached name for the 'is_physics_processing' method. + + + + + Cached name for the 'get_process_delta_time' method. + + + + + Cached name for the 'set_process' method. + + + + + Cached name for the 'set_process_priority' method. + + + + + Cached name for the 'get_process_priority' method. + + + + + Cached name for the 'set_physics_process_priority' method. + + + + + Cached name for the 'get_physics_process_priority' method. + + + + + Cached name for the 'is_processing' method. + + + + + Cached name for the 'set_process_input' method. + + + + + Cached name for the 'is_processing_input' method. + + + + + Cached name for the 'set_process_shortcut_input' method. + + + + + Cached name for the 'is_processing_shortcut_input' method. + + + + + Cached name for the 'set_process_unhandled_input' method. + + + + + Cached name for the 'is_processing_unhandled_input' method. + + + + + Cached name for the 'set_process_unhandled_key_input' method. + + + + + Cached name for the 'is_processing_unhandled_key_input' method. + + + + + Cached name for the 'set_process_mode' method. + + + + + Cached name for the 'get_process_mode' method. + + + + + Cached name for the 'can_process' method. + + + + + Cached name for the 'set_process_thread_group' method. + + + + + Cached name for the 'get_process_thread_group' method. + + + + + Cached name for the 'set_process_thread_messages' method. + + + + + Cached name for the 'get_process_thread_messages' method. + + + + + Cached name for the 'set_process_thread_group_order' method. + + + + + Cached name for the 'get_process_thread_group_order' method. + + + + + Cached name for the 'set_display_folded' method. + + + + + Cached name for the 'is_displayed_folded' method. + + + + + Cached name for the 'set_process_internal' method. + + + + + Cached name for the 'is_processing_internal' method. + + + + + Cached name for the 'set_physics_process_internal' method. + + + + + Cached name for the 'is_physics_processing_internal' method. + + + + + Cached name for the 'set_physics_interpolation_mode' method. + + + + + Cached name for the 'get_physics_interpolation_mode' method. + + + + + Cached name for the 'is_physics_interpolated' method. + + + + + Cached name for the 'is_physics_interpolated_and_enabled' method. + + + + + Cached name for the 'reset_physics_interpolation' method. + + + + + Cached name for the 'set_auto_translate_mode' method. + + + + + Cached name for the 'get_auto_translate_mode' method. + + + + + Cached name for the 'set_translation_domain_inherited' method. + + + + + Cached name for the 'get_window' method. + + + + + Cached name for the 'get_last_exclusive_window' method. + + + + + Cached name for the 'get_tree' method. + + + + + Cached name for the 'create_tween' method. + + + + + Cached name for the 'duplicate' method. + + + + + Cached name for the 'replace_by' method. + + + + + Cached name for the 'set_scene_instance_load_placeholder' method. + + + + + Cached name for the 'get_scene_instance_load_placeholder' method. + + + + + Cached name for the 'set_editable_instance' method. + + + + + Cached name for the 'is_editable_instance' method. + + + + + Cached name for the 'get_viewport' method. + + + + + Cached name for the 'queue_free' method. + + + + + Cached name for the 'request_ready' method. + + + + + Cached name for the 'is_node_ready' method. + + + + + Cached name for the 'set_multiplayer_authority' method. + + + + + Cached name for the 'get_multiplayer_authority' method. + + + + + Cached name for the 'is_multiplayer_authority' method. + + + + + Cached name for the 'get_multiplayer' method. + + + + + Cached name for the 'rpc_config' method. + + + + + Cached name for the 'get_rpc_config' method. + + + + + Cached name for the 'set_editor_description' method. + + + + + Cached name for the 'get_editor_description' method. + + + + + Cached name for the '_set_import_path' method. + + + + + Cached name for the '_get_import_path' method. + + + + + Cached name for the 'set_unique_name_in_owner' method. + + + + + Cached name for the 'is_unique_name_in_owner' method. + + + + + Cached name for the 'atr' method. + + + + + Cached name for the 'atr_n' method. + + + + + Cached name for the 'rpc' method. + + + + + Cached name for the 'rpc_id' method. + + + + + Cached name for the 'update_configuration_warnings' method. + + + + + Cached name for the 'call_deferred_thread_group' method. + + + + + Cached name for the 'set_deferred_thread_group' method. + + + + + Cached name for the 'notify_deferred_thread_group' method. + + + + + Cached name for the 'call_thread_safe' method. + + + + + Cached name for the 'set_thread_safe' method. + + + + + Cached name for the 'notify_thread_safe' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'ready' signal. + + + + + Cached name for the 'renamed' signal. + + + + + Cached name for the 'tree_entered' signal. + + + + + Cached name for the 'tree_exiting' signal. + + + + + Cached name for the 'tree_exited' signal. + + + + + Cached name for the 'child_entered_tree' signal. + + + + + Cached name for the 'child_exiting_tree' signal. + + + + + Cached name for the 'child_order_changed' signal. + + + + + Cached name for the 'replacing_by' signal. + + + + + Cached name for the 'editor_description_changed' signal. + + + + + Cached name for the 'editor_state_changed' signal. + + + + + 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 property). + Note: The node doesn't need to own itself. + Example: Load a saved scene: + + // C# has no preload, so you have to always use ResourceLoader.Load<PackedScene>(). + var scene = ResourceLoader.Load<PackedScene>("res://scene.tscn").Instantiate(); + // Add the node as a child of the node the script is attached to. + AddChild(scene); + + Example: Save a node with different owners. The following example creates 3 objects: (node), (body) and (collision). collision is a child of body which is a child of node. Only body is owned by node and will therefore only save those two nodes, but not collision. + + // 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."); + } + } + + + + + + Instantiates the scene's node hierarchy, erroring on failure. + Triggers child scene instantiation(s). Triggers a + notification on the root node. + + + + The instantiated node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + The instantiated scene. + + + + Instantiates the scene's node hierarchy, returning on failure. + Triggers child scene instantiation(s). Triggers a + notification on the root node. + + + The type to cast to. Should be a descendant of . + The instantiated scene. + + + + If passed to , blocks edits to the scene state. + + + + + If passed to , provides local scene resources to the local scene. + Note: Only available in editor builds. + + + + + If passed to , provides local scene resources to the local scene. Only the main scene should receive the main edit state. + Note: Only available in editor builds. + + + + + It's similar to , but for the case where the scene is being instantiated to be the base of another one. + Note: Only available in editor builds. + + + + + Packs the node, and all owned sub-nodes, into this . Any existing data will be cleared. See . + + + + + Instantiates the scene's node hierarchy. Triggers child scene instantiation(s). Triggers a notification on the root node. + + + + + Returns if the scene file has nodes. + + + + + Returns the representing the scene file contents. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_bundled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'pack' method. + + + + + Cached name for the 'instantiate' method. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the '_set_bundled_scene' method. + + + + + Cached name for the '_get_bundled_scene' method. + + + + + Cached name for the 'get_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton used to load resource files from the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine. + Note: You have to import the files into the engine first to load them using . If you want to load s at run-time, you may use . If you want to import audio files, you can use the snippet described in . + Note: Non-resource files such as plain text files cannot be read using . Use for those files instead, and be aware that non-resource files are not exported by default (see notes in the class description for instructions on exporting them). + + + + + Loads a resource at the given , caching the result + for further access. + The registered instances are queried sequentially + to find the first one which can handle the file's extension, and then attempt + loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional can be used to further specify the + type that should be handled by the . + Anything that inherits from can be used as a type hint, + for example . + The property defines whether and how the cache should + be used or updated when loading the resource. See for details. + Returns an empty resource if no could handle the file. + + + The loaded resource can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + + + The resource is invalid, or has not been loaded with . + + + + + The resource is still being loaded. + + + + + Some error occurred during loading and it failed. + + + + + The resource was loaded successfully and can be accessed via . + + + + + Neither the main resource (the one requested to be loaded) nor any of its subresources are retrieved from cache nor stored into it. Dependencies (external resources) are loaded with . + + + + + The main resource (the one requested to be loaded), its subresources, and its dependencies (external resources) are retrieved from cache if present, instead of loaded. Those not cached are loaded and then stored into the cache. The same rules are propagated recursively down the tree of dependencies (external resources). + + + + + Like , but the cache is checked for the main resource (the one requested to be loaded) as well as for each of its subresources. Those already in the cache, as long as the loaded and cached types match, have their data refreshed from storage into the already existing instances. Otherwise, they are recreated as completely new objects. + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + Loads the resource using threads. If is , multiple threads will be used to load the resource, which makes loading faster, but may affect the main thread (and thus cause game slowdowns). + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + + + + + Returns the status of a threaded loading operation started with for the resource at . See for possible return values. + An array variable can optionally be passed via , and will return a one-element array containing the ratio of completion of the threaded loading (between 0.0 and 1.0). + Note: The recommended way of using this method is to call it during different frames (e.g., in , instead of a loop). + + + + + Returns the resource loaded by . + If this is called before the loading thread is done (i.e. is not ), the calling thread will be blocked until the resource has finished loading. However, it's recommended to use to known when the load has actually completed. + + + + + Loads a resource at the given , caching the result for further access. + The registered s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + Returns an empty resource if no could handle the file, and prints an error if no file is found at the specified path. + GDScript has a simplified @GDScript.load built-in method which can be used in most situations, leaving the use of for more advanced scenarios. + Note: If ProjectSettings.editor/export/convert_text_resources_to_binary is , @GDScript.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 . + Note: Relative paths will be prefixed with "res://" before loading, to avoid unexpected results make sure your paths are absolute. + + + + + Returns the list of recognized extensions for a resource type. + + + + + Registers a new . The ResourceLoader will use the ResourceFormatLoader as described in . + This method is performed implicitly for ResourceFormatLoaders written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Changes the behavior on missing sub-resources. The default behavior is to abort loading. + + + + + Returns the dependencies for the resource at the given . + Note: The dependencies are returned with slices separated by ::. You can use String.get_slice to get their components. + + for dep in ResourceLoader.get_dependencies(path): + print(dep.get_slice("::", 0)) # Prints UID. + print(dep.get_slice("::", 2)) # Prints path. + + + + + + Returns whether a cached resource is available for the given . + Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the method will use the cached version. The cached resource can be overridden by using on a new resource for that same path. + + + + + Returns the cached resource reference for the given . + Note: If the resource is not cached, the returned will be invalid. + + + + + Returns whether a recognized resource exists for the given . + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + Note: If you use , this method will return for the taken path even if the resource wasn't saved (i.e. exists only in resource cache). + + + + + Returns the ID associated with a given resource path, or -1 when no such ID exists. + + + + + Lists a directory (as example: "res://assets/enemies"), returning all resources contained within. The resource files are the original file names as visible in the editor before exporting. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_threaded_request' method. + + + + + Cached name for the 'load_threaded_get_status' method. + + + + + Cached name for the 'load_threaded_get' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_recognized_extensions_for_type' method. + + + + + Cached name for the 'add_resource_format_loader' method. + + + + + Cached name for the 'remove_resource_format_loader' method. + + + + + Cached name for the 'set_abort_on_missing_resources' method. + + + + + Cached name for the 'get_dependencies' method. + + + + + Cached name for the 'has_cached' method. + + + + + Cached name for the 'get_cached_ref' method. + + + + + Cached name for the 'exists' method. + + + + + Cached name for the 'get_resource_uid' method. + + + + + Cached name for the 'list_directory' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Godot's global functions. + + + + + Decodes a byte array back to a value, without decoding objects. + Note: If you need object deserialization, see . + + Byte array that will be decoded to a . + The decoded . + + + + Decodes a byte array back to a value. Decoding objects is allowed. + Warning: Deserialized object can contain code which gets executed. Do not use this + option if the serialized object comes from untrusted sources to avoid potential security + threats (remote code execution). + + Byte array that will be decoded to a . + The decoded . + + + + Converts to in the best way possible. + The parameter uses the values. + + + + Variant a = new Godot.Collections.Array { 4, 2.5, 1.2 }; + GD.Print(a.VariantType == Variant.Type.Array); // Prints true + + var b = GD.Convert(a, Variant.Type.PackedByteArray); + GD.Print(b); // Prints [4, 2, 1] + GD.Print(b.VariantType == Variant.Type.Array); // Prints false + + + The Variant converted to the given . + + + + Returns the integer hash of the passed . + + + + GD.Print(GD.Hash("a")); // Prints 177670 + + + Variable that will be hashed. + Hash of the variable passed. + + + + Loads a resource from the filesystem located at . + The resource is loaded on the method call (unless it's referenced already + elsewhere, e.g. in another script or in the scene), which might cause slight delay, + especially when loading scenes. To avoid unnecessary delays when loading something + multiple times, either store the resource in a variable. + + 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 script. + + Important: The path must be absolute, a local path will just return . + This method is a simplified version of , which can be used + for more advanced scenarios. + + + + // Load a scene called main located in the root of the project directory and cache it in a variable. + var main = GD.Load("res://main.tscn"); // main will contain a PackedScene resource. + + + Path of the to load. + The loaded . + + + + Loads a resource from the filesystem located at . + The resource is loaded on the method call (unless it's referenced already + elsewhere, e.g. in another script or in the scene), which might cause slight delay, + especially when loading scenes. To avoid unnecessary delays when loading something + multiple times, either store the resource in a variable. + + 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 script. + + Important: The path must be absolute, a local path will just return . + This method is a simplified version of , which can be used + for more advanced scenarios. + + + + // Load a scene called main located in the root of the project directory and cache it in a variable. + var main = GD.Load<PackedScene>("res://main.tscn"); // main will contain a PackedScene resource. + + + Path of the to load. + The type to cast to. Should be a descendant of . + + + + Prints a message to the console. + + Note: Consider using and + to print error and warning messages instead of . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + Message that will be printed. + + + + Converts one or more arguments of any type to string in the best way possible + and prints them to the console. + + Note: Consider using and + to print error and warning messages instead of . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + + + var a = new Godot.Collections.Array { 1, 2, 3 }; + GD.Print("a", "b", a); // Prints ab[1, 2, 3] + + + Arguments that will be printed. + + + + Prints a message to the console. + The following BBCode tags are supported: b, i, u, s, indent, code, url, center, + right, color, bgcolor, fgcolor. + Color tags only support named colors such as red, not hexadecimal color codes. + Unsupported tags will be left as-is in standard output. + When printing to standard output, the supported subset of BBCode is converted to + ANSI escape codes for the terminal emulator to display. Displaying ANSI escape codes + is currently only supported on Linux and macOS. Support for ANSI escape codes may vary + across terminal emulators, especially for italic and strikethrough. + + Note: Consider using and + to print error and warning messages instead of or + . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + Message that will be printed. + + + + Converts one or more arguments of any type to string in the best way possible + and prints them to the console. + The following BBCode tags are supported: b, i, u, s, indent, code, url, center, + right, color, bgcolor, fgcolor. + Color tags only support named colors such as red, not hexadecimal color codes. + Unsupported tags will be left as-is in standard output. + When printing to standard output, the supported subset of BBCode is converted to + ANSI escape codes for the terminal emulator to display. Displaying ANSI escape codes + is currently only supported on Linux and macOS. Support for ANSI escape codes may vary + across terminal emulators, especially for italic and strikethrough. + + Note: Consider using and + to print error and warning messages instead of or + . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + + + GD.PrintRich("[code][b]Hello world![/b][/code]"); // Prints out: [b]Hello world![/b] + + + Arguments that will be printed. + + + + Prints a message to standard error line. + + Message that will be printed. + + + + Prints one or more arguments to strings in the best way possible to standard error line. + + + + GD.PrintErr("prints to stderr"); + + + Arguments that will be printed. + + + + Prints a message to the OS terminal. + Unlike , no newline is added at the end. + + Message that will be printed. + + + + Prints one or more arguments to strings in the best way possible to the OS terminal. + Unlike , no newline is added at the end. + + + + GD.PrintRaw("A"); + GD.PrintRaw("B"); + GD.PrintRaw("C"); + // Prints ABC to terminal + + + Arguments that will be printed. + + + + Prints one or more arguments to the console with a space between each argument. + + + + GD.PrintS("A", "B", "C"); // Prints A B C + + + Arguments that will be printed. + + + + Prints one or more arguments to the console with a tab between each argument. + + + + GD.PrintT("A", "B", "C"); // Prints A B C + + + Arguments that will be printed. + + + + Pushes an error message to Godot's built-in debugger and to the OS terminal. + + Note: Errors printed this way will not pause project execution. + + + + GD.PushError("test error"); // Prints "test error" to debugger and terminal as error call + + + Error message. + + + + Pushes an error message to Godot's built-in debugger and to the OS terminal. + + Note: Errors printed this way will not pause project execution. + + + + GD.PushError("test_error"); // Prints "test error" to debugger and terminal as error call + + + Arguments that form the error message. + + + + Pushes a warning message to Godot's built-in debugger and to the OS terminal. + + + + GD.PushWarning("test warning"); // Prints "test warning" to debugger and terminal as warning call + + + Warning message. + + + + Pushes a warning message to Godot's built-in debugger and to the OS terminal. + + + + GD.PushWarning("test warning"); // Prints "test warning" to debugger and terminal as warning call + + + Arguments that form the warning message. + + + + Returns a random floating point value between 0.0 and 1.0 (inclusive). + + + + GD.Randf(); // Returns e.g. 0.375671 + + + A random number. + + + + Returns a normally-distributed pseudo-random floating point value + using Box-Muller transform with the specified + and a standard . + This is also called Gaussian distribution. + + A random normally-distributed number. + + + + Returns a random unsigned 32-bit integer. + Use remainder to obtain a random value in the interval [0, N - 1] + (where N is smaller than 2^32). + + + + GD.Randi(); // Returns random integer between 0 and 2^32 - 1 + GD.Randi() % 20; // Returns random integer between 0 and 19 + GD.Randi() % 100; // Returns random integer between 0 and 99 + GD.Randi() % 100 + 1; // Returns random integer between 1 and 100 + + + A random number. + + + + Randomizes the seed (or the internal state) of the random number generator. + The current implementation uses a number based on the device's time. + + Note: This method is called automatically when the project is run. + If you need to fix the seed to have consistent, reproducible results, + use to initialize the random number generator. + + + + + Returns a random floating point value between + and (inclusive). + + + + GD.RandRange(0.0, 20.5); // Returns e.g. 7.45315 + GD.RandRange(-10.0, 10.0); // Returns e.g. -3.844535 + + + A random number inside the given range. + + + + Returns a random signed 32-bit integer between + and (inclusive). If is lesser than + , they are swapped. + + + + GD.RandRange(0, 1); // Returns either 0 or 1 + GD.RandRange(-10, 1000); // Returns random integer between -10 and 1000 + + + A random number inside the given range. + + + + Given a , returns a randomized + value. The may be modified. + Passing the same consistently returns the same value. + + Note: "Seed" here refers to the internal state of the pseudo random number + generator, currently implemented as a 64 bit integer. + + + + var a = GD.RandFromSeed(4); + + + + Seed to use to generate the random number. + If a different seed is used, its value will be modified. + + A random number. + + + + Returns a that iterates from + 0 (inclusive) to (exclusive) + in steps of 1. + + The last index. + + + + Returns a that iterates from + (inclusive) to (exclusive) + in steps of 1. + + The first index. + The last index. + + + + Returns a that iterates from + (inclusive) to (exclusive) + in steps of . + The argument can be negative, but not 0. + + + is 0. + + The first index. + The last index. + The amount by which to increment the index on each iteration. + + + + Sets seed for the random number generator to . + Setting the seed manually can ensure consistent, repeatable results for + most random functions. + + + + ulong mySeed = (ulong)GD.Hash("Godot Rocks"); + GD.Seed(mySeed); + var a = GD.Randf() + GD.Randi(); + GD.Seed(mySeed); + var b = GD.Randf() + GD.Randi(); + // a and b are now identical + + + Seed that will be used. + + + + Converts a formatted string that was returned by + to the original value. + + + + string a = "{ \"a\": 1, \"b\": 2 }"; // a is a string + var b = GD.StrToVar(a).AsGodotDictionary(); // b is a Dictionary + GD.Print(b["a"]); // Prints 1 + + + String that will be converted to Variant. + The decoded Variant. + + + + Encodes a value to a byte array, without encoding objects. + Deserialization can be done with . + Note: If you need object serialization, see . + + that will be encoded. + The encoded as an array of bytes. + + + + Encodes a . Encoding objects is allowed (and can potentially + include executable code). Deserialization can be done with . + + that will be encoded. + The encoded as an array of bytes. + + + + Converts a to a formatted string that + can later be parsed using . + + + + var a = new Godot.Collections.Dictionary { ["a"] = 1, ["b"] = 2 }; + GD.Print(GD.VarToStr(a)); + // Prints: + // { + // "a": 1, + // "b": 2 + // } + + + Variant that will be converted to string. + The encoded as a string. + + + + Get the that corresponds for the given . + + The for the given . + + + + Returns true if this byte array is empty or doesn't exist. + + The byte array check. + Whether or not the array is empty. + + + + Converts this byte array to a string delimited by the given string. + + The byte array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this byte array to a string with brackets. + + The byte array to convert. + A single string with all items. + + + + Returns true if this int array is empty or doesn't exist. + + The int array check. + Whether or not the array is empty. + + + + Converts this int array to a string delimited by the given string. + + The int array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this int array to a string with brackets. + + The int array to convert. + A single string with all items. + + + + Returns true if this long array is empty or doesn't exist. + + The long array check. + Whether or not the array is empty. + + + + Converts this long array to a string delimited by the given string. + + The long array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this long array to a string with brackets. + + The long array to convert. + A single string with all items. + + + + Returns true if this float array is empty or doesn't exist. + + The float array check. + Whether or not the array is empty. + + + + Converts this float array to a string delimited by the given string. + + The float array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this float array to a string with brackets. + + The float array to convert. + A single string with all items. + + + + Returns true if this double array is empty or doesn't exist. + + The double array check. + Whether or not the array is empty. + + + + Converts this double array to a string delimited by the given string. + + The double array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this double array to a string with brackets. + + The double array to convert. + A single string with all items. + + + + Returns true if this string array is empty or doesn't exist. + + The string array check. + Whether or not the array is empty. + + + + Converts this string array to a string delimited by the given string. + + The string array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this string array to a string with brackets. + + The string array to convert. + A single string with all items. + + + + Returns true if this Color array is empty or doesn't exist. + + The Color array check. + Whether or not the array is empty. + + + + Converts this Color array to a string delimited by the given string. + + The Color array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Color array to a string with brackets. + + The Color array to convert. + A single string with all items. + + + + Returns true if this Vector2 array is empty or doesn't exist. + + The Vector2 array check. + Whether or not the array is empty. + + + + Converts this Vector2 array to a string delimited by the given string. + + The Vector2 array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector2 array to a string with brackets. + + The Vector2 array to convert. + A single string with all items. + + + + Returns true if this Vector2I array is empty or doesn't exist. + + The Vector2I array check. + Whether or not the array is empty. + + + + Converts this Vector2I array to a string delimited by the given string. + + The Vector2I array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector2I array to a string with brackets. + + The Vector2I array to convert. + A single string with all items. + + + + Returns true if this Vector3 array is empty or doesn't exist. + + The Vector3 array check. + Whether or not the array is empty. + + + + Converts this Vector3 array to a string delimited by the given string. + + The Vector3 array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector3 array to a string with brackets. + + The Vector3 array to convert. + A single string with all items. + + + + Returns true if this Vector3I array is empty or doesn't exist. + + The Vector3I array check. + Whether or not the array is empty. + + + + Converts this Vector3I array to a string delimited by the given string. + + The Vector3I array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector3I array to a string with brackets. + + The Vector3I array to convert. + A single string with all items. + + + + Returns true if this Vector4 array is empty or doesn't exist. + + The Vector4 array check. + Whether or not the array is empty. + + + + Converts this Vector4 array to a string delimited by the given string. + + The Vector4 array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector4 array to a string with brackets. + + The Vector4 array to convert. + A single string with all items. + + + + Returns true if this Vector4I array is empty or doesn't exist. + + The Vector4I array check. + Whether or not the array is empty. + + + + Converts this Vector4I array to a string delimited by the given string. + + The Vector4I array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector4I array to a string with brackets. + + The Vector4I array to convert. + A single string with all items. + + + + Calls the Key method on each workItem object in the _queue to activate their callbacks. + + + + + GodotTaskScheduler contains a linked list of tasks to perform as a queue. Methods + within the class are used to control the queue and perform the contained tasks. + + + + + The current synchronization context. + + + + + The queue of tasks for the task scheduler. + + + + + Constructs a new GodotTaskScheduler instance. + + + + + Executes all queued tasks and pending tasks from the current context. + + + + + Loops through and attempts to execute each task in _tasks. + + + + + + An interface that requires a GetAwaiter() method to get a reference to the Awaiter. + + + + + A templated interface that requires a GetAwaiter() method to get a reference to the Awaiter. + + A reference to the result to be passed out. + + + + An interface that requires a boolean for completion status and a method that gets the result of completion. + + + + + A templated interface that requires a boolean for completion status and a method that gets the result of completion and returns it. + + A reference to the result to be passed out. + + + + Allows a GodotObject to react to the serialization/deserialization + that occurs when Godot reloads assemblies. + + + + + Executed before serializing this instance's state when reloading assemblies. + Clear any data that should not be serialized. + + + + + Executed after deserializing this instance's state after reloading assemblies. + Restore any state that has been lost. + + + + + Provides constants and static methods for common mathematical functions. + + + + + The circle constant, the circumference of the unit circle in radians. + + + + + Constant that represents how many times the diameter of a circle + fits around its perimeter. This is equivalent to Mathf.Tau / 2. + + + + + Positive infinity. For negative infinity, use -Mathf.Inf. + + + + + "Not a Number", an invalid value. NaN has special properties, including + that it is not equal to itself. It is output by some invalid operations, + such as dividing zero by zero. + + + + + Returns the absolute value of (i.e. positive value). + + The input number. + The absolute value of . + + + + Returns the absolute value of (i.e. positive value). + + The input number. + The absolute value of . + + + + Returns the absolute value of (i.e. positive value). + + The input number. + The absolute value of . + + + + Returns the arc cosine of in radians. + Use to get the angle of cosine . + + The input cosine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given cosine value. On the range 0 to Tau/2. + + + + + Returns the arc cosine of in radians. + Use to get the angle of cosine . + + The input cosine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given cosine value. On the range 0 to Tau/2. + + + + + Returns the hyperbolic arc (also called inverse) cosine of in radians. + Use it to get the angle from an angle's cosine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic cosine value. + + An angle that would result in the given hyperbolic cosine value. + + + + + Returns the hyperbolic arc (also called inverse) cosine of in radians. + Use it to get the angle from an angle's cosine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic cosine value. + + An angle that would result in the given hyperbolic cosine value. + + + + + Returns the difference between the two angles, + in range of -, . + When and are opposite, + returns - if is smaller than , + or otherwise. + + The start angle. + The destination angle. + The difference between the two angles. + + + + Returns the difference between the two angles, + in range of -, . + When and are opposite, + returns - if is smaller than , + or otherwise. + + The start angle. + The destination angle. + The difference between the two angles. + + + + Returns the arc sine of in radians. + Use to get the angle of sine . + + The input sine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given sine value. On the range -Tau/4 to Tau/4. + + + + + Returns the arc sine of in radians. + Use to get the angle of sine . + + The input sine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given sine value. On the range -Tau/4 to Tau/4. + + + + + Returns the hyperbolic arc (also called inverse) sine of in radians. + Use it to get the angle from an angle's sine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic sine value. + + An angle that would result in the given hyperbolic sine value. + + + + + Returns the hyperbolic arc (also called inverse) sine of in radians. + Use it to get the angle from an angle's sine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic sine value. + + An angle that would result in the given hyperbolic sine value. + + + + + Returns the arc tangent of in radians. + Use to get the angle of tangent . + + The method cannot know in which quadrant the angle should fall. + See if you have both y and x. + + The input tangent value. + + An angle that would result in the given tangent value. On the range -Tau/4 to Tau/4. + + + + + Returns the arc tangent of in radians. + Use to get the angle of tangent . + + The method cannot know in which quadrant the angle should fall. + See if you have both y and x. + + The input tangent value. + + An angle that would result in the given tangent value. On the range -Tau/4 to Tau/4. + + + + + Returns the arc tangent of and in radians. + Use to get the angle of the tangent of 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. + + The Y coordinate of the point to find the angle to. + The X coordinate of the point to find the angle to. + + An angle that would result in the given tangent value. On the range -Tau/2 to Tau/2. + + + + + Returns the arc tangent of and in radians. + Use to get the angle of the tangent of 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. + + The Y coordinate of the point to find the angle to. + The X coordinate of the point to find the angle to. + + An angle that would result in the given tangent value. On the range -Tau/2 to Tau/2. + + + + + Returns the hyperbolic arc (also called inverse) tangent of in radians. + Use it to get the angle from an angle's tangent in hyperbolic space if + is between -1 and 1 (non-inclusive). + + The input hyperbolic tangent value. + + An angle that would result in the given hyperbolic tangent value. + + + + + Returns the hyperbolic arc (also called inverse) tangent of in radians. + Use it to get the angle from an angle's tangent in hyperbolic space if + is between -1 and 1 (non-inclusive). + + The input hyperbolic tangent value. + + An angle that would result in the given hyperbolic tangent value. + + + + + Rounds upward (towards positive infinity). + + The number to ceil. + The smallest whole number that is not less than . + + + + Rounds upward (towards positive infinity). + + The number to ceil. + The smallest whole number that is not less than . + + + + Clamps a so that it is not less than + and not more than . + + The value to clamp. + The minimum allowed value. + The maximum allowed value. + The clamped value. + + + + Clamps a so that it is not less than + and not more than . + + The value to clamp. + The minimum allowed value. + The maximum allowed value. + The clamped value. + + + + Clamps a so that it is not less than + and not more than . + + The value to clamp. + The minimum allowed value. + The maximum allowed value. + The clamped value. + + + + Returns the cosine of angle in radians. + + The angle in radians. + The cosine of that angle. + + + + Returns the cosine of angle in radians. + + The angle in radians. + The cosine of that angle. + + + + Returns the hyperbolic cosine of angle in radians. + + The angle in radians. + The hyperbolic cosine of that angle. + + + + Returns the hyperbolic cosine of angle in radians. + + The angle in radians. + The hyperbolic cosine of that angle. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the derivative at the given on a one dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the derivative at the given on a one dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Converts from decibels to linear energy (audio). + + + Decibels to convert. + Audio volume as linear energy. + + + + Converts from decibels to linear energy (audio). + + + Decibels to convert. + Audio volume as linear energy. + + + + Converts an angle expressed in degrees to radians. + + An angle expressed in degrees. + The same angle expressed in radians. + + + + Converts an angle expressed in degrees to radians. + + An angle expressed in degrees. + The same angle expressed in radians. + + + + Easing function, based on exponent. The values are: + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + Negative values are in-out/out-in. + + The value to ease. + + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + + The eased value. + + + + Easing function, based on exponent. The values are: + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + Negative values are in-out/out-in. + + The value to ease. + + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + + The eased value. + + + + The natural exponential function. It raises the mathematical + constant e to the power of and returns it. + + The exponent to raise e to. + e raised to the power of . + + + + The natural exponential function. It raises the mathematical + constant e to the power of and returns it. + + The exponent to raise e to. + e raised to the power of . + + + + Rounds downward (towards negative infinity). + + The number to floor. + The largest whole number that is not more than . + + + + Rounds downward (towards negative infinity). + + The number to floor. + The largest whole number that is not more than . + + + + Returns a normalized value considering the given range. + This is the opposite of . + + The start value for interpolation. + The destination value for interpolation. + The interpolated value. + + The resulting value of the inverse interpolation. + The returned value will be between 0.0 and 1.0 if is + between and (inclusive). + + + + + Returns a normalized value considering the given range. + This is the opposite of . + + The start value for interpolation. + The destination value for interpolation. + The interpolated value. + + The resulting value of the inverse interpolation. + The returned value will be between 0.0 and 1.0 if is + between and (inclusive). + + + + + Returns if and are approximately equal + to each other. + The comparison is done using a tolerance calculation with . + + One of the values. + The other value. + A for whether or not the two values are approximately equal. + + + + Returns if and are approximately equal + to each other. + The comparison is done using a tolerance calculation with . + + One of the values. + The other value. + A for whether or not the two values are approximately equal. + + + + Returns whether is a finite value, i.e. it is not + , positive infinite, or negative infinity. + + The value to check. + A for whether or not the value is a finite value. + + + + Returns whether is a finite value, i.e. it is not + , positive infinite, or negative infinity. + + The value to check. + A for whether or not the value is a finite value. + + + + Returns whether is an infinity value (either positive infinity or negative infinity). + + The value to check. + A for whether or not the value is an infinity value. + + + + Returns whether is an infinity value (either positive infinity or negative infinity). + + The value to check. + A for whether or not the value is an infinity value. + + + + Returns whether is a NaN ("Not a Number" or invalid) value. + + The value to check. + A for whether or not the value is a NaN value. + + + + Returns whether is a NaN ("Not a Number" or invalid) value. + + The value to check. + A for whether or not the value is a NaN value. + + + + Returns if is zero or almost zero. + The comparison is done using a tolerance calculation with . + + This method is faster than using with + one value as zero. + + The value to check. + A for whether or not the value is nearly zero. + + + + Returns if is zero or almost zero. + The comparison is done using a tolerance calculation with . + + This method is faster than using with + one value as zero. + + The value to check. + A for whether or not the value is nearly zero. + + + + Linearly interpolates between two values by a normalized value. + This is the opposite . + + The start value for interpolation. + The destination value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Linearly interpolates between two values by a normalized value. + This is the opposite . + + The start value for interpolation. + The destination value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Linearly interpolates between two angles (in radians) by a normalized value. + + Similar to , + but interpolates correctly when the angles wrap around . + + The start angle for interpolation. + The destination angle for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting angle of the interpolation. + + + + Linearly interpolates between two angles (in radians) by a normalized value. + + Similar to , + but interpolates correctly when the angles wrap around . + + The start angle for interpolation. + The destination angle for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting angle of the interpolation. + + + + Converts from linear energy to decibels (audio). + This can be used to implement volume sliders that behave as expected (since volume isn't linear). + + + + + // "slider" refers to a node that inherits Range such as HSlider or VSlider. + // Its range must be configured to go from 0 to 1. + // Change the bus name if you'd like to change the volume of a specific bus only. + AudioServer.SetBusVolumeDb(AudioServer.GetBusIndex("Master"), GD.LinearToDb(slider.value)); + + + The linear energy to convert. + Audio as decibels. + + + + Converts from linear energy to decibels (audio). + This can be used to implement volume sliders that behave as expected (since volume isn't linear). + + + + + // "slider" refers to a node that inherits Range such as HSlider or VSlider. + // Its range must be configured to go from 0 to 1. + // Change the bus name if you'd like to change the volume of a specific bus only. + AudioServer.SetBusVolumeDb(AudioServer.GetBusIndex("Master"), GD.LinearToDb(slider.value)); + + + The linear energy to convert. + Audio as decibels. + + + + Natural logarithm. 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. + + The input value. + The natural log of . + + + + Natural logarithm. 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. + + The input value. + The natural log of . + + + + Returns the maximum of two values. + + One of the values. + The other value. + Whichever of the two values is higher. + + + + Returns the maximum of two values. + + One of the values. + The other value. + Whichever of the two values is higher. + + + + Returns the maximum of two values. + + One of the values. + The other value. + Whichever of the two values is higher. + + + + Returns the minimum of two values. + + One of the values. + The other value. + Whichever of the two values is lower. + + + + Returns the minimum of two values. + + One of the values. + The other value. + Whichever of the two values is lower. + + + + Returns the minimum of two values. + + One of the values. + The other value. + Whichever of the two values is lower. + + + + Moves toward by the value. + + Use a negative value to move away. + + The start value. + The value to move towards. + The amount to move by. + The value after moving. + + + + Moves toward by the value. + + Use a negative value to move away. + + The start value. + The value to move towards. + The amount to move by. + The value after moving. + + + + Returns the nearest larger power of 2 for the integer . + + The input value. + The nearest larger power of 2. + + + + Performs a canonical Modulus operation, where the output is on the range [0, ). + + The dividend, the primary input. + The divisor. The output is on the range [0, ). + The resulting output. + + + + Performs a canonical Modulus operation, where the output is on the range [0, ). + + The dividend, the primary input. + The divisor. The output is on the range [0, ). + The resulting output. + + + + Performs a canonical Modulus operation, where the output is on the range [0, ). + + The dividend, the primary input. + The divisor. The output is on the range [0, ). + The resulting output. + + + + Returns the result of raised to the power of . + + The base. + The exponent. + raised to the power of . + + + + Returns the result of raised to the power of . + + The base. + The exponent. + raised to the power of . + + + + Converts an angle expressed in radians to degrees. + + An angle expressed in radians. + The same angle expressed in degrees. + + + + Converts an angle expressed in radians to degrees. + + An angle expressed in radians. + The same angle expressed in degrees. + + + + Maps a from [, ] + to [, ]. + + The value to map. + The start value for the input interpolation. + The destination value for the input interpolation. + The start value for the output interpolation. + The destination value for the output interpolation. + The resulting mapped value mapped. + + + + Maps a from [, ] + to [, ]. + + The value to map. + The start value for the input interpolation. + The destination value for the input interpolation. + The start value for the output interpolation. + The destination value for the output interpolation. + The resulting mapped value mapped. + + + + Rotates toward by the amount. Will not go past . + Similar to but interpolates correctly when the angles wrap around . + If is negative, this function will rotate away from , toward the opposite angle, and will not go past the opposite angle. + + The start angle. + The angle to move towards. + The amount to move by. + The angle after moving. + + + + Rotates toward by the amount. Will not go past . + Similar to but interpolates correctly when the angles wrap around . + If is negative, this function will rotate away from , toward the opposite angle, and will not go past the opposite angle. + + The start angle. + The angle to move towards. + The amount to move by. + The angle after moving. + + + + Rounds to the nearest whole number, + with halfway cases rounded towards the nearest multiple of two. + + The number to round. + The rounded number. + + + + Rounds to the nearest whole number, + with halfway cases rounded towards the nearest multiple of two. + + The number to round. + The rounded number. + + + + Returns the sign of : -1 or 1. + Returns 0 if is 0. + + The input number. + One of three possible values: 1, -1, or 0. + + + + Returns the sign of : -1 or 1. + Returns 0 if is 0. + + The input number. + One of three possible values: 1, -1, or 0. + + + + Returns the sign of : -1 or 1. + Returns 0 if is 0. + + The input number. + One of three possible values: 1, -1, or 0. + + + + Returns the sine of angle in radians. + + The angle in radians. + The sine of that angle. + + + + Returns the sine of angle in radians. + + The angle in radians. + The sine of that angle. + + + + Returns the hyperbolic sine of angle in radians. + + The angle in radians. + The hyperbolic sine of that angle. + + + + Returns the hyperbolic sine of angle in radians. + + The angle in radians. + The hyperbolic sine of that angle. + + + + Returns a number smoothly interpolated between and , + based on the . Similar to , + but interpolates faster at the beginning and slower at the end. + + The start value for interpolation. + The destination value for interpolation. + A value representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns a number smoothly interpolated between and , + based on the . Similar to , + but interpolates faster at the beginning and slower at the end. + + The start value for interpolation. + The destination value for interpolation. + A value representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the square root of , where is a non-negative number. + + If you need negative inputs, use . + + The input number. Must not be negative. + The square root of . + + + + Returns the square root of , where is a non-negative number. + + If you need negative inputs, use . + + The input number. Must not be negative. + The square root of . + + + + 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. + + The input value. + The position of the first non-zero digit. + + + + Snaps float value to a given . + This can also be used to round a floating point number to an arbitrary number of decimals. + + The value to snap. + The step size to snap to. + The snapped value. + + + + Snaps float value to a given . + This can also be used to round a floating point number to an arbitrary number of decimals. + + The value to snap. + The step size to snap to. + The snapped value. + + + + Returns the tangent of angle in radians. + + The angle in radians. + The tangent of that angle. + + + + Returns the tangent of angle in radians. + + The angle in radians. + The tangent of that angle. + + + + Returns the hyperbolic tangent of angle in radians. + + The angle in radians. + The hyperbolic tangent of that angle. + + + + Returns the hyperbolic tangent of angle in radians. + + The angle in radians. + The hyperbolic tangent of that angle. + + + + Wraps between and . + Usable for creating loop-alike behavior or infinite surfaces. + If is 0, this is equivalent + to , so prefer using that instead. + + The value to wrap. + The minimum allowed value and lower bound of the range. + The maximum allowed value and upper bound of the range. + The wrapped value. + + + + Wraps between and . + Usable for creating loop-alike behavior or infinite surfaces. + If is 0, this is equivalent + to , so prefer using that instead. + + The value to wrap. + The minimum allowed value and lower bound of the range. + The maximum allowed value and upper bound of the range. + The wrapped value. + + + + Wraps between and . + Usable for creating loop-alike behavior or infinite surfaces. + If is 0, this is equivalent + to , so prefer using that instead. + + The value to wrap. + The minimum allowed value and lower bound of the range. + The maximum allowed value and upper bound of the range. + The wrapped value. + + + + Returns the wrapped between 0 and the . + If the limit is reached, the next value the function returned is decreased to the 0 side + or increased to the side (like a triangle wave). + If is less than zero, it becomes positive. + + The value to pingpong. + The maximum value of the function. + The ping-ponged value. + + + + Returns the wrapped between 0 and the . + If the limit is reached, the next value the function returned is decreased to the 0 side + or increased to the side (like a triangle wave). + If is less than zero, it becomes positive. + + The value to pingpong. + The maximum value of the function. + The ping-ponged value. + + + + The natural number e. + + + + + The square root of 2. + + + + + A very small number used for float comparison with error tolerance. + 1e-06 with single-precision floats, but 1e-14 if REAL_T_IS_DOUBLE. + + + + + Returns the amount of digits after the decimal place. + + The input value. + The amount of digits. + + + + Returns the amount of digits after the decimal place. + + The input value. + The amount of digits. + + + + Rounds upward (towards positive infinity). + + This is the same as , but returns an . + + The number to ceil. + The smallest whole number that is not less than . + + + + Rounds upward (towards positive infinity). + + This is the same as , but returns an . + + The number to ceil. + The smallest whole number that is not less than . + + + + Rounds downward (towards negative infinity). + + This is the same as , but returns an . + + The number to floor. + The largest whole number that is not more than . + + + + Rounds downward (towards negative infinity). + + This is the same as , but returns an . + + The number to floor. + The largest whole number that is not more than . + + + + Rounds to the nearest whole number. + + This is the same as , but returns an . + + The number to round. + The rounded number. + + + + Rounds to the nearest whole number. + + This is the same as , but returns an . + + The number to round. + The rounded number. + + + + Returns the sine and cosine of angle in radians. + + The angle in radians. + The sine and cosine of that angle. + + + + Returns the sine and cosine of angle in radians. + + The angle in radians. + The sine and cosine of that angle. + + + + Returns if and are approximately + equal to each other. + The comparison is done using the provided tolerance value. + If you want the tolerance to be calculated for you, use . + + One of the values. + The other value. + The pre-calculated tolerance value. + A for whether or not the two values are equal. + + + + Returns if and are approximately + equal to each other. + The comparison is done using the provided tolerance value. + If you want the tolerance to be calculated for you, use . + + One of the values. + The other value. + The pre-calculated tolerance value. + A for whether or not the two values are equal. + + + + Returns the number of arguments. + + + + + A pre-parsed relative or absolute path in a scene tree, + for use with and similar functions. + It can reference a node, a resource within a node, or a property + of a node or resource. + For instance, "Path2D/PathFollow2D/Sprite2D:texture:size" + would refer to the size property of the texture + resource on the node named "Sprite2D" which is a child of + the other named nodes in the path. + You will usually just pass a string to + and it will be automatically converted, but you may occasionally + want to parse a path ahead of time with NodePath. + Exporting a NodePath variable will give you a node selection widget + in the properties panel of the editor, which can often be useful. + A NodePath is composed of a list of slash-separated node names + (like a filesystem path) and an optional colon-separated list of + "subnames" which can be resources or properties. + + Note: In the editor, NodePath properties are automatically updated when moving, + renaming or deleting a node in the scene tree, but they are never updated at runtime. + + + Some examples of NodePaths include the following: + + // No leading slash means it is relative to the current node. + new NodePath("A"); // Immediate child A. + new NodePath("A/B"); // A's child B. + new NodePath("."); // The current node. + new NodePath(".."); // The parent node. + new NodePath("../C"); // A sibling node C. + // A leading slash means it is absolute from the SceneTree. + new NodePath("/root"); // Equivalent to GetTree().Root + new NodePath("/root/Main"); // If your main scene's root node were named "Main". + new NodePath("/root/MyAutoload"); // If you have an autoloaded node or scene. + + + + + + Disposes of this . + + + + + Constructs an empty . + + + + + Constructs a from a string , + e.g.: "Path2D/PathFollow2D/Sprite2D:texture:size". + A path is absolute if it starts with a slash. Absolute paths + are only valid in the global scene tree, not within individual + scenes. In a relative path, "." and ".." indicate + the current node and its parent. + The "subnames" optionally included after the path to the target + node can point to resources or properties, and can also be nested. + + + Examples of valid NodePaths (assuming that those nodes exist and + have the referenced resources or properties): + + // Points to the Sprite2D node. + "Path2D/PathFollow2D/Sprite2D" + // Points to the Sprite2D node and its "texture" resource. + // GetNode() would retrieve "Sprite2D", while GetNodeAndResource() + // would retrieve both the Sprite2D node and the "texture" resource. + "Path2D/PathFollow2D/Sprite2D:texture" + // Points to the Sprite2D node and its "position" property. + "Path2D/PathFollow2D/Sprite2D:position" + // Points to the Sprite2D node and the "x" component of its "position" property. + "Path2D/PathFollow2D/Sprite2D:position:x" + // Absolute path (from "root") + "/root/Level/Path2D" + + + A string that represents a path in a scene tree. + + + + Converts a string to a . + + The string to convert. + + + + Converts this to a string. + + The to convert. + + + + Converts this to a string. + + A string representation of this . + + + + Returns a node path with a colon character (:) prepended, + transforming it to a pure property path with no node name (defaults + to resolving from the current node). + + + + // This will be parsed as a node path to the "x" property in the "position" node. + var nodePath = new NodePath("position:x"); + // This will be parsed as a node path to the "x" component of the "position" property in the current node. + NodePath propertyPath = nodePath.GetAsPropertyPath(); + GD.Print(propertyPath); // :position:x + + + The as a pure property path. + + + + Returns all names concatenated with a slash character (/). + + + + var nodepath = new NodePath("Path2D/PathFollow2D/Sprite2D:texture:load_path"); + GD.Print(nodepath.GetConcatenatedNames()); // Path2D/PathFollow2D/Sprite2D + + + The names concatenated with /. + + + + Returns all subnames concatenated with a colon character (:) + as separator, i.e. the right side of the first colon in a node path. + + + + var nodepath = new NodePath("Path2D/PathFollow2D/Sprite2D:texture:load_path"); + GD.Print(nodepath.GetConcatenatedSubnames()); // texture:load_path + + + The subnames concatenated with :. + + + + Gets the node name indicated by (0 to ). + + + + var nodePath = new NodePath("Path2D/PathFollow2D/Sprite2D"); + GD.Print(nodePath.GetName(0)); // Path2D + GD.Print(nodePath.GetName(1)); // PathFollow2D + GD.Print(nodePath.GetName(2)); // Sprite + + + The name index. + The name at the given index . + + + + Gets the number of node names which make up the path. + Subnames (see ) are not included. + For example, "Path2D/PathFollow2D/Sprite2D" has 3 names. + + The number of node names which make up the path. + + + + Gets the resource or property name indicated by (0 to ). + + The subname index. + The subname at the given index . + + + + Gets the number of resource or property names ("subnames") in the path. + Each subname is listed after a colon character (:) in the node path. + For example, "Path2D/PathFollow2D/Sprite2D:texture:load_path" has 2 subnames. + + The number of subnames in the path. + + + + Returns if the node path is absolute (as opposed to relative), + which means that it starts with a slash character (/). Absolute node paths can + be used to access the root node ("/root") or autoloads (e.g. "/global" + if a "global" autoload was registered). + + If the is an absolute path. + + + + Returns if the node path is empty. + + If the is empty. + + + + Plane represents a normalized plane equation. + "Over" or "Above" the plane is considered the side of + the plane towards where the normal is pointing. + + + + + The normal of the plane, which must be a unit vector. + In the scalar equation of the plane ax + by + cz = d, this is + the vector (a, b, c), where d is the property. + + Equivalent to , , and . + + + + The distance from the origin to the plane (in the direction of + ). This value is typically non-negative. + In the scalar equation of the plane ax + by + cz = d, + this is d, while the (a, b, c) coordinates are represented + by the property. + + The plane's distance from the origin. + + + + The X component of the plane's normal vector. + + Equivalent to 's X value. + + + + The Y component of the plane's normal vector. + + Equivalent to 's Y value. + + + + The Z component of the plane's normal vector. + + Equivalent to 's Z value. + + + + Returns the shortest distance from this plane to the position . + + The position to use for the calculation. + The shortest distance. + + + + Returns the center of the plane, the point on the plane closest to the origin. + The point where the normal line going through the origin intersects the plane. + + Equivalent to multiplied by . + + + + Returns if point is inside the plane. + Comparison uses a custom minimum tolerance threshold. + + The point to check. + The tolerance threshold. + A for whether or not the plane has the point. + + + + Returns the intersection point of the three planes: , , + and this plane. If no intersection is found, is returned. + + One of the three planes to use in the calculation. + One of the three planes to use in the calculation. + The intersection, or if none is found. + + + + Returns the intersection point of a ray consisting of the position + and the direction normal with this plane. + If no intersection is found, is returned. + + The start of the ray. + The direction of the ray, normalized. + The intersection, or if none is found. + + + + Returns the intersection point of a line segment from + position to position with this plane. + If no intersection is found, is returned. + + The start of the line segment. + The end of the line segment. + The intersection, or if none is found. + + + + Returns if this plane is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if is located above the plane. + + The point to check. + A for whether or not the point is above the plane. + + + + Returns the plane scaled to unit length. + + A normalized version of the plane. + + + + Returns the orthogonal projection of into the plane. + + The point to project. + The projected point. + + + + A that extends in the Y and Z axes (normal vector points +X). + + Equivalent to new Plane(1, 0, 0, 0). + + + + A that extends in the X and Z axes (normal vector points +Y). + + Equivalent to new Plane(0, 1, 0, 0). + + + + A that extends in the X and Y axes (normal vector points +Z). + + Equivalent to new Plane(0, 0, 1, 0). + + + + Constructs a from four values. + , and become the + components of the resulting plane's vector. + becomes the plane's distance from the origin. + + The X component of the plane's normal vector. + The Y component of the plane's normal vector. + The Z component of the plane's normal vector. + The plane's distance from the origin. This value is typically non-negative. + + + + Constructs a from a vector. + The plane will intersect the origin. + + The normal of the plane, must be a unit vector. + + + + Constructs a from a vector and + the plane's distance to the origin . + + The normal of the plane, must be a unit vector. + The plane's distance from the origin. This value is typically non-negative. + + + + Constructs a from a vector and + a on the plane. + + The normal of the plane, must be a unit vector. + The point on the plane. + + + + Constructs a from the three points, given in clockwise order. + + The first point. + The second point. + The third point. + + + + Returns the negative value of the . + This is the same as writing new Plane(-p.Normal, -p.D). + This operation flips the direction of the normal vector and + also flips the distance value, resulting in a Plane that is + in the same place, but facing the opposite direction. + + The plane to negate/flip. + The negated/flipped plane. + + + + Returns if the + s are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the planes are exactly equal. + + + + Returns if the + s are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the planes are not equal. + + + + Returns if this plane and are equal. + + The other object to compare. + Whether or not the plane and the other object are exactly equal. + + + + Returns if this plane and are equal. + + The other plane to compare. + Whether or not the planes are exactly equal. + + + + Returns if this plane and are + approximately equal, by running on each component. + + The other plane to compare. + Whether or not the planes are approximately equal. + + + + Serves as the hash function for . + + A hash code for this plane. + + + + Converts this to a string. + + A string representation of this plane. + + + + Converts this to a string with the given . + + A string representation of this plane. + + + + A 4x4 matrix used for 3D projective transformations. It can represent transformations such as + translation, rotation, scaling, shearing, and perspective division. It consists of four + columns. + For purely linear transformations (translation, rotation, and scale), it is recommended to use + , as it is more performant and has a lower memory footprint. + Used internally as 's projection matrix. + + + + + Enumerated index values for the planes. + + + + + The projection's near plane. + + + + + The projection's far plane. + + + + + The projection's left plane. + + + + + The projection's top plane. + + + + + The projection's right plane. + + + + + The projection's bottom plane. + + + + + The projection's X column. Also accessible by using the index position [0]. + + + + + The projection's Y column. Also accessible by using the index position [1]. + + + + + The projection's Z column. Also accessible by using the index position [2]. + + + + + The projection's W column. Also accessible by using the index position [3]. + + + + + Access whole columns in the form of . + + Which column vector. + + is not 0, 1, 2 or 3. + + + + + Access single values. + + Which column vector. + Which row of the column. + + or are not 0, 1, 2 or 3. + + + + + Creates a new that projects positions from a depth range of + -1 to 1 to one that ranges from 0 to 1, and flips the projected + positions vertically, according to . + + If the projection should be flipped vertically. + The created projection. + + + + Creates a new that scales a given projection to fit around + a given in projection space. + + The Aabb to fit the projection around. + The created projection. + + + + Creates a new for projecting positions onto a head-mounted display with + the given X:Y aspect ratio, distance between eyes, display width, distance to lens, oversampling factor, + and depth clipping planes. + creates the projection for the left eye when set to 1, + or the right eye when set to 2. + + + The eye to create the projection for. + The left eye when set to 1, the right eye when set to 2. + + The aspect ratio. + The distance between the eyes. + The display width. + The distance to the lens. + The oversampling factor. + The near clipping distance. + The far clipping distance. + The created projection. + + + + Creates a new that projects positions in a frustum with + the given clipping planes. + + The left clipping distance. + The right clipping distance. + The bottom clipping distance. + The top clipping distance. + The near clipping distance. + The far clipping distance. + The created projection. + + + + Creates a new that projects positions in a frustum with + the given size, X:Y aspect ratio, offset, and clipping planes. + determines whether the projection's field of view is flipped over its diagonal. + + The frustum size. + The aspect ratio. + The offset to apply. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + The created projection. + + + + Creates a new that projects positions into the given . + + The Rect2 to project positions into. + The created projection. + + + + Creates a new that projects positions using an orthogonal projection with + the given clipping planes. + + The left clipping distance. + The right clipping distance. + The bottom clipping distance. + The top clipping distance. + The near clipping distance. + The far clipping distance. + The created projection. + + + + Creates a new that projects positions using an orthogonal projection with + the given size, X:Y aspect ratio, and clipping planes. + determines whether the projection's field of view is flipped over its diagonal. + + The frustum size. + The aspect ratio. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + The created projection. + + + + Creates a new that projects positions using a perspective projection with + the given Y-axis field of view (in degrees), X:Y aspect ratio, and clipping planes. + determines whether the projection's field of view is flipped over its diagonal. + + The vertical field of view (in degrees). + The aspect ratio. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + The created projection. + + + + Creates a new that projects positions using a perspective projection with + the given Y-axis field of view (in degrees), X:Y aspect ratio, and clipping distances. + The projection is adjusted for a head-mounted display with the given distance between eyes and distance + to a point that can be focused on. + creates the projection for the left eye when set to 1, + or the right eye when set to 2. + determines whether the projection's field of view is flipped over its diagonal. + + The vertical field of view (in degrees). + The aspect ratio. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + + The eye to create the projection for. + The left eye when set to 1, the right eye when set to 2. + + The distance between the eyes. + The distance to a point of convergence that can be focused on. + The created projection. + + + + Returns a scalar value that is the signed factor by which areas are scaled by this matrix. + If the sign is negative, the matrix flips the orientation of the area. + The determinant can be used to calculate the invertibility of a matrix or solve linear systems + of equations involving the matrix, among other applications. + + The determinant calculated from this projection. + + + + Returns the X:Y aspect ratio of this 's viewport. + + The aspect ratio from this projection's viewport. + + + + Returns the horizontal field of view of the projection (in degrees). + + The horizontal field of view of this projection. + + + + Returns the vertical field of view of the projection (in degrees) associated with + the given horizontal field of view (in degrees) and aspect ratio. + + The horizontal field of view (in degrees). + The aspect ratio. + The vertical field of view of this projection. + + + + Returns the factor by which the visible level of detail is scaled by this . + + The level of detail factor for this projection. + + + + Returns the number of pixels with the given pixel width displayed per meter, after + this is applied. + + The width for each pixel (in meters). + The number of pixels per meter. + + + + Returns the clipping plane of this whose index is given + by . + should be equal to one of , + , , , + , or . + + The kind of clipping plane to get from the projection. + The clipping plane of this projection. + + + + Returns the dimensions of the far clipping plane of the projection, divided by two. + + The half extents for this projection's far plane. + + + + Returns the dimensions of the viewport plane that this + projects positions onto, divided by two. + + The half extents for this projection's viewport plane. + + + + Returns the distance for this beyond which positions are clipped. + + The distance beyond which positions are clipped. + + + + Returns the distance for this before which positions are clipped. + + The distance before which positions are clipped. + + + + Returns a copy of this with the signs of the values of the Y column flipped. + + The flipped projection. + + + + Returns a with the near clipping distance adjusted to be + . + Note: The original must be a perspective projection. + + The near clipping distance to adjust the projection to. + The adjusted projection. + + + + Returns a with the X and Y values from the given + added to the first and second values of the final column respectively. + + The offset to apply to the projection. + The offsetted projection. + + + + Returns a that performs the inverse of this 's + projective transformation. + + The inverted projection. + + + + Returns if this performs an orthogonal projection. + + If the projection performs an orthogonal projection. + + + + Zero projection, a projection with all components set to 0. + + Equivalent to new Projection(Vector4.Zero, Vector4.Zero, Vector4.Zero, Vector4.Zero). + + + + The identity projection, with no distortion applied. + This is used as a replacement for Projection() in GDScript. + Do not use new Projection() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Projection(new Vector4(1, 0, 0, 0), new Vector4(0, 1, 0, 0), new Vector4(0, 0, 1, 0), new Vector4(0, 0, 0, 1)). + + + + Constructs a projection from 4 vectors (matrix columns). + + The X column, or column index 0. + The Y column, or column index 1. + The Z column, or column index 2. + The W column, or column index 3. + + + + Constructs a new from a . + + The . + + + + Composes these two projections by multiplying them + together. This has the effect of applying the right + and then the left projection. + + The parent transform. + The child transform. + The composed projection. + + + + Returns a Vector4 transformed (multiplied) by the projection. + + The projection to apply. + A Vector4 to transform. + The transformed Vector4. + + + + Returns a Vector4 transformed (multiplied) by the transpose of the projection. + For transforming by inverse of a projection projection.Inverse() * vector can be used instead. See . + + The projection to apply. + A Vector4 to transform. + The inversely transformed Vector4. + + + + Returns a Vector3 transformed (multiplied) by the projection. + + The projection to apply. + A Vector3 to transform. + The transformed Vector3. + + + + Returns if the projections are exactly equal. + + The left projection. + The right projection. + Whether or not the projections are exactly equal. + + + + Returns if the projections are not exactly equal. + + The left projection. + The right projection. + Whether or not the projections are not exactly equal. + + + + Constructs a new from the . + + The . + + + + Returns if the projection is exactly equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the projections are exactly equal. + + The other projection. + Whether or not the projections are exactly equal. + + + + Serves as the hash function for . + + A hash code for this projection. + + + + Converts this to a string. + + A string representation of this projection. + + + + Converts this to a string with the given . + + A string representation of this projection. + + + + A unit quaternion used for representing 3D rotations. + Quaternions need to be normalized to be used for rotation. + + It is similar to , which implements matrix + representation of rotations, and can be parametrized using both + an axis-angle pair or Euler angles. Basis stores rotation, scale, + and shearing, while Quaternion only stores rotation. + + Due to its compactness and the way it is stored in memory, certain + operations (obtaining axis-angle and performing SLERP, in particular) + are more efficient and robust against floating-point errors. + + + + + X component of the quaternion (imaginary i axis part). + Quaternion components should usually not be manipulated directly. + + + + + Y component of the quaternion (imaginary j axis part). + Quaternion components should usually not be manipulated directly. + + + + + Z component of the quaternion (imaginary k axis part). + Quaternion components should usually not be manipulated directly. + + + + + W component of the quaternion (real part). + Quaternion components should usually not be manipulated directly. + + + + + Access quaternion components using their index. + + + is not 0, 1, 2 or 3. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to , + [3] is equivalent to . + + + + + Returns the angle between this quaternion and . + This is the magnitude of the angle you would need to rotate + by to get from one to the other. + + Note: This method has an abnormally high amount + of floating-point error, so methods such as + will not work reliably. + + The other quaternion. + The angle between the quaternions. + + + + Performs a spherical cubic interpolation between quaternions , this quaternion, + , and , by the given amount . + + The destination quaternion. + A quaternion before this quaternion. + A quaternion after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated quaternion. + + + + Performs a spherical cubic interpolation between quaternions , this quaternion, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination quaternion. + A quaternion before this quaternion. + A quaternion after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated quaternion. + + + + Returns the dot product of two quaternions. + + The other quaternion. + The dot product. + + + + Returns Euler angles (in the YXZ convention: when decomposing, + first Z, then X, and Y last) corresponding to the rotation + represented by the unit quaternion. Returned vector contains + the rotation angles in the format (X angle, Y angle, Z angle). + + The Euler angle representation of this quaternion. + + + + Returns the inverse of the quaternion. + + The inverse quaternion. + + + + Returns if this quaternion is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns whether the quaternion is normalized or not. + + A for whether the quaternion is normalized or not. + + + + Returns the length (magnitude) of the quaternion. + + + Equivalent to Mathf.Sqrt(LengthSquared). + + + + Returns the squared length (squared magnitude) of the quaternion. + This method runs faster than , so prefer it if + you need to compare quaternions or need the squared length for some formula. + + Equivalent to Dot(this). + + + + Returns a copy of the quaternion, normalized to unit length. + + The normalized quaternion. + + + + Returns the result of the spherical linear interpolation between + this quaternion and by amount . + + Note: Both quaternions must be normalized. + + The destination quaternion for interpolation. Must be normalized. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting quaternion of the interpolation. + + + + Returns the result of the spherical linear interpolation between + this quaternion and by amount , but without + checking if the rotation path is not bigger than 90 degrees. + + The destination quaternion for interpolation. Must be normalized. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting quaternion of the interpolation. + + + + The identity quaternion, representing no rotation. + Equivalent to an identity matrix. If a vector is transformed by + an identity quaternion, it will not change. + + Equivalent to new Quaternion(0, 0, 0, 1). + + + + Constructs a defined by the given values. + + X component of the quaternion (imaginary i axis part). + Y component of the quaternion (imaginary j axis part). + Z component of the quaternion (imaginary k axis part). + W component of the quaternion (real part). + + + + Constructs a from the given . + + The to construct from. + + + + Constructs a that will rotate around the given axis + by the specified angle. The axis must be a normalized vector. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + + + + Constructs a that will perform a rotation specified by + Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), + given in the vector format as (X angle, Y angle, Z angle). + + Euler angles that the quaternion will be rotated by. + + + + Composes these two quaternions by multiplying them together. + This has the effect of rotating the second quaternion + (the child) by the first quaternion (the parent). + + The parent quaternion. + The child quaternion. + The composed quaternion. + + + + Returns a Vector3 rotated (multiplied) by the quaternion. + + The quaternion to rotate by. + A Vector3 to transform. + The rotated Vector3. + + + + Returns a Vector3 rotated (multiplied) by the inverse quaternion. + vector * quaternion is equivalent to quaternion.Inverse() * vector. See . + + A Vector3 to inversely rotate. + The quaternion to rotate by. + The inversely rotated Vector3. + + + + Adds each component of the left + to the right . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression, such as approximating an intermediate + rotation between two nearby rotations. + + The left quaternion to add. + The right quaternion to add. + The added quaternion. + + + + Subtracts each component of the left + by the right . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The left quaternion to subtract. + The right quaternion to subtract. + The subtracted quaternion. + + + + Returns the negative value of the . + This is the same as writing + new Quaternion(-q.X, -q.Y, -q.Z, -q.W). This operation + results in a quaternion that represents the same rotation. + + The quaternion to negate. + The negated quaternion. + + + + Multiplies each component of the + by the given . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The quaternion to multiply. + The value to multiply by. + The multiplied quaternion. + + + + Multiplies each component of the + by the given . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The value to multiply by. + The quaternion to multiply. + The multiplied quaternion. + + + + Divides each component of the + by the given . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The quaternion to divide. + The value to divide by. + The divided quaternion. + + + + Returns if the quaternions are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left quaternion. + The right quaternion. + Whether or not the quaternions are exactly equal. + + + + Returns if the quaternions are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left quaternion. + The right quaternion. + Whether or not the quaternions are not equal. + + + + Returns if this quaternion and are equal. + + The other object to compare. + Whether or not the quaternion and the other object are exactly equal. + + + + Returns if this quaternion and are equal. + + The other quaternion to compare. + Whether or not the quaternions are exactly equal. + + + + Returns if this quaternion and are approximately equal, + by running on each component. + + The other quaternion to compare. + Whether or not the quaternions are approximately equal. + + + + Serves as the hash function for . + + A hash code for this quaternion. + + + + Converts this to a string. + + A string representation of this quaternion. + + + + Converts this to a string with the given . + + A string representation of this quaternion. + + + + 2D axis-aligned bounding box. Rect2 consists of a position, a size, and + several utility functions. It is typically used for fast overlap tests. + + + + + Beginning corner. Typically has values lower than . + + Directly uses a private field. + + + + Size from to . Typically all components are positive. + If the size is negative, you can use to fix it. + + Directly uses a private field. + + + + Ending corner. This is calculated as plus . + Setting this value will change the size. + + + Getting is equivalent to = + , + setting is equivalent to = - + + + + + The area of this . + See also . + + + + + Returns a with equivalent position and size, modified so that + the top-left corner is the origin and width and height are positive. + + The modified . + + + + Returns the intersection of this and . + If the rectangles do not intersect, an empty is returned. + + The other . + + The intersection of this and , + or an empty if they do not intersect. + + + + + Returns if this is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if this completely encloses another one. + + The other that may be enclosed. + + A for whether or not this encloses . + + + + + Returns this expanded to include a given point. + + The point to include. + The expanded . + + + + Returns the center of the , which is equal + to + ( / 2). + + The center. + + + + Returns the support point in a given direction. + This is useful for collision detection algorithms. + + The direction to find support for. + A vector representing the support. + + + + Returns a copy of the grown by the specified amount + on all sides. + + + + The amount to grow by. + The grown . + + + + Returns a copy of the grown by the specified amount + on each side individually. + + + + The amount to grow by on the left side. + The amount to grow by on the top side. + The amount to grow by on the right side. + The amount to grow by on the bottom side. + The grown . + + + + Returns a copy of the grown by the specified amount + on the specified . + + + + The side to grow. + The amount to grow by. + The grown . + + + + Returns if the has + area, and if the + is linear, empty, or has a negative . + See also . + + + A for whether or not the has area. + + + + + Returns if the contains a point, + or otherwise. + + The point to check. + + A for whether or not the contains . + + + + + Returns if the overlaps with + (i.e. they have at least one point in common). + + If is , + they will also be considered overlapping if their borders touch, + even without intersection. + + The other to check for intersections with. + Whether or not to consider borders. + A for whether or not they are intersecting. + + + + Returns a larger that contains this and . + + The other . + The merged . + + + + Constructs a from a position and size. + + The position. + The size. + + + + Constructs a from a position, width, and height. + + The position. + The width. + The height. + + + + Constructs a from x, y, and size. + + The position's X coordinate. + The position's Y coordinate. + The size. + + + + Constructs a from x, y, width, and height. + + The position's X coordinate. + The position's Y coordinate. + The width. + The height. + + + + Returns if the + s are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the rects are exactly equal. + + + + Returns if the + s are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the rects are not equal. + + + + Returns if this rect and are equal. + + The other object to compare. + Whether or not the rect and the other object are exactly equal. + + + + Returns if this rect and are equal. + + The other rect to compare. + Whether or not the rects are exactly equal. + + + + Returns if this rect and are approximately equal, + by running on each component. + + The other rect to compare. + Whether or not the rects are approximately equal. + + + + Serves as the hash function for . + + A hash code for this rect. + + + + Converts this to a string. + + A string representation of this rect. + + + + Converts this to a string with the given . + + A string representation of this rect. + + + + 2D axis-aligned bounding box using integers. Rect2I consists of a position, a size, and + several utility functions. It is typically used for fast overlap tests. + + + + + Beginning corner. Typically has values lower than . + + Directly uses a private field. + + + + Size from to . Typically all components are positive. + If the size is negative, you can use to fix it. + + Directly uses a private field. + + + + Ending corner. This is calculated as plus . + Setting this value will change the size. + + + Getting is equivalent to = + , + setting is equivalent to = - + + + + + The area of this . + See also . + + + + + Returns a with equivalent position and size, modified so that + the top-left corner is the origin and width and height are positive. + + The modified . + + + + Returns the intersection of this and . + If the rectangles do not intersect, an empty is returned. + + The other . + + The intersection of this and , + or an empty if they do not intersect. + + + + + Returns if this completely encloses another one. + + The other that may be enclosed. + + A for whether or not this encloses . + + + + + Returns this expanded to include a given point. + + The point to include. + The expanded . + + + + Returns the center of the , which is equal + to + ( / 2). + If is an odd number, the returned center + value will be rounded towards . + + The center. + + + + Returns a copy of the grown by the specified amount + on all sides. + + + + The amount to grow by. + The grown . + + + + Returns a copy of the grown by the specified amount + on each side individually. + + + + The amount to grow by on the left side. + The amount to grow by on the top side. + The amount to grow by on the right side. + The amount to grow by on the bottom side. + The grown . + + + + Returns a copy of the grown by the specified amount + on the specified . + + + + The side to grow. + The amount to grow by. + The grown . + + + + Returns if the has + area, and if the + is linear, empty, or has a negative . + See also . + + + A for whether or not the has area. + + + + + Returns if the contains a point, + or otherwise. + + The point to check. + + A for whether or not the contains . + + + + + Returns if the overlaps with + (i.e. they have at least one point in common). + + The other to check for intersections with. + A for whether or not they are intersecting. + + + + Returns a larger that contains this and . + + The other . + The merged . + + + + Constructs a from a position and size. + + The position. + The size. + + + + Constructs a from a position, width, and height. + + The position. + The width. + The height. + + + + Constructs a from x, y, and size. + + The position's X coordinate. + The position's Y coordinate. + The size. + + + + Constructs a from x, y, width, and height. + + The position's X coordinate. + The position's Y coordinate. + The width. + The height. + + + + Returns if the + s are exactly equal. + + The left rect. + The right rect. + Whether or not the rects are equal. + + + + Returns if the + s are not equal. + + The left rect. + The right rect. + Whether or not the rects are not equal. + + + + Converts this to a . + + The rect to convert. + + + + Converts a to a . + + The rect to convert. + + + + Returns if this rect and are equal. + + The other object to compare. + Whether or not the rect and the other object are equal. + + + + Returns if this rect and are equal. + + The other rect to compare. + Whether or not the rects are equal. + + + + Serves as the hash function for . + + A hash code for this rect. + + + + Converts this to a string. + + A string representation of this rect. + + + + Converts this to a string with the given . + + A string representation of this rect. + + + + The RID type is used to access a low-level resource by its unique ID. + RIDs are opaque, which means they do not grant access to the resource + by themselves. They are used by the low-level server classes, such as + , , + , etc. + + A low-level resource may correspond to a high-level , + such as or + + + + + Constructs a new for the given . + + + + + Returns the ID of the referenced low-level resource. + + The ID of the referenced resource. + + + + Returns if the is not 0. + + Whether or not the ID is valid. + + + + Returns if both s are equal, + which means they both refer to the same low-level resource. + + The left RID. + The right RID. + Whether or not the RIDs are equal. + + + + Returns if the s are not equal. + + The left RID. + The right RID. + Whether or not the RIDs are equal. + + + + Returns if this RID and are equal. + + The other object to compare. + Whether or not the color and the other object are equal. + + + + Returns if the RIDs are equal. + + The other RID. + Whether or not the RIDs are equal. + + + + Serves as the hash function for . + + A hash code for this RID. + + + + Converts this to a string. + + A string representation of this Rid. + + + + Represents a signal defined in an object. + + + + + Object that contains the signal. + + + + + Name of the signal. + + + + + Creates a new with the name + in the specified . + + Object that contains the signal. + Name of the signal. + + + + Extension methods to manipulate strings. + + + + + Returns the bigrams (pairs of consecutive letters) of this string. + + The string that will be used. + The bigrams of this string. + + + + Converts a string containing a binary number into an integer. + Binary strings can either be prefixed with 0b or not, + and they can also start with a - before the optional prefix. + + The string to convert. + The converted string. + + + + Returns the number of occurrences of substring in the string. + + The string where the substring will be searched. + The substring that will be counted. + Index to start searching from. + Index to stop searching at. + If the search is case sensitive. + Number of occurrences of the substring in the string. + + + + Returns the number of occurrences of substring (ignoring case) + between and positions. If + and equals 0 the whole string will be used. If only + equals 0 the remained substring will be used. + + The string where the substring will be searched. + The substring that will be counted. + Index to start searching from. + Index to stop searching at. + Number of occurrences of the substring in the string. + + + + Returns a copy of the string with indentation (leading tabs and spaces) removed. + See also to add indentation. + + The string to remove the indentation from. + The string with the indentation removed. + + + + Returns a copy of the string with special characters escaped using the C language standard. + + The string to escape. + The escaped string. + + + + Returns a copy of the string with escaped characters replaced by their meanings + according to the C language standard. + + The string to unescape. + The unescaped string. + + + + Changes the case of some letters. Replace underscores with spaces, convert all letters + to lowercase then capitalize first and every letter following the space character. + For capitalize camelCase mixed_with_underscores it will return + Capitalize Camelcase Mixed With Underscores. + + The string to capitalize. + The capitalized string. + + + + Returns the string converted to camelCase. + + The string to convert. + The converted string. + + + + Returns the string converted to PascalCase. + + The string to convert. + The converted string. + + + + Returns the string converted to snake_case. + + The string to convert. + The converted string. + + + + Performs a case-sensitive comparison to another string and returns an integer that indicates their relative position in the sort order. + + + + The string to compare. + The other string to compare. + An integer that indicates the lexical relationship between the two comparands. + + + + Performs a comparison to another string and returns an integer that indicates their relative position in the sort order. + + The string to compare. + The other string to compare. + + If , the comparison will be case sensitive. + + An integer that indicates the lexical relationship between the two comparands. + + + + Returns the extension without the leading period character (.) + if the string is a valid file name or path. If the string does not contain + an extension, returns an empty string instead. + + + + GD.Print("/path/to/file.txt".GetExtension()) // "txt" + GD.Print("file.txt".GetExtension()) // "txt" + GD.Print("file.sample.txt".GetExtension()) // "txt" + GD.Print(".txt".GetExtension()) // "txt" + GD.Print("file.txt.".GetExtension()) // "" (empty string) + GD.Print("file.txt..".GetExtension()) // "" (empty string) + GD.Print("txt".GetExtension()) // "" (empty string) + GD.Print("".GetExtension()) // "" (empty string) + + + + + + The path to a file. + The extension of the file or an empty string. + + + + Returns the index of the first occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing + to the end of the string. + Note: If you just want to know whether a string contains a substring, use the + method. + + + + + + The string that will be searched. + The substring to find. + The search starting position. + If , the search is case sensitive. + The starting position of the substring, or -1 if not found. + + + + Find the first occurrence of a char. Optionally, the search starting position can be passed. + + + + + + The string that will be searched. + The substring to find. + The search starting position. + If , the search is case sensitive. + The first instance of the char, or -1 if not found. + + + + Returns the index of the first case-insensitive occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing + to the end of the string. + + + + + + The string that will be searched. + The substring to find. + The search starting position. + The starting position of the substring, or -1 if not found. + + + + If the string is a path to a file, return the base directory. + + + + + The path to a file. + The base directory. + + + + If the string is a path to a file, return the path to the file without the extension. + + + + + The path to a file. + The path to the file without the extension. + + + + If the string is a path to a file, return the file and ignore the base directory. + + + + + The path to a file. + The file name. + + + + Converts ASCII encoded array to string. + Fast alternative to if the + content is ASCII-only. Unlike the UTF-8 function this function + maps every byte to a character in the array. Multibyte sequences + will not be interpreted correctly. For parsing user input always + use . + + A byte array of ASCII characters (on the range of 0-127). + A string created from the bytes. + + + + Converts UTF-16 encoded array to string using the little endian byte order. + + A byte array of UTF-16 characters. + A string created from the bytes. + + + + Converts UTF-32 encoded array to string using the little endian byte order. + + A byte array of UTF-32 characters. + A string created from the bytes. + + + + Converts UTF-8 encoded array to string. + Slower than but supports UTF-8 + encoded data. Use this function if you are unsure about the + source of the data. For user input this function + should always be preferred. + + + A byte array of UTF-8 characters (a character may take up multiple bytes). + + A string created from the bytes. + + + + Hash the string and return a 32 bits unsigned integer. + + The string to hash. + The calculated hash of the string. + + + + Decodes a hexadecimal string. + + The hexadecimal string. + The byte array representation of this string. + + + + Returns a hexadecimal representation of this byte as a string. + + The byte to encode. + The hexadecimal representation of this byte. + + + + Returns a hexadecimal representation of this byte array as a string. + + The byte array to encode. + The hexadecimal representation of this byte array. + + + + Converts a string containing a hexadecimal number into an integer. + Hexadecimal strings can either be prefixed with 0x or not, + and they can also start with a - before the optional prefix. + + The string to convert. + The converted string. + + + + Returns a copy of the string with lines indented with . + For example, the string can be indented with two tabs using "\t\t", + or four spaces using " ". The prefix can be any string so it can + also be used to comment out strings with e.g. "// . + See also to remove indentation. + Note: Empty lines are kept empty. + + The string to add indentation to. + The string to use as indentation. + The string with indentation added. + + + + Returns if the string is a path to a file or + directory and its starting point is explicitly defined. This includes + res://, user://, C:\, /, etc. + + + The string to check. + If the string is an absolute path. + + + + Returns if the string is a path to a file or + directory and its starting point is implicitly defined within the + context it is being used. The starting point may refer to the current + directory (./), or the current . + + + The string to check. + If the string is a relative path. + + + + Check whether this string is a subsequence of the given string. + + + The subsequence to search. + The string that contains the subsequence. + If , the check is case sensitive. + If the string is a subsequence of the given string. + + + + Check whether this string is a subsequence of the given string, ignoring case differences. + + + The subsequence to search. + The string that contains the subsequence. + If the string is a subsequence of the given string. + + + + Returns if this string is free from characters that + aren't allowed in file names. + + The string to check. + If the string contains a valid file name. + + + + Returns if this string contains a valid . + This is inclusive of integers, and also supports exponents. + + + + GD.Print("1.7".IsValidFloat()) // Prints "True" + GD.Print("24".IsValidFloat()) // Prints "True" + GD.Print("7e3".IsValidFloat()) // Prints "True" + GD.Print("Hello".IsValidFloat()) // Prints "False" + + + The string to check. + If the string contains a valid floating point number. + + + + Returns if this string contains a valid hexadecimal number. + If is , then a validity of the + hexadecimal number is determined by 0x prefix, for instance: 0xDEADC0DE. + + The string to check. + If the string must contain the 0x prefix to be valid. + If the string contains a valid hexadecimal number. + + + + Returns if this string contains a valid color in hexadecimal + HTML notation. Other HTML notations such as named colors or hsl() aren't + considered valid by this method and will return . + + The string to check. + If the string contains a valid HTML color. + + + + Returns if this string is a valid identifier. + A valid identifier may contain only letters, digits and underscores (_) + and the first character may not be a digit. + + + + GD.Print("good_ident_1".IsValidIdentifier()) // Prints "True" + GD.Print("1st_bad_ident".IsValidIdentifier()) // Prints "False" + GD.Print("bad_ident_#2".IsValidIdentifier()) // Prints "False" + + + The string to check. + If the string contains a valid identifier. + + + + Returns if this string contains a valid . + + + + GD.Print("7".IsValidInt()) // Prints "True" + GD.Print("14.6".IsValidInt()) // Prints "False" + GD.Print("L".IsValidInt()) // Prints "False" + GD.Print("+3".IsValidInt()) // Prints "True" + GD.Print("-12".IsValidInt()) // Prints "True" + + + The string to check. + If the string contains a valid integer. + + + + Returns if this string contains only a well-formatted + IPv4 or IPv6 address. This method considers reserved IP addresses such as + 0.0.0.0 as valid. + + The string to check. + If the string contains a valid IP address. + + + + Returns a copy of the string with special characters escaped using the JSON standard. + + The string to escape. + The escaped string. + + + + Returns an amount of characters from the left of the string. + + + The original string. + The position in the string where the left side ends. + The left side of the string from the given position. + + + + Do a simple expression match, where '*' matches zero or more + arbitrary characters and '?' matches any single character except '.'. + + The string to check. + Expression to check. + + If , the check will be case sensitive. + + If the expression has any matches. + + + + Do a simple case sensitive expression match, using ? and * wildcards. + + + The string to check. + Expression to check. + + If , the check will be case sensitive. + + If the expression has any matches. + + + + Do a simple case insensitive expression match, using ? and * wildcards. + + + The string to check. + Expression to check. + If the expression has any matches. + + + + Returns the MD5 hash of the string as an array of bytes. + + + The string to hash. + The MD5 hash of the string. + + + + Returns the MD5 hash of the string as a string. + + + The string to hash. + The MD5 hash of the string. + + + + Performs a case-insensitive comparison to another string and returns an integer that indicates their relative position in the sort order. + + + + The string to compare. + The other string to compare. + An integer that indicates the lexical relationship between the two comparands. + + + + Format a number to have an exact number of + after the decimal point. + + + The string to pad. + Amount of digits after the decimal point. + The string padded with zeroes. + + + + Format a number to have an exact number of + before the decimal point. + + + The string to pad. + Amount of digits before the decimal point. + The string padded with zeroes. + + + + If the string is a path, this concatenates + at the end of the string as a subpath. + E.g. "this/is".PathJoin("path") == "this/is/path". + + The path that will be concatenated. + File name to concatenate with the path. + The concatenated path with the given file name. + + + + Replace occurrences of a substring for different ones inside the string, but search case-insensitive. + + + The string to modify. + The substring to be replaced in the string. + The substring that replaces . + The string with the substring occurrences replaced. + + + + Returns the index of the last occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing to + the beginning of the string. + + + + + + The string that will be searched. + The substring to search in the string. + The position at which to start searching. + If , the search is case sensitive. + The position at which the substring was found, or -1 if not found. + + + + Returns the index of the last case-insensitive occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing to + the beginning of the string. + + + + + + The string that will be searched. + The substring to search in the string. + The position at which to start searching. + The position at which the substring was found, or -1 if not found. + + + + Returns the right side of the string from a given position. + + + The original string. + The position in the string from which the right side starts. + The right side of the string from the given position. + + + + Returns the SHA-1 hash of the string as an array of bytes. + + + The string to hash. + The SHA-1 hash of the string. + + + + Returns the SHA-1 hash of the string as a string. + + + The string to hash. + The SHA-1 hash of the string. + + + + Returns the SHA-256 hash of the string as an array of bytes. + + + The string to hash. + The SHA-256 hash of the string. + + + + Returns the SHA-256 hash of the string as a string. + + + The string to hash. + The SHA-256 hash of the string. + + + + Returns the similarity index of the text compared to this string. + 1 means totally similar and 0 means totally dissimilar. + + The string to compare. + The other string to compare. + The similarity index. + + + + Returns a simplified canonical path. + + + + + Split the string by a divisor string, return an array of the substrings. + Example "One,Two,Three" will return ["One","Two","Three"] if split by ",". + + + The string to split. + The divisor string that splits the string. + + If , the array may include empty strings. + + The array of strings split from the string. + + + + Split the string in floats by using a divisor string, return an array of the substrings. + Example "1,2.5,3" will return [1,2.5,3] if split by ",". + + + The string to split. + The divisor string that splits the string. + + If , the array may include empty floats. + + The array of floats split from the string. + + + + Returns a copy of the string stripped of any non-printable character + (including tabulations, spaces and line breaks) at the beginning and the end. + The optional arguments are used to toggle stripping on the left and right + edges respectively. + + The string to strip. + If the left side should be stripped. + If the right side should be stripped. + The string stripped of any non-printable characters. + + + + Returns a copy of the string stripped of any escape character. + These include all non-printable control characters of the first page + of the ASCII table (< 32), such as tabulation (\t) and + newline (\n and \r) characters, but not spaces. + + The string to strip. + The string stripped of any escape characters. + + + + Returns part of the string from the position , with length . + + The string to slice. + The position in the string that the part starts from. + The length of the returned part. + + Part of the string from the position , with length . + + + + + Converts the String (which is a character array) to PackedByteArray (which is an array of bytes). + The conversion is faster compared to , + as this method assumes that all the characters in the String are ASCII characters. + + + + + The string to convert. + The string as ASCII encoded bytes. + + + + Converts a string, containing a decimal number, into a . + + + The string to convert. + The number representation of the string. + + + + Converts a string, containing an integer number, into an . + + + The string to convert. + The number representation of the string. + + + + Converts the string (which is an array of characters) to a UTF-16 encoded array of bytes. + + + + + The string to convert. + The string as UTF-16 encoded bytes. + + + + Converts the string (which is an array of characters) to a UTF-32 encoded array of bytes. + + + + + The string to convert. + The string as UTF-32 encoded bytes. + + + + Converts the string (which is an array of characters) to a UTF-8 encoded array of bytes. + The conversion is a bit slower than , + but supports all UTF-8 characters. Therefore, you should prefer this function + over . + + + + + The string to convert. + The string as UTF-8 encoded bytes. + + + + Removes a given string from the start if it starts with it or leaves the string unchanged. + + The string to remove the prefix from. + The string to remove from the start. + A copy of the string with the prefix string removed from the start. + + + + Removes a given string from the end if it ends with it or leaves the string unchanged. + + The string to remove the suffix from. + The string to remove from the end. + A copy of the string with the suffix string removed from the end. + + + + Decodes a string in URL encoded format. This is meant to + decode parameters in a URL when receiving an HTTP request. + This mostly wraps around , + but also handles +. + See for encoding. + + The string to decode. + The unescaped string. + + + + Encodes a string to URL friendly format. This is meant to + encode parameters in a URL when sending an HTTP request. + This wraps around . + See for decoding. + + The string to encode. + The escaped string. + + + + Removes any characters from the string that are prohibited in + names (. : @ / "). + + The string to sanitize. + The string sanitized as a valid node name. + + + + Returns a copy of the string with special characters escaped using the XML standard. + + + The string to escape. + The escaped string. + + + + Returns a copy of the string with escaped characters replaced by their meanings + according to the XML standard. + + + The string to unescape. + The unescaped string. + + + + StringNames are immutable strings designed for general-purpose representation of unique names. + StringName ensures that only one instance of a given name exists (so two StringNames with the + same value are the same object). + Comparing them is much faster than with regular strings, because only the pointers are compared, + not the whole strings. + + + + + Disposes of this . + + + + + Constructs an empty . + + + + + Constructs a from the given string. + + String to construct the from. + + + + Converts a string to a . + + The string to convert. + + + + Converts a to a string. + + The to convert. + + + + Converts this to a string. + + A string representation of this . + + + + Check whether this is empty. + + If the is empty. + + + + 2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. + It can represent transformations such as translation, rotation, or scaling. + It consists of a three values: x, y, and the origin. + + For more information, read this documentation article: + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html + + + + + The basis matrix's X vector (column 0). Equivalent to array index [0]. + + + + + The basis matrix's Y vector (column 1). Equivalent to array index [1]. + + + + + The origin vector (column 2, the third column). Equivalent to array index [2]. + The origin vector represents translation. + + + + + Returns the transform's rotation (in radians). + + + + + Returns the scale. + + + + + Returns the transform's skew (in radians). + + + + + Access whole columns in the form of . + The third column is the vector. + + Which column vector. + + is not 0, 1 or 2. + + + + + Access matrix elements in column-major order. + The third column is the vector. + + Which column, the matrix horizontal position. + Which row, the matrix vertical position. + + + + Returns the inverse of the transform, under the assumption that + the basis is invertible (must have non-zero determinant). + + + The inverse transformation matrix. + + + + Returns the determinant of the basis matrix. If the basis is + uniformly scaled, then its determinant equals the square of the + scale factor. + + A negative determinant means the basis was flipped, so one part of + the scale is negative. A zero determinant means the basis isn't + invertible, and is usually considered invalid. + + The determinant of the basis matrix. + + + + Returns a vector transformed (multiplied) by the basis matrix. + This method does not account for translation (the vector). + + + A vector to transform. + The transformed vector. + + + + Returns a vector transformed (multiplied) by the inverse basis matrix, + under the assumption that the basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + This method does not account for translation (the vector). + transform.BasisXformInv(vector) is equivalent to transform.Inverse().BasisXform(vector). See . + For non-orthonormal transforms (e.g. with scaling) transform.AffineInverse().BasisXform(vector) can be used instead. See . + + + A vector to inversely transform. + The inversely transformed vector. + + + + Interpolates this transform to the other by . + + The other transform. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated transform. + + + + Returns the inverse of the transform, under the assumption that + the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). Use for + non-orthonormal transforms (e.g. with scaling). + + The inverse matrix. + + + + Returns if this transform is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns the transform with the basis orthogonal (90 degrees), + and normalized axis vectors (scale of 1 or -1). + + The orthonormalized transform. + + + + Rotates the transform by (in radians). + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Rotates the transform by (in radians). + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Scales the transform by the given scaling factor. + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The scale to introduce. + The scaled transformation matrix. + + + + Scales the transform by the given scaling factor. + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The scale to introduce. + The scaled transformation matrix. + + + + Translates the transform by the given . + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The offset to translate by. + The translated matrix. + + + + Translates the transform by the given . + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The offset to translate by. + The translated matrix. + + + + The identity transform, with no translation, rotation, or scaling applied. + This is used as a replacement for Transform2D() in GDScript. + Do not use new Transform2D() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Transform2D(Vector2.Right, Vector2.Down, Vector2.Zero). + + + + The transform that will flip something along the X axis. + + Equivalent to new Transform2D(Vector2.Left, Vector2.Down, Vector2.Zero). + + + + The transform that will flip something along the Y axis. + + Equivalent to new Transform2D(Vector2.Right, Vector2.Up, Vector2.Zero). + + + + Constructs a transformation matrix from 3 vectors (matrix columns). + + The X vector, or column index 0. + The Y vector, or column index 1. + The origin vector, or column index 2. + + + + Constructs a transformation matrix from the given components. + Arguments are named such that xy is equal to calling X.Y. + + The X component of the X column vector, accessed via t.X.X or [0][0]. + The Y component of the X column vector, accessed via t.X.Y or [0][1]. + The X component of the Y column vector, accessed via t.Y.X or [1][0]. + The Y component of the Y column vector, accessed via t.Y.Y or [1][1]. + The X component of the origin vector, accessed via t.Origin.X or [2][0]. + The Y component of the origin vector, accessed via t.Origin.Y or [2][1]. + + + + Constructs a transformation matrix from a value and + vector. + + The rotation of the new transform, in radians. + The origin vector, or column index 2. + + + + Constructs a transformation matrix from a value, + vector, value, and + vector. + + The rotation of the new transform, in radians. + The scale of the new transform. + The skew of the new transform, in radians. + The origin vector, or column index 2. + + + + Composes these two transformation matrices by multiplying them + together. This has the effect of transforming the second transform + (the child) by the first transform (the parent). + + The parent transform. + The child transform. + The composed transform. + + + + Returns a Vector2 transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector2 to transform. + The transformed Vector2. + + + + Returns a Vector2 transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + vector * transform is equivalent to transform.Inverse() * vector. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * vector can be used instead. See . + + A Vector2 to inversely transform. + The transformation to apply. + The inversely transformed Vector2. + + + + Returns a Rect2 transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Rect2 to transform. + The transformed Rect2. + + + + Returns a Rect2 transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + rect * transform is equivalent to transform.Inverse() * rect. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * rect can be used instead. See . + + A Rect2 to inversely transform. + The transformation to apply. + The inversely transformed Rect2. + + + + Returns a copy of the given Vector2[] transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector2[] to transform. + The transformed copy of the Vector2[]. + + + + Returns a copy of the given Vector2[] transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + array * transform is equivalent to transform.Inverse() * array. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * array can be used instead. See . + + A Vector2[] to inversely transform. + The transformation to apply. + The inversely transformed copy of the Vector2[]. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are exactly equal. + + + + Returns if the transforms are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are not equal. + + + + Returns if the transform is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the transform and the object are exactly equal. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other transform to compare. + Whether or not the matrices are exactly equal. + + + + Returns if this transform and are approximately equal, + by running on each component. + + The other transform to compare. + Whether or not the matrices are approximately equal. + + + + Serves as the hash function for . + + A hash code for this transform. + + + + Converts this to a string. + + A string representation of this transform. + + + + Converts this to a string with the given . + + A string representation of this transform. + + + + 3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. + It can represent transformations such as translation, rotation, or scaling. + It consists of a (first 3 columns) and a + for the origin (last column). + + For more information, read this documentation article: + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html + + + + + The of this transform. Contains the X, Y, and Z basis + vectors (columns 0 to 2) and is responsible for rotation and scale. + + + + + The origin vector (column 3, the fourth column). Equivalent to array index [3]. + + + + + Access whole columns in the form of . + The fourth column is the vector. + + Which column vector. + + is not 0, 1, 2 or 3. + + + + + Access matrix elements in column-major order. + The fourth column is the vector. + + Which column, the matrix horizontal position. + Which row, the matrix vertical position. + + + + Returns the inverse of the transform, under the assumption that + the basis is invertible (must have non-zero determinant). + + + The inverse transformation matrix. + + + + Returns a transform interpolated between this transform and another + by a given + (on the range of 0.0 to 1.0). + + The other transform. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated transform. + + + + Returns the inverse of the transform, under the assumption that + the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). Use for + non-orthonormal transforms (e.g. with scaling). + + The inverse matrix. + + + + Returns if this transform is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns a copy of the transform rotated such that the forward axis (-Z) + points towards the position. + The up axis (+Y) points as close to the vector + as possible while staying perpendicular to the forward axis. + The resulting transform is orthonormalized. + The existing rotation, scale, and skew information from the original transform is discarded. + The and vectors cannot be zero, + cannot be parallel to each other, and are defined in global/parent space. + + The object to look at. + The relative up direction. + + If true, then the model is oriented in reverse, + towards the model front axis (+Z, Vector3.ModelFront), + which is more useful for orienting 3D models. + + The resulting transform. + + + + + + + Returns the transform with the basis orthogonal (90 degrees), + and normalized axis vectors (scale of 1 or -1). + + The orthonormalized transform. + + + + Rotates the transform around the given by (in radians). + The axis must be a normalized vector. + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Rotates the transform around the given by (in radians). + The axis must be a normalized vector. + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Scales the transform by the given 3D factor. + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The scale to introduce. + The scaled transformation matrix. + + + + Scales the transform by the given 3D factor. + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The scale to introduce. + The scaled transformation matrix. + + + + Translates the transform by the given . + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The offset to translate by. + The translated matrix. + + + + Translates the transform by the given . + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The offset to translate by. + The translated matrix. + + + + The identity transform, with no translation, rotation, or scaling applied. + This is used as a replacement for Transform() in GDScript. + Do not use new Transform() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Transform(Vector3.Right, Vector3.Up, Vector3.Back, Vector3.Zero). + + + + The transform that will flip something along the X axis. + + Equivalent to new Transform(Vector3.Left, Vector3.Up, Vector3.Back, Vector3.Zero). + + + + The transform that will flip something along the Y axis. + + Equivalent to new Transform(Vector3.Right, Vector3.Down, Vector3.Back, Vector3.Zero). + + + + The transform that will flip something along the Z axis. + + Equivalent to new Transform(Vector3.Right, Vector3.Up, Vector3.Forward, Vector3.Zero). + + + + Constructs a transformation matrix from 4 vectors (matrix columns). + + The X vector, or column index 0. + The Y vector, or column index 1. + The Z vector, or column index 2. + The origin vector, or column index 3. + + + + Constructs a transformation matrix from the given components. + Arguments are named such that xy is equal to calling Basis.X.Y. + + The X component of the X column vector, accessed via t.Basis.X.X or [0][0]. + The X component of the Y column vector, accessed via t.Basis.Y.X or [1][0]. + The X component of the Z column vector, accessed via t.Basis.Z.X or [2][0]. + The Y component of the X column vector, accessed via t.Basis.X.Y or [0][1]. + The Y component of the Y column vector, accessed via t.Basis.Y.Y or [1][1]. + The Y component of the Z column vector, accessed via t.Basis.Y.Y or [2][1]. + The Z component of the X column vector, accessed via t.Basis.X.Y or [0][2]. + The Z component of the Y column vector, accessed via t.Basis.Y.Y or [1][2]. + The Z component of the Z column vector, accessed via t.Basis.Y.Y or [2][2]. + The X component of the origin vector, accessed via t.Origin.X or [2][0]. + The Y component of the origin vector, accessed via t.Origin.Y or [2][1]. + The Z component of the origin vector, accessed via t.Origin.Z or [2][2]. + + + + Constructs a transformation matrix from the given and + vector. + + The to create the basis from. + The origin vector, or column index 3. + + + + Constructs a transformation matrix from the given + by trimming the last row of the projection matrix (projection.X.W, + projection.Y.W, projection.Z.W, and projection.W.W + are not copied over). + + The to create the transform from. + + + + Composes these two transformation matrices by multiplying them + together. This has the effect of transforming the second transform + (the child) by the first transform (the parent). + + The parent transform. + The child transform. + The composed transform. + + + + Returns a Vector3 transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector3 to transform. + The transformed Vector3. + + + + Returns a Vector3 transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + vector * transform is equivalent to transform.Inverse() * vector. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * vector can be used instead. See . + + A Vector3 to inversely transform. + The transformation to apply. + The inversely transformed Vector3. + + + + Returns an AABB transformed (multiplied) by the transformation matrix. + + The transformation to apply. + An AABB to transform. + The transformed AABB. + + + + Returns an AABB transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + aabb * transform is equivalent to transform.Inverse() * aabb. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * aabb can be used instead. See . + + An AABB to inversely transform. + The transformation to apply. + The inversely transformed AABB. + + + + Returns a Plane transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Plane to transform. + The transformed Plane. + + + + Returns a Plane transformed (multiplied) by the inverse transformation matrix. + plane * transform is equivalent to transform.AffineInverse() * plane. See . + + A Plane to inversely transform. + The transformation to apply. + The inversely transformed Plane. + + + + Returns a copy of the given Vector3[] transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector3[] to transform. + The transformed copy of the Vector3[]. + + + + Returns a copy of the given Vector3[] transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + array * transform is equivalent to transform.Inverse() * array. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * array can be used instead. See . + + A Vector3[] to inversely transform. + The transformation to apply. + The inversely transformed copy of the Vector3[]. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are exactly equal. + + + + Returns if the transforms are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are not equal. + + + + Returns if the transform is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the transform and the object are exactly equal. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other transform to compare. + Whether or not the matrices are exactly equal. + + + + Returns if this transform and are approximately equal, + by running on each component. + + The other transform to compare. + Whether or not the matrices are approximately equal. + + + + Serves as the hash function for . + + A hash code for this transform. + + + + Converts this to a string. + + A string representation of this transform. + + + + Converts this to a string with the given . + + A string representation of this transform. + + + + Constructs a new from this instance. + The caller is responsible of disposing the new instance to avoid memory leaks. + + + + + Variable is . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Represents the size of the enum. + + + + + Equality operator (==). + + + + + Inequality operator (!=). + + + + + Less than operator (<). + + + + + Less than or equal operator (<=). + + + + + Greater than operator (>). + + + + + Greater than or equal operator (>=). + + + + + Addition operator (+). + + + + + Subtraction operator (-). + + + + + Multiplication operator (*). + + + + + Division operator (/). + + + + + Unary negation operator (-). + + + + + Unary plus operator (+). + + + + + Remainder/modulo operator (%). + + + + + Power operator (**). + + + + + Left shift operator (<<). + + + + + Right shift operator (>>). + + + + + Bitwise AND operator (&). + + + + + Bitwise OR operator (|). + + + + + Bitwise XOR operator (^). + + + + + Bitwise NOT operator (~). + + + + + Logical AND operator (and or &&). + + + + + Logical OR operator (or or ||). + + + + + Logical XOR operator (not implemented in GDScript). + + + + + Logical NOT operator (not or !). + + + + + Logical IN operator (in). + + + + + Represents the size of the enum. + + + + + 2-element structure that can be used to represent positions in 2D space or any other pair of numeric values. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + Access vector components using their index. + + + is not 0 or 1. + + + [0] is equivalent to , + [1] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns this vector's angle with respect to the X axis, or (1, 0) vector, in radians. + + Equivalent to the result of when + called with the vector's and as parameters: Mathf.Atan2(v.Y, v.X). + + The angle of this vector, in radians. + + + + Returns the angle to the given vector, in radians. + + The other vector to compare this vector to. + The angle between the two vectors, in radians. + + + + Returns the angle between the line connecting the two points and the X axis, in radians. + + The other vector to compare this vector to. + The angle between the two vectors, in radians. + + + + Returns the aspect ratio of this vector, the ratio of to . + + The component divided by the component. + + + + Returns the vector "bounced off" from a plane defined by the given normal. + + The normal vector defining the plane to bounce off. Must be normalized. + The bounced vector. + + + + Returns a new vector with all components rounded up (towards positive infinity). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the cross product of this vector and . + + The other vector. + The cross product value. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated vector. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination vector. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Returns the derivative at the given on the Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the normalized vector pointing from this vector to . + + The other vector to point towards. + The direction from this vector to . + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + The other vector to use. + The distance between the two vectors. + + + + Returns the dot product of this vector and . + + The other vector to use. + The dot product of the two vectors. + + + + Returns a new vector with all components rounded down (towards negative infinity). + + A vector with called on each component. + + + + Returns the inverse of this vector. This is the same as new Vector2(1 / v.X, 1 / v.Y). + + The inverse of this vector. + + + + Returns if this vector is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if the vector is normalized, and otherwise. + + A indicating whether or not the vector is normalized. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the linear interpolation between + this vector and by amount . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns the vector with a maximum length by limiting its length to . + + The length to limit to. + The vector with its length limited. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2(Mathf.Max(X, with), Mathf.Max(Y, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2(Mathf.Min(X, with), Mathf.Min(Y, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If both components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If both components are equal, this method returns . + + The index of the lowest axis. + + + + Moves this vector toward by the fixed amount. + + The vector to move towards. + The amount to move towards by. + The resulting vector. + + + + Returns the vector scaled to unit length. Equivalent to v / v.Length(). + + A normalized version of the vector. + + + + Returns a vector composed of the of this vector's components + and . + + A value representing the divisor of the operation. + + A vector with each component by . + + + + + Returns a vector composed of the of this vector's components + and 's components. + + A vector representing the divisors of the operation. + + A vector with each component by 's components. + + + + + Returns a new vector resulting from projecting this vector onto the given vector . + The resulting new vector is parallel to . + See also . + Note: If the vector is a zero vector, the components of the resulting new vector will be . + + The vector to project onto. + The projected vector. + + + + Returns this vector reflected from a plane defined by the given . + + The normal vector defining the plane to reflect from. Must be normalized. + The reflected vector. + + + + Rotates this vector by radians. + + The angle to rotate by, in radians. + The rotated vector. + + + + Returns this vector with all components rounded to the nearest integer, + with halfway cases rounded towards the nearest multiple of two. + + The rounded vector. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns the result of the spherical linear interpolation between + this vector and by amount . + + This method also handles interpolating the lengths if the input vectors + have different lengths. For the special case of one or both input vectors + having zero length, this method behaves like . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns a new vector resulting from sliding this vector along a line with normal . + The resulting new vector is perpendicular to , and is equivalent to this vector minus its projection on . + See also . + Note: The vector must be normalized. See also . + + The normal vector of the plane to slide on. + The slid vector. + + + + Returns a new vector with each component snapped to the nearest multiple of the corresponding component in . + This can also be used to round to an arbitrary number of decimals. + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the nearest multiple of . + This can also be used to round to an arbitrary number of decimals. + + The step size to snap to. + The snapped vector. + + + + Returns a perpendicular vector rotated 90 degrees counter-clockwise + compared to the original, with the same length. + + The perpendicular vector. + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector2(0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector2(1, 1). + + + + Infinity vector, a vector with all components set to . + + Equivalent to new Vector2(Mathf.Inf, Mathf.Inf). + + + + Up unit vector. Y is down in 2D, so this vector points -Y. + + Equivalent to new Vector2(0, -1). + + + + Down unit vector. Y is down in 2D, so this vector points +Y. + + Equivalent to new Vector2(0, 1). + + + + Right unit vector. Represents the direction of right. + + Equivalent to new Vector2(1, 0). + + + + Left unit vector. Represents the direction of left. + + Equivalent to new Vector2(-1, 0). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + + + + Creates a unit Vector2 rotated to the given angle. This is equivalent to doing + Vector2(Mathf.Cos(angle), Mathf.Sin(angle)) or Vector2.Right.Rotated(angle). + + Angle of the vector, in radians. + The resulting vector. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector2(-v.X, -v.Y). + This operation flips the direction of the vector while + keeping the same magnitude. + With floats, the number zero can be either positive or negative. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2(10, -20) % 7); // Prints "(3, -6)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2(10, -20) % new Vector2(7, 8)); // Prints "(3, -4)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are exactly equal. + + + + Returns if the vectors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Returns if the vector is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other vector. + Whether or not the vectors are exactly equal. + + + + Returns if this vector and are approximately equal, + by running on each component. + + The other vector to compare. + Whether or not the vectors are approximately equal. + + + + Returns if this vector's values are approximately zero, + by running on each component. + This method is faster than using with one value + as a zero vector. + + Whether or not the vector is approximately zero. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 2-element structure that can be used to represent 2D grid coordinates or pairs of integers. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + Access vector components using their index. + + + is not 0 or 1. + + + [0] is equivalent to , + [1] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns the aspect ratio of this vector, the ratio of to . + + The component divided by the component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2I(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2I(Mathf.Max(X, with), Mathf.Max(Y, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2I(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2I(Mathf.Min(X, with), Mathf.Min(Y, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If both components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If both components are equal, this method returns . + + The index of the lowest axis. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the closest multiple of the corresponding component in . + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the closest multiple of . + + The step size to snap to. + The snapped vector. + + + + Min vector, a vector with all components equal to . Can be used as a negative integer equivalent of . + + Equivalent to new Vector2I(int.MinValue, int.MinValue). + + + + Max vector, a vector with all components equal to . Can be used as an integer equivalent of . + + Equivalent to new Vector2I(int.MaxValue, int.MaxValue). + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector2I(0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector2I(1, 1). + + + + Up unit vector. Y is down in 2D, so this vector points -Y. + + Equivalent to new Vector2I(0, -1). + + + + Down unit vector. Y is down in 2D, so this vector points +Y. + + Equivalent to new Vector2I(0, 1). + + + + Right unit vector. Represents the direction of right. + + Equivalent to new Vector2I(1, 0). + + + + Left unit vector. Represents the direction of left. + + Equivalent to new Vector2I(-1, 0). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector2I(-v.X, -v.Y). + This operation flips the direction of the vector while + keeping the same magnitude. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2I(10, -20) % 7); // Prints "(3, -6)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2I(10, -20) % new Vector2I(7, 8)); // Prints "(3, -4)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are equal. + + The left vector. + The right vector. + Whether or not the vectors are equal. + + + + Returns if the vectors are not equal. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Converts this to a . + + The vector to convert. + + + + Converts a to a by truncating + components' fractional parts (rounding towards zero). For a different + behavior consider passing the result of , + or to this conversion operator instead. + + The vector to convert. + + + + Returns if the vector is equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are equal. + + The other vector. + Whether or not the vectors are equal. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 3-element structure that can be used to represent positions in 3D space or any other pair of numeric values. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + Access vector components using their index. + + + is not 0, 1 or 2. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns the unsigned minimum angle to the given vector, in radians. + + The other vector to compare this vector to. + The unsigned angle between the two vectors, in radians. + + + + Returns this vector "bounced off" from a plane defined by the given normal. + + The normal vector defining the plane to bounce off. Must be normalized. + The bounced vector. + + + + Returns a new vector with all components rounded up (towards positive infinity). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the cross product of this vector and . + + The other vector. + The cross product vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated vector. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination vector. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Returns the derivative at the given on the Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the normalized vector pointing from this vector to . + + The other vector to point towards. + The direction from this vector to . + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the dot product of this vector and . + + The other vector to use. + The dot product of the two vectors. + + + + Returns a new vector with all components rounded down (towards negative infinity). + + A vector with called on each component. + + + + Returns the inverse of this vector. This is the same as new Vector3(1 / v.X, 1 / v.Y, 1 / v.Z). + + The inverse of this vector. + + + + Returns if this vector is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if the vector is normalized, and otherwise. + + A indicating whether or not the vector is normalized. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the linear interpolation between + this vector and by amount . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns the vector with a maximum length by limiting its length to . + + The length to limit to. + The vector with its length limited. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector3(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Moves this vector toward by the fixed amount. + + The vector to move towards. + The amount to move towards by. + The resulting vector. + + + + Returns the vector scaled to unit length. Equivalent to v / v.Length(). + + A normalized version of the vector. + + + + Returns the outer product with . + + The other vector. + A representing the outer product matrix. + + + + Returns a vector composed of the of this vector's components + and . + + A value representing the divisor of the operation. + + A vector with each component by . + + + + + Returns a vector composed of the of this vector's components + and 's components. + + A vector representing the divisors of the operation. + + A vector with each component by 's components. + + + + + Returns a new vector resulting from projecting this vector onto the given vector . + The resulting new vector is parallel to . + See also . + Note: If the vector is a zero vector, the components of the resulting new vector will be . + + The vector to project onto. + The projected vector. + + + + Returns this vector reflected from a plane defined by the given . + + The normal vector defining the plane to reflect from. Must be normalized. + The reflected vector. + + + + Rotates this vector around a given vector by (in radians). + The vector must be a normalized vector. + + The vector to rotate around. Must be normalized. + The angle to rotate by, in radians. + The rotated vector. + + + + Returns this vector with all components rounded to the nearest integer, + with halfway cases rounded towards the nearest multiple of two. + + The rounded vector. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns the signed angle to the given vector, in radians. + The sign of the angle is positive in a counter-clockwise + direction and negative in a clockwise direction when viewed + from the side specified by the . + + The other vector to compare this vector to. + The reference axis to use for the angle sign. + The signed angle between the two vectors, in radians. + + + + Returns the result of the spherical linear interpolation between + this vector and by amount . + + This method also handles interpolating the lengths if the input vectors + have different lengths. For the special case of one or both input vectors + having zero length, this method behaves like . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns a new vector resulting from sliding this vector along a plane with normal . + The resulting new vector is perpendicular to , and is equivalent to this vector minus its projection on . + See also . + Note: The vector must be normalized. See also . + + The normal vector of the plane to slide on. + The slid vector. + + + + Returns a new vector with each component snapped to the nearest multiple of the corresponding component in . + This can also be used to round to an arbitrary number of decimals. + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the nearest multiple of . + This can also be used to round to an arbitrary number of decimals. + + The step size to snap to. + The snapped vector. + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector3(0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector3(1, 1, 1). + + + + Infinity vector, a vector with all components set to . + + Equivalent to new Vector3(Mathf.Inf, Mathf.Inf, Mathf.Inf). + + + + Up unit vector. + + Equivalent to new Vector3(0, 1, 0). + + + + Down unit vector. + + Equivalent to new Vector3(0, -1, 0). + + + + Right unit vector. Represents the local direction of right, + and the global direction of east. + + Equivalent to new Vector3(1, 0, 0). + + + + Left unit vector. Represents the local direction of left, + and the global direction of west. + + Equivalent to new Vector3(-1, 0, 0). + + + + Forward unit vector. Represents the local direction of forward, + and the global direction of north. + + Equivalent to new Vector3(0, 0, -1). + + + + Back unit vector. Represents the local direction of back, + and the global direction of south. + + Equivalent to new Vector3(0, 0, 1). + + + + Unit vector pointing towards the left side of imported 3D assets. + + + + + Unit vector pointing towards the right side of imported 3D assets. + + + + + Unit vector pointing towards the top side (up) of imported 3D assets. + + + + + Unit vector pointing towards the bottom side (down) of imported 3D assets. + + + + + Unit vector pointing towards the front side (facing forward) of imported 3D assets. + + + + + Unit vector pointing towards the rear side (back) of imported 3D assets. + + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector3(-v.X, -v.Y, -v.Z). + This operation flips the direction of the vector while + keeping the same magnitude. + With floats, the number zero can be either positive or negative. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3(10, -20, 30) % 7); // Prints "(3, -6, 2)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3(10, -20, 30) % new Vector3(7, 8, 9)); // Prints "(3, -4, 3)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are exactly equal. + + + + Returns if the vectors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Returns if the vector is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other vector. + Whether or not the vectors are exactly equal. + + + + Returns if this vector and are approximately equal, + by running on each component. + + The other vector to compare. + Whether or not the vectors are approximately equal. + + + + Returns if this vector's values are approximately zero, + by running on each component. + This method is faster than using with one value + as a zero vector. + + Whether or not the vector is approximately zero. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 3-element structure that can be used to represent 3D grid coordinates or sets of integers. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + Access vector components using their . + + + is not 0, 1 or 2. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3I(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3I(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector3I(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector3I(Mathf.Min(X, with), Mathf.Min(Y, with), Mathf.Min(Z, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the closest multiple of the corresponding component in . + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the closest multiple of . + + The step size to snap to. + The snapped vector. + + + + Min vector, a vector with all components equal to . Can be used as a negative integer equivalent of . + + Equivalent to new Vector3I(int.MinValue, int.MinValue, int.MinValue). + + + + Max vector, a vector with all components equal to . Can be used as an integer equivalent of . + + Equivalent to new Vector3I(int.MaxValue, int.MaxValue, int.MaxValue). + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector3I(0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector3I(1, 1, 1). + + + + Up unit vector. + + Equivalent to new Vector3I(0, 1, 0). + + + + Down unit vector. + + Equivalent to new Vector3I(0, -1, 0). + + + + Right unit vector. Represents the local direction of right, + and the global direction of east. + + Equivalent to new Vector3I(1, 0, 0). + + + + Left unit vector. Represents the local direction of left, + and the global direction of west. + + Equivalent to new Vector3I(-1, 0, 0). + + + + Forward unit vector. Represents the local direction of forward, + and the global direction of north. + + Equivalent to new Vector3I(0, 0, -1). + + + + Back unit vector. Represents the local direction of back, + and the global direction of south. + + Equivalent to new Vector3I(0, 0, 1). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector3I(-v.X, -v.Y, -v.Z). + This operation flips the direction of the vector while + keeping the same magnitude. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3I(10, -20, 30) % 7); // Prints "(3, -6, 2)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3I(10, -20, 30) % new Vector3I(7, 8, 9)); // Prints "(3, -4, 3)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are equal. + + The left vector. + The right vector. + Whether or not the vectors are equal. + + + + Returns if the vectors are not equal. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Converts this to a . + + The vector to convert. + + + + Converts a to a by truncating + components' fractional parts (rounding towards zero). For a different + behavior consider passing the result of , + or to this conversion operator instead. + + The vector to convert. + + + + Returns if the vector is equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are equal. + + The other vector. + Whether or not the vectors are equal. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 4-element structure that can be used to represent positions in 4D space or any other pair of numeric values. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's W axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + The vector's W component. Also accessible by using the index position [3]. + + + + + Access vector components using their index. + + + is not 0, 1, 2 or 3. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + [3] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns a new vector with all components rounded up (towards positive infinity). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated vector. + + + + Returns the normalized vector pointing from this vector to . + + The other vector to point towards. + The direction from this vector to . + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + The other vector to use. + The distance between the two vectors. + + + + Returns the dot product of this vector and . + + The other vector to use. + The dot product of the two vectors. + + + + Returns a new vector with all components rounded down (towards negative infinity). + + A vector with called on each component. + + + + Returns the inverse of this vector. This is the same as new Vector4(1 / v.X, 1 / v.Y, 1 / v.Z, 1 / v.W). + + The inverse of this vector. + + + + Returns if this vector is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if the vector is normalized, and otherwise. + + A indicating whether or not the vector is normalized. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the linear interpolation between + this vector and by amount . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z), Mathf.Max(W, with.W)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with), Mathf.Max(W, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z), Mathf.Min(W, with.W)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4(Mathf.Min(X, with), Mathf.Min(Y, with), Mathf.Min(Z, with), Mathf.Min(W, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Returns the vector scaled to unit length. Equivalent to v / v.Length(). + + A normalized version of the vector. + + + + Returns a vector composed of the of this vector's components + and . + + A value representing the divisor of the operation. + + A vector with each component by . + + + + + Returns a vector composed of the of this vector's components + and 's components. + + A vector representing the divisors of the operation. + + A vector with each component by 's components. + + + + + Returns this vector with all components rounded to the nearest integer, + with halfway cases rounded towards the nearest multiple of two. + + The rounded vector. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the nearest multiple of the corresponding component in . + This can also be used to round to an arbitrary number of decimals. + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the nearest multiple of . + This can also be used to round to an arbitrary number of decimals. + + The step size to snap to. + The snapped vector. + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector4(0, 0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector4(1, 1, 1, 1). + + + + Infinity vector, a vector with all components set to . + + Equivalent to new Vector4(Mathf.Inf, Mathf.Inf, Mathf.Inf, Mathf.Inf). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + The vector's W component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector4(-v.X, -v.Y, -v.Z, -v.W). + This operation flips the direction of the vector while + keeping the same magnitude. + With floats, the number zero can be either positive or negative. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4(10, -20, 30, 40) % 7); // Prints "(3, -6, 2, 5)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4(10, -20, 30, 10) % new Vector4(7, 8, 9, 10)); // Prints "(3, -4, 3, 0)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are exactly equal. + + + + Returns if the vectors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Returns if the vector is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other vector. + Whether or not the vectors are exactly equal. + + + + Returns if this vector and are approximately equal, + by running on each component. + + The other vector to compare. + Whether or not the vectors are approximately equal. + + + + Returns if this vector's values are approximately zero, + by running on each component. + This method is faster than using with one value + as a zero vector. + + Whether or not the vector is approximately zero. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 4-element structure that can be used to represent 4D grid coordinates or sets of integers. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's W axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + The vector's W component. Also accessible by using the index position [3]. + + + + + Access vector components using their . + + + is not 0, 1, 2 or 3. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + [3] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4I(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z), Mathf.Max(W, with.W)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4I(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with), Mathf.Max(W, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4I(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z), Mathf.Min(W, with.W)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4I(Mathf.Min(X, with), Mathf.Min(Y, with), Mathf.Min(Z, with), Mathf.Min(W, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the closest multiple of the corresponding component in . + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the closest multiple of . + + The step size to snap to. + The snapped vector. + + + + Min vector, a vector with all components equal to . Can be used as a negative integer equivalent of . + + Equivalent to new Vector4I(int.MinValue, int.MinValue, int.MinValue, int.MinValue). + + + + Max vector, a vector with all components equal to . Can be used as an integer equivalent of . + + Equivalent to new Vector4I(int.MaxValue, int.MaxValue, int.MaxValue, int.MaxValue). + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector4I(0, 0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector4I(1, 1, 1, 1). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + The vector's W component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector4I(-v.X, -v.Y, -v.Z, -v.W). + This operation flips the direction of the vector while + keeping the same magnitude. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4I(10, -20, 30, -40) % 7); // Prints "(3, -6, 2, -5)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4I(10, -20, 30, -40) % new Vector4I(6, 7, 8, 9)); // Prints "(4, -6, 6, -4)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are equal. + + The left vector. + The right vector. + Whether or not the vectors are equal. + + + + Returns if the vectors are not equal. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Converts this to a . + + The vector to convert. + + + + Converts a to a by truncating + components' fractional parts (rounding towards zero). For a different + behavior consider passing the result of , + or to this conversion operator instead. + + The vector to convert. + + + + Returns if the vector is equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are equal. + + The other vector. + Whether or not the vectors are equal. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + Base resource for 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 , otherwise should be used instead. + You can access the time information as read-only parameter which is processed and stored in the previous frame for all nodes except . + Note: If multiple inputs exist in the , which time information takes precedence depends on the type of . + + var current_length = $AnimationTree[parameters/AnimationNodeName/current_length] + var current_position = $AnimationTree[parameters/AnimationNodeName/current_position] + var current_delta = $AnimationTree[parameters/AnimationNodeName/current_delta] + + + + + + + + + + + + Do not use filtering. + + + + + Paths matching the filter will be allowed to pass. + + + + + Paths matching the filter will be discarded. + + + + + Paths matching the filter will be blended (by the blend value). + + + + + If , filtering is enabled. + + + + + When inheriting from , implement this virtual method to override the text caption for this animation node. + + + + + When inheriting from , implement this virtual method to return a child animation node by its . + + + + + When inheriting from , implement this virtual method to return all child animation nodes in order as a name: node dictionary. + + + + + When inheriting from , implement this virtual method to return the default value of a . Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. + + + + + When inheriting from , 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 . + + + + + When inheriting from , implement this virtual method to return whether the blend tree editor should display filter editing on this animation node. + + + + + When inheriting from , implement this virtual method to return whether the is read-only. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. + + + + + When inheriting from , implement this virtual method to run some code when this animation node is processed. The parameter is a relative delta, unless is , in which case it is absolute. + Here, call the , or functions. You can also use and to modify local memory. + This function should return the delta. + + + + + Adds an input to the animation node. This is only useful for animation nodes created for use in an . If the addition fails, returns . + + + + + Removes an input, call this only when inactive. + + + + + Sets the name of the input at the given index. If the setting fails, returns . + + + + + Gets the name of an input by index. + + + + + Amount of inputs in this animation node, only useful for animation nodes that go into . + + + + + Returns the input index which corresponds to . If not found, returns -1. + + + + + Adds or removes a path for the filter. + + + + + Returns if the given path is filtered. + + + + + Returns the object id of the that owns this node. + Note: This method should only be called from within the method, and will return an invalid id otherwise. + + + + + Returns if this animation node is being processed in test-only mode. + + + + + Blend an animation by amount (name must be valid in the linked ). A and may be passed, as well as whether happened. + A is used by internal processing immediately after the loop. See also . + + + + + Blend another animation node (in case this animation node contains child animation nodes). This function is only useful if you inherit from instead, otherwise editors will not display your animation node for addition. + + + + + Blend an input. This is only useful for animation nodes created for an . The parameter is a relative delta, unless is , in which case it is absolute. A filter mode may be optionally passed (see for options). + + + + + Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes. + + + + + Gets the value of a parameter. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. + + + + + Emitted by nodes that inherit from this class and that have an internal tree when one of their animation nodes changes. The animation nodes that emit this signal are , , , and . + + + + + Represents the method that handles the event of a class. + + + + + Emitted by nodes that inherit from this class and that have an internal tree when one of their animation node names changes. The animation nodes that emit this signal are , , , and . + + + + + Represents the method that handles the event of a class. + + + + + Emitted by nodes that inherit from this class and that have an internal tree when one of their animation nodes removes. The animation nodes that emit this signal are , , , and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'filter_enabled' property. + + + + + Cached name for the 'filters' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_caption' method. + + + + + Cached name for the '_get_child_by_name' method. + + + + + Cached name for the '_get_child_nodes' method. + + + + + Cached name for the '_get_parameter_default_value' method. + + + + + Cached name for the '_get_parameter_list' method. + + + + + Cached name for the '_has_filter' method. + + + + + Cached name for the '_is_parameter_read_only' method. + + + + + Cached name for the '_process' method. + + + + + Cached name for the 'add_input' method. + + + + + Cached name for the 'remove_input' method. + + + + + Cached name for the 'set_input_name' method. + + + + + Cached name for the 'get_input_name' method. + + + + + Cached name for the 'get_input_count' method. + + + + + Cached name for the 'find_input' method. + + + + + Cached name for the 'set_filter_path' method. + + + + + Cached name for the 'is_path_filtered' method. + + + + + Cached name for the 'set_filter_enabled' method. + + + + + Cached name for the 'is_filter_enabled' method. + + + + + Cached name for the 'get_processing_animation_tree_instance_id' method. + + + + + Cached name for the 'is_process_testing' method. + + + + + Cached name for the '_set_filters' method. + + + + + Cached name for the '_get_filters' method. + + + + + Cached name for the 'blend_animation' method. + + + + + Cached name for the 'blend_node' method. + + + + + Cached name for the 'blend_input' method. + + + + + Cached name for the 'set_parameter' method. + + + + + Cached name for the 'get_parameter' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tree_changed' signal. + + + + + Cached name for the 'animation_node_renamed' signal. + + + + + Cached name for the 'animation_node_removed' signal. + + + + + An animation player is used for general-purpose playback of animations. It contains a dictionary of resources and custom blend times between animation transitions. + Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example "movement/run". If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library. + is better-suited than for more complex animations, for example ones with non-trivial timings. It can also be used over if the animation track editor is more convenient than doing it in code. + Updating the target properties of animations occurs at the process frame. + + + + + + + + + + + + + + The key of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See for more information on playing animations. + Note: While this property appears in the Inspector, it's not meant to be edited, and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see . + + + + + If playing, the current animation's key, otherwise, the animation last played. When set, this changes the animation, but will not play it unless already playing. See also . + + + + + The key of the animation to play when the scene loads. + + + + + The length (in seconds) of the currently playing animation. + + + + + The position (in seconds) of the currently playing animation. + + + + + If , performs before playback automatically. This means just is executed with default arguments instead of . + Note: Capture interpolation is only performed if the animation contains a capture track. See also . + + + + + See also and . + If is negative value, the duration is set to the interval between the current position and the first key. + + + + + The transition type of the capture interpolation. See also . + + + + + The ease type of the capture interpolation. See also . + + + + + The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision. + + + + + The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed. + If set to a negative value, the animation is played in reverse. If set to 0, the animation will not advance. + + + + + If and the engine is running in Movie Maker mode (see ), exits the engine with as soon as an animation is done playing in this . A message is printed when the engine quits for this reason. + Note: This obeys the same logic as the signal, so it will not quit the engine if the animation is set to be looping. + + + + + Triggers the animation when the animation completes. + + + + + Returns the key of the animation which is queued to play after the animation. + + + + + Specifies a blend time (in seconds) between two animations, referenced by their keys. + + + + + Returns the blend time (in seconds) between two animations, referenced by their keys. + + + + + Plays the animation with key . Custom blend times and speed can be set. + The option only affects when switching to a new animation track, or if the same track but at the start or end. It does not affect resuming playback that was paused in the middle of an animation. If is negative and is , the animation will play backwards (which is equivalent to calling ). + The keeps track of its current or last played animation with . If this method is called with that same animation , or with no parameter, the assigned animation will resume playing if it was paused. + Note: The animation will be updated the next time the is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call advance(0). + + + + + Plays the animation with key and the section starting from and ending on . + If the start marker is empty, the section starts from the beginning of the animation. If the end marker is empty, the section ends on the end of the animation. See also . + + + + + Plays the animation with key and the section starting from and ending on . See also . + Setting to a value outside the range of the animation means the start of the animation will be used instead, and setting to a value outside the range of the animation means the end of the animation will be used instead. cannot be equal to . + + + + + Plays the animation with key in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, so see its description for more information. + + + + + Plays the animation with key and the section starting from and ending on in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, see its description for more information. + + + + + Plays the animation with key and the section starting from and ending on in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, see its description for more information. + + + + + See also . + You can use this method to use more detailed options for capture than those performed by . When is , this method is almost the same as the following: + + capture(name, duration, trans_type, ease_type) + play(name, custom_blend, custom_speed, from_end) + + If is blank, it specifies . + If is a negative value, the duration is set to the interval between the current position and the first key, when is , uses the interval between the current position and the last key instead. + Note: The takes into account, but does not, because the capture cache is interpolated with the blend result and the result may contain multiple animations. + + + + + Pauses the currently playing animation. The will be kept and calling or without arguments or with the same animation name as will resume the animation. + See also . + + + + + Stops the currently playing animation. The animation position is reset to 0 and the custom_speed is reset to 1.0. See also . + If is , the animation state is not updated visually. + Note: The method / audio / animation playback tracks will not be processed by this method. + + + + + Returns if an animation is currently playing (even if and/or custom_speed are 0). + + + + + Queues an animation for playback once the current animation and all previously queued animations are done. + Note: If a looped animation is currently playing, the queued animation will never play unless the looped animation is stopped somehow. + + + + + Returns a list of the animation keys that are currently queued to play. + + + + + Clears all queued, unplayed animations. + + + + + Returns the actual playing speed of current animation or 0 if not playing. This speed is the property multiplied by custom_speed argument specified when calling the method. + Returns a negative value if the current animation is playing backwards. + + + + + Changes the start and end markers of the section being played. The current playback position will be clamped within the new section. See also . + If the argument is empty, the section uses the beginning or end of the animation. If both are empty, it means that the section is not set. + + + + + Changes the start and end times of the section being played. The current playback position will be clamped within the new section. See also . + + + + + Resets the current section if section is set. + + + + + Returns the start time of the section currently being played. + + + + + Returns the end time of the section currently being played. + + + + + Returns if an animation is currently playing with section. + + + + + Seeks the animation to the point in time (in seconds). If is , the animation updates too, otherwise it updates at process time. Events between the current frame and are skipped. + If is , the method / audio / animation playback tracks will not be processed. + Note: Seeking to the end of the animation doesn't emit . If you want to skip animation and emit the signal, use . + + + + + Sets the process notification in which to update animations. + + + + + Returns the process notification in which to update animations. + + + + + Sets the call mode used for "Call Method" tracks. + + + + + Returns the call mode used for "Call Method" tracks. + + + + + Sets the node which node path references will travel from. + + + + + Returns the node which node path references will travel from. + + + + + Seeks the animation to the point in time (in seconds). If is , the animation updates too, otherwise it updates at process time. Events between the current frame and are skipped. + If is , the method / audio / animation playback tracks will not be processed. + Note: Seeking to the end of the animation doesn't emit . If you want to skip animation and emit the signal, use . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a queued animation plays after the previous animation finished. See also . + Note: The signal is not emitted when the animation is changed via or by an . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'current_animation' property. + + + + + Cached name for the 'assigned_animation' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'current_animation_length' property. + + + + + Cached name for the 'current_animation_position' property. + + + + + Cached name for the 'playback_auto_capture' property. + + + + + Cached name for the 'playback_auto_capture_duration' property. + + + + + Cached name for the 'playback_auto_capture_transition_type' property. + + + + + Cached name for the 'playback_auto_capture_ease_type' property. + + + + + Cached name for the 'playback_default_blend_time' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'movie_quit_on_finish' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'animation_set_next' method. + + + + + Cached name for the 'animation_get_next' method. + + + + + Cached name for the 'set_blend_time' method. + + + + + Cached name for the 'get_blend_time' method. + + + + + Cached name for the 'set_default_blend_time' method. + + + + + Cached name for the 'get_default_blend_time' method. + + + + + Cached name for the 'set_auto_capture' method. + + + + + Cached name for the 'is_auto_capture' method. + + + + + Cached name for the 'set_auto_capture_duration' method. + + + + + Cached name for the 'get_auto_capture_duration' method. + + + + + Cached name for the 'set_auto_capture_transition_type' method. + + + + + Cached name for the 'get_auto_capture_transition_type' method. + + + + + Cached name for the 'set_auto_capture_ease_type' method. + + + + + Cached name for the 'get_auto_capture_ease_type' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'play_section_with_markers' method. + + + + + Cached name for the 'play_section' method. + + + + + Cached name for the 'play_backwards' method. + + + + + Cached name for the 'play_section_with_markers_backwards' method. + + + + + Cached name for the 'play_section_backwards' method. + + + + + Cached name for the 'play_with_capture' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'set_current_animation' method. + + + + + Cached name for the 'get_current_animation' method. + + + + + Cached name for the 'set_assigned_animation' method. + + + + + Cached name for the 'get_assigned_animation' method. + + + + + Cached name for the 'queue' method. + + + + + Cached name for the 'get_queue' method. + + + + + Cached name for the 'clear_queue' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_playing_speed' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'get_autoplay' method. + + + + + Cached name for the 'set_movie_quit_on_finish_enabled' method. + + + + + Cached name for the 'is_movie_quit_on_finish_enabled' method. + + + + + Cached name for the 'get_current_animation_position' method. + + + + + Cached name for the 'get_current_animation_length' method. + + + + + Cached name for the 'set_section_with_markers' method. + + + + + Cached name for the 'set_section' method. + + + + + Cached name for the 'reset_section' method. + + + + + Cached name for the 'get_section_start_time' method. + + + + + Cached name for the 'get_section_end_time' method. + + + + + Cached name for the 'has_section' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'set_process_callback' method. + + + + + Cached name for the 'get_process_callback' method. + + + + + Cached name for the 'set_method_call_mode' method. + + + + + Cached name for the 'get_method_call_mode' method. + + + + + Cached name for the 'set_root' method. + + + + + Cached name for the 'get_root' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'current_animation_changed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + A node used for advanced animation transitions in an . + Note: When linked with an , several properties and methods of the corresponding will not function as expected. Playback and transitions should be handled using only the and its constituent (s). The node should be used solely for adding, deleting, and editing animations. + + + + + + + + The root animation node of this . See . + + + + + The path to the used to evaluate the if one is not explicitly specified internally. + + + + + The path to the used for animating. + + + + + Sets the process notification in which to update animations. + + + + + Returns the process notification in which to update animations. + + + + + Emitted when the is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tree_root' property. + + + + + Cached name for the 'advance_expression_base_node' property. + + + + + Cached name for the 'anim_player' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tree_root' method. + + + + + Cached name for the 'get_tree_root' method. + + + + + Cached name for the 'set_advance_expression_base_node' method. + + + + + Cached name for the 'get_advance_expression_base_node' method. + + + + + Cached name for the 'set_animation_player' method. + + + + + Cached name for the 'get_animation_player' method. + + + + + Cached name for the 'set_process_callback' method. + + + + + Cached name for the 'get_process_callback' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'animation_player_changed' signal. + + + + + CodeEdit is a specialized designed for editing plain text code files. It has many features commonly found in code editors such as line numbers, line folding, code completion, indent management, and string/comment management. + Note: Regardless of locale, will by default always use left-to-right text direction to correctly display source code. + + + + + + + + Marks the option as a class. + + + + + Marks the option as a function. + + + + + Marks the option as a Godot signal. + + + + + Marks the option as a variable. + + + + + Marks the option as a member. + + + + + Marks the option as an enum entry. + + + + + Marks the option as a constant. + + + + + Marks the option as a Godot node path. + + + + + Marks the option as a file path. + + + + + Marks the option as unclassified or plain text. + + + + + 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). + + + + + 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. + + + + + The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons). + + + + + The option is from other engine code, not covered by the other enum constants - e.g. built-in classes. + + + + + Set when a validated word from is clicked, the should be emitted. + + + + + Set when a word is hovered, the should be emitted. + + + + + If , lines can be folded. Otherwise, line folding methods like will not work and will always return . See . + + + + + Draws vertical lines at the provided columns. The first entry is considered a main hard guideline and is draw more prominently. + + + + + If , breakpoints are drawn in the gutter. This gutter is shared with bookmarks and executing lines. Clicking the gutter will toggle the breakpoint for the line, see . + + + + + If , bookmarks are drawn in the gutter. This gutter is shared with breakpoints and executing lines. See . + + + + + If , executing lines are marked in the gutter. This gutter is shared with breakpoints and bookmarks. See . + + + + + If , the line number gutter is drawn. Line numbers start at 1 and are incremented for each line of text. Clicking and dragging in the line number gutter will select entire lines of text. + + + + + If , line numbers drawn in the gutter are zero padded based on the total line count. Requires to be set to . + + + + + If , the fold gutter is drawn. In this gutter, the can_fold_code_region icon is drawn for each foldable line (see ) and the folded_code_region icon is drawn for each folded line (see ). These icons can be clicked to toggle the fold state, see . must be to show icons. + + + + + Sets the string delimiters. All existing string delimiters will be removed. + + + + + Sets the comment delimiters. All existing comment delimiters will be removed. + + + + + If , the ProjectSettings.input/ui_text_completion_query action requests code completion. To handle it, see or . + + + + + Sets prefixes that will trigger code completion. + + + + + Size of the tabulation indent (one Tab press) in characters. If is enabled the number of spaces to use. + + + + + Use spaces instead of tabs for indentation. + + + + + If , an extra indent is automatically inserted when a new line is added and a prefix in is found. If a brace pair opening key is found, the matching closing brace will be moved to another new line (see ). + + + + + Prefixes to trigger an automatic indent. Used when is set to . + + + + + If , uses to automatically insert the closing brace when the opening brace is inserted by typing or autocompletion. Also automatically removes the closing brace when using backspace on the opening brace. + + + + + If , highlights brace pairs when the caret is on either one, using . If matching, the pairs will be underlined. If a brace is unmatched, it is colored with brace_mismatch_color. + + + + + Sets the brace pairs to be autocompleted. For each entry in the dictionary, the key is the opening brace and the value is the closing brace that matches it. A brace is a made of symbols. See and . + + + + + Override this method to define how the selected entry should be inserted. If is , any existing text should be replaced. + + + + + Override this method to define what items in should be displayed. + Both and the return is a of , see for content. + + + + + Override this method to define what happens when the user requests code completion. If is , any checks should be bypassed. + + + + + If there is no selection, indentation is inserted at the caret. Otherwise, the selected lines are indented like . Equivalent to the ProjectSettings.input/ui_text_indent action. The indentation characters used depend on and . + + + + + Indents all lines that are selected or have a caret on them. Uses spaces or a tab depending on . See . + + + + + Unindents all lines that are selected or have a caret on them. Uses spaces or a tab depending on . Equivalent to the ProjectSettings.input/ui_text_dedent action. See . + + + + + Converts the indents of lines between and to tabs or spaces as set by . + Values of -1 convert the entire text. + + + + + Adds a brace pair. + Both the start and end keys must be symbols. Only the start key has to be unique. + + + + + Returns if open key exists. + + + + + Returns if close key exists. + + + + + Gets the matching auto brace close key for . + + + + + Sets the given line as a breakpoint. If and is , draws the breakpoint icon in the gutter for this line. See and . + + + + + Returns if the given line is breakpointed. See . + + + + + Clears all breakpointed lines. + + + + + Gets all breakpointed lines. + + + + + Sets the given line as bookmarked. If and is , draws the bookmark icon in the gutter for this line. See and . + + + + + Returns if the given line is bookmarked. See . + + + + + Clears all bookmarked lines. + + + + + Gets all bookmarked lines. + + + + + Sets the given line as executing. If and is , draws the executing_line icon in the gutter for this line. See and . + + + + + Returns if the given line is marked as executing. See . + + + + + Clears all executed lines. + + + + + Gets all executing lines. + + + + + Returns if the given line is foldable. A line is foldable if it is the start of a valid code region (see ), if it is the start of a comment or string block, or if the next non-empty line is more indented (see ). + + + + + Folds the given line, if possible (see ). + + + + + Unfolds the given line if it is folded or if it is hidden under a folded line. + + + + + Folds all lines that are possible to be folded (see ). + + + + + Unfolds all lines that are folded. + + + + + Toggle the folding of the code block at the given line. + + + + + Toggle the folding of the code block on all lines with a caret on them. + + + + + Returns if the given line is folded. See . + + + + + Returns all lines that are currently folded. + + + + + Creates a new code region with the selection. At least one single line comment delimiter have to be defined (see ). + A code region is a part of code that is highlighted when folded and can help organize your script. + Code region start and end tags can be customized (see ). + Code regions are delimited using start and end tags (respectively region and endregion by default) preceded by one line comment delimiter. (eg. #region and #endregion) + + + + + Returns the code region start tag (without comment delimiter). + + + + + Returns the code region end tag (without comment delimiter). + + + + + Sets the code region start and end tags (without comment delimiter). + + + + + Returns if the given line is a code region start. See . + + + + + Returns if the given line is a code region end. See . + + + + + Defines a string delimiter from to . Both keys should be symbols, and must not be shared with other delimiters. + If is or is an empty , the region does not carry over to the next line. + + + + + Removes the string delimiter with . + + + + + Returns if string exists. + + + + + Removes all string delimiters. + + + + + Returns the delimiter index if is in a string. If is not provided, will return the delimiter index if the entire is a string. Otherwise -1. + + + + + Adds a comment delimiter from to . Both keys should be symbols, and must not be shared with other delimiters. + If is or is an empty , the region does not carry over to the next line. + + + + + Removes the comment delimiter with . + + + + + Returns if comment exists. + + + + + Removes all comment delimiters. + + + + + Returns delimiter index if is in a comment. If is not provided, will return delimiter index if the entire is a comment. Otherwise -1. + + + + + Gets the start key for a string or comment region index. + + + + + Gets the end key for a string or comment region index. + + + + + If is in a string or comment, returns the start position of the region. If not or no start could be found, both values will be -1. + + + + + If is in a string or comment, returns the end position of the region. If not or no end could be found, both values will be -1. + + + + + Sets the code hint text. Pass an empty string to clear. + + + + + If , the code hint will draw below the main caret. If , the code hint will draw above the main caret. See . + + + + + Returns the full text with char 0xFFFF at the caret location. + + + + + Emits , if is will bypass all checks. Otherwise will check that the caret is in a word or in front of a prefix. Will ignore the request if all current options are of type file path, node path, or signal. + + + + + Submits an item to the queue of potential candidates for the autocomplete menu. Call to update the list. + indicates location of the option relative to the location of the code completion query. See for how to set this value. + Note: This list will replace all current candidates. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Submits all completion options added with . Will try to force the autocomplete menu to popup, if is . + Note: This will replace all current candidates. + + + + + Gets all completion options, see for return content. + + + + + Gets the completion option at . The return has the following key-values: + kind: + display_text: Text that is shown on the autocomplete menu. + insert_text: Text that is to be inserted when this item is selected. + font_color: Color of the text on the autocomplete menu. + icon: Icon to draw on the autocomplete menu. + default_value: Value of the symbol. + + + + + Gets the index of the current selected completion option. + + + + + Sets the current selected completion option. + + + + + Inserts the selected entry into the text. If is , any existing text is replaced rather than merged. + + + + + Cancels the autocomplete menu. + + + + + Returns the full text with char 0xFFFF at the cursor location. + + + + + Returns the full text with char 0xFFFF at the specified location. + + + + + Sets the symbol emitted by as a valid lookup. + + + + + Moves all lines up that are selected or have a caret on them. + + + + + Moves all lines down that are selected or have a caret on them. + + + + + Deletes all lines that are selected or have a caret on them. + + + + + Duplicates all selected text and duplicates all lines with a caret on them. + + + + + Duplicates all lines currently selected with any caret. Duplicates the entire line beneath the current one no matter where the caret is within the line. + + + + + Submits an item to the queue of potential candidates for the autocomplete menu. Call to update the list. + indicates location of the option relative to the location of the code completion query. See for how to set this value. + Note: This list will replace all current candidates. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is (Variant)(0). + + + + Represents the method that handles the event of a class. + + + + + Emitted when a breakpoint is added or removed from a line. If the line is moved via backspace a removed is emitted at the old line. + + + + + Emitted when the user requests code completion. This signal will not be sent if is overridden or is . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user has clicked on a valid symbol. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user hovers over a symbol. The symbol should be validated and responded to, by calling . + Note: must be for this signal to be emitted. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user hovers over a symbol. Unlike , this signal is not emitted immediately, but when the cursor is over the symbol for ProjectSettings.gui/timers/tooltip_delay_sec seconds. + Note: must be for this signal to be emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'symbol_lookup_on_click' property. + + + + + Cached name for the 'symbol_tooltip_on_hover' property. + + + + + Cached name for the 'line_folding' property. + + + + + Cached name for the 'line_length_guidelines' property. + + + + + Cached name for the 'gutters_draw_breakpoints_gutter' property. + + + + + Cached name for the 'gutters_draw_bookmarks' property. + + + + + Cached name for the 'gutters_draw_executing_lines' property. + + + + + Cached name for the 'gutters_draw_line_numbers' property. + + + + + Cached name for the 'gutters_zero_pad_line_numbers' property. + + + + + Cached name for the 'gutters_draw_fold_gutter' property. + + + + + Cached name for the 'delimiter_strings' property. + + + + + Cached name for the 'delimiter_comments' property. + + + + + Cached name for the 'code_completion_enabled' property. + + + + + Cached name for the 'code_completion_prefixes' property. + + + + + Cached name for the 'indent_size' property. + + + + + Cached name for the 'indent_use_spaces' property. + + + + + Cached name for the 'indent_automatic' property. + + + + + Cached name for the 'indent_automatic_prefixes' property. + + + + + Cached name for the 'auto_brace_completion_enabled' property. + + + + + Cached name for the 'auto_brace_completion_highlight_matching' property. + + + + + Cached name for the 'auto_brace_completion_pairs' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_confirm_code_completion' method. + + + + + Cached name for the '_filter_code_completion_candidates' method. + + + + + Cached name for the '_request_code_completion' method. + + + + + Cached name for the 'set_indent_size' method. + + + + + Cached name for the 'get_indent_size' method. + + + + + Cached name for the 'set_indent_using_spaces' method. + + + + + Cached name for the 'is_indent_using_spaces' method. + + + + + Cached name for the 'set_auto_indent_enabled' method. + + + + + Cached name for the 'is_auto_indent_enabled' method. + + + + + Cached name for the 'set_auto_indent_prefixes' method. + + + + + Cached name for the 'get_auto_indent_prefixes' method. + + + + + Cached name for the 'do_indent' method. + + + + + Cached name for the 'indent_lines' method. + + + + + Cached name for the 'unindent_lines' method. + + + + + Cached name for the 'convert_indent' method. + + + + + Cached name for the 'set_auto_brace_completion_enabled' method. + + + + + Cached name for the 'is_auto_brace_completion_enabled' method. + + + + + Cached name for the 'set_highlight_matching_braces_enabled' method. + + + + + Cached name for the 'is_highlight_matching_braces_enabled' method. + + + + + Cached name for the 'add_auto_brace_completion_pair' method. + + + + + Cached name for the 'set_auto_brace_completion_pairs' method. + + + + + Cached name for the 'get_auto_brace_completion_pairs' method. + + + + + Cached name for the 'has_auto_brace_completion_open_key' method. + + + + + Cached name for the 'has_auto_brace_completion_close_key' method. + + + + + Cached name for the 'get_auto_brace_completion_close_key' method. + + + + + Cached name for the 'set_draw_breakpoints_gutter' method. + + + + + Cached name for the 'is_drawing_breakpoints_gutter' method. + + + + + Cached name for the 'set_draw_bookmarks_gutter' method. + + + + + Cached name for the 'is_drawing_bookmarks_gutter' method. + + + + + Cached name for the 'set_draw_executing_lines_gutter' method. + + + + + Cached name for the 'is_drawing_executing_lines_gutter' method. + + + + + Cached name for the 'set_line_as_breakpoint' method. + + + + + Cached name for the 'is_line_breakpointed' method. + + + + + Cached name for the 'clear_breakpointed_lines' method. + + + + + Cached name for the 'get_breakpointed_lines' method. + + + + + Cached name for the 'set_line_as_bookmarked' method. + + + + + Cached name for the 'is_line_bookmarked' method. + + + + + Cached name for the 'clear_bookmarked_lines' method. + + + + + Cached name for the 'get_bookmarked_lines' method. + + + + + Cached name for the 'set_line_as_executing' method. + + + + + Cached name for the 'is_line_executing' method. + + + + + Cached name for the 'clear_executing_lines' method. + + + + + Cached name for the 'get_executing_lines' method. + + + + + Cached name for the 'set_draw_line_numbers' method. + + + + + Cached name for the 'is_draw_line_numbers_enabled' method. + + + + + Cached name for the 'set_line_numbers_zero_padded' method. + + + + + Cached name for the 'is_line_numbers_zero_padded' method. + + + + + Cached name for the 'set_draw_fold_gutter' method. + + + + + Cached name for the 'is_drawing_fold_gutter' method. + + + + + Cached name for the 'set_line_folding_enabled' method. + + + + + Cached name for the 'is_line_folding_enabled' method. + + + + + Cached name for the 'can_fold_line' method. + + + + + Cached name for the 'fold_line' method. + + + + + Cached name for the 'unfold_line' method. + + + + + Cached name for the 'fold_all_lines' method. + + + + + Cached name for the 'unfold_all_lines' method. + + + + + Cached name for the 'toggle_foldable_line' method. + + + + + Cached name for the 'toggle_foldable_lines_at_carets' method. + + + + + Cached name for the 'is_line_folded' method. + + + + + Cached name for the 'get_folded_lines' method. + + + + + Cached name for the 'create_code_region' method. + + + + + Cached name for the 'get_code_region_start_tag' method. + + + + + Cached name for the 'get_code_region_end_tag' method. + + + + + Cached name for the 'set_code_region_tags' method. + + + + + Cached name for the 'is_line_code_region_start' method. + + + + + Cached name for the 'is_line_code_region_end' method. + + + + + Cached name for the 'add_string_delimiter' method. + + + + + Cached name for the 'remove_string_delimiter' method. + + + + + Cached name for the 'has_string_delimiter' method. + + + + + Cached name for the 'set_string_delimiters' method. + + + + + Cached name for the 'clear_string_delimiters' method. + + + + + Cached name for the 'get_string_delimiters' method. + + + + + Cached name for the 'is_in_string' method. + + + + + Cached name for the 'add_comment_delimiter' method. + + + + + Cached name for the 'remove_comment_delimiter' method. + + + + + Cached name for the 'has_comment_delimiter' method. + + + + + Cached name for the 'set_comment_delimiters' method. + + + + + Cached name for the 'clear_comment_delimiters' method. + + + + + Cached name for the 'get_comment_delimiters' method. + + + + + Cached name for the 'is_in_comment' method. + + + + + Cached name for the 'get_delimiter_start_key' method. + + + + + Cached name for the 'get_delimiter_end_key' method. + + + + + Cached name for the 'get_delimiter_start_position' method. + + + + + Cached name for the 'get_delimiter_end_position' method. + + + + + Cached name for the 'set_code_hint' method. + + + + + Cached name for the 'set_code_hint_draw_below' method. + + + + + Cached name for the 'get_text_for_code_completion' method. + + + + + Cached name for the 'request_code_completion' method. + + + + + Cached name for the 'add_code_completion_option' method. + + + + + Cached name for the 'update_code_completion_options' method. + + + + + Cached name for the 'get_code_completion_options' method. + + + + + Cached name for the 'get_code_completion_option' method. + + + + + Cached name for the 'get_code_completion_selected_index' method. + + + + + Cached name for the 'set_code_completion_selected_index' method. + + + + + Cached name for the 'confirm_code_completion' method. + + + + + Cached name for the 'cancel_code_completion' method. + + + + + Cached name for the 'set_code_completion_enabled' method. + + + + + Cached name for the 'is_code_completion_enabled' method. + + + + + Cached name for the 'set_code_completion_prefixes' method. + + + + + Cached name for the 'get_code_completion_prefixes' method. + + + + + Cached name for the 'set_line_length_guidelines' method. + + + + + Cached name for the 'get_line_length_guidelines' method. + + + + + Cached name for the 'set_symbol_lookup_on_click_enabled' method. + + + + + Cached name for the 'is_symbol_lookup_on_click_enabled' method. + + + + + Cached name for the 'get_text_for_symbol_lookup' method. + + + + + Cached name for the 'get_text_with_cursor_char' method. + + + + + Cached name for the 'set_symbol_lookup_word_as_valid' method. + + + + + Cached name for the 'set_symbol_tooltip_on_hover_enabled' method. + + + + + Cached name for the 'is_symbol_tooltip_on_hover_enabled' method. + + + + + Cached name for the 'move_lines_up' method. + + + + + Cached name for the 'move_lines_down' method. + + + + + Cached name for the 'delete_lines' method. + + + + + Cached name for the 'duplicate_selection' method. + + + + + Cached name for the 'duplicate_lines' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'breakpoint_toggled' signal. + + + + + Cached name for the 'code_completion_requested' signal. + + + + + Cached name for the 'symbol_lookup' signal. + + + + + Cached name for the 'symbol_validate' signal. + + + + + Cached name for the 'symbol_hovered' signal. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 3D. + + + + + + + + Calculates and returns all the vertex points of a convex shape defined by an array of . + + + + + Returns an array with 6 s that describe the sides of a box centered at the origin. The box size is defined by , which represents one (positive) corner of the box (i.e. half its actual size). + + + + + Returns an array of s closely bounding a faceted cylinder centered at the origin with radius and height . The parameter defines how many planes will be generated for the round part of the cylinder. The parameter describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Returns an array of s closely bounding a faceted capsule centered at the origin with radius and height . The parameter defines how many planes will be generated for the side part of the capsule, whereas gives the number of latitudinal steps at the bottom and top of the capsule. The parameter describes the axis along which the capsule is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Given the two 3D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 3D point on the 3D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 3D point on the 3D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns a containing weights based on how close a 3D position () is to a triangle's different vertices (, and ). This is useful for interpolating between the data of different vertices in a triangle. One example use case is using this to smoothly rotate over a mesh instead of relying solely on face normals. + Here is a more detailed explanation of barycentric coordinates. + + + + + Tests if the 3D ray starting at with the direction of intersects the triangle specified by , and . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Tests if the segment (, ) intersects the triangle , , . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Checks if the segment (, ) intersects the sphere that is located at and has radius . If no, returns an empty []. If yes, returns a [] containing the point of intersection and the sphere's normal at the point of intersection. + + + + + Checks if the segment (, ) intersects the cylinder with height that is centered at the origin and has radius . If no, returns an empty []. If an intersection takes place, the returned array contains the point of intersection and the cylinder's normal at the point of intersection. + + + + + Given a convex hull defined though the s in the array , tests if the segment (, ) intersects with that hull. If an intersection is found, returns a [] containing the point the intersection and the hull's normal. Otherwise, returns an empty array. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'compute_convex_mesh_points' method. + + + + + Cached name for the 'build_box_planes' method. + + + + + Cached name for the 'build_cylinder_planes' method. + + + + + Cached name for the 'build_capsule_planes' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'get_triangle_barycentric_coords' method. + + + + + Cached name for the 'ray_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_sphere' method. + + + + + Cached name for the 'segment_intersects_cylinder' method. + + + + + Cached name for the 'segment_intersects_convex' method. + + + + + Cached name for the 'clip_polygon' method. + + + + + Cached name for the 'tetrahedralize_delaunay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + by itself is only an empty container, representing an infinite grid where s can be placed. Each represents a node in the graph, a single unit of data in the connected scheme. , in turn, helps to control various interactions with nodes and between nodes. When the user attempts to connect, disconnect, or delete a , a signal is emitted in the , but no action is taken by default. It is the responsibility of the programmer utilizing this control to implement the necessary logic to determine how each request should be handled. + Performance: It is greatly advised to enable low-processor usage mode (see ) when using GraphEdits. + Note: Keep in mind that will also return the connection layer node named _connection_layer due to technical limitations. This behavior may change in future releases. + + + + + + + + + + + + + + + + + Mouse Wheel will zoom, Ctrl + Mouse Wheel will move the view. + + + + + Mouse Wheel will move the view, Ctrl + Mouse Wheel will zoom. + + + + + Draw the grid using solid lines. + + + + + Draw the grid using dots. + + + + + The scroll offset. + + + + + If , the grid is visible. + + + + + The pattern used for drawing the grid. + + + + + If , enables snapping. + + + + + The snapping distance in pixels, also determines the grid line distance. + + + + + Defines the control scheme for panning with mouse wheel. + + + + + If , enables disconnection of existing connections in the GraphEdit by dragging the right end. + + + + + The curvature of the lines between the nodes. 0 results in straight lines. + + + + + The thickness of the lines between the nodes. + + + + + If , the lines between nodes will use antialiasing. + + + + + The connections between s. + A connection is represented as a in the form of: + + { + from_node: StringName, + from_port: int, + to_node: StringName, + to_port: int, + keep_alive: bool + } + + Connections with keep_alive set to may be deleted automatically if invalid during a redraw. + + + + + The current zoom value. + + + + + The lower zoom limit. + + + + + The upper zoom limit. + + + + + The step of each zoom level. + + + + + If , the minimap is visible. + + + + + The size of the minimap rectangle. The map itself is based on the size of the grid area and is scaled to fit this rectangle. + + + + + The opacity of the minimap rectangle. + + + + + If , the menu toolbar is visible. + + + + + If , the label with the current zoom level is visible. The zoom level is displayed in percents. + + + + + If , buttons that allow to change and reset the zoom level are visible. + + + + + If , buttons that allow to configure grid and snapping options are visible. + + + + + If , the button to toggle the minimap is visible. + + + + + If , the button to automatically arrange graph nodes is visible. + + + + + Virtual method which can be overridden to customize how connections are drawn. + + + + + Returns whether the is in the input hot zone. + By default, a hot zone is a positioned such that its center is at .() (For output's case, call instead). The hot zone's width is twice the Theme Property port_grab_distance_horizontal, and its height is twice the port_grab_distance_vertical. + Below is a sample code to help get started: + + func _is_in_input_hotzone(in_node, in_port, mouse_position): + var port_size = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical")) + var port_pos = 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) + + + + + + Returns whether the is in the output hot zone. For more information on hot zones, see . + Below is a sample code to help get started: + + func _is_in_output_hotzone(in_node, in_port, mouse_position): + var port_size = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical")) + var port_pos = 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) + + + + + + This virtual method can be used to insert additional error detection while the user is dragging a connection over a valid port. + Return if the connection is indeed valid or return 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: + + public override bool _IsNodeHoverValid(StringName fromNode, int fromPort, StringName toNode, int toPort) + { + return fromNode != toNode; + } + + + + + + Create a connection between the of the and the of the . If the connection already exists, no connection is created. + Connections with set to may be deleted automatically if invalid during a redraw. + + + + + Returns if the of the is connected to the of the . + + + + + Removes the connection between the of the and the of the . If the connection does not exist, no connection is removed. + + + + + Sets the coloration of the connection between 's and 's with the color provided in the activity theme property. The color is linearly interpolated between the connection color and the activity color using as weight. + + + + + Returns the number of connections from of . + + + + + Returns the closest connection to the given point in screen space. If no connection is found within pixels, an empty is returned. + A connection is represented as a in the form of: + + { + from_node: StringName, + from_port: int, + to_node: StringName, + to_port: int, + keep_alive: bool + } + + For example, getting a connection at a given mouse position can be achieved like this: + + + + + + Returns an containing the list of connections that intersect with the given . + A connection is represented as a in the form of: + + { + from_node: StringName, + from_port: int, + to_node: StringName, + to_port: int, + keep_alive: bool + } + + + + + + Removes all connections between nodes. + + + + + Ends the creation of the current connection. In other words, if you are dragging a connection you can use this method to abort the process and remove the line that followed your cursor. + This is best used together with and to add custom behavior like node addition through shortcuts. + Note: This method suppresses any other connection request signals apart from . + + + + + Allows to disconnect nodes when dragging from the right port of the 's slot if it has the specified type. See also . + + + + + Disallows to disconnect nodes when dragging from the right port of the 's slot if it has the specified type. Use this to disable disconnection previously allowed with . + + + + + Allows to disconnect nodes when dragging from the left port of the 's slot if it has the specified type. See also . + + + + + Disallows to disconnect nodes when dragging from the left port of the 's slot if it has the specified type. Use this to disable disconnection previously allowed with . + + + + + Allows the connection between two different port types. The port type is defined individually for the left and the right port of each slot with the method. + See also and . + + + + + Disallows the connection between two different port types previously allowed by . The port type is defined individually for the left and the right port of each slot with the method. + See also . + + + + + Returns whether it's possible to make a connection between two different port types. The port type is defined individually for the left and the right port of each slot with the method. + See also and . + + + + + Returns the points which would make up a connection between and . + + + + + Attaches the to the . + + + + + Detaches the from the it is currently attached to. + + + + + Returns the that contains the with the given name. + + + + + Returns an array of node names that are attached to the with the given name. + + + + + Gets the that contains the zooming and grid snap controls in the top left of the graph. You can use this method to reposition the toolbar or to add your own custom controls to it. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Rearranges selected nodes in a layout with minimum crossings between connections and uniform horizontal and vertical gap between nodes. + + + + + Sets the specified as the one selected. + + + + + Create a connection between the of the and the of the . If the connection already exists, no connection is created. + Connections with set to may be deleted automatically if invalid during a redraw. + + + + + Represents the method that handles the event of a class. + + + + + Emitted to the GraphEdit when the connection between the fromPort of the fromNode and the toPort of the toNode is attempted to be created. + + + + + Represents the method that handles the event of a class. + + + + + Emitted to the GraphEdit when the connection between fromPort of fromNode and toPort of toNode is attempted to be removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user drags a connection from an output port into the empty space of the graph. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user drags a connection from an input port into the empty space of the graph. + + + + + Represents the method that handles the event of a class. + + + + + Emitted at the beginning of a connection drag. + + + + + Emitted at the end of a connection drag. + + + + + Emitted when this captures a ui_copy action (Ctrl + C by default). In general, this signal indicates that the selected s should be copied. + + + + + Emitted when this captures a ui_cut action (Ctrl + X by default). In general, this signal indicates that the selected s should be cut. + + + + + Emitted when this captures a ui_paste action (Ctrl + V by default). In general, this signal indicates that previously copied s should be pasted. + + + + + Emitted when this captures a ui_graph_duplicate action (Ctrl + D by default). In general, this signal indicates that the selected s should be duplicated. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this captures a ui_graph_delete action (Delete by default). + nodes is an array of node names that should be removed. These usually include all selected nodes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given node is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given node is deselected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the frame is resized to newRect. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a popup is requested. Happens on right-clicking in the GraphEdit. atPosition is the position of the mouse pointer when the signal is sent. + + + + + Emitted at the beginning of a 's movement. + + + + + Emitted at the end of a 's movement. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one or more s are dropped onto the named frame, when they were not previously attached to any other one. + elements is an array of s to be attached. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the scroll offset is changed by the user. It will not be emitted when changed in code. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_offset' property. + + + + + Cached name for the 'show_grid' property. + + + + + Cached name for the 'grid_pattern' property. + + + + + Cached name for the 'snapping_enabled' property. + + + + + Cached name for the 'snapping_distance' property. + + + + + Cached name for the 'panning_scheme' property. + + + + + Cached name for the 'right_disconnects' property. + + + + + Cached name for the 'connection_lines_curvature' property. + + + + + Cached name for the 'connection_lines_thickness' property. + + + + + Cached name for the 'connection_lines_antialiased' property. + + + + + Cached name for the 'connections' property. + + + + + Cached name for the 'zoom' property. + + + + + Cached name for the 'zoom_min' property. + + + + + Cached name for the 'zoom_max' property. + + + + + Cached name for the 'zoom_step' property. + + + + + Cached name for the 'minimap_enabled' property. + + + + + Cached name for the 'minimap_size' property. + + + + + Cached name for the 'minimap_opacity' property. + + + + + Cached name for the 'show_menu' property. + + + + + Cached name for the 'show_zoom_label' property. + + + + + Cached name for the 'show_zoom_buttons' property. + + + + + Cached name for the 'show_grid_buttons' property. + + + + + Cached name for the 'show_minimap_button' property. + + + + + Cached name for the 'show_arrange_button' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_connection_line' method. + + + + + Cached name for the '_is_in_input_hotzone' method. + + + + + Cached name for the '_is_in_output_hotzone' method. + + + + + Cached name for the '_is_node_hover_valid' method. + + + + + Cached name for the 'connect_node' method. + + + + + Cached name for the 'is_node_connected' method. + + + + + Cached name for the 'disconnect_node' method. + + + + + Cached name for the 'set_connection_activity' method. + + + + + Cached name for the 'set_connections' method. + + + + + Cached name for the 'get_connection_list' method. + + + + + Cached name for the 'get_connection_count' method. + + + + + Cached name for the 'get_closest_connection_at_point' method. + + + + + Cached name for the 'get_connections_intersecting_with_rect' method. + + + + + Cached name for the 'clear_connections' method. + + + + + Cached name for the 'force_connection_drag_end' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_scroll_offset' method. + + + + + Cached name for the 'add_valid_right_disconnect_type' method. + + + + + Cached name for the 'remove_valid_right_disconnect_type' method. + + + + + Cached name for the 'add_valid_left_disconnect_type' method. + + + + + Cached name for the 'remove_valid_left_disconnect_type' method. + + + + + Cached name for the 'add_valid_connection_type' method. + + + + + Cached name for the 'remove_valid_connection_type' method. + + + + + Cached name for the 'is_valid_connection_type' method. + + + + + Cached name for the 'get_connection_line' method. + + + + + Cached name for the 'attach_graph_element_to_frame' method. + + + + + Cached name for the 'detach_graph_element_from_frame' method. + + + + + Cached name for the 'get_element_frame' method. + + + + + Cached name for the 'get_attached_nodes_of_frame' method. + + + + + Cached name for the 'set_panning_scheme' method. + + + + + Cached name for the 'get_panning_scheme' method. + + + + + Cached name for the 'set_zoom' method. + + + + + Cached name for the 'get_zoom' method. + + + + + Cached name for the 'set_zoom_min' method. + + + + + Cached name for the 'get_zoom_min' method. + + + + + Cached name for the 'set_zoom_max' method. + + + + + Cached name for the 'get_zoom_max' method. + + + + + Cached name for the 'set_zoom_step' method. + + + + + Cached name for the 'get_zoom_step' method. + + + + + Cached name for the 'set_show_grid' method. + + + + + Cached name for the 'is_showing_grid' method. + + + + + Cached name for the 'set_grid_pattern' method. + + + + + Cached name for the 'get_grid_pattern' method. + + + + + Cached name for the 'set_snapping_enabled' method. + + + + + Cached name for the 'is_snapping_enabled' method. + + + + + Cached name for the 'set_snapping_distance' method. + + + + + Cached name for the 'get_snapping_distance' method. + + + + + Cached name for the 'set_connection_lines_curvature' method. + + + + + Cached name for the 'get_connection_lines_curvature' method. + + + + + Cached name for the 'set_connection_lines_thickness' method. + + + + + Cached name for the 'get_connection_lines_thickness' method. + + + + + Cached name for the 'set_connection_lines_antialiased' method. + + + + + Cached name for the 'is_connection_lines_antialiased' method. + + + + + Cached name for the 'set_minimap_size' method. + + + + + Cached name for the 'get_minimap_size' method. + + + + + Cached name for the 'set_minimap_opacity' method. + + + + + Cached name for the 'get_minimap_opacity' method. + + + + + Cached name for the 'set_minimap_enabled' method. + + + + + Cached name for the 'is_minimap_enabled' method. + + + + + Cached name for the 'set_show_menu' method. + + + + + Cached name for the 'is_showing_menu' method. + + + + + Cached name for the 'set_show_zoom_label' method. + + + + + Cached name for the 'is_showing_zoom_label' method. + + + + + Cached name for the 'set_show_grid_buttons' method. + + + + + Cached name for the 'is_showing_grid_buttons' method. + + + + + Cached name for the 'set_show_zoom_buttons' method. + + + + + Cached name for the 'is_showing_zoom_buttons' method. + + + + + Cached name for the 'set_show_minimap_button' method. + + + + + Cached name for the 'is_showing_minimap_button' method. + + + + + Cached name for the 'set_show_arrange_button' method. + + + + + Cached name for the 'is_showing_arrange_button' method. + + + + + Cached name for the 'set_right_disconnects' method. + + + + + Cached name for the 'is_right_disconnects_enabled' method. + + + + + Cached name for the 'get_menu_hbox' method. + + + + + Cached name for the 'arrange_nodes' method. + + + + + Cached name for the 'set_selected' method. + + + + + Cached name for the 'set_arrange_nodes_button_hidden' method. + + + + + Cached name for the 'is_arrange_nodes_button_hidden' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'connection_request' signal. + + + + + Cached name for the 'disconnection_request' signal. + + + + + Cached name for the 'connection_to_empty' signal. + + + + + Cached name for the 'connection_from_empty' signal. + + + + + Cached name for the 'connection_drag_started' signal. + + + + + Cached name for the 'connection_drag_ended' signal. + + + + + Cached name for the 'copy_nodes_request' signal. + + + + + Cached name for the 'cut_nodes_request' signal. + + + + + Cached name for the 'paste_nodes_request' signal. + + + + + Cached name for the 'duplicate_nodes_request' signal. + + + + + Cached name for the 'delete_nodes_request' signal. + + + + + Cached name for the 'node_selected' signal. + + + + + Cached name for the 'node_deselected' signal. + + + + + Cached name for the 'frame_rect_changed' signal. + + + + + Cached name for the 'popup_request' signal. + + + + + Cached name for the 'begin_node_move' signal. + + + + + Cached name for the 'end_node_move' signal. + + + + + Cached name for the 'graph_elements_linked_to_frame_request' signal. + + + + + Cached name for the 'scroll_offset_changed' signal. + + + + + allows to create nodes for a graph with customizable content based on its child controls. is derived from and it is responsible for placing its children on screen. This works similar to . Children, in turn, provide with so-called slots, each of which can have a connection port on either side. + Each slot is defined by its index and can provide the node with up to two ports: one on the left, and one on the right. By convention the left port is also referred to as the input port and the right port is referred to as the output port. Each port can be enabled and configured individually, using different type and color. The type is an arbitrary value that you can define using your own considerations. The parent 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 . The properties are grouped by each slot's index in the "Slot" section. + Note: While GraphNode is set up using slots and slot indices, connections are made between the ports which are enabled. Because of that uses the port's index and not the slot's index. You can use and to get the slot index from the port index. + + + + + + + + The text displayed in the GraphNode's title bar. + + + + + If , you can connect ports with different types, even if the connection was not explicitly allowed in the parent . + + + + + Returns the used for the title bar, only containing a for displaying the title by default. This can be used to add custom controls to the title bar such as option or close buttons. + + + + + Sets properties of the slot with the given . + If / is , a port will appear and the slot will be able to be connected from this side. + With / an arbitrary type can be assigned to each port. Two ports can be connected if they share the same type, or if the connection between their types is allowed in the parent (see ). Keep in mind that the has the final say in accepting the connection. Type compatibility simply allows the signal to be emitted. + Ports can be further customized using / and /. The color parameter adds a tint to the icon. The custom icon can be used to override the default port dot. + Additionally, can be used to enable or disable drawing of the background stylebox for each slot. See slot. + Individual properties can also be set using one of the set_slot_* methods. + Note: This method only sets properties of the slot. To create the slot itself, add a -derived child to the GraphNode. + + + + + Disables the slot with the given . This will remove the corresponding input and output port from the GraphNode. + + + + + Disables all slots of the GraphNode. This will remove all input/output ports from the GraphNode. + + + + + Returns if left (input) side of the slot with the given is enabled. + + + + + Toggles the left (input) side of the slot with the given . If is , a port will appear on the left side and the slot will be able to be connected from this side. + + + + + Sets the left (input) type of the slot with the given to . If the value is negative, all connections will be disallowed to be created via user inputs. + + + + + Returns the left (input) type of the slot with the given . + + + + + Sets the of the left (input) side of the slot with the given to . + + + + + Returns the left (input) of the slot with the given . + + + + + Sets the custom of the left (input) side of the slot with the given to . + + + + + Returns the left (input) custom of the slot with the given . + + + + + Returns if right (output) side of the slot with the given is enabled. + + + + + Toggles the right (output) side of the slot with the given . If is , a port will appear on the right side and the slot will be able to be connected from this side. + + + + + Sets the right (output) type of the slot with the given to . If the value is negative, all connections will be disallowed to be created via user inputs. + + + + + Returns the right (output) type of the slot with the given . + + + + + Sets the of the right (output) side of the slot with the given to . + + + + + Returns the right (output) of the slot with the given . + + + + + Sets the custom of the right (output) side of the slot with the given to . + + + + + Returns the right (output) custom of the slot with the given . + + + + + Returns if the background of the slot with the given is drawn. + + + + + Toggles the background of the slot with the given . + + + + + Returns the number of slots with an enabled input port. + + + + + Returns the position of the input port with the given . + + + + + Returns the type of the input port with the given . + + + + + Returns the of the input port with the given . + + + + + Returns the corresponding slot index of the input port with the given . + + + + + Returns the number of slots with an enabled output port. + + + + + Returns the position of the output port with the given . + + + + + Returns the type of the output port with the given . + + + + + Returns the of the output port with the given . + + + + + Returns the corresponding slot index of the output port with the given . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when any GraphNode's slot is updated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'ignore_invalid_connection_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw_port' method. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'get_titlebar_hbox' method. + + + + + Cached name for the 'set_slot' method. + + + + + Cached name for the 'clear_slot' method. + + + + + Cached name for the 'clear_all_slots' method. + + + + + Cached name for the 'is_slot_enabled_left' method. + + + + + Cached name for the 'set_slot_enabled_left' method. + + + + + Cached name for the 'set_slot_type_left' method. + + + + + Cached name for the 'get_slot_type_left' method. + + + + + Cached name for the 'set_slot_color_left' method. + + + + + Cached name for the 'get_slot_color_left' method. + + + + + Cached name for the 'set_slot_custom_icon_left' method. + + + + + Cached name for the 'get_slot_custom_icon_left' method. + + + + + Cached name for the 'is_slot_enabled_right' method. + + + + + Cached name for the 'set_slot_enabled_right' method. + + + + + Cached name for the 'set_slot_type_right' method. + + + + + Cached name for the 'get_slot_type_right' method. + + + + + Cached name for the 'set_slot_color_right' method. + + + + + Cached name for the 'get_slot_color_right' method. + + + + + Cached name for the 'set_slot_custom_icon_right' method. + + + + + Cached name for the 'get_slot_custom_icon_right' method. + + + + + Cached name for the 'is_slot_draw_stylebox' method. + + + + + Cached name for the 'set_slot_draw_stylebox' method. + + + + + Cached name for the 'set_ignore_invalid_connection_type' method. + + + + + Cached name for the 'is_ignoring_valid_connection_type' method. + + + + + Cached name for the 'get_input_port_count' method. + + + + + Cached name for the 'get_input_port_position' method. + + + + + Cached name for the 'get_input_port_type' method. + + + + + Cached name for the 'get_input_port_color' method. + + + + + Cached name for the 'get_input_port_slot' method. + + + + + Cached name for the 'get_output_port_count' method. + + + + + Cached name for the 'get_output_port_position' method. + + + + + Cached name for the 'get_output_port_type' method. + + + + + Cached name for the 'get_output_port_color' method. + + + + + Cached name for the 'get_output_port_slot' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'slot_updated' signal. + + + + + ImporterMesh is a type of analogous to . It contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials. + Unlike its runtime counterpart, contains mesh data before various import steps, such as lod and shadow mesh generation, have taken place. Modify surface data by calling , followed by for each surface. + + + + + + + + Adds name for a blend shape that will be added with . Must be called before surface is added. + + + + + Returns the number of blend shapes that the mesh holds. + + + + + Returns the name of the blend shape at this index. + + + + + Sets the blend shape mode to one of . + + + + + Returns the blend shape mode for this Mesh. + + + + + Creates a new surface. will become the surf_idx for this new surface. + Surfaces are created to be rendered using a , which may be any of the values defined in . + The argument is an array of arrays. Each of the elements contains an array with some of the mesh data for this surface as described by the corresponding member of or if it is not used by the surface. For example, arrays[0] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this surface into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array (or be an exact multiple of the vertex array's length, when multiple elements of a sub-array correspond to a single vertex) or be empty, except for if it is used. + The argument is an array of vertex data for each blend shape. Each element is an array of the same structure as , but , , and are set if and only if they are set in and all other entries are . + The argument is a dictionary with keys and [] values. Each entry in the dictionary represents an LOD level of the surface, where the value is the array to use for the LOD level and the key is roughly proportional to the distance at which the LOD stats being used. I.e., increasing the key of an LOD also increases the distance that the objects has to be from the camera before the LOD is used. + The argument is the bitwise or of, as required: One value of left shifted by ARRAY_FORMAT_CUSTOMn_SHIFT for each custom channel in use, , , or . + Note: When using indices, it is recommended to only use points, lines, or triangles. + + + + + Returns the number of surfaces that the mesh holds. + + + + + Returns the primitive type of the requested surface (see ). + + + + + Gets the name assigned to this surface. + + + + + Returns the arrays for the vertices, normals, UVs, etc. that make up the requested surface. See . + + + + + Returns a single set of blend shape arrays for the requested blend shape index for a surface. + + + + + Returns the number of lods that the mesh holds on a given surface. + + + + + Returns the screen ratio which activates a lod for a surface. + + + + + Returns the index buffer of a lod for a surface. + + + + + Returns a in a given surface. Surface is rendered using this material. + + + + + Returns the format of the surface that the mesh holds. + + + + + Sets a name for a given surface. + + + + + Sets a for a given surface. Surface will be rendered using this material. + + + + + Generates all lods for this ImporterMesh. + is in degrees and used in the same way as the importer settings in lods. + is not used and only remains for compatibility with older versions of the API. + The number of generated lods can be accessed using , and each LOD is available in and . + is an which can be either empty or contain s which, for each of the mesh's bone IDs, will apply mesh skinning when generating the LOD mesh variations. This is usually used to account for discrepancies in scale between the mesh itself and its skinning data. + + + + + Returns the mesh data represented by this as a usable . + This method caches the returned mesh, and subsequent calls will return the cached data until is called. + If not yet cached and is provided, will be used and mutated. + + + + + Removes all surfaces and blend shapes from this . + + + + + Sets the size hint of this mesh for lightmap-unwrapping in UV-space. + + + + + Returns the size hint of this mesh for lightmap-unwrapping in UV-space. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_shape' method. + + + + + Cached name for the 'get_blend_shape_count' method. + + + + + Cached name for the 'get_blend_shape_name' method. + + + + + Cached name for the 'set_blend_shape_mode' method. + + + + + Cached name for the 'get_blend_shape_mode' method. + + + + + Cached name for the 'add_surface' method. + + + + + Cached name for the 'get_surface_count' method. + + + + + Cached name for the 'get_surface_primitive_type' method. + + + + + Cached name for the 'get_surface_name' method. + + + + + Cached name for the 'get_surface_arrays' method. + + + + + Cached name for the 'get_surface_blend_shape_arrays' method. + + + + + Cached name for the 'get_surface_lod_count' method. + + + + + Cached name for the 'get_surface_lod_size' method. + + + + + Cached name for the 'get_surface_lod_indices' method. + + + + + Cached name for the 'get_surface_material' method. + + + + + Cached name for the 'get_surface_format' method. + + + + + Cached name for the 'set_surface_name' method. + + + + + Cached name for the 'set_surface_material' method. + + + + + Cached name for the 'generate_lods' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'set_lightmap_size_hint' method. + + + + + Cached name for the 'get_lightmap_size_hint' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MeshInstance3D is a node that takes a 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 in many places. This allows reusing geometry, which can save on resources. When a has to be instantiated more than thousands of times at close proximity, consider using a in a instead. + + + + + + + + The resource for the instance. + + + + + The to be used by this instance. + + + + + to the associated with the instance. + + + + + Returns the internal containing the skeleton's attached to this RID. See also , , and . + + + + + Returns the number of surface override materials. This is equivalent to . See also . + + + + + Sets the override for the specified of the resource. This material is associated with this rather than with . + Note: This assigns the associated to the 's Surface Material Override properties, not the material within the resource. To set the material within the resource, use instead. + + + + + Returns the override for the specified of the resource. See also . + Note: This returns the associated to the 's Surface Material Override properties, not the material within the resource. To get the material within the resource, use instead. + + + + + Returns the that will be used by the when drawing. This can return the , the surface override defined in this , or the surface defined in the . For example, if is used, all surfaces will return the override material. + Returns if no material is active, including when is . + + + + + This helper creates a child node with a collision shape calculated from the mesh geometry. It's mainly used for testing. + + + + + This helper creates a child node with a collision shape calculated from the mesh geometry. It's mainly used for testing. + If is (default), duplicate and interior vertices are removed automatically. You can set it to to make the process faster if not needed. + If is , the geometry can be further simplified to reduce the number of vertices. Disabled by default. + + + + + This helper creates a child node with multiple collision shapes calculated from the mesh geometry via convex decomposition. The convex decomposition operation can be controlled with parameters from the optional . + + + + + Returns the number of blend shapes available. Produces an error if is . + + + + + Returns the index of the blend shape with the given . Returns -1 if no blend shape with this name exists, including when is . + + + + + Returns the value of the blend shape at the given . Returns 0.0 and produces an error if is or doesn't have a blend shape at that index. + + + + + Sets the value of the blend shape at to . Produces an error if is or doesn't have a blend shape at that index. + + + + + This helper creates a child node with gizmos at every vertex calculated from the mesh geometry. It's mainly used for testing. + + + + + Takes a snapshot from the current with all blend shapes applied according to their current weights and bakes it to the provided mesh. If no mesh is provided a new is created, baked and returned. Mesh surface materials are not copied. + Performance: data needs to be received from the GPU, stalling the in the process. + + + + + Takes a snapshot of the current animated skeleton pose of the skinned mesh and bakes it to the provided mesh. If no mesh is provided a new is created, baked, and returned. Requires a skeleton with a registered skin to work. Blendshapes are ignored. Mesh surface materials are not copied. + Performance: data needs to be retrieved from the GPU, stalling the in the process. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'skin' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_skeleton_path' method. + + + + + Cached name for the 'get_skeleton_path' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'get_skin_reference' method. + + + + + Cached name for the 'get_surface_override_material_count' method. + + + + + Cached name for the 'set_surface_override_material' method. + + + + + Cached name for the 'get_surface_override_material' method. + + + + + Cached name for the 'get_active_material' method. + + + + + Cached name for the 'create_trimesh_collision' method. + + + + + Cached name for the 'create_convex_collision' method. + + + + + Cached name for the 'create_multiple_convex_collisions' method. + + + + + Cached name for the 'get_blend_shape_count' method. + + + + + Cached name for the 'find_blend_shape_by_name' method. + + + + + Cached name for the 'get_blend_shape_value' method. + + + + + Cached name for the 'set_blend_shape_value' method. + + + + + Cached name for the 'create_debug_tangents' method. + + + + + Cached name for the 'bake_mesh_from_current_blend_shape_mix' method. + + + + + Cached name for the 'bake_mesh_from_current_skeleton_pose' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Most basic 3D game object, with a and visibility settings. All other 3D game objects inherit from . Use 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 object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the 's transform. The word local below refers to this coordinate system. The coordinate system that is attached to the object itself is referred to as object-local coordinate system. + Note: Unless otherwise specified, all methods that have angle parameters must have angles specified as radians. To convert degrees to radians, use @GlobalScope.deg_to_rad. + Note: Be aware that "Spatial" nodes are now called "Node3D" starting with Godot 4. Any Godot 3.x references to "Spatial" nodes refer to "Node3D" in Godot 4. + + + + + + + + + + + nodes receive this notification when their global transform changes. This means that either the current or a parent node changed its transform. + In order for to work, users first need to ask for it, with . The notification is also sent if the node is in the editor context and it has at least one valid gizmo. + + + + + nodes receive this notification when they are registered to new resource. + + + + + nodes receive this notification when they are unregistered from current resource. + + + + + nodes receive this notification when their visibility changes. + + + + + nodes receive this notification when their local transform changes. This is not received when the transform of a parent node is changed. + In order for to work, users first need to ask for it, with . + + + + + The rotation is edited using Euler angles. + + + + + The rotation is edited using a . + + + + + The rotation is edited using a . In this mode, can't be edited separately. + + + + + Local space of this node, with respect to the parent node. + + + + + World3D space (global) of this node. + + + + + Local position or translation of this node relative to the parent. This is equivalent to transform.origin. + + + + + Rotation part of the local transformation in radians, specified in terms of Euler angles. The angles construct a rotation in the order specified by the property. + Note: In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a data structure not because the rotation is a vector, but only because exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful. + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use . + + + + + Helper property to access in degrees instead of radians. + + + + + Access to the node rotation as a . This property is ideal for tweening complex rotations. + + + + + Basis of the property. Represents the rotation, scale, and shear of this node. + + + + + Scale part of the local transformation. + Note: Mixed negative scales in 3D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, the scale values will either be all positive or all negative. + Note: Not all nodes are visually scaled by the property. For example, s are not visually affected by . + + + + + Specify how rotation (and scale) will be presented in the editor. + + + + + Specify the axis rotation order of the property. The final orientation is constructed by rotating the Euler angles in the order specified by this property. + + + + + If , the node will not inherit its transformations from its parent. Node transformations are only in global space. + + + + + Global position of this node. This is equivalent to global_transform.origin. + + + + + Global basis of this node. This is equivalent to global_transform.basis. + + + + + Rotation part of the global transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle). + Note: In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a data structure not because the rotation is a vector, but only because exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful. + + + + + Helper property to access in degrees instead of radians. + + + + + If , this node is drawn. The node is only visible if all of its ancestors are visible as well (in other words, must return ). + + + + + Defines the visibility range parent for this node and its subtree. The visibility parent must be a GeometryInstance3D. Any visual instance will only be visible if the visibility parent (and all of its visibility ancestors) is hidden by being closer to the camera than its own . Nodes hidden via the property are essentially removed from the visibility dependency tree, so dependent instances will not take the hidden node or its ancestors into account. + + + + + When using physics interpolation, there will be circumstances in which you want to know the interpolated (displayed) transform of a node rather than the standard transform (which may only be accurate to the most recent physics tick). + This is particularly important for frame-based operations that take place in , rather than . Examples include s focusing on a node, or finding where to fire lasers from on a frame rather than physics tick. + Note: This function creates an interpolation pump on the the first time it is called, which can respond to physics interpolation resets. If you get problems with "streaking" when initially following a , be sure to call at least once before resetting the physics interpolation. + + + + + Returns the parent , or if no parent exists, the parent is not of type , or is . + Note: Calling this method is not equivalent to get_parent() as Node3D, which does not take into account. + + + + + Sets whether the node ignores notification that its transformation (global or local) changed. + + + + + Sets whether the node uses a scale of (1, 1, 1) or its local transformation scale. Changes to the local transformation scale are preserved. + + + + + Returns whether this node uses a scale of (1, 1, 1) or its local transformation scale. + + + + + Returns the current resource this node is registered to. + + + + + Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. + + + + + Updates all the gizmos attached to this node. + + + + + Attach an editor gizmo to this . + Note: The gizmo object would typically be an instance of EditorNode3DGizmo, but the argument type is kept generic to avoid creating a dependency on editor classes in . + + + + + Returns all the gizmos attached to this . + + + + + Clear all gizmos attached to this . + + + + + Set subgizmo selection for this node in the editor. + Note: The gizmo object would typically be an instance of EditorNode3DGizmo, but the argument type is kept generic to avoid creating a dependency on editor classes in . + + + + + Clears subgizmo selection for this node in the editor. Useful when subgizmo IDs become invalid after a property change. + + + + + Returns if the node is present in the , its property is and all its ancestors are also visible. If any ancestor is hidden, this node will not be visible in the scene tree. + + + + + Enables rendering of this node. Changes to . + + + + + Disables rendering of this node. Changes to . + + + + + Sets whether the node notifies about its local transformation changes. will not propagate this by default. + + + + + Returns whether node notifies about its local transformation changes. will not propagate this by default. + + + + + Sets whether the node notifies about its global and local transformation changes. will not propagate this by default, unless it is in the editor context and it has a valid gizmo. + + + + + Returns whether the node notifies about its global and local transformation changes. will not propagate this by default. + + + + + Rotates the local transformation around axis, a unit , by specified angle in radians. + + + + + Rotates the global (world) transformation around axis, a unit , by specified angle in radians. The rotation axis is in global coordinate system. + + + + + Scales the global (world) transformation by the given scale factors. + + + + + Moves the global (world) transformation by offset. The offset is in global coordinate system. + + + + + Rotates the local transformation around axis, a unit , by specified angle in radians. The rotation axis is in object-local coordinate system. + + + + + Scales the local transformation by given 3D scale factors in object-local coordinate system. + + + + + Changes the node's position by the given offset in local space. + + + + + Rotates the local transformation around the X axis by angle in radians. + + + + + Rotates the local transformation around the Y axis by angle in radians. + + + + + Rotates the local transformation around the Z axis by angle in radians. + + + + + Changes the node's position by the given offset . + Note that the translation is affected by the node's scale, so if scaled by e.g. (10, 1, 1), a translation by an offset of (2, 0, 0) would actually add 20 (2 * 10) to the X coordinate. + + + + + Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's . + + + + + Reset all transformations for this node (sets its to the identity matrix). + + + + + Rotates the node so that the local forward axis (-Z, Vector3.FORWARD) points toward the position. + The local up axis (+Y) points as close to the vector as possible while staying perpendicular to the local forward axis. The resulting transform is orthogonal, and the scale is preserved. Non-uniform scaling may not work correctly. + The position cannot be the same as the node's position, the vector cannot be zero, and the direction from the node's position to the vector cannot be parallel to the vector. + Operations take place in global space, which means that the node must be in the scene tree. + If is , the +Z axis (asset front) is treated as forward (implies +X is left) and points toward the position. By default, the -Z axis (camera forward) is treated as forward (implies +X is right). + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Moves the node to the specified , and then rotates the node to point toward the as per . Operations take place in global space. + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Transforms from world space to this node's local space. + + + + + Transforms from this node's local space to world space. + + + + + Emitted when node visibility changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'global_transform' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'rotation_degrees' property. + + + + + Cached name for the 'quaternion' property. + + + + + Cached name for the 'basis' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'rotation_edit_mode' property. + + + + + Cached name for the 'rotation_order' property. + + + + + Cached name for the 'top_level' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached name for the 'global_basis' property. + + + + + Cached name for the 'global_rotation' property. + + + + + Cached name for the 'global_rotation_degrees' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'visibility_parent' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'set_rotation_degrees' method. + + + + + Cached name for the 'get_rotation_degrees' method. + + + + + Cached name for the 'set_rotation_order' method. + + + + + Cached name for the 'get_rotation_order' method. + + + + + Cached name for the 'set_rotation_edit_mode' method. + + + + + Cached name for the 'get_rotation_edit_mode' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'set_quaternion' method. + + + + + Cached name for the 'get_quaternion' method. + + + + + Cached name for the 'set_basis' method. + + + + + Cached name for the 'get_basis' method. + + + + + Cached name for the 'set_global_transform' method. + + + + + Cached name for the 'get_global_transform' method. + + + + + Cached name for the 'get_global_transform_interpolated' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached name for the 'set_global_basis' method. + + + + + Cached name for the 'get_global_basis' method. + + + + + Cached name for the 'set_global_rotation' method. + + + + + Cached name for the 'get_global_rotation' method. + + + + + Cached name for the 'set_global_rotation_degrees' method. + + + + + Cached name for the 'get_global_rotation_degrees' method. + + + + + Cached name for the 'get_parent_node_3d' method. + + + + + Cached name for the 'set_ignore_transform_notification' method. + + + + + Cached name for the 'set_as_top_level' method. + + + + + Cached name for the 'is_set_as_top_level' method. + + + + + Cached name for the 'set_disable_scale' method. + + + + + Cached name for the 'is_scale_disabled' method. + + + + + Cached name for the 'get_world_3d' method. + + + + + Cached name for the 'force_update_transform' method. + + + + + Cached name for the 'set_visibility_parent' method. + + + + + Cached name for the 'get_visibility_parent' method. + + + + + Cached name for the 'update_gizmos' method. + + + + + Cached name for the 'add_gizmo' method. + + + + + Cached name for the 'get_gizmos' method. + + + + + Cached name for the 'clear_gizmos' method. + + + + + Cached name for the 'set_subgizmo_selection' method. + + + + + Cached name for the 'clear_subgizmo_selection' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'is_visible_in_tree' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'set_notify_local_transform' method. + + + + + Cached name for the 'is_local_transform_notification_enabled' method. + + + + + Cached name for the 'set_notify_transform' method. + + + + + Cached name for the 'is_transform_notification_enabled' method. + + + + + Cached name for the 'rotate' method. + + + + + Cached name for the 'global_rotate' method. + + + + + Cached name for the 'global_scale' method. + + + + + Cached name for the 'global_translate' method. + + + + + Cached name for the 'rotate_object_local' method. + + + + + Cached name for the 'scale_object_local' method. + + + + + Cached name for the 'translate_object_local' method. + + + + + Cached name for the 'rotate_x' method. + + + + + Cached name for the 'rotate_y' method. + + + + + Cached name for the 'rotate_z' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'orthonormalize' method. + + + + + Cached name for the 'set_identity' method. + + + + + Cached name for the 'look_at' method. + + + + + Cached name for the 'look_at_from_position' method. + + + + + Cached name for the 'to_local' method. + + + + + Cached name for the 'to_global' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'visibility_changed' signal. + + + + + is an abstraction for working with modern low-level graphics APIs such as Vulkan. Compared to (which works with Godot's own rendering subsystems), is much lower-level and allows working more directly with the underlying graphics APIs. is used in Godot to provide support for several modern low-level graphics APIs while reducing the amount of code duplication required. can also be used in your own projects to perform things that are not exposed by or high-level nodes, such as using compute shaders. + On startup, Godot creates a global which can be retrieved using . This global performs drawing to the screen. + Local RenderingDevices: Using , you can create "secondary" rendering devices to perform drawing and GPU compute operations on separate threads. + Note: assumes intermediate knowledge of modern graphics APIs such as Vulkan, Direct3D 12, Metal or WebGPU. These graphics APIs are lower-level than OpenGL or Direct3D 11, requiring you to perform what was previously done by the graphics driver itself. If you have difficulty understanding the concepts used in this class, follow the Vulkan Tutorial or Vulkan Guide. It's recommended to have existing modern OpenGL or Direct3D 11 knowledge before attempting to learn a low-level graphics API. + Note: is not available when running in headless mode or when using the Compatibility rendering method. + + + + + + + + Returned by functions that return an ID if a value is invalid. + + + + + Returned by functions that return a format ID if a value is invalid. + + + + + Rendering device type does not match any of the other enum values or is unknown. + + + + + Rendering device is an integrated GPU, which is typically (but not always) slower than dedicated GPUs (). On Android and iOS, the rendering device type is always considered to be . + + + + + Rendering device is a dedicated GPU, which is typically (but not always) faster than integrated GPUs (). + + + + + 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 . Virtual machine GPU passthrough (such as VFIO) will not report the device type as . Instead, the host GPU's device type will be reported as if the GPU was not emulated. + + + + + Rendering device is provided by software emulation (such as Lavapipe or SwiftShader). This is the slowest kind of rendering device available; it's typically much slower than . + + + + + Represents the size of the enum. + + + + + Specific device object based on a physical device. + - Vulkan: Vulkan device driver resource (VkDevice). (rid argument doesn't apply.) + + + + + Physical device the specific logical device is based on. + - Vulkan: VkDevice. (rid argument doesn't apply.) + + + + + Top-most graphics API entry object. + - Vulkan: VkInstance. (rid argument doesn't apply.) + + + + + The main graphics-compute command queue. + - Vulkan: VkQueue. (rid argument doesn't apply.) + + + + + The specific family the main queue belongs to. + - Vulkan: the queue family index, an uint32_t. (rid argument doesn't apply.) + + + + + - Vulkan: VkImage. + + + + + The view of an owned or shared texture. + - Vulkan: VkImageView. + + + + + The native id of the data format of the texture. + - Vulkan: VkFormat. + + + + + - Vulkan: VkSampler. + + + + + - Vulkan: VkDescriptorSet. + + + + + Buffer of any kind of (storage, vertex, etc.). + - Vulkan: VkBuffer. + + + + + - Vulkan: VkPipeline. + + + + + - Vulkan: VkPipeline. + + + + + 4-bit-per-channel red/green channel data format, packed into 8 bits. Values are in the [0.0, 1.0] range. + Note: More information on all data formats can be found on the Identification of formats section of the Vulkan specification, as well as the VkFormat enum. + + + + + 4-bit-per-channel red/green/blue/alpha channel data format, packed into 16 bits. Values are in the [0.0, 1.0] range. + + + + + 4-bit-per-channel blue/green/red/alpha channel data format, packed into 16 bits. Values are in the [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red channel data format. Values are in the [-127, 127] range. + + + + + 8-bit-per-channel unsigned floating-point red channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red/green channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red/green channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red/green channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red/green channel data format. Values are in the [-127, 127] range. + + + + + 8-bit-per-channel unsigned floating-point red/green channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red/green/blue channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red/green/blue channel data format. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point blue/green/red channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer blue/green/red channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer blue/green/red channel data format. Values are in the [-127, 127] range. + + + + + 8-bit-per-channel unsigned floating-point blue/green/red data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point blue/green/red/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point blue/green/red/alpha channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer blue/green/red/alpha channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer blue/green/red/alpha channel data format. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer alpha/red/green/blue channel data format, packed in 32 bits. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer alpha/red/green/blue channel data format, packed in 32 bits. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [-1.0, 1.0] range. + + + + + 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 [0.0, 1023.0] range for red/green/blue and [0.0, 3.0] for alpha. + + + + + 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 [-511.0, 511.0] range for red/green/blue and [-1.0, 1.0] for alpha. + + + + + 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 [0, 1023] range for red/green/blue and [0, 3] for alpha. + + + + + 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 [-511, 511] range for red/green/blue and [-1, 1] for alpha. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [-1.0, 1.0] range. + + + + + 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 [0.0, 1023.0] range for blue/green/red and [0.0, 3.0] for alpha. + + + + + 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 [-511.0, 511.0] range for blue/green/red and [-1.0, 1.0] for alpha. + + + + + 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 [0, 1023] range for blue/green/red and [0, 3] for alpha. + + + + + 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 [-511, 511] range for blue/green/red and [-1, 1] for alpha. + + + + + 16-bit-per-channel unsigned floating-point red channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red channel data format with the value stored as-is. + + + + + 16-bit-per-channel unsigned floating-point red/green channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red/green channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red/green channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red/green channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red/green channel data format with the value stored as-is. + + + + + 16-bit-per-channel unsigned floating-point red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red/green/blue channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is. + + + + + 16-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red/green channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red/green channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red/green channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red/green/blue channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red/green channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red/green channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red/green channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red/green/blue channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is. + + + + + 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. + + + + + 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. + + + + + 16-bit unsigned floating-point depth data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 32-bit signed floating-point depth data format with the value stored as-is. + + + + + 8-bit unsigned integer stencil data format. + + + + + 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 [0.0, 1.0] range. Values for stencil are in the [0, 255] range. + + + + + 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 [0.0, 1.0] range. Values for stencil are in the [0, 255] range. + + + + + 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 [0, 255] range. + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red channel data format with normalized value. Values are in the [0.0, 1.0] range. The format's precision is 8 bits of red channel. Using BC4 texture compression. + + + + + VRAM-compressed signed red channel data format with normalized value. Values are in the [-1.0, 1.0] range. The format's precision is 8 bits of red channel. Using BC4 texture compression. + + + + + VRAM-compressed unsigned red/green channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed signed red/green channel data format with normalized value. Values are in the [-1.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue channel data format with the floating-point value stored as-is. The format's precision is between 10 and 13 bits for the red/green/blue channels. Using BC6H texture compression (also known as BPTC HDR). + + + + + VRAM-compressed signed red/green/blue channel data format with the floating-point value stored as-is. The format's precision is between 10 and 13 bits for the red/green/blue channels. Using BC6H texture compression (also known as BPTC HDR). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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. + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bit of precision each, with alpha using 1 bit of precision. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bit of precision each, with alpha using 1 bit of precision. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bits of precision each, with alpha using 8 bits of precision. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bits of precision each, with alpha using 8 bits of precision. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed unsigned red channel data format with normalized value. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed signed red channel data format with normalized value. Values are in the [-1.0, 1.0] range. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed unsigned red/green channel data format with normalized value. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed signed red/green channel data format with normalized value. Values are in the [-1.0, 1.0] range. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 4×4 blocks (highest quality). Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + 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 [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 5×4 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 5×4 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 5×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 5×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 6×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 6×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 6×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 6×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 12×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 12×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 12 blocks (lowest quality). Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + 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 [0.0, 1.0] range. Using ASTC compression. + + + + + 8-bit-per-channel unsigned floating-point green/blue/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 8-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 3 separate planes. Values are in the [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] range. + + + + + 16-bit-per-channel unsigned floating-point green/blue/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 16-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] range. + + + + + Represents the size of the enum. + + + + + Vertex shader barrier mask. + + + + + Fragment shader barrier mask. + + + + + Compute barrier mask. + + + + + Transfer barrier mask. + + + + + Raster barrier mask (vertex and fragment). Equivalent to BARRIER_MASK_VERTEX | BARRIER_MASK_FRAGMENT. + + + + + Barrier mask for all types (vertex, fragment, compute, transfer). + + + + + No barrier for any type. + + + + + 1-dimensional texture. + + + + + 2-dimensional texture. + + + + + 3-dimensional texture. + + + + + texture. + + + + + Array of 1-dimensional textures. + + + + + Array of 2-dimensional textures. + + + + + Array of textures. + + + + + Represents the size of the enum. + + + + + Perform 1 texture sample (this is the fastest but lowest-quality for antialiasing). + + + + + Perform 2 texture samples. + + + + + Perform 4 texture samples. + + + + + Perform 8 texture samples. Not supported on mobile GPUs (including Apple Silicon). + + + + + Perform 16 texture samples. Not supported on mobile GPUs and many desktop GPUs. + + + + + Perform 32 texture samples. Not supported on most GPUs. + + + + + Perform 64 texture samples (this is the slowest but highest-quality for antialiasing). Not supported on most GPUs. + + + + + Represents the size of the enum. + + + + + Texture can be sampled. + + + + + Texture can be used as a color attachment in a framebuffer. + + + + + Texture can be used as a depth/stencil attachment in a framebuffer. + + + + + Texture can be used as a storage image. + + + + + Texture can be used as a storage image with support for atomic operations. + + + + + Texture can be read back on the CPU using faster than without this bit, since it is always kept in the system memory. + + + + + Texture can be updated using . + + + + + Texture can be a source for . + + + + + Texture can be a destination for . + + + + + Texture can be used as a input attachment in a framebuffer. + + + + + Return the sampled value as-is. + + + + + Always return 0.0 when sampling. + + + + + Always return 1.0 when sampling. + + + + + Sample the red color channel. + + + + + Sample the green color channel. + + + + + Sample the blue color channel. + + + + + Sample the alpha channel. + + + + + Represents the size of the enum. + + + + + 2-dimensional texture slice. + + + + + Cubemap texture slice. + + + + + 3-dimensional texture slice. + + + + + Nearest-neighbor sampler filtering. Sampling at higher resolutions than the source will result in a pixelated look. + + + + + Bilinear sampler filtering. Sampling at higher resolutions than the source will result in a blurry look. + + + + + Sample with repeating enabled. + + + + + Sample with mirrored repeating enabled. When sampling outside the [0.0, 1.0] range, return a mirrored version of the sampler. This mirrored version is mirrored again if sampling further away, with the pattern repeating indefinitely. + + + + + Sample with repeating disabled. When sampling outside the [0.0, 1.0] range, return the color of the last pixel on the edge. + + + + + Sample with repeating disabled. When sampling outside the [0.0, 1.0] range, return the specified . + + + + + Sample with mirrored repeating enabled, but only once. When sampling in the [-1.0, 0.0] range, return a mirrored version of the sampler. When sampling outside the [-1.0, 1.0] range, return the color of the last pixel on the edge. + + + + + Represents the size of the enum. + + + + + Return a floating-point transparent black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a integer transparent black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a floating-point opaque black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a integer opaque black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a floating-point opaque white color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a integer opaque white color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Represents the size of the enum. + + + + + Vertex attribute addressing is a function of the vertex. This is used to specify the rate at which vertex attributes are pulled from buffers. + + + + + 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. + + + + + Index buffer in 16-bit unsigned integer format. This limits the maximum index that can be specified to 65535. + + + + + Index buffer in 32-bit unsigned integer format. This limits the maximum index that can be specified to 4294967295. + + + + + Sampler uniform. + + + + + Sampler uniform with a texture. + + + + + Texture uniform. + + + + + Image uniform. + + + + + Texture buffer uniform. + + + + + Sampler uniform with a texture buffer. + + + + + Image buffer uniform. + + + + + Uniform buffer uniform. + + + + + Storage buffer uniform. + + + + + Input attachment uniform. + + + + + Represents the size of the enum. + + + + + Point rendering primitive (with constant size, regardless of distance from camera). + + + + + Line list rendering primitive. Lines are drawn separated from each other. + + + + + Line list rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Line strip rendering primitive. Lines drawn are connected to the previous vertex. + + + + + Line strip rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Triangle list rendering primitive. Triangles are drawn separated from each other. + + + + + Triangle list rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Triangle strip rendering primitive. Triangles drawn are connected to the previous triangle. + + + + + Triangle strip rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Triangle strip rendering primitive with primitive restart 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. + Note: Only compatible with indexed draws. + + + + + Tessellation patch rendering primitive. Only useful with tessellation shaders, which can be used to deform these patches. + + + + + Represents the size of the enum. + + + + + Do not use polygon front face or backface culling. + + + + + Use polygon frontface culling (faces pointing towards the camera are hidden). + + + + + Use polygon backface culling (faces pointing away from the camera are hidden). + + + + + Clockwise winding order to determine which face of a polygon is its front face. + + + + + Counter-clockwise winding order to determine which face of a polygon is its front face. + + + + + Keep the current stencil value. + + + + + Set the stencil value to 0. + + + + + Replace the existing stencil value with the new one. + + + + + Increment the existing stencil value and clamp to the maximum representable unsigned value if reached. Stencil bits are considered as an unsigned integer. + + + + + Decrement the existing stencil value and clamp to the minimum value if reached. Stencil bits are considered as an unsigned integer. + + + + + Bitwise-invert the existing stencil value. + + + + + Increment the stencil value and wrap around to 0 if reaching the maximum representable unsigned. Stencil bits are considered as an unsigned integer. + + + + + Decrement the stencil value and wrap around to the maximum representable unsigned if reaching the minimum. Stencil bits are considered as an unsigned integer. + + + + + Represents the size of the enum. + + + + + "Never" comparison (opposite of ). + + + + + "Less than" comparison. + + + + + "Equal" comparison. + + + + + "Less than or equal" comparison. + + + + + "Greater than" comparison. + + + + + "Not equal" comparison. + + + + + "Greater than or equal" comparison. + + + + + "Always" comparison (opposite of ). + + + + + Represents the size of the enum. + + + + + Clear logic operation (result is always 0). See also . + + + + + AND logic operation. + + + + + AND logic operation with the destination operand being inverted. See also . + + + + + Copy logic operation (keeps the source value as-is). See also and . + + + + + AND logic operation with the source operand being inverted. See also . + + + + + No-op logic operation (keeps the destination value as-is). See also . + + + + + Exclusive or (XOR) logic operation. + + + + + OR logic operation. + + + + + Not-OR (NOR) logic operation. + + + + + Not-XOR (XNOR) logic operation. + + + + + Invert logic operation. + + + + + OR logic operation with the destination operand being inverted. See also . + + + + + NOT logic operation (inverts the value). See also . + + + + + OR logic operation with the source operand being inverted. See also . + + + + + Not-AND (NAND) logic operation. + + + + + SET logic operation (result is always 1). See also . + + + + + Represents the size of the enum. + + + + + Constant 0.0 blend factor. + + + + + Constant 1.0 blend factor. + + + + + Color blend factor is source color. Alpha blend factor is source alpha. + + + + + Color blend factor is 1.0 - source color. Alpha blend factor is 1.0 - source alpha. + + + + + Color blend factor is destination color. Alpha blend factor is destination alpha. + + + + + Color blend factor is 1.0 - destination color. Alpha blend factor is 1.0 - destination alpha. + + + + + Color and alpha blend factor is source alpha. + + + + + Color and alpha blend factor is 1.0 - source alpha. + + + + + Color and alpha blend factor is destination alpha. + + + + + Color and alpha blend factor is 1.0 - destination alpha. + + + + + Color blend factor is blend constant color. Alpha blend factor is blend constant alpha (see ). + + + + + Color blend factor is 1.0 - blend constant color. Alpha blend factor is 1.0 - blend constant alpha (see ). + + + + + Color and alpha blend factor is blend constant alpha (see ). + + + + + Color and alpha blend factor is 1.0 - blend constant alpha (see ). + + + + + Color blend factor is min(source alpha, 1.0 - destination alpha). Alpha blend factor is 1.0. + + + + + Color blend factor is second source color. Alpha blend factor is second source alpha. Only relevant for dual-source blending. + + + + + Color blend factor is 1.0 - second source color. Alpha blend factor is 1.0 - second source alpha. Only relevant for dual-source blending. + + + + + Color and alpha blend factor is second source alpha. Only relevant for dual-source blending. + + + + + Color and alpha blend factor is 1.0 - second source alpha. Only relevant for dual-source blending. + + + + + Represents the size of the enum. + + + + + Additive blending operation (source + destination). + + + + + Subtractive blending operation (source - destination). + + + + + Reverse subtractive blending operation (destination - source). + + + + + Minimum blending operation (keep the lowest value of the two). + + + + + Maximum blending operation (keep the highest value of the two). + + + + + Represents the size of the enum. + + + + + Allows dynamically changing the width of rendering lines. + + + + + Allows dynamically changing the depth bias. + + + + + Load the previous contents of the framebuffer. + + + + + Clear the whole framebuffer or its specified region. + + + + + Ignore the previous contents of the framebuffer. This is the fastest option if you'll overwrite all of the pixels and don't need to read any of them. + + + + + Represents the size of the enum. + + + + + Store the result of the draw list in the framebuffer. This is generally what you want to do. + + + + + Discard the contents of the framebuffer. This is the fastest option if you don't need to use the results of the draw list. + + + + + Represents the size of the enum. + + + + + Vertex shader stage. This can be used to manipulate vertices from a shader (but not create new vertices). + + + + + Fragment shader stage (called "pixel shader" in Direct3D). This can be used to manipulate pixels from a shader. + + + + + Tessellation control shader stage. This can be used to create additional geometry from a shader. + + + + + Tessellation evaluation shader stage. This can be used to create additional geometry from a shader. + + + + + Compute shader stage. This can be used to run arbitrary computing tasks in a shader, performing them on the GPU instead of the CPU. + + + + + Represents the size of the enum. + + + + + Vertex shader stage bit (see also ). + + + + + Fragment shader stage bit (see also ). + + + + + Tessellation control shader stage bit (see also ). + + + + + Tessellation evaluation shader stage bit (see also ). + + + + + Compute shader stage bit (see also ). + + + + + Khronos' GLSL shading language (used natively by OpenGL and Vulkan). This is the language used for core Godot shaders. + + + + + Microsoft's High-Level Shading Language (used natively by Direct3D, but can also be used in Vulkan). + + + + + Boolean specialization constant. + + + + + Integer specialization constant. + + + + + Floating-point specialization constant. + + + + + Maximum number of uniform sets that can be bound at a given time. + + + + + Maximum number of color framebuffer attachments that can be used at a given time. + + + + + Maximum number of textures that can be used per uniform set. + + + + + Maximum number of samplers that can be used per uniform set. + + + + + Maximum number of storage buffers per uniform set. + + + + + Maximum number of storage images per uniform set. + + + + + Maximum number of uniform buffers per uniform set. + + + + + Maximum index for an indexed draw command. + + + + + Maximum height of a framebuffer (in pixels). + + + + + Maximum width of a framebuffer (in pixels). + + + + + Maximum number of texture array layers. + + + + + Maximum supported 1-dimensional texture size (in pixels on a single axis). + + + + + Maximum supported 2-dimensional texture size (in pixels on a single axis). + + + + + Maximum supported 3-dimensional texture size (in pixels on a single axis). + + + + + Maximum supported cubemap texture size (in pixels on a single axis of a single face). + + + + + Maximum number of textures per shader stage. + + + + + Maximum number of samplers per shader stage. + + + + + Maximum number of storage buffers per shader stage. + + + + + Maximum number of storage images per shader stage. + + + + + Maximum number of uniform buffers per uniform set. + + + + + 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. + + + + + Maximum size of a uniform buffer. + + + + + Maximum vertex input attribute offset. + + + + + Maximum number of vertex input attributes. + + + + + Maximum number of vertex input bindings. + + + + + Maximum vertex input binding stride. + + + + + Minimum uniform buffer offset alignment. + + + + + Maximum shared memory size for compute shaders. + + + + + Maximum number of workgroups for compute shaders on the X axis. + + + + + Maximum number of workgroups for compute shaders on the Y axis. + + + + + Maximum number of workgroups for compute shaders on the Z axis. + + + + + Maximum number of workgroup invocations for compute shaders. + + + + + Maximum workgroup size for compute shaders on the X axis. + + + + + Maximum workgroup size for compute shaders on the Y axis. + + + + + Maximum workgroup size for compute shaders on the Z axis. + + + + + Maximum viewport width (in pixels). + + + + + Maximum viewport height (in pixels). + + + + + Memory taken by textures. + + + + + Memory taken by buffers. + + + + + Total memory taken. This is greater than the sum of and , as it also includes miscellaneous memory usage. + + + + + Do not clear or ignore any attachments. + + + + + Clear the first color attachment. + + + + + Clear the second color attachment. + + + + + Clear the third color attachment. + + + + + Clear the fourth color attachment. + + + + + Clear the fifth color attachment. + + + + + Clear the sixth color attachment. + + + + + Clear the seventh color attachment. + + + + + Clear the eighth color attachment. + + + + + Mask for clearing all color attachments. + + + + + Clear all color attachments. + + + + + Ignore the previous contents of the first color attachment. + + + + + Ignore the previous contents of the second color attachment. + + + + + Ignore the previous contents of the third color attachment. + + + + + Ignore the previous contents of the fourth color attachment. + + + + + Ignore the previous contents of the fifth color attachment. + + + + + Ignore the previous contents of the sixth color attachment. + + + + + Ignore the previous contents of the seventh color attachment. + + + + + Ignore the previous contents of the eighth color attachment. + + + + + Mask for ignoring all the previous contents of the color attachments. + + + + + Ignore the previous contents of all color attachments. + + + + + Clear the depth attachment. + + + + + Ignore the previous contents of the depth attachment. + + + + + Clear the stencil attachment. + + + + + Ignore the previous contents of the stencil attachment. + + + + + Clear all attachments. + + + + + Ignore the previous contents of all attachments. + + + + + Creates a new texture. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + Note: Not to be confused with , which creates the Godot-specific resource as opposed to the graphics API's own texture type. + + + + + Creates a shared texture using the specified and the texture information from . + + + + + Creates a shared texture using the specified and the texture information from 's and . The number of included mipmaps from the original texture can be controlled using the parameter. Only relevant for textures with multiple layers, such as 3D textures, texture arrays and cubemaps. For single-layer textures, use . + For 2D textures (which only have one layer), must be 0. + Note: Layer slicing is only supported for 2D texture arrays, not 3D textures or cubemaps. + + + + + Returns an RID for an existing (VkImage) with the given , , , , , , , and . This can be used to allow Godot to render onto foreign images. + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Returns the data for the specified as raw binary data. For 2D textures (which only have one layer), must be 0. + Note: can't be retrieved while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to retrieve this texture. Otherwise, an error is printed and a empty [] is returned. + Note: requires the to be retrieved. Otherwise, an error is printed and a empty [] is returned. + Note: This method will block the GPU from working until the data is retrieved. Refer to for an alternative that returns the data in more performant way. + + + + + Asynchronous version of . RenderingDevice will call in a certain amount of frames with the data the texture had at the time of the request. + Note: At the moment, the delay corresponds to the amount of frames specified by ProjectSettings.rendering/rendering_device/vsync/frame_queue_size. + Note: Downloading large textures can have a prohibitive cost for real-time even when using the asynchronous method due to hardware bandwidth limitations. When dealing with large resources, you can adjust settings such as ProjectSettings.rendering/rendering_device/staging_buffer/texture_download_region_size_px and ProjectSettings.rendering/rendering_device/staging_buffer/block_size_kb to improve the transfer speed at the cost of extra memory. + + func _texture_get_data_callback(array): + value = array.decode_u32(0) + + ... + + rd.texture_get_data_async(texture, 0, _texture_get_data_callback) + + + + + + Returns if the specified is supported for the given , otherwise. + + + + + Returns if the is shared, otherwise. See . + + + + + Returns if the is valid, otherwise. + + + + + Updates the discardable property of . + If a texture is discardable, its contents do not need to be preserved between frames. This flag is only relevant when the texture is used as target in a draw list. + This information is used by to figure out if a texture's contents can be discarded, eliminating unnecessary writes to memory and boosting performance. + + + + + Returns if the is discardable, otherwise. See or . + + + + + Copies the to with the specified , and coordinates. The Z axis of the , and must be 0 for 2-dimensional textures. Source and destination mipmaps/layers must also be specified, with these parameters being 0 for textures without mipmaps or single-layer textures. Returns if the texture copy was successful or otherwise. + Note: texture can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: texture requires the to be retrieved. + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: requires the to be retrieved. + Note: and must be of the same type (color or depth). + + + + + Clears the specified by replacing all of its pixels with the specified . and determine which mipmaps of the texture are affected by this clear operation, while and determine which layers of a 3D texture (or texture array) are affected by this clear operation. For 2D textures (which only have one layer by design), must be 0 and must be 1. + Note: can't be cleared while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to clear this texture. + + + + + Resolves the texture onto with multisample antialiasing enabled. This must be used when rendering a framebuffer for MSAA to work. Returns if successful, otherwise. + Note: and textures must have the same dimension, format and type (color or depth). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: requires the to be retrieved. + Note: must be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: texture requires the to be retrieved. + Note: texture must not be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + + + + + Returns the data format used to create this texture. + + + + + Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension. + Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan). + + + + + Creates a new framebuffer format with the specified and . Returns the new framebuffer's unique framebuffer format ID. + If is greater than or equal to 2, enables multiview which is used for VR rendering. This requires support for the Vulkan multiview extension. + + + + + Creates a multipass framebuffer format with the specified , and and returns its ID. If is greater than or equal to 2, enables multiview which is used for VR rendering. This requires support for the Vulkan multiview extension. + + + + + Creates a new empty framebuffer format with the specified number of and returns its ID. + + + + + Returns the number of texture samples used for the given framebuffer ID (returned by ). + + + + + Creates a new framebuffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new multipass framebuffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new empty framebuffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns the format ID of the framebuffer specified by the RID. This ID is guaranteed to be unique for the same formats and does not need to be freed. + + + + + Returns if the framebuffer specified by the RID is valid, otherwise. + + + + + Creates a new sampler. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns if implementation supports using a texture of with the given . + + + + + It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new vertex format with the specified . Returns a unique vertex format ID corresponding to the newly created vertex format. + + + + + Creates a vertex array based on the specified buffers. Optionally, (in bytes) may be defined for each buffer. + + If the parameter is null, then the default value is Array.Empty<long>(). + + + + Creates a vertex array based on the specified buffers. Optionally, (in bytes) may be defined for each buffer. + + + + + Creates a new index buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new index buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new index array. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Compiles a SPIR-V from the shader source code in and returns the SPIR-V as a . This intermediate language shader is portable across different GPU models and driver versions, but cannot be run directly by GPUs until compiled into a binary shader using . + If is , make use of the shader cache generated by Godot. This avoids a potentially lengthy shader compilation step if the shader is already in cache. If is , Godot's shader cache is ignored and the shader will always be recompiled. + + + + + Compiles a binary shader from and returns the compiled binary data as a []. This compiled shader is specific to the GPU model and driver version used; it will not work on different GPU models or even different driver versions. See also . + is an optional human-readable name that can be given to the compiled shader for organizational purposes. + + + + + Creates a new shader instance from SPIR-V intermediate code. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Create a placeholder RID by allocating an RID without initializing it for use in . This allows you to create an RID for a shader and pass it around, but defer compiling the shader to a later time. + + + + + Returns the internal vertex input mask. Internally, the vertex input mask is an unsigned integer consisting of the locations (specified in GLSL via. layout(location = ...)) of the input variables (specified in GLSL by the in keyword). + + + + + Creates a new uniform buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new uniform buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a storage buffer with the specified and . It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a storage buffer with the specified and . It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new texture buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new texture buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new uniform set. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Checks if the is valid, i.e. is owned. + + + + + Copies bytes from the at into at . + Prints an error if: + - exceeds the size of either or at their corresponding offsets + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Clears the contents of the , clearing bytes, starting at . + Prints an error if: + - the size isn't a multiple of four + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Returns a copy of the data of the specified , optionally and can be set to copy only a portion of the buffer. + Note: This method will block the GPU from working until the data is retrieved. Refer to for an alternative that returns the data in more performant way. + + + + + Asynchronous version of . RenderingDevice will call in a certain amount of frames with the data the buffer had at the time of the request. + Note: At the moment, the delay corresponds to the amount of frames specified by ProjectSettings.rendering/rendering_device/vsync/frame_queue_size. + Note: Downloading large buffers can have a prohibitive cost for real-time even when using the asynchronous method due to hardware bandwidth limitations. When dealing with large resources, you can adjust settings such as ProjectSettings.rendering/rendering_device/staging_buffer/block_size_kb to improve the transfer speed at the cost of extra memory. + + func _buffer_get_data_callback(array): + value = array.decode_u32(0) + + ... + + rd.buffer_get_data_async(buffer, _buffer_get_data_callback) + + + + + + Creates a new render pipeline. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns if the render pipeline specified by the RID is valid, otherwise. + + + + + Creates a new compute pipeline. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns if the compute pipeline specified by the RID is valid, otherwise. + + + + + Returns the window width matching the graphics API context for the given window ID (in pixels). Despite the parameter being named , this returns the window size. See also . + Note: Only the main returned by has a width. If called on a local , this method prints an error and returns . + + + + + Returns the window height matching the graphics API context for the given window ID (in pixels). Despite the parameter being named , this returns the window size. See also . + Note: Only the main returned by has a height. If called on a local , this method prints an error and returns . + + + + + Returns the framebuffer format of the given screen. + Note: Only the main returned by has a format. If called on a local , this method prints an error and returns . + + + + + High-level variant of , with the parameters automatically being adjusted for drawing onto the window specified by the ID. + Note: Cannot be used with local RenderingDevices, as these don't have a screen. If called on a local RenderingDevice, returns . + + If the parameter is null, then the default value is new Color(0.0f, 0.0f, 0.0f, 1.0f). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + This method does nothing and always returns an empty []. + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + This method does nothing and always returns an empty []. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Sets blend constants for the specified to . Blend constants are used only if the graphics pipeline is created with flag set. + + + + + Binds to the specified . + + + + + Binds to the specified . A must also be specified, which is an identifier starting from 0 that must match the one expected by the draw list. + + + + + Binds to the specified . + + + + + Binds to the specified . + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Submits for rendering on the GPU. This is the raster equivalent to . + + + + + Submits for rendering on the GPU with the given parameters stored in the at . Parameters being integers: vertex count, instance count, first vertex, first instance. And when using indices: index count, instance count, first index, vertex offset, first instance. Buffer must have been created with flag. + + + + + Creates a scissor rectangle and enables it for the specified . Scissor rectangles are used for clipping by discarding fragments that fall outside a specified rectangular portion of the screen. See also . + Note: The specified is automatically intersected with the screen's dimensions, which means it cannot exceed the screen's dimensions. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Removes and disables the scissor rectangle for the specified . See also . + + + + + Switches to the next draw pass. + + + + + This method does nothing and always returns an empty []. + + + + + Finishes a list of raster drawing commands created with the draw_* methods. + + + + + Starts a list of compute commands created with the compute_* methods. The returned value should be passed to other compute_list_* functions. + Multiple compute lists cannot be created at the same time; you must finish the previous compute list first using . + A simple compute operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var compute_list = rd.compute_list_begin() + + rd.compute_list_bind_compute_pipeline(compute_list, compute_shader_dilate_pipeline) + rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1) + + for i in atlas_slices: + rd.compute_list_set_push_constant(compute_list, push_constant, push_constant.size()) + rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, group_size.z) + # No barrier, let them run all together. + + rd.compute_list_end() + + + + + + Tells the GPU what compute pipeline to use when processing the compute list. If the shader has changed since the last time this function was called, Godot will unbind all descriptor sets and will re-bind them inside . + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Binds the to this . Godot ensures that all textures in the uniform set have the correct Vulkan access masks. If Godot had to change access masks of textures, it will raise a Vulkan image memory barrier. + + + + + Submits the compute list for processing on the GPU. This is the compute equivalent to . + + + + + Submits the compute list for processing on the GPU with the given group counts stored in the at . Buffer must have been created with flag. + + + + + Raises a Vulkan compute barrier in the specified . + + + + + Finishes a list of compute commands created with the compute_* methods. + + + + + Tries to free an object in the RenderingDevice. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingDevice directly. + + + + + Creates a timestamp marker with the specified . This is used for performance reporting with the , and methods. + + + + + Returns the total number of timestamps (rendering steps) available for profiling. + + + + + Returns the index of the last frame rendered that has rendering timestamps available for querying. + + + + + Returns the timestamp in GPU time for the rendering step specified by (in microseconds since the engine started). See also and . + + + + + Returns the timestamp in CPU time for the rendering step specified by (in microseconds since the engine started). See also and . + + + + + Returns the timestamp's name for the rendering step specified by . See also . + + + + + Returns the value of the specified . This limit varies depending on the current graphics hardware (and sometimes the driver version). If the given limit is exceeded, rendering errors will occur. + Limits for various graphics hardware can be found in the Vulkan Hardware Database. + + + + + Returns the frame count kept by the graphics API. Higher values result in higher input lag, but with more consistent throughput. For the main , frames are cycled (usually 3 with triple-buffered V-Sync enabled). However, local s only have 1 frame. + + + + + Pushes the frame setup and draw command buffers then marks the local device as currently processing (which allows calling ). + Note: Only available in local RenderingDevices. + + + + + Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost. + Note: Only available in local RenderingDevices. + Note: can only be called after a . + + + + + This method does nothing. + + + + + This method does nothing. + + + + + Create a new local . This is most useful for performing compute operations on the GPU independently from the rest of the engine. + + + + + Sets the resource name for to . This is used for debugging with third-party tools such as RenderDoc. + The following types of resources can be named: texture, sampler, vertex buffer, index buffer, uniform buffer, texture buffer, storage buffer, uniform set buffer, shader, render pipeline and compute pipeline. Framebuffers cannot be named. Attempting to name an incompatible resource type will print an error. + Note: Resource names are only set when the engine runs in verbose mode ( = ), or when using an engine build compiled with the dev_mode=yes SCons option. The graphics driver must also support the VK_EXT_DEBUG_UTILS_EXTENSION_NAME Vulkan extension for named resources to work. + + + + + Create a command buffer debug label region that can be displayed in third-party tools such as RenderDoc. All regions must be ended with a call. When viewed from the linear series of submissions to a single queue, calls to and must be matched and balanced. + The VK_EXT_DEBUG_UTILS_EXTENSION_NAME Vulkan extension must be available and enabled for command buffer debug label region to work. See also . + + + + + This method does nothing. + + + + + Ends the command buffer debug label region started by a call. + + + + + Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). Equivalent to . See also . + + + + + Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2"). Equivalent to . See also . + + + + + Returns the universally unique identifier for the pipeline cache. This is used to cache shader files on disk, which avoids shader recompilations on subsequent engine runs. This UUID varies depending on the graphics card model, but also the driver version. Therefore, updating graphics drivers will invalidate the shader cache. + + + + + Returns the memory usage in bytes corresponding to the given . When using Vulkan, these statistics are calculated by Vulkan Memory Allocator. + + + + + Returns the unique identifier of the driver for the specified . Some driver resource types ignore the specified (see descriptions). is always ignored but must be specified anyway. + + + + + Returns a string with a performance report from the past frame. Updates every frame. + + + + + Returns string report in CSV format using the following methods: + - + - + - + - + - + - + - + - + - + - + This is only used by Vulkan in debug builds. Godot must also be started with the --extra-gpu-memory-tracking command line argument. + + + + + Returns the name of the type of object for the given . This value must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns the same string. + The return value is important because it gives meaning to the types passed to , , , and . Examples of strings it can return (not exhaustive): + - DEVICE_MEMORY + - PIPELINE_CACHE + - SWAPCHAIN_KHR + - COMMAND_POOL + Thus if e.g. get_tracked_object_name(5) returns "COMMAND_POOL", then get_device_memory_by_object_type(5) returns the bytes used by the GPU for command pools. + This is only used by Vulkan in debug builds. Godot must also be started with the --extra-gpu-memory-tracking command line argument. + + + + + Returns how many types of trackable objects are. + This is only used by Vulkan in debug builds. Godot must also be started with the --extra-gpu-memory-tracking command line argument. + + + + + Returns how much bytes the GPU driver is using for internal driver structures. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Returns how many allocations the GPU driver has performed for internal driver structures. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Returns how much bytes the GPU is using. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Returns how many allocations the GPU has performed for internal driver structures. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Returns the framebuffer format of the given screen. + Note: Only the main returned by has a format. If called on a local , this method prints an error and returns . + + + + + Resolves the texture onto with multisample antialiasing enabled. This must be used when rendering a framebuffer for MSAA to work. Returns if successful, otherwise. + Note: and textures must have the same dimension, format and type (color or depth). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: requires the to be retrieved. + Note: must be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: texture requires the to be retrieved. + Note: texture must not be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + + + + + Clears the specified by replacing all of its pixels with the specified . and determine which mipmaps of the texture are affected by this clear operation, while and determine which layers of a 3D texture (or texture array) are affected by this clear operation. For 2D textures (which only have one layer by design), must be 0 and must be 1. + Note: can't be cleared while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to clear this texture. + + + + + Copies the to with the specified , and coordinates. The Z axis of the , and must be 0 for 2-dimensional textures. Source and destination mipmaps/layers must also be specified, with these parameters being 0 for textures without mipmaps or single-layer textures. Returns if the texture copy was successful or otherwise. + Note: texture can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: texture requires the to be retrieved. + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: requires the to be retrieved. + Note: and must be of the same type (color or depth). + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Clears the contents of the , clearing bytes, starting at . + Prints an error if: + - the size isn't a multiple of four + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Starts a list of compute commands created with the compute_* methods. The returned value should be passed to other compute_list_* functions. + Multiple compute lists cannot be created at the same time; you must finish the previous compute list first using . + A simple compute operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var compute_list = rd.compute_list_begin() + + rd.compute_list_bind_compute_pipeline(compute_list, compute_shader_dilate_pipeline) + rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1) + + for i in atlas_slices: + rd.compute_list_set_push_constant(compute_list, push_constant, push_constant.size()) + rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, group_size.z) + # No barrier, let them run all together. + + rd.compute_list_end() + + + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Finishes a list of compute commands created with the compute_* methods. + + + + + Finishes a list of raster drawing commands created with the draw_* methods. + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'texture_create' method. + + + + + Cached name for the 'texture_create_shared' method. + + + + + Cached name for the 'texture_create_shared_from_slice' method. + + + + + Cached name for the 'texture_create_from_extension' method. + + + + + Cached name for the 'texture_update' method. + + + + + Cached name for the 'texture_get_data' method. + + + + + Cached name for the 'texture_get_data_async' method. + + + + + Cached name for the 'texture_is_format_supported_for_usage' method. + + + + + Cached name for the 'texture_is_shared' method. + + + + + Cached name for the 'texture_is_valid' method. + + + + + Cached name for the 'texture_set_discardable' method. + + + + + Cached name for the 'texture_is_discardable' method. + + + + + Cached name for the 'texture_copy' method. + + + + + Cached name for the 'texture_clear' method. + + + + + Cached name for the 'texture_resolve_multisample' method. + + + + + Cached name for the 'texture_get_format' method. + + + + + Cached name for the 'texture_get_native_handle' method. + + + + + Cached name for the 'framebuffer_format_create' method. + + + + + Cached name for the 'framebuffer_format_create_multipass' method. + + + + + Cached name for the 'framebuffer_format_create_empty' method. + + + + + Cached name for the 'framebuffer_format_get_texture_samples' method. + + + + + Cached name for the 'framebuffer_create' method. + + + + + Cached name for the 'framebuffer_create_multipass' method. + + + + + Cached name for the 'framebuffer_create_empty' method. + + + + + Cached name for the 'framebuffer_get_format' method. + + + + + Cached name for the 'framebuffer_is_valid' method. + + + + + Cached name for the 'sampler_create' method. + + + + + Cached name for the 'sampler_is_format_supported_for_filter' method. + + + + + Cached name for the 'vertex_buffer_create' method. + + + + + Cached name for the 'vertex_format_create' method. + + + + + Cached name for the 'vertex_array_create' method. + + + + + Cached name for the 'index_buffer_create' method. + + + + + Cached name for the 'index_array_create' method. + + + + + Cached name for the 'shader_compile_spirv_from_source' method. + + + + + Cached name for the 'shader_compile_binary_from_spirv' method. + + + + + Cached name for the 'shader_create_from_spirv' method. + + + + + Cached name for the 'shader_create_from_bytecode' method. + + + + + Cached name for the 'shader_create_placeholder' method. + + + + + Cached name for the 'shader_get_vertex_input_attribute_mask' method. + + + + + Cached name for the 'uniform_buffer_create' method. + + + + + Cached name for the 'storage_buffer_create' method. + + + + + Cached name for the 'texture_buffer_create' method. + + + + + Cached name for the 'uniform_set_create' method. + + + + + Cached name for the 'uniform_set_is_valid' method. + + + + + Cached name for the 'buffer_copy' method. + + + + + Cached name for the 'buffer_update' method. + + + + + Cached name for the 'buffer_clear' method. + + + + + Cached name for the 'buffer_get_data' method. + + + + + Cached name for the 'buffer_get_data_async' method. + + + + + Cached name for the 'render_pipeline_create' method. + + + + + Cached name for the 'render_pipeline_is_valid' method. + + + + + Cached name for the 'compute_pipeline_create' method. + + + + + Cached name for the 'compute_pipeline_is_valid' method. + + + + + Cached name for the 'screen_get_width' method. + + + + + Cached name for the 'screen_get_height' method. + + + + + Cached name for the 'screen_get_framebuffer_format' method. + + + + + Cached name for the 'draw_list_begin_for_screen' method. + + + + + Cached name for the 'draw_list_begin' method. + + + + + Cached name for the 'draw_list_begin_split' method. + + + + + Cached name for the 'draw_list_set_blend_constants' method. + + + + + Cached name for the 'draw_list_bind_render_pipeline' method. + + + + + Cached name for the 'draw_list_bind_uniform_set' method. + + + + + Cached name for the 'draw_list_bind_vertex_array' method. + + + + + Cached name for the 'draw_list_bind_index_array' method. + + + + + Cached name for the 'draw_list_set_push_constant' method. + + + + + Cached name for the 'draw_list_draw' method. + + + + + Cached name for the 'draw_list_draw_indirect' method. + + + + + Cached name for the 'draw_list_enable_scissor' method. + + + + + Cached name for the 'draw_list_disable_scissor' method. + + + + + Cached name for the 'draw_list_switch_to_next_pass' method. + + + + + Cached name for the 'draw_list_switch_to_next_pass_split' method. + + + + + Cached name for the 'draw_list_end' method. + + + + + Cached name for the 'compute_list_begin' method. + + + + + Cached name for the 'compute_list_bind_compute_pipeline' method. + + + + + Cached name for the 'compute_list_set_push_constant' method. + + + + + Cached name for the 'compute_list_bind_uniform_set' method. + + + + + Cached name for the 'compute_list_dispatch' method. + + + + + Cached name for the 'compute_list_dispatch_indirect' method. + + + + + Cached name for the 'compute_list_add_barrier' method. + + + + + Cached name for the 'compute_list_end' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'capture_timestamp' method. + + + + + Cached name for the 'get_captured_timestamps_count' method. + + + + + Cached name for the 'get_captured_timestamps_frame' method. + + + + + Cached name for the 'get_captured_timestamp_gpu_time' method. + + + + + Cached name for the 'get_captured_timestamp_cpu_time' method. + + + + + Cached name for the 'get_captured_timestamp_name' method. + + + + + Cached name for the 'limit_get' method. + + + + + Cached name for the 'get_frame_delay' method. + + + + + Cached name for the 'submit' method. + + + + + Cached name for the 'sync' method. + + + + + Cached name for the 'barrier' method. + + + + + Cached name for the 'full_barrier' method. + + + + + Cached name for the 'create_local_device' method. + + + + + Cached name for the 'set_resource_name' method. + + + + + Cached name for the 'draw_command_begin_label' method. + + + + + Cached name for the 'draw_command_insert_label' method. + + + + + Cached name for the 'draw_command_end_label' method. + + + + + Cached name for the 'get_device_vendor_name' method. + + + + + Cached name for the 'get_device_name' method. + + + + + Cached name for the 'get_device_pipeline_cache_uuid' method. + + + + + Cached name for the 'get_memory_usage' method. + + + + + Cached name for the 'get_driver_resource' method. + + + + + Cached name for the 'get_perf_report' method. + + + + + Cached name for the 'get_driver_and_device_memory_report' method. + + + + + Cached name for the 'get_tracked_object_name' method. + + + + + Cached name for the 'get_tracked_object_type_count' method. + + + + + Cached name for the 'get_driver_total_memory' method. + + + + + Cached name for the 'get_driver_allocation_count' method. + + + + + Cached name for the 'get_driver_memory_by_object_type' method. + + + + + Cached name for the 'get_driver_allocs_by_object_type' method. + + + + + Cached name for the 'get_device_total_memory' method. + + + + + Cached name for the 'get_device_allocation_count' method. + + + + + Cached name for the 'get_device_memory_by_object_type' method. + + + + + Cached name for the 'get_device_allocs_by_object_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control for displaying text that can contain custom fonts, images, and basic formatting. manages these as an internal tag stack. It also adapts itself to given width/heights. + Note: , , "\n", "\r\n", p tag, and alignment tags start a new paragraph. Each paragraph is processed independently, in its own BiDi context. If you want to force line wrapping within paragraph, any other line breaking character can be used, for example, Form Feed (U+000C), Next Line (U+0085), Line Separator (U+2028). + Note: Assignments to clear the tag stack and reconstruct it from the property's contents. Any edits made to will erase previous edits made from other manual sources such as and the push_* / methods. + Note: RichTextLabel doesn't support entangled BBCode tags. For example, instead of using [b]bold[i]bold italic[/b]italic[/i], use [b]bold[i]bold italic[/i][/b][i]italic[/i]. + Note: push_*/pop_* functions won't affect BBCode. + Note: Unlike , doesn't have a property to horizontally align text to the center. Instead, enable and surround the text in a [center] tag as follows: [center]Example[/center]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the property. + + + + + + + + + + + Each list item has a number marker. + + + + + Each list item has a letter marker. + + + + + Each list item has a roman number marker. + + + + + Each list item has a filled circle marker. + + + + + Copies the selected text. + + + + + Selects the whole text. + + + + + Represents the size of the enum. + + + + + Meta tag does not display an underline, even if is . + + + + + If is , meta tag always display an underline. + + + + + If is , meta tag display an underline when the mouse cursor is over it. + + + + + If this bit is set, changes image texture. + + + + + If this bit is set, changes image size. + + + + + If this bit is set, changes image color. + + + + + If this bit is set, changes image inline alignment. + + + + + If this bit is set, changes image texture region. + + + + + If this bit is set, changes image padding. + + + + + If this bit is set, changes image tooltip. + + + + + If this bit is set, changes image width from/to percents. + + + + + If , the label uses BBCode formatting. + Note: This only affects the contents of , not the tag stack. + + + + + The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited. + Note: If is , it is unadvised to use the += operator with (e.g. text += "some string") as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using push_* methods. Use for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call. + + + + + If , the label's minimum size will be automatically updated to fit its content, matching the behavior of . + + + + + If , the scrollbar is visible. Setting this to does not block scrolling completely. See . + + + + + If , the window scrolls down to display new content automatically. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. To see how each mode behaves, see . + + + + + The number of spaces associated with a single tab length. Does not affect \t in text tags, only indent tags. + + + + + If , a right-click displays the context menu. + + + + + If , shortcut keys for context menu items are enabled, even if the context menu is disabled. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom, and fill. Set it to one of the constants. + + + + + Line fill alignment rules. See for more information. + + + + + Aligns text to the given tab-stops. + + + + + The currently installed custom effects. This is an array of s. + To add a custom effect, it's more convenient to use . + + + + + If , the label underlines meta tags such as [url]{text}[/url]. These tags can call a function when clicked if is connected to a function. + + + + + If , the label underlines hint tags such as [hint=description]{text}[/hint]. + + + + + If , text processing is done in a background thread. + + + + + The delay after which the loading progress bar is displayed, in milliseconds. Set to -1 to disable progress bar entirely. + Note: Progress bar is displayed only if is enabled. + + + + + If , the label allows text selection. + + + + + If , the selected text will be deselected when focus is lost. + + + + + If , allow drag and drop of selected text. + + + + + The number of characters to display. If set to -1, all characters are displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Sets the clipping behavior when or is set. See for more info. + + + + + The fraction of characters to display, relative to the total number of characters (see ). If set to 1.0, all characters are displayed. If set to 0.5, only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Returns the text without BBCode mark-up. + + + + + Adds raw non-BBCode-parsed text to the tag stack. + + + + + Adds an image's opening and closing tags to the tag stack, optionally providing a and to resize the image, a to tint the image and a to only use parts of the image. + If or is set to 0, the image size will be adjusted in order to keep the original aspect ratio. + If and are not set, but is, the region's rect will be used. + is an optional identifier, that can be used to modify the image via . + If is set, and the image is smaller than the size specified by and , the image padding is added to match the size instead of upscaling. + If is set, and values are percentages of the control width instead of pixels. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Updates the existing images with the key . Only properties specified by bits are updated. See . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Adds a newline tag to the tag stack. + + + + + Removes a paragraph of content from the label. Returns if the paragraph exists. + The argument is the index of the paragraph to remove, it can take values in the interval [0, get_paragraph_count() - 1]. + If is set to , cache for the subsequent paragraphs is not invalidated. Use it for faster updates if deleted paragraph is fully self-contained (have no unclosed tags), or this call is part of the complex edit operation and will be called at the end of operation. + + + + + Invalidates and all subsequent paragraphs cache. + + + + + Adds a [font] tag to the tag stack. Overrides default fonts for its duration. + Passing 0 to will use the existing default font size. + + + + + Adds a [font_size] tag to the tag stack. Overrides default font size for its duration. + + + + + Adds a [font] tag with a normal font to the tag stack. + + + + + Adds a [font] tag with a bold font to the tag stack. This is the same as adding a [b] tag if not currently in a [i] tag. + + + + + Adds a [font] tag with a bold italics font to the tag stack. + + + + + Adds a [font] tag with an italics font to the tag stack. This is the same as adding an [i] tag if not currently in a [b] tag. + + + + + Adds a [font] tag with a monospace font to the tag stack. + + + + + Adds a [color] tag to the tag stack. + + + + + Adds a [outline_size] tag to the tag stack. Overrides default text outline size for its duration. + + + + + Adds a [outline_color] tag to the tag stack. Adds text outline for its duration. + + + + + Adds a [p] tag to the tag stack. + + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Adds a [p] tag to the tag stack. + + + + + Adds an [indent] tag to the tag stack. Multiplies by current to determine new margin length. + + + + + Adds [ol] or [ul] tag to the tag stack. Multiplies by current to determine new margin length. + + + + + Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non- metadata types. + If is , meta tags display an underline. This behavior can be customized with . + Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect to a function that is called when the meta tag is clicked. + + + + + Adds a [hint] tag to the tag stack. Same as BBCode [hint=something]{text}[/hint]. + + + + + Adds language code used for text shaping algorithm and Open-Type font features. + + + + + Adds a [u] tag to the tag stack. + + + + + Adds a [s] tag to the tag stack. + + + + + Adds a [table=columns,inline_align] tag to the tag stack. Use to set column expansion ratio. Use to add cells. + + + + + Adds a [dropcap] tag to the tag stack. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Color(0.0f, 0.0f, 0.0f, 0.0f). + + + + Edits the selected column's expansion options. If is , the column expands in proportion to its expansion ratio versus the other columns' ratios. + For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively. + If is , the column will not contribute to the total ratio. + + + + + Sets color of a table cell. Separate colors for alternating rows can be specified. + + + + + Sets color of a table cell border. + + + + + Sets minimum and maximum size overrides for a table cell. + + + + + Sets inner padding of a table cell. + + + + + Adds a [cell] tag to the tag stack. Must be inside a [table] tag. See for details. Use to set column expansion ratio, to set cell border, to set cell background, to override cell size, and to set padding. + + + + + Adds a [fgcolor] tag to the tag stack. + + + + + Adds a [bgcolor] tag to the tag stack. + + + + + Adds a custom effect tag to the tag stack. The effect does not need to be in . The environment is directly passed to the effect. + + + + + Adds a context marker to the tag stack. See . + + + + + Terminates tags opened after the last call (including context marker), or all tags if there's no context marker on the stack. + + + + + Terminates the current tag. Use after push_* methods to close BBCodes manually. Does not need to follow add_* methods. + + + + + Terminates all tags opened by push_* methods. + + + + + Clears the tag stack, causing the label to display nothing. + Note: This method does not affect , and its contents will show again if the label is redrawn. However, setting to an empty also clears the stack. + + + + + Returns the vertical scrollbar. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Scrolls the window's top line to match . + + + + + Scrolls the window's top line to match first line of the . + + + + + Scrolls to the beginning of the current selection. + + + + + Returns the current selection first character index if a selection is active, -1 otherwise. Does not include BBCodes. + + + + + Returns the current selection last character index if a selection is active, -1 otherwise. Does not include BBCodes. + + + + + Select all the text. + If is , no selection will occur. + + + + + Returns the current selection text. Does not include BBCodes. + + + + + Clears the current selection. + + + + + The assignment version of . Clears the tag stack and inserts the new content. + + + + + Parses and adds tags to the tag stack as needed. + Note: Using this method, you can't close a tag that was opened in a previous call. This is done to improve performance, especially when updating large RichTextLabels since rebuilding the whole BBCode every time would be slower. If you absolutely need to close a tag in a future method call, append the instead of using . + + + + + If is enabled, returns if the background thread has finished text processing, otherwise always return . + + + + + If is enabled, returns if the background thread has finished text processing, otherwise always return . + + + + + Returns the line number of the character position provided. Line and character numbers are both zero-indexed. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the paragraph number of the character position provided. Paragraph and character numbers are both zero-indexed. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the total number of characters from text tags. Does not include BBCodes. + + + + + Returns the total number of lines in the text. Wrapped text is counted as multiple lines. + Note: If is set to only visible wrapped lines are counted. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the indexes of the first and last visible characters for the given , as a . + Note: If is set to only visible wrapped lines are counted. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the number of visible lines. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the total number of paragraphs (newlines or p tags in the tag stack's text tags). Considers wrapped text as one paragraph. + + + + + Returns the number of visible paragraphs. A paragraph is considered visible if at least one of its lines is visible. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the height of the content. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the width of the content. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the vertical offset of the line found at the provided index. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the vertical offset of the paragraph found at the provided index. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Parses BBCode parameter into a dictionary. + + + + + Parses BBCode parameter into a dictionary. + + + + + Installs a custom effect. This can also be done in the Inspector through the property. should be a valid . + Example: With the following script extending from : + + # effect.gd + class_name MyCustomEffect + extends RichTextEffect + + var bbcode = "my_custom_effect" + + # ... + + The above effect can be installed in from a script: + + # rich_text_label.gd + extends RichTextLabel + + func _ready(): + install_effect(MyCustomEffect.new()) + + # Alternatively, if not using `class_name` in the script that extends RichTextEffect: + install_effect(preload("res://effect.gd").new()) + + + + + + Returns the of this . By default, this menu is displayed when right-clicking on the . + You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see ). For example: + + public override void _Ready() + { + var menu = GetMenu(); + // Remove "Select All" item. + menu.RemoveItem(RichTextLabel.MenuItems.SelectAll); + // Add custom items. + menu.AddSeparator(); + menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1); + // Add event handler. + menu.IdPressed += OnItemPressed; + } + + public void OnItemPressed(int id) + { + if (id == TextEdit.MenuItems.Max + 1) + { + AddText("\n" + GetParsedText()); + } + } + + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided). + + + + + Executes a given action as defined in the enum. + + + + + Removes a paragraph of content from the label. Returns if the paragraph exists. + The argument is the index of the paragraph to remove, it can take values in the interval [0, get_paragraph_count() - 1]. + If is set to , cache for the subsequent paragraphs is not invalidated. Use it for faster updates if deleted paragraph is fully self-contained (have no unclosed tags), or this call is part of the complex edit operation and will be called at the end of operation. + + + + + Adds an image's opening and closing tags to the tag stack, optionally providing a and to resize the image, a to tint the image and a to only use parts of the image. + If or is set to 0, the image size will be adjusted in order to keep the original aspect ratio. + If and are not set, but is, the region's rect will be used. + is an optional identifier, that can be used to modify the image via . + If is set, and the image is smaller than the size specified by and , the image padding is added to match the size instead of upscaling. + If is set, and values are percentages of the control width instead of pixels. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non- metadata types. + If is , meta tags display an underline. This behavior can be customized with . + Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect to a function that is called when the meta tag is clicked. + + + + + Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non- metadata types. + If is , meta tags display an underline. This behavior can be customized with . + Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect to a function that is called when the meta tag is clicked. + + + + + Represents the method that handles the event of a class. + + + + + Triggered when the user clicks on content between meta (URL) tags. If the meta is defined in BBCode, e.g. [url={"key": "value"}]Text[/url], then the parameter for this signal will always be a type. If a particular type or an object is desired, the method must be used to manually insert the data into the tag stack. Alternatively, you can convert the input to the desired type based on its contents (such as calling on it). + For example, the following method can be connected to to open clicked URLs using the user's default web browser: + + + + + + Represents the method that handles the event of a class. + + + + + Triggers when the mouse enters a meta tag. + + + + + Represents the method that handles the event of a class. + + + + + Triggers when the mouse exits a meta tag. + + + + + Triggered when the document is fully loaded. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bbcode_enabled' property. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'fit_content' property. + + + + + Cached name for the 'scroll_active' property. + + + + + Cached name for the 'scroll_following' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'tab_size' property. + + + + + Cached name for the 'context_menu_enabled' property. + + + + + Cached name for the 'shortcut_keys_enabled' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'tab_stops' property. + + + + + Cached name for the 'custom_effects' property. + + + + + Cached name for the 'meta_underlined' property. + + + + + Cached name for the 'hint_underlined' property. + + + + + Cached name for the 'threaded' property. + + + + + Cached name for the 'progress_bar_delay' property. + + + + + Cached name for the 'selection_enabled' property. + + + + + Cached name for the 'deselect_on_focus_loss_enabled' property. + + + + + Cached name for the 'drag_and_drop_selection_enabled' property. + + + + + Cached name for the 'visible_characters' property. + + + + + Cached name for the 'visible_characters_behavior' property. + + + + + Cached name for the 'visible_ratio' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_parsed_text' method. + + + + + Cached name for the 'add_text' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'add_image' method. + + + + + Cached name for the 'update_image' method. + + + + + Cached name for the 'newline' method. + + + + + Cached name for the 'remove_paragraph' method. + + + + + Cached name for the 'invalidate_paragraph' method. + + + + + Cached name for the 'push_font' method. + + + + + Cached name for the 'push_font_size' method. + + + + + Cached name for the 'push_normal' method. + + + + + Cached name for the 'push_bold' method. + + + + + Cached name for the 'push_bold_italics' method. + + + + + Cached name for the 'push_italics' method. + + + + + Cached name for the 'push_mono' method. + + + + + Cached name for the 'push_color' method. + + + + + Cached name for the 'push_outline_size' method. + + + + + Cached name for the 'push_outline_color' method. + + + + + Cached name for the 'push_paragraph' method. + + + + + Cached name for the 'push_indent' method. + + + + + Cached name for the 'push_list' method. + + + + + Cached name for the 'push_meta' method. + + + + + Cached name for the 'push_hint' method. + + + + + Cached name for the 'push_language' method. + + + + + Cached name for the 'push_underline' method. + + + + + Cached name for the 'push_strikethrough' method. + + + + + Cached name for the 'push_table' method. + + + + + Cached name for the 'push_dropcap' method. + + + + + Cached name for the 'set_table_column_expand' method. + + + + + Cached name for the 'set_cell_row_background_color' method. + + + + + Cached name for the 'set_cell_border_color' method. + + + + + Cached name for the 'set_cell_size_override' method. + + + + + Cached name for the 'set_cell_padding' method. + + + + + Cached name for the 'push_cell' method. + + + + + Cached name for the 'push_fgcolor' method. + + + + + Cached name for the 'push_bgcolor' method. + + + + + Cached name for the 'push_customfx' method. + + + + + Cached name for the 'push_context' method. + + + + + Cached name for the 'pop_context' method. + + + + + Cached name for the 'pop' method. + + + + + Cached name for the 'pop_all' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_tab_stops' method. + + + + + Cached name for the 'get_tab_stops' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_meta_underline' method. + + + + + Cached name for the 'is_meta_underlined' method. + + + + + Cached name for the 'set_hint_underline' method. + + + + + Cached name for the 'is_hint_underlined' method. + + + + + Cached name for the 'set_scroll_active' method. + + + + + Cached name for the 'is_scroll_active' method. + + + + + Cached name for the 'set_scroll_follow' method. + + + + + Cached name for the 'is_scroll_following' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'scroll_to_line' method. + + + + + Cached name for the 'scroll_to_paragraph' method. + + + + + Cached name for the 'scroll_to_selection' method. + + + + + Cached name for the 'set_tab_size' method. + + + + + Cached name for the 'get_tab_size' method. + + + + + Cached name for the 'set_fit_content' method. + + + + + Cached name for the 'is_fit_content_enabled' method. + + + + + Cached name for the 'set_selection_enabled' method. + + + + + Cached name for the 'is_selection_enabled' method. + + + + + Cached name for the 'set_context_menu_enabled' method. + + + + + Cached name for the 'is_context_menu_enabled' method. + + + + + Cached name for the 'set_shortcut_keys_enabled' method. + + + + + Cached name for the 'is_shortcut_keys_enabled' method. + + + + + Cached name for the 'set_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'is_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'set_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'is_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'get_selection_from' method. + + + + + Cached name for the 'get_selection_to' method. + + + + + Cached name for the 'select_all' method. + + + + + Cached name for the 'get_selected_text' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'parse_bbcode' method. + + + + + Cached name for the 'append_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'is_ready' method. + + + + + Cached name for the 'is_finished' method. + + + + + Cached name for the 'set_threaded' method. + + + + + Cached name for the 'is_threaded' method. + + + + + Cached name for the 'set_progress_bar_delay' method. + + + + + Cached name for the 'get_progress_bar_delay' method. + + + + + Cached name for the 'set_visible_characters' method. + + + + + Cached name for the 'get_visible_characters' method. + + + + + Cached name for the 'get_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_ratio' method. + + + + + Cached name for the 'get_visible_ratio' method. + + + + + Cached name for the 'get_character_line' method. + + + + + Cached name for the 'get_character_paragraph' method. + + + + + Cached name for the 'get_total_character_count' method. + + + + + Cached name for the 'set_use_bbcode' method. + + + + + Cached name for the 'is_using_bbcode' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'get_line_range' method. + + + + + Cached name for the 'get_visible_line_count' method. + + + + + Cached name for the 'get_paragraph_count' method. + + + + + Cached name for the 'get_visible_paragraph_count' method. + + + + + Cached name for the 'get_content_height' method. + + + + + Cached name for the 'get_content_width' method. + + + + + Cached name for the 'get_line_offset' method. + + + + + Cached name for the 'get_paragraph_offset' method. + + + + + Cached name for the 'parse_expressions_for_values' method. + + + + + Cached name for the 'set_effects' method. + + + + + Cached name for the 'get_effects' method. + + + + + Cached name for the 'install_effect' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'is_menu_visible' method. + + + + + Cached name for the 'menu_option' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'meta_clicked' signal. + + + + + Cached name for the 'meta_hover_started' signal. + + + + + Cached name for the 'meta_hover_ended' signal. + + + + + Cached name for the 'finished' signal. + + + + + The is used to construct a by specifying vertex attributes individually. It can be used to construct a from a script. All properties except indices need to be added before calling . For example, to add vertex colors and UVs: + + var st = new SurfaceTool(); + st.Begin(Mesh.PrimitiveType.Triangles); + st.SetColor(new Color(1, 0, 0)); + st.SetUV(new Vector2(0, 0)); + st.AddVertex(new Vector3(0, 0, 0)); + + The above now contains one vertex of a triangle which has a UV coordinate and a specified . If another vertex were added without calling or , then the last values would be used. + Vertex attributes must be passed before calling . 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 , and for procedural geometry generation. + Note: Godot uses clockwise winding order for front faces of triangle primitive modes. + + + + + + + + + + + Limits range of data passed to to unsigned normalized 0 to 1 stored in 8 bits per channel. See . + + + + + Limits range of data passed to to signed normalized -1 to 1 stored in 8 bits per channel. See . + + + + + Stores data passed to as half precision floats, and uses only red and green color channels. See . + + + + + Stores data passed to as half precision floats and uses all color channels. See . + + + + + Stores data passed to as full precision floats, and uses only red color channel. See . + + + + + Stores data passed to as full precision floats, and uses only red and green color channels. See . + + + + + Stores data passed to as full precision floats, and uses only red, green and blue color channels. See . + + + + + Stores data passed to as full precision floats, and uses all color channels. See . + + + + + Used to indicate a disabled custom channel. + + + + + Each individual vertex can be influenced by only 4 bone weights. + + + + + Each individual vertex can be influenced by up to 8 bone weights. + + + + + Set to to indicate that up to 8 bone influences per vertex may be used. + By default, only 4 bone influences are used (). + Note: This function takes an enum, not the exact number of weights. + + + + + By default, returns to indicate only 4 bone influences per vertex are used. + Returns if up to 8 influences are used. + Note: This function returns an enum, not the exact number of weights. + + + + + Sets the color format for this custom . Use to disable. + Must be invoked after and should be set before or . + + + + + Returns the format for custom (currently up to 4). Returns if this custom channel is unused. + + + + + Called before adding any vertices. Takes the primitive type as an argument (e.g. ). + + + + + Specifies the position of current vertex. Should be called after specifying other vertex properties (e.g. Color, UV). + + + + + Specifies a to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + Note: The material must have enabled for the vertex color to be visible. + + + + + Specifies a normal to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies a tangent to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies a set of UV coordinates to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies an optional second set of UV coordinates to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies an array of bones to use for the next vertex. must contain 4 integers. + + + + + Specifies an array of bones to use for the next vertex. must contain 4 integers. + + + + + Specifies weight values to use for the next vertex. must contain 4 values. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies weight values to use for the next vertex. must contain 4 values. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Sets the custom value on this vertex for . + must be called first for this . Formats which are not RGBA will ignore other color channels. + + + + + Specifies the smooth group to use for the next vertex. If this is never called, all vertices will have the default smooth group of 0 and will be smoothed with adjacent vertices of the same group. To produce a mesh with flat normals, set the smooth group to -1. + Note: This function actually takes a uint32_t, so C# users should use uint32.MaxValue instead of -1 to produce a mesh with flat normals. + + + + + Inserts a triangle fan made of array data into being constructed. + Requires the primitive type be set to . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<Vector3>(). + + + + Inserts a triangle fan made of array data into being constructed. + Requires the primitive type be set to . + + + + + Adds a vertex to index array if you are using indexed vertices. Does not need to be called before adding vertices. + + + + + Shrinks the vertex array by creating an index array. This can improve performance by avoiding vertex reuse. + + + + + Removes the index array by expanding the vertex array. + + + + + Generates normals from vertices so you do not have to do it manually. If is , the resulting normals will be inverted. should be called after generating geometry and before committing the mesh using or . For correct display of normal-mapped surfaces, you will also have to generate tangents using . + Note: only works if the primitive type is set to . + Note: takes smooth groups into account. To generate smooth normals, set the smooth group to a value greater than or equal to 0 using or leave the smooth group at the default of 0. To generate flat normals, set the smooth group to -1 using prior to adding vertices. + + + + + Generates a tangent vector for each vertex. Requires that each vertex already has UVs and normals set (see ). + + + + + Optimizes triangle sorting for performance. Requires that is . + + + + + Returns the axis-aligned bounding box of the vertex positions. + + + + + Generates an LOD for a given in linear units (square root of quadric error metric), using at most indices. + + + + + Sets to be used by the you are constructing. + + + + + Returns the type of mesh geometry, such as . + + + + + Clear all information passed into the surface tool so far. + + + + + Creates a vertex array from an existing . + + + + + Creates this SurfaceTool from existing vertex arrays such as returned by , , , , and . controls the type of mesh data, defaulting to . + + + + + Creates a vertex array from the specified blend shape of an existing . This can be used to extract a specific pose from a blend shape. + + + + + Append vertices from a given surface onto the current vertex array with specified . + + + + + Returns a constructed from current information passed in. If an existing is passed in as an argument, will add an extra surface to the existing . + FIXME: Document possible values for , it changed in 4.0. Likely some combinations of . + + + + + Commits the data to the same format used by , , and . This way you can further process the mesh data using the or APIs. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_skin_weight_count' method. + + + + + Cached name for the 'get_skin_weight_count' method. + + + + + Cached name for the 'set_custom_format' method. + + + + + Cached name for the 'get_custom_format' method. + + + + + Cached name for the 'begin' method. + + + + + Cached name for the 'add_vertex' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'set_normal' method. + + + + + Cached name for the 'set_tangent' method. + + + + + Cached name for the 'set_uv' method. + + + + + Cached name for the 'set_uv2' method. + + + + + Cached name for the 'set_bones' method. + + + + + Cached name for the 'set_weights' method. + + + + + Cached name for the 'set_custom' method. + + + + + Cached name for the 'set_smooth_group' method. + + + + + Cached name for the 'add_triangle_fan' method. + + + + + Cached name for the 'add_index' method. + + + + + Cached name for the 'index' method. + + + + + Cached name for the 'deindex' method. + + + + + Cached name for the 'generate_normals' method. + + + + + Cached name for the 'generate_tangents' method. + + + + + Cached name for the 'optimize_indices_for_cache' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached name for the 'generate_lod' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_primitive_type' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'create_from' method. + + + + + Cached name for the 'create_from_arrays' method. + + + + + Cached name for the 'create_from_blend_shape' method. + + + + + Cached name for the 'append_from' method. + + + + + Cached name for the 'commit' method. + + + + + Cached name for the 'commit_to_arrays' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node for 2D tile-based maps. Tilemaps use a 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 may be initialized after their parent. This is only queued when inside the scene tree. + To force an update earlier on, call . + + + + + The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size. + + + + + Use the debug settings to determine visibility. + + + + + Always hide. + + + + + Always show. + + + + + The used by this . The textures, collisions, and additional behavior of all available tiles are stored here. + + + + + The TileMap's quadrant size. A quadrant is a group of tiles to be drawn together on a single canvas item, for optimization purposes. defines the length of a square's side, in the map's coordinate system, that forms the quadrant. Thus, the default quadrant size groups together 16 * 16 = 256 tiles. + The quadrant size does not apply on Y-sorted layers, as tiles are grouped by Y position instead in that case. + Note: As quadrants are created according to the map's coordinate system, the quadrant's "square shape" might not look like square in the TileMap's local coordinate system. + + + + + If enabled, the TileMap will see its collisions synced to the physics tick and change its collision type from static to kinematic. This is required to create TileMap-based moving platform. + Note: Enabling may have a small performance impact, only do it if the TileMap is moving and has colliding tiles. + + + + + Show or hide the TileMap's collision shapes. If set to , this depends on the show collision debug settings. + + + + + Show or hide the TileMap's navigation meshes. If set to , this depends on the show navigation debug settings. + + + + + Called with a TileData object about to be used internally by the TileMap, allowing its modification at runtime. + This method is only called if is implemented and returns for the given tile and . + Warning: The 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. + Note: If the properties of object should change over time, use to notify the TileMap it needs an update. + + + + + Should return if the tile at coordinates on layer requires a runtime update. + Warning: Make sure this function only return when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty. + Note: If the result of this function should changed, use to notify the TileMap it needs an update. + + + + + Assigns as a navigation map for the specified TileMap layer . + + + + + Returns the of the navigation map assigned to the specified TileMap layer . + + + + + Forces the TileMap and the layer to update. + + + + + Returns the number of layers in the TileMap. + + + + + Adds a layer at the given position in the array. If is negative, the position is counted from the end, with -1 adding the layer at the end of the array. + + + + + Moves the layer at index to the given position in the array. + + + + + Removes the layer at index . + + + + + Sets a layer's name. This is mostly useful in the editor. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's name. + If is negative, the layers are accessed from the last one. + + + + + Enables or disables the layer . A disabled layer is not processed at all (no rendering, no physics, etc.). + If is negative, the layers are accessed from the last one. + + + + + Returns if a layer is enabled. + If is negative, the layers are accessed from the last one. + + + + + Sets a layer's color. It will be multiplied by tile's color and TileMap's modulate. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's modulate. + If is negative, the layers are accessed from the last one. + + + + + Enables or disables a layer's Y-sorting. If a layer is Y-sorted, the layer will behave as a CanvasItem node where each of its tile gets Y-sorted. + Y-sorted layers should usually be on different Z-index values than not Y-sorted layers, otherwise, each of those layer will be Y-sorted as whole with the Y-sorted one. This is usually an undesired behavior. + If is negative, the layers are accessed from the last one. + + + + + Returns if a layer Y-sorts its tiles. + If is negative, the layers are accessed from the last one. + + + + + Sets a layer's Y-sort origin value. This Y-sort origin value is added to each tile's Y-sort origin value. + This allows, for example, to fake a different height level on each layer. This can be useful for top-down view games. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's Y sort origin. + If is negative, the layers are accessed from the last one. + + + + + Sets a layers Z-index value. This Z-index is added to each tile's Z-index value. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's Z-index value. + If is negative, the layers are accessed from the last one. + + + + + Enables or disables a layer's built-in navigation regions generation. Disable this if you need to bake navigation regions from a TileMap using a node. + + + + + Returns if a layer's built-in navigation regions generation is enabled. + + + + + Assigns as a navigation map for the specified TileMap layer . + By default the TileMap uses the default navigation map for the first TileMap layer. For each additional TileMap layer a new navigation map is created for the additional layer. + In order to make switch between TileMap layer navigation maps use with the navigation map received from . + If is negative, the layers are accessed from the last one. + + + + + Returns the of the navigation map assigned to the specified TileMap layer . + By default the TileMap uses the default navigation map for the first TileMap layer. For each additional TileMap layer a new navigation map is created for the additional layer. + In order to make switch between TileMap layer navigation maps use with the navigation map received from . + If is negative, the layers are accessed from the last one. + + + + + Sets the tile identifiers for the cell on layer at coordinates . Each tile of the is identified using three parts: + - The source identifier identifies a identifier. See , + - The atlas coordinates identifier identifies a tile coordinates in the atlas (if the source is a ). For it should always be Vector2i(0, 0)), + - The alternative tile identifier identifies a tile alternative in the atlas (if the source is a ), and the scene for a . + If is set to -1, to Vector2i(-1, -1) or to -1, the cell will be erased. An erased cell gets all its identifiers automatically set to their respective invalid values, namely -1, Vector2i(-1, -1) and -1. + If is negative, the layers are accessed from the last one. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Erases the cell on layer at coordinates . + If is negative, the layers are accessed from the last one. + + + + + Returns the tile source ID of the cell on layer at coordinates . Returns -1 if the cell does not exist. + If is , ignores the 's tile proxies, returning the raw source identifier. See . + If is negative, the layers are accessed from the last one. + + + + + Returns the tile atlas coordinates ID of the cell on layer at coordinates . Returns Vector2i(-1, -1) if the cell does not exist. + If is , ignores the 's tile proxies, returning the raw atlas coordinate identifier. See . + If is negative, the layers are accessed from the last one. + + + + + Returns the tile alternative ID of the cell on layer at . + If is , ignores the 's tile proxies, returning the raw alternative identifier. See . + If is negative, the layers are accessed from the last one. + + + + + Returns the object associated with the given cell, or if the cell does not exist or is not a . + If is negative, the layers are accessed from the last one. + + func get_clicked_tile_power(): + var clicked_cell = tile_map.local_to_map(tile_map.get_local_mouse_position()) + var data = tile_map.get_cell_tile_data(0, clicked_cell) + if data: + return data.get_custom_data("power") + else: + return 0 + + If is , ignores the 's tile proxies. See . + + + + + Returns if the cell on layer at coordinates is flipped horizontally. The result is valid only for atlas sources. + + + + + Returns if the cell on layer at coordinates is flipped vertically. The result is valid only for atlas sources. + + + + + Returns if the cell on layer at coordinates is transposed. The result is valid only for atlas sources. + + + + + Returns the coordinates of the tile for given physics body RID. Such RID can be retrieved from , when colliding with a tile. + + + + + Returns the tilemap layer of the tile for given physics body RID. Such RID can be retrieved from , when colliding with a tile. + + + + + Creates a new from the given layer and set of cells. + If is negative, the layers are accessed from the last one. + + + + + Returns for the given coordinate in a the corresponding cell coordinates if the pattern was pasted at the coordinates (see ). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating position_in_tile_map + coords_in_pattern. + + + + + Paste the given at the given and in the tile map. + If is negative, the layers are accessed from the last one. + + + + + Update all the cells in the coordinates array so that they use the given for the given . If an updated cell has the same terrain as one of its neighboring cells, this function tries to join the two. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + If is negative, the layers are accessed from the last one. + Note: To work correctly, this method requires the TileMap's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Update all the cells in the coordinates array so that they use the given for the given . The function will also connect two successive cell in the path with the same terrain. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + If is negative, the layers are accessed from the last one. + Note: To work correctly, this method requires the TileMap's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Clears cells that do not exist in the tileset. + + + + + Clears all cells on the given layer. + If is negative, the layers are accessed from the last one. + + + + + Clears all cells. + + + + + Triggers a direct update of the TileMap. Usually, calling this function is not needed, as TileMap node updates automatically when one of its properties or cells is modified. + However, for performance reasons, those updates are batched and delayed to the end of the frame. Calling this function will force the TileMap to update right away instead. + Warning: Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of updates and how many tiles they impact. + + + + + Notifies the TileMap node that calls to or will lead to different results. This will thus trigger a TileMap update. + If is provided, only notifies changes for the given layer. Providing the argument (when applicable) is usually preferred for performance reasons. + Warning: Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of calls to this function to avoid unnecessary update. + Note: This does not trigger a direct update of the TileMap, the update will be done at the end of the frame as usual (unless you call ). + + + + + Returns the list of all neighbourings cells to the one at . + + + + + Returns a array with the positions of all cells containing a tile in the given layer. A cell is considered empty if its source identifier equals -1, its atlas coordinates identifiers is Vector2(-1, -1) and its alternative identifier is -1. + If is negative, the layers are accessed from the last one. + + + + + Returns a array with the positions of all cells containing a tile in the given layer. Tiles may be filtered according to their source (), their atlas coordinates () or alternative id (). + If a parameter has its value set to the default one, this parameter is not used to filter a cell. Thus, if all parameters have their respective default value, this method returns the same result as . + A cell is considered empty if its source identifier equals -1, its atlas coordinates identifiers is Vector2(-1, -1) and its alternative identifier is -1. + If is negative, the layers are accessed from the last one. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns a rectangle enclosing the used (non-empty) tiles of the map, including all layers. + + + + + Returns the centered position of a cell in the TileMap's local coordinate space. To convert the returned value into global coordinates, use . See also . + Note: This may not correspond to the visual position of the tile, i.e. it ignores the property of individual tiles. + + + + + Returns the map coordinates of the cell containing the given . If is in global coordinates, consider using before passing it to this method. See also . + + + + + Returns the neighboring cell to the one at coordinates , identified by the direction. This method takes into account the different layouts a TileMap can take. + + + + + Emitted when the of this TileMap changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tile_set' property. + + + + + Cached name for the 'rendering_quadrant_size' property. + + + + + Cached name for the 'collision_animatable' property. + + + + + Cached name for the 'collision_visibility_mode' property. + + + + + Cached name for the 'navigation_visibility_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_tile_data_runtime_update' method. + + + + + Cached name for the '_use_tile_data_runtime_update' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'force_update' method. + + + + + Cached name for the 'set_tileset' method. + + + + + Cached name for the 'get_tileset' method. + + + + + Cached name for the 'set_rendering_quadrant_size' method. + + + + + Cached name for the 'get_rendering_quadrant_size' method. + + + + + Cached name for the 'get_layers_count' method. + + + + + Cached name for the 'add_layer' method. + + + + + Cached name for the 'move_layer' method. + + + + + Cached name for the 'remove_layer' method. + + + + + Cached name for the 'set_layer_name' method. + + + + + Cached name for the 'get_layer_name' method. + + + + + Cached name for the 'set_layer_enabled' method. + + + + + Cached name for the 'is_layer_enabled' method. + + + + + Cached name for the 'set_layer_modulate' method. + + + + + Cached name for the 'get_layer_modulate' method. + + + + + Cached name for the 'set_layer_y_sort_enabled' method. + + + + + Cached name for the 'is_layer_y_sort_enabled' method. + + + + + Cached name for the 'set_layer_y_sort_origin' method. + + + + + Cached name for the 'get_layer_y_sort_origin' method. + + + + + Cached name for the 'set_layer_z_index' method. + + + + + Cached name for the 'get_layer_z_index' method. + + + + + Cached name for the 'set_layer_navigation_enabled' method. + + + + + Cached name for the 'is_layer_navigation_enabled' method. + + + + + Cached name for the 'set_layer_navigation_map' method. + + + + + Cached name for the 'get_layer_navigation_map' method. + + + + + Cached name for the 'set_collision_animatable' method. + + + + + Cached name for the 'is_collision_animatable' method. + + + + + Cached name for the 'set_collision_visibility_mode' method. + + + + + Cached name for the 'get_collision_visibility_mode' method. + + + + + Cached name for the 'set_navigation_visibility_mode' method. + + + + + Cached name for the 'get_navigation_visibility_mode' method. + + + + + Cached name for the 'set_cell' method. + + + + + Cached name for the 'erase_cell' method. + + + + + Cached name for the 'get_cell_source_id' method. + + + + + Cached name for the 'get_cell_atlas_coords' method. + + + + + Cached name for the 'get_cell_alternative_tile' method. + + + + + Cached name for the 'get_cell_tile_data' method. + + + + + Cached name for the 'is_cell_flipped_h' method. + + + + + Cached name for the 'is_cell_flipped_v' method. + + + + + Cached name for the 'is_cell_transposed' method. + + + + + Cached name for the 'get_coords_for_body_rid' method. + + + + + Cached name for the 'get_layer_for_body_rid' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'map_pattern' method. + + + + + Cached name for the 'set_pattern' method. + + + + + Cached name for the 'set_cells_terrain_connect' method. + + + + + Cached name for the 'set_cells_terrain_path' method. + + + + + Cached name for the 'fix_invalid_tiles' method. + + + + + Cached name for the 'clear_layer' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'update_internals' method. + + + + + Cached name for the 'notify_runtime_tile_data_update' method. + + + + + Cached name for the 'get_surrounding_cells' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_used_cells_by_id' method. + + + + + Cached name for the 'get_used_rect' method. + + + + + Cached name for the 'map_to_local' method. + + + + + Cached name for the 'local_to_map' method. + + + + + Cached name for the 'get_neighbor_cell' method. + + + + + Cached name for the 'get_quadrant_size' method. + + + + + Cached name for the 'set_quadrant_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + A control used to show a set of internal s in a hierarchical structure. The tree items can be selected, expanded and collapsed. The tree can have multiple columns with custom controls like s, buttons and popups. It can be useful for structured displays and interactions. + Trees are built via code, using objects to create the structure. They have a single root, but multiple roots can be simulated with : + + public override void _Ready() + { + var tree = new Tree(); + TreeItem root = tree.CreateItem(); + tree.HideRoot = true; + TreeItem child1 = tree.CreateItem(root); + TreeItem child2 = tree.CreateItem(root); + TreeItem subchild1 = tree.CreateItem(child1); + subchild1.SetText(0, "Subchild1"); + } + + To iterate over all the objects in a object, use and after getting the root through . You can use on a to remove it from the . + Incremental search: Like and , supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec. + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Disables all drop sections, but still allows to detect the "on item" drop section by . + Note: This is the default flag, it has no effect when combined with other flags. + + + + + Enables the "on item" drop section. This drop section covers the entire item. + When combined with , this drop section halves the height and stays centered vertically. + + + + + 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 , these drop sections halves the height and stays on top / bottom accordingly. + + + + + The number of columns. + + + + + If , column titles are visible. + + + + + If , the currently selected cell may be selected again. + + + + + If , a right mouse button click can select items. + + + + + If , allows navigating the with letter keys through incremental search. + + + + + If , the folding arrow is hidden. + + + + + If , recursive folding is enabled for this . Holding down Shift while clicking the fold arrow or using ui_right/ui_left shortcuts collapses or uncollapses the and all its descendants. + + + + + If , the tree's root is hidden. + + + + + The drop mode as an OR combination of flags. See constants. Once dropping is done, reverts to . Setting this during is recommended. + This controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position. + + + + + Allows single or multiple selection. See the constants. + + + + + If , enables horizontal scrolling. + + + + + If , enables vertical scrolling. + + + + + If , tree items with no tooltip assigned display their text as their tooltip. See also and . + + + + + Clears the tree. This removes all items. + + + + + Creates an item in the tree and adds it as a child of , which can be either a valid or . + If is , the root item will be the parent, or the new item will be the root itself if the tree is empty. + The new item will be the -th child of parent, or it will be the last child if there are not enough siblings. + + + + + Returns the tree's root item, or if the tree is empty. + + + + + Overrides the calculated minimum width of a column. It can be set to 0 to restore the default behavior. Columns that have the "Expand" flag will use their "min_width" in a similar fashion to . + + + + + If , the column will have the "Expand" flag of . Columns that have the "Expand" flag will use their expand ratio in a similar fashion to (see ). + + + + + Sets the relative expand ratio for a column. See . + + + + + Allows to enable clipping for column's content, making the content size ignored. + + + + + Returns if the column has enabled expanding (see ). + + + + + Returns if the column has enabled clipping (see ). + + + + + Returns the expand ratio assigned to the column. + + + + + Returns the column's width in pixels. + + + + + Returns the next selected after the given one, or if the end is reached. + If is , this returns the first selected item. + + + + + Returns the currently focused item, or if no item is focused. + In and modes, the focused item is same as the selected item. In mode, the focused item is the item under the focus cursor, not necessarily selected. + To get the currently selected item(s), use . + + + + + Selects the specified and column. + + + + + Returns the currently focused column, or -1 if no column is focused. + In mode, the focused column is the selected column. In mode, the focused column is always 0 if any item is selected. In mode, the focused column is the column under the focus cursor, and there are not necessarily any column selected. + To tell whether a column of an item is selected, use . + + + + + Returns the last pressed button's index. + + + + + Deselects all tree items (rows and columns). In mode also removes selection cursor. + + + + + Returns the currently edited item. Can be used with to get the item that was modified. + + public override void _Ready() + { + GetNode<Tree>("Tree").ItemEdited += OnTreeItemEdited; + } + + public void OnTreeItemEdited() + { + GD.Print(GetNode<Tree>("Tree").GetEdited()); // This item just got edited (e.g. checked). + } + + + + + + Returns the column for the currently edited item. + + + + + Edits the selected tree item as if it was clicked. + Either the item must be set editable with or must be . + Returns if the item could be edited. Fails if no item is selected. + + + + + Returns the rectangle for custom popups. Helper to create custom cell controls that display a popup. See . + + + + + Returns the rectangle area for the specified . If is specified, only get the position and size of that column, otherwise get the rectangle containing all columns. If a button index is specified, the rectangle of that button will be returned. + + + + + Returns the tree item at the specified position (relative to the tree origin position). + + + + + Returns the column index at , or -1 if no item is there. + + + + + Returns the drop section at , or -100 if no item is there. + Values -1, 0, or 1 will be returned for the "above item", "on item", and "below item" drop sections, respectively. See for a description of each drop section. + To get the item which the returned drop section is relative to, use . + + + + + Returns the button ID at , or -1 if no button is there. + + + + + Makes the currently focused cell visible. + This will scroll the tree if necessary. In mode, this will not do horizontal scrolling, as all the cells in the selected row is focused logically. + Note: Despite the name of this method, the focus cursor itself is only visible in mode. + + + + + Sets the title of a column. + + + + + Returns the column's title. + + + + + Sets the column title alignment. Note that is not supported for column titles. + + + + + Returns the column title alignment. + + + + + Sets column title base writing direction. + + + + + Returns column title base writing direction. + + + + + Sets language code of column title used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns column title language code. + + + + + Returns the current scrolling position. + + + + + Causes the to jump to the specified . + + + + + Emitted when an item is selected. + + + + + Emitted when a cell is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted instead of if is set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item is selected with a mouse button. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a mouse button is clicked in the empty space of the tree. + + + + + Emitted when an item is edited. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item with is clicked with a mouse button. + + + + + Emitted when an item's icon is double-clicked. For a signal that emits when any part of the item is double-clicked, see . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item is collapsed by a click on the folding arrow. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when is called. Connect to this signal to process the items that are affected when is invoked. The order that the items affected will be processed is as follows: the item that invoked the method, children of that item, and finally parents of that item. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on the tree was pressed (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a cell with the is clicked to be edited. + + + + + Emitted when an item is double-clicked, or selected with a ui_accept input event (e.g. using Enter or Space on the keyboard). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a column's title is clicked with either or . + + + + + Emitted when a left mouse button click does not select any item. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'columns' property. + + + + + Cached name for the 'column_titles_visible' property. + + + + + Cached name for the 'allow_reselect' property. + + + + + Cached name for the 'allow_rmb_select' property. + + + + + Cached name for the 'allow_search' property. + + + + + Cached name for the 'hide_folding' property. + + + + + Cached name for the 'enable_recursive_folding' property. + + + + + Cached name for the 'hide_root' property. + + + + + Cached name for the 'drop_mode_flags' property. + + + + + Cached name for the 'select_mode' property. + + + + + Cached name for the 'scroll_horizontal_enabled' property. + + + + + Cached name for the 'scroll_vertical_enabled' property. + + + + + Cached name for the 'auto_tooltip' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'create_item' method. + + + + + Cached name for the 'get_root' method. + + + + + Cached name for the 'set_column_custom_minimum_width' method. + + + + + Cached name for the 'set_column_expand' method. + + + + + Cached name for the 'set_column_expand_ratio' method. + + + + + Cached name for the 'set_column_clip_content' method. + + + + + Cached name for the 'is_column_expanding' method. + + + + + Cached name for the 'is_column_clipping_content' method. + + + + + Cached name for the 'get_column_expand_ratio' method. + + + + + Cached name for the 'get_column_width' method. + + + + + Cached name for the 'set_hide_root' method. + + + + + Cached name for the 'is_root_hidden' method. + + + + + Cached name for the 'get_next_selected' method. + + + + + Cached name for the 'get_selected' method. + + + + + Cached name for the 'set_selected' method. + + + + + Cached name for the 'get_selected_column' method. + + + + + Cached name for the 'get_pressed_button' method. + + + + + Cached name for the 'set_select_mode' method. + + + + + Cached name for the 'get_select_mode' method. + + + + + Cached name for the 'deselect_all' method. + + + + + Cached name for the 'set_columns' method. + + + + + Cached name for the 'get_columns' method. + + + + + Cached name for the 'get_edited' method. + + + + + Cached name for the 'get_edited_column' method. + + + + + Cached name for the 'edit_selected' method. + + + + + Cached name for the 'get_custom_popup_rect' method. + + + + + Cached name for the 'get_item_area_rect' method. + + + + + Cached name for the 'get_item_at_position' method. + + + + + Cached name for the 'get_column_at_position' method. + + + + + Cached name for the 'get_drop_section_at_position' method. + + + + + Cached name for the 'get_button_id_at_position' method. + + + + + Cached name for the 'ensure_cursor_is_visible' method. + + + + + Cached name for the 'set_column_titles_visible' method. + + + + + Cached name for the 'are_column_titles_visible' method. + + + + + Cached name for the 'set_column_title' method. + + + + + Cached name for the 'get_column_title' method. + + + + + Cached name for the 'set_column_title_alignment' method. + + + + + Cached name for the 'get_column_title_alignment' method. + + + + + Cached name for the 'set_column_title_direction' method. + + + + + Cached name for the 'get_column_title_direction' method. + + + + + Cached name for the 'set_column_title_language' method. + + + + + Cached name for the 'get_column_title_language' method. + + + + + Cached name for the 'get_scroll' method. + + + + + Cached name for the 'scroll_to_item' method. + + + + + Cached name for the 'set_h_scroll_enabled' method. + + + + + Cached name for the 'is_h_scroll_enabled' method. + + + + + Cached name for the 'set_v_scroll_enabled' method. + + + + + Cached name for the 'is_v_scroll_enabled' method. + + + + + Cached name for the 'set_hide_folding' method. + + + + + Cached name for the 'is_folding_hidden' method. + + + + + Cached name for the 'set_enable_recursive_folding' method. + + + + + Cached name for the 'is_recursive_folding_enabled' method. + + + + + Cached name for the 'set_drop_mode_flags' method. + + + + + Cached name for the 'get_drop_mode_flags' method. + + + + + Cached name for the 'set_allow_rmb_select' method. + + + + + Cached name for the 'get_allow_rmb_select' method. + + + + + Cached name for the 'set_allow_reselect' method. + + + + + Cached name for the 'get_allow_reselect' method. + + + + + Cached name for the 'set_allow_search' method. + + + + + Cached name for the 'get_allow_search' method. + + + + + Cached name for the 'set_auto_tooltip' method. + + + + + Cached name for the 'is_auto_tooltip_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'item_selected' signal. + + + + + Cached name for the 'cell_selected' signal. + + + + + Cached name for the 'multi_selected' signal. + + + + + Cached name for the 'item_mouse_selected' signal. + + + + + Cached name for the 'empty_clicked' signal. + + + + + Cached name for the 'item_edited' signal. + + + + + Cached name for the 'custom_item_clicked' signal. + + + + + Cached name for the 'item_icon_double_clicked' signal. + + + + + Cached name for the 'item_collapsed' signal. + + + + + Cached name for the 'check_propagated_to_item' signal. + + + + + Cached name for the 'button_clicked' signal. + + + + + Cached name for the 'custom_popup_edited' signal. + + + + + Cached name for the 'item_activated' signal. + + + + + Cached name for the 'column_title_clicked' signal. + + + + + Cached name for the 'nothing_selected' signal. + + + + + UndoRedo works by registering methods and property changes inside "actions". You can create an action, then provide ways to do and undo this action using function calls and property changes, then commit the action. + When an action is committed, all of the do_* methods will run. If the method is used, the undo_* methods will run. If the method is used, once again, all of the do_* methods will run. + Here's an example on how to add an action: + + private UndoRedo _undoRedo; + + public override void _Ready() + { + _undoRedo = new UndoRedo(); + } + + public void DoSomething() + { + // Put your code here. + } + + public void UndoSomething() + { + // Put here the code that reverts what's done by "DoSomething()". + } + + private void OnMyButtonPressed() + { + var node = GetNode<Node2D>("MyNode2D"); + _undoRedo.CreateAction("Move the node"); + _undoRedo.AddDoMethod(new Callable(this, MethodName.DoSomething)); + _undoRedo.AddUndoMethod(new Callable(this, MethodName.UndoSomething)); + _undoRedo.AddDoProperty(node, "position", new Vector2(100, 100)); + _undoRedo.AddUndoProperty(node, "position", node.Position); + _undoRedo.CommitAction(); + } + + Before calling any of the add_(un)do_* methods, you need to first call . Afterwards you need to call . + If you don't need to register a method, you can leave and 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. + + _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(); + + + + + + + + + Makes "do"/"undo" operations stay in separate actions. + + + + + Merges this action with the previous one if they have the same name. Keeps only the first action's "undo" operations and the last action's "do" operations. Useful for sequential changes to a single value. + + + + + Merges this action with the previous one if they have the same name. + + + + + The maximum number of steps that can be stored in the undo/redo history. If the number of stored steps exceeds this limit, older steps are removed from history and can no longer be reached by calling . A value of 0 or lower means no limit. + + + + + Create a new action. After this is called, do all your calls to , , , and , then commit the action with . + The way actions are merged is dictated by . See for details. + The way undo operation are ordered in actions is dictated by . When is undo option are ordered in the same order they were added. Which means the first operation to be added will be the first to be undone. + + + + + Commit the action. If is (which it is by default), all "do" methods/properties are called/set when this function is called. + + + + + Returns if the is currently committing the action, i.e. running its "do" method or property change (see ). + + + + + Register a that will be called when the action is committed. + + + + + Register a that will be called when the action is undone. + + + + + Register a that would change its value to when the action is committed. + + + + + Register a that would change its value to when the action is undone. + + + + + Register a reference to an object that will be erased if the "do" history is deleted. This is useful for objects added by the "do" action and removed by the "undo" action. + When the "do" history is deleted, if the object is a , it will be unreferenced. Otherwise, it will be freed. Do not use for resources. + + var node = Node2D.new() + undo_redo.create_action("Add node") + undo_redo.add_do_method(add_child.bind(node)) + undo_redo.add_do_reference(node) + undo_redo.add_undo_method(remove_child.bind(node)) + undo_redo.commit_action() + + + + + + Register a reference to an object that will be erased if the "undo" history is deleted. This is useful for objects added by the "undo" action and removed by the "do" action. + When the "undo" history is deleted, if the object is a , it will be unreferenced. Otherwise, it will be freed. Do not use for resources. + + var node = $Node2D + undo_redo.create_action("Remove node") + undo_redo.add_do_method(remove_child.bind(node)) + undo_redo.add_undo_method(add_child.bind(node)) + undo_redo.add_undo_reference(node) + undo_redo.commit_action() + + + + + + Marks the next "do" and "undo" operations to be processed even if the action gets merged with another in the mode. Return to normal operation using . + + + + + Stops marking operations as to be processed even if the action gets merged with another in the mode. See . + + + + + Returns how many elements are in the history. + + + + + Gets the index of the current action. + + + + + Gets the action name from its index. + + + + + Clear the undo/redo history and associated references. + Passing to will prevent the version number from increasing when the history is cleared. + + + + + Gets the name of the current action, equivalent to get_action_name(get_current_action()). + + + + + Returns if an "undo" action is available. + + + + + Returns if a "redo" action is available. + + + + + Gets the version. Every time a new action is committed, the 's version number is increased automatically. + This is useful mostly to check if something changed from a saved version. + + + + + Redo the last action. + + + + + Undo the last action. + + + + + Called when or was called. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'max_steps' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_action' method. + + + + + Cached name for the 'commit_action' method. + + + + + Cached name for the 'is_committing_action' method. + + + + + Cached name for the 'add_do_method' method. + + + + + Cached name for the 'add_undo_method' method. + + + + + Cached name for the 'add_do_property' method. + + + + + Cached name for the 'add_undo_property' method. + + + + + Cached name for the 'add_do_reference' method. + + + + + Cached name for the 'add_undo_reference' method. + + + + + Cached name for the 'start_force_keep_in_merge_ends' method. + + + + + Cached name for the 'end_force_keep_in_merge_ends' method. + + + + + Cached name for the 'get_history_count' method. + + + + + Cached name for the 'get_current_action' method. + + + + + Cached name for the 'get_action_name' method. + + + + + Cached name for the 'clear_history' method. + + + + + Cached name for the 'get_current_action_name' method. + + + + + Cached name for the 'has_undo' method. + + + + + Cached name for the 'has_redo' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'set_max_steps' method. + + + + + Cached name for the 'get_max_steps' method. + + + + + Cached name for the 'redo' method. + + + + + Cached name for the 'undo' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'version_changed' signal. + + + + + Left side, usually used for or -derived classes. + + + + + Top side, usually used for or -derived classes. + + + + + Right side, usually used for or -derived classes. + + + + + Bottom side, usually used for or -derived classes. + + + + + Top-left corner. + + + + + Top-right corner. + + + + + Bottom-right corner. + + + + + Bottom-left corner. + + + + + General vertical alignment, usually used for , , , etc. + + + + + General horizontal alignment, usually used for , , , etc. + + + + + Clockwise rotation. Used by some methods (e.g. ). + + + + + Counter-clockwise rotation. Used by some methods (e.g. ). + + + + + Horizontal left alignment, usually for text-derived classes. + + + + + Horizontal center alignment, usually for text-derived classes. + + + + + Horizontal right alignment, usually for text-derived classes. + + + + + Expand row to fit width, usually for text-derived classes. + + + + + Vertical top alignment, usually for text-derived classes. + + + + + Vertical center alignment, usually for text-derived classes. + + + + + Vertical bottom alignment, usually for text-derived classes. + + + + + Expand rows to fit height, usually for text-derived classes. + + + + + Aligns the top of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the center of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the baseline (user defined) of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the bottom of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the position of the inline object (e.g. image, table) specified by INLINE_ALIGNMENT_*_TO constant to the top of the text. + + + + + Aligns the position of the inline object (e.g. image, table) specified by INLINE_ALIGNMENT_*_TO constant to the center of the text. + + + + + Aligns the position of the inline object (e.g. image, table) specified by INLINE_ALIGNMENT_*_TO constant to the baseline of the text. + + + + + Aligns inline object (e.g. image, table) to the bottom of the text. + + + + + Aligns top of the inline object (e.g. image, table) to the top of the text. Equivalent to INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP. + + + + + Aligns center of the inline object (e.g. image, table) to the center of the text. Equivalent to INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER. + + + + + Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equivalent to INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM. + + + + + A bit mask for INLINE_ALIGNMENT_*_TO alignment constants. + + + + + A bit mask for INLINE_ALIGNMENT_TO_* alignment constants. + + + + + Specifies that Euler angles should be in XYZ order. When composing, the order is X, Y, Z. When decomposing, the order is reversed, first Z, then Y, and X last. + + + + + Specifies that Euler angles should be in XZY order. When composing, the order is X, Z, Y. When decomposing, the order is reversed, first Y, then Z, and X last. + + + + + Specifies that Euler angles should be in YXZ order. When composing, the order is Y, X, Z. When decomposing, the order is reversed, first Z, then X, and Y last. + + + + + Specifies that Euler angles should be in YZX order. When composing, the order is Y, Z, X. When decomposing, the order is reversed, first X, then Z, and Y last. + + + + + Specifies that Euler angles should be in ZXY order. When composing, the order is Z, X, Y. When decomposing, the order is reversed, first Y, then X, and Z last. + + + + + Specifies that Euler angles should be in ZYX order. When composing, the order is Z, Y, X. When decomposing, the order is reversed, first X, then Y, and Z last. + + + + + Enum value which doesn't correspond to any key. This is used to initialize properties with a generic state. + + + + + Keycodes with this bit applied are non-printable. + + + + + Escape key. + + + + + Tab key. + + + + + Shift + Tab key. + + + + + Backspace key. + + + + + Return key (on the main keyboard). + + + + + Enter key on the numeric keypad. + + + + + Insert key. + + + + + Delete key. + + + + + Pause key. + + + + + Print Screen key. + + + + + System Request key. + + + + + Clear key. + + + + + Home key. + + + + + End key. + + + + + Left arrow key. + + + + + Up arrow key. + + + + + Right arrow key. + + + + + Down arrow key. + + + + + Page Up key. + + + + + Page Down key. + + + + + Shift key. + + + + + Control key. + + + + + Meta key. + + + + + Alt key. + + + + + Caps Lock key. + + + + + Num Lock key. + + + + + Scroll Lock key. + + + + + F1 key. + + + + + F2 key. + + + + + F3 key. + + + + + F4 key. + + + + + F5 key. + + + + + F6 key. + + + + + F7 key. + + + + + F8 key. + + + + + F9 key. + + + + + F10 key. + + + + + F11 key. + + + + + F12 key. + + + + + F13 key. + + + + + F14 key. + + + + + F15 key. + + + + + F16 key. + + + + + F17 key. + + + + + F18 key. + + + + + F19 key. + + + + + F20 key. + + + + + F21 key. + + + + + F22 key. + + + + + F23 key. + + + + + F24 key. + + + + + F25 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F26 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F27 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F28 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F29 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F30 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F31 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F32 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F33 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F34 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F35 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + Multiply (*) key on the numeric keypad. + + + + + Divide (/) key on the numeric keypad. + + + + + Subtract (-) key on the numeric keypad. + + + + + Period (.) key on the numeric keypad. + + + + + Add (+) key on the numeric keypad. + + + + + Number 0 on the numeric keypad. + + + + + Number 1 on the numeric keypad. + + + + + Number 2 on the numeric keypad. + + + + + Number 3 on the numeric keypad. + + + + + Number 4 on the numeric keypad. + + + + + Number 5 on the numeric keypad. + + + + + Number 6 on the numeric keypad. + + + + + Number 7 on the numeric keypad. + + + + + Number 8 on the numeric keypad. + + + + + Number 9 on the numeric keypad. + + + + + Context menu key. + + + + + Hyper key. (On Linux/X11 only). + + + + + Help key. + + + + + Back key. + + + + + Forward key. + + + + + Media stop key. + + + + + Refresh key. + + + + + Volume down key. + + + + + Mute volume key. + + + + + Volume up key. + + + + + Media play key. + + + + + Media stop key. + + + + + Previous song key. + + + + + Next song key. + + + + + Media record key. + + + + + Home page key. + + + + + Favorites key. + + + + + Search key. + + + + + Standby key. + + + + + Open URL / Launch Browser key. + + + + + Launch Mail key. + + + + + Launch Media key. + + + + + Launch Shortcut 0 key. + + + + + Launch Shortcut 1 key. + + + + + Launch Shortcut 2 key. + + + + + Launch Shortcut 3 key. + + + + + Launch Shortcut 4 key. + + + + + Launch Shortcut 5 key. + + + + + Launch Shortcut 6 key. + + + + + Launch Shortcut 7 key. + + + + + Launch Shortcut 8 key. + + + + + Launch Shortcut 9 key. + + + + + Launch Shortcut A key. + + + + + Launch Shortcut B key. + + + + + Launch Shortcut C key. + + + + + Launch Shortcut D key. + + + + + Launch Shortcut E key. + + + + + Launch Shortcut F key. + + + + + "Globe" key on Mac / iPad keyboard. + + + + + "On-screen keyboard" key on iPad keyboard. + + + + + 英数 key on Mac keyboard. + + + + + かな key on Mac keyboard. + + + + + Unknown key. + + + + + Space key. + + + + + Exclamation mark (!) key. + + + + + Double quotation mark (") key. + + + + + Number sign or hash (#) key. + + + + + Dollar sign ($) key. + + + + + Percent sign (%) key. + + + + + Ampersand (&) key. + + + + + Apostrophe (') key. + + + + + Left parenthesis (() key. + + + + + Right parenthesis ()) key. + + + + + Asterisk (*) key. + + + + + Plus (+) key. + + + + + Comma (,) key. + + + + + Minus (-) key. + + + + + Period (.) key. + + + + + Slash (/) key. + + + + + Number 0 key. + + + + + Number 1 key. + + + + + Number 2 key. + + + + + Number 3 key. + + + + + Number 4 key. + + + + + Number 5 key. + + + + + Number 6 key. + + + + + Number 7 key. + + + + + Number 8 key. + + + + + Number 9 key. + + + + + Colon (:) key. + + + + + Semicolon (;) key. + + + + + Less-than sign (<) key. + + + + + Equal sign (=) key. + + + + + Greater-than sign (>) key. + + + + + Question mark (?) key. + + + + + At sign (@) key. + + + + + A key. + + + + + B key. + + + + + C key. + + + + + D key. + + + + + E key. + + + + + F key. + + + + + G key. + + + + + H key. + + + + + I key. + + + + + J key. + + + + + K key. + + + + + L key. + + + + + M key. + + + + + N key. + + + + + O key. + + + + + P key. + + + + + Q key. + + + + + R key. + + + + + S key. + + + + + T key. + + + + + U key. + + + + + V key. + + + + + W key. + + + + + X key. + + + + + Y key. + + + + + Z key. + + + + + Left bracket ([lb]) key. + + + + + Backslash (\) key. + + + + + Right bracket ([rb]) key. + + + + + Caret (^) key. + + + + + Underscore (_) key. + + + + + Backtick (`) key. + + + + + Left brace ({) key. + + + + + Vertical bar or pipe (|) key. + + + + + Right brace (}) key. + + + + + Tilde (~) key. + + + + + Yen symbol (¥) key. + + + + + Section sign (§) key. + + + + + Key Code mask. + + + + + Modifier key mask. + + + + + Automatically remapped to on macOS and on other platforms, this mask is never set in the actual events, and should be used for key mapping only. + + + + + Shift key mask. + + + + + Alt or Option (on macOS) key mask. + + + + + Command (on macOS) or Meta/Windows key mask. + + + + + Control key mask. + + + + + Keypad key mask. + + + + + Group Switch key mask. + + + + + Used for keys which only appear once, or when a comparison doesn't need to differentiate the LEFT and RIGHT versions. + For example, when using , an event which has will match any on the passed event. + + + + + A key which is to the left of its twin. + + + + + A key which is to the right of its twin. + + + + + Enum value which doesn't correspond to any mouse button. This is used to initialize properties with a generic state. + + + + + Primary mouse button, usually assigned to the left button. + + + + + Secondary mouse button, usually assigned to the right button. + + + + + Middle mouse button. + + + + + Mouse wheel scrolling up. + + + + + Mouse wheel scrolling down. + + + + + Mouse wheel left button (only present on some mice). + + + + + Mouse wheel right button (only present on some mice). + + + + + Extra mouse button 1. This is sometimes present, usually to the sides of the mouse. + + + + + Extra mouse button 2. This is sometimes present, usually to the sides of the mouse. + + + + + Primary mouse button mask, usually for the left button. + + + + + Secondary mouse button mask, usually for the right button. + + + + + Middle mouse button mask. + + + + + Extra mouse button 1 mask. + + + + + Extra mouse button 2 mask. + + + + + An invalid game controller button. + + + + + Game controller SDL button A. Corresponds to the bottom action button: Sony Cross, Xbox A, Nintendo B. + + + + + Game controller SDL button B. Corresponds to the right action button: Sony Circle, Xbox B, Nintendo A. + + + + + Game controller SDL button X. Corresponds to the left action button: Sony Square, Xbox X, Nintendo Y. + + + + + Game controller SDL button Y. Corresponds to the top action button: Sony Triangle, Xbox Y, Nintendo X. + + + + + Game controller SDL back button. Corresponds to the Sony Select, Xbox Back, Nintendo - button. + + + + + Game controller SDL guide button. Corresponds to the Sony PS, Xbox Home button. + + + + + Game controller SDL start button. Corresponds to the Sony Options, Xbox Menu, Nintendo + button. + + + + + Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS button. + + + + + Game controller SDL right stick button. Corresponds to the Sony R3, Xbox R/RS button. + + + + + Game controller SDL left shoulder button. Corresponds to the Sony L1, Xbox LB button. + + + + + Game controller SDL right shoulder button. Corresponds to the Sony R1, Xbox RB button. + + + + + Game controller D-pad up button. + + + + + Game controller D-pad down button. + + + + + Game controller D-pad left button. + + + + + Game controller D-pad right button. + + + + + Game controller SDL miscellaneous button. Corresponds to Xbox share button, PS5 microphone button, Nintendo Switch capture button. + + + + + Game controller SDL paddle 1 button. + + + + + Game controller SDL paddle 2 button. + + + + + Game controller SDL paddle 3 button. + + + + + Game controller SDL paddle 4 button. + + + + + Game controller SDL touchpad button. + + + + + The number of SDL game controller buttons. + + + + + The maximum number of game controller buttons supported by the engine. The actual limit may be lower on specific platforms: + - Android: Up to 36 buttons. + - Linux: Up to 80 buttons. + - Windows and macOS: Up to 128 buttons. + + + + + An invalid game controller axis. + + + + + Game controller left joystick x-axis. + + + + + Game controller left joystick y-axis. + + + + + Game controller right joystick x-axis. + + + + + Game controller right joystick y-axis. + + + + + Game controller left trigger axis. + + + + + Game controller right trigger axis. + + + + + The number of SDL game controller axes. + + + + + The maximum number of game controller axes: OpenVR supports up to 5 Joysticks making a total of 10 axes. + + + + + Does not correspond to any MIDI message. This is the default value of . + + + + + MIDI message sent when a note is released. + Note: Not all MIDI devices send this message; some may send with set to 0. + + + + + MIDI message sent when a note is pressed. + + + + + MIDI message sent to indicate a change in pressure while a note is being pressed down, also called aftertouch. + + + + + 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 General MIDI specification for a small list. + + + + + MIDI message sent when the MIDI device changes its current instrument (also called program or preset). + + + + + MIDI message sent to indicate a change in pressure for the whole channel. Some MIDI devices may send this instead of . + + + + + MIDI message sent when the value of the pitch bender changes, usually a wheel on the MIDI device. + + + + + MIDI system exclusive (SysEx) message. This type of message is not standardized and it's highly dependent on the MIDI device sending it. + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent every quarter frame to keep connected MIDI devices synchronized. Related to . + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent to jump onto a new position in the current sequence or song. + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent to select a sequence or song to play. + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent to request a tuning calibration. Used on analog synthesizers. Most modern MIDI devices do not need this message. + + + + + MIDI message sent 24 times after , to keep connected MIDI devices synchronized. + + + + + MIDI message sent to start the current sequence or song from the beginning. + + + + + MIDI message sent to resume from the point the current sequence or song was paused. + + + + + MIDI message sent to pause the current sequence or song. + + + + + 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. + + + + + 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. + + + + + Methods that return return when no error occurred. + Since has value 0, and all other error constants are positive integers, it can also be used in boolean checks. + + var error = method_that_returns_error() + if error != OK: + printerr("Failure!") + + # Or, alternatively: + if error: + printerr("Still failing!") + + Note: Many functions do not return an error code, but will print error messages to standard output. + + + + + Generic error. + + + + + Unavailable error. + + + + + Unconfigured error. + + + + + Unauthorized error. + + + + + Parameter range error. + + + + + Out of memory (OOM) error. + + + + + File: Not found error. + + + + + File: Bad drive error. + + + + + File: Bad path error. + + + + + File: No permission error. + + + + + File: Already in use error. + + + + + File: Can't open error. + + + + + File: Can't write error. + + + + + File: Can't read error. + + + + + File: Unrecognized error. + + + + + File: Corrupt error. + + + + + File: Missing dependencies error. + + + + + File: End of file (EOF) error. + + + + + Can't open error. + + + + + Can't create error. + + + + + Query failed error. + + + + + Already in use error. + + + + + Locked error. + + + + + Timeout error. + + + + + Can't connect error. + + + + + Can't resolve error. + + + + + Connection error. + + + + + Can't acquire resource error. + + + + + Can't fork process error. + + + + + Invalid data error. + + + + + Invalid parameter error. + + + + + Already exists error. + + + + + Does not exist error. + + + + + Database: Read error. + + + + + Database: Write error. + + + + + Compilation failed error. + + + + + Method not found error. + + + + + Linking failed error. + + + + + Script failed error. + + + + + Cycling link (import cycle) error. + + + + + Invalid declaration error. + + + + + Duplicate symbol error. + + + + + Parse error. + + + + + Busy error. + + + + + Skip error. + + + + + Help error. Used internally when passing --version or --help as executable options. + + + + + Bug error, caused by an implementation issue in the method. + Note: If a built-in method returns this code, please open an issue on the GitHub Issue Tracker. + + + + + Printer on fire error (This is an easter egg, no built-in methods return this error code). + + + + + The property has no hint for the editor. + + + + + Hints that an or property should be within a range specified via the hint string "min,max" or "min,max,step". The hint string can optionally include "or_greater" and/or "or_less" to allow manual input going respectively above the max or below the min values. + Example: "-360,360,1,or_greater,or_less". + Additionally, other keywords can be included: "exp" for exponential range editing, "radians_as_degrees" for editing radian angles in degrees (the range values are also in degrees), "degrees" to hint at an angle and "hide_slider" to hide the slider. + + + + + Hints that an or 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 "Hello,Something,Else". Whitespaces are not 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 :integer to the name, e.g. "Zero,One,Three:3,Four,Six:6". + + + + + Hints that a property can be an enumerated value to pick in a list specified via a hint string such as "Hello,Something,Else". + Unlike , a property with this hint still accepts arbitrary values and can be empty. The list of values serves to suggest possible values. + + + + + Hints that a property should be edited via an exponential easing function. The hint string can include "attenuation" to flip the curve horizontally and/or "positive_only" to exclude in/out easing and limit values to be greater than or equal to zero. + + + + + Hints that a vector property should allow its components to be linked. For example, this allows Vector2.x and Vector2.y to be edited together. + + + + + Hints that an property is a bitmask with named bit flags. + The hint string is a comma separated list of names such as "Bit0,Bit1,Bit2,Bit3". Whitespaces are not 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 :integer to the name, e.g. "A:4,B:8,C:16". You can also combine several flags ("A:4,B:8,AB:12,C:16"). + Note: A flag value must be at least 1 and at most 2 ** 32 - 1. + Note: Unlike , the previous explicit value is not taken into account. For the hint "A:16,B,C", A is 16, B is 2, C is 4. + + + + + Hints that an property is a bitmask using the optionally named 2D render layers. + + + + + Hints that an property is a bitmask using the optionally named 2D physics layers. + + + + + Hints that an property is a bitmask using the optionally named 2D navigation layers. + + + + + Hints that an property is a bitmask using the optionally named 3D render layers. + + + + + Hints that an property is a bitmask using the optionally named 3D physics layers. + + + + + Hints that an property is a bitmask using the optionally named 3D navigation layers. + + + + + Hints that an integer property is a bitmask using the optionally named avoidance layers. + + + + + Hints that a 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 "*.png,*.jpg". + + + + + Hints that a property is a path to a directory. Editing it will show a file dialog for picking the path. + + + + + Hints that a 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 "*.png,*.jpg". + + + + + Hints that a property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path. + + + + + Hints that a property is an instance of a -derived type, optionally specified via the hint string (e.g. "Texture2D"). Editing it will show a popup menu of valid resource types to instantiate. + + + + + Hints that a property is text with line breaks. Editing it will show a text input field where line breaks can be typed. + + + + + Hints that a property is an . + + + + + Hints that a property should show a placeholder text on its input field, if empty. The hint string is the placeholder text to use. + + + + + Hints that a property should be edited without affecting its transparency (Color.a is not editable). + + + + + 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. + + + + + If a property is , 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 , hints the editor how to show elements. The hint_string must encode nested types using ":" and "/". + + // 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}"; + + Examples: + + 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. + + Note: The trailing colon is required for properly detecting built-in types. + + + + + Hints that an object is too big to be sent via the debugger. + + + + + Hints that the hint string specifies valid node types for property of type . + + + + + Hints that a 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 "*.png,*.jpg". See also . + + + + + Hints that a 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 "*.png,*.jpg". See also . + + + + + Hints that an property is a pointer. Used by GDExtension. + + + + + Hints that a property is an with the stored type specified in the hint string. + + + + + Hints that a property is a with the stored types specified in the hint string. + + + + + Hints that a string property is a locale code. Editing it will show a locale dialog for picking language and country. + + + + + Hints that a dictionary property is string translation map. Dictionary keys are locale codes and, values are translated strings. + + + + + Hints that a property is an instance of a -derived type, optionally specified via the hint string (e.g. "Node2D"). Editing it will show a dialog for picking a node from the scene. + + + + + Hints that a quaternion property should disable the temporary euler editor. + + + + + Hints that a string property is a password, and every character is replaced with the secret character. + + + + + Hints that a property should be displayed as a clickable button. When the button is pressed, the callable is called. The hint string specifies the button text and optionally an icon from the "EditorIcons" theme type. + + "Click me!" - A button with the text "Click me!" and the default "Callable" icon. + "Click me!,ColorRect" - A button with the text "Click me!" and the "ColorRect" icon. + + Note: A cannot be properly serialized and stored in a file, so it is recommended to use instead of . + + + + + Hints that a property will be changed on its own after setting, such as or . + + + + + Represents the size of the enum. + + + + + The property is not stored, and does not display in the editor. This is the default for non-exported properties. + + + + + The property is serialized and saved in the scene file (default for exported properties). + + + + + The property is shown in the EditorInspector (default for exported properties). + + + + + The property is excluded from the class reference. + + + + + The property can be checked in the EditorInspector. + + + + + The property is checked in the EditorInspector. + + + + + Used to group properties together in the editor. See EditorInspector. + + + + + Used to categorize properties together in the editor. + + + + + Used to group properties together in the editor in a subgroup (under a group). See EditorInspector. + + + + + The property is a bitfield, i.e. it contains multiple flags represented as bits. + + + + + The property does not save its state in . + + + + + Editing the property prompts the user for restarting the editor. + + + + + The property is a script variable. can be used to distinguish between exported script variables from built-in variables (which don't have this usage flag). By default, is not applied to variables that are created by overriding in a script. + + + + + The property value of type will be stored even if its value is . + + + + + If this property is modified, all inspector fields will be refreshed. + + + + + The property is a variable of enum type, i.e. it only takes named integer constants from its associated enumeration. + + + + + If property has nil as default value, its type will be . + + + + + The property is an array. + + + + + When duplicating a resource with , and this flag is set on a property of that resource, the property should always be duplicated, regardless of the subresources bool parameter. + + + + + When duplicating a resource with , and this flag is set on a property of that resource, the property should never be duplicated, regardless of the subresources bool parameter. + + + + + The property is only shown in the editor if modern renderers are supported (the Compatibility rendering method is excluded). + + + + + The property will always be relative to the scene's root. Mostly useful for local resources. + + + + + Use when a resource is created on the fly, i.e. the getter will always return a different instance. needs this information to properly save such resources. + + + + + Inserting an animation key frame of this property will automatically increment the value, allowing to easily keyframe multiple values in a row. + + + + + When this property is a and base object is a , a resource instance will be automatically created whenever the node is created in the editor. + + + + + The property is considered a basic setting and will appear even when advanced mode is disabled. Used for project settings. + + + + + The property is read-only in the EditorInspector. + + + + + An export preset property with this flag contains confidential information and is stored separately from the rest of the export preset configuration. + + + + + Default usage (storage and editor). + + + + + Default usage but without showing the property in the editor (storage). + + + + + Flag for a normal method. + + + + + Flag for an editor method. + + + + + Flag for a constant method. + + + + + Flag for a virtual method. + + + + + Flag for a method with a variable number of arguments. + + + + + Flag for a static method. + + + + + Used internally. Allows to not dump core virtual methods (such as ) to the JSON API. + + + + + Default method flags (normal). + + + + + This class holds the context information required for encryption and decryption operations with AES (Advanced Encryption Standard). Both AES-ECB and AES-CBC modes are supported. + + using Godot; + using System.Diagnostics; + + public partial class MyNode : Node + { + private AesContext _aes = new AesContext(); + + public override void _Ready() + { + string key = "My secret key!!!"; // Key must be either 16 or 32 bytes. + string data = "My secret text!!"; // Data size must be multiple of 16 bytes, apply padding if needed. + // Encrypt ECB + _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer()); + byte[] encrypted = _aes.Update(data.ToUtf8Buffer()); + _aes.Finish(); + // Decrypt ECB + _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer()); + byte[] decrypted = _aes.Update(encrypted); + _aes.Finish(); + // Check ECB + Debug.Assert(decrypted == data.ToUtf8Buffer()); + + string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes. + // Encrypt CBC + _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer()); + encrypted = _aes.Update(data.ToUtf8Buffer()); + _aes.Finish(); + // Decrypt CBC + _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer()); + decrypted = _aes.Update(encrypted); + _aes.Finish(); + // Check CBC + Debug.Assert(decrypted == data.ToUtf8Buffer()); + } + } + + + + + + AES electronic codebook encryption mode. + + + + + AES electronic codebook decryption mode. + + + + + AES cipher blocker chaining encryption mode. + + + + + AES cipher blocker chaining decryption mode. + + + + + Maximum value for the mode enum. + + + + + Start the AES context in the given . A of either 16 or 32 bytes must always be provided, while an (initialization vector) of exactly 16 bytes, is only needed when is either or . + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Start the AES context in the given . A of either 16 or 32 bytes must always be provided, while an (initialization vector) of exactly 16 bytes, is only needed when is either or . + + + + + Run the desired operation for this AES context. Will return a [] containing the result of encrypting (or decrypting) the given . See for mode of operation. + Note: The size of must be a multiple of 16. Apply some padding if needed. + + + + + Run the desired operation for this AES context. Will return a [] containing the result of encrypting (or decrypting) the given . See for mode of operation. + Note: The size of must be a multiple of 16. Apply some padding if needed. + + + + + Get the current IV state for this context (IV gets updated when calling ). You normally don't need this function. + Note: This function only makes sense when the context is started with or . + + + + + Close this AES context so it can be started again. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'get_iv_state' method. + + + + + Cached name for the 'finish' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An implementation of the A* algorithm, used to find the shortest path between two vertices on a connected graph in 2D space. + See for a more thorough explanation on how to use this class. is a wrapper for that enforces 2D coordinates. + + + + + Called when computing the cost between two connected points. + Note that this function is hidden in the default class. + + + + + Called when estimating the cost between a point and the path's ending point. + Note that this function is hidden in the default class. + + + + + Returns the next available point ID with no point associated to it. + + + + + Adds a new point at the given position with the given identifier. The must be 0 or larger, and the must be 0.0 or greater. + The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. Thus, all else being equal, the algorithm prefers points with lower s to form a path. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(1, 0), 4); // Adds the point (1, 0) with weight_scale 4 and id 1 + + If there already exists a point for the given , its position and weight scale are updated to the given values. + + + + + Returns the position of the point associated with the given . + + + + + Sets the for the point with the given . + + + + + Returns the weight scale of the point associated with the given . + + + + + Sets the for the point with the given . The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. + + + + + Removes the point associated with the given from the points pool. + + + + + Returns whether a point associated with the given exists. + + + + + Returns an array with the IDs of the points that form the connection with the given point. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 1)); + astar.AddPoint(3, new Vector2(1, 1)); + astar.AddPoint(4, new Vector2(2, 0)); + + astar.ConnectPoints(1, 2, true); + astar.ConnectPoints(1, 3, true); + + long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] + + + + + + Returns an array of all point IDs. + + + + + Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle. + + + + + Returns whether a point is disabled or not for pathfinding. By default, all points are enabled. + + + + + Creates a segment between the given points. If is , only movement from to is allowed, not the reverse direction. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(1, 1)); + astar.AddPoint(2, new Vector2(0, 5)); + astar.ConnectPoints(1, 2, false); + + + + + + Deletes the segment between the given points. If is , only movement from to is prevented, and a unidirectional segment possibly remains. + + + + + Returns whether there is a connection/segment between the given points. If is , returns whether movement from to is possible through this segment. + + + + + Returns the number of points currently in the points pool. + + + + + Returns the capacity of the structure backing the points, useful in conjunction with . + + + + + Reserves space internally for points. Useful if you're adding a known large number of points at once, such as points on a grid. The new capacity must be greater or equal to the old capacity. + + + + + Clears all the points and segments. + + + + + Returns the ID of the closest point to , optionally taking disabled points into account. Returns -1 if there are no points in the points pool. + Note: If several points are the closest to , the one with the smallest ID will be returned, ensuring a deterministic result. + + + + + Returns the closest position to that resides inside a segment between two connected points. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 5)); + astar.ConnectPoints(1, 2); + Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // Returns (0, 3) + + The result is in the segment that goes from y = 0 to y = 5. It's the closest position in the segment to the given point. + + + + + Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1 + astar.AddPoint(3, new Vector2(1, 1)); + astar.AddPoint(4, new Vector2(2, 0)); + + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1 + astar.AddPoint(3, new Vector2(1, 1)); + astar.AddPoint(4, new Vector2(2, 0)); + + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_compute_cost' method. + + + + + Cached name for the '_estimate_cost' method. + + + + + Cached name for the 'get_available_point_id' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_weight_scale' method. + + + + + Cached name for the 'set_point_weight_scale' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'has_point' method. + + + + + Cached name for the 'get_point_connections' method. + + + + + Cached name for the 'get_point_ids' method. + + + + + Cached name for the 'set_point_disabled' method. + + + + + Cached name for the 'is_point_disabled' method. + + + + + Cached name for the 'connect_points' method. + + + + + Cached name for the 'disconnect_points' method. + + + + + Cached name for the 'are_points_connected' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'get_point_capacity' method. + + + + + Cached name for the 'reserve_space' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_position_in_segment' method. + + + + + Cached name for the 'get_point_path' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and create segments manually with . Once done, you can test if there is a path between two points with the function, get a path containing indices by , or one containing actual coordinates with . + It is also possible to use non-Euclidean distances. To do so, create a script that extends and override the methods and . Both should take two point IDs and return the distance between the corresponding points. + Example: Use Manhattan distance instead of Euclidean distance: + + using Godot; + + [GlobalClass] + public partial class MyAStar3D : AStar3D + { + public override float _ComputeCost(long fromId, long toId) + { + Vector3 fromPoint = GetPointPosition(fromId); + Vector3 toPoint = GetPointPosition(toId); + + return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z); + } + + public override float _EstimateCost(long fromId, long toId) + { + Vector3 fromPoint = GetPointPosition(fromId); + Vector3 toPoint = GetPointPosition(toId); + return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z); + } + } + + should return a lower bound of the distance, i.e. _estimate_cost(u, v) <= _compute_cost(u, v). This serves as a hint to the algorithm because the custom might be computation-heavy. If this is not the case, make return the same value as to provide the algorithm with the most accurate information. + If the default and methods are used, or if the supplied 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 results of all segments in the path multiplied by the weight_scales of the endpoints of the respective segments. If the default methods are used and the weight_scales of all points are set to 1.0, then this equals the sum of Euclidean distances of all segments in the path. + + + + + Called when computing the cost between two connected points. + Note that this function is hidden in the default class. + + + + + Called when estimating the cost between a point and the path's ending point. + Note that this function is hidden in the default class. + + + + + Returns the next available point ID with no point associated to it. + + + + + Adds a new point at the given position with the given identifier. The must be 0 or larger, and the must be 0.0 or greater. + The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. Thus, all else being equal, the algorithm prefers points with lower s to form a path. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(1, 0, 0), 4); // Adds the point (1, 0, 0) with weight_scale 4 and id 1 + + If there already exists a point for the given , its position and weight scale are updated to the given values. + + + + + Returns the position of the point associated with the given . + + + + + Sets the for the point with the given . + + + + + Returns the weight scale of the point associated with the given . + + + + + Sets the for the point with the given . The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. + + + + + Removes the point associated with the given from the points pool. + + + + + Returns whether a point associated with the given exists. + + + + + Returns an array with the IDs of the points that form the connection with the given point. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 1, 0)); + astar.AddPoint(3, new Vector3(1, 1, 0)); + astar.AddPoint(4, new Vector3(2, 0, 0)); + astar.ConnectPoints(1, 2, true); + astar.ConnectPoints(1, 3, true); + + long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] + + + + + + Returns an array of all point IDs. + + + + + Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle. + + + + + Returns whether a point is disabled or not for pathfinding. By default, all points are enabled. + + + + + Creates a segment between the given points. If is , only movement from to is allowed, not the reverse direction. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(1, 1, 0)); + astar.AddPoint(2, new Vector3(0, 5, 0)); + astar.ConnectPoints(1, 2, false); + + + + + + Deletes the segment between the given points. If is , only movement from to is prevented, and a unidirectional segment possibly remains. + + + + + Returns whether the two given points are directly connected by a segment. If is , returns whether movement from to is possible through this segment. + + + + + Returns the number of points currently in the points pool. + + + + + Returns the capacity of the structure backing the points, useful in conjunction with . + + + + + Reserves space internally for points. Useful if you're adding a known large number of points at once, such as points on a grid. New capacity must be greater or equals to old capacity. + + + + + Clears all the points and segments. + + + + + Returns the ID of the closest point to , optionally taking disabled points into account. Returns -1 if there are no points in the points pool. + Note: If several points are the closest to , the one with the smallest ID will be returned, ensuring a deterministic result. + + + + + Returns the closest position to that resides inside a segment between two connected points. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 5, 0)); + astar.ConnectPoints(1, 2); + Vector3 res = astar.GetClosestPositionInSegment(new Vector3(3, 3, 0)); // Returns (0, 3, 0) + + The result is in the segment that goes from y = 0 to y = 5. It's the closest position in the segment to the given point. + + + + + Returns an array with the points that are in the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1 + astar.AddPoint(3, new Vector3(1, 1, 0)); + astar.AddPoint(4, new Vector3(2, 0, 0)); + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Returns an array with the points that are in the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1 + astar.AddPoint(3, new Vector3(1, 1, 0)); + astar.AddPoint(4, new Vector3(2, 0, 0)); + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_compute_cost' method. + + + + + Cached name for the '_estimate_cost' method. + + + + + Cached name for the 'get_available_point_id' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_weight_scale' method. + + + + + Cached name for the 'set_point_weight_scale' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'has_point' method. + + + + + Cached name for the 'get_point_connections' method. + + + + + Cached name for the 'get_point_ids' method. + + + + + Cached name for the 'set_point_disabled' method. + + + + + Cached name for the 'is_point_disabled' method. + + + + + Cached name for the 'connect_points' method. + + + + + Cached name for the 'disconnect_points' method. + + + + + Cached name for the 'are_points_connected' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'get_point_capacity' method. + + + + + Cached name for the 'reserve_space' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_position_in_segment' method. + + + + + Cached name for the 'get_point_path' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a variant of 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 , you only need to set the of the grid, optionally set the , and then call the method: + + AStarGrid2D astarGrid = new AStarGrid2D(); + astarGrid.Region = new Rect2I(0, 0, 32, 32); + astarGrid.CellSize = new Vector2I(16, 16); + astarGrid.Update(); + GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // prints (0, 0), (1, 1), (2, 2), (3, 3), (3, 4) + GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // prints (0, 0), (16, 16), (32, 32), (48, 48), (48, 64) + + To remove a point from the pathfinding grid, it must be set as "solid" with . + + + + + The Euclidean heuristic to be used for the pathfinding using the following formula: + + dx = abs(to_id.x - from_id.x) + dy = abs(to_id.y - from_id.y) + result = sqrt(dx * dx + dy * dy) + + Note: This is also the internal heuristic used in and by default (with the inclusion of possible z-axis coordinate). + + + + + The Manhattan heuristic to be used for the pathfinding using the following formula: + + dx = abs(to_id.x - from_id.x) + dy = abs(to_id.y - from_id.y) + result = dx + dy + + Note: This heuristic is intended to be used with 4-side orthogonal movements, provided by setting the to . + + + + + The Octile heuristic to be used for the pathfinding using the following formula: + + 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; + + + + + + The Chebyshev heuristic to be used for the pathfinding using the following formula: + + dx = abs(to_id.x - from_id.x) + dy = abs(to_id.y - from_id.y) + result = max(dx, dy) + + + + + + Represents the size of the enum. + + + + + The pathfinding algorithm will ignore solid neighbors around the target cell and allow passing using diagonals. + + + + + The pathfinding algorithm will ignore all diagonals and the way will be always orthogonal. + + + + + The pathfinding algorithm will avoid using diagonals if at least two obstacles have been placed around the neighboring cells of the specific path segment. + + + + + The pathfinding algorithm will avoid using diagonals if any obstacle has been placed around the neighboring cells of the specific path segment. + + + + + Represents the size of the enum. + + + + + Rectangular cell shape. + + + + + Diamond cell shape (for isometric look). Cell coordinates layout where the horizontal axis goes up-right, and the vertical one goes down-right. + + + + + Diamond cell shape (for isometric look). Cell coordinates layout where the horizontal axis goes down-right, and the vertical one goes down-left. + + + + + Represents the size of the enum. + + + + + The region of grid cells available for pathfinding. If changed, needs to be called before finding the next path. + + + + + The size of the grid (number of cells of size on each axis). If changed, needs to be called before finding the next path. + + + + + The offset of the grid which will be applied to calculate the resulting point position returned by . If changed, needs to be called before finding the next path. + + + + + The size of the point cell which will be applied to calculate the resulting point position returned by . If changed, needs to be called before finding the next path. + + + + + The cell shape. Affects how the positions are placed in the grid. If changed, needs to be called before finding the next path. + + + + + Enables or disables jumping to skip up the intermediate points and speeds up the searching algorithm. + Note: Currently, toggling it on disables the consideration of weight scaling in pathfinding. + + + + + The default which will be used to calculate the cost between two points if was not overridden. + + + + + The default which will be used to calculate the cost between the point and the end point if was not overridden. + + + + + A specific mode which will force the path to avoid or accept the specified diagonals. + + + + + Called when computing the cost between two connected points. + Note that this function is hidden in the default class. + + + + + Called when estimating the cost between a point and the path's ending point. + Note that this function is hidden in the default class. + + + + + Returns if the and is a valid grid coordinate (id), i.e. if it is inside . Equivalent to region.has_point(Vector2i(x, y)). + + + + + Returns if the vector is a valid grid coordinate, i.e. if it is inside . Equivalent to region.has_point(id). + + + + + Indicates that the grid parameters were changed and needs to be called. + + + + + Updates the internal state of the grid according to the parameters to prepare it to search the path. Needs to be called if parameters like , or are changed. will return if this is the case and this needs to be called. + Note: All point data (solidity and weight scale) will be cleared. + + + + + Disables or enables the specified point for pathfinding. Useful for making an obstacle. By default, all points are enabled. + Note: Calling is not needed after the call of this function. + + + + + Returns if a point is disabled for pathfinding. By default, all points are enabled. + + + + + Sets the for the point with the given . The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. + Note: Calling is not needed after the call of this function. + + + + + Returns the weight scale of the point associated with the given . + + + + + Fills the given on the grid with the specified value for the solid flag. + Note: Calling is not needed after the call of this function. + + + + + Fills the given on the grid with the specified value for the weight scale. + Note: Calling is not needed after the call of this function. + + + + + Clears the grid and sets the to Rect2i(0, 0, 0, 0). + + + + + Returns the position of the point associated with the given . + + + + + Returns an array of dictionaries with point data (id: , position: , solid: , weight_scale: ) within a . + + + + + Returns an array with the points that are in the path found by between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is solid the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is solid the search may take an unusually long time to finish. + + + + + Returns an array with the points that are in the path found by between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is solid the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is solid the search may take an unusually long time to finish. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'region' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'cell_shape' property. + + + + + Cached name for the 'jumping_enabled' property. + + + + + Cached name for the 'default_compute_heuristic' property. + + + + + Cached name for the 'default_estimate_heuristic' property. + + + + + Cached name for the 'diagonal_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_compute_cost' method. + + + + + Cached name for the '_estimate_cost' method. + + + + + Cached name for the 'set_region' method. + + + + + Cached name for the 'get_region' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_cell_shape' method. + + + + + Cached name for the 'get_cell_shape' method. + + + + + Cached name for the 'is_in_bounds' method. + + + + + Cached name for the 'is_in_boundsv' method. + + + + + Cached name for the 'is_dirty' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'set_jumping_enabled' method. + + + + + Cached name for the 'is_jumping_enabled' method. + + + + + Cached name for the 'set_diagonal_mode' method. + + + + + Cached name for the 'get_diagonal_mode' method. + + + + + Cached name for the 'set_default_compute_heuristic' method. + + + + + Cached name for the 'get_default_compute_heuristic' method. + + + + + Cached name for the 'set_default_estimate_heuristic' method. + + + + + Cached name for the 'get_default_estimate_heuristic' method. + + + + + Cached name for the 'set_point_solid' method. + + + + + Cached name for the 'is_point_solid' method. + + + + + Cached name for the 'set_point_weight_scale' method. + + + + + Cached name for the 'get_point_weight_scale' method. + + + + + Cached name for the 'fill_solid_region' method. + + + + + Cached name for the 'fill_weight_scale_region' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'get_point_data_in_region' method. + + + + + Cached name for the 'get_point_path' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The default use of is to allow it to only be accepted or closed, with the same result. However, the and signals allow to make the two actions different, and the method allows to add custom buttons and actions. + + + + + The text displayed by the OK button (see ). + + + + + The text displayed by the dialog. + + + + + If , the dialog is hidden when the OK button is pressed. You can set it to if you want to do e.g. input validation when receiving the signal, and handle hiding the dialog in your own logic. + Note: Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example defaults to , and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in to disable hiding the dialog when pressing OK. + + + + + If , the dialog will be hidden when the escape key () is pressed. + + + + + Sets autowrapping for the text in the dialog. + + + + + Returns the OK instance. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns the label used for built-in text. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adds a button with label and a custom to the dialog and returns the created button. will be passed to the signal when pressed. + If , will place the button to the right of any sibling buttons. + You can use method to remove a button created with this method from the dialog. + + + + + Adds a button with label and a cancel action to the dialog and returns the created button. + You can use method to remove a button created with this method from the dialog. + + + + + Removes the from the dialog. Does NOT free the . The must be a added with or method. After removal, pressing the will no longer emit this dialog's or signals. + + + + + Registers a in the dialog. When the enter key is pressed, the dialog will be accepted. + + + + + Removes the from the dialog. Does NOT free the . The must be a added with or method. After removal, pressing the will no longer emit this dialog's or signals. + + + + + Registers a in the dialog. When the enter key is pressed, the dialog will be accepted. + + + + + Emitted when the dialog is accepted, i.e. the OK button is pressed. + + + + + Emitted when the dialog is closed or the button created with is pressed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a custom button is pressed. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'ok_button_text' property. + + + + + Cached name for the 'dialog_text' property. + + + + + Cached name for the 'dialog_hide_on_ok' property. + + + + + Cached name for the 'dialog_close_on_escape' property. + + + + + Cached name for the 'dialog_autowrap' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_ok_button' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'set_hide_on_ok' method. + + + + + Cached name for the 'get_hide_on_ok' method. + + + + + Cached name for the 'set_close_on_escape' method. + + + + + Cached name for the 'get_close_on_escape' method. + + + + + Cached name for the 'add_button' method. + + + + + Cached name for the 'add_cancel_button' method. + + + + + Cached name for the 'remove_button' method. + + + + + Cached name for the 'register_text_enter' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_autowrap' method. + + + + + Cached name for the 'has_autowrap' method. + + + + + Cached name for the 'set_ok_button_text' method. + + + + + Cached name for the 'get_ok_button_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'confirmed' signal. + + + + + Cached name for the 'canceled' signal. + + + + + Cached name for the 'custom_action' signal. + + + + + 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, s (with set to ), and . + When 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. + + + + + If , the body's movement will be synchronized to the physics frame. This is useful when animating movement via , for example on moving platforms. Do not use together with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sync_to_physics' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sync_to_physics' method. + + + + + Cached name for the 'is_sync_to_physics_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, s (with set to ), and . + When 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. + + + + + If , the body's movement will be synchronized to the physics frame. This is useful when animating movement via , for example on moving platforms. Do not use together with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sync_to_physics' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sync_to_physics' method. + + + + + Cached name for the 'is_sync_to_physics_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is similar to the node, except it carries multiple textures as animation frames. Animations are created using a resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The resource can be configured in the editor via the SpriteFrames bottom panel. + + + + + The resource containing the animation(s). Allows you the option to load, edit, clear, make unique and save the states of the resource. + + + + + The current animation from the resource. If this value is changed, the counter and the are reset. + + + + + The key of the animation to play when the scene loads. + + + + + The displayed animation frame's index. Setting this property also resets . If this is not desired, use . + + + + + The progress value between 0.0 and 1.0 until the current frame transitions to the next frame. If the animation is playing backwards, the value transitions from 1.0 to 0.0. + + + + + The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed. + If set to a negative value, the animation is played in reverse. If set to 0, the animation will not advance. + + + + + If , texture will be centered. + Note: For games with a pixel art aesthetic, textures may appear deformed when centered. This is caused by their position being between pixels. To prevent this, set this property to , or consider enabling ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel and ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + The texture's drawing offset. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + Returns if an animation is currently playing (even if and/or custom_speed are 0). + + + + + Plays the animation with key . If is negative and is , the animation will play backwards (which is equivalent to calling ). + If this method is called with that same animation , or with no parameter, the assigned animation will resume playing if it was paused. + + + + + Plays the animation with key in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, so see its description for more information. + + + + + Pauses the currently playing animation. The and will be kept and calling or without arguments will resume the animation from the current playback position. + See also . + + + + + Stops the currently playing animation. The animation position is reset to 0 and the custom_speed is reset to 1.0. See also . + + + + + Sets the to the given values. Unlike setting , this method does not reset the to 0.0 implicitly. + Example: Change the animation while keeping the same and : + + + + + + Returns the actual playing speed of current animation or 0 if not playing. This speed is the property multiplied by custom_speed argument specified when calling the method. + Returns a negative value if the current animation is playing backwards. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when the animation loops. + + + + + Emitted when the animation reaches the end, or the start if it is played in reverse. When the animation finishes, it pauses the playback. + Note: This signal is not emitted if an animation is looping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames' property. + + + + + Cached name for the 'animation' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_progress' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'centered' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sprite_frames' method. + + + + + Cached name for the 'get_sprite_frames' method. + + + + + Cached name for the 'set_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'get_autoplay' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'play_backwards' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_centered' method. + + + + + Cached name for the 'is_centered' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_progress' method. + + + + + Cached name for the 'get_frame_progress' method. + + + + + Cached name for the 'set_frame_and_progress' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_playing_speed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames_changed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'animation_looped' signal. + + + + + Cached name for the 'animation_finished' signal. + + + + + is similar to the node, except it carries multiple textures as animation . Animations are created using a resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The resource can be configured in the editor via the SpriteFrames bottom panel. + + + + + The resource containing the animation(s). Allows you the option to load, edit, clear, make unique and save the states of the resource. + + + + + The current animation from the resource. If this value is changed, the counter and the are reset. + + + + + The key of the animation to play when the scene loads. + + + + + The displayed animation frame's index. Setting this property also resets . If this is not desired, use . + + + + + The progress value between 0.0 and 1.0 until the current frame transitions to the next frame. If the animation is playing backwards, the value transitions from 1.0 to 0.0. + + + + + The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed. + If set to a negative value, the animation is played in reverse. If set to 0, the animation will not advance. + + + + + Returns if an animation is currently playing (even if and/or custom_speed are 0). + + + + + Plays the animation with key . If is negative and is , the animation will play backwards (which is equivalent to calling ). + If this method is called with that same animation , or with no parameter, the assigned animation will resume playing if it was paused. + + + + + Plays the animation with key in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, so see its description for more information. + + + + + Pauses the currently playing animation. The and will be kept and calling or without arguments will resume the animation from the current playback position. + See also . + + + + + Stops the currently playing animation. The animation position is reset to 0 and the custom_speed is reset to 1.0. See also . + + + + + Sets the to the given values. Unlike setting , this method does not reset the to 0.0 implicitly. + Example: Change the animation while keeping the same and : + + + + + + Returns the actual playing speed of current animation or 0 if not playing. This speed is the property multiplied by custom_speed argument specified when calling the method. + Returns a negative value if the current animation is playing backwards. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when the animation loops. + + + + + Emitted when the animation reaches the end, or the start if it is played in reverse. When the animation finishes, it pauses the playback. + Note: This signal is not emitted if an animation is looping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames' property. + + + + + Cached name for the 'animation' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_progress' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sprite_frames' method. + + + + + Cached name for the 'get_sprite_frames' method. + + + + + Cached name for the 'set_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'get_autoplay' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'play_backwards' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_progress' method. + + + + + Cached name for the 'get_frame_progress' method. + + + + + Cached name for the 'set_frame_and_progress' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_playing_speed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames_changed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'animation_looped' signal. + + + + + Cached name for the 'animation_finished' signal. + + + + + is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike or , it isn't a , but has the advantage of being usable anywhere a resource can be used, e.g. in a . + The playback of the animation is controlled by the property, as well as each frame's duration (see ). The animation loops, i.e. it will restart at frame 0 automatically after playing the last frame. + currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one. + Note: AnimatedTexture doesn't support using s. Each frame needs to be a separate . + Warning: The current implementation is not efficient for the modern renderers. + + + + + The maximum number of frames supported by . If you need more frames in your animation, use or . + + + + + Number of frames to use in the animation. While you can create the frames independently with , you need to set this value for the animation to take new frames into account. The maximum number of frames is . + + + + + Sets the currently visible frame of the texture. Setting this frame while playing resets the current frame time, so the newly selected frame plays for its whole configured frame duration. + + + + + If , the animation will pause where it currently is (i.e. at ). The animation will continue from where it was paused when changing this property to . + + + + + If , the animation will only play once and will not loop back to the first frame after reaching the end. Note that reaching the end will not set to . + + + + + The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse. + + + + + Assigns a to the given frame. Frame IDs start at 0, so the first frame has ID 0, and the last frame of the animation has ID - 1. + You can define any number of textures up to , but keep in mind that only frames from 0 to - 1 will be part of the animation. + + + + + Returns the given frame's . + + + + + Sets the duration of any given . The final duration is affected by the . If set to 0, the frame is skipped during playback. + + + + + Returns the given 's duration, in seconds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'frames' property. + + + + + Cached name for the 'current_frame' property. + + + + + Cached name for the 'pause' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_frames' method. + + + + + Cached name for the 'get_frames' method. + + + + + Cached name for the 'set_current_frame' method. + + + + + Cached name for the 'get_current_frame' method. + + + + + Cached name for the 'set_pause' method. + + + + + Cached name for the 'get_pause' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'set_frame_texture' method. + + + + + Cached name for the 'get_frame_texture' method. + + + + + Cached name for the 'set_frame_duration' method. + + + + + Cached name for the 'get_frame_duration' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource holds data that can be used to animate anything in the engine. Animations are divided into tracks and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track. + + // This creates an animation that makes the node "Enemy" move to the right by + // 100 pixels in 2.0 seconds. + var animation = new Animation(); + int trackIndex = animation.AddTrack(Animation.TrackType.Value); + animation.TrackSetPath(trackIndex, "Enemy:position:x"); + animation.TrackInsertKey(trackIndex, 0.0f, 0); + animation.TrackInsertKey(trackIndex, 2.0f, 100); + animation.Length = 2.0f; + + Animations are just data containers, and must be added to nodes such as an to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check to see available types. + Note: For 3D position/rotation/scale, using the dedicated , and track types instead of is recommended for performance reasons. + + + + + Value tracks set values in node properties, but only those which can be interpolated. For 3D position/rotation/scale, using the dedicated , and track types instead of is recommended for performance reasons. + + + + + 3D position track (values are stored in s). + + + + + 3D rotation track (values are stored in s). + + + + + 3D scale track (values are stored in s). + + + + + Blend shape track. + + + + + Method tracks call functions with given arguments per key. + + + + + 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 ). + + + + + Audio tracks are used to play an audio stream with either type of . The stream can be trimmed and previewed in the animation. + + + + + Animation tracks play animations in other nodes. + + + + + No interpolation (nearest value). + + + + + Linear interpolation. + + + + + Cubic interpolation. This looks smoother than linear interpolation, but is more expensive to interpolate. Stick to for complex 3D animations imported from external software, even if it requires using a higher animation framerate in return. + + + + + Linear interpolation with shortest path rotation. + Note: The result value is always normalized and may not match the key value. + + + + + Cubic interpolation with shortest path rotation. + Note: The result value is always normalized and may not match the key value. + + + + + Update between keyframes and hold the value. + + + + + Update at the keyframes. + + + + + Same as but works as a flag to capture the value of the current object and perform interpolation in some methods. See also , , and . + + + + + At both ends of the animation, the animation will stop playing. + + + + + At both ends of the animation, the animation will be repeated without changing the playback direction. + + + + + Repeats playback and reverse playback at both ends of the animation. + + + + + This flag indicates that the animation proceeds without any looping. + + + + + This flag indicates that the animation has reached the end of the animation and just after loop processed. + + + + + This flag indicates that the animation has reached the start of the animation and just after loop processed. + + + + + Finds the nearest time key. + + + + + Finds only the key with approximating the time. + + + + + Finds only the key with matching the time. + + + + + The total length of the animation (in seconds). + Note: Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping. + + + + + Determines the behavior of both ends of the animation timeline during animation playback. This is used for correct interpolation of animation cycles, and for hinting the player that it must restart the animation. + + + + + The animation step value. + + + + + Returns if the capture track is included. This is a cached readonly value for performance. + + + + + Adds a track to the Animation. + + + + + Removes a track by specifying the track index. + + + + + Returns the amount of tracks in the animation. + + + + + Gets the type of a track. + + + + + Gets the path of a track. For more information on the path format, see . + + + + + Sets the path of a track. Paths must be valid scene-tree paths to a node and must be specified starting from the that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ":". + For example, "character/skeleton:ankle" or "character/mesh:transform/local". + + + + + Returns the index of the specified track. If the track is not found, return -1. + + + + + Moves a track up. + + + + + Moves a track down. + + + + + Changes the index position of track to the one defined in . + + + + + Swaps the track 's index position with the track . + + + + + Sets the given track as imported or not. + + + + + Returns if the given track is imported. Else, return . + + + + + Enables/disables the given track. Tracks are enabled by default. + + + + + Returns if the track at index is enabled. + + + + + Inserts a key in a given 3D position track. Returns the key index. + + + + + Inserts a key in a given 3D rotation track. Returns the key index. + + + + + Inserts a key in a given 3D scale track. Returns the key index. + + + + + Inserts a key in a given blend shape track. Returns the key index. + + + + + Returns the interpolated position value at the given time (in seconds). The must be the index of a 3D position track. + + + + + Returns the interpolated rotation value at the given time (in seconds). The must be the index of a 3D rotation track. + + + + + Returns the interpolated scale value at the given time (in seconds). The must be the index of a 3D scale track. + + + + + Returns the interpolated blend shape value at the given time (in seconds). The must be the index of a blend shape track. + + + + + Inserts a generic key in a given track. Returns the key index. + + + + + Removes a key by index in a given track. + + + + + Removes a key at in a given track. + + + + + Sets the value of an existing key. + + + + + Sets the transition curve (easing) for a specific key (see the built-in math function @GlobalScope.ease). + + + + + Sets the time of an existing key. + + + + + Returns the transition curve (easing) for a specific key (see the built-in math function @GlobalScope.ease). + + + + + Returns the number of keys in a given track. + + + + + Returns the value of a given key in a given track. + + + + + Returns the time at which the key is located. + + + + + Finds the key index by time in a given track. Optionally, only find it if the approx/exact time is given. + If is , it does not return keys outside the animation range. + If is , the direction is reversed in methods that rely on one directional processing. + For example, in case is , if there is no key in the current position just after seeked, the first key found is retrieved by searching before the position, but if is , the first key found is retrieved after the position. + + + + + Sets the interpolation type of a given track. + + + + + Returns the interpolation type of a given track. + + + + + If , the track at wraps the interpolation loop. + + + + + Returns if the track at wraps the interpolation loop. New tracks wrap the interpolation loop by default. + + + + + Returns if the track is compressed, otherwise. See also . + + + + + Sets the update mode (see ) of a value track. + + + + + Returns the update mode of a value track. + + + + + Returns the interpolated value at the given time (in seconds). The must be the index of a value track. + A mainly affects the direction of key retrieval of the track with converted by to match the result with . + + + + + Returns the method name of a method track. + + + + + Returns the arguments values to be called on a method track for a given key in a given track. + + + + + Inserts a Bezier Track key at the given in seconds. The must be the index of a Bezier Track. + is the left-side weight of the added Bezier curve point, is the right-side one, while is the actual value at this point. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Sets the value of the key identified by to the given value. The must be the index of a Bezier Track. + + + + + Sets the in handle of the key identified by to value . The must be the index of a Bezier Track. + + + + + Sets the out handle of the key identified by to value . The must be the index of a Bezier Track. + + + + + Returns the value of the key identified by . The must be the index of a Bezier Track. + + + + + Returns the in handle of the key identified by . The must be the index of a Bezier Track. + + + + + Returns the out handle of the key identified by . The must be the index of a Bezier Track. + + + + + Returns the interpolated value at the given (in seconds). The must be the index of a Bezier Track. + + + + + Inserts an Audio Track key at the given in seconds. The must be the index of an Audio Track. + is the resource to play. is the number of seconds cut off at the beginning of the audio stream, while is at the ending. + + + + + Sets the stream of the key identified by to value . The must be the index of an Audio Track. + + + + + Sets the start offset of the key identified by to value . The must be the index of an Audio Track. + + + + + Sets the end offset of the key identified by to value . The must be the index of an Audio Track. + + + + + Returns the audio stream of the key identified by . The must be the index of an Audio Track. + + + + + Returns the start offset of the key identified by . The must be the index of an Audio Track. + Start offset is the number of seconds cut off at the beginning of the audio stream. + + + + + Returns the end offset of the key identified by . The must be the index of an Audio Track. + End offset is the number of seconds cut off at the ending of the audio stream. + + + + + Sets whether the track will be blended with other animations. If , the audio playback volume changes depending on the blend value. + + + + + Returns if the track at will be blended with other animations. + + + + + Inserts a key with value at the given (in seconds). The must be the index of an Animation Track. + + + + + Sets the key identified by to value . The must be the index of an Animation Track. + + + + + Returns the animation name at the key identified by . The must be the index of an Animation Track. + + + + + Adds a marker to this Animation. + + + + + Removes the marker with the given name from this Animation. + + + + + Returns if this Animation contains a marker with the given name. + + + + + Returns the name of the marker located at the given time. + + + + + Returns the closest marker that comes after the given time. If no such marker exists, an empty string is returned. + + + + + Returns the closest marker that comes before the given time. If no such marker exists, an empty string is returned. + + + + + Returns the given marker's time. + + + + + Returns every marker in this Animation, sorted ascending by time. + + + + + Returns the given marker's color. + + + + + Sets the given marker's color. + + + + + Clear the animation (clear all tracks and reset all). + + + + + Adds a new track to that is a copy of the given track from this animation. + + + + + Optimize the animation and all its tracks in-place. This will preserve only as many keys as are necessary to keep the animation within the specified bounds. + + + + + Compress the animation and all its tracks in-place. This will make return once called on this . Compressed tracks require less memory to be played, and are designed to be used for complex 3D animations (such as cutscenes) imported from external 3D software. Compression is lossy, but the difference is usually not noticeable in real world conditions. + Note: Compressed tracks have various limitations (such as not being editable from the editor), so only use compressed animations if you actually need them. + + + + + Finds the key index by time in a given track. Optionally, only find it if the approx/exact time is given. + If is , it does not return keys outside the animation range. + If is , the direction is reversed in methods that rely on one directional processing. + For example, in case is , if there is no key in the current position just after seeked, the first key found is retrieved by searching before the position, but if is , the first key found is retrieved after the position. + + + + + Returns the interpolated value at the given time (in seconds). The must be the index of a value track. + A mainly affects the direction of key retrieval of the track with converted by to match the result with . + + + + + Returns the interpolated blend shape value at the given time (in seconds). The must be the index of a blend shape track. + + + + + Returns the interpolated scale value at the given time (in seconds). The must be the index of a 3D scale track. + + + + + Returns the interpolated rotation value at the given time (in seconds). The must be the index of a 3D rotation track. + + + + + Returns the interpolated position value at the given time (in seconds). The must be the index of a 3D position track. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'loop_mode' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'capture_included' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_track' method. + + + + + Cached name for the 'remove_track' method. + + + + + Cached name for the 'get_track_count' method. + + + + + Cached name for the 'track_get_type' method. + + + + + Cached name for the 'track_get_path' method. + + + + + Cached name for the 'track_set_path' method. + + + + + Cached name for the 'find_track' method. + + + + + Cached name for the 'track_move_up' method. + + + + + Cached name for the 'track_move_down' method. + + + + + Cached name for the 'track_move_to' method. + + + + + Cached name for the 'track_swap' method. + + + + + Cached name for the 'track_set_imported' method. + + + + + Cached name for the 'track_is_imported' method. + + + + + Cached name for the 'track_set_enabled' method. + + + + + Cached name for the 'track_is_enabled' method. + + + + + Cached name for the 'position_track_insert_key' method. + + + + + Cached name for the 'rotation_track_insert_key' method. + + + + + Cached name for the 'scale_track_insert_key' method. + + + + + Cached name for the 'blend_shape_track_insert_key' method. + + + + + Cached name for the 'position_track_interpolate' method. + + + + + Cached name for the 'rotation_track_interpolate' method. + + + + + Cached name for the 'scale_track_interpolate' method. + + + + + Cached name for the 'blend_shape_track_interpolate' method. + + + + + Cached name for the 'track_insert_key' method. + + + + + Cached name for the 'track_remove_key' method. + + + + + Cached name for the 'track_remove_key_at_time' method. + + + + + Cached name for the 'track_set_key_value' method. + + + + + Cached name for the 'track_set_key_transition' method. + + + + + Cached name for the 'track_set_key_time' method. + + + + + Cached name for the 'track_get_key_transition' method. + + + + + Cached name for the 'track_get_key_count' method. + + + + + Cached name for the 'track_get_key_value' method. + + + + + Cached name for the 'track_get_key_time' method. + + + + + Cached name for the 'track_find_key' method. + + + + + Cached name for the 'track_set_interpolation_type' method. + + + + + Cached name for the 'track_get_interpolation_type' method. + + + + + Cached name for the 'track_set_interpolation_loop_wrap' method. + + + + + Cached name for the 'track_get_interpolation_loop_wrap' method. + + + + + Cached name for the 'track_is_compressed' method. + + + + + Cached name for the 'value_track_set_update_mode' method. + + + + + Cached name for the 'value_track_get_update_mode' method. + + + + + Cached name for the 'value_track_interpolate' method. + + + + + Cached name for the 'method_track_get_name' method. + + + + + Cached name for the 'method_track_get_params' method. + + + + + Cached name for the 'bezier_track_insert_key' method. + + + + + Cached name for the 'bezier_track_set_key_value' method. + + + + + Cached name for the 'bezier_track_set_key_in_handle' method. + + + + + Cached name for the 'bezier_track_set_key_out_handle' method. + + + + + Cached name for the 'bezier_track_get_key_value' method. + + + + + Cached name for the 'bezier_track_get_key_in_handle' method. + + + + + Cached name for the 'bezier_track_get_key_out_handle' method. + + + + + Cached name for the 'bezier_track_interpolate' method. + + + + + Cached name for the 'audio_track_insert_key' method. + + + + + Cached name for the 'audio_track_set_key_stream' method. + + + + + Cached name for the 'audio_track_set_key_start_offset' method. + + + + + Cached name for the 'audio_track_set_key_end_offset' method. + + + + + Cached name for the 'audio_track_get_key_stream' method. + + + + + Cached name for the 'audio_track_get_key_start_offset' method. + + + + + Cached name for the 'audio_track_get_key_end_offset' method. + + + + + Cached name for the 'audio_track_set_use_blend' method. + + + + + Cached name for the 'audio_track_is_use_blend' method. + + + + + Cached name for the 'animation_track_insert_key' method. + + + + + Cached name for the 'animation_track_set_key_animation' method. + + + + + Cached name for the 'animation_track_get_key_animation' method. + + + + + Cached name for the 'add_marker' method. + + + + + Cached name for the 'remove_marker' method. + + + + + Cached name for the 'has_marker' method. + + + + + Cached name for the 'get_marker_at_time' method. + + + + + Cached name for the 'get_next_marker' method. + + + + + Cached name for the 'get_prev_marker' method. + + + + + Cached name for the 'get_marker_time' method. + + + + + Cached name for the 'get_marker_names' method. + + + + + Cached name for the 'get_marker_color' method. + + + + + Cached name for the 'set_marker_color' method. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_loop_mode' method. + + + + + Cached name for the 'get_loop_mode' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'copy_track' method. + + + + + Cached name for the 'optimize' method. + + + + + Cached name for the 'compress' method. + + + + + Cached name for the 'is_capture_included' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An animation library stores a set of animations accessible through keys, for use with nodes. + + + + + Adds the to the library, accessible by the key . + + + + + Removes the with the key . + + + + + Changes the key of the associated with the key to . + + + + + Returns if the library stores an with as the key. + + + + + Returns the with the key . If the animation does not exist, is returned and an error is logged. + + + + + Returns the keys for the s stored in the library. + + + + + Returns the key count for the s stored in the library. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an is added, under the key name. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an stored with the key name is removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the key for an is changed, from name to toName. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when there's a change in one of the animations, e.g. tracks are added, moved or have changed paths. name is the key of the animation that was changed. + See also , which this acts as a relay for. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_animation' method. + + + + + Cached name for the 'remove_animation' method. + + + + + Cached name for the 'rename_animation' method. + + + + + Cached name for the 'has_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'get_animation_list' method. + + + + + Cached name for the 'get_animation_list_size' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'animation_added' signal. + + + + + Cached name for the 'animation_removed' signal. + + + + + Cached name for the 'animation_renamed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + Base class for and 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 . + + + + + Process animation during physics frames (see ). This is especially useful when animating physics bodies. + + + + + Process animation during process frames (see ). + + + + + Do not process animation. Use to process the animation manually. + + + + + 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. + + + + + Make method calls immediately when reached in the animation. + + + + + An track value takes precedence when blending or track values and track values. + + + + + An or track value takes precedence when blending the or track values and the track values. This is the default behavior for . + + + + + Always treat the track value as with . This is the default behavior for . + If a value track has un-interpolatable type key values, it is internally converted to use with . + Un-interpolatable type list: + - + - + - + - + - + - + - + - + and are treated as during blending and rounded when the result is retrieved. + It is same for arrays and vectors with them such as or , they are treated as or . Also note that for arrays, the size is also interpolated. + and are interpolated between character codes and lengths, but note that there is a difference in algorithm between interpolation between keys and interpolation by blending. + + + + + If , the will be processing. + + + + + If , the blending uses the deterministic algorithm. The total weight is not normalized and the result is accumulated with an initial value (0 or a "RESET" animation if present). + This means that if the total amount of blending is 0.0, the result is equal to the "RESET" animation. + If the number of tracks between the blended animations is different, the animation with the missing track is treated as if it had the initial value. + If , The blend does not use the deterministic algorithm. The total weight is normalized and always 1.0. If the number of tracks between the blended animations is different, nothing is done about the animation that is missing a track. + Note: In , the blending with , , or the weight greater than 1.0 may produce unexpected results. + For example, if blends two nodes with the amount 1.0, then total weight is 2.0 but it will be normalized to make the total amount 1.0 and the result will be equal to with the amount 0.5. + + + + + This is used by the editor. If set to , the scene will be saved with the effects of the reset animation (the animation with the key "RESET") applied as if it had been seeked to time 0, with the editor keeping the values that the scene had before saving. + This makes it more convenient to preview and edit animations in the editor, as changes to the scene will not be saved as long as they are set in the reset animation. + + + + + The node which node path references will travel from. + + + + + The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. The uses the same format as , but note that a bone must be specified. + If the track has type , , or the transformation will be canceled visually, and the animation will appear to stay in place. See also , , , and . + + + + + If , value is extracted as a local translation value before blending. In other words, it is treated like the translation is done after the rotation. + + + + + The number of possible simultaneous sounds for each of the assigned AudioStreamPlayers. + For example, if this value is 32 and the animation has two audio tracks, the two s assigned can play simultaneously up to 32 voices each. + + + + + The process notification in which to update animations. + + + + + The call mode used for "Call Method" tracks. + + + + + Ordinarily, tracks can be set to to update infrequently, usually when using nearest interpolation. + However, when blending with several results are considered. The specify it explicitly. See also . + To make the blended results look good, it is recommended to set this to to update every frame during blending. Other values exist for compatibility and they are fine if there is no blending, but not so, may produce artifacts. + + + + + A virtual function for processing after getting a key during playback. + + + + + Adds to the animation player, under the key . + AnimationMixer has a global library by default with an empty string as key. For adding an animation to the global library: + + + + + + Removes the associated with the key . + + + + + Moves the associated with the key to the key . + + + + + Returns if the stores an with key . + + + + + Returns the first with key or if not found. + To get the 's global animation library, use get_animation_library(""). + + + + + Returns the list of stored library keys. + + + + + Returns if the stores an with key . + + + + + Returns the with the key . If the animation does not exist, is returned and an error is logged. + + + + + Returns the list of stored animation keys. + + + + + Retrieve the motion delta of position with the as a that can be used elsewhere. + If is not a path to a track of type , returns Vector3(0, 0, 0). + See also and . + The most basic example is applying position to : + + By using this in combination with , you can apply the root motion position more correctly to account for the rotation of the node. + + If is , return the pre-multiplied translation value with the inverted rotation. + In this case, the code can be written as follows: + + + + + + Retrieve the motion delta of rotation with the as a that can be used elsewhere. + If is not a path to a track of type , returns Quaternion(0, 0, 0, 1). + See also and . + The most basic example is applying rotation to : + + + + + + Retrieve the motion delta of scale with the as a that can be used elsewhere. + If is not a path to a track of type , returns Vector3(0, 0, 0). + See also and . + The most basic example is applying scale to : + + + + + + Retrieve the blended value of the position tracks with the as a that can be used elsewhere. + This is useful in cases where you want to respect the initial key values of the animation. + For example, if an animation with only one key Vector3(0, 0, 0) is played in the previous frame and then an animation with only one key Vector3(1, 0, 1) is played in the next frame, the difference can be calculated as follows: + + However, if the animation loops, an unintended discrete change may occur, so this is only useful for some simple use cases. + + + + + Retrieve the blended value of the rotation tracks with the as a that can be used elsewhere. + This is necessary to apply the root motion position correctly, taking rotation into account. See also . + Also, this is useful in cases where you want to respect the initial key values of the animation. + For example, if an animation with only one key Quaternion(0, 0, 0, 1) is played in the previous frame and then an animation with only one key Quaternion(0, 0.707, 0, 0.707) is played in the next frame, the difference can be calculated as follows: + + However, if the animation loops, an unintended discrete change may occur, so this is only useful for some simple use cases. + + + + + Retrieve the blended value of the scale tracks with the as a that can be used elsewhere. + For example, if an animation with only one key Vector3(1, 1, 1) is played in the previous frame and then an animation with only one key Vector3(2, 2, 2) is played in the next frame, the difference can be calculated as follows: + + However, if the animation loops, an unintended discrete change may occur, so this is only useful for some simple use cases. + + + + + caches animated nodes. It may not notice if a node disappears; forces it to update the cache again. + + + + + Manually advance the animations by the specified time (in seconds). + + + + + If the animation track specified by has an option , stores current values of the objects indicated by the track path as a cache. If there is already a captured cache, the old cache is discarded. + After this it will interpolate with current animation blending result during the playback process for the time specified by , working like a crossfade. + You can specify as the curve for the interpolation. For better results, it may be appropriate to specify for cases where the first key of the track begins with a non-zero value or where the key value does not change, and for cases where the key value changes linearly. + + + + + Returns the key of or an empty if not found. + + + + + Returns the key for the that contains or an empty if not found. + + + + + A virtual function for processing after getting a key during playback. + + + + + Notifies when an animation list is changed. + + + + + Notifies when the animation libraries have changed. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when an animation finished playing. + Note: This signal is not emitted if an animation is looping. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when an animation starts playing. + + + + + Notifies when the caches have been cleared, either automatically, or manually via . + + + + + Notifies when the blending result related have been applied to the target objects. + + + + + Notifies when the property related process have been updated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'active' property. + + + + + Cached name for the 'deterministic' property. + + + + + Cached name for the 'reset_on_save' property. + + + + + Cached name for the 'root_node' property. + + + + + Cached name for the 'root_motion_track' property. + + + + + Cached name for the 'root_motion_local' property. + + + + + Cached name for the 'audio_max_polyphony' property. + + + + + Cached name for the 'callback_mode_process' property. + + + + + Cached name for the 'callback_mode_method' property. + + + + + Cached name for the 'callback_mode_discrete' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_post_process_key_value' method. + + + + + Cached name for the 'add_animation_library' method. + + + + + Cached name for the 'remove_animation_library' method. + + + + + Cached name for the 'rename_animation_library' method. + + + + + Cached name for the 'has_animation_library' method. + + + + + Cached name for the 'get_animation_library' method. + + + + + Cached name for the 'get_animation_library_list' method. + + + + + Cached name for the 'has_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'get_animation_list' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'set_deterministic' method. + + + + + Cached name for the 'is_deterministic' method. + + + + + Cached name for the 'set_root_node' method. + + + + + Cached name for the 'get_root_node' method. + + + + + Cached name for the 'set_callback_mode_process' method. + + + + + Cached name for the 'get_callback_mode_process' method. + + + + + Cached name for the 'set_callback_mode_method' method. + + + + + Cached name for the 'get_callback_mode_method' method. + + + + + Cached name for the 'set_callback_mode_discrete' method. + + + + + Cached name for the 'get_callback_mode_discrete' method. + + + + + Cached name for the 'set_audio_max_polyphony' method. + + + + + Cached name for the 'get_audio_max_polyphony' method. + + + + + Cached name for the 'set_root_motion_track' method. + + + + + Cached name for the 'get_root_motion_track' method. + + + + + Cached name for the 'set_root_motion_local' method. + + + + + Cached name for the 'is_root_motion_local' method. + + + + + Cached name for the 'get_root_motion_position' method. + + + + + Cached name for the 'get_root_motion_rotation' method. + + + + + Cached name for the 'get_root_motion_scale' method. + + + + + Cached name for the 'get_root_motion_position_accumulator' method. + + + + + Cached name for the 'get_root_motion_rotation_accumulator' method. + + + + + Cached name for the 'get_root_motion_scale_accumulator' method. + + + + + Cached name for the 'clear_caches' method. + + + + + Cached name for the 'advance' method. + + + + + Cached name for the 'capture' method. + + + + + Cached name for the 'set_reset_on_save_enabled' method. + + + + + Cached name for the 'is_reset_on_save_enabled' method. + + + + + Cached name for the 'find_animation' method. + + + + + Cached name for the 'find_animation_library' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'animation_list_changed' signal. + + + + + Cached name for the 'animation_libraries_updated' signal. + + + + + Cached name for the 'animation_finished' signal. + + + + + Cached name for the 'animation_started' signal. + + + + + Cached name for the 'caches_cleared' signal. + + + + + Cached name for the 'mixer_applied' signal. + + + + + Cached name for the 'mixer_updated' signal. + + + + + A resource to add to an . Blends two animations additively based on the amount value. + If the amount is greater than 1.0, the animation connected to "in" port is blended with the amplified animation connected to "add" port. + If the amount is less than 0.0, the animation connected to "in" port is blended with the inverted animation connected to "add" port. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Blends two animations out of three additively out of three based on the amount value. + This animation node has three inputs: + - The base animation to add to + - A "-add" animation to blend with when the blend amount is negative + - A "+add" animation to blend with when the blend amount is positive + If the absolute value of the amount is greater than 1.0, the animation connected to "in" port is blended with the amplified animation connected to "-add"/"+add" port. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Only has one output port using the property. Used as an input for s that blend animations together. + + + + + Plays animation in forward direction. + + + + + Plays animation in backward direction. + + + + + Animation to use as an output. It is one of the animations provided by . + + + + + Determines the playback direction of the animation. + + + + + If , on receiving a request to play an animation from the start, the first frame is not drawn, but only processed, and playback starts from the next frame. + See also the notes of . + + + + + If , provides an animation based on the resource with some parameters adjusted. + + + + + If is , offset the start position of the animation. + + + + + If , scales the time so that the length specified in is one cycle. + This is useful for matching the periods of walking and running animations. + If , the original animation length is respected. If you set the loop to , the animation will loop in . + + + + + If is , offset the start position of the animation. + This is useful for adjusting which foot steps first in 3D walking animations. + + + + + If is , override the loop settings of the original resource with the value. + Note: If the isn't set to looping, the option will not be respected. If you cannot get the expected behavior, consider duplicating the resource and changing the loop settings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'animation' property. + + + + + Cached name for the 'play_mode' property. + + + + + Cached name for the 'advance_on_start' property. + + + + + Cached name for the 'use_custom_timeline' property. + + + + + Cached name for the 'timeline_length' property. + + + + + Cached name for the 'stretch_time_scale' property. + + + + + Cached name for the 'start_offset' property. + + + + + Cached name for the 'loop_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'set_play_mode' method. + + + + + Cached name for the 'get_play_mode' method. + + + + + Cached name for the 'set_advance_on_start' method. + + + + + Cached name for the 'is_advance_on_start' method. + + + + + Cached name for the 'set_use_custom_timeline' method. + + + + + Cached name for the 'is_using_custom_timeline' method. + + + + + Cached name for the 'set_timeline_length' method. + + + + + Cached name for the 'get_timeline_length' method. + + + + + Cached name for the 'set_stretch_time_scale' method. + + + + + Cached name for the 'is_stretching_time_scale' method. + + + + + Cached name for the 'set_start_offset' method. + + + + + Cached name for the 'get_start_offset' method. + + + + + Cached name for the 'set_loop_mode' method. + + + + + Cached name for the 'get_loop_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Blends two animations linearly based on the amount value. + In general, the blend value should be in the [0.0, 1.0] range. Values outside of this range can blend amplified or inverted animations, however, works better for this purpose. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Blends two animations out of three linearly out of three based on the amount value. + This animation node has three inputs: + - The base animation to blend with + - A "-blend" animation to blend with when the blend amount is negative value + - A "+blend" animation to blend with when the blend amount is positive value + In general, the blend value should be in the [-1.0, 1.0] range. Values outside of this range can blend amplified animations, however, works better for this purpose. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource used by . + represents a virtual axis on which any type of s can be added using . Outputs the linear blend of the two s adjacent to the current value. + You can set the extents of the axis with and . + + + + + The interpolation between animations is linear. + + + + + The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations. + + + + + Similar to , but starts the new animation at the last animation's playback position. + + + + + The blend space's axis's lower limit for the points' position. See . + + + + + The blend space's axis's upper limit for the points' position. See . + + + + + Position increment to snap to when moving a point on the axis. + + + + + Label of the virtual axis of the blend space. + + + + + Controls the interpolation between animations. See constants. + + + + + If , the blended animations' frame are stopped when the blend value is 0. + If , forcing the blended animations to advance frame. + + + + + Adds a new point that represents a on the virtual axis at a given position set by . You can insert it at a specific index using the argument. If you use the default value for , the point is inserted at the end of the blend points array. + + + + + Updates the position of the point at index on the blend axis. + + + + + Returns the position of the point at index . + + + + + Changes the referenced by the point at index . + + + + + Returns the referenced by the point at index . + + + + + Removes the point at index from the blend axis. + + + + + Returns the number of points on the blend axis. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'min_space' property. + + + + + Cached name for the 'max_space' property. + + + + + Cached name for the 'snap' property. + + + + + Cached name for the 'value_label' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'sync' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_point' method. + + + + + Cached name for the 'set_blend_point_position' method. + + + + + Cached name for the 'get_blend_point_position' method. + + + + + Cached name for the 'set_blend_point_node' method. + + + + + Cached name for the 'get_blend_point_node' method. + + + + + Cached name for the 'remove_blend_point' method. + + + + + Cached name for the 'get_blend_point_count' method. + + + + + Cached name for the 'set_min_space' method. + + + + + Cached name for the 'get_min_space' method. + + + + + Cached name for the 'set_max_space' method. + + + + + Cached name for the 'get_max_space' method. + + + + + Cached name for the 'set_snap' method. + + + + + Cached name for the 'get_snap' method. + + + + + Cached name for the 'set_value_label' method. + + + + + Cached name for the 'get_value_label' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_use_sync' method. + + + + + Cached name for the 'is_using_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource used by . + represents a virtual 2D space on which s are placed. Outputs the linear blend of the three adjacent animations using a weight. Adjacent in this context means the three s making up the triangle that contains the current value. + You can add vertices to the blend space with and automatically triangulate it by setting to . Otherwise, use and to triangulate the blend space by hand. + + + + + The interpolation between animations is linear. + + + + + The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations. + + + + + Similar to , but starts the new animation at the last animation's playback position. + + + + + If , the blend space is triangulated automatically. The mesh updates every time you add or remove points with and . + + + + + The blend space's X and Y axes' lower limit for the points' position. See . + + + + + The blend space's X and Y axes' upper limit for the points' position. See . + + + + + Position increment to snap to when moving a point. + + + + + Name of the blend space's X axis. + + + + + Name of the blend space's Y axis. + + + + + Controls the interpolation between animations. See constants. + + + + + If , the blended animations' frame are stopped when the blend value is 0. + If , forcing the blended animations to advance frame. + + + + + Adds a new point that represents a at the position set by . You can insert it at a specific index using the argument. If you use the default value for , the point is inserted at the end of the blend points array. + + + + + Updates the position of the point at index in the blend space. + + + + + Returns the position of the point at index . + + + + + Changes the referenced by the point at index . + + + + + Returns the referenced by the point at index . + + + + + Removes the point at index from the blend space. + + + + + Returns the number of points in the blend space. + + + + + Creates a new triangle using three points , , and . Triangles can overlap. You can insert the triangle at a specific index using the argument. If you use the default value for , the point is inserted at the end of the blend points array. + + + + + Returns the position of the point at index in the triangle of index . + + + + + Removes the triangle at index from the blend space. + + + + + Returns the number of triangles in the blend space. + + + + + Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'auto_triangles' property. + + + + + Cached name for the 'triangles' property. + + + + + Cached name for the 'min_space' property. + + + + + Cached name for the 'max_space' property. + + + + + Cached name for the 'snap' property. + + + + + Cached name for the 'x_label' property. + + + + + Cached name for the 'y_label' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'sync' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_point' method. + + + + + Cached name for the 'set_blend_point_position' method. + + + + + Cached name for the 'get_blend_point_position' method. + + + + + Cached name for the 'set_blend_point_node' method. + + + + + Cached name for the 'get_blend_point_node' method. + + + + + Cached name for the 'remove_blend_point' method. + + + + + Cached name for the 'get_blend_point_count' method. + + + + + Cached name for the 'add_triangle' method. + + + + + Cached name for the 'get_triangle_point' method. + + + + + Cached name for the 'remove_triangle' method. + + + + + Cached name for the 'get_triangle_count' method. + + + + + Cached name for the 'set_min_space' method. + + + + + Cached name for the 'get_min_space' method. + + + + + Cached name for the 'set_max_space' method. + + + + + Cached name for the 'get_max_space' method. + + + + + Cached name for the 'set_snap' method. + + + + + Cached name for the 'get_snap' method. + + + + + Cached name for the 'set_x_label' method. + + + + + Cached name for the 'get_x_label' method. + + + + + Cached name for the 'set_y_label' method. + + + + + Cached name for the 'get_y_label' method. + + + + + Cached name for the '_set_triangles' method. + + + + + Cached name for the '_get_triangles' method. + + + + + Cached name for the 'set_auto_triangles' method. + + + + + Cached name for the 'get_auto_triangles' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_use_sync' method. + + + + + Cached name for the 'is_using_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'triangles_updated' signal. + + + + + This animation node may contain a sub-tree of any other type animation nodes, such as , , , , etc. This is one of the most commonly used animation node roots. + An node named output is created by default. + + + + + The connection was successful. + + + + + The input node is . + + + + + The specified input port is out of range. + + + + + The output node is . + + + + + Input and output nodes are the same. + + + + + The specified connection already exists. + + + + + The global offset of all sub animation nodes. + + + + + Adds an at the given . The is used to identify the created sub animation node later. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns the sub animation node with the specified . + + + + + Removes a sub animation node. + + + + + Changes the name of a sub animation node. + + + + + Returns if a sub animation node with specified exists. + + + + + Connects the output of an as input for another , at the input port specified by . + + + + + Disconnects the animation node connected to the specified input. + + + + + Modifies the position of a sub animation node. + + + + + Returns the position of the sub animation node with the specified . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the input port information is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'graph_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'rename_node' method. + + + + + Cached name for the 'has_node' method. + + + + + Cached name for the 'connect_node' method. + + + + + Cached name for the 'disconnect_node' method. + + + + + Cached name for the 'set_node_position' method. + + + + + Cached name for the 'get_node_position' method. + + + + + Cached name for the 'set_graph_offset' method. + + + + + Cached name for the 'get_graph_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'node_changed' signal. + + + + + exposes the APIs of to allow users to extend it from GDScript, C#, or C++. This class is not meant to be used directly, but to be extended by other classes. It is used to create custom nodes for the system. + + + + + A version of the method that is meant to be overridden by custom nodes. It returns a [] with the processed animation data. + The [] parameter contains the playback information, containing the following values encoded as floating point numbers (in order): playback time and delta, start and end times, whether a seek was requested (encoded as a float greater than 0), whether the seek request was externally requested (encoded as a float greater than 0), the current (encoded as a float), and the current blend weight. + The function must return a [] of the node's time info, containing the following values (in order): animation length, time position, delta, (encoded as a float), whether the animation is about to end (encoded as a float greater than 0) and whether the animation is infinite (encoded as a float greater than 0). All values must be included in the returned array. + + + + + Returns if the animation for the given is looping. + + + + + Returns if the animation for the given is looping. + + + + + Returns the animation's remaining time for the given node info. For looping animations, it will only return the remaining time if is , a large integer value will be returned otherwise. + + + + + Returns the animation's remaining time for the given node info. For looping animations, it will only return the remaining time if is , a large integer value will be returned otherwise. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_animation_node' method. + + + + + Cached name for the 'is_looping' method. + + + + + Cached name for the 'get_remaining_time' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . This animation node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters. + After setting the request and changing the animation playback, the one-shot node automatically clears the request on the next process frame by setting its request value to . + + // 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"); + + + + + + The default state of the request. Nothing is done. + + + + + The request to play the animation connected to "shot" port. + + + + + The request to stop the animation connected to "shot" port. + + + + + The request to fade out the animation connected to "shot" port. + + + + + Blends two animations. See also . + + + + + Blends two animations additively. See also . + + + + + The blend type. + + + + + The fade-in duration. For example, setting this to 1.0 for a 5 second length animation will produce a cross-fade that starts at 0 second and ends at 1 second during the animation. + Note: transitions the current state after the end of the fading. When is considered as the most upstream, so the is scaled depending on the downstream delta. For example, if this value is set to 1.0 and a with a value of 2.0 is chained downstream, the actual processing time will be 0.5 second. + + + + + Determines how cross-fading between animations is eased. If empty, the transition will be linear. Should be a unit . + + + + + The fade-out duration. For example, setting this to 1.0 for a 5 second length animation will produce a cross-fade that starts at 4 second and ends at 5 second during the animation. + Note: transitions the current state after the end of the fading. When is considered as the most upstream, so the is scaled depending on the downstream delta. For example, if this value is set to 1.0 and an with a value of 2.0 is chained downstream, the actual processing time will be 0.5 second. + + + + + Determines how cross-fading between animations is eased. If empty, the transition will be linear. Should be a unit . + + + + + If , breaks the loop at the end of the loop cycle for transition, even if the animation is looping. + + + + + If , the sub-animation will restart automatically after finishing. + In other words, to start auto restarting, the animation must be played once with the request. The request stops the auto restarting, but it does not disable the itself. So, the request will start auto restarting again. + + + + + The delay after which the automatic restart is triggered, in seconds. + + + + + If is , a random additional delay (in seconds) between 0 and this value will be added to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mix_mode' property. + + + + + Cached name for the 'fadein_time' property. + + + + + Cached name for the 'fadein_curve' property. + + + + + Cached name for the 'fadeout_time' property. + + + + + Cached name for the 'fadeout_curve' property. + + + + + Cached name for the 'break_loop_at_end' property. + + + + + Cached name for the 'autorestart' property. + + + + + Cached name for the 'autorestart_delay' property. + + + + + Cached name for the 'autorestart_random_delay' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fadein_time' method. + + + + + Cached name for the 'get_fadein_time' method. + + + + + Cached name for the 'set_fadein_curve' method. + + + + + Cached name for the 'get_fadein_curve' method. + + + + + Cached name for the 'set_fadeout_time' method. + + + + + Cached name for the 'get_fadeout_time' method. + + + + + Cached name for the 'set_fadeout_curve' method. + + + + + Cached name for the 'get_fadeout_curve' method. + + + + + Cached name for the 'set_break_loop_at_end' method. + + + + + Cached name for the 'is_loop_broken_at_end' method. + + + + + Cached name for the 'set_autorestart' method. + + + + + Cached name for the 'has_autorestart' method. + + + + + Cached name for the 'set_autorestart_delay' method. + + + + + Cached name for the 'get_autorestart_delay' method. + + + + + Cached name for the 'set_autorestart_random_delay' method. + + + + + Cached name for the 'get_autorestart_random_delay' method. + + + + + Cached name for the 'set_mix_mode' method. + + + + + Cached name for the 'get_mix_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node created automatically in an that outputs the final animation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains multiple 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 object from the node to control it programmatically. + + var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback; + stateMachine.Travel("some_state"); + + + + + + Seeking to the beginning is treated as playing from the start state. Transition to the end state is treated as exiting the state machine. + + + + + 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. + + + + + 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 of or in the parent or ancestor. + + + + + This property can define the process of transitions for different use cases. See also . + + + + + If , allows teleport to the self state with . When the reset option is enabled in , the animation is restarted. If , nothing happens on the teleportation to the self state. + + + + + If , treat the cross-fade to the start and end nodes as a blend with the RESET animation. + In most cases, when additional cross-fades are performed in the parent of the state machine, setting this property to and matching the cross-fade time of the parent and the state machine's start node and end node gives good results. + + + + + Adds a new animation node to the graph. The is used for display in the editor. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Replaces the given animation node with a new animation node. + + + + + Returns the animation node with the given name. + + + + + Deletes the given animation node from the graph. + + + + + Renames the given animation node. + + + + + Returns if the graph contains the given animation node. + + + + + Returns the given animation node's name. + + + + + Sets the animation node's coordinates. Used for display in the editor. + + + + + Returns the given animation node's coordinates. Used for display in the editor. + + + + + Returns if there is a transition between the given animation nodes. + + + + + Adds a transition between the given animation nodes. + + + + + Returns the given transition. + + + + + Returns the given transition's start node. + + + + + Returns the given transition's end node. + + + + + Returns the number of connections in the graph. + + + + + Deletes the given transition by index. + + + + + Deletes the transition between the two specified animation nodes. + + + + + Sets the draw offset of the graph. Used for display in the editor. + + + + + Returns the draw offset of the graph. Used for display in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'state_machine_type' property. + + + + + Cached name for the 'allow_transition_to_self' property. + + + + + Cached name for the 'reset_ends' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'replace_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'rename_node' method. + + + + + Cached name for the 'has_node' method. + + + + + Cached name for the 'get_node_name' method. + + + + + Cached name for the 'set_node_position' method. + + + + + Cached name for the 'get_node_position' method. + + + + + Cached name for the 'has_transition' method. + + + + + Cached name for the 'add_transition' method. + + + + + Cached name for the 'get_transition' method. + + + + + Cached name for the 'get_transition_from' method. + + + + + Cached name for the 'get_transition_to' method. + + + + + Cached name for the 'get_transition_count' method. + + + + + Cached name for the 'remove_transition_by_index' method. + + + + + Cached name for the 'remove_transition' method. + + + + + Cached name for the 'set_graph_offset' method. + + + + + Cached name for the 'get_graph_offset' method. + + + + + Cached name for the 'set_state_machine_type' method. + + + + + Cached name for the 'get_state_machine_type' method. + + + + + Cached name for the 'set_allow_transition_to_self' method. + + + + + Cached name for the 'is_allow_transition_to_self' method. + + + + + Cached name for the 'set_reset_ends' method. + + + + + Cached name for the 'are_ends_reset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows control of state machines created with . Retrieve with $AnimationTree.get("parameters/playback"). + + var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback").As<AnimationNodeStateMachinePlayback>(); + stateMachine.Travel("some_state"); + + + + + + Transitions from the current state to another one, following the shortest path. + If the path does not connect from the current state, the animation will play after the state teleports. + If is , the animation is played from the beginning when the travel cause a teleportation. + + + + + Starts playing the given animation. + If is , the animation is played from the beginning. + + + + + If there is a next path by travel or auto advance, immediately transitions from the current state to the next state. + + + + + Stops the currently playing animation. + + + + + Returns if an animation is playing. + + + + + Returns the currently playing animation state. + Note: When using a cross-fade, the current state changes to the next state immediately after the cross-fade begins. + + + + + Returns the playback position within the current animation state. + + + + + Returns the current state length. + Note: It is possible that any can be nodes as well as animations. This means that there can be multiple animations within a single state. Which animation length has priority depends on the nodes connected inside it. Also, if a transition does not reset, the remaining length at that point will be returned. + + + + + Returns the starting state of currently fading animation. + + + + + Returns the current travel path as computed internally by the A* algorithm. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'travel' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'next' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_current_node' method. + + + + + Cached name for the 'get_current_play_position' method. + + + + + Cached name for the 'get_current_length' method. + + + + + Cached name for the 'get_fading_from_node' method. + + + + + Cached name for the 'get_travel_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The path generated when using is limited to the nodes connected by . + You can set the timing and conditions of the transition in detail. + + + + + Switch to the next state immediately. The current state will end and blend into the beginning of the new one. + + + + + Switch to the next state immediately, but will seek the new state to the playback position of the old state. + + + + + Wait for the current state playback to end, then switch to the beginning of the next state animation. + + + + + Don't use this transition. + + + + + Only use this transition during . + + + + + Automatically use this transition if the and checks are (if assigned). + + + + + The time to cross-fade between this state and the next. + Note: transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When is considered as the most upstream, so the is not scaled depending on the downstream delta. See also . + + + + + Ease curve for better control over cross-fade between this state and the next. Should be a unit . + + + + + If , breaks the loop at the end of the loop cycle for transition, even if the animation is looping. + + + + + If , the destination animation is played back from the beginning when switched. + + + + + Lower priority transitions are preferred when travelling through the tree via or is set to . + + + + + The transition type. + + + + + Determines whether the transition should be disabled, enabled when using , or traversed automatically if the and checks are (if assigned). + + + + + Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the that can be controlled from code (see Using AnimationTree). For example, if is an and is set to "idle": + + GetNode<AnimationTree>("animation_tree").Set("parameters/conditions/idle", IsOnFloor && (LinearVelocity.X == 0)); + + + + + + Use an expression as a condition for state machine transitions. It is possible to create complex animation advance conditions for switching between states and gives much greater flexibility for creating complex state machines by directly interfacing with the script code. + + + + + Emitted when is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'xfade_time' property. + + + + + Cached name for the 'xfade_curve' property. + + + + + Cached name for the 'break_loop_at_end' property. + + + + + Cached name for the 'reset' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'switch_mode' property. + + + + + Cached name for the 'advance_mode' property. + + + + + Cached name for the 'advance_condition' property. + + + + + Cached name for the 'advance_expression' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_switch_mode' method. + + + + + Cached name for the 'get_switch_mode' method. + + + + + Cached name for the 'set_advance_mode' method. + + + + + Cached name for the 'get_advance_mode' method. + + + + + Cached name for the 'set_advance_condition' method. + + + + + Cached name for the 'get_advance_condition' method. + + + + + Cached name for the 'set_xfade_time' method. + + + + + Cached name for the 'get_xfade_time' method. + + + + + Cached name for the 'set_xfade_curve' method. + + + + + Cached name for the 'get_xfade_curve' method. + + + + + Cached name for the 'set_break_loop_at_end' method. + + + + + Cached name for the 'is_loop_broken_at_end' method. + + + + + Cached name for the 'set_reset' method. + + + + + Cached name for the 'is_reset' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'set_advance_expression' method. + + + + + Cached name for the 'get_advance_expression' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'advance_condition_changed' signal. + + + + + A resource to add to an . 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 or . + In general, the blend value should be in the [0.0, 1.0] range, but values outside of this range can be used for amplified or inverted animations. + Note: This calculation is different from using a negative value in , since the transformation matrices do not satisfy the commutative law. multiplies the transformation matrix of the inverted animation from the left side, while negative multiplies it from the right side. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an . + + + + + If , the blended animations' frame are stopped when the blend value is 0. + If , forcing the blended animations to advance frame. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sync' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_use_sync' method. + + + + + Cached name for the 'is_using_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows to scale the speed of the animation (or reverse it) in any child s. Setting it to 0.0 will pause the animation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 from the start or a certain playback position inside the . + After setting the time and changing the animation playback, the time seek node automatically goes into sleep mode on the next process frame by setting its seek_request value to -1.0. + + // Play child animation from the start. + animationTree.Set("parameters/TimeSeek/seek_request", 0.0); + + // Play child animation from 12 second timestamp. + animationTree.Set("parameters/TimeSeek/seek_request", 12.0); + + + + + + If , some processes are executed to handle keys between seeks, such as calculating root motion and finding the nearest discrete key. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'explicit_elapse' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_explicit_elapse' method. + + + + + Cached name for the 'is_explicit_elapse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Simple state machine for cases which don't require a more advanced . Animations can be connected to the inputs and transition times can be specified. + After setting the request and changing the animation playback, the transition node automatically clears the request on the next process frame by setting its transition_request value to empty. + Note: When using a cross-fade, current_state and current_index change to the next state immediately after the cross-fade begins. + + // Play child animation connected to "state_2" port. + animationTree.Set("parameters/Transition/transition_request", "state_2"); + + // Get current state name (read-only). + animationTree.Get("parameters/Transition/current_state"); + + // Get current state index (read-only). + animationTree.Get("parameters/Transition/current_index"); + + + + + + Cross-fading time (in seconds) between each animation connected to the inputs. + Note: transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When is considered as the most upstream, so the is not scaled depending on the downstream delta. See also . + + + + + Determines how cross-fading between animations is eased. If empty, the transition will be linear. Should be a unit . + + + + + If , allows transition to the self state. When the reset option is enabled in input, the animation is restarted. If , nothing happens on the transition to the self state. + + + + + The number of enabled input ports for this animation node. + + + + + Enables or disables auto-advance for the given index. If enabled, state changes to the next input after playing the animation once. If enabled for the last input state, it loops to the first. + + + + + Returns if auto-advance is enabled for the given index. + + + + + If , breaks the loop at the end of the loop cycle for transition, even if the animation is looping. + + + + + Returns whether the animation breaks the loop at the end of the loop cycle for transition. + + + + + If , the destination animation is restarted when the animation transitions. + + + + + Returns whether the animation restarts when the animation transitions from the other animation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'xfade_time' property. + + + + + Cached name for the 'xfade_curve' property. + + + + + Cached name for the 'allow_transition_to_self' property. + + + + + Cached name for the 'input_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_input_count' method. + + + + + Cached name for the 'set_input_as_auto_advance' method. + + + + + Cached name for the 'is_input_set_as_auto_advance' method. + + + + + Cached name for the 'set_input_break_loop_at_end' method. + + + + + Cached name for the 'is_input_loop_broken_at_end' method. + + + + + Cached name for the 'set_input_reset' method. + + + + + Cached name for the 'is_input_reset' method. + + + + + Cached name for the 'set_xfade_time' method. + + + + + Cached name for the 'get_xfade_time' method. + + + + + Cached name for the 'set_xfade_curve' method. + + + + + Cached name for the 'get_xfade_curve' method. + + + + + Cached name for the 'set_allow_transition_to_self' method. + + + + + Cached name for the 'is_allow_transition_to_self' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a base class for s that hold a complete animation. A complete animation refers to the output of an in an or the output of another . Used for or in other s. + Examples of built-in root nodes include (allows blending nodes between each other using various modes), (allows to configure blending and transitions between nodes using a state machine pattern), (allows linear blending between three s), (allows linear blending only between two s). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a region of 2D space defined by one or multiple or child nodes. It detects when other 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. + Note: Areas and bodies created with might not interact as expected with s, and might not emit signals or track objects correctly. + + + + + This area does not affect gravity/damping. + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order). + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order), ignoring any lower priority areas. + + + + + This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas. + + + + + This area replaces any gravity/damping calculated so far (in order), but keeps calculating the rest of the areas. + + + + + If , the area detects bodies or areas entering and exiting it. + + + + + If , other monitoring areas can detect this area. + + + + + The area's priority. Higher priority areas are processed first. The 's physics is always processed last, after all areas. + + + + + Override mode for gravity calculations within this area. See for possible values. + + + + + If , gravity is calculated from a point (set via ). See also . + + + + + The distance at which the gravity strength is equal to . For example, on a planet 100 pixels in radius with a surface gravity of 4.0 px/s², set the 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 this is set to 0.0, the gravity will be constant regardless of distance. + + + + + If gravity is a point (see ), this will be the point of attraction. + + + + + The area's gravity vector (not normalized). + + + + + The area's gravity intensity (in pixels per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction. + + + + + Override mode for linear damping calculations within this area. See for possible values. + + + + + The rate at which objects stop moving in this area. Represents the linear velocity lost per second. + See ProjectSettings.physics/2d/default_linear_damp for more details about damping. + + + + + Override mode for angular damping calculations within this area. See for possible values. + + + + + The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. + See ProjectSettings.physics/2d/default_angular_damp for more details about damping. + + + + + If , the area's audio bus overrides the default audio bus. + + + + + The name of the area's audio bus. + + + + + Returns a list of intersecting s and s. The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns a list of intersecting s. The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s or s, otherwise returns . The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s, otherwise returns . The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if the given physics body intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + The argument can either be a or a instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body. + + + + + Returns if the given intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body enters a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + localShapeIndex and bodyShapeIndex contain indices of the interacting shapes from this area and the interacting body, respectively. bodyRid contains the of the body. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body exits a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body enters this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body exits this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area enters a shape of this area. Requires to be set to . + localShapeIndex and areaShapeIndex contain indices of the interacting shapes from this area and the other area, respectively. areaRid contains the of the other area. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area exits a shape of this area. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area enters this area. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area exits this area. Requires to be set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'monitoring' property. + + + + + Cached name for the 'monitorable' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'gravity_space_override' property. + + + + + Cached name for the 'gravity_point' property. + + + + + Cached name for the 'gravity_point_unit_distance' property. + + + + + Cached name for the 'gravity_point_center' property. + + + + + Cached name for the 'gravity_direction' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'linear_damp_space_override' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_damp_space_override' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'audio_bus_override' property. + + + + + Cached name for the 'audio_bus_name' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gravity_space_override_mode' method. + + + + + Cached name for the 'get_gravity_space_override_mode' method. + + + + + Cached name for the 'set_gravity_is_point' method. + + + + + Cached name for the 'is_gravity_a_point' method. + + + + + Cached name for the 'set_gravity_point_unit_distance' method. + + + + + Cached name for the 'get_gravity_point_unit_distance' method. + + + + + Cached name for the 'set_gravity_point_center' method. + + + + + Cached name for the 'get_gravity_point_center' method. + + + + + Cached name for the 'set_gravity_direction' method. + + + + + Cached name for the 'get_gravity_direction' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_linear_damp_space_override_mode' method. + + + + + Cached name for the 'get_linear_damp_space_override_mode' method. + + + + + Cached name for the 'set_angular_damp_space_override_mode' method. + + + + + Cached name for the 'get_angular_damp_space_override_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'set_monitoring' method. + + + + + Cached name for the 'is_monitoring' method. + + + + + Cached name for the 'set_monitorable' method. + + + + + Cached name for the 'is_monitorable' method. + + + + + Cached name for the 'get_overlapping_bodies' method. + + + + + Cached name for the 'get_overlapping_areas' method. + + + + + Cached name for the 'has_overlapping_bodies' method. + + + + + Cached name for the 'has_overlapping_areas' method. + + + + + Cached name for the 'overlaps_body' method. + + + + + Cached name for the 'overlaps_area' method. + + + + + Cached name for the 'set_audio_bus_name' method. + + + + + Cached name for the 'get_audio_bus_name' method. + + + + + Cached name for the 'set_audio_bus_override' method. + + + + + Cached name for the 'is_overriding_audio_bus' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'area_shape_entered' signal. + + + + + Cached name for the 'area_shape_exited' signal. + + + + + Cached name for the 'area_entered' signal. + + + + + Cached name for the 'area_exited' signal. + + + + + is a region of 3D space defined by one or multiple or child nodes. It detects when other 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. + Note: Areas and bodies created with might not interact as expected with s, and might not emit signals or track objects correctly. + Warning: Using a inside a child of this node (created e.g. by using the Create Trimesh Collision Sibling option in the Mesh menu that appears when selecting a node) may give unexpected results, since this collision shape is hollow. If this is not desired, it has to be split into multiple s or primitive shapes like , or in some cases it may be replaceable by a . + + + + + This area does not affect gravity/damping. + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order). + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order), ignoring any lower priority areas. + + + + + This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas. + + + + + This area replaces any gravity/damping calculated so far (in order), but keeps calculating the rest of the areas. + + + + + If , the area detects bodies or areas entering and exiting it. + + + + + If , other monitoring areas can detect this area. + + + + + The area's priority. Higher priority areas are processed first. The 's physics is always processed last, after all areas. + + + + + Override mode for gravity calculations within this area. See for possible values. + + + + + If , gravity is calculated from a point (set via ). See also . + + + + + The distance at which the gravity strength is equal to . For example, on a planet 100 meters in radius with a surface gravity of 4.0 m/s², set the 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. + + + + + If gravity is a point (see ), this will be the point of attraction. + + + + + The area's gravity vector (not normalized). + + + + + The area's gravity intensity (in meters per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction. + + + + + Override mode for linear damping calculations within this area. See for possible values. + + + + + The rate at which objects stop moving in this area. Represents the linear velocity lost per second. + See ProjectSettings.physics/3d/default_linear_damp for more details about damping. + + + + + Override mode for angular damping calculations within this area. See for possible values. + + + + + The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. + See ProjectSettings.physics/3d/default_angular_damp for more details about damping. + + + + + The magnitude of area-specific wind force. + Note: This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + The exponential rate at which wind force decreases with distance from its origin. + Note: This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + The which is used to specify the direction and origin of an area-specific wind force. The direction is opposite to the z-axis of the 's local transform, and its origin is the origin of the 's local transform. + Note: This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + If , the area's audio bus overrides the default audio bus. + + + + + The name of the area's audio bus. + + + + + If , the area applies reverb to its associated audio. + + + + + The name of the reverb bus to use for this area's associated audio. + + + + + The degree to which this area applies reverb to its associated audio. Ranges from 0 to 1 with 0.1 precision. + + + + + The degree to which this area's reverb is a uniform effect. Ranges from 0 to 1 with 0.1 precision. + + + + + Returns a list of intersecting s and s. The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns a list of intersecting s. The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s or s, otherwise returns . The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s, otherwise returns . The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if the given physics body intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + The argument can either be a or a instance. While GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body. + + + + + Returns if the given intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body enters a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + localShapeIndex and bodyShapeIndex contain indices of the interacting shapes from this area and the interacting body, respectively. bodyRid contains the of the body. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body exits a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body enters this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body exits this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area enters a shape of this area. Requires to be set to . + localShapeIndex and areaShapeIndex contain indices of the interacting shapes from this area and the other area, respectively. areaRid contains the of the other area. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area exits a shape of this area. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area enters this area. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area exits this area. Requires to be set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'monitoring' property. + + + + + Cached name for the 'monitorable' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'gravity_space_override' property. + + + + + Cached name for the 'gravity_point' property. + + + + + Cached name for the 'gravity_point_unit_distance' property. + + + + + Cached name for the 'gravity_point_center' property. + + + + + Cached name for the 'gravity_direction' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'linear_damp_space_override' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_damp_space_override' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'wind_force_magnitude' property. + + + + + Cached name for the 'wind_attenuation_factor' property. + + + + + Cached name for the 'wind_source_path' property. + + + + + Cached name for the 'audio_bus_override' property. + + + + + Cached name for the 'audio_bus_name' property. + + + + + Cached name for the 'reverb_bus_enabled' property. + + + + + Cached name for the 'reverb_bus_name' property. + + + + + Cached name for the 'reverb_bus_amount' property. + + + + + Cached name for the 'reverb_bus_uniformity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gravity_space_override_mode' method. + + + + + Cached name for the 'get_gravity_space_override_mode' method. + + + + + Cached name for the 'set_gravity_is_point' method. + + + + + Cached name for the 'is_gravity_a_point' method. + + + + + Cached name for the 'set_gravity_point_unit_distance' method. + + + + + Cached name for the 'get_gravity_point_unit_distance' method. + + + + + Cached name for the 'set_gravity_point_center' method. + + + + + Cached name for the 'get_gravity_point_center' method. + + + + + Cached name for the 'set_gravity_direction' method. + + + + + Cached name for the 'get_gravity_direction' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_linear_damp_space_override_mode' method. + + + + + Cached name for the 'get_linear_damp_space_override_mode' method. + + + + + Cached name for the 'set_angular_damp_space_override_mode' method. + + + + + Cached name for the 'get_angular_damp_space_override_mode' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'set_wind_force_magnitude' method. + + + + + Cached name for the 'get_wind_force_magnitude' method. + + + + + Cached name for the 'set_wind_attenuation_factor' method. + + + + + Cached name for the 'get_wind_attenuation_factor' method. + + + + + Cached name for the 'set_wind_source_path' method. + + + + + Cached name for the 'get_wind_source_path' method. + + + + + Cached name for the 'set_monitorable' method. + + + + + Cached name for the 'is_monitorable' method. + + + + + Cached name for the 'set_monitoring' method. + + + + + Cached name for the 'is_monitoring' method. + + + + + Cached name for the 'get_overlapping_bodies' method. + + + + + Cached name for the 'get_overlapping_areas' method. + + + + + Cached name for the 'has_overlapping_bodies' method. + + + + + Cached name for the 'has_overlapping_areas' method. + + + + + Cached name for the 'overlaps_body' method. + + + + + Cached name for the 'overlaps_area' method. + + + + + Cached name for the 'set_audio_bus_override' method. + + + + + Cached name for the 'is_overriding_audio_bus' method. + + + + + Cached name for the 'set_audio_bus_name' method. + + + + + Cached name for the 'get_audio_bus_name' method. + + + + + Cached name for the 'set_use_reverb_bus' method. + + + + + Cached name for the 'is_using_reverb_bus' method. + + + + + Cached name for the 'set_reverb_bus_name' method. + + + + + Cached name for the 'get_reverb_bus_name' method. + + + + + Cached name for the 'set_reverb_amount' method. + + + + + Cached name for the 'get_reverb_amount' method. + + + + + Cached name for the 'set_reverb_uniformity' method. + + + + + Cached name for the 'get_reverb_uniformity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'area_shape_entered' signal. + + + + + Cached name for the 'area_shape_exited' signal. + + + + + Cached name for the 'area_entered' signal. + + + + + Cached name for the 'area_exited' signal. + + + + + The is used to construct a by specifying the attributes as arrays. + The most basic example is the creation of a single triangle: + + var vertices = new Vector3[] + { + new Vector3(0, 1, 0), + new Vector3(1, 0, 0), + new Vector3(0, 0, 1), + }; + + // Initialize the ArrayMesh. + var arrMesh = new ArrayMesh(); + var arrays = new Godot.Collections.Array(); + arrays.Resize((int)Mesh.ArrayType.Max); + arrays[(int)Mesh.ArrayType.Vertex] = vertices; + + // Create the Mesh. + arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays); + var m = new MeshInstance3D(); + m.Mesh = arrMesh; + + The is ready to be added to the to be shown. + See also , and for procedural geometry generation. + Note: Godot uses clockwise winding order for front faces of triangle primitive modes. + + + + + Sets the blend shape mode to one of . + + + + + Overrides the with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices. + + + + + An optional mesh which can be used for rendering shadows and the depth prepass. Can be used to increase performance by supplying a mesh with fused vertices and only vertex position data (without normals, UVs, colors, etc.). + Note: This mesh must have exactly the same vertex positions as the source mesh (including the source mesh's LODs, if present). If vertex positions differ, then the mesh will not draw correctly. + + + + + Adds name for a blend shape that will be added with . Must be called before surface is added. + + + + + Returns the number of blend shapes that the holds. + + + + + Returns the name of the blend shape at this index. + + + + + Sets the name of the blend shape at this index. + + + + + Removes all blend shapes from this . + + + + + Creates a new surface. will become the surf_idx for this new surface. + Surfaces are created to be rendered using a , which may be any of the values defined in . + The argument is an array of arrays. Each of the elements contains an array with some of the mesh data for this surface as described by the corresponding member of or if it is not used by the surface. For example, arrays[0] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this surface into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array (or be an exact multiple of the vertex array's length, when multiple elements of a sub-array correspond to a single vertex) or be empty, except for if it is used. + The argument is an array of vertex data for each blend shape. Each element is an array of the same structure as , but , , and are set if and only if they are set in and all other entries are . + The argument is a dictionary with keys and [] values. Each entry in the dictionary represents an LOD level of the surface, where the value is the array to use for the LOD level and the key is roughly proportional to the distance at which the LOD stats being used. I.e., increasing the key of an LOD also increases the distance that the objects has to be from the camera before the LOD is used. + The argument is the bitwise or of, as required: One value of left shifted by ARRAY_FORMAT_CUSTOMn_SHIFT for each custom channel in use, , , or . + Note: When using indices, it is recommended to only use points, lines, or triangles. + + + + + Removes all surfaces from this . + + + + + Returns the length in vertices of the vertex array in the requested surface (see ). + + + + + Returns the length in indices of the index array in the requested surface (see ). + + + + + Returns the format mask of the requested surface (see ). + + + + + Returns the primitive type of the requested surface (see ). + + + + + Returns the index of the first surface with this name held within this . If none are found, -1 is returned. + + + + + Sets a name for a given surface. + + + + + Gets the name assigned to this surface. + + + + + Regenerates tangents for each of the 's surfaces. + + + + + Performs a UV unwrap on the to prepare the mesh for lightmapping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_blend_shape_names' property. + + + + + Cached name for the '_surfaces' property. + + + + + Cached name for the 'blend_shape_mode' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'shadow_mesh' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_shape' method. + + + + + Cached name for the 'get_blend_shape_count' method. + + + + + Cached name for the 'get_blend_shape_name' method. + + + + + Cached name for the 'set_blend_shape_name' method. + + + + + Cached name for the 'clear_blend_shapes' method. + + + + + Cached name for the 'set_blend_shape_mode' method. + + + + + Cached name for the 'get_blend_shape_mode' method. + + + + + Cached name for the 'add_surface_from_arrays' method. + + + + + Cached name for the 'clear_surfaces' method. + + + + + Cached name for the 'surface_update_vertex_region' method. + + + + + Cached name for the 'surface_update_attribute_region' method. + + + + + Cached name for the 'surface_update_skin_region' method. + + + + + Cached name for the 'surface_get_array_len' method. + + + + + Cached name for the 'surface_get_array_index_len' method. + + + + + Cached name for the 'surface_get_format' method. + + + + + Cached name for the 'surface_get_primitive_type' method. + + + + + Cached name for the 'surface_find_by_name' method. + + + + + Cached name for the 'surface_set_name' method. + + + + + Cached name for the 'surface_get_name' method. + + + + + Cached name for the 'regen_normal_maps' method. + + + + + Cached name for the 'lightmap_unwrap' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached name for the 'set_shadow_mesh' method. + + + + + Cached name for the 'get_shadow_mesh' method. + + + + + Cached name for the '_set_blend_shape_names' method. + + + + + Cached name for the '_get_blend_shape_names' method. + + + + + Cached name for the '_set_surfaces' method. + + + + + Cached name for the '_get_surfaces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to , but for occluders. + See 's documentation for instructions on setting up occlusion culling. + + + + + The occluder's vertex positions in local 3D coordinates. + Note: The occluder is always updated after setting this value. If creating occluders procedurally, consider using instead to avoid updating the occluder twice when it's created. + + + + + The occluder's index position. Indices determine which points from the array should be drawn, and in which order. + Note: The occluder is always updated after setting this value. If creating occluders procedurally, consider using instead to avoid updating the occluder twice when it's created. + + + + + Sets and , while updating the final occluder only once after both values are set. + + + + + Sets and , while updating the final occluder only once after both values are set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'indices' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_arrays' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'set_indices' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The height of child controls is automatically adjusted based on the width of the container. + + + + + The width of child controls is automatically adjusted based on the height of the container. + + + + + The bounding rectangle of child controls is automatically adjusted to fit inside the container while keeping the aspect ratio. + + + + + 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 is enabled, this allows to show only the container's area restricted by its own bounding rectangle. + + + + + Aligns child controls with the beginning (left or top) of the container. + + + + + Aligns child controls with the center of the container. + + + + + Aligns child controls with the end (right or bottom) of the container. + + + + + The aspect ratio to enforce on child controls. This is the width divided by the height. The ratio depends on the . + + + + + The stretch mode used to align child controls. + + + + + Specifies the horizontal relative position of child controls. + + + + + Specifies the vertical relative position of child controls. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'ratio' property. + + + + + Cached name for the 'stretch_mode' property. + + + + + Cached name for the 'alignment_horizontal' property. + + + + + Cached name for the 'alignment_vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ratio' method. + + + + + Cached name for the 'get_ratio' method. + + + + + Cached name for the 'set_stretch_mode' method. + + + + + Cached name for the 'get_stretch_mode' method. + + + + + Cached name for the 'set_alignment_horizontal' method. + + + + + Cached name for the 'get_alignment_horizontal' method. + + + + + Cached name for the 'set_alignment_vertical' method. + + + + + Cached name for the 'get_alignment_vertical' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + resource that draws only part of its texture, as defined by the . An additional can also be set, which is useful for small adjustments. + Multiple resources can be cropped from the same . Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls. + Note: cannot be used in an , and will not tile properly in nodes such as or . To tile an , modify its instead. + + + + + The texture that contains the atlas. Can be any type inheriting from , including another . + + + + + The region used to draw the . If either dimension of the region's size is 0, the value from size will be used for that axis instead. + + + + + The margin around the . Useful for small adjustments. If the Rect2.size of this property ("w" and "h" in the editor) is set, the drawn texture is resized to fit within the margin. + + + + + If , the area outside of the is clipped to avoid bleeding of the surrounding texture pixels. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'atlas' property. + + + + + Cached name for the 'region' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'filter_clip' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_atlas' method. + + + + + Cached name for the 'get_atlas' method. + + + + + Cached name for the 'set_region' method. + + + + + Cached name for the 'get_region' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_filter_clip' method. + + + + + Cached name for the 'has_filter_clip' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See for usage. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The base for every audio effect. In the editor, an audio effect can be added to the current bus layout through the Audio panel. At run-time, it is also possible to manipulate audio effects through , , and . + When applied on a bus, an audio effect creates a corresponding . The instance is directly responsible for manipulating the sound, based on the original audio effect's properties. + + + + + Override this method to customize the created when this effect is applied on a bus in the editor's Audio panel, or through . + + extends AudioEffect + + @export var strength = 4.0 + + func _instantiate(): + var effect = CustomAudioEffectInstance.new() + effect.base = self + + return effect + + Note: It is recommended to keep a reference to the original in the new instance. Depending on the implementation this allows the effect instance to listen for changes at run-time and be modified accordingly. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_instantiate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Increases or decreases the volume being routed through the audio bus. + + + + + Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'volume_db' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Limits the frequencies in a range around the and allows frequencies outside of this range to pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Attenuates the frequencies inside of a range around the and cuts frequencies outside of this band. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and process it as needed, for example to capture data from an , 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. + Unlike , this effect only returns the raw audio samples instead of encoding them into an . + + + + + Length of the internal ring buffer, in seconds. Setting the buffer length will have no effect if already initialized. + + + + + Returns if at least audio frames are available to read in the internal ring buffer. + + + + + Gets the next audio samples from the internal ring buffer. + Returns a [] containing exactly audio samples if available, or an empty [] if insufficient data was available. + The samples are signed floating-point PCM between -1 and 1. You will have to scale them if you want to use them as 8 or 16-bit integer samples. (v = 0x7fff * samples[0].x) + + + + + Clears the internal ring buffer. + Note: Calling this during a capture can cause the loss of samples which causes popping in the playback. + + + + + Returns the number of frames available to read using . + + + + + Returns the number of audio frames discarded from the audio bus due to full buffer. + + + + + Returns the total size of the internal ring buffer in frames. + + + + + Returns the number of audio frames inserted from the audio bus. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'can_get_buffer' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'clear_buffer' method. + + + + + Cached name for the 'set_buffer_length' method. + + + + + Cached name for the 'get_buffer_length' method. + + + + + Cached name for the 'get_frames_available' method. + + + + + Cached name for the 'get_discarded_frames' method. + + + + + Cached name for the 'get_buffer_length_frames' method. + + + + + Cached name for the 'get_pushed_frames' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Adds a chorus audio effect. The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter. + + + + + The number of voices in the effect. + + + + + The effect's raw signal. + + + + + The effect's processed signal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'voice_count' property. + + + + + Cached name for the 'dry' property. + + + + + Cached name for the 'wet' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_voice_count' method. + + + + + Cached name for the 'get_voice_count' method. + + + + + Cached name for the 'set_voice_delay_ms' method. + + + + + Cached name for the 'get_voice_delay_ms' method. + + + + + Cached name for the 'set_voice_rate_hz' method. + + + + + Cached name for the 'get_voice_rate_hz' method. + + + + + Cached name for the 'set_voice_depth_ms' method. + + + + + Cached name for the 'get_voice_depth_ms' method. + + + + + Cached name for the 'set_voice_level_db' method. + + + + + Cached name for the 'get_voice_level_db' method. + + + + + Cached name for the 'set_voice_cutoff_hz' method. + + + + + Cached name for the 'get_voice_cutoff_hz' method. + + + + + Cached name for the 'set_voice_pan' method. + + + + + Cached name for the 'get_voice_pan' method. + + + + + Cached name for the 'set_wet' method. + + + + + Cached name for the 'get_wet' method. + + + + + Cached name for the 'set_dry' method. + + + + + Cached name for the 'get_dry' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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. + + + + + The level above which compression is applied to the audio. Value can range from -60 to 0. + + + + + Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48. + + + + + Gain applied to the output signal. + + + + + Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000. + + + + + Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000. + + + + + Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet). + + + + + Reduce the sound level using another audio bus for threshold detection. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'threshold' property. + + + + + Cached name for the 'ratio' property. + + + + + Cached name for the 'gain' property. + + + + + Cached name for the 'attack_us' property. + + + + + Cached name for the 'release_ms' property. + + + + + Cached name for the 'mix' property. + + + + + Cached name for the 'sidechain' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_threshold' method. + + + + + Cached name for the 'get_threshold' method. + + + + + Cached name for the 'set_ratio' method. + + + + + Cached name for the 'get_ratio' method. + + + + + Cached name for the 'set_gain' method. + + + + + Cached name for the 'get_gain' method. + + + + + Cached name for the 'set_attack_us' method. + + + + + Cached name for the 'get_attack_us' method. + + + + + Cached name for the 'set_release_ms' method. + + + + + Cached name for the 'get_release_ms' method. + + + + + Cached name for the 'set_mix' method. + + + + + Cached name for the 'get_mix' method. + + + + + Cached name for the 'set_sidechain' method. + + + + + Cached name for the 'get_sidechain' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1. + + + + + If , the first tap will be enabled. + + + + + First tap delay time in milliseconds. + + + + + Sound level for the first tap. + + + + + Pan position for the first tap. Value can range from -1 (fully left) to 1 (fully right). + + + + + If , the second tap will be enabled. + + + + + Second tap delay time in milliseconds. + + + + + Sound level for the second tap. + + + + + Pan position for the second tap. Value can range from -1 (fully left) to 1 (fully right). + + + + + If , feedback is enabled. + + + + + Feedback delay time in milliseconds. + + + + + Sound level for feedback. + + + + + Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'dry' property. + + + + + Cached name for the 'tap1_active' property. + + + + + Cached name for the 'tap1_delay_ms' property. + + + + + Cached name for the 'tap1_level_db' property. + + + + + Cached name for the 'tap1_pan' property. + + + + + Cached name for the 'tap2_active' property. + + + + + Cached name for the 'tap2_delay_ms' property. + + + + + Cached name for the 'tap2_level_db' property. + + + + + Cached name for the 'tap2_pan' property. + + + + + Cached name for the 'feedback_active' property. + + + + + Cached name for the 'feedback_delay_ms' property. + + + + + Cached name for the 'feedback_level_db' property. + + + + + Cached name for the 'feedback_lowpass' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_dry' method. + + + + + Cached name for the 'get_dry' method. + + + + + Cached name for the 'set_tap1_active' method. + + + + + Cached name for the 'is_tap1_active' method. + + + + + Cached name for the 'set_tap1_delay_ms' method. + + + + + Cached name for the 'get_tap1_delay_ms' method. + + + + + Cached name for the 'set_tap1_level_db' method. + + + + + Cached name for the 'get_tap1_level_db' method. + + + + + Cached name for the 'set_tap1_pan' method. + + + + + Cached name for the 'get_tap1_pan' method. + + + + + Cached name for the 'set_tap2_active' method. + + + + + Cached name for the 'is_tap2_active' method. + + + + + Cached name for the 'set_tap2_delay_ms' method. + + + + + Cached name for the 'get_tap2_delay_ms' method. + + + + + Cached name for the 'set_tap2_level_db' method. + + + + + Cached name for the 'get_tap2_level_db' method. + + + + + Cached name for the 'set_tap2_pan' method. + + + + + Cached name for the 'get_tap2_pan' method. + + + + + Cached name for the 'set_feedback_active' method. + + + + + Cached name for the 'is_feedback_active' method. + + + + + Cached name for the 'set_feedback_delay_ms' method. + + + + + Cached name for the 'get_feedback_delay_ms' method. + + + + + Cached name for the 'set_feedback_level_db' method. + + + + + Cached name for the 'get_feedback_level_db' method. + + + + + Cached name for the 'set_feedback_lowpass' method. + + + + + Cached name for the 'get_feedback_lowpass' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Digital distortion effect which cuts off peaks at the top and bottom of the waveform. + + + + + Low-resolution digital distortion effect (bit depth reduction). You can use it to emulate the sound of early digital audio devices. + + + + + Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers. The property has no effect in this mode. + + + + + Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound. + + + + + Distortion type. + + + + + Increases or decreases the volume before the effect, in decibels. Value can range from -60 to 60. + + + + + High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000. + + + + + Distortion power. Value can range from 0 to 1. + + + + + Increases or decreases the volume after the effect, in decibels. Value can range from -80 to 24. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'pre_gain' property. + + + + + Cached name for the 'keep_hf_hz' property. + + + + + Cached name for the 'drive' property. + + + + + Cached name for the 'post_gain' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_pre_gain' method. + + + + + Cached name for the 'get_pre_gain' method. + + + + + Cached name for the 'set_keep_hf_hz' method. + + + + + Cached name for the 'get_keep_hf_hz' method. + + + + + Cached name for the 'set_drive' method. + + + + + Cached name for the 'get_drive' method. + + + + + Cached name for the 'set_post_gain' method. + + + + + Cached name for the 'get_post_gain' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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). + + + + + Sets band's gain at the specified index, in dB. + + + + + Returns the band's gain at the specified index, in dB. + + + + + Returns the number of bands of the equalizer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_band_gain_db' method. + + + + + Cached name for the 'get_band_gain_db' method. + + + + + Cached name for the 'get_band_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows frequencies other than the to pass. + + + + + Cutting off at 6dB per octave. + + + + + Cutting off at 12dB per octave. + + + + + Cutting off at 18dB per octave. + + + + + Cutting off at 24dB per octave. + + + + + Threshold frequency for the filter, in Hz. + + + + + Amount of boost in the frequency range near the cutoff frequency. + + + + + Gain amount of the frequencies after the filter. + + + + + Steepness of the cutoff curve in dB per octave, also known as the order of the filter. Higher orders have a more aggressive cutoff. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'cutoff_hz' property. + + + + + Cached name for the 'resonance' property. + + + + + Cached name for the 'gain' property. + + + + + Cached name for the 'db' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cutoff' method. + + + + + Cached name for the 'get_cutoff' method. + + + + + Cached name for the 'set_resonance' method. + + + + + Cached name for the 'get_resonance' method. + + + + + Cached name for the 'set_gain' method. + + + + + Cached name for the 'get_gain' method. + + + + + Cached name for the 'set_db' method. + + + + + Cached name for the 'get_db' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A limiter is an effect designed to disallow sound from going over a given dB threshold. Hard limiters predict volume peaks, and will smoothly apply gain reduction when a peak crosses the ceiling threshold to prevent clipping and distortion. It preserves the waveform and prevents it from crossing the ceiling threshold. Adding one in the Master bus is recommended as a safety measure to prevent sudden volume peaks from occurring, and to prevent distortion caused by clipping. + + + + + Gain to apply before limiting, in decibels. + + + + + The waveform's maximum allowed value, in decibels. This value can range from -24.0 to 0.0. + The default value of -0.3 prevents potential inter-sample peaks (ISP) from crossing over 0 dB, which can cause slight distortion on some older hardware. + + + + + Time it takes in seconds for the gain reduction to fully release. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pre_gain_db' property. + + + + + Cached name for the 'ceiling_db' property. + + + + + Cached name for the 'release' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ceiling_db' method. + + + + + Cached name for the 'get_ceiling_db' method. + + + + + Cached name for the 'set_pre_gain_db' method. + + + + + Cached name for the 'get_pre_gain_db' method. + + + + + Cached name for the 'set_release' method. + + + + + Cached name for the 'get_release' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cuts frequencies lower than the and allows higher frequencies to pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Reduces all frequencies above the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An audio effect instance manipulates the audio it receives for a given effect. This instance is automatically created by an when it is added to a bus, and should usually not be created directly. If necessary, it can be fetched at run-time with . + + + + + Override this method to customize the processing behavior of this effect instance. + Should return to force the to always call _process, even if the bus has been muted or cannot otherwise be heard. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_silence' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1. + + + + + Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0. + + + + + Applies a gain to the limited waves, in decibels. Value can range from 0 to 6. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'ceiling_db' property. + + + + + Cached name for the 'threshold_db' property. + + + + + Cached name for the 'soft_clip_db' property. + + + + + Cached name for the 'soft_clip_ratio' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ceiling_db' method. + + + + + Cached name for the 'get_ceiling_db' method. + + + + + Cached name for the 'set_threshold_db' method. + + + + + Cached name for the 'get_threshold_db' method. + + + + + Cached name for the 'set_soft_clip_db' method. + + + + + Cached name for the 'get_soft_clip_db' method. + + + + + Cached name for the 'set_soft_clip_ratio' method. + + + + + Cached name for the 'get_soft_clip_ratio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cuts frequencies higher than the and allows lower frequencies to pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Reduces all frequencies below the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Attenuates frequencies in a narrow band around the and cuts frequencies outside of this range. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Determines how much of an audio signal is sent to the left and right buses. + + + + + Pan position. Value can range from -1 (fully left) to 1 (fully right). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pan' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pan' method. + + + + + Cached name for the 'get_pan' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a low-frequency oscillator. + + + + + Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000. + + + + + Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000. + + + + + Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range. + + + + + Output percent of modified sound. Value can range from 0.1 to 0.9. + + + + + Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'range_min_hz' property. + + + + + Cached name for the 'range_max_hz' property. + + + + + Cached name for the 'rate_hz' property. + + + + + Cached name for the 'feedback' property. + + + + + Cached name for the 'depth' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_range_min_hz' method. + + + + + Cached name for the 'get_range_min_hz' method. + + + + + Cached name for the 'set_range_max_hz' method. + + + + + Cached name for the 'get_range_max_hz' method. + + + + + Cached name for the 'set_rate_hz' method. + + + + + Cached name for the 'get_rate_hz' method. + + + + + Cached name for the 'set_feedback' method. + + + + + Cached name for the 'get_feedback' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients. + + + + + Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time. + + + + + Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time. + + + + + Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time. + + + + + Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time. + + + + + Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time. + + + + + Represents the size of the enum. + + + + + The pitch scale to use. 1.0 is the default pitch and plays sounds unaffected. can range from 0.0 (infinitely low pitch, inaudible) to 16 (16 times higher than the initial pitch). + + + + + The oversampling factor to use. Higher values result in better quality, but are more demanding on the CPU and may cause audio cracking if the CPU can't keep up. + + + + + The size of the Fast Fourier transform buffer. Higher values smooth out the effect over time, but have greater latency. The effects of this higher latency are especially noticeable on sounds that have sudden amplitude changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'oversampling' property. + + + + + Cached name for the 'fft_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'set_oversampling' method. + + + + + Cached name for the 'get_oversampling' method. + + + + + Cached name for the 'set_fft_size' method. + + + + + Cached name for the 'get_fft_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows the user to record the sound from an audio bus into an . When used on the "Master" audio bus, this includes all audio output by Godot. + Unlike , this effect encodes the recording with the given format (8-bit, 16-bit, or compressed) instead of giving access to the raw audio samples. + Can be used (with an ) to record from a microphone. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Specifies the format in which the sample will be recorded. See for available formats. + + + + + If , the sound will be recorded. Note that restarting the recording will remove the previously recorded sample. + + + + + Returns whether the recording is active or not. + + + + + Returns the recorded sample. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_recording_active' method. + + + + + Cached name for the 'is_recording_active' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_recording' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces. + + + + + Time between the original signal and the early reflections of the reverb signal, in milliseconds. + + + + + Output percent of predelay. Value can range from 0 to 1. + + + + + Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1. + + + + + Defines how reflective the imaginary room's walls are. Value can range from 0 to 1. + + + + + Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1. + + + + + High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1. + + + + + Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1. + + + + + Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'predelay_msec' property. + + + + + Cached name for the 'predelay_feedback' property. + + + + + Cached name for the 'room_size' property. + + + + + Cached name for the 'damping' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'hipass' property. + + + + + Cached name for the 'dry' property. + + + + + Cached name for the 'wet' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_predelay_msec' method. + + + + + Cached name for the 'get_predelay_msec' method. + + + + + Cached name for the 'set_predelay_feedback' method. + + + + + Cached name for the 'get_predelay_feedback' method. + + + + + Cached name for the 'set_room_size' method. + + + + + Cached name for the 'get_room_size' method. + + + + + Cached name for the 'set_damping' method. + + + + + Cached name for the 'get_damping' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_dry' method. + + + + + Cached name for the 'get_dry' method. + + + + + Cached name for the 'set_wet' method. + + + + + Cached name for the 'get_wet' method. + + + + + Cached name for the 'set_hpf' method. + + + + + Cached name for the 'get_hpf' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This audio effect does not affect sound output, but can be used for real-time audio visualizations. + This resource configures an , which performs the actual analysis at runtime. An instance can be obtained with . + See also for procedurally generating sounds. + + + + + Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time. + + + + + Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time. + + + + + Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time. + + + + + Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time. + + + + + Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time. + + + + + Represents the size of the enum. + + + + + The length of the buffer to keep (in seconds). Higher values keep data around for longer, but require more memory. + + + + + The size of the Fast Fourier transform buffer. Higher values smooth out the spectrum analysis over time, but have greater latency. The effects of this higher latency are especially noticeable with sudden amplitude changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer_length' property. + + + + + Cached name for the 'tap_back_pos' property. + + + + + Cached name for the 'fft_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_buffer_length' method. + + + + + Cached name for the 'get_buffer_length' method. + + + + + Cached name for the 'set_tap_back_pos' method. + + + + + Cached name for the 'get_tap_back_pos' method. + + + + + Cached name for the 'set_fft_size' method. + + + + + Cached name for the 'get_fft_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The runtime part of an , which can be used to query the magnitude of a frequency range on its host bus. + An instance of this class can be obtained with . + + + + + Use the average value across the frequency range as magnitude. + + + + + Use the maximum value of the frequency range as magnitude. + + + + + Returns the magnitude of the frequencies from to in linear energy as a Vector2. The x component of the return value represents the left stereo channel, and y represents the right channel. + determines how the frequency range will be processed. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_magnitude_for_frequency_range' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An audio effect that can be used to adjust the intensity of stereo panning. + + + + + Amplifies the difference between stereo channels, increasing or decreasing existing panning. A value of 0.0 will downmix stereo to mono. Does not affect a mono signal. + + + + + Widens sound stage through phase shifting in conjunction with . Just delays the right channel if is 0. + + + + + Widens sound stage through phase shifting in conjunction with . Just pans sound to the left channel if is 0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pan_pullout' property. + + + + + Cached name for the 'time_pullout_ms' property. + + + + + Cached name for the 'surround' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pan_pullout' method. + + + + + Cached name for the 'get_pan_pullout' method. + + + + + Cached name for the 'set_time_pullout' method. + + + + + Cached name for the 'get_time_pullout' method. + + + + + Cached name for the 'set_surround' method. + + + + + Cached name for the 'get_surround' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Once added to the scene tree and enabled using , this node will override the location sounds are heard from. Only one can be current. Using will disable the previous . + If there is no active in the current , center of the screen will be used as a hearing point for the audio. needs to be inside to function. + + + + + Makes the active, setting it as the hearing point for the sounds. If there is already another active , it will be disabled. + This method will have no effect if the is not added to . + + + + + Disables the . If it's not set as current, this method will have no effect. + + + + + Returns if this is currently active. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'clear_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Once added to the scene tree and enabled using , this node will override the location sounds are heard from. This can be used to listen from a location different from the . + + + + + Enables the listener. This will override the current camera's listener. + + + + + Disables the listener to use the current camera's listener instead. + + + + + Returns if the listener was made current using , otherwise. + Note: There may be more than one AudioListener3D marked as "current" in the scene tree, but only the one that was made current last will be used. + + + + + Returns the listener's global orthonormalized . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'clear_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached name for the 'get_listener_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for audio samples. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Meta class for playing back audio samples. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface. + + + + + Two or fewer speakers were detected. + + + + + A 3.1 channel surround setup was detected. + + + + + A 5.1 channel surround setup was detected. + + + + + A 7.1 channel surround setup was detected. + + + + + The playback will be considered of the type declared at ProjectSettings.audio/general/default_playback_type. + + + + + Force the playback to be considered as a stream. + + + + + Force the playback to be considered as a sample. This can provide lower latency and more stable playback (with less risk of audio crackling), at the cost of having less flexibility. + Note: Only currently supported on the web platform. + Note: s are not supported when playback is considered as a sample. + + + + + Represents the size of the enum. + + + + + Number of available audio buses. + + + + + Name of the current device for audio output (see ). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value "Default" will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to "Default". + + + + + Name of the current device for audio input (see ). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value "Default" will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to "Default". + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Scales the rate at which audio is played (i.e. setting it to 0.5 will make the audio be played at half its speed). See also to affect the general simulation speed, which is independent from . + + + + + Removes the bus at index . + + + + + Adds a bus at . + + + + + Moves the bus from index to index . + + + + + Sets the name of the bus at index to . + + + + + Returns the name of the bus with the index . + + + + + Returns the index of the bus with the name . Returns -1 if no bus with the specified name exist. + + + + + Returns the number of channels of the bus at index . + + + + + Sets the volume of the bus at index to . + + + + + Returns the volume of the bus at index in dB. + + + + + Connects the output of the bus at to the bus named . + + + + + Returns the name of the bus that the bus at index sends to. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is bypassing effects. + + + + + If , the bus at index is bypassing effects. + + + + + Adds an effect to the bus at . + + + + + Removes the effect at index from the bus at index . + + + + + Returns the number of effects on the bus at . + + + + + Returns the at position in bus . + + + + + Returns the assigned to the given bus and effect indices (and optionally channel). + + + + + Swaps the position of two effects in bus . + + + + + If , the effect at index on the bus at index is enabled. + + + + + If , the effect at index on the bus at index is enabled. + + + + + Returns the peak volume of the left speaker at bus index and channel index . + + + + + Returns the peak volume of the right speaker at bus index and channel index . + + + + + Locks the audio driver's main loop. + Note: Remember to unlock it afterwards. + + + + + Unlocks the audio driver's main loop. (After locking it, you should always unlock it.) + + + + + Returns the speaker configuration. + + + + + Returns the sample rate at the output of the . + + + + + Returns the sample rate at the input of the . + + + + + Returns the name of the current audio driver. The default usually depends on the operating system, but may be overridden via the --audio-driver command line argument. --headless also automatically sets the audio driver to Dummy. See also ProjectSettings.audio/driver/driver. + + + + + Returns the names of all audio output devices detected on the system. + + + + + Returns the relative time until the next mix occurs. + + + + + Returns the relative time since the last mix occurred. + + + + + Returns the audio driver's effective output latency. This is based on ProjectSettings.audio/driver/output_latency, but the exact returned value will differ depending on the operating system and audio driver. + Note: This can be expensive; it is not recommended to call every frame. + + + + + Returns the names of all audio input devices detected on the system. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Overwrites the currently used . + + + + + Generates an using the available buses and effects. + + + + + If set to , all instances of will call every mix step. + Note: This is enabled by default in the editor, as it is used by editor plugins for the audio stream previews. + + + + + If , the stream is registered as a sample. The engine will not have to register it before playing the sample. + If , the stream will have to be registered before playing it. To prevent lag spikes, register the stream as sample with . + + + + + Forces the registration of a stream as a sample. + Note: Lag spikes may occur when calling this method, especially on single-threaded builds. It is suggested to call this method while loading assets, where the lag spike could be masked, instead of registering the sample right before it needs to be played. + + + + + Emitted when an audio bus is added, deleted, or moved. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the audio bus at busIndex is renamed from oldName to newName. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bus_count' property. + + + + + Cached name for the 'output_device' property. + + + + + Cached name for the 'input_device' property. + + + + + Cached name for the 'playback_speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bus_count' method. + + + + + Cached name for the 'get_bus_count' method. + + + + + Cached name for the 'remove_bus' method. + + + + + Cached name for the 'add_bus' method. + + + + + Cached name for the 'move_bus' method. + + + + + Cached name for the 'set_bus_name' method. + + + + + Cached name for the 'get_bus_name' method. + + + + + Cached name for the 'get_bus_index' method. + + + + + Cached name for the 'get_bus_channels' method. + + + + + Cached name for the 'set_bus_volume_db' method. + + + + + Cached name for the 'get_bus_volume_db' method. + + + + + Cached name for the 'set_bus_send' method. + + + + + Cached name for the 'get_bus_send' method. + + + + + Cached name for the 'set_bus_solo' method. + + + + + Cached name for the 'is_bus_solo' method. + + + + + Cached name for the 'set_bus_mute' method. + + + + + Cached name for the 'is_bus_mute' method. + + + + + Cached name for the 'set_bus_bypass_effects' method. + + + + + Cached name for the 'is_bus_bypassing_effects' method. + + + + + Cached name for the 'add_bus_effect' method. + + + + + Cached name for the 'remove_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_count' method. + + + + + Cached name for the 'get_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_instance' method. + + + + + Cached name for the 'swap_bus_effects' method. + + + + + Cached name for the 'set_bus_effect_enabled' method. + + + + + Cached name for the 'is_bus_effect_enabled' method. + + + + + Cached name for the 'get_bus_peak_volume_left_db' method. + + + + + Cached name for the 'get_bus_peak_volume_right_db' method. + + + + + Cached name for the 'set_playback_speed_scale' method. + + + + + Cached name for the 'get_playback_speed_scale' method. + + + + + Cached name for the 'lock' method. + + + + + Cached name for the 'unlock' method. + + + + + Cached name for the 'get_speaker_mode' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'get_input_mix_rate' method. + + + + + Cached name for the 'get_driver_name' method. + + + + + Cached name for the 'get_output_device_list' method. + + + + + Cached name for the 'get_output_device' method. + + + + + Cached name for the 'set_output_device' method. + + + + + Cached name for the 'get_time_to_next_mix' method. + + + + + Cached name for the 'get_time_since_last_mix' method. + + + + + Cached name for the 'get_output_latency' method. + + + + + Cached name for the 'get_input_device_list' method. + + + + + Cached name for the 'get_input_device' method. + + + + + Cached name for the 'set_input_device' method. + + + + + Cached name for the 'set_bus_layout' method. + + + + + Cached name for the 'generate_bus_layout' method. + + + + + Cached name for the 'set_enable_tagging_used_audio_streams' method. + + + + + Cached name for the 'is_stream_registered_as_sample' method. + + + + + Cached name for the 'register_stream_as_sample' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bus_layout_changed' signal. + + + + + Cached name for the 'bus_renamed' signal. + + + + + is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface. + + + + + Number of available audio buses. + + + + + Name of the current device for audio output (see ). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value "Default" will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to "Default". + + + + + Name of the current device for audio input (see ). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value "Default" will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to "Default". + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Scales the rate at which audio is played (i.e. setting it to 0.5 will make the audio be played at half its speed). See also to affect the general simulation speed, which is independent from . + + + + + Removes the bus at index . + + + + + Adds a bus at . + + + + + Moves the bus from index to index . + + + + + Sets the name of the bus at index to . + + + + + Returns the name of the bus with the index . + + + + + Returns the index of the bus with the name . Returns -1 if no bus with the specified name exist. + + + + + Returns the number of channels of the bus at index . + + + + + Sets the volume of the bus at index to . + + + + + Returns the volume of the bus at index in dB. + + + + + Connects the output of the bus at to the bus named . + + + + + Returns the name of the bus that the bus at index sends to. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is bypassing effects. + + + + + If , the bus at index is bypassing effects. + + + + + Adds an effect to the bus at . + + + + + Removes the effect at index from the bus at index . + + + + + Returns the number of effects on the bus at . + + + + + Returns the at position in bus . + + + + + Returns the assigned to the given bus and effect indices (and optionally channel). + + + + + Swaps the position of two effects in bus . + + + + + If , the effect at index on the bus at index is enabled. + + + + + If , the effect at index on the bus at index is enabled. + + + + + Returns the peak volume of the left speaker at bus index and channel index . + + + + + Returns the peak volume of the right speaker at bus index and channel index . + + + + + Locks the audio driver's main loop. + Note: Remember to unlock it afterwards. + + + + + Unlocks the audio driver's main loop. (After locking it, you should always unlock it.) + + + + + Returns the speaker configuration. + + + + + Returns the sample rate at the output of the . + + + + + Returns the sample rate at the input of the . + + + + + Returns the name of the current audio driver. The default usually depends on the operating system, but may be overridden via the --audio-driver command line argument. --headless also automatically sets the audio driver to Dummy. See also ProjectSettings.audio/driver/driver. + + + + + Returns the names of all audio output devices detected on the system. + + + + + Returns the relative time until the next mix occurs. + + + + + Returns the relative time since the last mix occurred. + + + + + Returns the audio driver's effective output latency. This is based on ProjectSettings.audio/driver/output_latency, but the exact returned value will differ depending on the operating system and audio driver. + Note: This can be expensive; it is not recommended to call every frame. + + + + + Returns the names of all audio input devices detected on the system. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Overwrites the currently used . + + + + + Generates an using the available buses and effects. + + + + + If set to , all instances of will call every mix step. + Note: This is enabled by default in the editor, as it is used by editor plugins for the audio stream previews. + + + + + If , the stream is registered as a sample. The engine will not have to register it before playing the sample. + If , the stream will have to be registered before playing it. To prevent lag spikes, register the stream as sample with . + + + + + Forces the registration of a stream as a sample. + Note: Lag spikes may occur when calling this method, especially on single-threaded builds. It is suggested to call this method while loading assets, where the lag spike could be masked, instead of registering the sample right before it needs to be played. + + + + + Emitted when an audio bus is added, deleted, or moved. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the audio bus at busIndex is renamed from oldName to newName. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bus_count' property. + + + + + Cached name for the 'output_device' property. + + + + + Cached name for the 'input_device' property. + + + + + Cached name for the 'playback_speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bus_count' method. + + + + + Cached name for the 'get_bus_count' method. + + + + + Cached name for the 'remove_bus' method. + + + + + Cached name for the 'add_bus' method. + + + + + Cached name for the 'move_bus' method. + + + + + Cached name for the 'set_bus_name' method. + + + + + Cached name for the 'get_bus_name' method. + + + + + Cached name for the 'get_bus_index' method. + + + + + Cached name for the 'get_bus_channels' method. + + + + + Cached name for the 'set_bus_volume_db' method. + + + + + Cached name for the 'get_bus_volume_db' method. + + + + + Cached name for the 'set_bus_send' method. + + + + + Cached name for the 'get_bus_send' method. + + + + + Cached name for the 'set_bus_solo' method. + + + + + Cached name for the 'is_bus_solo' method. + + + + + Cached name for the 'set_bus_mute' method. + + + + + Cached name for the 'is_bus_mute' method. + + + + + Cached name for the 'set_bus_bypass_effects' method. + + + + + Cached name for the 'is_bus_bypassing_effects' method. + + + + + Cached name for the 'add_bus_effect' method. + + + + + Cached name for the 'remove_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_count' method. + + + + + Cached name for the 'get_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_instance' method. + + + + + Cached name for the 'swap_bus_effects' method. + + + + + Cached name for the 'set_bus_effect_enabled' method. + + + + + Cached name for the 'is_bus_effect_enabled' method. + + + + + Cached name for the 'get_bus_peak_volume_left_db' method. + + + + + Cached name for the 'get_bus_peak_volume_right_db' method. + + + + + Cached name for the 'set_playback_speed_scale' method. + + + + + Cached name for the 'get_playback_speed_scale' method. + + + + + Cached name for the 'lock' method. + + + + + Cached name for the 'unlock' method. + + + + + Cached name for the 'get_speaker_mode' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'get_input_mix_rate' method. + + + + + Cached name for the 'get_driver_name' method. + + + + + Cached name for the 'get_output_device_list' method. + + + + + Cached name for the 'get_output_device' method. + + + + + Cached name for the 'set_output_device' method. + + + + + Cached name for the 'get_time_to_next_mix' method. + + + + + Cached name for the 'get_time_since_last_mix' method. + + + + + Cached name for the 'get_output_latency' method. + + + + + Cached name for the 'get_input_device_list' method. + + + + + Cached name for the 'get_input_device' method. + + + + + Cached name for the 'set_input_device' method. + + + + + Cached name for the 'set_bus_layout' method. + + + + + Cached name for the 'generate_bus_layout' method. + + + + + Cached name for the 'set_enable_tagging_used_audio_streams' method. + + + + + Cached name for the 'is_stream_registered_as_sample' method. + + + + + Cached name for the 'register_stream_as_sample' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bus_layout_changed' signal. + + + + + Cached name for the 'bus_renamed' signal. + + + + + Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via ) and Ogg (via ) file formats. + + + + + Override this method to return the bar beats of this stream. + + + + + 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 (, for example). + + + + + 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 (, for example). + + + + + Override this method to customize the returned value of . Should return the length of this audio stream, in seconds. + + + + + Return the controllable parameters of this stream. This array contains dictionaries with a property info description format (see ). Additionally, the default value for this parameter must be added tho each dictionary in "default_value" field. + + + + + Override this method to customize the name assigned to this audio stream. Unused by the engine. + + + + + Override this method to return if this stream has a loop. + + + + + Override this method to customize the returned value of . Should return a new created when the stream is played (such as by an ). + + + + + Override this method to customize the returned value of . Should return if this audio stream only supports one channel. + + + + + Returns the length of the audio stream in seconds. + + + + + Returns if this audio stream only supports one channel (monophony), or if the audio stream supports two or more channels (polyphony). + + + + + Returns a newly created intended to play this audio stream. Useful for when you want to extend but call from an internally held AudioStream subresource. An example of this can be found in the source code for AudioStreamRandomPitch::instantiate_playback. + + + + + Returns if the current can be used as a sample. Only static streams can be sampled. + + + + + Generates an based on the current stream. + + + + + Returns if the stream is a collection of other streams, otherwise. + + + + + Signal to be emitted to notify when the parameter list changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_bar_beats' method. + + + + + Cached name for the '_get_beat_count' method. + + + + + Cached name for the '_get_bpm' method. + + + + + Cached name for the '_get_length' method. + + + + + Cached name for the '_get_parameter_list' method. + + + + + Cached name for the '_get_stream_name' method. + + + + + Cached name for the '_has_loop' method. + + + + + Cached name for the '_instantiate_playback' method. + + + + + Cached name for the '_is_monophonic' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'is_monophonic' method. + + + + + Cached name for the 'instantiate_playback' method. + + + + + Cached name for the 'can_be_sampled' method. + + + + + Cached name for the 'generate_sample' method. + + + + + Cached name for the 'is_meta_stream' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'parameter_list_changed' signal. + + + + + 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 . + Here's a sample on how to use it to generate a sine wave: + + [Export] public AudioStreamPlayer Player { get; set; } + + private AudioStreamGeneratorPlayback _playback; // Will hold the AudioStreamGeneratorPlayback. + private float _sampleHz; + private float _pulseHz = 440.0f; // The frequency of the sound wave. + + public override void _Ready() + { + if (Player.Stream is AudioStreamGenerator generator) // Type as a generator to access MixRate. + { + _sampleHz = generator.MixRate; + Player.Play(); + _playback = (AudioStreamGeneratorPlayback)Player.GetStreamPlayback(); + FillBuffer(); + } + } + + public void FillBuffer() + { + double phase = 0.0; + float increment = _pulseHz / _sampleHz; + int framesAvailable = _playback.GetFramesAvailable(); + + for (int i = 0; i < framesAvailable; i++) + { + _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf.Tau)); + phase = Mathf.PosMod(phase + increment, 1.0); + } + } + + In the example above, the "AudioStreamPlayer" node must use an as its stream. The fill_buffer function provides audio data for approximating a sine wave. + See also for performing real-time audio spectrum analysis. + Note: Due to performance constraints, this class is best used from C# or from a compiled language via GDExtension. If you still want to use this class from GDScript, consider using a lower such as 11,025 Hz or 22,050 Hz. + + + + + The sample rate to use (in Hz). Higher values are more demanding for the CPU to generate, but result in better quality. + In games, common sample rates in use are 11025, 16000, 22050, 32000, 44100, and 48000. + According to the Nyquist-Shannon sampling theorem, there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are generating lower-pitched sounds such as voices, lower sample rates such as 32000 or 22050 may be usable with no loss in quality. + + + + + The length of the buffer to generate (in seconds). Lower values result in less latency, but require the script to generate audio data faster, resulting in increased CPU usage and more risk for audio cracking if the CPU can't keep up. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mix_rate' property. + + + + + Cached name for the 'buffer_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mix_rate' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'set_buffer_length' method. + + + + + Cached name for the 'get_buffer_length' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is meant to be used with to play back the generated audio in real-time. + + + + + Pushes a single audio data frame to the buffer. This is usually less efficient than in C# and compiled languages via GDExtension, but may be more efficient in GDScript. + + + + + Returns if a buffer of the size can be pushed to the audio sample data buffer without overflowing it, otherwise. + + + + + Pushes several audio data frames to the buffer. This is usually more efficient than in C# and compiled languages via GDExtension, but may be less efficient in GDScript. + + + + + Pushes several audio data frames to the buffer. This is usually more efficient than in C# and compiled languages via GDExtension, but may be less efficient in GDScript. + + + + + Returns the number of frames that can be pushed to the audio sample data buffer without overflowing it. If the result is 0, the buffer is full. + + + + + Returns the number of times the playback skipped due to a buffer underrun in the audio sample data. This value is reset at the start of the playback. + + + + + Clears the audio sample data buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'push_frame' method. + + + + + Cached name for the 'can_push_buffer' method. + + + + + Cached name for the 'push_buffer' method. + + + + + Cached name for the 'get_frames_available' method. + + + + + Cached name for the 'get_skips' method. + + + + + Cached name for the 'clear_buffer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is an audio stream that can playback music interactively, combining clips and a transition table. Clips must be added first, and then the transition rules via the . Additionally, this stream exports a property parameter to control the playback via , , or . + The way this is used is by filling a number of clips, then configuring the transition table. From there, clips are selected for playback and the music will smoothly go from the current to the new one while using the corresponding transition rule defined in the transition table. + + + + + This constant describes that any clip is valid for a specific transition as either source or destination. + + + + + Start transition as soon as possible, don't wait for any specific time position. + + + + + Transition when the clip playback position reaches the next beat. + + + + + Transition when the clip playback position reaches the next bar. + + + + + Transition when the current clip finished playing. + + + + + Transition to the same position in the destination clip. This is useful when both clips have exactly the same length and the music should fade between them. + + + + + Transition to the start of the destination clip. + + + + + Do not use fade for the transition. This is useful when transitioning from a clip-end to clip-beginning, and each clip has their begin/end. + + + + + Use a fade-in in the next clip, let the current clip finish. + + + + + Use a fade-out in the current clip, the next clip will start by itself. + + + + + Use a cross-fade between clips. + + + + + Use automatic fade logic depending on the transition from/to. It is recommended to use this by default. + + + + + Disable auto-advance (default). + + + + + Enable auto-advance, a clip must be specified. + + + + + Enable auto-advance, but instead of specifying a clip, the playback will return to hold (see ). + + + + + Amount of clips contained in this interactive player. + + + + + Index of the initial clip, which will be played first when this stream is played. + + + + + Set the name of the current clip (for easier identification). + + + + + Return the name of a clip. + + + + + Set the associated with the current clip. + + + + + Return the associated with a clip. + + + + + Set whether a clip will auto-advance by changing the auto-advance mode. + + + + + Return whether a clip has auto-advance enabled. See . + + + + + Set the index of the next clip towards which this clip will auto advance to when finished. If the clip being played loops, then auto-advance will be ignored. + + + + + Return the clip towards which the clip referenced by will auto-advance to. + + + + + Add a transition between two clips. Provide the indices of the source and destination clips, or use the constant to indicate that transition happens to/from any clip to this one. + * indicates the moment in the current clip the transition will begin after triggered. + * indicates the time in the next clip that the playback will start from. + * indicates how the fade will happen between clips. If unsure, just use which uses the most common type of fade for each situation. + * indicates how many beats the fade will take. Using decimals is allowed. + * indicates that there will be a filler clip used between the source and destination clips. + * the index of the filler clip. + * If is used, then this clip will be remembered. This can be used together with to return to this clip after another is done playing. + + + + + Returns if a given transition exists (was added via ). + + + + + Erase a transition by providing and clip indices. can be used for either argument or both. + + + + + Return the list of transitions (from, to interleaved). + + + + + Return the source time position for a transition (see ). + + + + + Return the destination time position for a transition (see ). + + + + + Return the mode for a transition (see ). + + + + + Return the time (in beats) for a transition (see ). + + + + + Return whether a transition uses the filler clip functionality (see ). + + + + + Return the filler clip for a transition (see ). + + + + + Return whether a transition uses the hold previous functionality (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'clip_count' property. + + + + + Cached name for the 'initial_clip' property. + + + + + Cached name for the '_transitions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_clip_count' method. + + + + + Cached name for the 'get_clip_count' method. + + + + + Cached name for the 'set_initial_clip' method. + + + + + Cached name for the 'get_initial_clip' method. + + + + + Cached name for the 'set_clip_name' method. + + + + + Cached name for the 'get_clip_name' method. + + + + + Cached name for the 'set_clip_stream' method. + + + + + Cached name for the 'get_clip_stream' method. + + + + + Cached name for the 'set_clip_auto_advance' method. + + + + + Cached name for the 'get_clip_auto_advance' method. + + + + + Cached name for the 'set_clip_auto_advance_next_clip' method. + + + + + Cached name for the 'get_clip_auto_advance_next_clip' method. + + + + + Cached name for the 'add_transition' method. + + + + + Cached name for the 'has_transition' method. + + + + + Cached name for the 'erase_transition' method. + + + + + Cached name for the 'get_transition_list' method. + + + + + Cached name for the 'get_transition_from_time' method. + + + + + Cached name for the 'get_transition_to_time' method. + + + + + Cached name for the 'get_transition_fade_mode' method. + + + + + Cached name for the 'get_transition_fade_beats' method. + + + + + Cached name for the 'is_transition_using_filler_clip' method. + + + + + Cached name for the 'get_transition_filler_clip' method. + + + + + Cached name for the 'is_transition_holding_previous' method. + + + + + Cached name for the '_set_transitions' method. + + + + + Cached name for the '_get_transitions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MP3 audio stream driver. See if you want to load an MP3 file at run-time. + + + + + Contains the audio data in bytes. + You can load a file without having to import it beforehand using the code snippet below. Keep in mind that this snippet loads the whole file into memory and may not be ideal for huge files (hundreds of megabytes or more). + + public AudioStreamMP3 LoadMP3(string path) + { + using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read); + var sound = new AudioStreamMP3(); + sound.Data = file.GetBuffer(file.GetLength()); + return sound; + } + + + + + + If , the stream will automatically loop when it reaches the end. + + + + + Time in seconds at which the stream starts after being looped. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'bpm' property. + + + + + Cached name for the 'beat_count' property. + + + + + Cached name for the 'bar_beats' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'loop_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_loop_offset' method. + + + + + Cached name for the 'get_loop_offset' method. + + + + + Cached name for the 'set_bpm' method. + + + + + Cached name for the 'get_bpm' method. + + + + + Cached name for the 'set_beat_count' method. + + + + + Cached name for the 'get_beat_count' method. + + + + + Cached name for the 'set_bar_beats' method. + + + + + Cached name for the 'get_bar_beats' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + When used directly in an node, plays back microphone input in real-time. This can be used in conjunction with to process the data or save it. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The AudioStreamOggVorbis class is a specialized 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 class. + + + + + Contains the raw Ogg data for this stream. + + + + + If , the audio will play again from the specified once it is done playing. Useful for ambient sounds and background music. + + + + + Time in seconds at which the stream starts after being looped. + + + + + Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer must contain Ogg Vorbis data. + + + + + Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer must contain Ogg Vorbis data. + + + + + Creates a new AudioStreamOggVorbis instance from the given file path. The file must be in Ogg Vorbis format. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'packet_sequence' property. + + + + + Cached name for the 'bpm' property. + + + + + Cached name for the 'beat_count' property. + + + + + Cached name for the 'bar_beats' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'loop_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_from_buffer' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached name for the 'set_packet_sequence' method. + + + + + Cached name for the 'get_packet_sequence' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_loop_offset' method. + + + + + Cached name for the 'get_loop_offset' method. + + + + + Cached name for the 'set_bpm' method. + + + + + Cached name for the 'get_bpm' method. + + + + + Cached name for the 'set_beat_count' method. + + + + + Cached name for the 'get_beat_count' method. + + + + + Cached name for the 'set_bar_beats' method. + + + + + Cached name for the 'get_bar_beats' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Can play, loop, pause a scroll through audio. See and for usage. + + + + + Overridable method. Should return how many times this audio stream has looped. Most built-in playbacks always return 0. + + + + + Return the current value of a playback parameter by name (see ). + + + + + Overridable method. Should return the current progress along the audio stream, in seconds. + + + + + Overridable method. Should return if this playback is active and playing its audio stream. + + + + + Override this method to customize what happens when seeking this audio stream at the given , such as by calling . + + + + + Set the current value of a playback parameter by name (see ). + + + + + Override this method to customize what happens when the playback starts at the given position, such as by calling . + + + + + Override this method to customize what happens when the playback is stopped, such as by calling . + + + + + Overridable method. Called whenever the audio stream is mixed if the playback is active and has been set to . Editor plugins may use this method to "tag" the current position along the audio stream and display it in a preview. + + + + + Associates to this for playing back the audio sample of this stream. + + + + + Returns the associated with this for playing back the audio sample of this stream. + + + + + Mixes up to of audio from the stream from the current position, at a rate of , advancing the stream. + Returns a [] where each element holds the left and right channel volume levels of each frame. + Note: Can return fewer frames than requested, make sure to use the size of the return value. + + + + + Starts the stream from the given , in seconds. + + + + + Seeks the stream at the given , in seconds. + + + + + Stops the stream. + + + + + Returns the number of times the stream has looped. + + + + + Returns the current position in the stream, in seconds. + + + + + Returns if the stream is playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_loop_count' method. + + + + + Cached name for the '_get_parameter' method. + + + + + Cached name for the '_get_playback_position' method. + + + + + Cached name for the '_is_playing' method. + + + + + Cached name for the '_seek' method. + + + + + Cached name for the '_set_parameter' method. + + + + + Cached name for the '_start' method. + + + + + Cached name for the '_stop' method. + + + + + Cached name for the '_tag_used_streams' method. + + + + + Cached name for the 'set_sample_playback' method. + + + + + Cached name for the 'get_sample_playback' method. + + + + + Cached name for the 'mix_audio' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'get_loop_count' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Playback component of . Contains functions to change the currently played clip. + + + + + Switch to a clip (by name). + + + + + Switch to a clip (by index). + + + + + Return the index of the currently playing clip. You can use this to get the name of the currently playing clip with . + Example: Get the currently playing clip name from inside an node. + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'switch_to_clip_by_name' method. + + + + + Cached name for the 'switch_to_clip' method. + + + + + Cached name for the 'get_current_clip_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Playback instance for . After setting the stream property of , , or , the playback instance can be obtained by calling , or methods. + + + + + Returned by in case it could not allocate a stream for playback. + + + + + Play an at a given offset, volume, pitch scale, playback type, and bus. Playback starts immediately. + The return value is a unique integer ID that is associated to this playback stream and which can be used to control it. + This ID becomes invalid when the stream ends (if it does not loop), when the is stopped, or when is called. + This function returns if the amount of streams currently playing equals . If you need a higher amount of maximum polyphony, raise this value. + + + + + Change the stream volume (in db). The argument is an integer ID returned by . + + + + + Change the stream pitch scale. The argument is an integer ID returned by . + + + + + Returns if the stream associated with the given integer ID is still playing. Check for information on when this ID becomes invalid. + + + + + Stop a stream. The argument is an integer ID returned by , which becomes invalid after calling this function. + + + + + Play an at a given offset, volume, pitch scale, playback type, and bus. Playback starts immediately. + The return value is a unique integer ID that is associated to this playback stream and which can be used to control it. + This ID becomes invalid when the stream ends (if it does not loop), when the is stopped, or when is called. + This function returns if the amount of streams currently playing equals . If you need a higher amount of maximum polyphony, raise this value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'play_stream' method. + + + + + Cached name for the 'set_stream_volume' method. + + + + + Cached name for the 'set_stream_pitch_scale' method. + + + + + Cached name for the 'is_stream_playing' method. + + + + + Cached name for the 'stop_stream' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_stream_sampling_rate' method. + + + + + Cached name for the 'begin_resample' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node plays an audio stream non-positionally. It is ideal for user interfaces, menus, or background music. + To use this node, needs to be set to a valid resource. Playing more than one sound at the same time is also supported, see . + If you need to play audio at a specific position, use or instead. + + + + + The audio will be played only on the first channel. This is the default. + + + + + The audio will be played on all surround channels. + + + + + The audio will be played on the second channel, which is usually the center. + + + + + The resource to be played. Setting this property stops all currently playing sounds. If left empty, the does not work. + + + + + Volume of sound, in decibel. This is an offset of the 's volume. + Note: To convert between decibel and linear energy (like most volume sliders do), use @GlobalScope.db_to_linear and @GlobalScope.linear_to_db. + + + + + The audio's pitch and tempo, as a multiplier of the 's sample rate. A value of 2.0 doubles the audio's pitch, while a value of 0.5 halves the pitch. + + + + + If , this node is playing sounds. Setting this property has the same effect as and . + + + + + If , this node calls when entering the tree. + + + + + If , the sounds are paused. Setting to resumes all sounds. + Note: This property is automatically changed when exiting or entering the tree, or this node is paused (see ). + + + + + The mix target channels, as one of the constants. Has no effect when two speakers or less are detected (see ). + + + + + The maximum number of sounds this node can play at the same time. Calling after this value is reached will cut off the oldest sounds. + + + + + The target bus name. All sounds from this node will be playing on this bus. + Note: At runtime, if no bus with the given name exists, all sounds will fall back on "Master". See also . + + + + + The playback type of the stream player. If set other than to the default value, it will force that playback type. + + + + + Plays a sound from the beginning, or the given in seconds. + + + + + Restarts all sounds to be played from the given , in seconds. Does nothing if no sounds are playing. + + + + + Stops all sounds from this node. + + + + + Returns the position in the of the latest sound, in seconds. Returns 0.0 if no sounds are playing. + Note: The position is not always accurate, as the does not mix audio every processed frame. To get more accurate results, add to the returned position. + Note: This method always returns 0.0 if the is an , since it can have multiple clips playing at once. + + + + + Returns if any sound is active, even if is set to . See also and . + + + + + Returns the latest of this node, usually the most recently created by . If no sounds are playing, this method fails and returns an empty playback. + + + + + Emitted when a sound finishes playing without interruptions. This signal is not emitted when calling , or when exiting the tree while sounds are playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'playing' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'stream_paused' property. + + + + + Cached name for the 'mix_target' property. + + + + + Cached name for the 'max_polyphony' property. + + + + + Cached name for the 'bus' property. + + + + + Cached name for the 'playback_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'is_autoplay_enabled' method. + + + + + Cached name for the 'set_mix_target' method. + + + + + Cached name for the 'get_mix_target' method. + + + + + Cached name for the 'set_playing' method. + + + + + Cached name for the 'set_stream_paused' method. + + + + + Cached name for the 'get_stream_paused' method. + + + + + Cached name for the 'set_max_polyphony' method. + + + + + Cached name for the 'get_max_polyphony' method. + + + + + Cached name for the 'has_stream_playback' method. + + + + + Cached name for the 'get_stream_playback' method. + + + + + Cached name for the 'set_playback_type' method. + + + + + Cached name for the 'get_playback_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 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 node to the scene and enabling it by calling on it. + See also to play a sound non-positionally. + Note: Hiding an node does not disable its audio output. To temporarily disable an 's audio output, set to a very low value like -100 (which isn't audible to human hearing). + + + + + The object to be played. + + + + + Base volume before attenuation. + + + + + The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate. + + + + + If , audio is playing or is queued to be played (see ). + + + + + If , audio plays when added to scene tree. + + + + + If , the playback is paused. You can resume it by setting to . + + + + + Maximum distance from which audio is still hearable. + + + + + The volume is attenuated over distance with this as an exponent. + + + + + The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds. + + + + + Scales the panning strength for this node by multiplying the base ProjectSettings.audio/general/2d_panning_strength with this factor. Higher values will pan audio from left to right more dramatically than lower values. + + + + + Bus on which this audio is playing. + Note: When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to "Master". + + + + + Determines which layers affect the sound for reverb and audio bus effects. Areas can be used to redirect s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater. + + + + + The playback type of the stream player. If set other than to the default value, it will force that playback type. + + + + + Queues the audio to play on the next physics frame, from the given position , in seconds. + + + + + Sets the position from which audio will be played, in seconds. + + + + + Stops the audio. + + + + + Returns the position in the . + + + + + Returns whether the can return the object or not. + + + + + Returns the object associated with this . + + + + + Emitted when the audio stops playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'playing' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'stream_paused' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached name for the 'attenuation' property. + + + + + Cached name for the 'max_polyphony' property. + + + + + Cached name for the 'panning_strength' property. + + + + + Cached name for the 'bus' property. + + + + + Cached name for the 'area_mask' property. + + + + + Cached name for the 'playback_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'is_autoplay_enabled' method. + + + + + Cached name for the 'set_playing' method. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached name for the 'set_attenuation' method. + + + + + Cached name for the 'get_attenuation' method. + + + + + Cached name for the 'set_area_mask' method. + + + + + Cached name for the 'get_area_mask' method. + + + + + Cached name for the 'set_stream_paused' method. + + + + + Cached name for the 'get_stream_paused' method. + + + + + Cached name for the 'set_max_polyphony' method. + + + + + Cached name for the 'get_max_polyphony' method. + + + + + Cached name for the 'set_panning_strength' method. + + + + + Cached name for the 'get_panning_strength' method. + + + + + Cached name for the 'has_stream_playback' method. + + + + + Cached name for the 'get_stream_playback' method. + + + + + Cached name for the 'set_playback_type' method. + + + + + Cached name for the 'get_playback_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 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 to 20500. + By default, audio is heard from the camera position. This can be changed by adding an node to the scene and enabling it by calling on it. + See also to play a sound non-positionally. + Note: Hiding an node does not disable its audio output. To temporarily disable an 's audio output, set to a very low value like -100 (which isn't audible to human hearing). + + + + + Attenuation of loudness according to linear distance. + + + + + Attenuation of loudness according to squared distance. + + + + + Attenuation of loudness according to logarithmic distance. + + + + + No attenuation of loudness according to distance. The sound will still be heard positionally, unlike an . can be combined with a value greater than 0.0 to achieve linear attenuation clamped to a sphere of a defined size. + + + + + Disables doppler tracking. + + + + + Executes doppler tracking during process frames (see ). + + + + + Executes doppler tracking during physics frames (see ). + + + + + The resource to be played. + + + + + Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation. + + + + + The base sound level before attenuation, in decibels. + + + + + The factor for the attenuation effect. Higher values make the sound audible over a larger distance. + + + + + Sets the absolute maximum of the sound level, in decibels. + + + + + The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate. + + + + + If , audio is playing or is queued to be played (see ). + + + + + If , audio plays when the AudioStreamPlayer3D node is added to scene tree. + + + + + If , the playback is paused. You can resume it by setting to . + + + + + The distance past which the sound can no longer be heard at all. Only has an effect if set to a value greater than 0.0. works in tandem with . However, unlike whose behavior depends on the , always works in a linear fashion. This can be used to prevent the from requiring audio mixing when the listener is far away, which saves CPU resources. + + + + + The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds. + + + + + Scales the panning strength for this node by multiplying the base ProjectSettings.audio/general/3d_panning_strength with this factor. Higher values will pan audio from left to right more dramatically than lower values. + + + + + The bus on which this audio is playing. + Note: When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to "Master". + + + + + Determines which layers affect the sound for reverb and audio bus effects. Areas can be used to redirect s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater. + + + + + The playback type of the stream player. If set other than to the default value, it will force that playback type. + + + + + If , the audio should be attenuated according to the direction of the sound. + + + + + The angle in which the audio reaches a listener unattenuated. + + + + + Attenuation factor used if listener is outside of and is set, in decibels. + + + + + The cutoff frequency of the attenuation low-pass filter, in Hz. A sound above this frequency is attenuated more than a sound below this frequency. To disable this effect, set this to 20500 as this frequency is above the human hearing limit. + + + + + Amount how much the filter affects the loudness, in decibels. + + + + + Decides in which step the Doppler effect should be calculated. + + + + + Queues the audio to play on the next physics frame, from the given position , in seconds. + + + + + Sets the position from which audio will be played, in seconds. + + + + + Stops the audio. + + + + + Returns the position in the . + + + + + Returns whether the can return the object or not. + + + + + Returns the object associated with this . + + + + + Emitted when the audio stops playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'attenuation_model' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'unit_size' property. + + + + + Cached name for the 'max_db' property. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'playing' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'stream_paused' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached name for the 'max_polyphony' property. + + + + + Cached name for the 'panning_strength' property. + + + + + Cached name for the 'bus' property. + + + + + Cached name for the 'area_mask' property. + + + + + Cached name for the 'playback_type' property. + + + + + Cached name for the 'emission_angle_enabled' property. + + + + + Cached name for the 'emission_angle_degrees' property. + + + + + Cached name for the 'emission_angle_filter_attenuation_db' property. + + + + + Cached name for the 'attenuation_filter_cutoff_hz' property. + + + + + Cached name for the 'attenuation_filter_db' property. + + + + + Cached name for the 'doppler_tracking' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_unit_size' method. + + + + + Cached name for the 'get_unit_size' method. + + + + + Cached name for the 'set_max_db' method. + + + + + Cached name for the 'get_max_db' method. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'is_autoplay_enabled' method. + + + + + Cached name for the 'set_playing' method. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached name for the 'set_area_mask' method. + + + + + Cached name for the 'get_area_mask' method. + + + + + Cached name for the 'set_emission_angle' method. + + + + + Cached name for the 'get_emission_angle' method. + + + + + Cached name for the 'set_emission_angle_enabled' method. + + + + + Cached name for the 'is_emission_angle_enabled' method. + + + + + Cached name for the 'set_emission_angle_filter_attenuation_db' method. + + + + + Cached name for the 'get_emission_angle_filter_attenuation_db' method. + + + + + Cached name for the 'set_attenuation_filter_cutoff_hz' method. + + + + + Cached name for the 'get_attenuation_filter_cutoff_hz' method. + + + + + Cached name for the 'set_attenuation_filter_db' method. + + + + + Cached name for the 'get_attenuation_filter_db' method. + + + + + Cached name for the 'set_attenuation_model' method. + + + + + Cached name for the 'get_attenuation_model' method. + + + + + Cached name for the 'set_doppler_tracking' method. + + + + + Cached name for the 'get_doppler_tracking' method. + + + + + Cached name for the 'set_stream_paused' method. + + + + + Cached name for the 'get_stream_paused' method. + + + + + Cached name for the 'set_max_polyphony' method. + + + + + Cached name for the 'get_max_polyphony' method. + + + + + Cached name for the 'set_panning_strength' method. + + + + + Cached name for the 'get_panning_strength' method. + + + + + Cached name for the 'has_stream_playback' method. + + + + + Cached name for the 'get_stream_playback' method. + + + + + Cached name for the 'set_playback_type' method. + + + + + Cached name for the 'get_playback_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + Maximum amount of streams supported in the playlist. + + + + + If , the playlist will shuffle each time playback starts and each time it loops. + + + + + If , the playlist will loop, otherwise the playlist will end when the last stream is finished. + + + + + Fade time used when a stream ends, when going to the next one. Streams are expected to have an extra bit of audio after the end to help with fading. + + + + + Amount of streams in the playlist. + + + + + Returns the BPM of the playlist, which can vary depending on the clip being played. + + + + + Sets the stream at playback position index. + + + + + Returns the stream at playback position index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shuffle' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'fade_time' property. + + + + + Cached name for the 'stream_count' property. + + + + + Cached name for the 'stream_0' property. + + + + + Cached name for the 'stream_1' property. + + + + + Cached name for the 'stream_2' property. + + + + + Cached name for the 'stream_3' property. + + + + + Cached name for the 'stream_4' property. + + + + + Cached name for the 'stream_5' property. + + + + + Cached name for the 'stream_6' property. + + + + + Cached name for the 'stream_7' property. + + + + + Cached name for the 'stream_8' property. + + + + + Cached name for the 'stream_9' property. + + + + + Cached name for the 'stream_10' property. + + + + + Cached name for the 'stream_11' property. + + + + + Cached name for the 'stream_12' property. + + + + + Cached name for the 'stream_13' property. + + + + + Cached name for the 'stream_14' property. + + + + + Cached name for the 'stream_15' property. + + + + + Cached name for the 'stream_16' property. + + + + + Cached name for the 'stream_17' property. + + + + + Cached name for the 'stream_18' property. + + + + + Cached name for the 'stream_19' property. + + + + + Cached name for the 'stream_20' property. + + + + + Cached name for the 'stream_21' property. + + + + + Cached name for the 'stream_22' property. + + + + + Cached name for the 'stream_23' property. + + + + + Cached name for the 'stream_24' property. + + + + + Cached name for the 'stream_25' property. + + + + + Cached name for the 'stream_26' property. + + + + + Cached name for the 'stream_27' property. + + + + + Cached name for the 'stream_28' property. + + + + + Cached name for the 'stream_29' property. + + + + + Cached name for the 'stream_30' property. + + + + + Cached name for the 'stream_31' property. + + + + + Cached name for the 'stream_32' property. + + + + + Cached name for the 'stream_33' property. + + + + + Cached name for the 'stream_34' property. + + + + + Cached name for the 'stream_35' property. + + + + + Cached name for the 'stream_36' property. + + + + + Cached name for the 'stream_37' property. + + + + + Cached name for the 'stream_38' property. + + + + + Cached name for the 'stream_39' property. + + + + + Cached name for the 'stream_40' property. + + + + + Cached name for the 'stream_41' property. + + + + + Cached name for the 'stream_42' property. + + + + + Cached name for the 'stream_43' property. + + + + + Cached name for the 'stream_44' property. + + + + + Cached name for the 'stream_45' property. + + + + + Cached name for the 'stream_46' property. + + + + + Cached name for the 'stream_47' property. + + + + + Cached name for the 'stream_48' property. + + + + + Cached name for the 'stream_49' property. + + + + + Cached name for the 'stream_50' property. + + + + + Cached name for the 'stream_51' property. + + + + + Cached name for the 'stream_52' property. + + + + + Cached name for the 'stream_53' property. + + + + + Cached name for the 'stream_54' property. + + + + + Cached name for the 'stream_55' property. + + + + + Cached name for the 'stream_56' property. + + + + + Cached name for the 'stream_57' property. + + + + + Cached name for the 'stream_58' property. + + + + + Cached name for the 'stream_59' property. + + + + + Cached name for the 'stream_60' property. + + + + + Cached name for the 'stream_61' property. + + + + + Cached name for the 'stream_62' property. + + + + + Cached name for the 'stream_63' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream_count' method. + + + + + Cached name for the 'get_stream_count' method. + + + + + Cached name for the 'get_bpm' method. + + + + + Cached name for the 'set_list_stream' method. + + + + + Cached name for the 'get_list_stream' method. + + + + + Cached name for the 'set_shuffle' method. + + + + + Cached name for the 'get_shuffle' method. + + + + + Cached name for the 'set_fade_time' method. + + + + + Cached name for the 'get_fade_time' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + AudioStream that lets the user play custom streams at any time from code, simultaneously using a single player. + Playback control is done via the instance set inside the player, which can be obtained via , or methods. Obtaining the playback instance is only valid after the stream property is set as an in those players. + + + + + Maximum amount of simultaneous streams that can be played. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'polyphony' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polyphony' method. + + + + + Cached name for the 'get_polyphony' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Picks a random AudioStream from the pool, depending on the playback mode, and applies random pitch shifting and volume shifting during playback. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Controls how this AudioStreamRandomizer picks which AudioStream to play next. + + + + + The intensity of random pitch variation. A value of 1 means no variation. + + + + + The intensity of random volume variation. A value of 0 means no variation. + + + + + The number of streams in the stream pool. + + + + + Insert a stream at the specified index. If the index is less than zero, the insertion occurs at the end of the underlying pool. + + + + + Move a stream from one index to another. + + + + + Remove the stream at the specified index. + + + + + Set the AudioStream at the specified index. + + + + + Returns the stream at the specified index. + + + + + Set the probability weight of the stream at the specified index. The higher this value, the more likely that the randomizer will choose this stream during random playback modes. + + + + + Returns the probability weight associated with the stream at the given index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'playback_mode' property. + + + + + Cached name for the 'random_pitch' property. + + + + + Cached name for the 'random_volume_offset_db' property. + + + + + Cached name for the 'streams_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_stream' method. + + + + + Cached name for the 'move_stream' method. + + + + + Cached name for the 'remove_stream' method. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_stream_probability_weight' method. + + + + + Cached name for the 'get_stream_probability_weight' method. + + + + + Cached name for the 'set_streams_count' method. + + + + + Cached name for the 'get_streams_count' method. + + + + + Cached name for the 'set_random_pitch' method. + + + + + Cached name for the 'get_random_pitch' method. + + + + + Cached name for the 'set_random_volume_offset_db' method. + + + + + Cached name for the 'get_random_volume_offset_db' method. + + + + + Cached name for the 'set_playback_mode' method. + + + + + Cached name for the 'get_playback_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a stream that can be fitted with sub-streams, which will be played in-sync. The streams being at exactly the same time when play is pressed, and will end when the last of them ends. If one of the sub-streams loops, then playback will continue. + + + + + Maximum amount of streams that can be synchronized. + + + + + Set the total amount of streams that will be played back synchronized. + + + + + Set one of the synchronized streams, by index. + + + + + Get one of the synchronized streams, by index. + + + + + Set the volume of one of the synchronized streams, by index. + + + + + Get the volume of one of the synchronized streams, by index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream_count' method. + + + + + Cached name for the 'get_stream_count' method. + + + + + Cached name for the 'set_sync_stream' method. + + + + + Cached name for the 'get_sync_stream' method. + + + + + Cached name for the 'set_sync_stream_volume' method. + + + + + Cached name for the 'get_sync_stream_volume' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + AudioStreamWAV stores sound samples loaded from WAV files. To play the stored sound, use an (for non-positional audio) or / (for positional audio). The sound can be looped. + This class can also be used to store dynamically-generated PCM audio data. See also for procedural audio generation. + + + + + 8-bit PCM audio codec. + + + + + 16-bit PCM audio codec. + + + + + Audio is lossily compressed as IMA ADPCM. + + + + + Audio is lossily compressed as Quite OK Audio. + + + + + Audio does not loop. + + + + + Audio loops the data between and , playing forward only. + + + + + Audio loops the data between and , playing back and forth. + + + + + Audio loops the data between and , playing backward only. + + + + + Contains the audio data in bytes. + Note: If is set to , this property expects signed 8-bit PCM data. To convert from unsigned 8-bit PCM, subtract 128 from each byte. + Note: If is set to , this property expects data from a full QOA file. + + + + + Audio format. See constants for values. + + + + + The loop mode. See constants for values. + + + + + The loop start point (in number of samples, relative to the beginning of the stream). + + + + + The loop end point (in number of samples, relative to the beginning of the stream). + + + + + The sample rate for mixing this audio. Higher values require more storage space, but result in better quality. + In games, common sample rates in use are 11025, 16000, 22050, 32000, 44100, and 48000. + According to the Nyquist-Shannon sampling theorem, there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are using lower-pitched sounds such as voices, lower sample rates such as 32000 or 22050 may be usable with no loss in quality. + + + + + If , audio is stereo. + + + + + Creates a new instance from the given file path. The keys and values of match the properties of ResourceImporterWav. + Example: Load the first file dropped as a WAV and play it: + + @onready var audio_player = $AudioStreamPlayer + + func _ready(): + get_window().files_dropped.connect(_on_files_dropped) + + func _on_files_dropped(files): + if files[0].get_extension() == "wav": + audio_player.stream = AudioStreamWAV.load_from_file(files[0], { + "force/max_rate": true, + "force/max_rate_hz": 11025 + }) + audio_player.play() + + + + + + Creates a new instance from the given buffer. The keys and values of match the properties of ResourceImporterWav. + The usage of is identical to . + + + + + Creates a new instance from the given buffer. The keys and values of match the properties of ResourceImporterWav. + The usage of is identical to . + + + + + Saves the AudioStreamWAV as a WAV file to . Samples with IMA ADPCM or Quite OK Audio formats can't be saved. + Note: A .wav extension is automatically appended to if it is missing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'loop_mode' property. + + + + + Cached name for the 'loop_begin' property. + + + + + Cached name for the 'loop_end' property. + + + + + Cached name for the 'mix_rate' property. + + + + + Cached name for the 'stereo' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached name for the 'load_from_buffer' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_loop_mode' method. + + + + + Cached name for the 'get_loop_mode' method. + + + + + Cached name for the 'set_loop_begin' method. + + + + + Cached name for the 'get_loop_begin' method. + + + + + Cached name for the 'set_loop_end' method. + + + + + Cached name for the 'get_loop_end' method. + + + + + Cached name for the 'set_mix_rate' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'set_stereo' method. + + + + + Cached name for the 'is_stereo' method. + + + + + Cached name for the 'save_to_wav' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node for back-buffering the currently-displayed screen. The region defined in the node is buffered with the content of the screen it covers, or the entire screen according to the . It can be accessed in shader scripts using the screen texture (i.e. a uniform sampler with hint_screen_texture). + Note: Since this node inherits from (and not ), anchors and margins won't apply to child -derived nodes. This can be problematic when resizing the window. To avoid this, add -derived nodes as siblings to the node instead of adding them as children. + + + + + Disables the buffering mode. This means the node will directly use the portion of screen it covers. + + + + + buffers a rectangular region. + + + + + buffers the entire screen. + + + + + Buffer mode. See constants. + + + + + The area covered by the . Only used if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'copy_mode' property. + + + + + Cached name for the 'rect' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rect' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached name for the 'set_copy_mode' method. + + + + + Cached name for the 'get_copy_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for GUI buttons. It doesn't display anything by itself. + + + + + The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons. + + + + + The state of buttons are pressed. + + + + + The state of buttons are hovered. + + + + + The state of buttons are disabled. + + + + + The state of buttons are both hovered and pressed. + + + + + Require just a press to consider the button clicked. + + + + + Require a press and a subsequent release before considering the button clicked. + + + + + If , the button is in disabled state and can't be clicked or toggled. + + + + + If , the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked. + + + + + If , the button's state is pressed. Means the button is pressed down or toggled (if is active). Only works if is . + Note: Changing the value of will result in to be emitted. If you want to change the pressed state without emitting that signal, use . + + + + + Determines when the button is considered clicked, one of the constants. + + + + + Binary mask to choose which mouse buttons this button will respond to. + To allow both left-click and right-click, use MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT. + + + + + If , the button stays pressed when moving the cursor outside the button while pressing it. + Note: This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value. + + + + + The associated with the button. Not to be confused with node groups. + Note: The button will be configured as a radio button if a is assigned to it. + + + + + associated to the button. + + + + + If , the button will highlight for a short amount of time when its shortcut is activated. If and is , the shortcut will activate without any visual feedback. + + + + + If , the button will add information about its shortcut in the tooltip. + Note: This property does nothing when the tooltip control is customized using . + + + + + Called when the button is pressed. If you need to know the button's pressed state (and is active), use instead. + + + + + Called when the button is toggled (only if is active). + + + + + Changes the state of the button, without emitting . Use when you just want to change the state of the button without sending the pressed event (e.g. when initializing scene). Only works if is . + Note: This method doesn't unpress other buttons in . + + + + + Returns if the mouse has entered the button and has not left it yet. + + + + + Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the enum. + + + + + Emitted when the button is toggled or pressed. This is on if is and on otherwise. + If you need to know the button's pressed state (and is active), use instead. + + + + + Emitted when the button stops being held down. + + + + + Emitted when the button starts being held down. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the button was just toggled between pressed and normal states (only if is active). The new state is contained in the toggledOn argument. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'toggle_mode' property. + + + + + Cached name for the 'button_pressed' property. + + + + + Cached name for the 'action_mode' property. + + + + + Cached name for the 'button_mask' property. + + + + + Cached name for the 'keep_pressed_outside' property. + + + + + Cached name for the 'button_group' property. + + + + + Cached name for the 'shortcut' property. + + + + + Cached name for the 'shortcut_feedback' property. + + + + + Cached name for the 'shortcut_in_tooltip' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_pressed' method. + + + + + Cached name for the '_toggled' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'is_pressed' method. + + + + + Cached name for the 'set_pressed_no_signal' method. + + + + + Cached name for the 'is_hovered' method. + + + + + Cached name for the 'set_toggle_mode' method. + + + + + Cached name for the 'is_toggle_mode' method. + + + + + Cached name for the 'set_shortcut_in_tooltip' method. + + + + + Cached name for the 'is_shortcut_in_tooltip_enabled' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_action_mode' method. + + + + + Cached name for the 'get_action_mode' method. + + + + + Cached name for the 'set_button_mask' method. + + + + + Cached name for the 'get_button_mask' method. + + + + + Cached name for the 'get_draw_mode' method. + + + + + Cached name for the 'set_keep_pressed_outside' method. + + + + + Cached name for the 'is_keep_pressed_outside' method. + + + + + Cached name for the 'set_shortcut_feedback' method. + + + + + Cached name for the 'is_shortcut_feedback' method. + + + + + Cached name for the 'set_shortcut' method. + + + + + Cached name for the 'get_shortcut' method. + + + + + Cached name for the 'set_button_group' method. + + + + + Cached name for the 'get_button_group' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + Cached name for the 'button_up' signal. + + + + + Cached name for the 'button_down' signal. + + + + + Cached name for the 'toggled' signal. + + + + + 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. + + + + + Texture specifying per-pixel color. + + + + + Texture specifying per-pixel metallic value. + + + + + Texture specifying per-pixel roughness value. + + + + + Texture specifying per-pixel emission color. + + + + + Texture specifying per-pixel normal vector. + + + + + Texture specifying per-pixel rim value. + + + + + Texture specifying per-pixel clearcoat value. + + + + + Texture specifying per-pixel flowmap direction for use with . + + + + + Texture specifying per-pixel ambient occlusion value. + + + + + Texture specifying per-pixel height. + + + + + Texture specifying per-pixel subsurface scattering. + + + + + Texture specifying per-pixel transmittance for subsurface scattering. + + + + + Texture specifying per-pixel backlight color. + + + + + Texture specifying per-pixel refraction strength. + + + + + Texture specifying per-pixel detail mask blending value. + + + + + Texture specifying per-pixel detail color. + + + + + Texture specifying per-pixel detail normal. + + + + + Texture holding ambient occlusion, roughness, and metallic. + + + + + Represents the size of the enum. + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). This makes the texture look pixelated from up close, and smooth from a distance. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). This makes the texture look smooth from up close, and smooth from a distance. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + Represents the size of the enum. + + + + + Use UV with the detail texture. + + + + + Use UV2 with the detail texture. + + + + + The material will not use transparency. This is the fastest to render. + + + + + The material will use the texture's alpha values for transparency. This is the slowest to render, and disables shadow casting. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Represents the size of the enum. + + + + + The object will not receive shadows. This is the fastest to render, but it disables all interactions with lights. + + + + + The object will be shaded per pixel. Useful for realistic shading effects. + + + + + The object will be shaded per vertex. Useful when you want cheaper shaders and do not care about visual quality. + + + + + Represents the size of the enum. + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Represents the size of the enum. + + + + + Default blend mode. The color of the object is blended over the background based on the object's alpha value. + + + + + The color of the object is added to the background. + + + + + The color of the object is subtracted from the background. + + + + + The color of the object is multiplied by the background. + + + + + The color of the object is added to the background and the alpha channel is used to mask out the background. This is effectively a hybrid of the blend mix and add modes, useful for effects like fire where you want the flame to add but the smoke to mix. By default, this works with unshaded materials using premultiplied textures. For shaded materials, use the PREMUL_ALPHA_FACTOR built-in so that lighting can be modulated as well. + + + + + Disables Alpha AntiAliasing for the material. + + + + + Enables AlphaToCoverage. Alpha values in the material are passed to the AntiAliasing sample mask. + + + + + Enables AlphaToCoverage and forces all non-zero alpha values to 1. Alpha values in the material are passed to the AntiAliasing sample mask. + + + + + Default depth draw mode. Depth is drawn only for opaque objects during the opaque prepass (if any) and during the opaque pass. + + + + + 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. + Note: This does not influence whether transparent objects are included in the depth prepass or not. For that, see . + + + + + Objects will not write their depth to the depth buffer, even during the depth prepass (if enabled). + + + + + 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. + + + + + 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. + + + + + No face culling is performed; both the front face and back face will be visible. + + + + + 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. + + + + + Set ALBEDO to the per-vertex color specified in the mesh. + + + + + Vertex colors are considered to be stored in sRGB color space and are converted to linear color space during rendering. See also . + Note: Only effective when using the Forward+ and Mobile rendering methods. + + + + + Uses point size to alter the size of primitive points. Also changes the albedo texture lookup to use POINT_COORD instead of UV. + + + + + Object is scaled by depth so that it always appears the same size on screen. + + + + + Shader will keep the scale set for the mesh. Otherwise the scale is lost when billboarding. Only applies when is . + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV. + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV2. + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV. + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV2. + + + + + Use UV2 coordinates to look up from the . + + + + + Use UV2 coordinates to look up from the . + + + + + Forces the shader to convert albedo from sRGB space to linear space. See also . + + + + + Disables receiving shadows from other objects. + + + + + Disables receiving ambient light. + + + + + Enables the shadow to opacity feature. + + + + + 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. + + + + + Invert values read from a depth texture to convert them to height values (heightmap). + + + + + Enables the skin mode for subsurface scattering which is used to improve the look of subsurface scattering when used for human skin. + + + + + Enables parts of the shader required for trails to function. This also requires using a mesh with appropriate skinning, such as or . Enabling this feature outside of materials used in meshes will break material rendering. + + + + + Enables multichannel signed distance field rendering shader. + + + + + Disables receiving depth-based or volumetric fog. + + + + + Represents the size of the enum. + + + + + Default diffuse scattering algorithm. + + + + + Diffuse scattering ignores roughness. + + + + + Extends Lambert to cover more than 90 degrees when roughness increases. + + + + + Uses a hard cut for lighting, with smoothing affected by roughness. + + + + + Default specular blob. + + + + + Toon blob which changes size based on roughness. + + + + + No specular blob. This is slightly faster to render than other specular modes. + + + + + Billboard mode is disabled. + + + + + The object's Z axis will always face the camera. + + + + + The object's X axis will always face the camera. + + + + + Used for particle systems when assigned to and nodes (flipbook animation). Enables particles_anim_* properties. + The or should also be set to a value bigger than zero for the animation to play. + + + + + Used to read from the red channel of a texture. + + + + + Used to read from the green channel of a texture. + + + + + Used to read from the blue channel of a texture. + + + + + Used to read from the alpha channel of a texture. + + + + + Used to read from the linear (non-perceptual) average of the red, green and blue channels of a texture. + + + + + Adds the emission color to the color from the emission texture. + + + + + Multiplies the emission color by the color from the emission texture. + + + + + Do not use distance fade. + + + + + Smoothly fades the object out based on each pixel's distance from the camera using the alpha channel. + + + + + 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 . + + + + + 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 and . + + + + + The material's transparency mode. Some transparency modes will disable shadow casting. Any transparency mode other than has a greater performance impact compared to opaque rendering. See also . + + + + + Threshold at which the alpha scissor will discard values. Higher values will result in more pixels being discarded. If the material becomes too opaque at a distance, try increasing . If the material disappears at a distance, try decreasing . + + + + + The hashing scale for Alpha Hash. Recommended values between 0 and 2. + + + + + The type of alpha antialiasing to apply. See . + + + + + Threshold at which antialiasing will be applied on the alpha channel. + + + + + The material's blend mode. + Note: Values other than Mix force the object into the transparent pipeline. See . + + + + + Determines which side of the triangle to cull depending on whether the triangle faces towards or away from the camera. See . + + + + + Determines when depth rendering takes place. See . See also . + + + + + If , depth testing is disabled and the object will be drawn in render order. + + + + + Sets whether the shading takes place, per-pixel, per-vertex or unshaded. Per-vertex lighting is faster, making it the best choice for mobile applications, however it looks considerably worse than per-pixel. Unshaded rendering is the fastest, but disables all interactions with lights. + + + + + The algorithm used for diffuse light scattering. See . + + + + + The method for rendering the specular blob. See . + Note: only applies to the specular blob. It does not affect specular reflections from the sky, screen-space reflections, , SDFGI or s. To disable reflections from these sources as well, set to 0.0 instead. + + + + + If , the object receives no ambient light. + + + + + If , the object will not be affected by fog (neither volumetric nor depth fog). This is useful for unshaded or transparent materials (e.g. particles), which without this setting will be affected even if fully transparent. + + + + + If , the vertex color is used as albedo color. + + + + + If , vertex colors are considered to be stored in sRGB color space and are converted to linear color space during rendering. If , vertex colors are considered to be stored in linear color space and are rendered as-is. See also . + Note: Only effective when using the Forward+ and Mobile rendering methods, not Compatibility. + + + + + The material's base color. + Note: If is and a texture is specified, will not modulate the detail texture. This can be used to color partial areas of a material by not specifying an albedo texture and using a transparent texture instead. + + + + + Texture to multiply by . Used for basic texturing of objects. + If the texture appears unexpectedly too dark or too bright, check . + + + + + If , forces a conversion of the from sRGB color space to linear color space. See also . + This should only be enabled when needed (typically when using a as ). If is when it shouldn't be, the texture will appear to be too dark. If is when it shouldn't be, the texture will appear to be too bright. + + + + + Enables multichannel signed distance field rendering shader. Use and to configure MSDF parameters. + + + + + The Occlusion/Roughness/Metallic texture to use. This is a more efficient replacement of , and in . Ambient occlusion is stored in the red channel. Roughness map is stored in the green channel. Metallic map is stored in the blue channel. The alpha channel is ignored. + + + + + A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between 0 and 1 should only be used for blending between metal and non-metal sections. To alter the amount of reflection use . + + + + + Adjusts the strength of specular reflections. Specular reflections are composed of scene reflections and the specular lobe which is the bright spot that is reflected from light sources. When set to 0.0, no specular reflections will be visible. This differs from the as only applies to the specular lobe from the light source. + Note: Unlike , this is not energy-conserving, so it should be left at 0.5 in most cases. See also . + + + + + Texture used to specify metallic for an object. This is multiplied by . + + + + + Specifies the channel of the in which the metallic information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + Surface reflection. A value of 0 represents a perfect mirror while a value of 1 completely blurs the reflection. See also . + + + + + Texture used to control the roughness per-pixel. Multiplied by . + + + + + Specifies the channel of the in which the roughness information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + If , the body emits light. Emitting light makes the object appear brighter. The object can also cast light on other objects if a , SDFGI, or is used and this object is used in baked lighting. + + + + + The emitted light's color. See . + + + + + Multiplier for emitted light. See . + + + + + Luminance of emitted light, measured in nits (candela per square meter). Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. The default is roughly equivalent to an indoor lightbulb. + + + + + Sets how interacts with . Can either add or multiply. See for options. + + + + + Use UV2 to read from the . + + + + + Texture that specifies how much surface emits light at a given point. + + + + + If , normal mapping is enabled. This has a slight performance cost, especially on mobile GPUs. + + + + + The strength of the normal map's effect. + + + + + Texture used to specify the normal at a given pixel. The only uses the red and green channels; the blue and alpha channels are ignored. The normal read from is oriented around the surface normal provided by the . + Note: The mesh must have both normals and tangents defined in its vertex data. Otherwise, the normal map won't render correctly and will only appear to darken the whole surface. If creating geometry with , you can use and to automatically generate normals and tangents respectively. + Note: Godot expects the normal map to use X+, Y+, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines. + Note: If is , the texture is drawn below the . To display a normal map above the texture, use instead. + + + + + If , rim effect is enabled. Rim lighting increases the brightness at glancing angles on an object. + Note: Rim lighting is not visible if the material's is . + + + + + Sets the strength of the rim lighting effect. + + + + + The amount of to blend light and albedo color when rendering rim effect. If 0 the light color is used, while 1 means albedo color is used. An intermediate value generally works best. + + + + + Texture used to set the strength of the rim lighting effect per-pixel. Multiplied by . + + + + + If , clearcoat rendering is enabled. Adds a secondary transparent pass to the lighting calculation resulting in an added specular blob. This makes materials appear as if they have a clear layer on them that can be either glossy or rough. + Note: Clearcoat rendering is not visible if the material's is . + + + + + Sets the strength of the clearcoat effect. Setting to 0 looks the same as disabling the clearcoat effect. + + + + + Sets the roughness of the clearcoat pass. A higher value results in a rougher clearcoat while a lower value results in a smoother clearcoat. + + + + + Texture that defines the strength of the clearcoat effect and the glossiness of the clearcoat. Strength is specified in the red channel while glossiness is specified in the green channel. + + + + + If , anisotropy is enabled. Anisotropy changes the shape of the specular blob and aligns it to tangent space. This is useful for brushed aluminum and hair reflections. + Note: Mesh tangents are needed for anisotropy to work. If the mesh does not contain tangents, the anisotropy effect will appear broken. + Note: Material anisotropy should not to be confused with anisotropic texture filtering, which can be enabled by setting to . + + + + + The strength of the anisotropy effect. This is multiplied by 's alpha channel if a texture is defined there and the texture contains an alpha channel. + + + + + Texture that offsets the tangent map for anisotropy calculations and optionally controls the anisotropy effect (if an alpha channel is present). The flowmap texture is expected to be a derivative map, with the red channel representing distortion on the X axis and green channel representing distortion on the Y axis. Values below 0.5 will result in negative distortion, whereas values above 0.5 will result in positive distortion. + If present, the texture's alpha channel will be used to multiply the strength of the effect. Fully opaque pixels will keep the anisotropy effect's original strength while fully transparent pixels will disable the anisotropy effect entirely. The flowmap texture's blue channel is ignored. + + + + + If , ambient occlusion is enabled. Ambient occlusion darkens areas based on the . + + + + + Amount that ambient occlusion affects lighting from lights. If 0, ambient occlusion only affects ambient light. If 1, ambient occlusion affects lights just as much as it affects ambient light. This can be used to impact the strength of the ambient occlusion effect, but typically looks unrealistic. + + + + + Texture that defines the amount of ambient occlusion for a given point on the object. + + + + + If , use UV2 coordinates to look up from the . + + + + + Specifies the channel of the in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + If , height mapping is enabled (also called "parallax mapping" or "depth mapping"). See also . Height mapping is a demanding feature on the GPU, so it should only be used on materials where it makes a significant visual difference. + Note: Height mapping is not supported if triplanar mapping is used on the same material. The value of will be ignored if is enabled. + + + + + The heightmap scale to use for the parallax effect (see ). The default value is tuned so that the highest point (value = 255) appears to be 5 cm higher than the lowest point (value = 0). Higher values result in a deeper appearance, but may result in artifacts appearing when looking at the material from oblique angles, especially when the camera moves. Negative values can be used to invert the parallax effect, but this is different from inverting the texture using as the material will also appear to be "closer" to the camera. In most cases, should be kept to a positive value. + Note: If the height map effect looks strange regardless of this value, try adjusting and . See also for recommendations on authoring heightmap textures, as the way the heightmap texture is authored affects how behaves. + + + + + If , uses parallax occlusion mapping to represent depth in the material instead of simple offset mapping (see ). This results in a more convincing depth effect, but is much more expensive on the GPU. Only enable this on materials where it makes a significant visual difference. + + + + + The number of layers to use for parallax occlusion mapping when the camera is far away from the material. Higher values result in a more convincing depth effect, especially in materials that have steep height changes. Higher values have a significant cost on the GPU, so it should only be increased on materials where it makes a significant visual difference. + Note: Only effective if is . + + + + + The number of layers to use for parallax occlusion mapping when the camera is up close to the material. Higher values result in a more convincing depth effect, especially in materials that have steep height changes. Higher values have a significant cost on the GPU, so it should only be increased on materials where it makes a significant visual difference. + Note: Only effective if is . + + + + + If , flips the mesh's tangent vectors when interpreting the height map. If the heightmap effect looks strange when the camera moves (even with a reasonable ), try setting this to . + + + + + If , flips the mesh's binormal vectors when interpreting the height map. If the heightmap effect looks strange when the camera moves (even with a reasonable ), try setting this to . + + + + + The texture to use as a height map. See also . + For best results, the texture should be normalized (with reduced to compensate). In GIMP, this can be done using Colors > Auto > Equalize. If the texture only uses a small part of its available range, the parallax effect may look strange, especially when the camera moves. + Note: To reduce memory usage and improve loading times, you may be able to use a lower-resolution heightmap texture as most heightmaps are only comprised of low-frequency data. + + + + + If , interprets the height map texture as a depth map, with brighter values appearing to be "lower" in altitude compared to darker values. + This can be enabled for compatibility with some materials authored for Godot 3.x. This is not necessary if the Invert import option was used to invert the depth map in Godot 3.x, in which case should remain . + + + + + If , subsurface scattering is enabled. Emulates light that penetrates an object's surface, is scattered, and then emerges. Subsurface scattering quality is controlled by ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality. + + + + + The strength of the subsurface scattering effect. The depth of the effect is also controlled by ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale, which is set globally. + + + + + If , subsurface scattering will use a special mode optimized for the color and density of human skin, such as boosting the intensity of the red channel in subsurface scattering. + + + + + Texture used to control the subsurface scattering strength. Stored in the red texture channel. Multiplied by . + + + + + If , enables subsurface scattering transmittance. Only effective if is . See also . + + + + + The color to multiply the subsurface scattering transmittance effect with. Ignored if is . + + + + + The texture to use for multiplying the intensity of the subsurface scattering transmittance intensity. See also . Ignored if is . + + + + + The depth of the subsurface scattering transmittance effect. + + + + + The intensity of the subsurface scattering transmittance effect. + + + + + If , the backlight effect is enabled. See also . + + + + + The color used by the backlight effect. Represents the light passing through an object. + + + + + Texture used to control the backlight effect per-pixel. Added to . + + + + + If , the refraction effect is enabled. Distorts transparency based on light from behind the object. + + + + + The strength of the refraction effect. + + + + + Texture that controls the strength of the refraction per-pixel. Multiplied by . + + + + + Specifies the channel of the in which the refraction information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored refraction in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + If , enables the detail overlay. Detail is a second texture that gets mixed over the surface of the object based on and 's alpha channel. This can be used to add variation to objects, or to blend between two different albedo/normal textures. + + + + + Texture used to specify how the detail textures get blended with the base textures. can be used together with 's alpha channel (if any). + + + + + Specifies how the should blend with the current ALBEDO. See for options. + + + + + Specifies whether to use UV or UV2 for the detail layer. See for options. + + + + + Texture that specifies the color of the detail overlay. 's alpha channel is used as a mask, even when the material is opaque. To use a dedicated texture as a mask, see . + Note: is not modulated by . + + + + + Texture that specifies the per-pixel normal of the detail overlay. The texture only uses the red and green channels; the blue and alpha channels are ignored. The normal read from is oriented around the surface normal provided by the . + Note: Godot expects the normal map to use X+, Y+, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines. + + + + + How much to scale the UV coordinates. This is multiplied by UV in the vertex function. The Z component is used when is enabled, but it is not used anywhere else. + + + + + How much to offset the UV coordinates. This amount will be added to UV in the vertex function. This can be used to offset a texture. The Z component is used when is enabled, but it is not used anywhere else. + + + + + If , instead of using UV textures will use a triplanar texture lookup to determine how to apply textures. Triplanar uses the orientation of the object's surface to blend between texture coordinates. It reads from the source texture 3 times, once for each axis and then blends between the results based on how closely the pixel aligns with each axis. This is often used for natural features to get a realistic blend of materials. Because triplanar texturing requires many more texture reads per-pixel it is much slower than normal UV texturing. Additionally, because it is blending the texture between the three axes, it is unsuitable when you are trying to achieve crisp texturing. + + + + + A lower number blends the texture more softly while a higher number blends the texture more sharply. + Note: is clamped between 0.0 and 150.0 (inclusive) as values outside that range can look broken depending on the mesh. + + + + + If , triplanar mapping for UV is calculated in world space rather than object local space. See also . + + + + + How much to scale the UV2 coordinates. This is multiplied by UV2 in the vertex function. The Z component is used when is enabled, but it is not used anywhere else. + + + + + How much to offset the UV2 coordinates. This amount will be added to UV2 in the vertex function. This can be used to offset a texture. The Z component is used when is enabled, but it is not used anywhere else. + + + + + If , instead of using UV2 textures will use a triplanar texture lookup to determine how to apply textures. Triplanar uses the orientation of the object's surface to blend between texture coordinates. It reads from the source texture 3 times, once for each axis and then blends between the results based on how closely the pixel aligns with each axis. This is often used for natural features to get a realistic blend of materials. Because triplanar texturing requires many more texture reads per-pixel it is much slower than normal UV texturing. Additionally, because it is blending the texture between the three axes, it is unsuitable when you are trying to achieve crisp texturing. + + + + + A lower number blends the texture more softly while a higher number blends the texture more sharply. + Note: is clamped between 0.0 and 150.0 (inclusive) as values outside that range can look broken depending on the mesh. + + + + + If , triplanar mapping for UV2 is calculated in world space rather than object local space. See also . + + + + + Filter flags for the texture. See for options. + Note: is always sampled with linear filtering, even if nearest-neighbor filtering is selected here. This is to ensure the heightmap effect looks as intended. If you need sharper height transitions between pixels, resize the heightmap texture in an image editor with nearest-neighbor filtering. + + + + + Repeat flags for the texture. See for options. + + + + + If , the object receives no shadow that would otherwise be cast onto it. + + + + + If , enables the "shadow to opacity" render mode where lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR. + + + + + Controls how the object faces the camera. See . + Note: Billboard mode is not suitable for VR because the left-right vector of the camera is not horizontal when the screen is attached to your head instead of on the table. See GitHub issue #41567 for details. + + + + + If , the shader will keep the scale set for the mesh. Otherwise, the scale is lost when billboarding. Only applies when is not . + + + + + The number of horizontal frames in the particle sprite sheet. Only enabled when using . See . + + + + + The number of vertical frames in the particle sprite sheet. Only enabled when using . See . + + + + + If , particle animations are looped. Only enabled when using . See . + + + + + If , enables the vertex grow setting. This can be used to create mesh-based outlines using a second material pass and its set to . See also . + Note: Vertex growth cannot create new vertices, which means that visible gaps may occur in sharp corners. This can be alleviated by designing the mesh to use smooth normals exclusively using face weighted normals in the 3D authoring software. In this case, grow will be able to join every outline together, just like in the original mesh. + + + + + Grows object vertices in the direction of their normals. Only effective if is . + + + + + If , the object is rendered at the same size regardless of distance. + + + + + If , render point size can be changed. + Note: This is only effective for objects whose geometry is point-based rather than triangle-based. See also . + + + + + The point size in pixels. See . + + + + + If , enables parts of the shader required for trails to function. This also requires using a mesh with appropriate skinning, such as or . Enabling this feature outside of materials used in meshes will break material rendering. + + + + + If , the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object. + + + + + Distance over which the fade effect takes place. The larger the distance the longer it takes for an object to fade. + + + + + The width of the range around the shape between the minimum and maximum representable signed distance. + + + + + The width of the shape outline. + + + + + Specifies which type of fade to use. Can be any of the s. + + + + + Distance at which the object starts to become visible. If the object is less than this distance away, it will be invisible. + Note: If is greater than , the behavior will be reversed. The object will start to fade away at and will fully disappear once it reaches . + + + + + Distance at which the object appears fully opaque. + Note: If is less than , the behavior will be reversed. The object will start to fade away at and will fully disappear once it reaches . + + + + + If , enables the specified flag. Flags are optional behavior that can be turned on and off. Only one flag can be enabled at a time with this function, the flag enumerators cannot be bit-masked together to enable or disable multiple flags at once. Flags can also be enabled by setting the corresponding member to . See enumerator for options. + + + + + Returns , if the specified flag is enabled. See enumerator for options. + + + + + If , enables the specified . Many features that are available in s need to be enabled before use. This way the cost for using the feature is only incurred when specified. Features can also be enabled by setting the corresponding member to . + + + + + Returns , if the specified is enabled. + + + + + Sets the texture for the slot specified by . See for available slots. + + + + + Returns the associated with the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transparency' property. + + + + + Cached name for the 'alpha_scissor_threshold' property. + + + + + Cached name for the 'alpha_hash_scale' property. + + + + + Cached name for the 'alpha_antialiasing_mode' property. + + + + + Cached name for the 'alpha_antialiasing_edge' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'cull_mode' property. + + + + + Cached name for the 'depth_draw_mode' property. + + + + + Cached name for the 'no_depth_test' property. + + + + + Cached name for the 'shading_mode' property. + + + + + Cached name for the 'diffuse_mode' property. + + + + + Cached name for the 'specular_mode' property. + + + + + Cached name for the 'disable_ambient_light' property. + + + + + Cached name for the 'disable_fog' property. + + + + + Cached name for the 'vertex_color_use_as_albedo' property. + + + + + Cached name for the 'vertex_color_is_srgb' property. + + + + + Cached name for the 'albedo_color' property. + + + + + Cached name for the 'albedo_texture' property. + + + + + Cached name for the 'albedo_texture_force_srgb' property. + + + + + Cached name for the 'albedo_texture_msdf' property. + + + + + Cached name for the 'orm_texture' property. + + + + + Cached name for the 'metallic' property. + + + + + Cached name for the 'metallic_specular' property. + + + + + Cached name for the 'metallic_texture' property. + + + + + Cached name for the 'metallic_texture_channel' property. + + + + + Cached name for the 'roughness' property. + + + + + Cached name for the 'roughness_texture' property. + + + + + Cached name for the 'roughness_texture_channel' property. + + + + + Cached name for the 'emission_enabled' property. + + + + + Cached name for the 'emission' property. + + + + + Cached name for the 'emission_energy_multiplier' property. + + + + + Cached name for the 'emission_intensity' property. + + + + + Cached name for the 'emission_operator' property. + + + + + Cached name for the 'emission_on_uv2' property. + + + + + Cached name for the 'emission_texture' property. + + + + + Cached name for the 'normal_enabled' property. + + + + + Cached name for the 'normal_scale' property. + + + + + Cached name for the 'normal_texture' property. + + + + + Cached name for the 'rim_enabled' property. + + + + + Cached name for the 'rim' property. + + + + + Cached name for the 'rim_tint' property. + + + + + Cached name for the 'rim_texture' property. + + + + + Cached name for the 'clearcoat_enabled' property. + + + + + Cached name for the 'clearcoat' property. + + + + + Cached name for the 'clearcoat_roughness' property. + + + + + Cached name for the 'clearcoat_texture' property. + + + + + Cached name for the 'anisotropy_enabled' property. + + + + + Cached name for the 'anisotropy' property. + + + + + Cached name for the 'anisotropy_flowmap' property. + + + + + Cached name for the 'ao_enabled' property. + + + + + Cached name for the 'ao_light_affect' property. + + + + + Cached name for the 'ao_texture' property. + + + + + Cached name for the 'ao_on_uv2' property. + + + + + Cached name for the 'ao_texture_channel' property. + + + + + Cached name for the 'heightmap_enabled' property. + + + + + Cached name for the 'heightmap_scale' property. + + + + + Cached name for the 'heightmap_deep_parallax' property. + + + + + Cached name for the 'heightmap_min_layers' property. + + + + + Cached name for the 'heightmap_max_layers' property. + + + + + Cached name for the 'heightmap_flip_tangent' property. + + + + + Cached name for the 'heightmap_flip_binormal' property. + + + + + Cached name for the 'heightmap_texture' property. + + + + + Cached name for the 'heightmap_flip_texture' property. + + + + + Cached name for the 'subsurf_scatter_enabled' property. + + + + + Cached name for the 'subsurf_scatter_strength' property. + + + + + Cached name for the 'subsurf_scatter_skin_mode' property. + + + + + Cached name for the 'subsurf_scatter_texture' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_enabled' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_color' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_texture' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_depth' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_boost' property. + + + + + Cached name for the 'backlight_enabled' property. + + + + + Cached name for the 'backlight' property. + + + + + Cached name for the 'backlight_texture' property. + + + + + Cached name for the 'refraction_enabled' property. + + + + + Cached name for the 'refraction_scale' property. + + + + + Cached name for the 'refraction_texture' property. + + + + + Cached name for the 'refraction_texture_channel' property. + + + + + Cached name for the 'detail_enabled' property. + + + + + Cached name for the 'detail_mask' property. + + + + + Cached name for the 'detail_blend_mode' property. + + + + + Cached name for the 'detail_uv_layer' property. + + + + + Cached name for the 'detail_albedo' property. + + + + + Cached name for the 'detail_normal' property. + + + + + Cached name for the 'uv1_scale' property. + + + + + Cached name for the 'uv1_offset' property. + + + + + Cached name for the 'uv1_triplanar' property. + + + + + Cached name for the 'uv1_triplanar_sharpness' property. + + + + + Cached name for the 'uv1_world_triplanar' property. + + + + + Cached name for the 'uv2_scale' property. + + + + + Cached name for the 'uv2_offset' property. + + + + + Cached name for the 'uv2_triplanar' property. + + + + + Cached name for the 'uv2_triplanar_sharpness' property. + + + + + Cached name for the 'uv2_world_triplanar' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached name for the 'disable_receive_shadows' property. + + + + + Cached name for the 'shadow_to_opacity' property. + + + + + Cached name for the 'billboard_mode' property. + + + + + Cached name for the 'billboard_keep_scale' property. + + + + + Cached name for the 'particles_anim_h_frames' property. + + + + + Cached name for the 'particles_anim_v_frames' property. + + + + + Cached name for the 'particles_anim_loop' property. + + + + + Cached name for the 'grow' property. + + + + + Cached name for the 'grow_amount' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'use_point_size' property. + + + + + Cached name for the 'point_size' property. + + + + + Cached name for the 'use_particle_trails' property. + + + + + Cached name for the 'proximity_fade_enabled' property. + + + + + Cached name for the 'proximity_fade_distance' property. + + + + + Cached name for the 'msdf_pixel_range' property. + + + + + Cached name for the 'msdf_outline_size' property. + + + + + Cached name for the 'distance_fade_mode' property. + + + + + Cached name for the 'distance_fade_min_distance' property. + + + + + Cached name for the 'distance_fade_max_distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_albedo' method. + + + + + Cached name for the 'get_albedo' method. + + + + + Cached name for the 'set_transparency' method. + + + + + Cached name for the 'get_transparency' method. + + + + + Cached name for the 'set_alpha_antialiasing' method. + + + + + Cached name for the 'get_alpha_antialiasing' method. + + + + + Cached name for the 'set_alpha_antialiasing_edge' method. + + + + + Cached name for the 'get_alpha_antialiasing_edge' method. + + + + + Cached name for the 'set_shading_mode' method. + + + + + Cached name for the 'get_shading_mode' method. + + + + + Cached name for the 'set_specular' method. + + + + + Cached name for the 'get_specular' method. + + + + + Cached name for the 'set_metallic' method. + + + + + Cached name for the 'get_metallic' method. + + + + + Cached name for the 'set_roughness' method. + + + + + Cached name for the 'get_roughness' method. + + + + + Cached name for the 'set_emission' method. + + + + + Cached name for the 'get_emission' method. + + + + + Cached name for the 'set_emission_energy_multiplier' method. + + + + + Cached name for the 'get_emission_energy_multiplier' method. + + + + + Cached name for the 'set_emission_intensity' method. + + + + + Cached name for the 'get_emission_intensity' method. + + + + + Cached name for the 'set_normal_scale' method. + + + + + Cached name for the 'get_normal_scale' method. + + + + + Cached name for the 'set_rim' method. + + + + + Cached name for the 'get_rim' method. + + + + + Cached name for the 'set_rim_tint' method. + + + + + Cached name for the 'get_rim_tint' method. + + + + + Cached name for the 'set_clearcoat' method. + + + + + Cached name for the 'get_clearcoat' method. + + + + + Cached name for the 'set_clearcoat_roughness' method. + + + + + Cached name for the 'get_clearcoat_roughness' method. + + + + + Cached name for the 'set_anisotropy' method. + + + + + Cached name for the 'get_anisotropy' method. + + + + + Cached name for the 'set_heightmap_scale' method. + + + + + Cached name for the 'get_heightmap_scale' method. + + + + + Cached name for the 'set_subsurface_scattering_strength' method. + + + + + Cached name for the 'get_subsurface_scattering_strength' method. + + + + + Cached name for the 'set_transmittance_color' method. + + + + + Cached name for the 'get_transmittance_color' method. + + + + + Cached name for the 'set_transmittance_depth' method. + + + + + Cached name for the 'get_transmittance_depth' method. + + + + + Cached name for the 'set_transmittance_boost' method. + + + + + Cached name for the 'get_transmittance_boost' method. + + + + + Cached name for the 'set_backlight' method. + + + + + Cached name for the 'get_backlight' method. + + + + + Cached name for the 'set_refraction' method. + + + + + Cached name for the 'get_refraction' method. + + + + + Cached name for the 'set_point_size' method. + + + + + Cached name for the 'get_point_size' method. + + + + + Cached name for the 'set_detail_uv' method. + + + + + Cached name for the 'get_detail_uv' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_depth_draw_mode' method. + + + + + Cached name for the 'get_depth_draw_mode' method. + + + + + Cached name for the 'set_cull_mode' method. + + + + + Cached name for the 'get_cull_mode' method. + + + + + Cached name for the 'set_diffuse_mode' method. + + + + + Cached name for the 'get_diffuse_mode' method. + + + + + Cached name for the 'set_specular_mode' method. + + + + + Cached name for the 'get_specular_mode' method. + + + + + Cached name for the 'set_flag' method. + + + + + Cached name for the 'get_flag' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_feature' method. + + + + + Cached name for the 'get_feature' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_detail_blend_mode' method. + + + + + Cached name for the 'get_detail_blend_mode' method. + + + + + Cached name for the 'set_uv1_scale' method. + + + + + Cached name for the 'get_uv1_scale' method. + + + + + Cached name for the 'set_uv1_offset' method. + + + + + Cached name for the 'get_uv1_offset' method. + + + + + Cached name for the 'set_uv1_triplanar_blend_sharpness' method. + + + + + Cached name for the 'get_uv1_triplanar_blend_sharpness' method. + + + + + Cached name for the 'set_uv2_scale' method. + + + + + Cached name for the 'get_uv2_scale' method. + + + + + Cached name for the 'set_uv2_offset' method. + + + + + Cached name for the 'get_uv2_offset' method. + + + + + Cached name for the 'set_uv2_triplanar_blend_sharpness' method. + + + + + Cached name for the 'get_uv2_triplanar_blend_sharpness' method. + + + + + Cached name for the 'set_billboard_mode' method. + + + + + Cached name for the 'get_billboard_mode' method. + + + + + Cached name for the 'set_particles_anim_h_frames' method. + + + + + Cached name for the 'get_particles_anim_h_frames' method. + + + + + Cached name for the 'set_particles_anim_v_frames' method. + + + + + Cached name for the 'get_particles_anim_v_frames' method. + + + + + Cached name for the 'set_particles_anim_loop' method. + + + + + Cached name for the 'get_particles_anim_loop' method. + + + + + Cached name for the 'set_heightmap_deep_parallax' method. + + + + + Cached name for the 'is_heightmap_deep_parallax_enabled' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_min_layers' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_min_layers' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_max_layers' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_max_layers' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_flip_tangent' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_flip_tangent' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_flip_binormal' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_flip_binormal' method. + + + + + Cached name for the 'set_grow' method. + + + + + Cached name for the 'get_grow' method. + + + + + Cached name for the 'set_emission_operator' method. + + + + + Cached name for the 'get_emission_operator' method. + + + + + Cached name for the 'set_ao_light_affect' method. + + + + + Cached name for the 'get_ao_light_affect' method. + + + + + Cached name for the 'set_alpha_scissor_threshold' method. + + + + + Cached name for the 'get_alpha_scissor_threshold' method. + + + + + Cached name for the 'set_alpha_hash_scale' method. + + + + + Cached name for the 'get_alpha_hash_scale' method. + + + + + Cached name for the 'set_grow_enabled' method. + + + + + Cached name for the 'is_grow_enabled' method. + + + + + Cached name for the 'set_metallic_texture_channel' method. + + + + + Cached name for the 'get_metallic_texture_channel' method. + + + + + Cached name for the 'set_roughness_texture_channel' method. + + + + + Cached name for the 'get_roughness_texture_channel' method. + + + + + Cached name for the 'set_ao_texture_channel' method. + + + + + Cached name for the 'get_ao_texture_channel' method. + + + + + Cached name for the 'set_refraction_texture_channel' method. + + + + + Cached name for the 'get_refraction_texture_channel' method. + + + + + Cached name for the 'set_proximity_fade_enabled' method. + + + + + Cached name for the 'is_proximity_fade_enabled' method. + + + + + Cached name for the 'set_proximity_fade_distance' method. + + + + + Cached name for the 'get_proximity_fade_distance' method. + + + + + Cached name for the 'set_msdf_pixel_range' method. + + + + + Cached name for the 'get_msdf_pixel_range' method. + + + + + Cached name for the 'set_msdf_outline_size' method. + + + + + Cached name for the 'get_msdf_outline_size' method. + + + + + Cached name for the 'set_distance_fade' method. + + + + + Cached name for the 'get_distance_fade' method. + + + + + Cached name for the 'set_distance_fade_max_distance' method. + + + + + Cached name for the 'get_distance_fade_max_distance' method. + + + + + Cached name for the 'set_distance_fade_min_distance' method. + + + + + Cached name for the 'get_distance_fade_min_distance' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Creates a bitmap with the specified size, filled with . + + + + + Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to if the alpha value of the image at that position is equal to or less, and in other case. + + + + + Sets the bitmap's element at the specified position, to the specified value. + + + + + Sets the bitmap's element at the specified position, to the specified value. + + + + + Returns bitmap's value at the specified position. + + + + + Returns bitmap's value at the specified position. + + + + + Sets a rectangular portion of the bitmap to the specified value. + + + + + Returns the number of bitmap elements that are set to . + + + + + Returns bitmap's dimensions. + + + + + Resizes the image to . + + + + + Applies morphological dilation or erosion to the bitmap. If is positive, dilation is applied to the bitmap. If is negative, erosion is applied to the bitmap. defines the area where the morphological operation is applied. Pixels located outside the are unaffected by . + + + + + Returns an image of the same size as the bitmap and with a of type . bits of the bitmap are being converted into white pixels, and bits into black. + + + + + Creates an of polygons covering a rectangular portion of the bitmap. It uses a marching squares algorithm, followed by Ramer-Douglas-Peucker (RDP) reduction of the number of vertices. Each polygon is described as a [] of its vertices. + To get polygons covering the whole bitmap, pass: + + Rect2(Vector2(), get_size()) + + is passed to RDP to control how accurately the polygons cover the bitmap: a lower corresponds to more points in the polygons. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'create_from_image_alpha' method. + + + + + Cached name for the 'set_bitv' method. + + + + + Cached name for the 'set_bit' method. + + + + + Cached name for the 'get_bitv' method. + + + + + Cached name for the 'get_bit' method. + + + + + Cached name for the 'set_bit_rect' method. + + + + + Cached name for the 'get_true_bit_count' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'grow_mask' method. + + + + + Cached name for the 'convert_to_image' method. + + + + + Cached name for the 'opaque_to_polygons' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A hierarchy of s can be bound to a to control and animate other nodes. + You can use and nodes to animate 2D meshes created with the UV editor. + Each bone has a transform that you can reset to with . 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. + + + + + Rest transform of the bone. You can reset the node's transforms to this value using . + + + + + Resets the bone to the rest pose. This is equivalent to setting to . + + + + + Returns the node's if it doesn't have a parent, or its rest pose relative to its parent. + + + + + Returns the node's index as part of the entire skeleton. See . + + + + + When set to , the node will attempt to automatically calculate the bone angle and length using the first child node, if one exists. If none exist, the cannot automatically calculate these values and will print a warning. + + + + + Returns whether this is going to autocalculate its length and bone angle using its first child node, if one exists. If there are no children, then it cannot autocalculate these values and will print a warning. + + + + + Sets the length of the bone in the . + + + + + Returns the length of the bone in the node. + + + + + Sets the bone angle for the . This is typically set to the rotation from the to a child node. + Note: This is different from the 's rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the 's . + + + + + Returns the angle of the bone in the . + Note: This is different from the 's rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the 's . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'rest' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rest' method. + + + + + Cached name for the 'get_rest' method. + + + + + Cached name for the 'apply_rest' method. + + + + + Cached name for the 'get_skeleton_rest' method. + + + + + Cached name for the 'get_index_in_skeleton' method. + + + + + Cached name for the 'set_autocalculate_length_and_angle' method. + + + + + Cached name for the 'get_autocalculate_length_and_angle' method. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_bone_angle' method. + + + + + Cached name for the 'get_bone_angle' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node selects a bone in a and attaches to it. This means that the node will either dynamically copy or override the 3D transform of the selected bone. + + + + + The name of the attached bone. + + + + + The index of the attached bone. + + + + + Whether the BoneAttachment3D node will override the bone pose of the bone it is attached to. When set to , the BoneAttachment3D node can change the pose of the bone. When set to , the BoneAttachment3D will always be set to the bone's transform. + Note: This override performs interruptively in the skeleton update process using signals due to the old design. It may cause unintended behavior when used at the same time with . + + + + + Get parent or external node if found. + + + + + A function that is called automatically when the is updated. This function is where the node updates its position so it is correctly bound when it is not set to override the bone pose. + + + + + Sets whether the BoneAttachment3D node will use an external node rather than attempting to use its parent node as the . When set to , the BoneAttachment3D node will use the external node set in . + + + + + Returns whether the BoneAttachment3D node is using an external rather than attempting to use its parent node as the . + + + + + Sets the to the external skeleton that the BoneAttachment3D node should use. See to enable the external node. + + + + + Returns the to the external node, if one has been set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bone_name' property. + + + + + Cached name for the 'bone_idx' property. + + + + + Cached name for the 'override_pose' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone_idx' method. + + + + + Cached name for the 'get_bone_idx' method. + + + + + Cached name for the 'on_skeleton_update' method. + + + + + Cached name for the 'set_override_pose' method. + + + + + Cached name for the 'get_override_pose' method. + + + + + Cached name for the 'set_use_external_skeleton' method. + + + + + Cached name for the 'get_use_external_skeleton' method. + + + + + Cached name for the 'set_external_skeleton' method. + + + + + Cached name for the 'get_external_skeleton' method. + + + + + Cached name for the 'on_bone_pose_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class contains a dictionary that uses a list of bone names in as key names. + By assigning the actual bone name as the key value, it maps the to the . + + + + + A of the mapping target. Key names in the are synchronized with it. + + + + + Returns a skeleton bone name is mapped to . + In the retargeting process, the returned bone name is the bone name of the source skeleton. + + + + + Maps a skeleton bone name to . + In the retargeting process, the setting bone name is the bone name of the source skeleton. + + + + + Returns a profile bone name having . If not found, an empty will be returned. + In the retargeting process, the returned bone name is the bone name of the target skeleton. + + + + + This signal is emitted when change the key value in the . This is used to validate mapping and to update editor. + + + + + This signal is emitted when change the value in profile or change the reference of profile. This is used to update key names in the and to redraw the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'profile' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_profile' method. + + + + + Cached name for the 'set_profile' method. + + + + + Cached name for the 'get_skeleton_bone_name' method. + + + + + Cached name for the 'set_skeleton_bone_name' method. + + + + + Cached name for the 'find_profile_bone_name' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bone_map_updated' signal. + + + + + Cached name for the 'profile_updated' signal. + + + + + A container that arranges its child controls horizontally or vertically, rearranging them automatically when their minimum size changes. + + + + + 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). + + + + + The child controls will be centered in the container. + + + + + 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). + + + + + The alignment of the container's children (must be one of , , or ). + + + + + If , the will arrange its children vertically, rather than horizontally. + Can't be changed when using and . + + + + + Adds a node to the box as a spacer. If is , it will insert the node in front of all other children. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_spacer' method. + + + + + Cached name for the 'set_alignment' method. + + + + + Cached name for the 'get_alignment' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generate an axis-aligned box . + The box's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to Vector3(3, 2, 1). This is equivalent to adding UV *= vec2(3.0, 2.0) in a vertex shader. + Note: When using a large textured (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase , and until you no longer notice UV jittering. + + + + + The box's width, height and depth. + + + + + Number of extra edge loops inserted along the X axis. + + + + + Number of extra edge loops inserted along the Y axis. + + + + + Number of extra edge loops inserted along the Z axis. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'subdivide_width' property. + + + + + Cached name for the 'subdivide_height' property. + + + + + Cached name for the 'subdivide_depth' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_subdivide_width' method. + + + + + Cached name for the 'get_subdivide_width' method. + + + + + Cached name for the 'set_subdivide_height' method. + + + + + Cached name for the 'get_subdivide_height' method. + + + + + Cached name for the 'set_subdivide_depth' method. + + + + + Cached name for the 'get_subdivide_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a cuboid shape that can be used by the engine's occlusion culling system. + See 's documentation for instructions on setting up occlusion culling. + + + + + The box's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D box shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than and , but slower than . + + + + + The box's width, height and depth. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the standard themed button. It can contain text and an icon, and it will display them according to the current . + Example: Create a button and connect a method that will be called when the button is pressed: + + public override void _Ready() + { + var button = new Button(); + button.Text = "Click me"; + button.Pressed += ButtonPressed; + AddChild(button); + } + + private void ButtonPressed() + { + GD.Print("Hello world!"); + } + + See also which contains common properties and methods associated with this node. + Note: Buttons do not detect touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use for buttons that trigger gameplay movement or actions. + + + + + The button's text that will be displayed inside the button's area. + + + + + Button's icon, if text is present the icon will be placed before the text. + To edit margin and spacing of the icon, use h_separation theme property and content_margin_* properties of the used es. + + + + + Flat buttons don't display decoration. + + + + + Text alignment policy for the button's text, use one of the constants. + + + + + Sets the clipping behavior when the text exceeds the node's bounding rectangle. See for a description of all modes. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. + + + + + If , text that is too large to fit the button is clipped horizontally. If , the button will always be wide enough to hold the text. The text is not vertically clipped, and the button's height is not affected by this property. + + + + + Specifies if the icon should be aligned horizontally to the left, right, or center of a button. Uses the same constants as the text alignment. If centered horizontally and vertically, text will draw on top of the icon. + + + + + Specifies if the icon should be aligned vertically to the top, bottom, or center of a button. Uses the same constants as the text alignment. If centered horizontally and vertically, text will draw on top of the icon. + + + + + When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect. See also icon_max_width. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'icon' property. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'clip_text' property. + + + + + Cached name for the 'icon_alignment' property. + + + + + Cached name for the 'vertical_icon_alignment' property. + + + + + Cached name for the 'expand_icon' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_button_icon' method. + + + + + Cached name for the 'get_button_icon' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_clip_text' method. + + + + + Cached name for the 'get_clip_text' method. + + + + + Cached name for the 'set_text_alignment' method. + + + + + Cached name for the 'get_text_alignment' method. + + + + + Cached name for the 'set_icon_alignment' method. + + + + + Cached name for the 'get_icon_alignment' method. + + + + + Cached name for the 'set_vertical_icon_alignment' method. + + + + + Cached name for the 'get_vertical_icon_alignment' method. + + + + + Cached name for the 'set_expand_icon' method. + + + + + Cached name for the 'is_expand_icon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A group of -derived buttons. The buttons in a are treated like radio buttons: No more than one button can be pressed at a time. Some types of buttons (such as ) may have a special appearance in this state. + Every member of a should have set to . + + + + + If , it is possible to unpress all buttons in this . + + + + + Returns the current pressed button. + + + + + Returns an of s who have this as their (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the buttons of the group is pressed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'allow_unpress' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_pressed_button' method. + + + + + Cached name for the 'get_buttons' method. + + + + + Cached name for the 'set_allow_unpress' method. + + + + + Cached name for the 'is_allow_unpress' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + CPU-based 2D particle node used to create a variety of particle systems and effects. + See also , which provides the same functionality with hardware acceleration, but may not run on older devices. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Use with , , and to set initial velocity properties. + + + + + Use with , , and to set angular velocity properties. + + + + + Use with , , and to set orbital velocity properties. + + + + + Use with , , and to set linear acceleration properties. + + + + + Use with , , and to set radial acceleration properties. + + + + + Use with , , and to set tangential acceleration properties. + + + + + Use with , , and to set damping properties. + + + + + Use with , , and to set angle properties. + + + + + Use with , , and to set scale properties. + + + + + Use with , , and to set hue variation properties. + + + + + Use with , , and to set animation speed properties. + + + + + Use with , , and to set animation offset properties. + + + + + Represents the size of the enum. + + + + + Use with to set . + + + + + Present for consistency with 3D particle nodes, not used in 2D. + + + + + Present for consistency with 3D particle nodes, not used in 2D. + + + + + Represents the size of the enum. + + + + + All particles will be emitted from a single point. + + + + + Particles will be emitted in the volume of a sphere flattened to two dimensions. + + + + + Particles will be emitted on the surface of a sphere flattened to two dimensions. + + + + + Particles will be emitted in the area of a rectangle. + + + + + Particles will be emitted at a position chosen randomly among . Particle color will be modulated by . + + + + + Particles will be emitted at a position chosen randomly among . Particle velocity and rotation will be set based on . Particle color will be modulated by . + + + + + Represents the size of the enum. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle until after all active particles finish processing. You can use the signal to be notified once all active particles finish processing. + + + + + Number of particles emitted in one emission cycle. + + + + + Amount of time each particle will exist. + + + + + If , only one emission cycle occurs. If set during a cycle, emission will stop at the cycle's end. + + + + + Particle system starts as if it had already run for this many seconds. + + + + + Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins. + + + + + Emission lifetime randomness ratio. + + + + + Particle lifetime randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + + + + + Particle texture. If , particles will be squares. + + + + + Particles will be emitted inside this region. See for possible values. + + + + + The sphere's radius if is set to . + + + + + The rectangle's extents if is set to . + + + + + Sets the initial positions to spawn particles when using or . + + + + + Sets the direction the particles will be emitted in when using . + + + + + Sets the s to modulate particles by when using or . + + + + + Align Y axis of particle with the direction of its velocity. + + + + + Unit vector specifying the particles' emission direction. + + + + + Each particle's initial direction range from +spread to -spread degrees. + + + + + Gravity applied to every particle. + + + + + Minimum equivalent of . + + + + + Maximum initial velocity magnitude for each particle. Direction comes from and . + + + + + Minimum equivalent of . + + + + + Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. + + + + + Each particle's angular velocity will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second. + + + + + Each particle's orbital velocity will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum linear acceleration applied to each particle in the direction of motion. + + + + + Each particle's linear acceleration will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative. + + + + + Each particle's radial acceleration will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion. + + + + + Each particle's tangential acceleration will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + The maximum rate at which particles lose velocity. For example value of 100 means that the particle will go from 100 velocity to 0 in 1 second. + + + + + Damping will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum initial rotation applied to each particle, in degrees. + + + + + Each particle's rotation will be animated along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum initial scale applied to each particle. + + + + + Each particle's scale will vary along this . Should be a unit . + + + + + If , the scale curve will be split into x and y components. See and . + + + + + Each particle's horizontal scale will vary along this . Should be a unit . + must be enabled. + + + + + Each particle's vertical scale will vary along this . Should be a unit . + must be enabled. + + + + + Each particle's initial color. If is defined, it will be multiplied by this color. + + + + + Each particle's color will vary along this (multiplied with ). + + + + + Each particle's initial color will vary along this (multiplied with ). + + + + + Minimum equivalent of . + + + + + Maximum initial hue variation applied to each particle. It will shift the particle color's hue. + + + + + Each particle's hue will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum particle animation speed. Animation speed of 1 means that the particles will make full 0 to 1 offset cycle during lifetime, 2 means 2 cycles etc. + With animation speed greater than 1, remember to enable property if you want the animation to repeat. + + + + + Each particle's animation speed will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum animation offset that corresponds to frame index in the texture. 0 is the first frame, 1 is the last one. See . + + + + + Each particle's animation offset will vary along this . Should be a unit . + + + + + Restarts the particle emitter. + + + + + Sets the minimum value for the given parameter. + + + + + Returns the minimum value range for the given parameter. + + + + + Sets the maximum value for the given parameter. + + + + + Returns the maximum value range for the given parameter. + + + + + Sets the of the parameter specified by . Should be a unit . + + + + + Returns the of the parameter specified by . + + + + + Enables or disables the given flag (see for options). + + + + + Returns the enabled state of the given particle flag (see for options). + + + + + Sets this node's properties to match a given node with an assigned . + + + + + Emitted when all active particles have finished processing. When is disabled, particles will process continuously, so this is never emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'lifetime_randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'emission_shape' property. + + + + + Cached name for the 'emission_sphere_radius' property. + + + + + Cached name for the 'emission_rect_extents' property. + + + + + Cached name for the 'emission_points' property. + + + + + Cached name for the 'emission_normals' property. + + + + + Cached name for the 'emission_colors' property. + + + + + Cached name for the 'particle_flag_align_y' property. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'initial_velocity_min' property. + + + + + Cached name for the 'initial_velocity_max' property. + + + + + Cached name for the 'angular_velocity_min' property. + + + + + Cached name for the 'angular_velocity_max' property. + + + + + Cached name for the 'angular_velocity_curve' property. + + + + + Cached name for the 'orbit_velocity_min' property. + + + + + Cached name for the 'orbit_velocity_max' property. + + + + + Cached name for the 'orbit_velocity_curve' property. + + + + + Cached name for the 'linear_accel_min' property. + + + + + Cached name for the 'linear_accel_max' property. + + + + + Cached name for the 'linear_accel_curve' property. + + + + + Cached name for the 'radial_accel_min' property. + + + + + Cached name for the 'radial_accel_max' property. + + + + + Cached name for the 'radial_accel_curve' property. + + + + + Cached name for the 'tangential_accel_min' property. + + + + + Cached name for the 'tangential_accel_max' property. + + + + + Cached name for the 'tangential_accel_curve' property. + + + + + Cached name for the 'damping_min' property. + + + + + Cached name for the 'damping_max' property. + + + + + Cached name for the 'damping_curve' property. + + + + + Cached name for the 'angle_min' property. + + + + + Cached name for the 'angle_max' property. + + + + + Cached name for the 'angle_curve' property. + + + + + Cached name for the 'scale_amount_min' property. + + + + + Cached name for the 'scale_amount_max' property. + + + + + Cached name for the 'scale_amount_curve' property. + + + + + Cached name for the 'split_scale' property. + + + + + Cached name for the 'scale_curve_x' property. + + + + + Cached name for the 'scale_curve_y' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'color_initial_ramp' property. + + + + + Cached name for the 'hue_variation_min' property. + + + + + Cached name for the 'hue_variation_max' property. + + + + + Cached name for the 'hue_variation_curve' property. + + + + + Cached name for the 'anim_speed_min' property. + + + + + Cached name for the 'anim_speed_max' property. + + + + + Cached name for the 'anim_speed_curve' property. + + + + + Cached name for the 'anim_offset_min' property. + + + + + Cached name for the 'anim_offset_max' property. + + + + + Cached name for the 'anim_offset_curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_lifetime_randomness' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_lifetime_randomness' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_param_min' method. + + + + + Cached name for the 'get_param_min' method. + + + + + Cached name for the 'set_param_max' method. + + + + + Cached name for the 'get_param_max' method. + + + + + Cached name for the 'set_param_curve' method. + + + + + Cached name for the 'get_param_curve' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_color_initial_ramp' method. + + + + + Cached name for the 'get_color_initial_ramp' method. + + + + + Cached name for the 'set_particle_flag' method. + + + + + Cached name for the 'get_particle_flag' method. + + + + + Cached name for the 'set_emission_shape' method. + + + + + Cached name for the 'get_emission_shape' method. + + + + + Cached name for the 'set_emission_sphere_radius' method. + + + + + Cached name for the 'get_emission_sphere_radius' method. + + + + + Cached name for the 'set_emission_rect_extents' method. + + + + + Cached name for the 'get_emission_rect_extents' method. + + + + + Cached name for the 'set_emission_points' method. + + + + + Cached name for the 'get_emission_points' method. + + + + + Cached name for the 'set_emission_normals' method. + + + + + Cached name for the 'get_emission_normals' method. + + + + + Cached name for the 'set_emission_colors' method. + + + + + Cached name for the 'get_emission_colors' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_split_scale' method. + + + + + Cached name for the 'set_split_scale' method. + + + + + Cached name for the 'get_scale_curve_x' method. + + + + + Cached name for the 'set_scale_curve_x' method. + + + + + Cached name for the 'get_scale_curve_y' method. + + + + + Cached name for the 'set_scale_curve_y' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + CPU-based 3D particle node used to create a variety of particle systems and effects. + See also , which provides the same functionality with hardware acceleration, but may not run on older devices. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Particles are drawn in order of depth. + + + + + Use with , , and to set initial velocity properties. + + + + + Use with , , and to set angular velocity properties. + + + + + Use with , , and to set orbital velocity properties. + + + + + Use with , , and to set linear acceleration properties. + + + + + Use with , , and to set radial acceleration properties. + + + + + Use with , , and to set tangential acceleration properties. + + + + + Use with , , and to set damping properties. + + + + + Use with , , and to set angle properties. + + + + + Use with , , and to set scale properties. + + + + + Use with , , and to set hue variation properties. + + + + + Use with , , and to set animation speed properties. + + + + + Use with , , and to set animation offset properties. + + + + + Represents the size of the enum. + + + + + Use with to set . + + + + + Use with to set . + + + + + Use with to set . + + + + + Represents the size of the enum. + + + + + All particles will be emitted from a single point. + + + + + Particles will be emitted in the volume of a sphere. + + + + + Particles will be emitted on the surface of a sphere. + + + + + Particles will be emitted in the volume of a box. + + + + + Particles will be emitted at a position chosen randomly among . Particle color will be modulated by . + + + + + Particles will be emitted at a position chosen randomly among . Particle velocity and rotation will be set based on . Particle color will be modulated by . + + + + + Particles will be emitted in a ring or cylinder. + + + + + Represents the size of the enum. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle until after all active particles finish processing. You can use the signal to be notified once all active particles finish processing. + + + + + Number of particles emitted in one emission cycle. + + + + + Amount of time each particle will exist. + + + + + If , only one emission cycle occurs. If set during a cycle, emission will stop at the cycle's end. + + + + + Particle system starts as if it had already run for this many seconds. + + + + + Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins. + + + + + Emission lifetime randomness ratio. + + + + + Particle lifetime randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + The that determines the node's region which needs to be visible on screen for the particle system to be active. + Grow the box if particles suddenly appear/disappear when the node enters/exits the screen. The can be grown via code or with the Particles → Generate AABB editor tool. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + + + + + The used for each particle. If , particles will be spheres. + + + + + Particles will be emitted inside this region. See for possible values. + + + + + The sphere's radius if is set to . + + + + + The rectangle's extents if is set to . + + + + + Sets the initial positions to spawn particles when using or . + + + + + Sets the direction the particles will be emitted in when using . + + + + + Sets the s to modulate particles by when using or . + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + The axis of the ring when using the emitter . + + + + + The height of the ring when using the emitter . + + + + + The radius of the ring when using the emitter . + + + + + The inner radius of the ring when using the emitter . + + + + + The angle of the cone when using the emitter . The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. + Note: Depending on , the angle may be clamped if the ring's end is reached to form a perfect cone. + + + + + Align Y axis of particle with the direction of its velocity. + + + + + If , particles rotate around Y axis by . + + + + + If , particles will not move on the Z axis. + + + + + Unit vector specifying the particles' emission direction. + + + + + Each particle's initial direction range from +spread to -spread degrees. Applied to X/Z plane and Y/Z planes. + + + + + Amount of in Y/Z plane. A value of 1 restricts particles to X/Z plane. + + + + + Gravity applied to every particle. + + + + + Minimum value of the initial velocity. + + + + + Maximum value of the initial velocity. + + + + + Minimum initial angular velocity (rotation speed) applied to each particle in degrees per second. + + + + + Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. + + + + + Each particle's angular velocity (rotation speed) will vary along this over its lifetime. Should be a unit . + + + + + Minimum orbit velocity. + + + + + Maximum orbit velocity. + + + + + Each particle's orbital velocity will vary along this . Should be a unit . + + + + + Minimum linear acceleration. + + + + + Maximum linear acceleration. + + + + + Each particle's linear acceleration will vary along this . Should be a unit . + + + + + Minimum radial acceleration. + + + + + Maximum radial acceleration. + + + + + Each particle's radial acceleration will vary along this . Should be a unit . + + + + + Minimum tangent acceleration. + + + + + Maximum tangent acceleration. + + + + + Each particle's tangential acceleration will vary along this . Should be a unit . + + + + + Minimum damping. + + + + + Maximum damping. + + + + + Damping will vary along this . Should be a unit . + + + + + Minimum angle. + + + + + Maximum angle. + + + + + Each particle's rotation will be animated along this . Should be a unit . + + + + + Minimum scale. + + + + + Maximum scale. + + + + + Each particle's scale will vary along this . Should be a unit . + + + + + If set to , three different scale curves can be specified, one per scale axis. + + + + + Curve for the scale over life, along the x axis. + + + + + Curve for the scale over life, along the y axis. + + + + + Curve for the scale over life, along the z axis. + + + + + Each particle's initial color. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's color will vary along this over its lifetime (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's initial color will vary along this (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Minimum hue variation. + + + + + Maximum hue variation. + + + + + Each particle's hue will vary along this . Should be a unit . + + + + + Minimum particle animation speed. + + + + + Maximum particle animation speed. + + + + + Each particle's animation speed will vary along this . Should be a unit . + + + + + Minimum animation offset. + + + + + Maximum animation offset. + + + + + Each particle's animation offset will vary along this . Should be a unit . + + + + + Restarts the particle emitter. + + + + + Returns the axis-aligned bounding box that contains all the particles that are active in the current frame. + + + + + Sets the minimum value for the given parameter. + + + + + Returns the minimum value range for the given parameter. + + + + + Sets the maximum value for the given parameter. + + + + + Returns the maximum value range for the given parameter. + + + + + Sets the of the parameter specified by . Should be a unit . + + + + + Returns the of the parameter specified by . + + + + + Enables or disables the given particle flag (see for options). + + + + + Returns the enabled state of the given particle flag (see for options). + + + + + Sets this node's properties to match a given node with an assigned . + + + + + Emitted when all active particles have finished processing. When is disabled, particles will process continuously, so this is never emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'lifetime_randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'visibility_aabb' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'emission_shape' property. + + + + + Cached name for the 'emission_sphere_radius' property. + + + + + Cached name for the 'emission_box_extents' property. + + + + + Cached name for the 'emission_points' property. + + + + + Cached name for the 'emission_normals' property. + + + + + Cached name for the 'emission_colors' property. + + + + + Cached name for the 'emission_ring_axis' property. + + + + + Cached name for the 'emission_ring_height' property. + + + + + Cached name for the 'emission_ring_radius' property. + + + + + Cached name for the 'emission_ring_inner_radius' property. + + + + + Cached name for the 'emission_ring_cone_angle' property. + + + + + Cached name for the 'particle_flag_align_y' property. + + + + + Cached name for the 'particle_flag_rotate_y' property. + + + + + Cached name for the 'particle_flag_disable_z' property. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'flatness' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'initial_velocity_min' property. + + + + + Cached name for the 'initial_velocity_max' property. + + + + + Cached name for the 'angular_velocity_min' property. + + + + + Cached name for the 'angular_velocity_max' property. + + + + + Cached name for the 'angular_velocity_curve' property. + + + + + Cached name for the 'orbit_velocity_min' property. + + + + + Cached name for the 'orbit_velocity_max' property. + + + + + Cached name for the 'orbit_velocity_curve' property. + + + + + Cached name for the 'linear_accel_min' property. + + + + + Cached name for the 'linear_accel_max' property. + + + + + Cached name for the 'linear_accel_curve' property. + + + + + Cached name for the 'radial_accel_min' property. + + + + + Cached name for the 'radial_accel_max' property. + + + + + Cached name for the 'radial_accel_curve' property. + + + + + Cached name for the 'tangential_accel_min' property. + + + + + Cached name for the 'tangential_accel_max' property. + + + + + Cached name for the 'tangential_accel_curve' property. + + + + + Cached name for the 'damping_min' property. + + + + + Cached name for the 'damping_max' property. + + + + + Cached name for the 'damping_curve' property. + + + + + Cached name for the 'angle_min' property. + + + + + Cached name for the 'angle_max' property. + + + + + Cached name for the 'angle_curve' property. + + + + + Cached name for the 'scale_amount_min' property. + + + + + Cached name for the 'scale_amount_max' property. + + + + + Cached name for the 'scale_amount_curve' property. + + + + + Cached name for the 'split_scale' property. + + + + + Cached name for the 'scale_curve_x' property. + + + + + Cached name for the 'scale_curve_y' property. + + + + + Cached name for the 'scale_curve_z' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'color_initial_ramp' property. + + + + + Cached name for the 'hue_variation_min' property. + + + + + Cached name for the 'hue_variation_max' property. + + + + + Cached name for the 'hue_variation_curve' property. + + + + + Cached name for the 'anim_speed_min' property. + + + + + Cached name for the 'anim_speed_max' property. + + + + + Cached name for the 'anim_speed_curve' property. + + + + + Cached name for the 'anim_offset_min' property. + + + + + Cached name for the 'anim_offset_max' property. + + + + + Cached name for the 'anim_offset_curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_visibility_aabb' method. + + + + + Cached name for the 'set_lifetime_randomness' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_visibility_aabb' method. + + + + + Cached name for the 'get_lifetime_randomness' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'capture_aabb' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_flatness' method. + + + + + Cached name for the 'get_flatness' method. + + + + + Cached name for the 'set_param_min' method. + + + + + Cached name for the 'get_param_min' method. + + + + + Cached name for the 'set_param_max' method. + + + + + Cached name for the 'get_param_max' method. + + + + + Cached name for the 'set_param_curve' method. + + + + + Cached name for the 'get_param_curve' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_color_initial_ramp' method. + + + + + Cached name for the 'get_color_initial_ramp' method. + + + + + Cached name for the 'set_particle_flag' method. + + + + + Cached name for the 'get_particle_flag' method. + + + + + Cached name for the 'set_emission_shape' method. + + + + + Cached name for the 'get_emission_shape' method. + + + + + Cached name for the 'set_emission_sphere_radius' method. + + + + + Cached name for the 'get_emission_sphere_radius' method. + + + + + Cached name for the 'set_emission_box_extents' method. + + + + + Cached name for the 'get_emission_box_extents' method. + + + + + Cached name for the 'set_emission_points' method. + + + + + Cached name for the 'get_emission_points' method. + + + + + Cached name for the 'set_emission_normals' method. + + + + + Cached name for the 'get_emission_normals' method. + + + + + Cached name for the 'set_emission_colors' method. + + + + + Cached name for the 'get_emission_colors' method. + + + + + Cached name for the 'set_emission_ring_axis' method. + + + + + Cached name for the 'get_emission_ring_axis' method. + + + + + Cached name for the 'set_emission_ring_height' method. + + + + + Cached name for the 'get_emission_ring_height' method. + + + + + Cached name for the 'set_emission_ring_radius' method. + + + + + Cached name for the 'get_emission_ring_radius' method. + + + + + Cached name for the 'set_emission_ring_inner_radius' method. + + + + + Cached name for the 'get_emission_ring_inner_radius' method. + + + + + Cached name for the 'set_emission_ring_cone_angle' method. + + + + + Cached name for the 'get_emission_ring_cone_angle' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_split_scale' method. + + + + + Cached name for the 'set_split_scale' method. + + + + + Cached name for the 'get_scale_curve_x' method. + + + + + Cached name for the 'set_scale_curve_x' method. + + + + + Cached name for the 'get_scale_curve_y' method. + + + + + Cached name for the 'set_scale_curve_y' method. + + + + + Cached name for the 'get_scale_curve_z' method. + + + + + Cached name for the 'set_scale_curve_z' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + This node allows you to create a box for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The box's width, height and depth. + + + + + The material used to render the box. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + For complex arrangements of shapes, it is sometimes needed to add structure to your CSG nodes. The CSGCombiner3D node allows you to create this structure. The node encapsulates the result of the CSG operations of its children. In this way, it is possible to do operations on one set of shapes that are children of one CSGCombiner3D node, and a set of separate operations on a second set of shapes that are children of a second CSGCombiner3D node, and then do an operation that takes the two end results as its input to create the final shape. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node allows you to create a cylinder (or cone) for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The radius of the cylinder. + + + + + The height of the cylinder. + + + + + The number of sides of the cylinder, the higher this number the more detail there will be in the cylinder. + + + + + If a cone is created, the will only apply to one side. + + + + + If the normals of the cylinder are set to give a smooth effect making the cylinder seem rounded. If the cylinder will have a flat shaded look. + + + + + The material used to render the cylinder. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'sides' property. + + + + + Cached name for the 'cone' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_sides' method. + + + + + Cached name for the 'get_sides' method. + + + + + Cached name for the 'set_cone' method. + + + + + Cached name for the 'is_cone' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This CSG node allows you to use any mesh resource as a CSG shape, provided it is manifold. A manifold shape is closed, does not self-intersect, does not contain internal faces and has no edges that connect to more than two faces. See also for drawing 2D extruded polygons to be used as CSG nodes. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The resource to use as a CSG shape. + Note: Some types such as , , , and are excluded from the type hint for this property, as these primitives are non-manifold and thus not compatible with the CSG algorithm. + Note: When using an , all vertex attributes except , and are left unused. Only and will be passed to the GPU. + is only used to determine which faces require the use of flat shading. By default, CSGMesh will ignore the mesh's vertex normals, recalculate them for each vertex and use a smooth shader. If a flat shader is required for a face, ensure that all vertex normals of the face are approximately equal. + + + + + The used in drawing the CSG shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An array of 2D points is extruded to quickly and easily create a variety of 3D meshes. See also for using 3D meshes as CSG nodes. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The shape is extruded along the negative Z axis. + + + + + The shape is extruded by rotating it around the Y axis. + + + + + The shape is extruded along the specified in . + + + + + The shape is not rotated. + Note: Requires the path Z coordinates to continually decrease to ensure viable shapes. + + + + + The shape is rotated along the path, but it is not rotated around the path axis. + Note: Requires the path Z coordinates to continually decrease to ensure viable shapes. + + + + + The shape follows the path and its rotations around the path axis. + + + + + When is set to , will determine the distance, in meters, each interval of the path will extrude. + + + + + When is set to , will subdivide the polygons along the path. + + + + + The point array that defines the 2D polygon that is extruded. This can be a convex or concave polygon with 3 or more points. The polygon must not have any intersecting edges. Otherwise, triangulation will fail and no mesh will be generated. + Note: If only 1 or 2 points are defined in , no mesh will be generated. + + + + + The used to extrude the . + + + + + When is , the depth of the extrusion. + + + + + When is , the total number of degrees the is rotated when extruding. + + + + + When is , the number of extrusions made. + + + + + When is , the location of the object used to extrude the . + + + + + When is , this will determine if the interval should be by distance () or subdivision fractions (). + + + + + When is , the path interval or ratio of path points to extrusions. + + + + + When is , extrusions that are less than this angle, will be merged together to reduce polygon count. + + + + + When is , the path rotation method used to rotate the as it is extruded. + + + + + When is , if the of the is used as the starting point for the extrusions, not the of the . + + + + + When is , by default, the top half of the is stretched along the entire length of the extruded shape. If the top half of the material is repeated every step of the extrusion. + + + + + When is , this is the distance along the path, in meters, the texture coordinates will tile. When set to 0, texture coordinates will match geometry exactly with no tiling. + + + + + When is , if the ends of the path are joined, by adding an extrusion between the last and first points of the path. + + + + + If , applies smooth shading to the extrusions. + + + + + Material to use for the resulting mesh. The UV maps the top half of the material to the extruded shape (U along the length of the extrusions and V around the outline of the ), the bottom-left quarter to the front end face, and the bottom-right quarter to the back end face. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'spin_degrees' property. + + + + + Cached name for the 'spin_sides' property. + + + + + Cached name for the 'path_node' property. + + + + + Cached name for the 'path_interval_type' property. + + + + + Cached name for the 'path_interval' property. + + + + + Cached name for the 'path_simplify_angle' property. + + + + + Cached name for the 'path_rotation' property. + + + + + Cached name for the 'path_local' property. + + + + + Cached name for the 'path_continuous_u' property. + + + + + Cached name for the 'path_u_distance' property. + + + + + Cached name for the 'path_joined' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_spin_degrees' method. + + + + + Cached name for the 'get_spin_degrees' method. + + + + + Cached name for the 'set_spin_sides' method. + + + + + Cached name for the 'get_spin_sides' method. + + + + + Cached name for the 'set_path_node' method. + + + + + Cached name for the 'get_path_node' method. + + + + + Cached name for the 'set_path_interval_type' method. + + + + + Cached name for the 'get_path_interval_type' method. + + + + + Cached name for the 'set_path_interval' method. + + + + + Cached name for the 'get_path_interval' method. + + + + + Cached name for the 'set_path_simplify_angle' method. + + + + + Cached name for the 'get_path_simplify_angle' method. + + + + + Cached name for the 'set_path_rotation' method. + + + + + Cached name for the 'get_path_rotation' method. + + + + + Cached name for the 'set_path_local' method. + + + + + Cached name for the 'is_path_local' method. + + + + + Cached name for the 'set_path_continuous_u' method. + + + + + Cached name for the 'is_path_continuous_u' method. + + + + + Cached name for the 'set_path_u_distance' method. + + + + + Cached name for the 'get_path_u_distance' method. + + + + + Cached name for the 'set_path_joined' method. + + + + + Cached name for the 'is_path_joined' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Parent class for various CSG primitives. It contains code and functionality that is common between them. It cannot be used directly. Instead use one of the various classes that inherit from it. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flip_faces' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_flip_faces' method. + + + + + Cached name for the 'get_flip_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot. + Performance: CSG nodes are only intended for prototyping as they have a significant CPU performance cost. + Consider baking final CSG operation results into static geometry that replaces the CSG nodes. + Individual CSG root node results can be baked to nodes with static resources with the editor menu that appears when a CSG root node is selected. + Individual CSG root nodes can also be baked to static resources with scripts by calling for the visual mesh or for the physics collision. + Entire scenes of CSG nodes can be baked to static geometry and exported with the editor gltf scene exporter. + + + + + Geometry of both primitives is merged, intersecting geometry is removed. + + + + + Only intersecting geometry remains, the rest is removed. + + + + + The second shape is subtracted from the first, leaving a dent with its shape. + + + + + The operation that is performed on this shape. This is ignored for the first CSG child node as the operation is between this node and the previous child of this nodes parent. + + + + + This property does nothing. + + + + + Calculate tangents for the CSG shape which allows the use of normal maps. This is only applied on the root shape, this setting is ignored on any child. + + + + + Adds a collision shape to the physics engine for our CSG shape. This will always act like a static body. Note that the collision shape is still active even if the CSG shape itself is hidden. See also and . + + + + + The physics layers this area is in. + Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property. + A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this CSG shape scans for collisions. Only effective if is . See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. Only effective if is . The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + Returns if this is a root shape and is thus the object that is rendered. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Returns an with two elements, the first is the of this node and the second is the root of this node. Only works when this node is the root shape. + + + + + Returns a baked static of this node's CSG operation result. Materials from involved CSG nodes are added as extra mesh surfaces. Returns an empty mesh if the node is not a CSG root node or has no valid geometry. + + + + + Returns a baked physics of this node's CSG operation result. Returns an empty shape if the node is not a CSG root node or has no valid geometry. + Performance: If the CSG operation results in a very detailed geometry with many faces physics performance will be very slow. Concave shapes should in general only be used for static level geometry and not with dynamic objects that are moving. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operation' property. + + + + + Cached name for the 'snap' property. + + + + + Cached name for the 'calculate_tangents' property. + + + + + Cached name for the 'use_collision' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_root_shape' method. + + + + + Cached name for the 'set_operation' method. + + + + + Cached name for the 'get_operation' method. + + + + + Cached name for the 'set_snap' method. + + + + + Cached name for the 'get_snap' method. + + + + + Cached name for the 'set_use_collision' method. + + + + + Cached name for the 'is_using_collision' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_calculate_tangents' method. + + + + + Cached name for the 'is_calculating_tangents' method. + + + + + Cached name for the 'get_meshes' method. + + + + + Cached name for the 'bake_static_mesh' method. + + + + + Cached name for the 'bake_collision_shape' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node allows you to create a sphere for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + Radius of the sphere. + + + + + Number of vertical slices for the sphere. + + + + + Number of horizontal slices for the sphere. + + + + + If the normals of the sphere are set to give a smooth effect making the sphere seem rounded. If the sphere will have a flat shaded look. + + + + + The material used to render the sphere. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node allows you to create a torus for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The inner radius of the torus. + + + + + The outer radius of the torus. + + + + + The number of slices the torus is constructed of. + + + + + The number of edges each ring of the torus is constructed of. + + + + + If the normals of the torus are set to give a smooth effect making the torus seem rounded. If the torus will have a flat shaded look. + + + + + The material used to render the torus. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'inner_radius' property. + + + + + Cached name for the 'outer_radius' property. + + + + + Cached name for the 'sides' property. + + + + + Cached name for the 'ring_sides' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_inner_radius' method. + + + + + Cached name for the 'get_inner_radius' method. + + + + + Cached name for the 'set_outer_radius' method. + + + + + Cached name for the 'get_outer_radius' method. + + + + + Cached name for the 'set_sides' method. + + + + + Cached name for the 'get_sides' method. + + + + + Cached name for the 'set_ring_sides' method. + + + + + Cached name for the 'get_ring_sides' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class represents a C# script. It is the C# equivalent of the class and is only available in Mono-enabled Godot builds. + + + + + Returns a new instance of the script. + + + + + Returns a new instance of the script. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'new' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is used to call a method in a tweening sequence. See for more usage information. + The tweener will finish automatically if the callback's target object is freed. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Makes the callback call delayed by given time in seconds. + Example: Call after 2 seconds: + + var tween = get_tree().create_tween() + tween.tween_callback(queue_free).set_delay(2) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_delay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 -based nodes. + Cameras register themselves in the nearest 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 and change the transform of the canvas by setting in (you can obtain the current by using ). + Note that the node's position doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use to get the real position. + + + + + The camera's position is fixed so that the top-left corner is always at the origin. + + + + + The camera's position takes into account vertical/horizontal offsets and the screen size. + + + + + The camera updates during physics frames (see ). + + + + + The camera updates during process frames (see ). + + + + + The camera's relative offset. Useful for looking around or camera shake animations. The offsetted camera can go past the limits defined in , , and . + + + + + The Camera2D's anchor point. See constants. + + + + + If , the camera's rendered view is not affected by its and . + + + + + Controls whether the camera can be active or not. If , the will become the main camera when it enters the scene tree and there is no active camera currently (see ). + When the camera is currently active and is set to , the next enabled in the scene tree will become active. + + + + + The camera's zoom. A zoom of Vector(2, 2) doubles the size seen in the viewport. A zoom of Vector(0.5, 0.5) halves the size seen in the viewport. + Note: does not take zoom into account. This means that zooming in/out will cause bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated unless the font is part of a that makes it ignore camera zoom. To ensure text remains crisp regardless of zoom, you can enable MSDF font rendering by enabling ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (applies to the default project font only), or enabling Multichannel Signed Distance Field in the import options of a DynamicFont for custom fonts. On system fonts, can be enabled in the inspector. + + + + + The custom node attached to the . If or not a , uses the default viewport instead. + + + + + The camera's process callback. See . + + + + + Left scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + Top scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + Right scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + Bottom scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + If , the camera smoothly stops when reaches its limits. + This property has no effect if is . + Note: To immediately update the camera's position to be within limits without smoothing, even with this setting enabled, invoke . + + + + + If , the camera's view smoothly moves towards its target position at . + + + + + Speed in pixels per second of the camera's smoothing effect when is . + + + + + If , the camera's view smoothly rotates, via asymptotic smoothing, to align with its target rotation at . + Note: This property has no effect if is . + + + + + The angular, asymptotic speed of the camera's rotation smoothing effect when is . + + + + + If , the camera only moves when reaching the horizontal (left and right) drag margins. If , the camera moves horizontally regardless of margins. + + + + + If , the camera only moves when reaching the vertical (top and bottom) drag margins. If , the camera moves vertically regardless of the drag margins. + + + + + The relative horizontal drag offset of the camera between the right (-1) and left (1) drag margins. + Note: Used to set the initial horizontal drag offset; determine the current offset; or force the current offset. It's not automatically updated when is or the drag margins are changed. + + + + + The relative vertical drag offset of the camera between the bottom (-1) and top (1) drag margins. + Note: Used to set the initial vertical drag offset; determine the current offset; or force the current offset. It's not automatically updated when is or the drag margins are changed. + + + + + Left margin needed to drag the camera. A value of 1 makes the camera move only when reaching the left edge of the screen. + + + + + Top margin needed to drag the camera. A value of 1 makes the camera move only when reaching the top edge of the screen. + + + + + Right margin needed to drag the camera. A value of 1 makes the camera move only when reaching the right edge of the screen. + + + + + Bottom margin needed to drag the camera. A value of 1 makes the camera move only when reaching the bottom edge of the screen. + + + + + If , draws the camera's screen rectangle in the editor. + + + + + If , draws the camera's limits rectangle in the editor. + + + + + If , draws the camera's drag margin rectangle in the editor. + + + + + Forces this to become the current active one. must be . + + + + + Returns if this is the active camera (see ). + + + + + Sets the camera limit for the specified . See also , , , and . + + + + + Returns the camera limit for the specified . See also , , , and . + + + + + Sets the specified 's margin. See also , , , and . + + + + + Returns the specified 's margin. See also , , , and . + + + + + Returns this camera's target position, in global coordinates. + Note: The returned value is not the same as , as it is affected by the drag properties. It is also not the same as the current position if is (see ). + + + + + Returns the center of the screen from this camera's point of view, in global coordinates. + Note: The exact targeted position of the camera may be different. See . + + + + + Forces the camera to update scroll immediately. + + + + + Sets the camera's position immediately to its current smoothing destination. + This method has no effect if is . + + + + + Aligns the camera to the tracked node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'anchor_mode' property. + + + + + Cached name for the 'ignore_rotation' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'zoom' property. + + + + + Cached name for the 'custom_viewport' property. + + + + + Cached name for the 'process_callback' property. + + + + + Cached name for the 'limit_left' property. + + + + + Cached name for the 'limit_top' property. + + + + + Cached name for the 'limit_right' property. + + + + + Cached name for the 'limit_bottom' property. + + + + + Cached name for the 'limit_smoothed' property. + + + + + Cached name for the 'position_smoothing_enabled' property. + + + + + Cached name for the 'position_smoothing_speed' property. + + + + + Cached name for the 'rotation_smoothing_enabled' property. + + + + + Cached name for the 'rotation_smoothing_speed' property. + + + + + Cached name for the 'drag_horizontal_enabled' property. + + + + + Cached name for the 'drag_vertical_enabled' property. + + + + + Cached name for the 'drag_horizontal_offset' property. + + + + + Cached name for the 'drag_vertical_offset' property. + + + + + Cached name for the 'drag_left_margin' property. + + + + + Cached name for the 'drag_top_margin' property. + + + + + Cached name for the 'drag_right_margin' property. + + + + + Cached name for the 'drag_bottom_margin' property. + + + + + Cached name for the 'editor_draw_screen' property. + + + + + Cached name for the 'editor_draw_limits' property. + + + + + Cached name for the 'editor_draw_drag_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_anchor_mode' method. + + + + + Cached name for the 'get_anchor_mode' method. + + + + + Cached name for the 'set_ignore_rotation' method. + + + + + Cached name for the 'is_ignoring_rotation' method. + + + + + Cached name for the 'set_process_callback' method. + + + + + Cached name for the 'get_process_callback' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached name for the 'set_limit' method. + + + + + Cached name for the 'get_limit' method. + + + + + Cached name for the 'set_limit_smoothing_enabled' method. + + + + + Cached name for the 'is_limit_smoothing_enabled' method. + + + + + Cached name for the 'set_drag_vertical_enabled' method. + + + + + Cached name for the 'is_drag_vertical_enabled' method. + + + + + Cached name for the 'set_drag_horizontal_enabled' method. + + + + + Cached name for the 'is_drag_horizontal_enabled' method. + + + + + Cached name for the 'set_drag_vertical_offset' method. + + + + + Cached name for the 'get_drag_vertical_offset' method. + + + + + Cached name for the 'set_drag_horizontal_offset' method. + + + + + Cached name for the 'get_drag_horizontal_offset' method. + + + + + Cached name for the 'set_drag_margin' method. + + + + + Cached name for the 'get_drag_margin' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'get_screen_center_position' method. + + + + + Cached name for the 'set_zoom' method. + + + + + Cached name for the 'get_zoom' method. + + + + + Cached name for the 'set_custom_viewport' method. + + + + + Cached name for the 'get_custom_viewport' method. + + + + + Cached name for the 'set_position_smoothing_speed' method. + + + + + Cached name for the 'get_position_smoothing_speed' method. + + + + + Cached name for the 'set_position_smoothing_enabled' method. + + + + + Cached name for the 'is_position_smoothing_enabled' method. + + + + + Cached name for the 'set_rotation_smoothing_enabled' method. + + + + + Cached name for the 'is_rotation_smoothing_enabled' method. + + + + + Cached name for the 'set_rotation_smoothing_speed' method. + + + + + Cached name for the 'get_rotation_smoothing_speed' method. + + + + + Cached name for the 'force_update_scroll' method. + + + + + Cached name for the 'reset_smoothing' method. + + + + + Cached name for the 'align' method. + + + + + Cached name for the 'set_screen_drawing_enabled' method. + + + + + Cached name for the 'is_screen_drawing_enabled' method. + + + + + Cached name for the 'set_limit_drawing_enabled' method. + + + + + Cached name for the 'is_limit_drawing_enabled' method. + + + + + Cached name for the 'set_margin_drawing_enabled' method. + + + + + Cached name for the 'is_margin_drawing_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a special node that displays what is visible from its current location. Cameras register themselves in the nearest 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 , and, without one, a scene registered in that (or higher viewports) can't be displayed. + + + + + Perspective projection. Objects on the screen becomes smaller when they are far away. + + + + + Orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + + + + + Frustum projection. This mode allows adjusting to create "tilted frustum" effects. + + + + + 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. + + + + + 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. + + + + + Disables Doppler effect simulation (default). + + + + + Simulate Doppler effect by tracking positions of objects that are changed in _process. Changes in the relative velocity of this camera compared to those objects affect how audio is perceived (changing the audio's ). + + + + + Simulate Doppler effect by tracking positions of objects that are changed in _physics_process. Changes in the relative velocity of this camera compared to those objects affect how audio is perceived (changing the audio's ). + + + + + The axis to lock during / adjustments. Can be either or . + + + + + The culling mask that describes which are rendered by this camera. By default, all 20 user-visible layers are rendered. + Note: Since the allows for 32 layers to be stored in total, there are an additional 12 layers that are only used internally by the engine and aren't exposed in the editor. Setting using a script allows you to toggle those reserved layers, which can be useful for editor plugins. + To adjust more easily using a script, use and . + Note: , SDFGI and will always take all layers into account to determine what contributes to global illumination. If this is an issue, set to for meshes and to for lights to exclude them from global illumination. + + + + + The to use for this camera. + + + + + The to use for this camera. + + + + + The to use for this camera. + + + + + The horizontal (X) offset of the camera viewport. + + + + + The vertical (Y) offset of the camera viewport. + + + + + If not , this camera will simulate the Doppler effect for objects changed in particular _process methods. See for possible values. + + + + + The camera's projection mode. In mode, objects' Z distance from the camera's local space scales their perceived size. + + + + + If , the ancestor is currently using this camera. + If multiple cameras are in the scene, one will always be made current. For example, if two nodes are present in the scene and only one is current, setting one camera's to will cause the other camera to be made current. + + + + + The camera's field of view angle (in degrees). Only applicable in perspective mode. Since locks one axis, sets the other axis' field of view angle. + For reference, the default vertical field of view value (75.0) is equivalent to a horizontal FOV of: + - ~91.31 degrees in a 4:3 viewport + - ~101.67 degrees in a 16:10 viewport + - ~107.51 degrees in a 16:9 viewport + - ~121.63 degrees in a 21:9 viewport + + + + + The camera's size in meters measured as the diameter of the width or height, depending on . Only applicable in orthogonal and frustum modes. + + + + + The camera's frustum offset. This can be changed from the default to create "tilted frustum" effects such as Y-shearing. + Note: Only effective if is . + + + + + The distance to the near culling boundary for this camera relative to its local Z axis. Lower values allow the camera to see objects more up close to its origin, at the cost of lower precision across the entire range. Values lower than the default can lead to increased Z-fighting. + + + + + The distance to the far culling boundary for this camera relative to its local Z axis. Higher values allow the camera to see further away, while decreasing can improve performance if it results in objects being partially or fully culled. + + + + + Returns a normal vector in world space, that is the result of projecting a point on the rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. + + + + + Returns a normal vector from the screen point location directed along the camera. Orthogonal cameras are normalized. Perspective cameras account for perspective, screen width/height, etc. + + + + + Returns a 3D position in world space, that is the result of projecting a point on the rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. + + + + + Returns the 2D coordinate in the rectangle that maps to the given 3D point in world space. + Note: When using this to position GUI elements over a 3D viewport, use to prevent them from appearing if the 3D point is behind the camera: + + # This code block is part of a script that inherits from Node3D. + # `control` is a reference to a node inheriting from Control. + control.visible = not get_viewport().get_camera_3d().is_position_behind(global_transform.origin) + control.position = get_viewport().get_camera_3d().unproject_position(global_transform.origin) + + + + + + Returns if the given position is behind the camera (the blue part of the linked diagram). See this diagram for an overview of position query methods. + Note: A position which returns may still be outside the camera's field of view. + + + + + Returns the 3D point in world space that maps to the given 2D coordinate in the rectangle on a plane that is the given distance into the scene away from the camera. + + + + + Sets the camera projection to perspective mode (see ), by specifying a (field of view) angle in degrees, and the and clip planes in world space units. + + + + + Sets the camera projection to orthogonal mode (see ), by specifying a , and the and clip planes in world space units. (As a hint, 2D games often use this projection, with values specified in pixels.) + + + + + Sets the camera projection to frustum mode (see ), by specifying a , an , and the and clip planes in world space units. See also . + + + + + Makes this camera the current camera for the (see class description). If the camera node is outside the scene tree, it will attempt to become current once it's added. + + + + + If this is the current camera, remove it from being current. If is , request to make the next camera current, if any. + + + + + Returns the transform of the camera plus the vertical () and horizontal () offsets; and any other adjustments made to the position and orientation of the camera by subclassed cameras such as . + + + + + Returns the projection matrix that this camera uses to render to its associated viewport. The camera must be part of the scene tree to function. + + + + + Returns the camera's frustum planes in world space units as an array of s in the following order: near, far, left, top, right, bottom. Not to be confused with . + + + + + Returns if the given position is inside the camera's frustum (the green part of the linked diagram). See this diagram for an overview of position query methods. + + + + + Returns the camera's RID from the . + + + + + Returns the RID of a pyramid shape encompassing the camera's view frustum, ignoring the camera's near plane. The tip of the pyramid represents the position of the camera. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 20. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 20. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'keep_aspect' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached name for the 'environment' property. + + + + + Cached name for the 'attributes' property. + + + + + Cached name for the 'compositor' property. + + + + + Cached name for the 'h_offset' property. + + + + + Cached name for the 'v_offset' property. + + + + + Cached name for the 'doppler_tracking' property. + + + + + Cached name for the 'projection' property. + + + + + Cached name for the 'current' property. + + + + + Cached name for the 'fov' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'frustum_offset' property. + + + + + Cached name for the 'near' property. + + + + + Cached name for the 'far' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'project_ray_normal' method. + + + + + Cached name for the 'project_local_ray_normal' method. + + + + + Cached name for the 'project_ray_origin' method. + + + + + Cached name for the 'unproject_position' method. + + + + + Cached name for the 'is_position_behind' method. + + + + + Cached name for the 'project_position' method. + + + + + Cached name for the 'set_perspective' method. + + + + + Cached name for the 'set_orthogonal' method. + + + + + Cached name for the 'set_frustum' method. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'clear_current' method. + + + + + Cached name for the 'set_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached name for the 'get_camera_transform' method. + + + + + Cached name for the 'get_camera_projection' method. + + + + + Cached name for the 'get_fov' method. + + + + + Cached name for the 'get_frustum_offset' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_far' method. + + + + + Cached name for the 'get_near' method. + + + + + Cached name for the 'set_fov' method. + + + + + Cached name for the 'set_frustum_offset' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'set_far' method. + + + + + Cached name for the 'set_near' method. + + + + + Cached name for the 'get_projection' method. + + + + + Cached name for the 'set_projection' method. + + + + + Cached name for the 'set_h_offset' method. + + + + + Cached name for the 'get_h_offset' method. + + + + + Cached name for the 'set_v_offset' method. + + + + + Cached name for the 'get_v_offset' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_attributes' method. + + + + + Cached name for the 'get_attributes' method. + + + + + Cached name for the 'set_compositor' method. + + + + + Cached name for the 'get_compositor' method. + + + + + Cached name for the 'set_keep_aspect_mode' method. + + + + + Cached name for the 'get_keep_aspect_mode' method. + + + + + Cached name for the 'set_doppler_tracking' method. + + + + + Cached name for the 'get_doppler_tracking' method. + + + + + Cached name for the 'get_frustum' method. + + + + + Cached name for the 'is_position_in_frustum' method. + + + + + Cached name for the 'get_camera_rid' method. + + + + + Cached name for the 'get_pyramid_shape_rid' method. + + + + + Cached name for the 'set_cull_mask_value' method. + + + + + Cached name for the 'get_cull_mask_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Controls camera-specific attributes such as depth of field and exposure override. + When used in a it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own , including the editor camera. When used in a it will override any set in the . When used in or , only the exposure settings will be used. + See also for general 3D environment settings. + This is a pure virtual class that is inherited by and . + + + + + Sensitivity of camera sensors, measured in ISO. A higher sensitivity results in a brighter image. + If is , this can be used as a method of exposure compensation, doubling the value will increase the exposure value (measured in EV100) by 1 stop. + Note: Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. + + + + + Multiplier for the exposure amount. A higher value results in a brighter image. + + + + + If , enables the tonemapping auto exposure mode of the scene renderer. If , the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light. + + + + + The scale of the auto exposure effect. Affects the intensity of auto exposure. + + + + + The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'exposure_sensitivity' property. + + + + + Cached name for the 'exposure_multiplier' property. + + + + + Cached name for the 'auto_exposure_enabled' property. + + + + + Cached name for the 'auto_exposure_scale' property. + + + + + Cached name for the 'auto_exposure_speed' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_exposure_multiplier' method. + + + + + Cached name for the 'get_exposure_multiplier' method. + + + + + Cached name for the 'set_exposure_sensitivity' method. + + + + + Cached name for the 'get_exposure_sensitivity' method. + + + + + Cached name for the 'set_auto_exposure_enabled' method. + + + + + Cached name for the 'is_auto_exposure_enabled' method. + + + + + Cached name for the 'set_auto_exposure_speed' method. + + + + + Cached name for the 'get_auto_exposure_speed' method. + + + + + Cached name for the 'set_auto_exposure_scale' method. + + + + + Cached name for the 'get_auto_exposure_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own , including the editor camera. When used in a it will override any set in the and will override the s , , , and properties. When used in or , only the exposure settings will be used. + The default settings are intended for use in an outdoor environment, tips for settings for use in an indoor environment can be found in each setting's documentation. + Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Distance from camera of object that will be in focus, measured in meters. Internally this will be clamped to be at least 1 millimeter larger than . + + + + + Distance between camera lens and camera aperture, measured in millimeters. Controls field of view and depth of field. A larger focal length will result in a smaller field of view and a narrower depth of field meaning fewer objects will be in focus. A smaller focal length will result in a wider field of view and a larger depth of field meaning more objects will be in focus. When attached to a as its , it will override the property and the property. + + + + + Override value for . Used internally when calculating depth of field. When attached to a as its , it will override the property. + + + + + Override value for . Used internally when calculating depth of field. When attached to a as its , it will override the property. + + + + + Size of the aperture of the camera, measured in f-stops. An f-stop is a unitless ratio between the focal length of the camera and the diameter of the aperture. A high aperture setting will result in a smaller aperture which leads to a dimmer image and sharper focus. A low aperture results in a wide aperture which lets in more light resulting in a brighter, less-focused image. Default is appropriate for outdoors at daytime (i.e. for use with a default ), for indoor lighting, a value between 2 and 4 is more appropriate. + Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. + + + + + Time for shutter to open and close, evaluated as 1 / shutter_speed seconds. A higher value will allow less light (leading to a darker image), while a lower value will allow more light (leading to a brighter image). + Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. + + + + + The minimum luminance (in EV100) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing above a certain brightness, resulting in a cut off point where the scene will remain dark. + + + + + The maximum luminance (in EV100) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing below a certain brightness, resulting in a cut off point where the scene will remain bright. + + + + + Returns the vertical field of view that corresponds to the . This value is calculated internally whenever is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'frustum_focus_distance' property. + + + + + Cached name for the 'frustum_focal_length' property. + + + + + Cached name for the 'frustum_near' property. + + + + + Cached name for the 'frustum_far' property. + + + + + Cached name for the 'exposure_aperture' property. + + + + + Cached name for the 'exposure_shutter_speed' property. + + + + + Cached name for the 'auto_exposure_min_exposure_value' property. + + + + + Cached name for the 'auto_exposure_max_exposure_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_aperture' method. + + + + + Cached name for the 'get_aperture' method. + + + + + Cached name for the 'set_shutter_speed' method. + + + + + Cached name for the 'get_shutter_speed' method. + + + + + Cached name for the 'set_focal_length' method. + + + + + Cached name for the 'get_focal_length' method. + + + + + Cached name for the 'set_focus_distance' method. + + + + + Cached name for the 'get_focus_distance' method. + + + + + Cached name for the 'set_near' method. + + + + + Cached name for the 'get_near' method. + + + + + Cached name for the 'set_far' method. + + + + + Cached name for the 'get_far' method. + + + + + Cached name for the 'get_fov' method. + + + + + Cached name for the 'set_auto_exposure_max_exposure_value' method. + + + + + Cached name for the 'get_auto_exposure_max_exposure_value' method. + + + + + Cached name for the 'set_auto_exposure_min_exposure_value' method. + + + + + Cached name for the 'get_auto_exposure_min_exposure_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Controls camera-specific attributes such as auto-exposure, depth of field, and exposure override. + When used in a it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own , including the editor camera. When used in a it will override any set in the . When used in or , only the exposure settings will be used. + + + + + Enables depth of field blur for objects further than . Strength of blur is controlled by and modulated by . + Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Objects further from the by this amount will be blurred by the depth of field effect. Measured in meters. + + + + + When positive, distance over which (starting from ) blur effect will scale from 0 to . When negative, uses physically-based scaling so depth of field effect will scale from 0 at and will increase in a physically accurate way as objects get further from the . + + + + + Enables depth of field blur for objects closer than . Strength of blur is controlled by and modulated by . + Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Objects closer from the by this amount will be blurred by the depth of field effect. Measured in meters. + + + + + When positive, distance over which blur effect will scale from 0 to , ending at . When negative, uses physically-based scaling so depth of field effect will scale from 0 at and will increase in a physically accurate way as objects get closer to the . + + + + + Sets the maximum amount of blur. When using physically-based blur amounts, will instead act as a multiplier. High values lead to an increased amount of blurriness, but can be much more expensive to calculate. It is best to keep this as low as possible for a given art style. + + + + + The minimum sensitivity (in ISO) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing above a certain brightness, resulting in a cut off point where the scene will remain dark. + + + + + The maximum sensitivity (in ISO) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing below a certain brightness, resulting in a cut off point where the scene will remain bright. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'dof_blur_far_enabled' property. + + + + + Cached name for the 'dof_blur_far_distance' property. + + + + + Cached name for the 'dof_blur_far_transition' property. + + + + + Cached name for the 'dof_blur_near_enabled' property. + + + + + Cached name for the 'dof_blur_near_distance' property. + + + + + Cached name for the 'dof_blur_near_transition' property. + + + + + Cached name for the 'dof_blur_amount' property. + + + + + Cached name for the 'auto_exposure_min_sensitivity' property. + + + + + Cached name for the 'auto_exposure_max_sensitivity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_dof_blur_far_enabled' method. + + + + + Cached name for the 'is_dof_blur_far_enabled' method. + + + + + Cached name for the 'set_dof_blur_far_distance' method. + + + + + Cached name for the 'get_dof_blur_far_distance' method. + + + + + Cached name for the 'set_dof_blur_far_transition' method. + + + + + Cached name for the 'get_dof_blur_far_transition' method. + + + + + Cached name for the 'set_dof_blur_near_enabled' method. + + + + + Cached name for the 'is_dof_blur_near_enabled' method. + + + + + Cached name for the 'set_dof_blur_near_distance' method. + + + + + Cached name for the 'get_dof_blur_near_distance' method. + + + + + Cached name for the 'set_dof_blur_near_transition' method. + + + + + Cached name for the 'get_dof_blur_near_transition' method. + + + + + Cached name for the 'set_dof_blur_amount' method. + + + + + Cached name for the 'get_dof_blur_amount' method. + + + + + Cached name for the 'set_auto_exposure_max_sensitivity' method. + + + + + Cached name for the 'get_auto_exposure_max_sensitivity' method. + + + + + Cached name for the 'set_auto_exposure_min_sensitivity' method. + + + + + Cached name for the 'get_auto_exposure_min_sensitivity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + Note: Many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background. + Note: This class is currently only implemented on Linux, macOS, and iOS. On other platforms no s will be available. To get a on iOS, the camera plugin from godot-ios-plugins is required. + + + + + No image set for the feed. + + + + + Feed supplies RGB images. + + + + + Feed supplies YCbCr images that need to be converted to RGB. + + + + + Feed supplies separate Y and CbCr images that need to be combined and converted to RGB. + + + + + Feed supplies external image. + + + + + Unspecified position. + + + + + Camera is mounted at the front of the device. + + + + + Camera is mounted at the back of the device. + + + + + If , the feed is active. + + + + + The transform applied to the camera's image. + + + + + Formats supported by the feed. Each entry is a describing format parameters. + + + + + Called when the camera feed is activated. + + + + + Called when the camera feed is deactivated. + + + + + Returns the unique ID for this feed. + + + + + Returns the camera's name. + + + + + Sets the camera's name. + + + + + Returns the position of camera on the device. + + + + + Sets the position of this camera. + + + + + Sets RGB image for this feed. + + + + + Sets YCbCr image for this feed. + + + + + Sets the feed as external feed provided by another library. + + + + + Returns the texture backend ID (usable by some external libraries that need a handle to a texture to write data). + + + + + Returns feed image data type. + + + + + Sets the feed format parameters for the given index in the array. Returns on success. By default YUYV encoded stream is transformed to FEED_RGB. YUYV encoded stream output format can be changed with .output value: + separate will result in FEED_YCBCR_SEP + grayscale will result in desaturated FEED_RGB + copy will result in FEED_YCBCR + + + + + Emitted when a new frame is available. + + + + + Emitted when the format has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'feed_is_active' property. + + + + + Cached name for the 'feed_transform' property. + + + + + Cached name for the 'formats' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_activate_feed' method. + + + + + Cached name for the '_deactivate_feed' method. + + + + + Cached name for the 'get_id' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'set_rgb_image' method. + + + + + Cached name for the 'set_ycbcr_image' method. + + + + + Cached name for the 'set_external' method. + + + + + Cached name for the 'get_texture_tex_id' method. + + + + + Cached name for the 'get_datatype' method. + + + + + Cached name for the 'get_formats' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'format_changed' signal. + + + + + The keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone. + It is notably used to provide AR modules with a video feed from the camera. + Note: This class is currently only implemented on Linux, macOS, and iOS. On other platforms no s will be available. To get a on iOS, the camera plugin from godot-ios-plugins is required. + + + + + The RGBA camera image. + + + + + The YCbCr camera image. + + + + + The Y component camera image. + + + + + The CbCr component camera image. + + + + + Returns the corresponding to the camera with the given . + + + + + Returns the number of s registered. + + + + + Returns an array of s. + + + + + Adds the camera to the camera server. + + + + + Removes the specified camera . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is added (e.g. a webcam is plugged in). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is removed (e.g. a webcam is unplugged). + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_feed' method. + + + + + Cached name for the 'get_feed_count' method. + + + + + Cached name for the 'feeds' method. + + + + + Cached name for the 'add_feed' method. + + + + + Cached name for the 'remove_feed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'camera_feed_added' signal. + + + + + Cached name for the 'camera_feed_removed' signal. + + + + + The keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone. + It is notably used to provide AR modules with a video feed from the camera. + Note: This class is currently only implemented on Linux, macOS, and iOS. On other platforms no s will be available. To get a on iOS, the camera plugin from godot-ios-plugins is required. + + + + + Returns the corresponding to the camera with the given . + + + + + Returns the number of s registered. + + + + + Returns an array of s. + + + + + Adds the camera to the camera server. + + + + + Removes the specified camera . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is added (e.g. a webcam is plugged in). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is removed (e.g. a webcam is unplugged). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_feed' method. + + + + + Cached name for the 'get_feed_count' method. + + + + + Cached name for the 'feeds' method. + + + + + Cached name for the 'add_feed' method. + + + + + Cached name for the 'remove_feed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'camera_feed_added' signal. + + + + + Cached name for the 'camera_feed_removed' signal. + + + + + This texture gives access to the camera texture provided by a . + Note: Many cameras supply YCbCr images which need to be converted in a shader. + + + + + The ID of the for which we want to display the image. + + + + + Which image within the we want access to, important if the camera image is split in a Y and CbCr component. + + + + + Convenience property that gives access to the active property of the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'camera_feed_id' property. + + + + + Cached name for the 'which_feed' property. + + + + + Cached name for the 'camera_is_active' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_camera_feed_id' method. + + + + + Cached name for the 'get_camera_feed_id' method. + + + + + Cached name for the 'set_which_feed' method. + + + + + Cached name for the 'get_which_feed' method. + + + + + Cached name for the 'set_camera_active' method. + + + + + Cached name for the 'get_camera_active' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Child nodes of a are drawn as a single object. It allows to e.g. draw overlapping translucent 2D nodes without blending (set property of to achieve this effect). + Note: The uses a custom shader to read from the backbuffer to draw its children. Assigning a to the overrides the builtin shader. To duplicate the behavior of the builtin shader in a custom use the following: + + shader_type canvas_item; + render_mode unshaded; + + uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest; + + void fragment() { + vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0); + + if (c.a > 0.0001) { + c.rgb /= c.a; + } + + COLOR *= c; + } + + Note: Since and both utilize the backbuffer, children of a who have their set to anything other than will not function correctly. + + + + + Sets the size of a margin used to expand the drawable rect of this . The size of the is determined by fitting a rect around its children then expanding that rect by . This increases both the backbuffer area used and the area covered by the both of which can reduce performance. This should be kept as small as possible and should only be expanded when an increased size is needed (e.g. for custom shader effects). + + + + + Sets the size of the margin used to expand the clearing rect of this . This expands the area of the backbuffer that will be used by the . A smaller margin will reduce the area of the backbuffer used which can increase performance, however if is enabled, a small margin may result in mipmap errors at the edge of the . Accordingly, this should be left as small as possible, but should be increased if artifacts appear along the edges of the canvas group. + + + + + If , calculates mipmaps for the backbuffer before drawing the so that mipmaps can be used in a custom attached to the . Generating mipmaps has a performance cost so this should not be enabled unless required. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fit_margin' property. + + + + + Cached name for the 'clear_margin' property. + + + + + Cached name for the 'use_mipmaps' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fit_margin' method. + + + + + Cached name for the 'get_fit_margin' method. + + + + + Cached name for the 'set_clear_margin' method. + + + + + Cached name for the 'get_clear_margin' method. + + + + + Cached name for the 'set_use_mipmaps' method. + + + + + Cached name for the 'is_using_mipmaps' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for everything in 2D space. Canvas items are laid out in a tree; children inherit and extend their parent's transform. is extended by for GUI-related nodes, and by for 2D game objects. + Any can draw. For this, is called by the engine, then 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 are provided (see draw_* functions). However, they can only be used inside , its corresponding or methods connected to the signal. + Canvas items are drawn in tree order on their canvas layer. By default, children are on top of their parents, so a root will be drawn behind everything. This behavior can be changed on a per-item basis. + A can be hidden, which will also hide its children. By adjusting various other properties of a , you can also modulate its color (via or ), change its Z-index, blend mode, and more. + Note that properties like transform, modulation, and visibility are only propagated to direct child nodes. If there is a non- node in between, like or , the nodes below will have an independent position and chain. See also . + + + + + The 's global transform has changed. This notification is only received if enabled by . + + + + + The 's local transform has changed. This notification is only received if enabled by . + + + + + The is requested to draw (see ). + + + + + The 's visibility has changed. + + + + + The has entered the canvas. + + + + + The has exited the canvas. + + + + + The 's active changed. + + + + + The will inherit the filter from its parent. + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + Represents the size of the enum. + + + + + The will inherit the filter from its parent. + + + + + Texture will not repeat. + + + + + Texture will repeat normally. + + + + + Texture will repeat in a 2×2 tiled mode, where elements at even positions are mirrored. + + + + + Represents the size of the enum. + + + + + Child draws over parent and is not clipped. + + + + + Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn. + + + + + Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area. + + + + + Represents the size of the enum. + + + + + If , this may be drawn. Whether this is actually drawn depends on the visibility of all of its ancestors. In other words: this will be drawn when returns and all ancestors share at least one with this . + Note: For controls that inherit , the correct way to make them visible is to call one of the multiple popup*() functions instead. + + + + + The color applied to this . This property does affect child s, unlike which only affects the node itself. + + + + + The color applied to this . This property does not affect child s, unlike which affects both the node itself and its children. + Note: Internal children (e.g. sliders in or tab bar in ) are also not affected by this property (see include_internal parameter of and other similar methods). + + + + + If , the object draws behind its parent. + + + + + If , this will not inherit its transform from parent s. Its draw order will also be changed to make it draw on top of other s that do not have set to . The will effectively act as if it was placed as a child of a bare . + + + + + Allows the current node to clip child nodes, essentially acting as a mask. + Note: Clipping nodes cannot be nested or placed within s. If an ancestor of this node clips its children or is a , then this node's clip mode should be set to to avoid unexpected behavior. + + + + + The rendering layers in which this responds to nodes. + + + + + The rendering layer in which this is rendered by nodes. A will render a if it and all its parents share a layer with the 's canvas cull mask. + + + + + Controls the order in which the nodes render. A node with a higher Z index will display in front of others. Must be between and (inclusive). + Note: Changing the Z index of a only affects the drawing order, not the order in which input events are handled. This can be useful to implement certain UI animations, e.g. a menu where hovered items are scaled and should overlap others. + + + + + If , the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5. + + + + + If , this and child nodes with a higher Y position are rendered in front of nodes with a lower Y position. If , this and child nodes are rendered normally in scene tree order. + With Y-sorting enabled on a parent node ('A') but disabled on a child node ('B'), the child node ('B') is sorted but its children ('C1', 'C2', etc.) render together on the same Y position as the child node ('B'). This allows you to organize the render order of a scene without changing the scene tree. + Nodes sort relative to each other only if they are on the same . + + + + + The texture filtering mode to use on this . + + + + + The texture repeating mode to use on this . + + + + + The material applied to this . + + + + + If , the parent 's property is used as this one's material. + + + + + Called when has been requested to redraw (after is called, either manually or by the engine). + Corresponds to the notification in . + + + + + Returns the canvas item RID used by for this item. + + + + + Returns if the node is present in the , its property is and all its ancestors are also visible. If any ancestor is hidden, this node will not be visible in the scene tree, and is therefore not drawn (see ). + Visibility is checked only in parent nodes that inherit from , , and . If the parent is of any other type (such as , , or ), it is assumed to be visible. + Note: This method does not take into account, so even if this method returns the node might end up not being rendered. + + + + + Show the if it's currently hidden. This is equivalent to setting to . For controls that inherit , the correct way to make them visible is to call one of the multiple popup*() functions instead. + + + + + Hide the if it's currently visible. This is equivalent to setting to . + + + + + Queues the to redraw. During idle time, if is visible, is sent and is called. This only occurs once per frame, even if this method has been called multiple times. + + + + + Moves this node to display on top of its siblings. + Internally, the node is moved to the bottom of parent's child list. The method has no effect on nodes without a parent. + + + + + Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also and . + If is negative, then a two-point primitive will be drawn instead of a four-point one. This means that when the CanvasItem is scaled, the line will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws a dashed line from a 2D point to another, with a given color and width. See also and . + If is negative, then a two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the line parts will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is greater than 0.0. + + + + + Draws interconnected line segments with a uniform and and optional antialiasing (supported only for positive ). When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws interconnected line segments with a uniform and and optional antialiasing (supported only for positive ). When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws interconnected line segments with a uniform , point-by-point coloring, and optional antialiasing (supported only for positive ). Colors assigned to line points match by index between and , i.e. each line segment is filled with a gradient between the colors of the endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws interconnected line segments with a uniform , point-by-point coloring, and optional antialiasing (supported only for positive ). Colors assigned to line points match by index between and , i.e. each line segment is filled with a gradient between the colors of the endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws an unfilled arc between the given angles with a uniform and and optional antialiasing (supported only for positive ). The larger the value of , the smoother the curve. See also . + If is negative, it will be ignored and the arc will be drawn using . This means that when the CanvasItem is scaled, the arc will remain thin. If this behavior is not desired, then pass a positive like 1.0. + The arc is drawn from towards the value of so in clockwise direction if start_angle < end_angle and counter-clockwise otherwise. Passing the same angles but in reversed order will produce the same arc. If absolute difference of and is greater than @GDScript.TAU radians, then a full circle arc is drawn (i.e. arc will not overlap itself). + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws a rectangle. If is , the rectangle will be filled with the specified. If is , the rectangle will be drawn as a stroke with the and specified. See also . + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + Note: Unfilled rectangles drawn with a negative may not display perfectly. For example, corners may be missing or brighter due to overlapping lines (for a translucent ). + + + + + Draws a circle. See also , , and . + If is , the circle will be filled with the specified. If is , the circle will be drawn as a stroke with the and specified. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + + + + + Draws a texture at a given position. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle at a given position, optionally modulated by a color. If is , the texture will have its X and Y coordinates swapped. See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle from a texture's region (specified by ) at a given position, optionally modulated by a color. If is , the texture will have its X and Y coordinates swapped. See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See for more information and caveats about MSDF font rendering. + If is positive, each alpha channel value of pixel in region is set to maximum value of true distance in the radius. + Value of the should the same that was used during distance field texture generation. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle region of the font texture with LCD subpixel anti-aliasing at a given position, optionally modulated by a color. + Texture is drawn using the following blend operation, blend mode of the is ignored: + + dst.r = texture.r * modulate.r * modulate.a + dst.r * (1.0 - texture.r * modulate.a); + dst.g = texture.g * modulate.g * modulate.a + dst.g * (1.0 - texture.g * modulate.a); + dst.b = texture.b * modulate.b * modulate.a + dst.b * (1.0 - texture.b * modulate.a); + dst.a = modulate.a + dst.a * (1.0 - modulate.a); + + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a styled rectangle. + + + + + Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. See also , , , and . + + + + + Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. See also , , , and . + + + + + Draws a solid polygon of any number of points, convex or concave. Unlike , each point's color can be changed individually. See also and . If you need more flexibility (such as being able to use bones), use instead. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a solid polygon of any number of points, convex or concave. Unlike , each point's color can be changed individually. See also and . If you need more flexibility (such as being able to use bones), use instead. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws a colored polygon of any number of points, convex or concave. Unlike , a single color must be specified for the whole polygon. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a colored polygon of any number of points, convex or concave. Unlike , a single color must be specified for the whole polygon. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws using the specified at the (bottom-left corner using the baseline of the font). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + Example: Draw "Hello world", using the project's default font: + + // If using this method in a script that redraws constantly, move the + // `default_font` declaration to a member variable assigned in `_Ready()` + // so the Control is only created once. + Font defaultFont = ThemeDB.FallbackFont; + int defaultFontSize = ThemeDB.FallbackFontSize; + DrawString(defaultFont, new Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize); + + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks into lines and draws it using the specified at the (top-left corner). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws outline using the specified at the (bottom-left corner using the baseline of the font). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks to the lines and draws text outline using the specified at the (top-left corner). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a string first character using a custom font. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a string first character outline using a custom font. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a in 2D, using the provided texture. See for related documentation. + + If the parameter is null, then the default value is Transform2D.Identity. + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a in 2D with the provided texture. See for related documentation. + + + + + Sets a custom transform for drawing via components. Anything drawn afterwards will be transformed by this. + Note: does not take into account. This means that scaling up/down will cause bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated. To ensure text remains crisp regardless of scale, you can enable MSDF font rendering by enabling ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (applies to the default project font only), or enabling Multichannel Signed Distance Field in the import options of a DynamicFont for custom fonts. On system fonts, can be enabled in the inspector. + + If the parameter is null, then the default value is new Vector2(1.0f, 1.0f). + + + + Sets a custom transform for drawing via matrix. Anything drawn afterwards will be transformed by this. + + + + + Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly. + + + + + After submitting all animations slices via , this function can be used to revert drawing to its default state (all subsequent drawing commands will be visible). If you don't care about this particular use case, usage of this function after submitting the slices is not required. + + + + + Returns the transform matrix of this item. + + + + + Returns the global transform matrix of this item, i.e. the combined transform up to the topmost node. The topmost item is a that either has no parent, has non- parent or it has enabled. + + + + + Returns the transform from the local coordinate system of this to the s coordinate system. + + + + + Returns the transform from the coordinate system of the canvas, this item is in, to the s embedders coordinate system. + + + + + Returns the viewport's boundaries as a . + + + + + Returns the transform from the coordinate system of the canvas, this item is in, to the s coordinate system. + + + + + Returns the transform of this in global screen coordinates (i.e. taking window position into account). Mostly useful for editor plugins. + Equals to if the window is embedded (see ). + + + + + Returns the mouse's position in this using the local coordinate system of this . + + + + + Returns the mouse's position in the that this is in using the coordinate system of the . + Note: For screen-space coordinates (e.g. when using a non-embedded ), you can use . + + + + + Returns the of the canvas where this item is in. + + + + + Returns the that contains this node, or if the node is not in any . + + + + + Returns the where this item is in. + + + + + If is , this node will receive when its local transform changes. + + + + + Returns if local transform notifications are communicated to children. + + + + + If is , this node will receive when its global transform changes. + + + + + Returns if global transform notifications are communicated to children. + + + + + Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. + + + + + Transforms from the viewport's coordinates to this node's local coordinates. + For the opposite operation, use . + + var viewport_point = get_global_transform_with_canvas() * local_point + + + + + + Transformations issued by 's inputs are applied in local space instead of global space. + + + + + Set/clear individual bits on the rendering visibility layer. This simplifies editing this 's visibility layer. + + + + + Returns an individual bit on the rendering visibility layer. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws a dashed line from a 2D point to another, with a given color and width. See also and . + If is negative, then a two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the line parts will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is greater than 0.0. + + + + + Draws a rectangle. If is , the rectangle will be filled with the specified. If is , the rectangle will be drawn as a stroke with the and specified. See also . + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + Note: Unfilled rectangles drawn with a negative may not display perfectly. For example, corners may be missing or brighter due to overlapping lines (for a translucent ). + + + + + Draws a circle. See also , , and . + If is , the circle will be filled with the specified. If is , the circle will be drawn as a stroke with the and specified. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + + + + + Emitted when the must redraw, after the related notification, and before is called. + Note: Deferred connections do not allow drawing through the draw_* methods. + + + + + Emitted when the 's visibility changes, either because its own property changed or because its visibility in the tree changed (see ). + + + + + Emitted when the is hidden, i.e. it's no longer visible in the tree (see ). + + + + + Emitted when the 's boundaries (position or size) change, or when an action took place that may have affected these boundaries (e.g. changing ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'self_modulate' property. + + + + + Cached name for the 'show_behind_parent' property. + + + + + Cached name for the 'top_level' property. + + + + + Cached name for the 'clip_children' property. + + + + + Cached name for the 'light_mask' property. + + + + + Cached name for the 'visibility_layer' property. + + + + + Cached name for the 'z_index' property. + + + + + Cached name for the 'z_as_relative' property. + + + + + Cached name for the 'y_sort_enabled' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached name for the 'material' property. + + + + + Cached name for the 'use_parent_material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw' method. + + + + + Cached name for the 'get_canvas_item' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'is_visible_in_tree' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'queue_redraw' method. + + + + + Cached name for the 'move_to_front' method. + + + + + Cached name for the 'set_as_top_level' method. + + + + + Cached name for the 'is_set_as_top_level' method. + + + + + Cached name for the 'set_light_mask' method. + + + + + Cached name for the 'get_light_mask' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_self_modulate' method. + + + + + Cached name for the 'get_self_modulate' method. + + + + + Cached name for the 'set_z_index' method. + + + + + Cached name for the 'get_z_index' method. + + + + + Cached name for the 'set_z_as_relative' method. + + + + + Cached name for the 'is_z_relative' method. + + + + + Cached name for the 'set_y_sort_enabled' method. + + + + + Cached name for the 'is_y_sort_enabled' method. + + + + + Cached name for the 'set_draw_behind_parent' method. + + + + + Cached name for the 'is_draw_behind_parent_enabled' method. + + + + + Cached name for the 'draw_line' method. + + + + + Cached name for the 'draw_dashed_line' method. + + + + + Cached name for the 'draw_polyline' method. + + + + + Cached name for the 'draw_polyline_colors' method. + + + + + Cached name for the 'draw_arc' method. + + + + + Cached name for the 'draw_multiline' method. + + + + + Cached name for the 'draw_multiline_colors' method. + + + + + Cached name for the 'draw_rect' method. + + + + + Cached name for the 'draw_circle' method. + + + + + Cached name for the 'draw_texture' method. + + + + + Cached name for the 'draw_texture_rect' method. + + + + + Cached name for the 'draw_texture_rect_region' method. + + + + + Cached name for the 'draw_msdf_texture_rect_region' method. + + + + + Cached name for the 'draw_lcd_texture_rect_region' method. + + + + + Cached name for the 'draw_style_box' method. + + + + + Cached name for the 'draw_primitive' method. + + + + + Cached name for the 'draw_polygon' method. + + + + + Cached name for the 'draw_colored_polygon' method. + + + + + Cached name for the 'draw_string' method. + + + + + Cached name for the 'draw_multiline_string' method. + + + + + Cached name for the 'draw_string_outline' method. + + + + + Cached name for the 'draw_multiline_string_outline' method. + + + + + Cached name for the 'draw_char' method. + + + + + Cached name for the 'draw_char_outline' method. + + + + + Cached name for the 'draw_mesh' method. + + + + + Cached name for the 'draw_multimesh' method. + + + + + Cached name for the 'draw_set_transform' method. + + + + + Cached name for the 'draw_set_transform_matrix' method. + + + + + Cached name for the 'draw_animation_slice' method. + + + + + Cached name for the 'draw_end_animation' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_global_transform' method. + + + + + Cached name for the 'get_global_transform_with_canvas' method. + + + + + Cached name for the 'get_viewport_transform' method. + + + + + Cached name for the 'get_viewport_rect' method. + + + + + Cached name for the 'get_canvas_transform' method. + + + + + Cached name for the 'get_screen_transform' method. + + + + + Cached name for the 'get_local_mouse_position' method. + + + + + Cached name for the 'get_global_mouse_position' method. + + + + + Cached name for the 'get_canvas' method. + + + + + Cached name for the 'get_canvas_layer_node' method. + + + + + Cached name for the 'get_world_2d' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_use_parent_material' method. + + + + + Cached name for the 'get_use_parent_material' method. + + + + + Cached name for the 'set_notify_local_transform' method. + + + + + Cached name for the 'is_local_transform_notification_enabled' method. + + + + + Cached name for the 'set_notify_transform' method. + + + + + Cached name for the 'is_transform_notification_enabled' method. + + + + + Cached name for the 'force_update_transform' method. + + + + + Cached name for the 'make_canvas_position_local' method. + + + + + Cached name for the 'make_input_local' method. + + + + + Cached name for the 'set_visibility_layer' method. + + + + + Cached name for the 'get_visibility_layer' method. + + + + + Cached name for the 'set_visibility_layer_bit' method. + + + + + Cached name for the 'get_visibility_layer_bit' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_texture_repeat' method. + + + + + Cached name for the 'get_texture_repeat' method. + + + + + Cached name for the 'set_clip_children_mode' method. + + + + + Cached name for the 'get_clip_children_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'draw' signal. + + + + + Cached name for the 'visibility_changed' signal. + + + + + Cached name for the 'hidden' signal. + + + + + Cached name for the 'item_rect_changed' signal. + + + + + s provide a means of modifying the textures associated with a CanvasItem. They specialize in describing blend and lighting behaviors for textures. Use a to more fully customize a material's interactions with a . + + + + + Mix blending mode. Colors are assumed to be independent of the alpha (opacity) value. + + + + + Additive blending mode. + + + + + Subtractive blending mode. + + + + + Multiplicative blending mode. + + + + + Mix blending mode. Colors are assumed to be premultiplied by the alpha (opacity) value. + + + + + Render the material using both light and non-light sensitive material properties. + + + + + Render the material as if there were no light. + + + + + Render the material as if there were only light. + + + + + The manner in which a material's rendering is applied to underlying textures. + + + + + The manner in which material reacts to lighting. + + + + + If , enable spritesheet-based animation features when assigned to and nodes. The or should also be set to a positive value for the animation to play. + This property (and other particles_anim_* properties that depend on it) has no effect on other types of nodes. + + + + + The number of columns in the spritesheet assigned as for a or . + Note: This property is only used and visible in the editor if is . + + + + + The number of rows in the spritesheet assigned as for a or . + Note: This property is only used and visible in the editor if is . + + + + + If , the particles animation will loop. + Note: This property is only used and visible in the editor if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'light_mode' property. + + + + + Cached name for the 'particles_animation' property. + + + + + Cached name for the 'particles_anim_h_frames' property. + + + + + Cached name for the 'particles_anim_v_frames' property. + + + + + Cached name for the 'particles_anim_loop' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_light_mode' method. + + + + + Cached name for the 'get_light_mode' method. + + + + + Cached name for the 'set_particles_animation' method. + + + + + Cached name for the 'get_particles_animation' method. + + + + + Cached name for the 'set_particles_anim_h_frames' method. + + + + + Cached name for the 'get_particles_anim_h_frames' method. + + + + + Cached name for the 'set_particles_anim_v_frames' method. + + + + + Cached name for the 'get_particles_anim_v_frames' method. + + + + + Cached name for the 'set_particles_anim_loop' method. + + + + + Cached name for the 'get_particles_anim_loop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + -derived nodes that are direct or indirect children of a will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a with index -1 will be drawn below, and a with index 1 will be drawn above. This order will hold regardless of the of the nodes within each layer. + s can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers 1 and higher) or backgrounds (on layers -1 and lower). + Note: Embedded s are placed on layer 1024. s on layers 1025 and higher appear in front of embedded windows. + Note: Each is drawn on one specific and cannot be shared between multiple s, see . When using multiple s, for example in a split-screen game, you need create an individual for each you want it to be drawn on. + + + + + Layer index for draw order. Lower values are drawn behind higher values. + Note: If multiple CanvasLayers have the same layer index, children of one CanvasLayer are drawn behind the children of the other CanvasLayer. Which CanvasLayer is drawn in front is non-deterministic. + + + + + If , any under this will be hidden. + Unlike , visibility of a isn't propagated to underlying layers. + + + + + The layer's base offset. + + + + + The layer's rotation in radians. + + + + + The layer's scale. + + + + + The layer's transform. + + + + + The custom node assigned to the . If , uses the default viewport instead. + + + + + If enabled, the stays in a fixed position on the screen. If disabled, the maintains its position in world space. + Together with , this can be used for a pseudo-3D effect. + + + + + Scales the layer when using . Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales. + + + + + Shows any under this . This is equivalent to setting to . + + + + + Hides any under this . This is equivalent to setting to . + + + + + Returns the transform from the s coordinate system to the s coordinate system. + + + + + Returns the RID of the canvas used by this layer. + + + + + Emitted when visibility of the layer is changed. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'layer' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'custom_viewport' property. + + + + + Cached name for the 'follow_viewport_enabled' property. + + + + + Cached name for the 'follow_viewport_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_layer' method. + + + + + Cached name for the 'get_layer' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_final_transform' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'set_follow_viewport' method. + + + + + Cached name for the 'is_following_viewport' method. + + + + + Cached name for the 'set_follow_viewport_scale' method. + + + + + Cached name for the 'get_follow_viewport_scale' method. + + + + + Cached name for the 'set_custom_viewport' method. + + + + + Cached name for the 'get_custom_viewport' method. + + + + + Cached name for the 'get_canvas' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'visibility_changed' signal. + + + + + applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but s can be used to render things independently. + + + + + The tint color to apply. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an alternative to for 2D rendering. It allows using normal maps and specular maps in any node that inherits from . also allows overriding the texture's filter and repeat mode independently of the node's properties (or the project settings). + Note: cannot be used in 3D. It will not display correctly when applied to any , such as or . For physically-based materials in 3D, use instead. + + + + + The diffuse (color) texture to use. This is the main texture you want to set in most cases. + + + + + The normal map texture to use. Only has a visible effect if s are affecting this . + Note: Godot expects the normal map to use X+, Y+, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines. + + + + + The specular map to use for specular reflections. This should be a grayscale or colored texture, with brighter areas resulting in a higher value. Using a colored allows controlling specular shininess on a per-channel basis. Only has a visible effect if s are affecting this . + + + + + The multiplier for specular reflection colors. The 's color is also taken into account when determining the reflection color. Only has a visible effect if s are affecting this . + + + + + The specular exponent for specular reflections. Higher values result in a more glossy/"wet" look, with reflections becoming more localized and less visible overall. The default value of 1.0 disables specular reflections entirely. Only has a visible effect if s are affecting this . + + + + + The texture filtering mode to use when drawing this . + + + + + The texture repeat mode to use when drawing this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'diffuse_texture' property. + + + + + Cached name for the 'normal_texture' property. + + + + + Cached name for the 'specular_texture' property. + + + + + Cached name for the 'specular_color' property. + + + + + Cached name for the 'specular_shininess' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_diffuse_texture' method. + + + + + Cached name for the 'get_diffuse_texture' method. + + + + + Cached name for the 'set_normal_texture' method. + + + + + Cached name for the 'get_normal_texture' method. + + + + + Cached name for the 'set_specular_texture' method. + + + + + Cached name for the 'get_specular_texture' method. + + + + + Cached name for the 'set_specular_color' method. + + + + + Cached name for the 'get_specular_color' method. + + + + + Cached name for the 'set_specular_shininess' method. + + + + + Cached name for the 'get_specular_shininess' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_texture_repeat' method. + + + + + Cached name for the 'get_texture_repeat' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a capsule-shaped . + + + + + Radius of the capsule mesh. + + + + + Total height of the capsule mesh (including the hemispherical ends). + + + + + Number of radial segments on the capsule mesh. + + + + + Number of rings along the height of the capsule. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D capsule shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against, but it is slower than and . + + + + + The capsule's radius. + + + + + The capsule's height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D capsule shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than , but slower than and . + + + + + The capsule's radius. + + + + + The capsule's height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a container that keeps all of its child controls in its center at their minimum size. + + + + + If , centers children relative to the 's top left corner. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'use_top_left' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_use_top_left' method. + + + + + Cached name for the 'is_using_top_left' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By setting various properties on this object, you can control how individual characters will be displayed in a . + + + + + The current transform of the current glyph. It can be overridden (for example, by driving the position and rotation from a curve). You can also alter the existing value to apply transforms on top of other effects. + + + + + Absolute character range in the string, corresponding to the glyph. Setting this property won't affect drawing. + + + + + The time elapsed since the was added to the scene tree (in seconds). Time stops when the is paused (see ). Resets when the text in the is changed. + Note: Time still passes while the is hidden. + + + + + If , the character will be drawn. If , the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their to Color(1, 1, 1, 0) instead. + + + + + If , FX transform is called for outline drawing. Setting this property won't affect drawing. + + + + + The position offset the character will be drawn with (in pixels). + + + + + The color the character will be drawn with. + + + + + Contains the arguments passed in the opening BBCode tag. By default, arguments are strings; if their contents match a type such as , or , they will be converted automatically. Color codes in the form #rrggbb or #rgb will be converted to an opaque . String arguments may not contain spaces, even if they're quoted. If present, quotes will also be present in the final string. + For example, the opening BBCode tag [example foo=hello bar=true baz=42 color=#ffffff] will map to the following : + + {"foo": "hello", "bar": true, "baz": 42, "color": Color(1, 1, 1, 1)} + + + + + + Font specific glyph index. + + + + + Number of glyphs in the grapheme cluster. This value is set in the first glyph of a cluster. Setting this property won't affect drawing. + + + + + Glyph flags. See for more info. Setting this property won't affect drawing. + + + + + The character offset of the glyph, relative to the current custom block. Setting this property won't affect drawing. + + + + + Font resource used to render glyph. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'range' property. + + + + + Cached name for the 'elapsed_time' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'outline' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'env' property. + + + + + Cached name for the 'glyph_index' property. + + + + + Cached name for the 'glyph_count' property. + + + + + Cached name for the 'glyph_flags' property. + + + + + Cached name for the 'relative_index' property. + + + + + Cached name for the 'font' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_range' method. + + + + + Cached name for the 'set_range' method. + + + + + Cached name for the 'get_elapsed_time' method. + + + + + Cached name for the 'set_elapsed_time' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'set_visibility' method. + + + + + Cached name for the 'is_outline' method. + + + + + Cached name for the 'set_outline' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_glyph_index' method. + + + + + Cached name for the 'set_glyph_index' method. + + + + + Cached name for the 'get_relative_index' method. + + + + + Cached name for the 'set_relative_index' method. + + + + + Cached name for the 'get_glyph_count' method. + + + + + Cached name for the 'set_glyph_count' method. + + + + + Cached name for the 'get_glyph_flags' method. + + + + + Cached name for the 'set_glyph_flags' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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) in addition to the general collision detection provided by . 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, is simpler to configure. + + + + + 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. + + + + + Apply when there is no notion of floor or ceiling. All collisions will be reported as on_wall. In this mode, when you slide, the speed will always be constant. This mode is suitable for top-down games. + + + + + Add the last platform velocity to the when you leave a moving platform. + + + + + Add the last platform velocity to the 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. + + + + + Do nothing when leaving a platform. + + + + + Sets the motion mode which defines the behavior of . See constants for available modes. + + + + + Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling . Defaults to Vector2.UP. As the vector will be normalized it can't be equal to Vector2.ZERO, if you want all collisions to be reported as walls, consider using as . + + + + + Current velocity vector in pixels per second, used and modified during calls to . + + + + + If , during a jump against the ceiling, the body will slide, if it will be stopped and will fall vertically. + + + + + Maximum number of times the body can change direction before it stops when calling . + + + + + Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. This property only affects movement when is . + + + + + If , the body will not slide on slopes when calling when the body is standing still. + If , the body will slide on floor's slopes when applies a downward force. + + + + + If (by default), the body will move faster on downward slopes and slower on upward slopes. + If , the body will always move at the same speed on the ground no matter the slope. Note that you need to use to stick along a downward slope at constant speed. + + + + + If , the body will be able to move on the floor only. This option avoids to be able to walk on walls, it will however allow to slide down along them. + + + + + Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling . The default value equals 45 degrees. + + + + + Sets a snapping distance. When set to a value different from 0.0, the body is kept attached to slopes when calling . The snapping vector is determined by the given distance along the opposite direction of the . + As long as the snapping vector is in contact with the ground and the body moves against , the body will remain attached to the surface. Snapping is not applied if the body moves along , meaning it contains vertical rising velocity, so it will be able to detach from the ground when jumping or when the body is pushed up by something. If you want to apply a snap without taking into account the velocity, use . + + + + + Sets the behavior to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See constants for available behavior. + + + + + Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the . By default, all floor bodies are detected and propagate their velocity. + + + + + Collision layers that will be included for detecting wall bodies that will act as moving platforms to be followed by the . By default, all wall bodies are ignored. + + + + + Extra margin used for collision recovery when calling . + If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. + A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. + A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies. + + + + + Moves the body based on . If the body collides with another, it will slide along the other body (by default only on floor) rather than stop immediately. If the other body is a or , it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. + Modifies if a slide collision occurred. To get the latest collision call , for detailed information about collisions that occurred, use . + When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions. + The general behavior and available properties change according to the . + Returns if the body collided, otherwise, returns . + + + + + Allows to manually apply a snap to the floor regardless of the body's velocity. This function does nothing when returns . + + + + + Returns if the body collided with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided only with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided only with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns if the body collided only with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns the collision normal of the floor at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the collision normal of the wall at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the last motion applied to the during the last call to . The movement can be split into multiple motions when sliding occurs, and this method return the last one, which is useful to retrieve the current direction of the movement. + + + + + Returns the travel (position delta) that occurred during the last call to . + + + + + Returns the current real velocity since the last call to . For example, when you climb a slope, you will move diagonally even though the velocity is horizontal. This method returns the diagonal movement, as opposed to which returns the requested velocity. + + + + + Returns the floor's collision angle at the last collision point according to , which is Vector2.UP by default. This value is always positive and only valid after calling and when returns . + + If the parameter is null, then the default value is new Vector2(0.0f, -1.0f). + + + + Returns the linear velocity of the platform at the last collision point. Only valid after calling . + + + + + Returns the number of times the body collided and changed direction during the last call to . + + + + + Returns a , which contains information about a collision that occurred during the last call to . Since the body can collide several times in a single call to , you must specify the index of the collision in the range 0 to ( - 1). + Example: Iterate through the collisions with a for loop: + + for (int i = 0; i < GetSlideCollisionCount(); i++) + { + KinematicCollision2D collision = GetSlideCollision(i); + GD.Print("Collided with: ", (collision.GetCollider() as Node).Name); + } + + + + + + Returns a , which contains information about the latest collision that occurred during the last call to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_mode' property. + + + + + Cached name for the 'up_direction' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'slide_on_ceiling' property. + + + + + Cached name for the 'max_slides' property. + + + + + Cached name for the 'wall_min_slide_angle' property. + + + + + Cached name for the 'floor_stop_on_slope' property. + + + + + Cached name for the 'floor_constant_speed' property. + + + + + Cached name for the 'floor_block_on_wall' property. + + + + + Cached name for the 'floor_max_angle' property. + + + + + Cached name for the 'floor_snap_length' property. + + + + + Cached name for the 'platform_on_leave' property. + + + + + Cached name for the 'platform_floor_layers' property. + + + + + Cached name for the 'platform_wall_layers' property. + + + + + Cached name for the 'safe_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_slide' method. + + + + + Cached name for the 'apply_floor_snap' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_safe_margin' method. + + + + + Cached name for the 'get_safe_margin' method. + + + + + Cached name for the 'is_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_constant_speed_enabled' method. + + + + + Cached name for the 'is_floor_constant_speed_enabled' method. + + + + + Cached name for the 'set_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'is_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'set_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'is_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'set_platform_floor_layers' method. + + + + + Cached name for the 'get_platform_floor_layers' method. + + + + + Cached name for the 'set_platform_wall_layers' method. + + + + + Cached name for the 'get_platform_wall_layers' method. + + + + + Cached name for the 'get_max_slides' method. + + + + + Cached name for the 'set_max_slides' method. + + + + + Cached name for the 'get_floor_max_angle' method. + + + + + Cached name for the 'set_floor_max_angle' method. + + + + + Cached name for the 'get_floor_snap_length' method. + + + + + Cached name for the 'set_floor_snap_length' method. + + + + + Cached name for the 'get_wall_min_slide_angle' method. + + + + + Cached name for the 'set_wall_min_slide_angle' method. + + + + + Cached name for the 'get_up_direction' method. + + + + + Cached name for the 'set_up_direction' method. + + + + + Cached name for the 'set_motion_mode' method. + + + + + Cached name for the 'get_motion_mode' method. + + + + + Cached name for the 'set_platform_on_leave' method. + + + + + Cached name for the 'get_platform_on_leave' method. + + + + + Cached name for the 'is_on_floor' method. + + + + + Cached name for the 'is_on_floor_only' method. + + + + + Cached name for the 'is_on_ceiling' method. + + + + + Cached name for the 'is_on_ceiling_only' method. + + + + + Cached name for the 'is_on_wall' method. + + + + + Cached name for the 'is_on_wall_only' method. + + + + + Cached name for the 'get_floor_normal' method. + + + + + Cached name for the 'get_wall_normal' method. + + + + + Cached name for the 'get_last_motion' method. + + + + + Cached name for the 'get_position_delta' method. + + + + + Cached name for the 'get_real_velocity' method. + + + + + Cached name for the 'get_floor_angle' method. + + + + + Cached name for the 'get_platform_velocity' method. + + + + + Cached name for the 'get_slide_collision_count' method. + + + + + Cached name for the 'get_slide_collision' method. + + + + + Cached name for the 'get_last_slide_collision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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) in addition to the general collision detection provided by . 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, is simpler to configure. + + + + + 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. + + + + + Apply when there is no notion of floor or ceiling. All collisions will be reported as on_wall. In this mode, when you slide, the speed will always be constant. This mode is suitable for games without ground like space games. + + + + + Add the last platform velocity to the when you leave a moving platform. + + + + + Add the last platform velocity to the 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. + + + + + Do nothing when leaving a platform. + + + + + Sets the motion mode which defines the behavior of . See constants for available modes. + + + + + Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling . Defaults to Vector3.UP. As the vector will be normalized it can't be equal to Vector3.ZERO, if you want all collisions to be reported as walls, consider using as . + + + + + If , during a jump against the ceiling, the body will slide, if it will be stopped and will fall vertically. + + + + + Current velocity vector (typically meters per second), used and modified during calls to . + + + + + Maximum number of times the body can change direction before it stops when calling . + + + + + Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. When is , it only affects movement if is . + + + + + If , the body will not slide on slopes when calling when the body is standing still. + If , the body will slide on floor's slopes when applies a downward force. + + + + + If (by default), the body will move faster on downward slopes and slower on upward slopes. + If , the body will always move at the same speed on the ground no matter the slope. Note that you need to use to stick along a downward slope at constant speed. + + + + + If , the body will be able to move on the floor only. This option avoids to be able to walk on walls, it will however allow to slide down along them. + + + + + Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling . The default value equals 45 degrees. + + + + + Sets a snapping distance. When set to a value different from 0.0, the body is kept attached to slopes when calling . The snapping vector is determined by the given distance along the opposite direction of the . + As long as the snapping vector is in contact with the ground and the body moves against , the body will remain attached to the surface. Snapping is not applied if the body moves along , meaning it contains vertical rising velocity, so it will be able to detach from the ground when jumping or when the body is pushed up by something. If you want to apply a snap without taking into account the velocity, use . + + + + + Sets the behavior to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See constants for available behavior. + + + + + Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the . By default, all floor bodies are detected and propagate their velocity. + + + + + Collision layers that will be included for detecting wall bodies that will act as moving platforms to be followed by the . By default, all wall bodies are ignored. + + + + + Extra margin used for collision recovery when calling . + If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. + A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. + A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies. + + + + + Moves the body based on . If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a or , it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. + Modifies if a slide collision occurred. To get the latest collision call , for more detailed information about collisions that occurred, use . + When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions. + Returns if the body collided, otherwise, returns . + + + + + Allows to manually apply a snap to the floor regardless of the body's velocity. This function does nothing when returns . + + + + + Returns if the body collided with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided only with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided only with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns if the body collided only with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns the collision normal of the floor at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the collision normal of the wall at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the last motion applied to the during the last call to . The movement can be split into multiple motions when sliding occurs, and this method return the last one, which is useful to retrieve the current direction of the movement. + + + + + Returns the travel (position delta) that occurred during the last call to . + + + + + Returns the current real velocity since the last call to . For example, when you climb a slope, you will move diagonally even though the velocity is horizontal. This method returns the diagonal movement, as opposed to which returns the requested velocity. + + + + + Returns the floor's collision angle at the last collision point according to , which is Vector3.UP by default. This value is always positive and only valid after calling and when returns . + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Returns the linear velocity of the platform at the last collision point. Only valid after calling . + + + + + Returns the angular velocity of the platform at the last collision point. Only valid after calling . + + + + + Returns the number of times the body collided and changed direction during the last call to . + + + + + Returns a , which contains information about a collision that occurred during the last call to . Since the body can collide several times in a single call to , you must specify the index of the collision in the range 0 to ( - 1). + + + + + Returns a , which contains information about the latest collision that occurred during the last call to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_mode' property. + + + + + Cached name for the 'up_direction' property. + + + + + Cached name for the 'slide_on_ceiling' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'max_slides' property. + + + + + Cached name for the 'wall_min_slide_angle' property. + + + + + Cached name for the 'floor_stop_on_slope' property. + + + + + Cached name for the 'floor_constant_speed' property. + + + + + Cached name for the 'floor_block_on_wall' property. + + + + + Cached name for the 'floor_max_angle' property. + + + + + Cached name for the 'floor_snap_length' property. + + + + + Cached name for the 'platform_on_leave' property. + + + + + Cached name for the 'platform_floor_layers' property. + + + + + Cached name for the 'platform_wall_layers' property. + + + + + Cached name for the 'safe_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_slide' method. + + + + + Cached name for the 'apply_floor_snap' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_safe_margin' method. + + + + + Cached name for the 'get_safe_margin' method. + + + + + Cached name for the 'is_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_constant_speed_enabled' method. + + + + + Cached name for the 'is_floor_constant_speed_enabled' method. + + + + + Cached name for the 'set_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'is_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'set_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'is_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'set_platform_floor_layers' method. + + + + + Cached name for the 'get_platform_floor_layers' method. + + + + + Cached name for the 'set_platform_wall_layers' method. + + + + + Cached name for the 'get_platform_wall_layers' method. + + + + + Cached name for the 'get_max_slides' method. + + + + + Cached name for the 'set_max_slides' method. + + + + + Cached name for the 'get_floor_max_angle' method. + + + + + Cached name for the 'set_floor_max_angle' method. + + + + + Cached name for the 'get_floor_snap_length' method. + + + + + Cached name for the 'set_floor_snap_length' method. + + + + + Cached name for the 'get_wall_min_slide_angle' method. + + + + + Cached name for the 'set_wall_min_slide_angle' method. + + + + + Cached name for the 'get_up_direction' method. + + + + + Cached name for the 'set_up_direction' method. + + + + + Cached name for the 'set_motion_mode' method. + + + + + Cached name for the 'get_motion_mode' method. + + + + + Cached name for the 'set_platform_on_leave' method. + + + + + Cached name for the 'get_platform_on_leave' method. + + + + + Cached name for the 'is_on_floor' method. + + + + + Cached name for the 'is_on_floor_only' method. + + + + + Cached name for the 'is_on_ceiling' method. + + + + + Cached name for the 'is_on_ceiling_only' method. + + + + + Cached name for the 'is_on_wall' method. + + + + + Cached name for the 'is_on_wall_only' method. + + + + + Cached name for the 'get_floor_normal' method. + + + + + Cached name for the 'get_wall_normal' method. + + + + + Cached name for the 'get_last_motion' method. + + + + + Cached name for the 'get_position_delta' method. + + + + + Cached name for the 'get_real_velocity' method. + + + + + Cached name for the 'get_floor_angle' method. + + + + + Cached name for the 'get_platform_velocity' method. + + + + + Cached name for the 'get_platform_angular_velocity' method. + + + + + Cached name for the 'get_slide_collision_count' method. + + + + + Cached name for the 'get_slide_collision' method. + + + + + Cached name for the 'get_last_slide_collision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows the user to choose one of only two possible options. It's similar to in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use when toggling it has no immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed. + See also which contains common properties and methods associated with this node. + When specifies a , changes its appearance to that of a radio button and uses the various radio_* theme properties. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a toggle button displayed as a check field. It's similar to in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use when toggling it has an immediate effect on something. For example, it can be used when pressing it shows or hides advanced settings, without asking the user to confirm this action. + See also which contains common properties and methods associated with this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D circle shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than and . + + + + + The circle's radius. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides access to metadata stored for every available class. + + + + + Native Core class type. + + + + + Native Editor class type. + + + + + GDExtension class type. + + + + + GDExtension Editor class type. + + + + + Unknown class type. + + + + + Returns the names of all the classes available. + + + + + Returns the names of all the classes that directly or indirectly inherit from . + + + + + Returns the parent class of . + + + + + Returns whether the specified is available or not. + + + + + Returns whether is an ancestor of or not. + + + + + Returns if objects can be instantiated from the specified , otherwise returns . + + + + + Creates an instance of . + + + + + Returns the API type of . See . + + + + + Returns whether or its ancestry has a signal called or not. + + + + + Returns the data of or its ancestry. The returned value is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + + + + + Returns an array with all the signals of or its ancestry if is . Every element of the array is a as described in . + + + + + Returns an array with all the properties of or its ancestry if is . + + + + + Returns the getter method name of of . + + + + + Returns the setter method name of of . + + + + + Returns the value of of or its ancestry. + + + + + Sets value of to . + + + + + Returns the default value of of or its ancestor classes. + + + + + Returns whether (or its ancestry if is ) has a method called or not. + + + + + Returns the number of arguments of the method of or its ancestry if is . + + + + + Returns an array with all the methods of or its ancestry if is . Every element of the array is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + Note: In exported release builds the debug info is not available, so the returned dictionaries will contain only method names. + + + + + Calls a static method on a class. + + + + + Calls a static method on a class. + + + + + Returns an array with the names all the integer constants of or its ancestry. + + + + + Returns whether or its ancestry has an integer constant called or not. + + + + + Returns the value of the integer constant of or its ancestry. Always returns 0 when the constant could not be found. + + + + + Returns whether or its ancestry has an enum called or not. + + + + + Returns an array with all the enums of or its ancestry. + + + + + Returns an array with all the keys in of or its ancestry. + + + + + Returns which enum the integer constant of or its ancestry belongs to. + + + + + Returns whether (or its ancestor classes if is ) has an enum called that is a bitfield. + + + + + Returns whether this is enabled or not. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_class_list' method. + + + + + Cached name for the 'get_inheriters_from_class' method. + + + + + Cached name for the 'get_parent_class' method. + + + + + Cached name for the 'class_exists' method. + + + + + Cached name for the 'is_parent_class' method. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the 'instantiate' method. + + + + + Cached name for the 'class_get_api_type' method. + + + + + Cached name for the 'class_has_signal' method. + + + + + Cached name for the 'class_get_signal' method. + + + + + Cached name for the 'class_get_signal_list' method. + + + + + Cached name for the 'class_get_property_list' method. + + + + + Cached name for the 'class_get_property_getter' method. + + + + + Cached name for the 'class_get_property_setter' method. + + + + + Cached name for the 'class_get_property' method. + + + + + Cached name for the 'class_set_property' method. + + + + + Cached name for the 'class_get_property_default_value' method. + + + + + Cached name for the 'class_has_method' method. + + + + + Cached name for the 'class_get_method_argument_count' method. + + + + + Cached name for the 'class_get_method_list' method. + + + + + Cached name for the 'class_call_static' method. + + + + + Cached name for the 'class_get_integer_constant_list' method. + + + + + Cached name for the 'class_has_integer_constant' method. + + + + + Cached name for the 'class_get_integer_constant' method. + + + + + Cached name for the 'class_has_enum' method. + + + + + Cached name for the 'class_get_enum_list' method. + + + + + Cached name for the 'class_get_enum_constants' method. + + + + + Cached name for the 'class_get_integer_constant_enum' method. + + + + + Cached name for the 'is_class_enum_bitfield' method. + + + + + Cached name for the 'is_class_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides access to metadata stored for every available class. + + + + + Returns the names of all the classes available. + + + + + Returns the names of all the classes that directly or indirectly inherit from . + + + + + Returns the parent class of . + + + + + Returns whether the specified is available or not. + + + + + Returns whether is an ancestor of or not. + + + + + Returns if objects can be instantiated from the specified , otherwise returns . + + + + + Creates an instance of . + + + + + Returns the API type of . See . + + + + + Returns whether or its ancestry has a signal called or not. + + + + + Returns the data of or its ancestry. The returned value is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + + + + + Returns an array with all the signals of or its ancestry if is . Every element of the array is a as described in . + + + + + Returns an array with all the properties of or its ancestry if is . + + + + + Returns the getter method name of of . + + + + + Returns the setter method name of of . + + + + + Returns the value of of or its ancestry. + + + + + Sets value of to . + + + + + Returns the default value of of or its ancestor classes. + + + + + Returns whether (or its ancestry if is ) has a method called or not. + + + + + Returns the number of arguments of the method of or its ancestry if is . + + + + + Returns an array with all the methods of or its ancestry if is . Every element of the array is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + Note: In exported release builds the debug info is not available, so the returned dictionaries will contain only method names. + + + + + Calls a static method on a class. + + + + + Calls a static method on a class. + + + + + Returns an array with the names all the integer constants of or its ancestry. + + + + + Returns whether or its ancestry has an integer constant called or not. + + + + + Returns the value of the integer constant of or its ancestry. Always returns 0 when the constant could not be found. + + + + + Returns whether or its ancestry has an enum called or not. + + + + + Returns an array with all the enums of or its ancestry. + + + + + Returns an array with all the keys in of or its ancestry. + + + + + Returns which enum the integer constant of or its ancestry belongs to. + + + + + Returns whether (or its ancestor classes if is ) has an enum called that is a bitfield. + + + + + Returns whether this is enabled or not. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_class_list' method. + + + + + Cached name for the 'get_inheriters_from_class' method. + + + + + Cached name for the 'get_parent_class' method. + + + + + Cached name for the 'class_exists' method. + + + + + Cached name for the 'is_parent_class' method. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the 'instantiate' method. + + + + + Cached name for the 'class_get_api_type' method. + + + + + Cached name for the 'class_has_signal' method. + + + + + Cached name for the 'class_get_signal' method. + + + + + Cached name for the 'class_get_signal_list' method. + + + + + Cached name for the 'class_get_property_list' method. + + + + + Cached name for the 'class_get_property_getter' method. + + + + + Cached name for the 'class_get_property_setter' method. + + + + + Cached name for the 'class_get_property' method. + + + + + Cached name for the 'class_set_property' method. + + + + + Cached name for the 'class_get_property_default_value' method. + + + + + Cached name for the 'class_has_method' method. + + + + + Cached name for the 'class_get_method_argument_count' method. + + + + + Cached name for the 'class_get_method_list' method. + + + + + Cached name for the 'class_call_static' method. + + + + + Cached name for the 'class_get_integer_constant_list' method. + + + + + Cached name for the 'class_has_integer_constant' method. + + + + + Cached name for the 'class_get_integer_constant' method. + + + + + Cached name for the 'class_has_enum' method. + + + + + Cached name for the 'class_get_enum_list' method. + + + + + Cached name for the 'class_get_enum_constants' method. + + + + + Cached name for the 'class_get_integer_constant_enum' method. + + + + + Cached name for the 'is_class_enum_bitfield' method. + + + + + Cached name for the 'is_class_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By adjusting various properties of this resource, you can change the colors of strings, comments, numbers, and other text patterns inside a control. + + + + + Sets the color for numbers. + + + + + Sets the color for symbols. + + + + + Sets color for functions. A function is a non-keyword string followed by a '('. + + + + + Sets color for member variables. A member variable is non-keyword, non-function string proceeded with a '.'. + + + + + Sets the keyword colors. All existing keywords will be removed. The key is the keyword. The value is the keyword color. + + + + + Sets the member keyword colors. All existing member keyword will be removed. The key is the member keyword. The value is the member keyword color. + + + + + Sets the color regions. All existing regions will be removed. The key is the region start and end key, separated by a space. The value is the region color. + + + + + Sets the color for a keyword. + The keyword cannot contain any symbols except '_'. + + + + + Removes the keyword. + + + + + Returns if the keyword exists, else . + + + + + Returns the color for a keyword. + + + + + Removes all keywords. + + + + + Sets the color for a member keyword. + The member keyword cannot contain any symbols except '_'. + It will not be highlighted if preceded by a '.'. + + + + + Removes the member keyword. + + + + + Returns if the member keyword exists, else . + + + + + Returns the color for a member keyword. + + + + + Removes all member keywords. + + + + + Adds a color region (such as for comments or strings) from to . Both keys should be symbols, and must not be shared with other delimiters. + If is or is an empty , the region does not carry over to the next line. + + + + + Removes the color region that uses that start key. + + + + + Returns if the start key exists, else . + + + + + Removes all color regions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'number_color' property. + + + + + Cached name for the 'symbol_color' property. + + + + + Cached name for the 'function_color' property. + + + + + Cached name for the 'member_variable_color' property. + + + + + Cached name for the 'keyword_colors' property. + + + + + Cached name for the 'member_keyword_colors' property. + + + + + Cached name for the 'color_regions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_keyword_color' method. + + + + + Cached name for the 'remove_keyword_color' method. + + + + + Cached name for the 'has_keyword_color' method. + + + + + Cached name for the 'get_keyword_color' method. + + + + + Cached name for the 'set_keyword_colors' method. + + + + + Cached name for the 'clear_keyword_colors' method. + + + + + Cached name for the 'get_keyword_colors' method. + + + + + Cached name for the 'add_member_keyword_color' method. + + + + + Cached name for the 'remove_member_keyword_color' method. + + + + + Cached name for the 'has_member_keyword_color' method. + + + + + Cached name for the 'get_member_keyword_color' method. + + + + + Cached name for the 'set_member_keyword_colors' method. + + + + + Cached name for the 'clear_member_keyword_colors' method. + + + + + Cached name for the 'get_member_keyword_colors' method. + + + + + Cached name for the 'add_color_region' method. + + + + + Cached name for the 'remove_color_region' method. + + + + + Cached name for the 'has_color_region' method. + + + + + Cached name for the 'set_color_regions' method. + + + + + Cached name for the 'clear_color_regions' method. + + + + + Cached name for the 'get_color_regions' method. + + + + + Cached name for the 'set_function_color' method. + + + + + Cached name for the 'get_function_color' method. + + + + + Cached name for the 'set_number_color' method. + + + + + Cached name for the 'get_number_color' method. + + + + + Cached name for the 'set_symbol_color' method. + + + + + Cached name for the 'get_symbol_color' method. + + + + + Cached name for the 'set_member_variable_color' method. + + + + + Cached name for the 'get_member_variable_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for 2D physics objects. can hold any number of s for collision. Each shape must be assigned to a shape owner. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the shape_owner_* methods. + Note: Only collisions between objects within the same canvas ( canvas or ) are supported. The behavior of collisions between objects in different canvases is undefined. + + + + + When is set to , remove from the physics simulation to stop all physics interactions with this . + Automatically re-added to the physics simulation when the is processed again. + + + + + When is set to , make the body static. Doesn't affect . can't be affected by forces or other bodies while static. + Automatically set back to its original mode when the is processed again. + + + + + When is set to , do not affect the physics simulation. + + + + + Defines the behavior in physics when is set to . See for more details about the different modes. + + + + + The physics layers this CollisionObject2D is in. Collision objects can exist in one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this CollisionObject2D scans. Collision objects can scan one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + If , this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one bit to be set. + + + + + Accepts unhandled s. is the child index of the clicked . Connect to to easily pick up these events. + Note: requires to be and at least one bit to be set. + + + + + Called when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Called when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Called when the mouse pointer enters any of this object's shapes or moves from one shape to another. is the child index of the newly entered . Requires to be and at least one bit to be called. + + + + + Called when the mouse pointer exits any of this object's shapes. is the child index of the exited . Requires to be and at least one bit to be called. + + + + + Returns the object's . + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Creates a new shape owner for the given object. Returns owner_id of the new owner for future reference. + + + + + Removes the given shape owner. + + + + + Returns an of owner_id identifiers. You can use these ids in other methods that take owner_id as an argument. + + + + + Sets the of the given shape owner. + + + + + Returns the shape owner's . + + + + + Returns the parent object of the given shape owner. + + + + + If , disables the given shape owner. + + + + + If , the shape owner and its shapes are disabled. + + + + + If is , collisions for the shape owner originating from this will not be reported to collided with s. + + + + + Returns if collisions for the shape owner originating from this will not be reported to collided with s. + + + + + Sets the one_way_collision_margin of the shape owner identified by given to pixels. + + + + + Returns the one_way_collision_margin of the shape owner identified by given . + + + + + Adds a to the shape owner. + + + + + Returns the number of shapes the given shape owner contains. + + + + + Returns the with the given ID from the given shape owner. + + + + + Returns the child index of the with the given ID from the given shape owner. + + + + + Removes a shape from the given shape owner. + + + + + Removes all shapes from the shape owner. + + + + + Returns the owner_id of the given shape. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an input event occurs. Requires to be and at least one bit to be set. See for details. + + + + + Emitted when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this signal to be emitted. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Emitted when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this signal to be emitted. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the mouse pointer enters any of this object's shapes or moves from one shape to another. shapeIdx is the child index of the newly entered . Requires to be and at least one bit to be set. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the mouse pointer exits any of this object's shapes. shapeIdx is the child index of the exited . Requires to be and at least one bit to be set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disable_mode' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached name for the 'input_pickable' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_input_event' method. + + + + + Cached name for the '_mouse_enter' method. + + + + + Cached name for the '_mouse_exit' method. + + + + + Cached name for the '_mouse_shape_enter' method. + + + + + Cached name for the '_mouse_shape_exit' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_disable_mode' method. + + + + + Cached name for the 'get_disable_mode' method. + + + + + Cached name for the 'set_pickable' method. + + + + + Cached name for the 'is_pickable' method. + + + + + Cached name for the 'create_shape_owner' method. + + + + + Cached name for the 'remove_shape_owner' method. + + + + + Cached name for the 'get_shape_owners' method. + + + + + Cached name for the 'shape_owner_set_transform' method. + + + + + Cached name for the 'shape_owner_get_transform' method. + + + + + Cached name for the 'shape_owner_get_owner' method. + + + + + Cached name for the 'shape_owner_set_disabled' method. + + + + + Cached name for the 'is_shape_owner_disabled' method. + + + + + Cached name for the 'shape_owner_set_one_way_collision' method. + + + + + Cached name for the 'is_shape_owner_one_way_collision_enabled' method. + + + + + Cached name for the 'shape_owner_set_one_way_collision_margin' method. + + + + + Cached name for the 'get_shape_owner_one_way_collision_margin' method. + + + + + Cached name for the 'shape_owner_add_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_count' method. + + + + + Cached name for the 'shape_owner_get_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_index' method. + + + + + Cached name for the 'shape_owner_remove_shape' method. + + + + + Cached name for the 'shape_owner_clear_shapes' method. + + + + + Cached name for the 'shape_find_owner' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'input_event' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + Cached name for the 'mouse_shape_entered' signal. + + + + + Cached name for the 'mouse_shape_exited' signal. + + + + + Abstract base class for 3D physics objects. can hold any number of s for collision. Each shape must be assigned to a shape owner. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the shape_owner_* methods. + Warning: With a non-uniform scale, this node will likely not behave as expected. It is advised to keep its scale the same on all axes and adjust its collision shape(s) instead. + + + + + When is set to , remove from the physics simulation to stop all physics interactions with this . + Automatically re-added to the physics simulation when the is processed again. + + + + + When is set to , make the body static. Doesn't affect . can't be affected by forces or other bodies while static. + Automatically set back to its original mode when the is processed again. + + + + + When is set to , do not affect the physics simulation. + + + + + Defines the behavior in physics when is set to . See for more details about the different modes. + + + + + The physics layers this CollisionObject3D is in. Collision objects can exist in one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this CollisionObject3D scans. Collision objects can scan one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + If , this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one bit to be set. + + + + + If , the will continue to receive input events as the mouse is dragged across its shapes. + + + + + Receives unhandled s. is the location in world space of the mouse pointer on the surface of the shape with index and is the normal vector of the surface at that point. Connect to the signal to easily pick up these events. + Note: requires to be and at least one bit to be set. + + + + + Called when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Called when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Returns the object's . + + + + + Creates a new shape owner for the given object. Returns owner_id of the new owner for future reference. + + + + + Removes the given shape owner. + + + + + Returns an of owner_id identifiers. You can use these ids in other methods that take owner_id as an argument. + + + + + Sets the of the given shape owner. + + + + + Returns the shape owner's . + + + + + Returns the parent object of the given shape owner. + + + + + If , disables the given shape owner. + + + + + If , the shape owner and its shapes are disabled. + + + + + Adds a to the shape owner. + + + + + Returns the number of shapes the given shape owner contains. + + + + + Returns the with the given ID from the given shape owner. + + + + + Returns the child index of the with the given ID from the given shape owner. + + + + + Removes a shape from the given shape owner. + + + + + Removes all shapes from the shape owner. + + + + + Returns the owner_id of the given shape. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the object receives an unhandled . eventPosition is the location in world space of the mouse pointer on the surface of the shape with index shapeIdx and normal is the normal vector of the surface at that point. + + + + + Emitted when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Emitted when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disable_mode' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached name for the 'input_ray_pickable' property. + + + + + Cached name for the 'input_capture_on_drag' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_input_event' method. + + + + + Cached name for the '_mouse_enter' method. + + + + + Cached name for the '_mouse_exit' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_disable_mode' method. + + + + + Cached name for the 'get_disable_mode' method. + + + + + Cached name for the 'set_ray_pickable' method. + + + + + Cached name for the 'is_ray_pickable' method. + + + + + Cached name for the 'set_capture_input_on_drag' method. + + + + + Cached name for the 'get_capture_input_on_drag' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'create_shape_owner' method. + + + + + Cached name for the 'remove_shape_owner' method. + + + + + Cached name for the 'get_shape_owners' method. + + + + + Cached name for the 'shape_owner_set_transform' method. + + + + + Cached name for the 'shape_owner_get_transform' method. + + + + + Cached name for the 'shape_owner_get_owner' method. + + + + + Cached name for the 'shape_owner_set_disabled' method. + + + + + Cached name for the 'is_shape_owner_disabled' method. + + + + + Cached name for the 'shape_owner_add_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_count' method. + + + + + Cached name for the 'shape_owner_get_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_index' method. + + + + + Cached name for the 'shape_owner_remove_shape' method. + + + + + Cached name for the 'shape_owner_clear_shapes' method. + + + + + Cached name for the 'shape_find_owner' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'input_event' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + A node that provides a polygon shape to a parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an , turn into a solid object, or give a hollow shape to a . + Warning: A non-uniformly scaled will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead. + + + + + Collisions will include the polygon and its contained area. In this mode the node has the same effect as several nodes, one for each convex shape in the convex decomposition of the polygon (but without the overhead of multiple nodes). + + + + + Collisions will only include the polygon edges. In this mode the node has the same effect as a single 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). + + + + + Collision build mode. Use one of the constants. + + + + + The polygon's list of vertices. Each point will be connected to the next, and the final point will be connected to the first. + Note: The returned vertices are in the local coordinate space of the given . + + + + + If , no collisions will be detected. + + + + + If , only edges that face up, relative to 's rotation, will collide with other objects. + Note: This property has no effect if this is a child of an node. + + + + + The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'build_mode' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'one_way_collision' property. + + + + + Cached name for the 'one_way_collision_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_build_mode' method. + + + + + Cached name for the 'get_build_mode' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_one_way_collision' method. + + + + + Cached name for the 'is_one_way_collision_enabled' method. + + + + + Cached name for the 'set_one_way_collision_margin' method. + + + + + Cached name for the 'get_one_way_collision_margin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node that provides a thickened polygon shape (a prism) to a parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an or turn into a solid object. + Warning: A non-uniformly scaled will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead. + + + + + Length that the resulting collision extends in either direction perpendicular to its 2D polygon. + + + + + If , no collision will be produced. + + + + + Array of vertices which define the 2D polygon in the local XY plane. + + + + + The collision margin for the generated . See for more details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node that provides a to a parent and allows to edit it. This can give a detection shape to an or turn a into a solid object. + + + + + The actual shape owned by this collision shape. + + + + + A disabled collision shape has no effect in the world. This property should be changed with . + + + + + Sets whether this collision shape should only detect collision on one side (top or bottom). + Note: This property has no effect if this is a child of an node. + + + + + The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the shape at a high velocity. + + + + + The collision shape color that is displayed in the editor, or in the running project if Debug > Visible Collision Shapes is checked at the top of the editor. + Note: The default value is ProjectSettings.debug/shapes/collision/shape_color. The Color(0, 0, 0, 0) value documented here is a placeholder, and not the actual default debug color. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'one_way_collision' property. + + + + + Cached name for the 'one_way_collision_margin' property. + + + + + Cached name for the 'debug_color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_one_way_collision' method. + + + + + Cached name for the 'is_one_way_collision_enabled' method. + + + + + Cached name for the 'set_one_way_collision_margin' method. + + + + + Cached name for the 'get_one_way_collision_margin' method. + + + + + Cached name for the 'set_debug_color' method. + + + + + Cached name for the 'get_debug_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node that provides a to a parent and allows to edit it. This can give a detection shape to an or turn a into a solid object. + Warning: A non-uniformly scaled will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its resource instead. + + + + + The actual shape owned by this collision shape. + + + + + A disabled collision shape has no effect in the world. + + + + + The collision shape color that is displayed in the editor, or in the running project if Debug > Visible Collision Shapes is checked at the top of the editor. + Note: The default value is ProjectSettings.debug/shapes/collision/shape_color. The Color(0, 0, 0, 0) value documented here is a placeholder, and not the actual default debug color. + + + + + If , when the shape is displayed, it will show a solid fill color in addition to its wireframe. + + + + + This method does nothing. + + + + + Sets the collision shape's shape to the addition of all its convexed siblings geometry. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'debug_color' property. + + + + + Cached name for the 'debug_fill' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resource_changed' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'make_convex_from_siblings' method. + + + + + Cached name for the 'set_debug_color' method. + + + + + Cached name for the 'get_debug_color' method. + + + + + Cached name for the 'set_enable_debug_fill' method. + + + + + Cached name for the 'get_enable_debug_fill' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The resource is designed to store and manage a collection of colors. This resource is useful in scenarios where a predefined set of colors is required, such as for creating themes, designing user interfaces, or managing game assets. The built-in control can also make use of without additional code. + + + + + A [] containing the colors in the palette. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'colors' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_colors' method. + + + + + Cached name for the 'get_colors' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets. + Note: This control is the color picker widget itself. You can use a instead if you need a button that brings up a in a popup. + + + + + Allows editing the color with Red/Green/Blue sliders. + + + + + Allows editing the color with Hue/Saturation/Value sliders. + + + + + 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). + + + + + 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. + Okhsv and Okhsl color spaces + + + + + HSV Color Model rectangle color space. + + + + + HSV Color Model rectangle color space with a wheel. + + + + + HSV Color Model circle color space. Use Saturation as a radius. + + + + + HSL OK Color Model circle color space. + + + + + The color space shape and the shape select button are hidden. Can't be selected from the shapes popup. + + + + + The currently selected color. + + + + + If , shows an alpha channel slider (opacity). + + + + + The currently selected color mode. See . + + + + + If , the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues). + + + + + The shape of the color space view. See . + + + + + If , it's possible to add presets under Swatches. If , the button to add presets is disabled. + + + + + If , the color sampler and color preview are visible. + + + + + If , the color mode buttons are visible. + + + + + If , the color sliders are visible. + + + + + If , the hex color code input field is visible. + + + + + If , the Swatches and Recent Colors presets are visible. + + + + + Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them. + Note: The presets list is only for this color picker. + + + + + Removes the given color from the list of color presets of this color picker. + + + + + Returns the list of colors in the presets of the color picker. + + + + + Adds the given color to a list of color recent presets so that it can be picked later. Recent presets are the colors that were picked recently, a new preset is automatically created and added to recent presets when you pick a new color. + Note: The recent presets list is only for this color picker. + + + + + Removes the given color from the list of color recent presets of this color picker. + + + + + Returns the list of colors in the recent presets of the color picker. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the color is changed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a preset is added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a preset is removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'edit_alpha' property. + + + + + Cached name for the 'color_mode' property. + + + + + Cached name for the 'deferred_mode' property. + + + + + Cached name for the 'picker_shape' property. + + + + + Cached name for the 'can_add_swatches' property. + + + + + Cached name for the 'sampler_visible' property. + + + + + Cached name for the 'color_modes_visible' property. + + + + + Cached name for the 'sliders_visible' property. + + + + + Cached name for the 'hex_visible' property. + + + + + Cached name for the 'presets_visible' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pick_color' method. + + + + + Cached name for the 'get_pick_color' method. + + + + + Cached name for the 'set_deferred_mode' method. + + + + + Cached name for the 'is_deferred_mode' method. + + + + + Cached name for the 'set_color_mode' method. + + + + + Cached name for the 'get_color_mode' method. + + + + + Cached name for the 'set_edit_alpha' method. + + + + + Cached name for the 'is_editing_alpha' method. + + + + + Cached name for the 'set_can_add_swatches' method. + + + + + Cached name for the 'are_swatches_enabled' method. + + + + + Cached name for the 'set_presets_visible' method. + + + + + Cached name for the 'are_presets_visible' method. + + + + + Cached name for the 'set_modes_visible' method. + + + + + Cached name for the 'are_modes_visible' method. + + + + + Cached name for the 'set_sampler_visible' method. + + + + + Cached name for the 'is_sampler_visible' method. + + + + + Cached name for the 'set_sliders_visible' method. + + + + + Cached name for the 'are_sliders_visible' method. + + + + + Cached name for the 'set_hex_visible' method. + + + + + Cached name for the 'is_hex_visible' method. + + + + + Cached name for the 'add_preset' method. + + + + + Cached name for the 'erase_preset' method. + + + + + Cached name for the 'get_presets' method. + + + + + Cached name for the 'add_recent_preset' method. + + + + + Cached name for the 'erase_recent_preset' method. + + + + + Cached name for the 'get_recent_presets' method. + + + + + Cached name for the 'set_picker_shape' method. + + + + + Cached name for the 'get_picker_shape' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'color_changed' signal. + + + + + Cached name for the 'preset_added' signal. + + + + + Cached name for the 'preset_removed' signal. + + + + + Encapsulates a , making it accessible by pressing a button. Pressing the button will toggle the 's visibility. + See also which contains common properties and methods associated with this node. + Note: By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set to a big enough value to give the button enough space. + + + + + The currently selected color. + + + + + If , the alpha channel in the displayed will be visible. + + + + + Returns the that this node toggles. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns the control's which allows you to connect to popup signals. This allows you to handle events when the ColorPicker is shown or hidden. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the color changes. + + + + + Emitted when the is closed. + + + + + Emitted when the is created (the button is pressed for the first time). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'edit_alpha' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pick_color' method. + + + + + Cached name for the 'get_pick_color' method. + + + + + Cached name for the 'get_picker' method. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'set_edit_alpha' method. + + + + + Cached name for the 'is_editing_alpha' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'color_changed' signal. + + + + + Cached name for the 'popup_closed' signal. + + + + + Cached name for the 'picker_created' signal. + + + + + Displays a rectangle filled with a solid . If you need to display the border alone, consider using a instead. + + + + + The fill color of the rectangle. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The compositor resource stores attributes used to customize how a is rendered. + + + + + The custom s that are applied during rendering of viewports using this compositor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'compositor_effects' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_compositor_effects' method. + + + + + Cached name for the 'get_compositor_effects' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource defines a custom rendering effect that can be applied to s through the viewports' . You can implement a callback that is called during rendering at a given stage of the rendering pipeline and allows you to insert additional passes. Note that this callback happens on the rendering thread. CompositorEffect is an abstract base class and must be extended to implement specific rendering logic. + + + + + The callback is called before our opaque rendering pass, but after depth prepass (if applicable). + + + + + The callback is called after our opaque rendering pass, but before our sky is rendered. + + + + + The callback is called after our sky is rendered, but before our back buffers are created (and if enabled, before subsurface scattering and/or screen space reflections). + + + + + The callback is called before our transparent rendering pass, but after our sky is rendered and we've created our back buffers. + + + + + The callback is called after our transparent rendering pass, but before any built-in post-processing effects and output to our render target. + + + + + Represents the size of the enum. + + + + + If this rendering effect is applied to any viewport it is added to. + + + + + The type of effect that is implemented, determines at what stage of rendering the callback is called. + + + + + If and MSAA is enabled, this will trigger a color buffer resolve before the effect is run. + Note: In , to access the resolved buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var color_buffer = render_scene_buffers.get_texture("render_buffers", "color") + + + + + + If and MSAA is enabled, this will trigger a depth buffer resolve before the effect is run. + Note: In , to access the resolved buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var depth_buffer = render_scene_buffers.get_texture("render_buffers", "depth") + + + + + + If this triggers motion vectors being calculated during the opaque render state. + Note: In , to access the motion vector buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var motion_buffer = render_scene_buffers.get_velocity_texture() + + + + + + If this triggers normal and roughness data to be output during our depth pre-pass, only applicable for the Forward+ renderer. + Note: In , to access the roughness buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var roughness_buffer = render_scene_buffers.get_texture("forward_clustered", "normal_roughness") + + The raw normal and roughness buffer is stored in an optimized format, different than the one available in Spatial shaders. When sampling the buffer, a conversion function must be applied. Use this function, copied from here: + + vec4 normal_roughness_compatibility(vec4 p_normal_roughness) { + float roughness = p_normal_roughness.w; + if (roughness > 0.5) { + roughness = 1.0 - roughness; + } + roughness /= (127.0 / 255.0); + return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, roughness); + } + + + + + + If this triggers specular data being rendered to a separate buffer and combined after effects have been applied, only applicable for the Forward+ renderer. + + + + + Implement this function with your custom rendering code. should always match the effect callback type you've specified in . provides access to the rendering state, it is only valid during rendering and should not be stored. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'effect_callback_type' property. + + + + + Cached name for the 'access_resolved_color' property. + + + + + Cached name for the 'access_resolved_depth' property. + + + + + Cached name for the 'needs_motion_vectors' property. + + + + + Cached name for the 'needs_normal_roughness' property. + + + + + Cached name for the 'needs_separate_specular' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_render_callback' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'get_enabled' method. + + + + + Cached name for the 'set_effect_callback_type' method. + + + + + Cached name for the 'get_effect_callback_type' method. + + + + + Cached name for the 'set_access_resolved_color' method. + + + + + Cached name for the 'get_access_resolved_color' method. + + + + + Cached name for the 'set_access_resolved_depth' method. + + + + + Cached name for the 'get_access_resolved_depth' method. + + + + + Cached name for the 'set_needs_motion_vectors' method. + + + + + Cached name for the 'get_needs_motion_vectors' method. + + + + + Cached name for the 'set_needs_normal_roughness' method. + + + + + Cached name for the 'get_needs_normal_roughness' method. + + + + + Cached name for the 'set_needs_separate_specular' method. + + + + + Cached name for the 'get_needs_separate_specular' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A cubemap that is loaded from a .ccube file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods: + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + See for a general description of cubemaps. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A cubemap array that is loaded from a .ccubearray file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods: + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + See for a general description of cubemap arrays. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture that is loaded from a .ctex file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods (including a lack of any compression): + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + + + + + The 's file path to a .ctex file. + + + + + Loads the texture from the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'load_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_load_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture array that is loaded from a .ctexarray file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods: + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + See for a general description of texture arrays. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the VRAM-compressed counterpart of . The file extension for files is .ctex3d. This file format is internal to Godot; it is created by importing other image formats with the import system. + 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 for a general description of 3D textures. + + + + + The 's file path to a .ctex3d file. + + + + + Loads the texture from the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'load_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_load_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also . + + + + + The path the texture should be loaded from. + + + + + Loads the texture at . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'load_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_load_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D polyline shape, intended for use in physics. Used internally in when it's in mode. + Being just a collection of interconnected line segments, 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, is hollow even if the interconnected line segments do enclose an area, which often makes it unsuitable for physics or detection. + Note: When used for collision, is intended to work with static nodes like and will likely not behave well for s or s in a mode other than Static. + Warning: Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. is hollow, so it won't detect a collision. + Performance: Due to its complexity, is the slowest 2D collision shape to check collisions against. Its use should generally be limited to level geometry. If the polyline is closed, 's mode can be used, which decomposes the polygon into convex ones; see 's documentation for instructions. + + + + + The array of points that make up the 's line segments. The array (of length divisible by two) is naturally divided into pairs (one pair for each segment); each pair consists of the starting point of a segment and the endpoint of a segment. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_segments' method. + + + + + Cached name for the 'get_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D trimesh shape, intended for use in physics. Usually used to provide a shape for a . + Being just a collection of interconnected triangles, 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, is hollow even if the interconnected triangles do enclose a volume, which often makes it unsuitable for physics or detection. + Note: When used for collision, is intended to work with static nodes like and will likely not behave well for s or s in a mode other than Static. + Warning: Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. is hollow, so it won't detect a collision. + Performance: Due to its complexity, is the slowest 3D collision shape to check collisions against. Its use should generally be limited to level geometry. For convex geometry, should be used. For dynamic physics bodies that need concave collision, several s can be used to represent its collision by using convex decomposition; see 's documentation for instructions. + + + + + If set to , collisions occur on both sides of the concave shape faces. Otherwise they occur only along the face normals. + + + + + Sets the faces of the trimesh shape from an array of vertices. The array should be composed of triples such that each triple of vertices defines a triangle. + + + + + Sets the faces of the trimesh shape from an array of vertices. The array should be composed of triples such that each triple of vertices defines a triangle. + + + + + Returns the faces of the trimesh shape as an array of vertices. The array (of length divisible by three) is naturally divided into triples; each triple of vertices defines a triangle. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'backface_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_faces' method. + + + + + Cached name for the 'get_faces' method. + + + + + Cached name for the 'set_backface_collision_enabled' method. + + + + + Cached name for the 'is_backface_collision_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . 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. + + + + + 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 . + If below 0.05, this behavior is locked. + + + + + Twist is the rotation around the twist axis, this value defined how far the joint can twist. + Twist is locked if below 0.05. + + + + + The speed with which the swing or twist will take place. + The higher, the faster. + + + + + The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint. + + + + + Defines, how fast the swing- and twist-speed-difference on both sides gets synced. + + + + + Represents the size of the enum. + + + + + 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 . + If below 0.05, this behavior is locked. + + + + + Twist is the rotation around the twist axis, this value defined how far the joint can twist. + Twist is locked if below 0.05. + + + + + The speed with which the swing or twist will take place. + The higher, the faster. + + + + + The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint. + + + + + Defines, how fast the swing- and twist-speed-difference on both sides gets synced. + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'swing_span' property. + + + + + Cached name for the 'twist_span' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'softness' property. + + + + + Cached name for the 'relaxation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This helper class can be used to store values on the filesystem using INI-style formatting. The stored values are identified by a section and a key: + + [section] + some_key=42 + string_example="Hello World3D!" + a_vector=Vector3(1, 0, 2) + + The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem. + The following example shows how to create a simple and save it on disc: + + // Create new ConfigFile object. + var config = new ConfigFile(); + + // Store some values. + config.SetValue("Player1", "player_name", "Steve"); + config.SetValue("Player1", "best_score", 10); + config.SetValue("Player2", "player_name", "V3geta"); + config.SetValue("Player2", "best_score", 9001); + + // Save it to a file (overwrite if already exists). + config.Save("user://scores.cfg"); + + This example shows how the above file could be loaded: + + var score_data = new Godot.Collections.Dictionary(); + var config = new ConfigFile(); + + // Load data from a file. + Error err = config.Load("user://scores.cfg"); + + // If the file didn't load, ignore it. + if (err != Error.Ok) + { + return; + } + + // Iterate over all sections. + foreach (String player in config.GetSections()) + { + // Fetch the data for each section. + var player_name = (String)config.GetValue(player, "player_name"); + var player_score = (int)config.GetValue(player, "best_score"); + score_data[player_name] = player_score; + } + + Any operation that mutates the ConfigFile such as , , or , only changes what is loaded in memory. If you want to write the change to a file, you have to save the changes with , , or . + Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load. + ConfigFiles can also contain manually written comment lines starting with a semicolon (;). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action. + Note: The file extension given to a ConfigFile does not have any impact on its formatting or behavior. By convention, the .cfg extension is used here, but any other extension such as .ini is also valid. Since neither .cfg nor .ini are standardized, Godot's ConfigFile formatting may differ from files written by other programs. + + + + + Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed. + + + + + Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback value. If is not specified or set to , an error is also raised. + + + + + Returns if the specified section exists. + + + + + Returns if the specified section-key pair exists. + + + + + Returns an array of all defined section identifiers. + + + + + Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist. + + + + + Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist. + + + + + Deletes the specified key in a section. Raises an error if either the section or the key do not exist. + + + + + Loads the config file specified as a parameter. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Parses the passed string as the contents of a config file. The string is parsed and loaded in the ConfigFile object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the file specified as a parameter. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Obtain the text version of this config file (the same text that would be written to a file). + + + + + Loads the encrypted config file specified as a parameter, using the provided to decrypt it. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Loads the encrypted config file specified as a parameter, using the provided to decrypt it. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Loads the encrypted config file specified as a parameter, using the provided to decrypt it. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the AES-256 encrypted file specified as a parameter, using the provided to encrypt it. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the AES-256 encrypted file specified as a parameter, using the provided to encrypt it. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the AES-256 encrypted file specified as a parameter, using the provided to encrypt it. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Removes the entire contents of the config. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_value' method. + + + + + Cached name for the 'get_value' method. + + + + + Cached name for the 'has_section' method. + + + + + Cached name for the 'has_section_key' method. + + + + + Cached name for the 'get_sections' method. + + + + + Cached name for the 'get_section_keys' method. + + + + + Cached name for the 'erase_section' method. + + + + + Cached name for the 'erase_section_key' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'parse' method. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'encode_to_text' method. + + + + + Cached name for the 'load_encrypted' method. + + + + + Cached name for the 'load_encrypted_pass' method. + + + + + Cached name for the 'save_encrypted' method. + + + + + Cached name for the 'save_encrypted_pass' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A dialog used for confirmation of actions. This window is similar to , but pressing its Cancel button can have a different outcome from pressing the OK button. The order of the two buttons varies depending on the host OS. + To get cancel action, you can use: + + GetCancelButton().Pressed += OnCanceled; + + + + + + The text displayed by the cancel button (see ). + + + + + Returns the cancel button. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'cancel_button_text' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cancel_button' method. + + + + + Cached name for the 'set_cancel_button_text' method. + + + + + Cached name for the 'get_cancel_button_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for all GUI containers. A automatically arranges its child controls in a certain way. This class can be inherited to make custom container types. + + + + + Notification just before children are going to be sorted, in case there's something to process beforehand. + + + + + Notification for when sorting the children, it must be obeyed immediately. + + + + + Implement to return a list of allowed horizontal 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. + Note: Having no size flags is equal to having . As such, this value is always implicitly allowed. + + + + + Implement to return a list of allowed vertical 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. + Note: Having no size flags is equal to having . As such, this value is always implicitly allowed. + + + + + Queue resort of the contained children. This is called automatically anyway, but can be called upon request. + + + + + Fit a child control in a given rect. This is mainly a helper for creating custom container classes. + + + + + Emitted when children are going to be sorted. + + + + + Emitted when sorting the children is needed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_allowed_size_flags_horizontal' method. + + + + + Cached name for the '_get_allowed_size_flags_vertical' method. + + + + + Cached name for the 'queue_sort' method. + + + + + Cached name for the 'fit_child_in_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pre_sort_children' signal. + + + + + Cached name for the 'sort_children' signal. + + + + + Base class for all UI-related nodes. 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 and nodes. + Note: Since both and inherit from , they share several concepts from the class such as the and properties. + User Interface nodes and input + Godot propagates input events via viewports. Each is responsible for propagating s to their child nodes. As the is a , this already happens automatically for all UI elements in your game. + Input events are propagated through the from the root node to all child nodes by calling . For UI elements specifically, it makes more sense to override the virtual method , which filters out unrelated input events, such as by checking z-order, , focus, or if the event was inside of the control's bounding box. + Call so no other node receives the event. Once you accept an input, it becomes handled so will not process it. + Only one node can be in focus. Only the node in focus will receive events. To get the focus, call . nodes lose focus when another node grabs it, or if you hide the node in focus. + Sets to to tell a node to ignore mouse or touch events. You'll need it if you place an icon on top of a button. + resources change the control's appearance. The of a node affects all of its direct and indirect children (as long as a chain of controls is uninterrupted). To override some of the theme items, call one of the add_theme_*_override methods, like . You can also override theme items in the Inspector. + Note: Theme items are not properties. This means you can't access their values using and . Instead, use the get_theme_* and add_theme_*_override methods provided by this class. + + + + + Sent when the node changes size. Use to get the new size. + + + + + Sent when the mouse cursor enters the control's (or any child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the mouse cursor leaves the control's (and all child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the mouse cursor enters the control's visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the mouse cursor leaves the control's visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the node grabs focus. + + + + + Sent when the node loses focus. + + + + + Sent when the node needs to refresh its theme items. This happens in one of the following cases: + - The property is changed on this node or any of its ancestors. + - The property is changed on this node. + - One of the node's theme property overrides is changed. + - The node enters the scene tree. + Note: As an optimization, this notification won't be sent from changes that occur while this node is outside of the scene tree. Instead, all of the theme item updates can be applied at once when the node enters the scene tree. + Note: This notification is received alongside , so if you are instantiating a scene, the child nodes will not be initialized yet. You can use it to setup theming for this node, child nodes created from script, or if you want to access child nodes added in the editor, make sure the node is ready using . + + func _notification(what): + if what == NOTIFICATION_THEME_CHANGED: + if not is_node_ready(): + await ready # Wait until ready signal. + $Label.add_theme_color_override("font_color", Color.YELLOW) + + + + + + Sent when this node is inside a which has begun being scrolled when dragging the scrollable area with a touch event. This notification is not sent when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Sent when this node is inside a which has stopped being scrolled when dragging the scrollable area with a touch event. This notification is not sent when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Sent when control layout direction is changed. + + + + + The node cannot grab focus. Use with . + + + + + The node can only grab focus on mouse clicks. Use with . + + + + + 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 . + + + + + Show the system's arrow mouse cursor when the user hovers the node. Use with . + + + + + 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. + + + + + Show the system's pointing hand mouse cursor when the user hovers the node. + + + + + Show the system's cross mouse cursor when the user hovers the node. + + + + + Show the system's wait mouse cursor when the user hovers the node. Often an hourglass. + + + + + Show the system's busy mouse cursor when the user hovers the node. Often an arrow with a small hourglass. + + + + + 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. + + + + + 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. + + + + + Show the system's forbidden mouse cursor when the user hovers the node. Often a crossed circle. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 . It tells the user they can resize the window or the panel both horizontally and vertically. + + + + + 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. + + + + + Show the system's vertical split mouse cursor when the user hovers the node. On Windows, it's the same as . + + + + + Show the system's horizontal split mouse cursor when the user hovers the node. On Windows, it's the same as . + + + + + Show the system's help mouse cursor when the user hovers the node, a question mark. + + + + + Snap all 4 anchors to the top-left of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the top-right of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the bottom-left of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the bottom-right of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the left edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the top edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the right edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the bottom edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the parent control's bounds. Use with . + + + + + 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 . + + + + + 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 . + + + + + 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 . + + + + + 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 . + + + + + Snap all 4 anchors to a vertical line that cuts the parent control in half. Use with . + + + + + Snap all 4 anchors to a horizontal line that cuts the parent control in half. Use with . + + + + + 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 will fit its parent control. Use with . + + + + + The control will be resized to its minimum size. + + + + + The control's width will not change. + + + + + The control's height will not change. + + + + + The control's size will not change. + + + + + Tells the parent to align the node with its start, either the top or the left edge. It is mutually exclusive with and other shrink size flags, but can be used with in some containers. Use with and . + Note: Setting this flag is equal to not having any size flags. + + + + + Tells the parent 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 and . + + + + + Tells the parent 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 . Use with and . + + + + + Sets the node's size flags to both fill and expand. See and for more information. + + + + + Tells the parent to center the node in the available space. It is mutually exclusive with and other shrink size flags, but can be used with in some containers. Use with and . + + + + + Tells the parent to align the node with its end, either the bottom or the right edge. It is mutually exclusive with and other shrink size flags, but can be used with in some containers. Use with and . + + + + + The control will receive mouse movement input events and mouse button input events if clicked on through . The control will also receive the and 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. + + + + + The control will receive mouse movement input events and mouse button input events if clicked on through . The control will also receive the and signals. + If this control does not handle the event, the event will propagate up to its parent control if it has one. The event is bubbled up the node hierarchy until it reaches a non-, a control with , or a with enabled. This will allow signals to fire in all controls it reaches. If no control handled it, the event will be passed to for further processing. + + + + + The control will not receive any mouse movement input events nor mouse button input events through . The control will also not receive the nor signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically. If a child has and an event was passed to this control, the event will further propagate up to the control's parent. + Note: If the control has received but not , changing the to will cause to be emitted. + + + + + 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. + + + + + 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. + + + + + The control will grow in both directions equally to make up if its minimum size is changed to be greater than its current size. + + + + + Snaps one of the 4 anchor's sides to the origin of the node's Rect, in the top left. Use it with one of the anchor_* member variables, like . To change all 4 anchors at once, use . + + + + + Snaps one of the 4 anchor's sides to the end of the node's Rect, in the bottom right. Use it with one of the anchor_* member variables, like . To change all 4 anchors at once, use . + + + + + Automatic layout direction, determined from the parent control layout direction. + + + + + Automatic layout direction, determined from the current locale. + + + + + Left-to-right layout direction. + + + + + Right-to-left layout direction. + + + + + Automatic layout direction, determined from the system locale. + + + + + Represents the size of the enum. + + + + + Text writing direction is the same as layout direction. + + + + + Automatic text writing direction, determined from the current locale and text content. + + + + + Left-to-right text writing direction. + + + + + Right-to-left text writing direction. + + + + + Enables whether rendering of based children should be clipped to this control's rectangle. If , parts of a child which would be visibly outside of this control's rectangle will not be rendered and won't receive input. + + + + + The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size. Note that nodes have their internal minimum size returned by . It depends on the control's contents, like text, textures, or style boxes. The actual minimum size is the maximum value of this property and the internal minimum size (see ). + + + + + Controls layout direction and text writing direction. Right-to-left layouts are necessary for certain languages (e.g. Arabic and Hebrew). + + + + + Anchors the left edge of the node to the origin, the center or the end of its parent control. It changes how the left offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Anchors the top edge of the node to the origin, the center or the end of its parent control. It changes how the top offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Anchors the right edge of the node to the origin, the center or the end of its parent control. It changes how the right offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Anchors the bottom edge of the node to the origin, the center, or the end of its parent control. It changes how the bottom offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Distance between the node's left edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Distance between the node's top edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Distance between the node's right edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Distance between the node's bottom edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size. + + + + + Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size. + + + + + The size of the node's bounding rectangle, in the node's coordinate system. nodes update this property automatically. + + + + + The node's position, relative to its containing node. It corresponds to the rectangle's top-left corner. The property is not affected by . + + + + + The node's global position, relative to the world (usually to the ). + + + + + The node's rotation around its pivot, in radians. See to change the pivot's position. + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use . + + + + + Helper property to access in degrees instead of radians. + + + + + The node's scale, relative to its . Change this property to scale the node around its . The Control's will also scale according to this value. + Note: This property is mainly intended to be used for animation purposes. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the documentation instead of scaling Controls individually. + Note: does not take into account. This means that scaling up/down will cause bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated. To ensure text remains crisp regardless of scale, you can enable MSDF font rendering by enabling ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (applies to the default project font only), or enabling Multichannel Signed Distance Field in the import options of a DynamicFont for custom fonts. On system fonts, can be enabled in the inspector. + Note: If the Control node is a child of a node, the scale will be reset to Vector2(1, 1) when the scene is instantiated. To set the Control's scale when it's instantiated, wait for one frame using await get_tree().process_frame then set its property. + + + + + By default, the node's pivot is its top-left corner. When you change its or , it will rotate or scale around this pivot. Set this property to / 2 to pivot around the Control's center. + + + + + Tells the parent nodes how they should resize and place the node on the X axis. Use a combination of the constants to change the flags. See the constants to learn what each does. + + + + + Tells the parent nodes how they should resize and place the node on the Y axis. Use a combination of the constants to change the flags. See the constants to learn what each does. + + + + + If the node and at least one of its neighbors uses the size flag, the parent will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbor a ratio of 1, this node will take two thirds of the available space. + + + + + If , automatically converts code line numbers, list indices, and values from the Western Arabic (0..9) to the numeral systems used in current locale. + Note: Numbers within the text are not automatically converted, it can be done manually, using . + + + + + Toggles if any text should automatically change to its translated version depending on the current locale. + + + + + The default tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the property is not . The time required for the tooltip to appear can be changed with the ProjectSettings.gui/timers/tooltip_delay_sec setting. + This string is the default return value of . Override to generate tooltip text dynamically. Override to customize the tooltip interface and behavior. + The tooltip popup will use either a default implementation, or a custom one that you can provide by overriding . The default tooltip includes a and whose theme properties can be customized using methods with the "TooltipPanel" and "TooltipLabel" respectively. For example: + + var styleBox = new StyleBoxFlat(); + styleBox.SetBgColor(new Color(1, 1, 0)); + styleBox.SetBorderWidthAll(2); + // We assume here that the `Theme` property has been assigned a custom Theme beforehand. + Theme.SetStyleBox("panel", "TooltipPanel", styleBox); + Theme.SetColor("font_color", "TooltipLabel", new Color(0, 1, 1)); + + + + + + Defines if tooltip text should automatically change to its translated version depending on the current locale. Uses the same auto translate mode as this control when set to . + Note: Tooltips customized using do not use this auto translate mode automatically. + + + + + Tells Godot which node it should give focus to if the user presses the left arrow on the keyboard or left on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_left input action. The node must be a . If this property is not set, Godot will give focus to the closest to the left of this one. + + + + + Tells Godot which node it should give focus to if the user presses the top arrow on the keyboard or top on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_up input action. The node must be a . If this property is not set, Godot will give focus to the closest to the top of this one. + + + + + Tells Godot which node it should give focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_right input action. The node must be a . If this property is not set, Godot will give focus to the closest to the right of this one. + + + + + Tells Godot which node it should give focus to if the user presses the down arrow on the keyboard or down on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_down input action. The node must be a . If this property is not set, Godot will give focus to the closest to the bottom of this one. + + + + + Tells Godot which node it should give focus to if the user presses Tab on a keyboard by default. You can change the key by editing the ProjectSettings.input/ui_focus_next input action. + If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree. + + + + + Tells Godot which node it should give focus to if the user presses Shift + Tab on a keyboard by default. You can change the key by editing the ProjectSettings.input/ui_focus_prev input action. + If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree. + + + + + The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard, gamepad, and mouse signals. + + + + + Controls whether the control will be able to receive mouse button input events through and how these events should be handled. Also controls whether the control can receive the , and signals. See the constants to learn what each does. + + + + + When enabled, scroll wheel events processed by will be passed to the parent control even if is set to . + You should disable it on the root of your UI if you do not want scroll events to go to the processing. + Note: Because this property defaults to , this allows nested scrollable containers to work out of the box. + + + + + The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors. + Note: On Linux, shapes may vary depending on the cursor theme of the system. + + + + + The which must be a parent of the focused for the shortcut to be activated. If , the shortcut can be activated when any control is focused (a global shortcut). This allows shortcuts to be accepted only when the user has a certain area of the GUI focused. + + + + + The resource this node and all its and children use. If a child node has its own resource set, theme items are merged with child's definitions having higher priority. + Note: styles will have no effect unless the window is embedded. + + + + + The name of a theme type variation used by this to look up its own theme items. When empty, the class name of the node is used (e.g. Button for the control), as well as the class names of all parent classes (in order of inheritance). + When set, this property gives the highest priority to the type of the specified name. This type can in turn extend another type, forming a dependency chain. See . If the theme item cannot be found using this type or its base types, lookup falls back on the class names. + Note: To look up 's own items use various get_theme_* methods without specifying theme_type. + Note: Theme items are looked for in the tree order, from branch to root, where each node is checked for its property. The earliest match against any type/class name is returned. The project-level Theme and the default Theme are checked last. + + + + + Godot calls this method to test if from a control's can be dropped at . is local to this control. + This method should only be used to test the data. Process the data in . + + 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"); + } + + + + + + Godot calls this method to pass you the from a control's result. Godot first calls to test if is allowed to drop at where is local to this control. + + public override bool _CanDropData(Vector2 atPosition, Variant data) + { + return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().ContainsKey("color"); + } + + public override void _DropData(Vector2 atPosition, Variant data) + { + Color color = data.AsGodotDictionary()["color"].AsColor(); + } + + + + + + Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns if there is no data to drag. Controls that want to receive drop data should implement and . is local to this control. Drag may be forced with . + A preview that will follow the mouse that should represent the data can be set with . A good time to set the preview is in this method. + + 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; + } + + + + + + Virtual method to be implemented by the user. Returns the minimum size for this control. Alternative to 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 Vector2.ZERO. + Note: This method will not be called when the script is attached to a node that already overrides its minimum size (e.g. , , etc.). It can only be used with most basic GUI nodes, like , , etc. + + + + + Virtual method to be implemented by the user. Returns the tooltip text for the position in control's local coordinates, which will typically appear when the cursor is resting over this control. See . + Note: If this method returns an empty and is not overridden, no tooltip is displayed. + + + + + Virtual method to be implemented by the user. Override this method to handle and accept inputs on UI elements. See also . + Example: Click on the control to print a message: + + 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:"); + } + } + } + + If the inherits , this method will not be called when: + - the control's is set to ; + - the control is obstructed by another control on top, that doesn't have set to ; + - the control's parent has set to or has accepted the event; + - the control's parent has enabled and the 's position is outside the parent's rectangle; + - the 's position is outside the control (see ). + Note: The 's position is relative to this control's origin. + + + + + Virtual method to be implemented by the user. Returns whether the given is inside this control. + If not overridden, default behavior is checking if the point is within control's Rect. + Note: If you want to check if a point is inside the control, you can use Rect2(Vector2.ZERO, size).has_point(point). + + + + + Virtual method to be implemented by the user. Returns a node that should be used as a tooltip instead of the default one. is the return value of . + The returned node must be of type 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 or a non-Control node is returned, the default tooltip will be used instead. + The returned node will be added as child to a , so you should only provide the contents of that panel. That can be themed using for the type "TooltipPanel" (see for an example). + Note: The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its to some non-zero value. + Note: The node (and any relevant children) should have their set to when returned, otherwise, the viewport that instantiates it will not be able to calculate its minimum size reliably. + Note: If overridden, this method is called even if returns an empty string. When this happens with the default tooltip, it is not displayed. To copy this behavior, return in this method when is empty. + Example: Use a constructed node as a tooltip: + + public override Control _MakeCustomTooltip(string forText) + { + var label = new Label(); + label.Text = forText; + return label; + } + + Example: Usa a scene instance as a tooltip: + + 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; + } + + + + + + User defined BiDi algorithm override function. + Returns an of text ranges and text base directions, in the left-to-right order. Ranges should cover full source without overlaps. BiDi algorithm will be used on each range separately. + + + + + Marks an input event as handled. Once you accept an input event, it stops propagating, even to nodes listening to or . + Note: This does not affect the methods in , only the way events are propagated. + + + + + Returns the minimum size for this control. See . + + + + + Returns combined minimum size from and . + + + + + Sets the anchors to a from enum. This is the code equivalent to using the Layout menu in the 2D editor. + If is , control's position will also be updated. + + + + + Sets the offsets to a from enum. This is the code equivalent to using the Layout menu in the 2D editor. + Use parameter with constants from to better determine the resulting size of the . Constant size will be ignored if used with presets that change size, e.g. . + Use parameter to determine the gap between the and the edges. + + + + + Sets both anchor preset and offset preset. See and . + + + + + Sets the anchor for the specified to . A setter method for , , and . + If is , offsets aren't updated after this operation. + If is and the opposite anchor overlaps this anchor, the opposite one will have its value overridden. For example, when setting left anchor to 1 and the right anchor has value of 0.5, the right anchor will also get value of 1. If was , the left anchor would get value 0.5. + + + + + Returns the anchor for the specified . A getter method for , , and . + + + + + Sets the offset for the specified to . A setter method for , , and . + + + + + Returns the offset for the specified . A getter method for , , and . + + + + + Works the same as , but instead of keep_offset argument and automatic update of offset, it allows to set the offset yourself (see ). + + + + + Sets and at the same time. Equivalent of changing . + + + + + Sets and at the same time. + + + + + Sets the to given . + If is , control's anchors will be updated instead of offsets. + + + + + Sets the size (see ). + If is , control's anchors will be updated instead of offsets. + + + + + Resets the size to . This is equivalent to calling set_size(Vector2()) (or any size below the minimum). + + + + + Sets the to given . + If is , control's anchors will be updated instead of offsets. + + + + + Returns and . See also . + + + + + Returns and . + + + + + Returns the width/height occupied in the parent control. + + + + + Returns the position of this in global screen coordinates (i.e. taking window position into account). Mostly useful for editor plugins. + Equals to if the window is embedded (see ). + Example: Show a popup at the mouse position: + + popup_menu.position = get_screen_position() + get_local_mouse_position() + popup_menu.reset_size() + popup_menu.popup() + + + + + + Returns the position and size of the control in the coordinate system of the containing node. See , and . + Note: If is not the default rotation, the resulting size is not meaningful. + Note: Setting to can lead to rounding inaccuracies between the displayed control and the returned . + + + + + Returns the position and size of the control relative to the containing canvas. See and . + Note: If the node itself or any parent between the node and the canvas have a non default rotation or skew, the resulting size is likely not meaningful. + Note: Setting to can lead to rounding inaccuracies between the displayed control and the returned . + + + + + Returns if this is the current focused control. See . + + + + + Steal the focus from another control and become the focused control (see ). + Note: Using this method together with Callable.call_deferred makes it more reliable, especially when called inside . + + + + + Give up the focus. No other control will be able to receive input. + + + + + Finds the previous (above in the tree) that can receive the focus. + + + + + Finds the next (below in the tree) that can receive the focus. + + + + + Finds the next that can receive the focus on the specified . + Note: This is different from , which returns the path of a specified focus neighbor. + + + + + Prevents *_theme_*_override methods from emitting until is called. + + + + + Ends a bulk theme override update. See . + + + + + Creates a local override for a theme icon with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + Example: Modify a property in a by duplicating it: + + // The snippet below assumes the child node "MyButton" has a StyleBoxFlat assigned. + // Resources are shared across instances, so we need to duplicate it + // to avoid modifying the appearance of all other buttons. + StyleBoxFlat newStyleboxNormal = GetNode<Button>("MyButton").GetThemeStylebox("normal").Duplicate() as StyleBoxFlat; + newStyleboxNormal.BorderWidthTop = 3; + newStyleboxNormal.BorderColor = new Color(0, 1, 0.5f); + GetNode<Button>("MyButton").AddThemeStyleboxOverride("normal", newStyleboxNormal); + // Remove the stylebox override. + GetNode<Button>("MyButton").RemoveThemeStyleboxOverride("normal"); + + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme font size with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + Example: Override a 's color and reset it later: + + // Given the child Label node "MyLabel", override its font color with a custom value. + GetNode<Label>("MyLabel").AddThemeColorOverride("font_color", new Color(1, 0.5f, 0)); + // Reset the font color of the child label. + GetNode<Label>("MyLabel").RemoveThemeColorOverride("font_color"); + // Alternatively it can be overridden with the default value from the Label type. + GetNode<Label>("MyLabel").AddThemeColorOverride("font_color", GetThemeColor("font_color", "Label")); + + + + + + Creates a local override for a theme constant with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Removes a local override for a theme icon with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme font size with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme constant with the specified previously added by or via the Inspector dock. + + + + + Returns an icon from the first matching in the tree if that has an icon item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a stylebox item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a font item with the specified and . + See for details. + + + + + Returns a font size from the first matching in the tree if that has a font size item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a color item with the specified and . If is omitted the class name of the current control is used as the type, or if it is defined. If the type is a class name its parent classes are also checked, in order of inheritance. If the type is a variation its base types are checked, in order of dependency, then the control's class name and its parent classes are checked. + For the current control its local overrides are considered first (see ), then its assigned . After the current control, each parent control and its assigned are considered; controls without a assigned are skipped. If no matching is found in the tree, the custom project (see ProjectSettings.gui/theme/custom) and the default are used (see ). + + public override void _Ready() + { + // Get the font color defined for the current Control's class, if it exists. + Modulate = GetThemeColor("font_color"); + // Get the font color defined for the Button class. + Modulate = GetThemeColor("font_color", "Button"); + } + + + + + + Returns a constant from the first matching in the tree if that has a constant item with the specified and . + See for details. + + + + + Returns if there is a local override for a theme icon with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme font size with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme constant with the specified in this node. + See . + + + + + Returns if there is a matching in the tree that has an icon item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a stylebox item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font size item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a color item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a constant item with the specified and . + See for details. + + + + + Returns the default base scale value from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font size value from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the parent control node. + + + + + Returns the tooltip text for the position in control's local coordinates, which will typically appear when the cursor is resting over this control. By default, it returns . + This method can be overridden to customize its behavior. See . + Note: If this method returns an empty and is not overridden, no tooltip is displayed. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns the mouse cursor shape the control displays on mouse hover. See . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Sets the focus neighbor for the specified to the at node path. A setter method for , , and . + + + + + Returns the focus neighbor for the specified . A getter method for , , and . + Note: To find the next on the specific , even if a neighbor is not assigned, use . + + + + + Forces drag and bypasses and by passing and . Drag will start even if the mouse is neither over nor pressed on this control. + The methods and must be implemented on controls that want to receive drop data. + + + + + Creates an that attempts to click the control. If the event is received, the control gains focus. + + public override void _Process(double delta) + { + GrabClickFocus(); // When clicking another Control node, this node will be clicked instead. + } + + + + + + Sets the given callables to be used instead of the control's own drag-and-drop virtual methods. If a callable is empty, its respective virtual method is used as normal. + The arguments for each callable should be exactly the same as their respective virtual methods, which would be: + - corresponds to and requires a ; + - corresponds to and requires both a and a ; + - corresponds to and requires both a and a . + + + + + Shows the given control at the mouse pointer. A good time to call this method is in . The control must not be in the scene tree. You should not free the control, and you should not keep a reference to the control beyond the duration of the drag. It will be deleted automatically after the drag has ended. + + [Export] + private Color _color = new Color(1, 0, 0, 1); + + public override Variant _GetDragData(Vector2 atPosition) + { + // Use a control that is not in the tree + var cpb = new ColorPickerButton(); + cpb.Color = _color; + cpb.Size = new Vector2(50, 50); + SetDragPreview(cpb); + return _color; + } + + + + + + Returns if a drag operation is successful. Alternative to . + Best used with . + + + + + Moves the mouse cursor to , relative to of this . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + Invalidates the size cache in this node and in parent nodes up to top level. Intended to be used with when the return value is changed. Setting directly calls this method automatically. + + + + + Returns if layout is right-to-left. + + + + + Emitted when the control changes size. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node receives an . + + + + + Emitted when the mouse cursor enters the control's (or any child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect, which Control receives the signal. + + + + + Emitted when the mouse cursor leaves the control's (and all child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect, which Control receives the signal. + Note: If you want to check whether the mouse truly left the area, ignoring any top nodes, you can use code like this: + + func _on_mouse_exited(): + if not Rect2(Vector2(), size).has_point(get_local_mouse_position()): + # Not hovering over area. + + + + + + Emitted when the node gains focus. + + + + + Emitted when the node loses focus. + + + + + Emitted when one of the size flags changes. See and . + + + + + Emitted when the node's minimum size changes. + + + + + Emitted when the notification is sent. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'clip_contents' property. + + + + + Cached name for the 'custom_minimum_size' property. + + + + + Cached name for the 'layout_direction' property. + + + + + Cached name for the 'layout_mode' property. + + + + + Cached name for the 'anchors_preset' property. + + + + + Cached name for the 'anchor_left' property. + + + + + Cached name for the 'anchor_top' property. + + + + + Cached name for the 'anchor_right' property. + + + + + Cached name for the 'anchor_bottom' property. + + + + + Cached name for the 'offset_left' property. + + + + + Cached name for the 'offset_top' property. + + + + + Cached name for the 'offset_right' property. + + + + + Cached name for the 'offset_bottom' property. + + + + + Cached name for the 'grow_horizontal' property. + + + + + Cached name for the 'grow_vertical' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'rotation_degrees' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'pivot_offset' property. + + + + + Cached name for the 'size_flags_horizontal' property. + + + + + Cached name for the 'size_flags_vertical' property. + + + + + Cached name for the 'size_flags_stretch_ratio' property. + + + + + Cached name for the 'localize_numeral_system' property. + + + + + Cached name for the 'auto_translate' property. + + + + + Cached name for the 'tooltip_text' property. + + + + + Cached name for the 'tooltip_auto_translate_mode' property. + + + + + Cached name for the 'focus_neighbor_left' property. + + + + + Cached name for the 'focus_neighbor_top' property. + + + + + Cached name for the 'focus_neighbor_right' property. + + + + + Cached name for the 'focus_neighbor_bottom' property. + + + + + Cached name for the 'focus_next' property. + + + + + Cached name for the 'focus_previous' property. + + + + + Cached name for the 'focus_mode' property. + + + + + Cached name for the 'mouse_filter' property. + + + + + Cached name for the 'mouse_force_pass_scroll_events' property. + + + + + Cached name for the 'mouse_default_cursor_shape' property. + + + + + Cached name for the 'shortcut_context' property. + + + + + Cached name for the 'theme' property. + + + + + Cached name for the 'theme_type_variation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_drop_data' method. + + + + + Cached name for the '_drop_data' method. + + + + + Cached name for the '_get_drag_data' method. + + + + + Cached name for the '_get_minimum_size' method. + + + + + Cached name for the '_get_tooltip' method. + + + + + Cached name for the '_gui_input' method. + + + + + Cached name for the '_has_point' method. + + + + + Cached name for the '_make_custom_tooltip' method. + + + + + Cached name for the '_structured_text_parser' method. + + + + + Cached name for the 'accept_event' method. + + + + + Cached name for the 'get_minimum_size' method. + + + + + Cached name for the 'get_combined_minimum_size' method. + + + + + Cached name for the '_set_layout_mode' method. + + + + + Cached name for the '_get_layout_mode' method. + + + + + Cached name for the '_set_anchors_layout_preset' method. + + + + + Cached name for the '_get_anchors_layout_preset' method. + + + + + Cached name for the 'set_anchors_preset' method. + + + + + Cached name for the 'set_offsets_preset' method. + + + + + Cached name for the 'set_anchors_and_offsets_preset' method. + + + + + Cached name for the '_set_anchor' method. + + + + + Cached name for the 'set_anchor' method. + + + + + Cached name for the 'get_anchor' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_anchor_and_offset' method. + + + + + Cached name for the 'set_begin' method. + + + + + Cached name for the 'set_end' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the '_set_position' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'reset_size' method. + + + + + Cached name for the '_set_size' method. + + + + + Cached name for the 'set_custom_minimum_size' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the '_set_global_position' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'set_rotation_degrees' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'set_pivot_offset' method. + + + + + Cached name for the 'get_begin' method. + + + + + Cached name for the 'get_end' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'get_rotation_degrees' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'get_pivot_offset' method. + + + + + Cached name for the 'get_custom_minimum_size' method. + + + + + Cached name for the 'get_parent_area_size' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached name for the 'get_screen_position' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached name for the 'get_global_rect' method. + + + + + Cached name for the 'set_focus_mode' method. + + + + + Cached name for the 'get_focus_mode' method. + + + + + Cached name for the 'has_focus' method. + + + + + Cached name for the 'grab_focus' method. + + + + + Cached name for the 'release_focus' method. + + + + + Cached name for the 'find_prev_valid_focus' method. + + + + + Cached name for the 'find_next_valid_focus' method. + + + + + Cached name for the 'find_valid_focus_neighbor' method. + + + + + Cached name for the 'set_h_size_flags' method. + + + + + Cached name for the 'get_h_size_flags' method. + + + + + Cached name for the 'set_stretch_ratio' method. + + + + + Cached name for the 'get_stretch_ratio' method. + + + + + Cached name for the 'set_v_size_flags' method. + + + + + Cached name for the 'get_v_size_flags' method. + + + + + Cached name for the 'set_theme' method. + + + + + Cached name for the 'get_theme' method. + + + + + Cached name for the 'set_theme_type_variation' method. + + + + + Cached name for the 'get_theme_type_variation' method. + + + + + Cached name for the 'begin_bulk_theme_override' method. + + + + + Cached name for the 'end_bulk_theme_override' method. + + + + + Cached name for the 'add_theme_icon_override' method. + + + + + Cached name for the 'add_theme_stylebox_override' method. + + + + + Cached name for the 'add_theme_font_override' method. + + + + + Cached name for the 'add_theme_font_size_override' method. + + + + + Cached name for the 'add_theme_color_override' method. + + + + + Cached name for the 'add_theme_constant_override' method. + + + + + Cached name for the 'remove_theme_icon_override' method. + + + + + Cached name for the 'remove_theme_stylebox_override' method. + + + + + Cached name for the 'remove_theme_font_override' method. + + + + + Cached name for the 'remove_theme_font_size_override' method. + + + + + Cached name for the 'remove_theme_color_override' method. + + + + + Cached name for the 'remove_theme_constant_override' method. + + + + + Cached name for the 'get_theme_icon' method. + + + + + Cached name for the 'get_theme_stylebox' method. + + + + + Cached name for the 'get_theme_font' method. + + + + + Cached name for the 'get_theme_font_size' method. + + + + + Cached name for the 'get_theme_color' method. + + + + + Cached name for the 'get_theme_constant' method. + + + + + Cached name for the 'has_theme_icon_override' method. + + + + + Cached name for the 'has_theme_stylebox_override' method. + + + + + Cached name for the 'has_theme_font_override' method. + + + + + Cached name for the 'has_theme_font_size_override' method. + + + + + Cached name for the 'has_theme_color_override' method. + + + + + Cached name for the 'has_theme_constant_override' method. + + + + + Cached name for the 'has_theme_icon' method. + + + + + Cached name for the 'has_theme_stylebox' method. + + + + + Cached name for the 'has_theme_font' method. + + + + + Cached name for the 'has_theme_font_size' method. + + + + + Cached name for the 'has_theme_color' method. + + + + + Cached name for the 'has_theme_constant' method. + + + + + Cached name for the 'get_theme_default_base_scale' method. + + + + + Cached name for the 'get_theme_default_font' method. + + + + + Cached name for the 'get_theme_default_font_size' method. + + + + + Cached name for the 'get_parent_control' method. + + + + + Cached name for the 'set_h_grow_direction' method. + + + + + Cached name for the 'get_h_grow_direction' method. + + + + + Cached name for the 'set_v_grow_direction' method. + + + + + Cached name for the 'get_v_grow_direction' method. + + + + + Cached name for the 'set_tooltip_auto_translate_mode' method. + + + + + Cached name for the 'get_tooltip_auto_translate_mode' method. + + + + + Cached name for the 'set_tooltip_text' method. + + + + + Cached name for the 'get_tooltip_text' method. + + + + + Cached name for the 'get_tooltip' method. + + + + + Cached name for the 'set_default_cursor_shape' method. + + + + + Cached name for the 'get_default_cursor_shape' method. + + + + + Cached name for the 'get_cursor_shape' method. + + + + + Cached name for the 'set_focus_neighbor' method. + + + + + Cached name for the 'get_focus_neighbor' method. + + + + + Cached name for the 'set_focus_next' method. + + + + + Cached name for the 'get_focus_next' method. + + + + + Cached name for the 'set_focus_previous' method. + + + + + Cached name for the 'get_focus_previous' method. + + + + + Cached name for the 'force_drag' method. + + + + + Cached name for the 'set_mouse_filter' method. + + + + + Cached name for the 'get_mouse_filter' method. + + + + + Cached name for the 'set_force_pass_scroll_events' method. + + + + + Cached name for the 'is_force_pass_scroll_events' method. + + + + + Cached name for the 'set_clip_contents' method. + + + + + Cached name for the 'is_clipping_contents' method. + + + + + Cached name for the 'grab_click_focus' method. + + + + + Cached name for the 'set_drag_forwarding' method. + + + + + Cached name for the 'set_drag_preview' method. + + + + + Cached name for the 'is_drag_successful' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'set_shortcut_context' method. + + + + + Cached name for the 'get_shortcut_context' method. + + + + + Cached name for the 'update_minimum_size' method. + + + + + Cached name for the 'set_layout_direction' method. + + + + + Cached name for the 'get_layout_direction' method. + + + + + Cached name for the 'is_layout_rtl' method. + + + + + Cached name for the 'set_auto_translate' method. + + + + + Cached name for the 'is_auto_translating' method. + + + + + Cached name for the 'set_localize_numeral_system' method. + + + + + Cached name for the 'is_localizing_numeral_system' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'resized' signal. + + + + + Cached name for the 'gui_input' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + Cached name for the 'focus_entered' signal. + + + + + Cached name for the 'focus_exited' signal. + + + + + Cached name for the 'size_flags_changed' signal. + + + + + Cached name for the 'minimum_size_changed' signal. + + + + + Cached name for the 'theme_changed' signal. + + + + + A 2D convex polygon shape, intended for use in physics. Used internally in when it's in mode. + is solid, which means it detects collisions from objects that are fully inside it, unlike which is hollow. This makes it more suitable for both detection and physics. + Convex decomposition: A concave polygon can be split up into several convex polygons. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several nodes or by using the node in mode. To generate a collision polygon from a sprite, select the node, go to the Sprite2D menu that appears above the viewport, and choose Create Polygon2D Sibling. + Performance: is faster to check collisions against compared to , but it is slower than primitive collision shapes such as and . Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes. + + + + + The polygon's list of vertices that form a convex hull. Can be in either clockwise or counterclockwise order. + Warning: Only set this property to a list of points that actually form a convex hull. Use to generate the convex hull of an arbitrary set of points. + + + + + Based on the set of points provided, this assigns the property using the convex hull algorithm, removing all unneeded points. See for details. + + + + + Based on the set of points provided, this assigns the property using the convex hull algorithm, removing all unneeded points. See for details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'points' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_point_cloud' method. + + + + + Cached name for the 'set_points' method. + + + + + Cached name for the 'get_points' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D convex polyhedron shape, intended for use in physics. Usually used to provide a shape for a . + is solid, which means it detects collisions from objects that are fully inside it, unlike which is hollow. This makes it more suitable for both detection and physics. + Convex decomposition: A concave polyhedron can be split up into several convex polyhedra. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several nodes. To generate a convex decomposition from a mesh, select the node, go to the Mesh menu that appears above the viewport, and choose Create Multiple Convex Collision Siblings. Alternatively, can be called in a script to perform this decomposition at run-time. + Performance: is faster to check collisions against compared to , but it is slower than primitive collision shapes such as and . Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes. + + + + + The list of 3D points forming the convex polygon shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'points' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_points' method. + + + + + Cached name for the 'get_points' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 s. + + using Godot; + using System.Diagnostics; + + Crypto crypto = new Crypto(); + + // Generate new RSA key. + CryptoKey key = crypto.GenerateRsa(4096); + + // Generate new self-signed certificate with the given key. + X509Certificate 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); + + + + + + Generates a [] of cryptographically secure random bytes with given . + + + + + Generates an RSA that can be used for creating self-signed certificates and passed to . + + + + + Generates a self-signed from the given and . The certificate validity will be defined by and (first valid date and last valid date). The must contain at least "CN=" (common name, i.e. the domain name), "O=" (organization, i.e. your company name), "C=" (country, i.e. 2 lettered ISO-3166 code of the country the organization is based in). + A small example to generate an RSA key and an X509 self-signed certificate. + + var crypto = new Crypto(); + // Generate 4096 bits RSA key. + CryptoKey key = crypto.GenerateRsa(4096); + // Generate self-signed certificate using the given key. + X509Certificate cert = crypto.GenerateSelfSignedCertificate(key, "CN=mydomain.com,O=My Game Company,C=IT"); + + + + + + Sign a given of type with the provided private . + + + + + Sign a given of type with the provided private . + + + + + Verify that a given for of type against the provided public . + + + + + Verify that a given for of type against the provided public . + + + + + Encrypt the given with the provided public . + Note: The maximum size of accepted plaintext is limited by the key size. + + + + + Encrypt the given with the provided public . + Note: The maximum size of accepted plaintext is limited by the key size. + + + + + Decrypt the given with the provided private . + Note: The maximum size of accepted ciphertext is limited by the key size. + + + + + Decrypt the given with the provided private . + Note: The maximum size of accepted ciphertext is limited by the key size. + + + + + Generates an HMAC digest of using . The parameter is the hashing algorithm that is used for the inner and outer hashes. + Currently, only and are supported. + + + + + Generates an HMAC digest of using . The parameter is the hashing algorithm that is used for the inner and outer hashes. + Currently, only and are supported. + + + + + Compares two []s for equality without leaking timing information in order to prevent timing attacks. + See this blog post for more information. + + + + + Compares two []s for equality without leaking timing information in order to prevent timing attacks. + See this blog post for more information. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'generate_random_bytes' method. + + + + + Cached name for the 'generate_rsa' method. + + + + + Cached name for the 'generate_self_signed_certificate' method. + + + + + Cached name for the 'sign' method. + + + + + Cached name for the 'verify' method. + + + + + Cached name for the 'encrypt' method. + + + + + Cached name for the 'decrypt' method. + + + + + Cached name for the 'hmac_digest' method. + + + + + Cached name for the 'constant_time_compare' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The CryptoKey class represents a cryptographic key. Keys can be loaded and saved like any other . + They can be used to generate a self-signed via and as private key in along with the appropriate certificate. + + + + + Saves a key to the given . If is , only the public key will be saved. + Note: should be a "*.pub" file if is , a "*.key" file otherwise. + + + + + Loads a key from . If is , only the public key will be loaded. + Note: should be a "*.pub" file if is , a "*.key" file otherwise. + + + + + Returns if this CryptoKey only has the public part, and not the private one. + + + + + Returns a string containing the key in PEM format. If is , only the public key will be included. + + + + + Loads a key from the given . If is , only the public key will be loaded. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'is_public_only' method. + + + + + Cached name for the 'save_to_string' method. + + + + + Cached name for the 'load_from_string' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A cubemap is made of 6 textures organized in layers. They are typically used for faking reflections in 3D rendering (see ). 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 resources. + To create such a texture file yourself, reimport your image files using the Godot Editor import presets. The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). You can use one of the following templates as a base: + - 2×3 cubemap template (default layout option) + - 3×2 cubemap template + - 1×6 cubemap template + - 6×1 cubemap template + Note: Godot doesn't support using cubemaps in a . To use a cubemap as a skybox, convert the default to a using the Convert to ShaderMaterial resource dropdown option, then replace its code with the following: + + shader_type sky; + + uniform samplerCube source_panorama : filter_linear, source_color, hint_default_black; + uniform float exposure : hint_range(0, 128) = 1.0; + + void sky() { + // If importing a cubemap from another engine, you may need to flip one of the `EYEDIR` components below + // by replacing it with `-EYEDIR`. + vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z); + COLOR = texture(source_panorama, eyedir).rgb * exposure; + } + + After replacing the shader code and saving, specify the imported Cubemap resource in the Shader Parameters section of the ShaderMaterial in the inspector. + Alternatively, you can use this tool to convert a cubemap to an equirectangular sky map and use as usual. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + s are made of an array of s. Like 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 s is that they can be accessed in shader code using a single texture reference. In other words, you can pass multiple s into a shader using a single . s are allocated in adjacent cache regions on the GPU, which makes s the most efficient way to store multiple s. + Note: Godot uses s internally for many effects, including the if you set ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections to . To create such a texture file yourself, reimport your image files using the import presets of the File System dock. + Note: is not supported in the Compatibility renderer. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource describes a mathematical curve by defining a set of points and tangents at each point. By default, it ranges between 0 and 1 on the X and Y axes, but these ranges can be changed. + Please note that many resources and nodes assume they are given unit curves. A unit curve is a curve whose domain (the X axis) is between 0 and 1. Some examples of unit curve usage are and . + + + + + The tangent on this side of the point is user-defined. + + + + + The curve calculates the tangent on this side of the point as the slope halfway towards the adjacent point. + + + + + The total number of available tangent modes. + + + + + The minimum domain (x-coordinate) that points can have. + + + + + The maximum domain (x-coordinate) that points can have. + + + + + The minimum value (y-coordinate) that points can have. Tangents can cause lower values between points. + + + + + The maximum value (y-coordinate) that points can have. Tangents can cause higher values between points. + + + + + The number of points to include in the baked (i.e. cached) curve data. + + + + + The number of points describing the curve. + + + + + Adds a point to the curve. For each side, if the *_mode is , the *_tangent angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the *_tangent angle if *_mode is set to . + + + + + Removes the point at from the curve. + + + + + Removes all points from the curve. + + + + + Returns the curve coordinates for the point at . + + + + + Assigns the vertical position to the point at . + + + + + Sets the offset from 0.5. + + + + + Returns the Y value for the point that would exist at the X position along the curve. + + + + + Returns the Y value for the point that would exist at the X position along the curve using the baked cache. Bakes the curve's points if not already baked. + + + + + Returns the left tangent angle (in degrees) for the point at . + + + + + Returns the right tangent angle (in degrees) for the point at . + + + + + Returns the left for the point at . + + + + + Returns the right for the point at . + + + + + Sets the left tangent angle for the point at to . + + + + + Sets the right tangent angle for the point at to . + + + + + Sets the left for the point at to . + + + + + Sets the right for the point at to . + + + + + Returns the difference between and . + + + + + Returns the difference between and . + + + + + Removes duplicate points, i.e. points that are less than 0.00001 units (engine epsilon value) away from their neighbor on the curve. + + + + + Recomputes the baked cache of points for the curve. + + + + + Emitted when or is changed. + + + + + Emitted when or is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'min_domain' property. + + + + + Cached name for the 'max_domain' property. + + + + + Cached name for the 'min_value' property. + + + + + Cached name for the 'max_value' property. + + + + + Cached name for the '_limits' property. + + + + + Cached name for the 'bake_resolution' property. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'point_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_value' method. + + + + + Cached name for the 'set_point_offset' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'sample_baked' method. + + + + + Cached name for the 'get_point_left_tangent' method. + + + + + Cached name for the 'get_point_right_tangent' method. + + + + + Cached name for the 'get_point_left_mode' method. + + + + + Cached name for the 'get_point_right_mode' method. + + + + + Cached name for the 'set_point_left_tangent' method. + + + + + Cached name for the 'set_point_right_tangent' method. + + + + + Cached name for the 'set_point_left_mode' method. + + + + + Cached name for the 'set_point_right_mode' method. + + + + + Cached name for the 'get_min_value' method. + + + + + Cached name for the 'set_min_value' method. + + + + + Cached name for the 'get_max_value' method. + + + + + Cached name for the 'set_max_value' method. + + + + + Cached name for the 'get_value_range' method. + + + + + Cached name for the 'get_min_domain' method. + + + + + Cached name for the 'set_min_domain' method. + + + + + Cached name for the 'get_max_domain' method. + + + + + Cached name for the 'set_max_domain' method. + + + + + Cached name for the 'get_domain_range' method. + + + + + Cached name for the '_get_limits' method. + + + + + Cached name for the '_set_limits' method. + + + + + Cached name for the 'clean_dupes' method. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'get_bake_resolution' method. + + + + + Cached name for the 'set_bake_resolution' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'range_changed' signal. + + + + + Cached name for the 'domain_changed' signal. + + + + + This class describes a Bézier curve in 2D space. It is mainly used to give a shape to a , but can be manually sampled for other purposes. + It keeps a cache of precalculated points along the curve, to speed up further calculations. + + + + + The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the or function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care. + + + + + The number of points describing the curve. + + + + + Adds a point with the specified relative to the curve's own position, with control points and . Appends the new point at the end of the point list. + If is given, the new point is inserted before the existing point identified by index . Every existing point starting from is shifted further down the list of points. The index must be greater than or equal to 0 and must not exceed the number of existing points in the line. See . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Sets the position for the vertex . If the index is out of bounds, the function sends an error to the console. + + + + + Returns the position of the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0). + + + + + Sets the position of the control point leading to the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading to the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0). + + + + + Sets the position of the control point leading out of the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading out of the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0). + + + + + Deletes the point from the curve. Sends an error to the console if is out of bounds. + + + + + Removes all points from the curve. + + + + + Returns the position between the vertex and the vertex idx + 1, where controls if the point is the first vertex (t = 0.0), the last vertex (t = 1.0), or in between. Values of outside the range (0.0 <= t <= 1.0) give strange, but predictable results. + If is out of bounds it is truncated to the first or last vertex, and is ignored. If the curve has no points, the function sends an error to the console, and returns (0, 0). + + + + + Returns the position at the vertex . It calls using the integer part of as idx, and its fractional part as t. + + + + + Returns the total length of the curve, based on the cached points. Given enough density (see ), it should be approximate enough. + + + + + Returns a point within the curve at position , where is measured as a pixel distance along the curve. + To do that, it finds the two cached points where the lies between, then interpolates the values. This interpolation is cubic if is set to , or linear if set to . + Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough). + + + + + Similar to , but returns that includes a rotation along the curve, with Transform2D.origin as the point position and the Transform2D.x vector pointing in the direction of the path at that point. Returns an empty transform if the length of the curve is 0. + + var baked = curve.sample_baked_with_rotation(offset) + # The returned Transform2D can be set directly. + transform = baked + # You can also read the origin and rotation separately from the returned Transform2D. + position = baked.get_origin() + rotation = baked.get_rotation() + + + + + + Returns the cache of points as a []. + + + + + Returns the closest point on baked segments (in curve's local space) to . + must be in this curve's local space. + + + + + Returns the closest offset to . This offset is meant to be used in . + must be in this curve's local space. + + + + + Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts. + This approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough. + controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided. + + + + + Returns a list of points along the curve, with almost uniform density. controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls the maximal distance between two neighboring points, before the segment has to be subdivided. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bake_interval' property. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'point_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_in' method. + + + + + Cached name for the 'get_point_in' method. + + + + + Cached name for the 'set_point_out' method. + + + + + Cached name for the 'get_point_out' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'samplef' method. + + + + + Cached name for the 'set_bake_interval' method. + + + + + Cached name for the 'get_bake_interval' method. + + + + + Cached name for the 'get_baked_length' method. + + + + + Cached name for the 'sample_baked' method. + + + + + Cached name for the 'sample_baked_with_rotation' method. + + + + + Cached name for the 'get_baked_points' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_offset' method. + + + + + Cached name for the 'tessellate' method. + + + + + Cached name for the 'tessellate_even_length' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class describes a Bézier curve in 3D space. It is mainly used to give a shape to a , but can be manually sampled for other purposes. + It keeps a cache of precalculated points along the curve, to speed up further calculations. + + + + + If , and the curve has more than 2 control points, the last point and the first one will be connected in a loop. + + + + + The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the or function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care. + + + + + The number of points describing the curve. + + + + + If , the curve will bake up vectors used for orientation. This is used when is set to . Changing it forces the cache to be recomputed. + + + + + Adds a point with the specified relative to the curve's own position, with control points and . Appends the new point at the end of the point list. + If is given, the new point is inserted before the existing point identified by index . Every existing point starting from is shifted further down the list of points. The index must be greater than or equal to 0 and must not exceed the number of existing points in the line. See . + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Sets the position for the vertex . If the index is out of bounds, the function sends an error to the console. + + + + + Returns the position of the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0). + + + + + Sets the tilt angle in radians for the point . If the index is out of bounds, the function sends an error to the console. + The tilt controls the rotation along the look-at axis an object traveling the path would have. In the case of a curve controlling a , this tilt is an offset over the natural tilt the calculates. + + + + + Returns the tilt angle in radians for the point . If the index is out of bounds, the function sends an error to the console, and returns 0. + + + + + Sets the position of the control point leading to the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading to the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0). + + + + + Sets the position of the control point leading out of the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading out of the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0). + + + + + Deletes the point from the curve. Sends an error to the console if is out of bounds. + + + + + Removes all points from the curve. + + + + + Returns the position between the vertex and the vertex idx + 1, where controls if the point is the first vertex (t = 0.0), the last vertex (t = 1.0), or in between. Values of outside the range (0.0 >= t <=1) give strange, but predictable results. + If is out of bounds it is truncated to the first or last vertex, and is ignored. If the curve has no points, the function sends an error to the console, and returns (0, 0, 0). + + + + + Returns the position at the vertex . It calls using the integer part of as idx, and its fractional part as t. + + + + + Returns the total length of the curve, based on the cached points. Given enough density (see ), it should be approximate enough. + + + + + Returns a point within the curve at position , where is measured as a distance in 3D units along the curve. To do that, it finds the two cached points where the lies between, then interpolates the values. This interpolation is cubic if is set to , or linear if set to . + Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough). + + + + + Returns a with origin as point position, basis.x as sideway vector, basis.y as up vector, basis.z as forward vector. When the curve length is 0, there is no reasonable way to calculate the rotation, all vectors aligned with global space axes. See also . + + + + + Returns an up vector within the curve at position , where is measured as a distance in 3D units along the curve. To do that, it finds the two cached up vectors where the lies between, then interpolates the values. If is , an interpolated tilt is applied to the interpolated up vector. + If the curve has no up vectors, the function sends an error to the console, and returns (0, 1, 0). + + + + + Returns the cache of points as a []. + + + + + Returns the cache of tilts as a []. + + + + + Returns the cache of up vectors as a []. + If is , the cache will be empty. + + + + + Returns the closest point on baked segments (in curve's local space) to . + must be in this curve's local space. + + + + + Returns the closest offset to . This offset is meant to be used in or . + must be in this curve's local space. + + + + + Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts. + This approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough. + controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided. + + + + + Returns a list of points along the curve, with almost uniform density. controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls the maximal distance between two neighboring points, before the segment has to be subdivided. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'closed' property. + + + + + Cached name for the 'bake_interval' property. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'point_count' property. + + + + + Cached name for the 'up_vector_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_tilt' method. + + + + + Cached name for the 'get_point_tilt' method. + + + + + Cached name for the 'set_point_in' method. + + + + + Cached name for the 'get_point_in' method. + + + + + Cached name for the 'set_point_out' method. + + + + + Cached name for the 'get_point_out' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'samplef' method. + + + + + Cached name for the 'set_closed' method. + + + + + Cached name for the 'is_closed' method. + + + + + Cached name for the 'set_bake_interval' method. + + + + + Cached name for the 'get_bake_interval' method. + + + + + Cached name for the 'set_up_vector_enabled' method. + + + + + Cached name for the 'is_up_vector_enabled' method. + + + + + Cached name for the 'get_baked_length' method. + + + + + Cached name for the 'sample_baked' method. + + + + + Cached name for the 'sample_baked_with_rotation' method. + + + + + Cached name for the 'sample_baked_up_vector' method. + + + + + Cached name for the 'get_baked_points' method. + + + + + Cached name for the 'get_baked_tilts' method. + + + + + Cached name for the 'get_baked_up_vectors' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_offset' method. + + + + + Cached name for the 'tessellate' method. + + + + + Cached name for the 'tessellate_even_length' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 1D texture where pixel brightness corresponds to points on a unit 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 instead. See also and . + + + + + 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. + + + + + Store the curve only in the red channel. This saves video memory, but some custom shaders may not be able to work with this. + + + + + The width of the texture (in pixels). Higher values make it possible to represent high-frequency data better (such as sudden direction changes), at the cost of increased generation time and memory usage. + + + + + The format the texture should be generated with. When passing a CurveTexture as an input to a , this may need to be adjusted. + + + + + The that is rendered onto the texture. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'texture_mode' property. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached name for the 'set_texture_mode' method. + + + + + Cached name for the 'get_texture_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 1D texture where the red, green, and blue color channels correspond to points on 3 unit resources. Compared to using separate 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 instead. See also and . + + + + + The width of the texture (in pixels). Higher values make it possible to represent high-frequency data better (such as sudden direction changes), at the cost of increased generation time and memory usage. + + + + + The that is rendered onto the texture's red channel. Should be a unit . + + + + + The that is rendered onto the texture's green channel. Should be a unit . + + + + + The that is rendered onto the texture's blue channel. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'curve_x' property. + + + + + Cached name for the 'curve_y' property. + + + + + Cached name for the 'curve_z' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_curve_x' method. + + + + + Cached name for the 'get_curve_x' method. + + + + + Cached name for the 'set_curve_y' method. + + + + + Cached name for the 'get_curve_y' method. + + + + + Cached name for the 'set_curve_z' method. + + + + + Cached name for the 'get_curve_z' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a cylindrical . This class can be used to create cones by setting either the or properties to 0.0. + + + + + Top radius of the cylinder. If set to 0.0, the top faces will not be generated, resulting in a conic shape. See also . + + + + + Bottom radius of the cylinder. If set to 0.0, the bottom faces will not be generated, resulting in a conic shape. See also . + + + + + Full height of the cylinder. + + + + + Number of radial segments on the cylinder. Higher values result in a more detailed cylinder/cone at the cost of performance. + + + + + Number of edge rings along the height of the cylinder. Changing does not have any visual impact unless a shader or procedural mesh tool is used to alter the vertex data. Higher values result in more subdivisions, which can be used to create smoother-looking effects with shaders or procedural mesh tools (at the cost of performance). When not altering the vertex data using a shader or procedural mesh tool, should be kept to its default value. + + + + + If , generates a cap at the top of the cylinder. This can be set to to speed up generation and rendering when the cap is never seen by the camera. See also . + Note: If is 0.0, cap generation is always skipped even if is . + + + + + If , generates a cap at the bottom of the cylinder. This can be set to to speed up generation and rendering when the cap is never seen by the camera. See also . + Note: If is 0.0, cap generation is always skipped even if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'top_radius' property. + + + + + Cached name for the 'bottom_radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'cap_top' property. + + + + + Cached name for the 'cap_bottom' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_top_radius' method. + + + + + Cached name for the 'get_top_radius' method. + + + + + Cached name for the 'set_bottom_radius' method. + + + + + Cached name for the 'get_bottom_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_cap_top' method. + + + + + Cached name for the 'is_cap_top' method. + + + + + Cached name for the 'set_cap_bottom' method. + + + + + Cached name for the 'is_cap_bottom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D cylinder shape, intended for use in physics. Usually used to provide a shape for a . + Note: There are several known bugs with cylinder collision shapes. Using or instead is recommended. + Performance: is fast to check collisions against, but it is slower than , , and . + + + + + The cylinder's height. + + + + + The cylinder's radius. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used to store the state of a DTLS server. Upon it converts connected to accepting them via as DTLS clients. Under the hood, this class is used to store the DTLS state and cookies of the server. The reason of why the state and cookies are needed is outside of the scope of this documentation. + Below a small example of how to use it: + + // ServerNode.cs + using Godot; + + public partial class ServerNode : Node + { + private DtlsServer _dtls = new DtlsServer(); + private UdpServer _server = new UdpServer(); + private Godot.Collections.Array<PacketPeerDtls> _peers = new Godot.Collections.Array<PacketPeerDtls>(); + + public override void _Ready() + { + _server.Listen(4242); + var key = GD.Load<CryptoKey>("key.key"); // Your private key. + var cert = GD.Load<X509Certificate>("cert.crt"); // Your X509 certificate. + _dtls.Setup(key, cert); + } + + public override void _Process(double delta) + { + while (Server.IsConnectionAvailable()) + { + PacketPeerUdp peer = _server.TakeConnection(); + PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer); + if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking) + { + continue; // It is normal that 50% of the connections fails due to cookie exchange. + } + GD.Print("Peer connected!"); + _peers.Add(dtlsPeer); + } + + foreach (var p in _peers) + { + p.Poll(); // Must poll to update the state. + if (p.GetStatus() == PacketPeerDtls.Status.Connected) + { + while (p.GetAvailablePacketCount() > 0) + { + GD.Print($"Received Message From Client: {p.GetPacket().GetStringFromUtf8()}"); + p.PutPacket("Hello DTLS Client".ToUtf8Buffer()); + } + } + } + } + } + + + // ClientNode.cs + using Godot; + using System.Text; + + public partial class ClientNode : Node + { + private PacketPeerDtls _dtls = new PacketPeerDtls(); + private PacketPeerUdp _udp = new PacketPeerUdp(); + private bool _connected = false; + + public override void _Ready() + { + _udp.ConnectToHost("127.0.0.1", 4242); + _dtls.ConnectToPeer(_udp, validateCerts: false); // Use true in production for certificate validation! + } + + public override void _Process(double delta) + { + _dtls.Poll(); + if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected) + { + if (!_connected) + { + // Try to contact server + _dtls.PutPacket("The Answer Is..42!".ToUtf8Buffer()); + } + while (_dtls.GetAvailablePacketCount() > 0) + { + GD.Print($"Connected: {_dtls.GetPacket().GetStringFromUtf8()}"); + _connected = true; + } + } + } + } + + + + + + Setup the DTLS server to use the given . See . + + + + + Try to initiate the DTLS handshake with the given which must be already connected (see ). + Note: You must check that the state of the return PacketPeerUDP is , as it is normal that 50% of the new connections will be invalid due to cookie exchange. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached name for the 'take_connection' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The spring joint's maximum length. The two attached bodies cannot stretch it past this value. + + + + + When the bodies attached to the spring joint move they stretch or squash it. The joint always tries to resize towards this length. + + + + + The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length. + + + + + The spring joint's damping ratio. A value between 0 and 1. When the two bodies move into different directions the system tries to align them to the spring axis again. A high value forces the attached bodies to align faster. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'rest_length' property. + + + + + Cached name for the 'stiffness' property. + + + + + Cached name for the 'damping' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_rest_length' method. + + + + + Cached name for the 'get_rest_length' method. + + + + + Cached name for the 'set_stiffness' method. + + + + + Cached name for the 'get_stiffness' method. + + + + + Cached name for the 'set_damping' method. + + + + + Cached name for the 'get_damping' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + s are used to project a texture onto a in the scene. Use Decals to add detail to a scene without affecting the underlying . 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 and a group of s specifying , normal, ORM (ambient occlusion, roughness, metallic), and emission. Decals are projected within their 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 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. + Note: Decals cannot affect an underlying material's transparency, regardless of its transparency mode (alpha blend, alpha scissor, alpha hash, opaque pre-pass). This means translucent or transparent areas of a material will remain translucent or transparent even if an opaque decal is applied on them. + Note: Decals are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 decals can be displayed on each mesh resource. Attempting to display more than 8 decals on a single mesh resource will result in decals flickering in and out as the camera moves. + Note: When using the Mobile rendering method, decals will only correctly affect meshes whose visibility AABB intersects with the decal's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the decal may not be visible on the mesh. + + + + + corresponding to . + + + + + corresponding to . + + + + + corresponding to . + + + + + corresponding to . + + + + + Max size of enum. + + + + + Sets the size of the used by the decal. All dimensions must be set to a value greater than zero (they will be clamped to 0.001 if this is not the case). The AABB goes from -size/2 to size/2. + Note: To improve culling efficiency of "hard surface" decals, set their and to 0.0 and set the Y component of the as low as possible. This will reduce the decals' AABB size without affecting their appearance. + + + + + with the base of the Decal. Either this or the must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + + + + + with the per-pixel normal map for the decal. Use this to add extra detail to decals. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + Note: Setting this texture alone will not result in a visible decal, as must also be set. To create a normal-only decal, load an albedo texture into and set to 0.0. The albedo texture's alpha channel will be used to determine where the underlying surface's normal map should be overridden (and its intensity). + + + + + storing ambient occlusion, roughness, and metallic for the decal. Use this to add extra detail to decals. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + Note: Setting this texture alone will not result in a visible decal, as must also be set. To create an ORM-only decal, load an albedo texture into and set to 0.0. The albedo texture's alpha channel will be used to determine where the underlying surface's ORM map should be overridden (and its intensity). + + + + + with the emission of the Decal. Either this or the must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + + + + + Energy multiplier for the emission texture. This will make the decal emit light at a higher or lower intensity, independently of the albedo color. See also . + + + + + Changes the of the Decal by multiplying the albedo and emission colors with this value. The alpha component is only taken into account when multiplying the albedo color, not the emission color. See also and to change the emission and albedo intensity independently of each other. + + + + + Blends the albedo of the decal with albedo of the underlying mesh. This can be set to 0.0 to create a decal that only affects normal or ORM. In this case, an albedo texture is still required as its alpha channel will determine where the normal and ORM will be overridden. See also . + + + + + Fades the Decal if the angle between the Decal's and the target surface becomes too large. A value of 0 projects the Decal regardless of angle, a value of 1 limits the Decal to surfaces that are nearly perpendicular. + Note: Setting to a value greater than 0.0 has a small performance cost due to the added normal angle computations. + + + + + Sets the curve over which the decal will fade as the surface gets further from the center of the . Only positive values are valid (negative values will be clamped to 0.0). See also . + + + + + Sets the curve over which the decal will fade as the surface gets further from the center of the . Only positive values are valid (negative values will be clamped to 0.0). See also . + + + + + If , decals will smoothly fade away when far from the active starting at . The Decal will fade out over + , after which it will be culled and not sent to the shader at all. Use this to reduce the number of active Decals in a scene and thus improve performance. + + + + + The distance from the camera at which the Decal begins to fade away (in 3D units). + + + + + The distance over which the Decal fades (in 3D units). The Decal becomes slowly more transparent over this distance and is completely invisible at the end. Higher values result in a smoother fade-out transition, which is more suited when the camera moves fast. + + + + + Specifies which this decal will project on. By default, Decals affect all layers. This is used so you can specify which types of objects receive the Decal and which do not. This is especially useful so you can ensure that dynamic objects don't accidentally receive a Decal intended for the terrain under them. + + + + + Sets the associated with the specified . This is a convenience method, in most cases you should access the texture directly. + For example, instead of $Decal.set_texture(Decal.TEXTURE_ALBEDO, albedo_tex), use $Decal.texture_albedo = albedo_tex. + One case where this is better than accessing the texture directly is when you want to copy one Decal's textures to another. For example: + + for (int i = 0; i < (int)Decal.DecalTexture.Max; i++) + { + GetNode<Decal>("NewDecal").SetTexture(i, GetNode<Decal>("OldDecal").GetTexture(i)); + } + + + + + + Returns the associated with the specified . This is a convenience method, in most cases you should access the texture directly. + For example, instead of albedo_tex = $Decal.get_texture(Decal.TEXTURE_ALBEDO), use albedo_tex = $Decal.texture_albedo. + One case where this is better than accessing the texture directly is when you want to copy one Decal's textures to another. For example: + + for (int i = 0; i < (int)Decal.DecalTexture.Max; i++) + { + GetNode<Decal>("NewDecal").SetTexture(i, GetNode<Decal>("OldDecal").GetTexture(i)); + } + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'texture_albedo' property. + + + + + Cached name for the 'texture_normal' property. + + + + + Cached name for the 'texture_orm' property. + + + + + Cached name for the 'texture_emission' property. + + + + + Cached name for the 'emission_energy' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'albedo_mix' property. + + + + + Cached name for the 'normal_fade' property. + + + + + Cached name for the 'upper_fade' property. + + + + + Cached name for the 'lower_fade' property. + + + + + Cached name for the 'distance_fade_enabled' property. + + + + + Cached name for the 'distance_fade_begin' property. + + + + + Cached name for the 'distance_fade_length' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_emission_energy' method. + + + + + Cached name for the 'get_emission_energy' method. + + + + + Cached name for the 'set_albedo_mix' method. + + + + + Cached name for the 'get_albedo_mix' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_upper_fade' method. + + + + + Cached name for the 'get_upper_fade' method. + + + + + Cached name for the 'set_lower_fade' method. + + + + + Cached name for the 'get_lower_fade' method. + + + + + Cached name for the 'set_normal_fade' method. + + + + + Cached name for the 'get_normal_fade' method. + + + + + Cached name for the 'set_enable_distance_fade' method. + + + + + Cached name for the 'is_distance_fade_enabled' method. + + + + + Cached name for the 'set_distance_fade_begin' method. + + + + + Cached name for the 'get_distance_fade_begin' method. + + + + + Cached name for the 'set_distance_fade_length' method. + + + + + Cached name for the 'get_distance_fade_length' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used to manage directories and their content, even outside of the project folder. + 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 . Static methods only support absolute paths (including res:// and user://). + + # Standard + var dir = DirAccess.open("user://levels") + dir.make_dir("world1") + # Static + DirAccess.make_dir_absolute("user://levels/world1") + + Note: Accessing project ("res://") directories once exported may behave unexpectedly as some files are converted to engine-specific formats and their original source files may not be present in the expected PCK package. Because of this, to access resources in an exported project, it is recommended to use instead of . + Here is an example on how to iterate through the files of a directory: + + public void DirContents(string path) + { + using var dir = DirAccess.Open(path); + if (dir != null) + { + dir.ListDirBegin(); + string fileName = dir.GetNext(); + while (fileName != "") + { + if (dir.CurrentIsDir()) + { + GD.Print($"Found directory: {fileName}"); + } + else + { + GD.Print($"Found file: {fileName}"); + } + fileName = dir.GetNext(); + } + } + else + { + GD.Print("An error occurred when trying to access the path."); + } + } + + Keep in mind that file names may change or be remapped after export. If you want to see the actual resource file list as it appears in the editor, use instead. + + + + + If , . and .. are included when navigating the directory. + Affects and . + + + + + If , hidden files are included when navigating the directory. + Affects , and . + + + + + Creates a new object and opens an existing directory of the filesystem. The argument can be within the project tree (res://folder), the user directory (user://folder) or an absolute path of the user filesystem (e.g. /tmp/folder or C:\tmp\folder). + Returns if opening the directory failed. You can use to check the error that occurred. + + + + + Returns the result of the last call in the current thread. + + + + + Creates a temporary directory. This directory will be freed when the returned is freed. + If is not empty, it will be prefixed to the directory name, separated by a -. + If is , the directory is not deleted when the returned is freed. + Returns if opening the directory failed. You can use to check the error that occurred. + + + + + Initializes the stream used to list all files and directories using the function, closing the currently opened stream if needed. Once the stream has been processed, it should typically be closed with . + Affected by and . + Note: The order of files and directories returned by this method is not deterministic, and can vary between operating systems. If you want a list of all files or folders sorted alphabetically, use or . + + + + + Returns the next element (file or directory) in the current directory. + The name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty and closes the stream automatically (i.e. would not be mandatory in such a case). + + + + + Returns whether the current item processed with the last call is a directory (. and .. are considered directories). + + + + + Closes the current stream opened with (whether it has been fully processed with does not matter). + + + + + Returns a [] containing filenames of the directory contents, excluding directories. The array is sorted alphabetically. + Affected by . + Note: When used on a res:// path in an exported project, only the files actually included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level .godot/ folder, only paths to *.gd and *.import files are returned (plus a few files such as project.godot or project.binary and the project icon). In an exported project, the list of returned files will also vary depending on whether ProjectSettings.editor/export/convert_text_resources_to_binary is . + + + + + Returns a [] containing filenames of the directory contents, excluding directories, at the given . The array is sorted alphabetically. + Use if you want more control of what gets included. + Note: When used on a res:// path in an exported project, only the files included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level .godot/ folder, only paths to .gd and .import files are returned (plus a few other files, such as project.godot or project.binary and the project icon). In an exported project, the list of returned files will also vary depending on ProjectSettings.editor/export/convert_text_resources_to_binary. + + + + + Returns a [] containing filenames of the directory contents, excluding files. The array is sorted alphabetically. + Affected by and . + Note: The returned directories in the editor and after exporting in the res:// directory may differ as some files are converted to engine-specific formats when exported. + + + + + Returns a [] containing filenames of the directory contents, excluding files, at the given . The array is sorted alphabetically. + Use if you want more control of what gets included. + Note: The returned directories in the editor and after exporting in the res:// directory may differ as some files are converted to engine-specific formats when exported. + + + + + On Windows, returns the number of drives (partitions) mounted on the current filesystem. + On macOS, returns the number of mounted volumes. + On Linux, returns the number of mounted volumes and GTK 3 bookmarks. + On other platforms, the method returns 0. + + + + + On Windows, returns the name of the drive (partition) passed as an argument (e.g. C:). + On macOS, returns the path to the mounted volume passed as an argument. + On Linux, returns the path to the mounted volume or GTK 3 bookmark passed as an argument. + On other platforms, or if the requested drive does not exist, the method returns an empty String. + + + + + Returns the currently opened directory's drive index. See to convert returned index to the name of the drive. + + + + + Changes the currently opened directory to the one passed as an argument. The argument can be relative to the current directory (e.g. newdir or ../newdir), or an absolute path (e.g. /tmp/newdir or res://somedir/newdir). + Returns one of the code constants ( on success). + Note: The new directory must be within the same scope, e.g. when you had opened a directory inside res://, you can't change it to user:// directory. If you need to open a directory in another access scope, use to create a new instance instead. + + + + + Returns the absolute path to the currently opened directory (e.g. res://folder or C:\tmp\folder). + + + + + Creates a directory. The argument can be relative to the current directory, or an absolute path. The target directory should be placed in an already existing directory (to create the full path recursively, see ). + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Creates a target directory and all necessary intermediate directories in its path, by calling recursively. The argument can be relative to the current directory, or an absolute path. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path. + For a static equivalent, use . + Note: Many resources types are imported (e.g. textures or sound files), and their source asset will not be included in the exported game, as only the imported version is used. See for an alternative approach that takes resource remapping into account. + + + + + Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path. + Note: The returned in the editor and after exporting when used on a path in the res:// directory may be different. Some files are converted to engine-specific formats when exported, potentially changing the directory structure. + + + + + Static version of . Supports only absolute paths. + Note: The returned in the editor and after exporting when used on a path in the res:// directory may be different. Some files are converted to engine-specific formats when exported, potentially changing the directory structure. + + + + + Returns the available space on the current directory's disk, in bytes. Returns 0 if the platform-specific method to query the available space fails. + + + + + Copies the file to the destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten. + If is different than -1, the Unix permissions for the destination path will be set to the provided value, if available on the current operating system. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Renames (move) the file or directory to the destination. Both arguments should be paths to files or directories, either relative or absolute. If the destination file or directory exists and is not access-protected, it will be overwritten. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Permanently deletes the target file or an empty directory. The argument can be relative to the current directory, or an absolute path. If the target directory is not empty, the operation will fail. + If you don't want to delete the file/directory permanently, use instead. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Returns if the file or directory is a symbolic link, directory junction, or other reparse point. + Note: This method is implemented on macOS, Linux, and Windows. + + + + + Returns target of the symbolic link. + Note: This method is implemented on macOS, Linux, and Windows. + + + + + Creates symbolic link between files or folders. + Note: On Windows, this method works only if the application is running with elevated privileges or Developer Mode is enabled. + Note: This method is implemented on macOS, Linux, and Windows. + + + + + Returns if the directory is a macOS bundle. + Note: This method is implemented on macOS. + + + + + Returns if the file system or directory use case sensitive file names. + Note: This method is implemented on macOS, Linux (for EXT4 and F2FS filesystems only) and Windows. On other platforms, it always returns . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'include_navigational' property. + + + + + Cached name for the 'include_hidden' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'get_open_error' method. + + + + + Cached name for the 'create_temp' method. + + + + + Cached name for the 'list_dir_begin' method. + + + + + Cached name for the 'get_next' method. + + + + + Cached name for the 'current_is_dir' method. + + + + + Cached name for the 'list_dir_end' method. + + + + + Cached name for the 'get_files' method. + + + + + Cached name for the 'get_files_at' method. + + + + + Cached name for the 'get_directories' method. + + + + + Cached name for the 'get_directories_at' method. + + + + + Cached name for the 'get_drive_count' method. + + + + + Cached name for the 'get_drive_name' method. + + + + + Cached name for the 'get_current_drive' method. + + + + + Cached name for the 'change_dir' method. + + + + + Cached name for the 'get_current_dir' method. + + + + + Cached name for the 'make_dir' method. + + + + + Cached name for the 'make_dir_absolute' method. + + + + + Cached name for the 'make_dir_recursive' method. + + + + + Cached name for the 'make_dir_recursive_absolute' method. + + + + + Cached name for the 'file_exists' method. + + + + + Cached name for the 'dir_exists' method. + + + + + Cached name for the 'dir_exists_absolute' method. + + + + + Cached name for the 'get_space_left' method. + + + + + Cached name for the 'copy' method. + + + + + Cached name for the 'copy_absolute' method. + + + + + Cached name for the 'rename' method. + + + + + Cached name for the 'rename_absolute' method. + + + + + Cached name for the 'remove' method. + + + + + Cached name for the 'remove_absolute' method. + + + + + Cached name for the 'is_link' method. + + + + + Cached name for the 'read_link' method. + + + + + Cached name for the 'create_link' method. + + + + + Cached name for the 'is_bundle' method. + + + + + Cached name for the 'set_include_navigational' method. + + + + + Cached name for the 'get_include_navigational' method. + + + + + Cached name for the 'set_include_hidden' method. + + + + + Cached name for the 'get_include_hidden' method. + + + + + Cached name for the 'is_case_sensitive' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A directional light is a type of node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene (for example: to model sunlight or moonlight). + Note: 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 . + + + + + The height of the light. Used with 2D normal mapping. Ranges from 0 (parallel to the plane) to 1 (perpendicular to the plane). + + + + + The maximum distance from the camera center objects can be before their shadows are culled (in pixels). Decreasing this value can prevent objects located outside the camera from casting shadows (while also improving performance). is not taken into account by , which means that at higher zoom values, shadows will appear to fade out sooner when zooming onto a given point. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A directional light is a type of 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. + + + + + 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. + + + + + Splits the view frustum in 2 areas, each with its own shadow map. This shadow mode is a compromise between and in terms of performance. + + + + + Splits the view frustum in 4 areas, each with its own shadow map. This is the slowest directional shadow mode. + + + + + Makes the light visible in both scene lighting and sky rendering. + + + + + 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. + + + + + 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). + + + + + The light's shadow rendering algorithm. See . + + + + + The distance from camera to shadow split 1. Relative to . Only used when is or . + + + + + The distance from shadow split 1 to split 2. Relative to . Only used when is . + + + + + The distance from shadow split 2 to split 3. Relative to . Only used when is . + + + + + If , shadow detail is sacrificed in exchange for smoother transitions between splits. Enabling shadow blend splitting also has a moderate performance cost. This is ignored when is . + + + + + Proportion of at which point the shadow starts to fade. At , the shadow will disappear. The default value is a balance between smooth fading and distant shadow visibility. If the camera moves fast and the is low, consider lowering below 0.8 to make shadow transitions less noticeable. On the other hand, if you tuned to cover the entire scene, you can set to 1.0 to prevent the shadow from fading in the distance (it will suddenly cut off instead). + + + + + 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). + + + + + 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 0 turns off the pancaking effect. + + + + + Set whether this is visible in the sky, in the scene, or both in the sky and in the scene. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'directional_shadow_mode' property. + + + + + Cached name for the 'directional_shadow_split_1' property. + + + + + Cached name for the 'directional_shadow_split_2' property. + + + + + Cached name for the 'directional_shadow_split_3' property. + + + + + Cached name for the 'directional_shadow_blend_splits' property. + + + + + Cached name for the 'directional_shadow_fade_start' property. + + + + + Cached name for the 'directional_shadow_max_distance' property. + + + + + Cached name for the 'directional_shadow_pancake_size' property. + + + + + Cached name for the 'sky_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shadow_mode' method. + + + + + Cached name for the 'get_shadow_mode' method. + + + + + Cached name for the 'set_blend_splits' method. + + + + + Cached name for the 'is_blend_splits_enabled' method. + + + + + Cached name for the 'set_sky_mode' method. + + + + + Cached name for the 'get_sky_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles everything related to window management. It is separated from as a single operating system may support multiple display servers. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + Represents the screen containing the mouse pointer. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + Represents the screen containing the window with the keyboard focus. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + Represents the primary screen. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + Represents the screen where the main window is located. This is usually the default value in functions that allow specifying one of several screens. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + The ID of the main window spawned by the engine, which can be passed to methods expecting a window_id. + + + + + The ID that refers to a nonexistent window. This is returned by some methods if no window matches the requested result. + + + + + The ID that refers to a nonexistent application status indicator. + + + + + Display server supports global menu. This allows the application to display its menu items in the operating system's top bar. macOS + + + + + Display server supports multiple windows that can be moved outside of the main window. Windows, macOS, Linux (X11) + + + + + Display server supports touchscreen input. Windows, Linux (X11), Android, iOS, Web + + + + + Display server supports mouse input. Windows, macOS, Linux (X11/Wayland), Android, Web + + + + + Display server supports warping mouse coordinates to keep the mouse cursor constrained within an area, but looping when one of the edges is reached. Windows, macOS, Linux (X11/Wayland) + + + + + Display server supports setting and getting clipboard data. See also . Windows, macOS, Linux (X11/Wayland), Android, iOS, Web + + + + + Display server supports popping up a virtual keyboard when requested to input text without a physical keyboard. Android, iOS, Web + + + + + Display server supports setting the mouse cursor shape to be different from the default. Windows, macOS, Linux (X11/Wayland), Android, Web + + + + + Display server supports setting the mouse cursor shape to a custom image. Windows, macOS, Linux (X11/Wayland), Web + + + + + Display server supports spawning text dialogs using the operating system's native look-and-feel. See . Windows, macOS + + + + + Display server supports Input Method Editor, which is commonly used for inputting Chinese/Japanese/Korean text. This is handled by the operating system, rather than by Godot. Windows, macOS, Linux (X11) + + + + + Display server supports windows can use per-pixel transparency to make windows behind them partially or fully visible. Windows, macOS, Linux (X11/Wayland) + + + + + Display server supports querying the operating system's display scale factor. This allows for reliable 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). Windows, Linux (Wayland), macOS + + + + + Display server supports changing the window icon (usually displayed in the top-left corner). Windows, macOS, Linux (X11) + + + + + Display server supports changing the window icon (usually displayed in the top-left corner). Windows, macOS + + + + + Display server supports changing the screen orientation. Android, iOS + + + + + Display server supports V-Sync status can be changed from the default (which is forced to be enabled platforms not supporting this feature). Windows, macOS, Linux (X11/Wayland) + + + + + Display server supports Primary clipboard can be used. This is a different clipboard from . Linux (X11/Wayland) + + + + + Display server supports text-to-speech. See tts_* methods. Windows, macOS, Linux (X11/Wayland), Android, iOS, Web + + + + + Display server supports expanding window content to the title. See . macOS + + + + + Display server supports reading screen pixels. See . + + + + + Display server supports application status indicators. + + + + + Display server supports native help system search callbacks. See . + + + + + Display server supports spawning text input dialogs using the operating system's native look-and-feel. See . Windows, macOS + + + + + Display server supports spawning dialogs for selecting files or directories using the operating system's native look-and-feel. See . Windows, macOS, Linux (X11/Wayland), Android + + + + + The display server supports all features of , with the added functionality of Options and native dialog file access to res:// and user:// paths. See and . Windows, macOS, Linux (X11/Wayland) + + + + + The display server supports initiating window drag operation on demand. See . + + + + + Display server supports window flag. + + + + + Makes the mouse cursor visible if it is hidden. + + + + + Makes the mouse cursor hidden if it is visible. + + + + + Captures the mouse. The mouse will be hidden and its position locked at the center of the window manager's window. + Note: If you want to process the mouse's movement in this mode, you need to use . + + + + + Confines the mouse cursor to the game window, and make it visible. + + + + + Confines the mouse cursor to the game window, and make it hidden. + + + + + Default landscape orientation. + + + + + Default portrait orientation. + + + + + Reverse landscape orientation (upside down). + + + + + Reverse portrait orientation (upside down). + + + + + Automatic landscape orientation (default or reverse depending on sensor). + + + + + Automatic portrait orientation (default or reverse depending on sensor). + + + + + Automatic landscape or portrait orientation (default or reverse depending on sensor). + + + + + Default text virtual keyboard. + + + + + Multiline virtual keyboard. + + + + + Virtual number keypad, useful for PIN entry. + + + + + Virtual number keypad, useful for entering fractional numbers. + + + + + Virtual phone number keypad. + + + + + Virtual keyboard with additional keys to assist with typing email addresses. + + + + + Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization. + Note: This is not supported on Web. Instead, this behaves identically to . + + + + + Virtual keyboard with additional keys to assist with typing URLs. + + + + + Arrow cursor shape. This is the default when not pointing anything that overrides the mouse cursor, such as a or . + + + + + I-beam cursor shape. This is used by default when hovering a control that accepts text input, such as or . + + + + + Pointing hand cursor shape. This is used by default when hovering a or a URL tag in a . + + + + + 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. + + + + + Wait cursor. On most cursor themes, this displays a spinning icon besides the arrow. Intended to be used for non-blocking operations (when the user can do something else at the moment). See also . + + + + + Wait cursor. On most cursor themes, this replaces 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 . + + + + + Dragging hand cursor. This is displayed during drag-and-drop operations. See also . + + + + + "Can drop" cursor. This is displayed during drag-and-drop operations if hovering over a 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 . + + + + + Forbidden cursor. This is displayed during drag-and-drop operations if the hovered can't accept the drag-and-drop event. + + + + + Vertical resize cursor. Intended to be displayed when the hovered can be vertically resized using the mouse. See also . + + + + + Horizontal resize cursor. Intended to be displayed when the hovered can be horizontally resized using the mouse. See also . + + + + + Secondary diagonal resize cursor (top-right/bottom-left). Intended to be displayed when the hovered can be resized on both axes at once using the mouse. + + + + + Main diagonal resize cursor (top-left/bottom-right). Intended to be displayed when the hovered can be resized on both axes at once using the mouse. + + + + + Move cursor. Intended to be displayed when the hovered can be moved using the mouse. + + + + + Vertical split cursor. This is displayed when hovering a with splits that can be vertically resized using the mouse, such as . On some cursor themes, this cursor may have the same appearance as . + + + + + Horizontal split cursor. This is displayed when hovering a with splits that can be horizontally resized using the mouse, such as . On some cursor themes, this cursor may have the same appearance as . + + + + + 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. + + + + + Represents the size of the enum. + + + + + The native file dialog allows selecting one, and only one file. + + + + + The native file dialog allows selecting multiple files. + + + + + The native file dialog only allows selecting a directory, disallowing the selection of any file. + + + + + The native file dialog allows selecting one file or directory. + + + + + The native file dialog will warn when a file exists. + + + + + Windowed mode, i.e. doesn't occupy the whole screen (unless set to the size of the screen). + + + + + Minimized window mode, i.e. is not visible and available on window manager's window list. Normally happens when the minimize button is pressed. + + + + + Maximized window mode, i.e. will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Multi-window full-screen mode has a 1px border of the ProjectSettings.rendering/environment/defaults/default_clear_color color. + On macOS: A new desktop is used to display the running project. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Depending on video driver, full screen transition might cause screens to go black for a moment. + On macOS: 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. + On Linux (X11): Exclusive full screen mode bypasses compositor. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + The window can't be resized by dragging its resize grip. It's still possible to resize the window using . This flag is ignored for full screen windows. + + + + + The window do not have native title bar and other decorations. This flag is ignored for full-screen windows. + + + + + The window is floating on top of all other windows. This flag is ignored for full-screen windows. + + + + + The window background can be transparent. + Note: This flag has no effect if returns . + Note: Transparency support is implemented on Linux (X11/Wayland), macOS, and Windows, but availability might vary depending on GPU driver, display manager, and compositor capabilities. + + + + + The window can't be focused. No-focus window will ignore all input, except mouse clicks. + + + + + Window is part of menu or 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 ). + + + + + 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 to adjust minimize/maximize/close buttons offset. + Use to determine area under the title bar that is not covered by decorations. + Note: This flag is implemented only on macOS. + + + + + All mouse events are passed to the underlying window of the same application. + + + + + Window style is overridden, forcing sharp corners. + Note: This flag is implemented only on Windows (11). + + + + + Windows is excluded from screenshots taken by , , and . + Note: This flag is implemented on macOS and Windows. + Note: Setting this flag will NOT prevent other apps from capturing an image, it should not be used as a security measure. + + + + + Max value of the . + + + + + Sent when the mouse pointer enters the window. + + + + + Sent when the mouse pointer exits the window. + + + + + Sent when the window grabs focus. + + + + + Sent when the window loses focus. + + + + + Sent when the user has attempted to close the window (e.g. close button is pressed). + + + + + Sent when the device "Back" button is pressed. + Note: This event is implemented only on Android. + + + + + Sent when the window is moved to the display with different DPI, or display DPI is changed. + Note: This flag is implemented only on macOS. + + + + + Sent when the window title bar decoration is changed (e.g. is set or window entered/exited full screen mode). + Note: This flag is implemented only on macOS. + + + + + No vertical synchronization, which means the engine will display frames as fast as possible (tearing may be visible). Framerate is unlimited (regardless of ). + + + + + 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 ). + + + + + Behaves like 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 ). Behaves like when using the Compatibility rendering method. + + + + + 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 ). + Although not guaranteed, the images can be rendered as fast as possible, which may reduce input lag (also called "Fast" V-Sync mode). works best when at least twice as many frames as the display refresh rate are rendered. Behaves like when using the Compatibility rendering method. + + + + + Display handle: + - Linux (X11): X11::Display* for the display. + - Linux (Wayland): wl_display for the display. + - Android: EGLDisplay for the display. + + + + + Window handle: + - Windows: HWND for the window. + - Linux (X11): X11::Window* for the window. + - Linux (Wayland): wl_surface for the window. + - macOS: NSWindow* for the window. + - iOS: UIViewController* for the view controller. + - Android: jObject for the activity. + + + + + Window view: + - Windows: HDC for the window (only with the Compatibility renderer). + - macOS: NSView* for the window main view. + - iOS: UIView* for the window main view. + + + + + OpenGL context (only with the Compatibility renderer): + - Windows: HGLRC for the window (native GL), or EGLContext for the window (ANGLE). + - Linux (X11): GLXContext* for the window. + - Linux (Wayland): EGLContext for the window. + - macOS: NSOpenGLContext* for the window (native GL), or EGLContext for the window (ANGLE). + - Android: EGLContext for the window. + + + + + - Windows: EGLDisplay for the window (ANGLE). + - macOS: EGLDisplay for the window (ANGLE). + - Linux (Wayland): EGLDisplay for the window. + + + + + - Windows: EGLConfig for the window (ANGLE). + - macOS: EGLConfig for the window (ANGLE). + - Linux (Wayland): EGLConfig for the window. + + + + + Utterance has begun to be spoken. + + + + + Utterance was successfully finished. + + + + + Utterance was canceled, or TTS service was unable to process it. + + + + + Utterance reached a word or sentence boundary. + + + + + Returns if the specified is supported by the current , otherwise. + + + + + Returns the name of the currently in use. Most operating systems only have a single , but Linux has access to more than one (currently X11 and Wayland). + The names of built-in display servers are Windows, macOS, X11 (Linux), Wayland (Linux), Android, iOS, web (HTML5), and headless (when started with the --headless command line argument). + + + + + Sets native help system search callbacks. + has the following arguments: String search_string, int result_limit and return a with "key, display name" pairs for the search results. Called when the user enters search terms in the Help menu. + has the following arguments: String key. Called when the user selects a search result in the Help menu. + Note: This method is implemented only on macOS. + + + + + Registers callables to emit when the menu is respectively about to show or closed. Callback methods should have zero arguments. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the ID of the global menu root that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a separator between items to the global menu with ID . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checked. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Returns the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented only on macOS. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns the icon of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented only on macOS. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Sets the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets the submenu of the item at index . The submenu is the ID of a global menu root that would be shown when the item is clicked. + Note: This method is implemented only on macOS. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented only on macOS. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Replaces the icon of the specified . + Note: This method is implemented only on macOS. + Note: This method is not supported by macOS "_dock" menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu with ID . + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented only on macOS. + + + + + Removes all items from the global menu with ID . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns Dictionary of supported system menu IDs and names. + Note: This method is implemented only on macOS. + + + + + Returns if the synthesizer is generating speech, or have utterance waiting in the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if the synthesizer is in a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an of voice information dictionaries. + Each contains two entries: + - name is voice name. + - id is voice identifier. + - language is language code in lang_Variant format. The lang part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The Variant part is an engine-dependent string describing country, region or/and dialect. + Note that Godot depends on system libraries for text-to-speech functionality. These libraries are installed by default on Windows and macOS, but not on all Linux distributions. If they are not present, this method will return an empty list. This applies to both Godot users on Linux, as well as end-users on Linux running Godot games that use text-to-speech. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an [] of voice identifiers for the . + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds an utterance to the queue. If is , the queue is cleared first. + - identifier is one of the "id" values returned by or one of the values returned by . + - ranges from 0 (lowest) to 100 (highest). + - ranges from 0.0 (lowest) to 2.0 (highest), 1.0 is default pitch for the current voice. + - ranges from 0.1 (lowest) to 10.0 (highest), 1.0 is a normal speaking rate. Other values act as a percentage relative. + - is passed as a parameter to the callback functions. + Note: On Windows and Linux (X11/Wayland), utterance can use SSML markup. SSML support is engine and voice dependent. If the engine does not support SSML, you should strip out all XML markup before calling . + Note: The granularity of pitch, rate, and volume is engine and voice dependent. Values may be truncated. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Puts the synthesizer into a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Resumes the synthesizer if it was paused. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Stops synthesis in progress and removes all utterances from the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Linux), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds a callback, which is called when the utterance has started, finished, canceled or reached a text boundary. + - , , and callable's method should take one parameter, the utterance ID. + - callable's method should take two parameters, the index of the character and the utterance ID. + Note: The granularity of the boundary callbacks is engine dependent. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if OS supports dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns if OS is using dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns OS theme accent color. Returns Color(0, 0, 0, 0), if accent color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Returns the OS theme base color (default control background). Returns Color(0, 0, 0, 0) if the base color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Sets the that should be called when system theme settings are changed. Callback method should have zero arguments. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Sets the current mouse mode. See also . + + + + + Returns the current mouse mode. See also . + + + + + Sets the mouse cursor position to the given relative to an origin at the upper left corner of the currently focused game Window Manager window. + Note: is only supported on Windows, macOS, and Linux (X11/Wayland). It has no effect on Android, iOS, and Web. + + + + + Returns the mouse cursor's current position in screen coordinates. + + + + + Returns the current state of mouse buttons (whether each button is pressed) as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the user's clipboard content to the given string. + + + + + Returns the user's clipboard as a string if possible. + + + + + Returns the user's clipboard as an image if possible. + Note: This method uses the copied pixel data, e.g. from a image editing software or a web browser, not an image file copied from file explorer. + + + + + Returns if there is a text content on the user's clipboard. + + + + + Returns if there is an image content on the user's clipboard. + + + + + Sets the user's primary clipboard content to the given string. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns the user's primary clipboard as a string if possible. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns an of , each of which is the bounding rectangle for a display cutout or notch. These are non-functional areas on edge-to-edge screens used by cameras and sensors. Returns an empty array if the device does not have cutouts. See also . + Note: Currently only implemented on Android. Other platforms will return an empty array even if they do have display cutouts or notches. + + + + + Returns the unobscured area of the display where interactive controls should be rendered. See also . + + + + + Returns the number of displays available. + + + + + Returns index of the primary screen. + + + + + Returns the index of the screen containing the window with the keyboard focus, or the primary screen if there's no focused window. + + + + + Returns the index of the screen that overlaps the most with the given rectangle. Returns -1 if the rectangle doesn't overlap with any screen or has no area. + + + + + Returns the screen's top-left corner position in pixels. On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also . + Note: On Linux (Wayland) this method always returns (0, 0). + + + + + Returns the screen's size in pixels. See also and . + + + + + Returns the portion of the screen that is not obstructed by a status bar in pixels. See also . + + + + + Returns the dots per inch density of the specified screen. If is (the default value), a screen with the main window will be used. + Note: On macOS, returned value is inaccurate if fractional display scaling mode is used. + Note: On Android devices, the actual screen densities are grouped into six generalized densities: + + ldpi - 120 dpi + mdpi - 160 dpi + hdpi - 240 dpi + xhdpi - 320 dpi + xxhdpi - 480 dpi + xxxhdpi - 640 dpi + + Note: This method is implemented on Android, Linux (X11/Wayland), macOS and Windows. Returns 72 on unsupported platforms. + + + + + Returns the scale factor of the specified screen by index. + Note: On macOS, the returned value is 2.0 for hiDPI (Retina) screens, and 1.0 for all other cases. + Note: On Linux (Wayland), the returned value is accurate only when is . Due to API limitations, passing a direct index will return a rounded-up integer, if the screen has a fractional scale (e.g. 1.25 would get rounded up to 2.0). + Note: This method is implemented on Android, iOS, Web, macOS, and Linux (Wayland). + + + + + Returns if touch events are available (Android or iOS), the capability is detected on the Web platform or if ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is . + + + + + Returns the greatest scale factor of all screens. + Note: On macOS returned value is 2.0 if there is at least one hiDPI (Retina) screen in the system, and 1.0 in all other cases. + Note: This method is implemented only on macOS. + + + + + Returns the current refresh rate of the specified screen. If is (the default value), a screen with the main window will be used. + Note: Returns -1.0 if the DisplayServer fails to find the refresh rate for the specified screen. On Web, will always return -1.0 as there is no way to retrieve the refresh rate on that platform. + To fallback to a default refresh rate if the method fails, try: + + var refresh_rate = DisplayServer.screen_get_refresh_rate() + if refresh_rate < 0: + refresh_rate = 60.0 + + + + + + Returns color of the display pixel at the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the screen . + Note: This method is implemented on macOS and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Sets the 's . See also . + Note: On iOS, this method has no effect if ProjectSettings.display/window/handheld/orientation is not set to . + + + + + Returns the 's current orientation. See also . + Note: This method is implemented on Android and iOS. + + + + + Sets whether the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns if the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns the list of Godot window IDs belonging to this process. + Note: Native dialogs are not included in this list. + + + + + Returns the ID of the window at the specified screen (in pixels). On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + + + + + Returns internal structure pointers for use in plugins. + Note: This method is implemented on Android, Linux (X11/Wayland), macOS, and Windows. + + + + + Returns ID of the active popup window, or if there is none. + + + + + Sets the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. Clicking this area will not auto-close this popup. + + + + + Returns the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. + + + + + Sets the title of the given window to . + Note: It's recommended to change this value using instead. + Note: Avoid changing the window title every frame, as this can cause performance issues on certain window managers. Try to change the window title only a few times per second at most. + + + + + Returns the estimated window title bar size (including text and window buttons) for the window specified by (in pixels). This method does not change the window title. + Note: This method is implemented on macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Returns the screen the window specified by is currently positioned on. If the screen overlaps multiple displays, the screen where the window's center is located is returned. See also . + + + + + Moves the window specified by to the specified . See also . + + + + + Returns the position of the client area of the given window on the screen. + + + + + Returns the position of the given window on the screen including the borders drawn by the operating system. See also . + + + + + Sets the position of the given window to . On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also and . + Note: It's recommended to change this value using instead. + Note: On Linux (Wayland): this method is a no-op. + + + + + Returns the size of the window specified by (in pixels), excluding the borders drawn by the operating system. This is also called the "client area". See also , and . + + + + + Sets the size of the given window to (in pixels). See also and . + Note: It's recommended to change this value using instead. + + + + + Sets the that will be called when the window specified by is moved or resized. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that will be called when an event occurs in the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when any is sent to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when text is entered using the virtual keyboard to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when files are dropped from the operating system's file manager to the window specified by . should take one [] argument, which is the list of dropped files. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + Note: This method is implemented on Windows, macOS, Linux (X11/Wayland), and Web. + + + + + Returns the of the the is attached to. + + + + + Returns the window's maximum size (in pixels). See also . + + + + + Sets the maximum size of the window specified by in pixels. Normally, the user will not be able to drag the window to make it larger than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the window's minimum size (in pixels). See also . + + + + + Sets the minimum size for the given window to in pixels. Normally, the user will not be able to drag the window to make it smaller than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: By default, the main window has a minimum size of Vector2i(64, 64). This prevents issues that can arise when the window is resized to a near-zero size. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the size of the window specified by (in pixels), including the borders drawn by the operating system. See also . + + + + + Returns the mode of the given window. + + + + + Sets window mode for the given window to . See for possible values and how each mode behaves. + Note: On Android, setting it to or will enable immersive mode. + Note: Setting the window to full screen forcibly sets the borderless flag to , so make sure to set it back to when not wanted. + + + + + Enables or disables the given window's given . See for possible values and their behavior. + + + + + Returns the current value of the given window's . + + + + + When flag is set, set offset to the center of the first titlebar button. + Note: This flag is implemented only on macOS. + + + + + Returns left margins (x), right margins (y) and height (z) of the title that are safe to use (contains no buttons or other elements) when flag is set. + + + + + Makes the window specified by request attention, which is materialized by the window title and taskbar entry blinking until the window is focused. This usually has no visible effect if the window is currently focused. The exact behavior varies depending on the operating system. + + + + + Moves the window specified by to the foreground, so that it is visible over other windows. + + + + + Returns if the window specified by is focused. + + + + + Returns if anything can be drawn in the window specified by , otherwise. Using the --disable-render-loop command line argument or a headless build will return . + + + + + Sets window transient parent. Transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. + Note: It's recommended to change this value using instead. + Note: The behavior might be different depending on the platform. + + + + + If set to , this window will always stay on top of its parent window, parent window will ignore input while this window is opened. + Note: On macOS, exclusive windows are confined to the same space (virtual desktop or screen) as the parent window. + Note: This method is implemented on macOS and Windows. + + + + + Sets whether Input Method Editor should be enabled for the window specified by . See also . + + + + + Sets the position of the Input Method Editor popup for the specified . Only effective if was set to for the specified . + + + + + Sets the V-Sync mode of the given window. See also ProjectSettings.display/window/vsync/vsync_mode. + See for possible values and how they affect the behavior of your application. + Depending on the platform and used renderer, the engine will fall back to if the desired mode is not supported. + Note: V-Sync modes other than are only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Returns the V-Sync mode of the given window. + + + + + Returns if the given window can be maximized (the maximize button is enabled). + + + + + Returns , if double-click on a window title should maximize it. + Note: This method is implemented only on macOS. + + + + + Returns , if double-click on a window title should minimize it. + Note: This method is implemented only on macOS. + + + + + Starts a drag operation on the window with the given , using the current mouse position. Call this method when handling a mouse button being pressed to simulate a pressed event on the window's title bar. Using this method allows the window to participate in space switching, tiling, and other system features. + Note: This method is implemented on Linux(X11/Wayland), macOS, and Windows. + + + + + Returns the text selection in the Input Method Editor composition string, with the 's x component being the caret position and y being the length of the selection. + Note: This method is implemented only on macOS. + + + + + Returns the composition string contained within the Input Method Editor window. + Note: This method is implemented only on macOS. + + + + + Shows the virtual keyboard if the platform has one. + parameter is useful for implementing your own or , as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions). + parameter is the screen space of the edited text. + parameter allows configuring which type of virtual keyboard to show. + limits the number of characters that can be entered if different from -1. + can optionally define the current text cursor position if is not set. + and can optionally define the current text selection. + Note: This method is implemented on Android, iOS and Web. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Hides the virtual keyboard if it is shown, does nothing otherwise. + + + + + Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or if it is currently hidden. + + + + + Returns if hardware keyboard is connected. + Note: This method is implemented on Android and iOS, on other platforms this method always returns . + + + + + Sets the default mouse cursor shape. The cursor's appearance will vary depending on the user's operating system and mouse cursor theme. See also and . + + + + + Returns the default mouse cursor shape set by . + + + + + Sets a custom mouse cursor image for the given . This means the user's operating system and mouse cursor theme will no longer influence the mouse cursor's appearance. + can be either a or an , and it should not be larger than 256×256 to display correctly. Optionally, can be set to offset the image's position relative to the click point. By default, is set to the top-left corner of the image. See also . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns if positions of OK and Cancel buttons are swapped in dialogs. This is enabled by default on Windows to follow interface conventions, and be toggled by changing ProjectSettings.gui/common/swap_cancel_ok. + Note: This doesn't affect native dialogs such as the ones spawned by . + + + + + Allows the PID to steal focus from this window. In other words, this disables the operating system's focus stealing protection for the specified PID. + Note: This method is implemented only on Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text input dialog which uses the operating system's native look-and-feel. should accept a single parameter which contains the text field's contents. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS, Windows, and Android. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Plays the beep sound from the operative system, if possible. Because it comes from the OS, the beep sound will be audible even if the application is muted. It may also be disabled for the entire OS by the user. + Note: This method is implemented on macOS, Linux (X11/Wayland), and Windows. + + + + + Returns the number of keyboard layouts. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns active keyboard layout index. + Note: This method is implemented on Linux (X11/Wayland), macOS, and Windows. + + + + + Sets the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the ISO-639/BCP-47 language code of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the localized name of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to one in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to localized label printed on the key in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Perform window manager processing, including input flushing. See also , and . + + + + + Forces window manager processing while ignoring all s. See also . + Note: This method is implemented on Windows and macOS. + + + + + Sets the window icon (usually displayed in the top-left corner) in the operating system's native format. The file at must be in .ico format on Windows or .icns on macOS. By using specially crafted .ico or .icns icons, allows specifying different icons depending on the size the icon is displayed at. This size is determined by the operating system and user preferences (including the display scale factor). To use icons in other formats, use instead. + Note: Requires support for . + + + + + Sets the window icon (usually displayed in the top-left corner) with an . To use icons in the operating system's native format, use instead. + Note: Requires support for . + + + + + Creates a new application status indicator with the specified icon, tooltip, and activation callback. + should take two arguments: the pressed mouse button (one of the constants) and the click position in screen coordinates (a ). + + + + + Sets the application status indicator icon. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator tooltip. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator native popup menu. + Note: On macOS, the menu is activated by any mouse button. Its activation callback is not triggered. + Note: On Windows, the menu is activated by the right mouse button, selecting the status icon and pressing Shift + F10, or the applications key. The menu's activation callback for the other mouse buttons is still triggered. + Note: Native popup is only supported if supports the feature. + + + + + Sets the application status indicator activation callback. should take two arguments: mouse button index (one of values) and click position in screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Returns the rectangle for the given status indicator in screen coordinates. If the status indicator is not visible, returns an empty . + Note: This method is implemented on macOS and Windows. + + + + + Removes the application status indicator. + + + + + Returns the total number of available tablet drivers. + Note: This method is implemented only on Windows. + + + + + Returns the tablet driver name for the given index. + Note: This method is implemented only on Windows. + + + + + Returns current active tablet driver name. + Note: This method is implemented only on Windows. + + + + + Set active tablet driver name. + Supported drivers: + - winink: Windows Ink API, default (Windows 8.1+ required). + - wintab: Wacom Wintab API (compatible device driver required). + - dummy: Dummy driver, tablet input is disabled. + Note: This method is implemented only on Windows. + + + + + Returns if the window background can be made transparent. This method returns if ProjectSettings.display/window/per_pixel_transparency/allowed is set to , or if transparency is not supported by the renderer or OS compositor. + + + + + Registers an which represents an additional output that will be rendered too, beyond normal windows. The is only used as an identifier, which can be later passed to . + This can be used to prevent Godot from skipping rendering when no normal windows are visible. + + + + + Unregisters an representing an additional output, that was registered via . + + + + + Returns if any additional outputs have been registered via . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'help_set_search_callbacks' method. + + + + + Cached name for the 'global_menu_set_popup_callbacks' method. + + + + + Cached name for the 'global_menu_add_submenu_item' method. + + + + + Cached name for the 'global_menu_add_item' method. + + + + + Cached name for the 'global_menu_add_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_item' method. + + + + + Cached name for the 'global_menu_add_icon_check_item' method. + + + + + Cached name for the 'global_menu_add_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_multistate_item' method. + + + + + Cached name for the 'global_menu_add_separator' method. + + + + + Cached name for the 'global_menu_get_item_index_from_text' method. + + + + + Cached name for the 'global_menu_get_item_index_from_tag' method. + + + + + Cached name for the 'global_menu_is_item_checked' method. + + + + + Cached name for the 'global_menu_is_item_checkable' method. + + + + + Cached name for the 'global_menu_is_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_get_item_callback' method. + + + + + Cached name for the 'global_menu_get_item_key_callback' method. + + + + + Cached name for the 'global_menu_get_item_tag' method. + + + + + Cached name for the 'global_menu_get_item_text' method. + + + + + Cached name for the 'global_menu_get_item_submenu' method. + + + + + Cached name for the 'global_menu_get_item_accelerator' method. + + + + + Cached name for the 'global_menu_is_item_disabled' method. + + + + + Cached name for the 'global_menu_is_item_hidden' method. + + + + + Cached name for the 'global_menu_get_item_tooltip' method. + + + + + Cached name for the 'global_menu_get_item_state' method. + + + + + Cached name for the 'global_menu_get_item_max_states' method. + + + + + Cached name for the 'global_menu_get_item_icon' method. + + + + + Cached name for the 'global_menu_get_item_indentation_level' method. + + + + + Cached name for the 'global_menu_set_item_checked' method. + + + + + Cached name for the 'global_menu_set_item_checkable' method. + + + + + Cached name for the 'global_menu_set_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_set_item_callback' method. + + + + + Cached name for the 'global_menu_set_item_hover_callbacks' method. + + + + + Cached name for the 'global_menu_set_item_key_callback' method. + + + + + Cached name for the 'global_menu_set_item_tag' method. + + + + + Cached name for the 'global_menu_set_item_text' method. + + + + + Cached name for the 'global_menu_set_item_submenu' method. + + + + + Cached name for the 'global_menu_set_item_accelerator' method. + + + + + Cached name for the 'global_menu_set_item_disabled' method. + + + + + Cached name for the 'global_menu_set_item_hidden' method. + + + + + Cached name for the 'global_menu_set_item_tooltip' method. + + + + + Cached name for the 'global_menu_set_item_state' method. + + + + + Cached name for the 'global_menu_set_item_max_states' method. + + + + + Cached name for the 'global_menu_set_item_icon' method. + + + + + Cached name for the 'global_menu_set_item_indentation_level' method. + + + + + Cached name for the 'global_menu_get_item_count' method. + + + + + Cached name for the 'global_menu_remove_item' method. + + + + + Cached name for the 'global_menu_clear' method. + + + + + Cached name for the 'global_menu_get_system_menu_roots' method. + + + + + Cached name for the 'tts_is_speaking' method. + + + + + Cached name for the 'tts_is_paused' method. + + + + + Cached name for the 'tts_get_voices' method. + + + + + Cached name for the 'tts_get_voices_for_language' method. + + + + + Cached name for the 'tts_speak' method. + + + + + Cached name for the 'tts_pause' method. + + + + + Cached name for the 'tts_resume' method. + + + + + Cached name for the 'tts_stop' method. + + + + + Cached name for the 'tts_set_utterance_callback' method. + + + + + Cached name for the 'is_dark_mode_supported' method. + + + + + Cached name for the 'is_dark_mode' method. + + + + + Cached name for the 'get_accent_color' method. + + + + + Cached name for the 'get_base_color' method. + + + + + Cached name for the 'set_system_theme_change_callback' method. + + + + + Cached name for the 'mouse_set_mode' method. + + + + + Cached name for the 'mouse_get_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'mouse_get_position' method. + + + + + Cached name for the 'mouse_get_button_state' method. + + + + + Cached name for the 'clipboard_set' method. + + + + + Cached name for the 'clipboard_get' method. + + + + + Cached name for the 'clipboard_get_image' method. + + + + + Cached name for the 'clipboard_has' method. + + + + + Cached name for the 'clipboard_has_image' method. + + + + + Cached name for the 'clipboard_set_primary' method. + + + + + Cached name for the 'clipboard_get_primary' method. + + + + + Cached name for the 'get_display_cutouts' method. + + + + + Cached name for the 'get_display_safe_area' method. + + + + + Cached name for the 'get_screen_count' method. + + + + + Cached name for the 'get_primary_screen' method. + + + + + Cached name for the 'get_keyboard_focus_screen' method. + + + + + Cached name for the 'get_screen_from_rect' method. + + + + + Cached name for the 'screen_get_position' method. + + + + + Cached name for the 'screen_get_size' method. + + + + + Cached name for the 'screen_get_usable_rect' method. + + + + + Cached name for the 'screen_get_dpi' method. + + + + + Cached name for the 'screen_get_scale' method. + + + + + Cached name for the 'is_touchscreen_available' method. + + + + + Cached name for the 'screen_get_max_scale' method. + + + + + Cached name for the 'screen_get_refresh_rate' method. + + + + + Cached name for the 'screen_get_pixel' method. + + + + + Cached name for the 'screen_get_image' method. + + + + + Cached name for the 'screen_get_image_rect' method. + + + + + Cached name for the 'screen_set_orientation' method. + + + + + Cached name for the 'screen_get_orientation' method. + + + + + Cached name for the 'screen_set_keep_on' method. + + + + + Cached name for the 'screen_is_kept_on' method. + + + + + Cached name for the 'get_window_list' method. + + + + + Cached name for the 'get_window_at_screen_position' method. + + + + + Cached name for the 'window_get_native_handle' method. + + + + + Cached name for the 'window_get_active_popup' method. + + + + + Cached name for the 'window_set_popup_safe_rect' method. + + + + + Cached name for the 'window_get_popup_safe_rect' method. + + + + + Cached name for the 'window_set_title' method. + + + + + Cached name for the 'window_get_title_size' method. + + + + + Cached name for the 'window_set_mouse_passthrough' method. + + + + + Cached name for the 'window_get_current_screen' method. + + + + + Cached name for the 'window_set_current_screen' method. + + + + + Cached name for the 'window_get_position' method. + + + + + Cached name for the 'window_get_position_with_decorations' method. + + + + + Cached name for the 'window_set_position' method. + + + + + Cached name for the 'window_get_size' method. + + + + + Cached name for the 'window_set_size' method. + + + + + Cached name for the 'window_set_rect_changed_callback' method. + + + + + Cached name for the 'window_set_window_event_callback' method. + + + + + Cached name for the 'window_set_input_event_callback' method. + + + + + Cached name for the 'window_set_input_text_callback' method. + + + + + Cached name for the 'window_set_drop_files_callback' method. + + + + + Cached name for the 'window_get_attached_instance_id' method. + + + + + Cached name for the 'window_get_max_size' method. + + + + + Cached name for the 'window_set_max_size' method. + + + + + Cached name for the 'window_get_min_size' method. + + + + + Cached name for the 'window_set_min_size' method. + + + + + Cached name for the 'window_get_size_with_decorations' method. + + + + + Cached name for the 'window_get_mode' method. + + + + + Cached name for the 'window_set_mode' method. + + + + + Cached name for the 'window_set_flag' method. + + + + + Cached name for the 'window_get_flag' method. + + + + + Cached name for the 'window_set_window_buttons_offset' method. + + + + + Cached name for the 'window_get_safe_title_margins' method. + + + + + Cached name for the 'window_request_attention' method. + + + + + Cached name for the 'window_move_to_foreground' method. + + + + + Cached name for the 'window_is_focused' method. + + + + + Cached name for the 'window_can_draw' method. + + + + + Cached name for the 'window_set_transient' method. + + + + + Cached name for the 'window_set_exclusive' method. + + + + + Cached name for the 'window_set_ime_active' method. + + + + + Cached name for the 'window_set_ime_position' method. + + + + + Cached name for the 'window_set_vsync_mode' method. + + + + + Cached name for the 'window_get_vsync_mode' method. + + + + + Cached name for the 'window_is_maximize_allowed' method. + + + + + Cached name for the 'window_maximize_on_title_dbl_click' method. + + + + + Cached name for the 'window_minimize_on_title_dbl_click' method. + + + + + Cached name for the 'window_start_drag' method. + + + + + Cached name for the 'ime_get_selection' method. + + + + + Cached name for the 'ime_get_text' method. + + + + + Cached name for the 'virtual_keyboard_show' method. + + + + + Cached name for the 'virtual_keyboard_hide' method. + + + + + Cached name for the 'virtual_keyboard_get_height' method. + + + + + Cached name for the 'has_hardware_keyboard' method. + + + + + Cached name for the 'cursor_set_shape' method. + + + + + Cached name for the 'cursor_get_shape' method. + + + + + Cached name for the 'cursor_set_custom_image' method. + + + + + Cached name for the 'get_swap_cancel_ok' method. + + + + + Cached name for the 'enable_for_stealing_focus' method. + + + + + Cached name for the 'dialog_show' method. + + + + + Cached name for the 'dialog_input_text' method. + + + + + Cached name for the 'file_dialog_show' method. + + + + + Cached name for the 'file_dialog_with_options_show' method. + + + + + Cached name for the 'beep' method. + + + + + Cached name for the 'keyboard_get_layout_count' method. + + + + + Cached name for the 'keyboard_get_current_layout' method. + + + + + Cached name for the 'keyboard_set_current_layout' method. + + + + + Cached name for the 'keyboard_get_layout_language' method. + + + + + Cached name for the 'keyboard_get_layout_name' method. + + + + + Cached name for the 'keyboard_get_keycode_from_physical' method. + + + + + Cached name for the 'keyboard_get_label_from_physical' method. + + + + + Cached name for the 'process_events' method. + + + + + Cached name for the 'force_process_and_drop_events' method. + + + + + Cached name for the 'set_native_icon' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'create_status_indicator' method. + + + + + Cached name for the 'status_indicator_set_icon' method. + + + + + Cached name for the 'status_indicator_set_tooltip' method. + + + + + Cached name for the 'status_indicator_set_menu' method. + + + + + Cached name for the 'status_indicator_set_callback' method. + + + + + Cached name for the 'status_indicator_get_rect' method. + + + + + Cached name for the 'delete_status_indicator' method. + + + + + Cached name for the 'tablet_get_driver_count' method. + + + + + Cached name for the 'tablet_get_driver_name' method. + + + + + Cached name for the 'tablet_get_current_driver' method. + + + + + Cached name for the 'tablet_set_current_driver' method. + + + + + Cached name for the 'is_window_transparency_available' method. + + + + + Cached name for the 'register_additional_output' method. + + + + + Cached name for the 'unregister_additional_output' method. + + + + + Cached name for the 'has_additional_outputs' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles everything related to window management. It is separated from as a single operating system may support multiple display servers. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + Returns if the specified is supported by the current , otherwise. + + + + + Returns the name of the currently in use. Most operating systems only have a single , but Linux has access to more than one (currently X11 and Wayland). + The names of built-in display servers are Windows, macOS, X11 (Linux), Wayland (Linux), Android, iOS, web (HTML5), and headless (when started with the --headless command line argument). + + + + + Sets native help system search callbacks. + has the following arguments: String search_string, int result_limit and return a with "key, display name" pairs for the search results. Called when the user enters search terms in the Help menu. + has the following arguments: String key. Called when the user selects a search result in the Help menu. + Note: This method is implemented only on macOS. + + + + + Registers callables to emit when the menu is respectively about to show or closed. Callback methods should have zero arguments. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the ID of the global menu root that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a separator between items to the global menu with ID . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checked. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Returns the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented only on macOS. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns the icon of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented only on macOS. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Sets the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets the submenu of the item at index . The submenu is the ID of a global menu root that would be shown when the item is clicked. + Note: This method is implemented only on macOS. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented only on macOS. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Replaces the icon of the specified . + Note: This method is implemented only on macOS. + Note: This method is not supported by macOS "_dock" menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu with ID . + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented only on macOS. + + + + + Removes all items from the global menu with ID . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns Dictionary of supported system menu IDs and names. + Note: This method is implemented only on macOS. + + + + + Returns if the synthesizer is generating speech, or have utterance waiting in the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if the synthesizer is in a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an of voice information dictionaries. + Each contains two entries: + - name is voice name. + - id is voice identifier. + - language is language code in lang_Variant format. The lang part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The Variant part is an engine-dependent string describing country, region or/and dialect. + Note that Godot depends on system libraries for text-to-speech functionality. These libraries are installed by default on Windows and macOS, but not on all Linux distributions. If they are not present, this method will return an empty list. This applies to both Godot users on Linux, as well as end-users on Linux running Godot games that use text-to-speech. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an [] of voice identifiers for the . + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds an utterance to the queue. If is , the queue is cleared first. + - identifier is one of the "id" values returned by or one of the values returned by . + - ranges from 0 (lowest) to 100 (highest). + - ranges from 0.0 (lowest) to 2.0 (highest), 1.0 is default pitch for the current voice. + - ranges from 0.1 (lowest) to 10.0 (highest), 1.0 is a normal speaking rate. Other values act as a percentage relative. + - is passed as a parameter to the callback functions. + Note: On Windows and Linux (X11/Wayland), utterance can use SSML markup. SSML support is engine and voice dependent. If the engine does not support SSML, you should strip out all XML markup before calling . + Note: The granularity of pitch, rate, and volume is engine and voice dependent. Values may be truncated. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Puts the synthesizer into a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Resumes the synthesizer if it was paused. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Stops synthesis in progress and removes all utterances from the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Linux), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds a callback, which is called when the utterance has started, finished, canceled or reached a text boundary. + - , , and callable's method should take one parameter, the utterance ID. + - callable's method should take two parameters, the index of the character and the utterance ID. + Note: The granularity of the boundary callbacks is engine dependent. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if OS supports dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns if OS is using dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns OS theme accent color. Returns Color(0, 0, 0, 0), if accent color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Returns the OS theme base color (default control background). Returns Color(0, 0, 0, 0) if the base color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Sets the that should be called when system theme settings are changed. Callback method should have zero arguments. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Sets the current mouse mode. See also . + + + + + Returns the current mouse mode. See also . + + + + + Sets the mouse cursor position to the given relative to an origin at the upper left corner of the currently focused game Window Manager window. + Note: is only supported on Windows, macOS, and Linux (X11/Wayland). It has no effect on Android, iOS, and Web. + + + + + Returns the mouse cursor's current position in screen coordinates. + + + + + Returns the current state of mouse buttons (whether each button is pressed) as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the user's clipboard content to the given string. + + + + + Returns the user's clipboard as a string if possible. + + + + + Returns the user's clipboard as an image if possible. + Note: This method uses the copied pixel data, e.g. from a image editing software or a web browser, not an image file copied from file explorer. + + + + + Returns if there is a text content on the user's clipboard. + + + + + Returns if there is an image content on the user's clipboard. + + + + + Sets the user's primary clipboard content to the given string. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns the user's primary clipboard as a string if possible. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns an of , each of which is the bounding rectangle for a display cutout or notch. These are non-functional areas on edge-to-edge screens used by cameras and sensors. Returns an empty array if the device does not have cutouts. See also . + Note: Currently only implemented on Android. Other platforms will return an empty array even if they do have display cutouts or notches. + + + + + Returns the unobscured area of the display where interactive controls should be rendered. See also . + + + + + Returns the number of displays available. + + + + + Returns index of the primary screen. + + + + + Returns the index of the screen containing the window with the keyboard focus, or the primary screen if there's no focused window. + + + + + Returns the index of the screen that overlaps the most with the given rectangle. Returns -1 if the rectangle doesn't overlap with any screen or has no area. + + + + + Returns the screen's top-left corner position in pixels. On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also . + Note: On Linux (Wayland) this method always returns (0, 0). + + + + + Returns the screen's size in pixels. See also and . + + + + + Returns the portion of the screen that is not obstructed by a status bar in pixels. See also . + + + + + Returns the dots per inch density of the specified screen. If is (the default value), a screen with the main window will be used. + Note: On macOS, returned value is inaccurate if fractional display scaling mode is used. + Note: On Android devices, the actual screen densities are grouped into six generalized densities: + + ldpi - 120 dpi + mdpi - 160 dpi + hdpi - 240 dpi + xhdpi - 320 dpi + xxhdpi - 480 dpi + xxxhdpi - 640 dpi + + Note: This method is implemented on Android, Linux (X11/Wayland), macOS and Windows. Returns 72 on unsupported platforms. + + + + + Returns the scale factor of the specified screen by index. + Note: On macOS, the returned value is 2.0 for hiDPI (Retina) screens, and 1.0 for all other cases. + Note: On Linux (Wayland), the returned value is accurate only when is . Due to API limitations, passing a direct index will return a rounded-up integer, if the screen has a fractional scale (e.g. 1.25 would get rounded up to 2.0). + Note: This method is implemented on Android, iOS, Web, macOS, and Linux (Wayland). + + + + + Returns if touch events are available (Android or iOS), the capability is detected on the Web platform or if ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is . + + + + + Returns the greatest scale factor of all screens. + Note: On macOS returned value is 2.0 if there is at least one hiDPI (Retina) screen in the system, and 1.0 in all other cases. + Note: This method is implemented only on macOS. + + + + + Returns the current refresh rate of the specified screen. If is (the default value), a screen with the main window will be used. + Note: Returns -1.0 if the DisplayServer fails to find the refresh rate for the specified screen. On Web, will always return -1.0 as there is no way to retrieve the refresh rate on that platform. + To fallback to a default refresh rate if the method fails, try: + + var refresh_rate = DisplayServer.screen_get_refresh_rate() + if refresh_rate < 0: + refresh_rate = 60.0 + + + + + + Returns color of the display pixel at the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the screen . + Note: This method is implemented on macOS and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Sets the 's . See also . + Note: On iOS, this method has no effect if ProjectSettings.display/window/handheld/orientation is not set to . + + + + + Returns the 's current orientation. See also . + Note: This method is implemented on Android and iOS. + + + + + Sets whether the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns if the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns the list of Godot window IDs belonging to this process. + Note: Native dialogs are not included in this list. + + + + + Returns the ID of the window at the specified screen (in pixels). On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + + + + + Returns internal structure pointers for use in plugins. + Note: This method is implemented on Android, Linux (X11/Wayland), macOS, and Windows. + + + + + Returns ID of the active popup window, or if there is none. + + + + + Sets the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. Clicking this area will not auto-close this popup. + + + + + Returns the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. + + + + + Sets the title of the given window to . + Note: It's recommended to change this value using instead. + Note: Avoid changing the window title every frame, as this can cause performance issues on certain window managers. Try to change the window title only a few times per second at most. + + + + + Returns the estimated window title bar size (including text and window buttons) for the window specified by (in pixels). This method does not change the window title. + Note: This method is implemented on macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Returns the screen the window specified by is currently positioned on. If the screen overlaps multiple displays, the screen where the window's center is located is returned. See also . + + + + + Moves the window specified by to the specified . See also . + + + + + Returns the position of the client area of the given window on the screen. + + + + + Returns the position of the given window on the screen including the borders drawn by the operating system. See also . + + + + + Sets the position of the given window to . On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also and . + Note: It's recommended to change this value using instead. + Note: On Linux (Wayland): this method is a no-op. + + + + + Returns the size of the window specified by (in pixels), excluding the borders drawn by the operating system. This is also called the "client area". See also , and . + + + + + Sets the size of the given window to (in pixels). See also and . + Note: It's recommended to change this value using instead. + + + + + Sets the that will be called when the window specified by is moved or resized. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that will be called when an event occurs in the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when any is sent to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when text is entered using the virtual keyboard to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when files are dropped from the operating system's file manager to the window specified by . should take one [] argument, which is the list of dropped files. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + Note: This method is implemented on Windows, macOS, Linux (X11/Wayland), and Web. + + + + + Returns the of the the is attached to. + + + + + Returns the window's maximum size (in pixels). See also . + + + + + Sets the maximum size of the window specified by in pixels. Normally, the user will not be able to drag the window to make it larger than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the window's minimum size (in pixels). See also . + + + + + Sets the minimum size for the given window to in pixels. Normally, the user will not be able to drag the window to make it smaller than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: By default, the main window has a minimum size of Vector2i(64, 64). This prevents issues that can arise when the window is resized to a near-zero size. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the size of the window specified by (in pixels), including the borders drawn by the operating system. See also . + + + + + Returns the mode of the given window. + + + + + Sets window mode for the given window to . See for possible values and how each mode behaves. + Note: On Android, setting it to or will enable immersive mode. + Note: Setting the window to full screen forcibly sets the borderless flag to , so make sure to set it back to when not wanted. + + + + + Enables or disables the given window's given . See for possible values and their behavior. + + + + + Returns the current value of the given window's . + + + + + When flag is set, set offset to the center of the first titlebar button. + Note: This flag is implemented only on macOS. + + + + + Returns left margins (x), right margins (y) and height (z) of the title that are safe to use (contains no buttons or other elements) when flag is set. + + + + + Makes the window specified by request attention, which is materialized by the window title and taskbar entry blinking until the window is focused. This usually has no visible effect if the window is currently focused. The exact behavior varies depending on the operating system. + + + + + Moves the window specified by to the foreground, so that it is visible over other windows. + + + + + Returns if the window specified by is focused. + + + + + Returns if anything can be drawn in the window specified by , otherwise. Using the --disable-render-loop command line argument or a headless build will return . + + + + + Sets window transient parent. Transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. + Note: It's recommended to change this value using instead. + Note: The behavior might be different depending on the platform. + + + + + If set to , this window will always stay on top of its parent window, parent window will ignore input while this window is opened. + Note: On macOS, exclusive windows are confined to the same space (virtual desktop or screen) as the parent window. + Note: This method is implemented on macOS and Windows. + + + + + Sets whether Input Method Editor should be enabled for the window specified by . See also . + + + + + Sets the position of the Input Method Editor popup for the specified . Only effective if was set to for the specified . + + + + + Sets the V-Sync mode of the given window. See also ProjectSettings.display/window/vsync/vsync_mode. + See for possible values and how they affect the behavior of your application. + Depending on the platform and used renderer, the engine will fall back to if the desired mode is not supported. + Note: V-Sync modes other than are only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Returns the V-Sync mode of the given window. + + + + + Returns if the given window can be maximized (the maximize button is enabled). + + + + + Returns , if double-click on a window title should maximize it. + Note: This method is implemented only on macOS. + + + + + Returns , if double-click on a window title should minimize it. + Note: This method is implemented only on macOS. + + + + + Starts a drag operation on the window with the given , using the current mouse position. Call this method when handling a mouse button being pressed to simulate a pressed event on the window's title bar. Using this method allows the window to participate in space switching, tiling, and other system features. + Note: This method is implemented on Linux(X11/Wayland), macOS, and Windows. + + + + + Returns the text selection in the Input Method Editor composition string, with the 's x component being the caret position and y being the length of the selection. + Note: This method is implemented only on macOS. + + + + + Returns the composition string contained within the Input Method Editor window. + Note: This method is implemented only on macOS. + + + + + Shows the virtual keyboard if the platform has one. + parameter is useful for implementing your own or , as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions). + parameter is the screen space of the edited text. + parameter allows configuring which type of virtual keyboard to show. + limits the number of characters that can be entered if different from -1. + can optionally define the current text cursor position if is not set. + and can optionally define the current text selection. + Note: This method is implemented on Android, iOS and Web. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Hides the virtual keyboard if it is shown, does nothing otherwise. + + + + + Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or if it is currently hidden. + + + + + Returns if hardware keyboard is connected. + Note: This method is implemented on Android and iOS, on other platforms this method always returns . + + + + + Sets the default mouse cursor shape. The cursor's appearance will vary depending on the user's operating system and mouse cursor theme. See also and . + + + + + Returns the default mouse cursor shape set by . + + + + + Sets a custom mouse cursor image for the given . This means the user's operating system and mouse cursor theme will no longer influence the mouse cursor's appearance. + can be either a or an , and it should not be larger than 256×256 to display correctly. Optionally, can be set to offset the image's position relative to the click point. By default, is set to the top-left corner of the image. See also . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns if positions of OK and Cancel buttons are swapped in dialogs. This is enabled by default on Windows to follow interface conventions, and be toggled by changing ProjectSettings.gui/common/swap_cancel_ok. + Note: This doesn't affect native dialogs such as the ones spawned by . + + + + + Allows the PID to steal focus from this window. In other words, this disables the operating system's focus stealing protection for the specified PID. + Note: This method is implemented only on Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text input dialog which uses the operating system's native look-and-feel. should accept a single parameter which contains the text field's contents. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS, Windows, and Android. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Plays the beep sound from the operative system, if possible. Because it comes from the OS, the beep sound will be audible even if the application is muted. It may also be disabled for the entire OS by the user. + Note: This method is implemented on macOS, Linux (X11/Wayland), and Windows. + + + + + Returns the number of keyboard layouts. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns active keyboard layout index. + Note: This method is implemented on Linux (X11/Wayland), macOS, and Windows. + + + + + Sets the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the ISO-639/BCP-47 language code of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the localized name of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to one in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to localized label printed on the key in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Perform window manager processing, including input flushing. See also , and . + + + + + Forces window manager processing while ignoring all s. See also . + Note: This method is implemented on Windows and macOS. + + + + + Sets the window icon (usually displayed in the top-left corner) in the operating system's native format. The file at must be in .ico format on Windows or .icns on macOS. By using specially crafted .ico or .icns icons, allows specifying different icons depending on the size the icon is displayed at. This size is determined by the operating system and user preferences (including the display scale factor). To use icons in other formats, use instead. + Note: Requires support for . + + + + + Sets the window icon (usually displayed in the top-left corner) with an . To use icons in the operating system's native format, use instead. + Note: Requires support for . + + + + + Creates a new application status indicator with the specified icon, tooltip, and activation callback. + should take two arguments: the pressed mouse button (one of the constants) and the click position in screen coordinates (a ). + + + + + Sets the application status indicator icon. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator tooltip. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator native popup menu. + Note: On macOS, the menu is activated by any mouse button. Its activation callback is not triggered. + Note: On Windows, the menu is activated by the right mouse button, selecting the status icon and pressing Shift + F10, or the applications key. The menu's activation callback for the other mouse buttons is still triggered. + Note: Native popup is only supported if supports the feature. + + + + + Sets the application status indicator activation callback. should take two arguments: mouse button index (one of values) and click position in screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Returns the rectangle for the given status indicator in screen coordinates. If the status indicator is not visible, returns an empty . + Note: This method is implemented on macOS and Windows. + + + + + Removes the application status indicator. + + + + + Returns the total number of available tablet drivers. + Note: This method is implemented only on Windows. + + + + + Returns the tablet driver name for the given index. + Note: This method is implemented only on Windows. + + + + + Returns current active tablet driver name. + Note: This method is implemented only on Windows. + + + + + Set active tablet driver name. + Supported drivers: + - winink: Windows Ink API, default (Windows 8.1+ required). + - wintab: Wacom Wintab API (compatible device driver required). + - dummy: Dummy driver, tablet input is disabled. + Note: This method is implemented only on Windows. + + + + + Returns if the window background can be made transparent. This method returns if ProjectSettings.display/window/per_pixel_transparency/allowed is set to , or if transparency is not supported by the renderer or OS compositor. + + + + + Registers an which represents an additional output that will be rendered too, beyond normal windows. The is only used as an identifier, which can be later passed to . + This can be used to prevent Godot from skipping rendering when no normal windows are visible. + + + + + Unregisters an representing an additional output, that was registered via . + + + + + Returns if any additional outputs have been registered via . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'help_set_search_callbacks' method. + + + + + Cached name for the 'global_menu_set_popup_callbacks' method. + + + + + Cached name for the 'global_menu_add_submenu_item' method. + + + + + Cached name for the 'global_menu_add_item' method. + + + + + Cached name for the 'global_menu_add_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_item' method. + + + + + Cached name for the 'global_menu_add_icon_check_item' method. + + + + + Cached name for the 'global_menu_add_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_multistate_item' method. + + + + + Cached name for the 'global_menu_add_separator' method. + + + + + Cached name for the 'global_menu_get_item_index_from_text' method. + + + + + Cached name for the 'global_menu_get_item_index_from_tag' method. + + + + + Cached name for the 'global_menu_is_item_checked' method. + + + + + Cached name for the 'global_menu_is_item_checkable' method. + + + + + Cached name for the 'global_menu_is_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_get_item_callback' method. + + + + + Cached name for the 'global_menu_get_item_key_callback' method. + + + + + Cached name for the 'global_menu_get_item_tag' method. + + + + + Cached name for the 'global_menu_get_item_text' method. + + + + + Cached name for the 'global_menu_get_item_submenu' method. + + + + + Cached name for the 'global_menu_get_item_accelerator' method. + + + + + Cached name for the 'global_menu_is_item_disabled' method. + + + + + Cached name for the 'global_menu_is_item_hidden' method. + + + + + Cached name for the 'global_menu_get_item_tooltip' method. + + + + + Cached name for the 'global_menu_get_item_state' method. + + + + + Cached name for the 'global_menu_get_item_max_states' method. + + + + + Cached name for the 'global_menu_get_item_icon' method. + + + + + Cached name for the 'global_menu_get_item_indentation_level' method. + + + + + Cached name for the 'global_menu_set_item_checked' method. + + + + + Cached name for the 'global_menu_set_item_checkable' method. + + + + + Cached name for the 'global_menu_set_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_set_item_callback' method. + + + + + Cached name for the 'global_menu_set_item_hover_callbacks' method. + + + + + Cached name for the 'global_menu_set_item_key_callback' method. + + + + + Cached name for the 'global_menu_set_item_tag' method. + + + + + Cached name for the 'global_menu_set_item_text' method. + + + + + Cached name for the 'global_menu_set_item_submenu' method. + + + + + Cached name for the 'global_menu_set_item_accelerator' method. + + + + + Cached name for the 'global_menu_set_item_disabled' method. + + + + + Cached name for the 'global_menu_set_item_hidden' method. + + + + + Cached name for the 'global_menu_set_item_tooltip' method. + + + + + Cached name for the 'global_menu_set_item_state' method. + + + + + Cached name for the 'global_menu_set_item_max_states' method. + + + + + Cached name for the 'global_menu_set_item_icon' method. + + + + + Cached name for the 'global_menu_set_item_indentation_level' method. + + + + + Cached name for the 'global_menu_get_item_count' method. + + + + + Cached name for the 'global_menu_remove_item' method. + + + + + Cached name for the 'global_menu_clear' method. + + + + + Cached name for the 'global_menu_get_system_menu_roots' method. + + + + + Cached name for the 'tts_is_speaking' method. + + + + + Cached name for the 'tts_is_paused' method. + + + + + Cached name for the 'tts_get_voices' method. + + + + + Cached name for the 'tts_get_voices_for_language' method. + + + + + Cached name for the 'tts_speak' method. + + + + + Cached name for the 'tts_pause' method. + + + + + Cached name for the 'tts_resume' method. + + + + + Cached name for the 'tts_stop' method. + + + + + Cached name for the 'tts_set_utterance_callback' method. + + + + + Cached name for the 'is_dark_mode_supported' method. + + + + + Cached name for the 'is_dark_mode' method. + + + + + Cached name for the 'get_accent_color' method. + + + + + Cached name for the 'get_base_color' method. + + + + + Cached name for the 'set_system_theme_change_callback' method. + + + + + Cached name for the 'mouse_set_mode' method. + + + + + Cached name for the 'mouse_get_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'mouse_get_position' method. + + + + + Cached name for the 'mouse_get_button_state' method. + + + + + Cached name for the 'clipboard_set' method. + + + + + Cached name for the 'clipboard_get' method. + + + + + Cached name for the 'clipboard_get_image' method. + + + + + Cached name for the 'clipboard_has' method. + + + + + Cached name for the 'clipboard_has_image' method. + + + + + Cached name for the 'clipboard_set_primary' method. + + + + + Cached name for the 'clipboard_get_primary' method. + + + + + Cached name for the 'get_display_cutouts' method. + + + + + Cached name for the 'get_display_safe_area' method. + + + + + Cached name for the 'get_screen_count' method. + + + + + Cached name for the 'get_primary_screen' method. + + + + + Cached name for the 'get_keyboard_focus_screen' method. + + + + + Cached name for the 'get_screen_from_rect' method. + + + + + Cached name for the 'screen_get_position' method. + + + + + Cached name for the 'screen_get_size' method. + + + + + Cached name for the 'screen_get_usable_rect' method. + + + + + Cached name for the 'screen_get_dpi' method. + + + + + Cached name for the 'screen_get_scale' method. + + + + + Cached name for the 'is_touchscreen_available' method. + + + + + Cached name for the 'screen_get_max_scale' method. + + + + + Cached name for the 'screen_get_refresh_rate' method. + + + + + Cached name for the 'screen_get_pixel' method. + + + + + Cached name for the 'screen_get_image' method. + + + + + Cached name for the 'screen_get_image_rect' method. + + + + + Cached name for the 'screen_set_orientation' method. + + + + + Cached name for the 'screen_get_orientation' method. + + + + + Cached name for the 'screen_set_keep_on' method. + + + + + Cached name for the 'screen_is_kept_on' method. + + + + + Cached name for the 'get_window_list' method. + + + + + Cached name for the 'get_window_at_screen_position' method. + + + + + Cached name for the 'window_get_native_handle' method. + + + + + Cached name for the 'window_get_active_popup' method. + + + + + Cached name for the 'window_set_popup_safe_rect' method. + + + + + Cached name for the 'window_get_popup_safe_rect' method. + + + + + Cached name for the 'window_set_title' method. + + + + + Cached name for the 'window_get_title_size' method. + + + + + Cached name for the 'window_set_mouse_passthrough' method. + + + + + Cached name for the 'window_get_current_screen' method. + + + + + Cached name for the 'window_set_current_screen' method. + + + + + Cached name for the 'window_get_position' method. + + + + + Cached name for the 'window_get_position_with_decorations' method. + + + + + Cached name for the 'window_set_position' method. + + + + + Cached name for the 'window_get_size' method. + + + + + Cached name for the 'window_set_size' method. + + + + + Cached name for the 'window_set_rect_changed_callback' method. + + + + + Cached name for the 'window_set_window_event_callback' method. + + + + + Cached name for the 'window_set_input_event_callback' method. + + + + + Cached name for the 'window_set_input_text_callback' method. + + + + + Cached name for the 'window_set_drop_files_callback' method. + + + + + Cached name for the 'window_get_attached_instance_id' method. + + + + + Cached name for the 'window_get_max_size' method. + + + + + Cached name for the 'window_set_max_size' method. + + + + + Cached name for the 'window_get_min_size' method. + + + + + Cached name for the 'window_set_min_size' method. + + + + + Cached name for the 'window_get_size_with_decorations' method. + + + + + Cached name for the 'window_get_mode' method. + + + + + Cached name for the 'window_set_mode' method. + + + + + Cached name for the 'window_set_flag' method. + + + + + Cached name for the 'window_get_flag' method. + + + + + Cached name for the 'window_set_window_buttons_offset' method. + + + + + Cached name for the 'window_get_safe_title_margins' method. + + + + + Cached name for the 'window_request_attention' method. + + + + + Cached name for the 'window_move_to_foreground' method. + + + + + Cached name for the 'window_is_focused' method. + + + + + Cached name for the 'window_can_draw' method. + + + + + Cached name for the 'window_set_transient' method. + + + + + Cached name for the 'window_set_exclusive' method. + + + + + Cached name for the 'window_set_ime_active' method. + + + + + Cached name for the 'window_set_ime_position' method. + + + + + Cached name for the 'window_set_vsync_mode' method. + + + + + Cached name for the 'window_get_vsync_mode' method. + + + + + Cached name for the 'window_is_maximize_allowed' method. + + + + + Cached name for the 'window_maximize_on_title_dbl_click' method. + + + + + Cached name for the 'window_minimize_on_title_dbl_click' method. + + + + + Cached name for the 'window_start_drag' method. + + + + + Cached name for the 'ime_get_selection' method. + + + + + Cached name for the 'ime_get_text' method. + + + + + Cached name for the 'virtual_keyboard_show' method. + + + + + Cached name for the 'virtual_keyboard_hide' method. + + + + + Cached name for the 'virtual_keyboard_get_height' method. + + + + + Cached name for the 'has_hardware_keyboard' method. + + + + + Cached name for the 'cursor_set_shape' method. + + + + + Cached name for the 'cursor_get_shape' method. + + + + + Cached name for the 'cursor_set_custom_image' method. + + + + + Cached name for the 'get_swap_cancel_ok' method. + + + + + Cached name for the 'enable_for_stealing_focus' method. + + + + + Cached name for the 'dialog_show' method. + + + + + Cached name for the 'dialog_input_text' method. + + + + + Cached name for the 'file_dialog_show' method. + + + + + Cached name for the 'file_dialog_with_options_show' method. + + + + + Cached name for the 'beep' method. + + + + + Cached name for the 'keyboard_get_layout_count' method. + + + + + Cached name for the 'keyboard_get_current_layout' method. + + + + + Cached name for the 'keyboard_set_current_layout' method. + + + + + Cached name for the 'keyboard_get_layout_language' method. + + + + + Cached name for the 'keyboard_get_layout_name' method. + + + + + Cached name for the 'keyboard_get_keycode_from_physical' method. + + + + + Cached name for the 'keyboard_get_label_from_physical' method. + + + + + Cached name for the 'process_events' method. + + + + + Cached name for the 'force_process_and_drop_events' method. + + + + + Cached name for the 'set_native_icon' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'create_status_indicator' method. + + + + + Cached name for the 'status_indicator_set_icon' method. + + + + + Cached name for the 'status_indicator_set_tooltip' method. + + + + + Cached name for the 'status_indicator_set_menu' method. + + + + + Cached name for the 'status_indicator_set_callback' method. + + + + + Cached name for the 'status_indicator_get_rect' method. + + + + + Cached name for the 'delete_status_indicator' method. + + + + + Cached name for the 'tablet_get_driver_count' method. + + + + + Cached name for the 'tablet_get_driver_name' method. + + + + + Cached name for the 'tablet_get_current_driver' method. + + + + + Cached name for the 'tablet_set_current_driver' method. + + + + + Cached name for the 'is_window_transparency_available' method. + + + + + Cached name for the 'register_additional_output' method. + + + + + Cached name for the 'unregister_additional_output' method. + + + + + Cached name for the 'has_additional_outputs' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol). + + + + + 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. + + + + + ENet's built-in range encoding. Works well on small packets, but is not the most efficient algorithm on packets larger than 4 KB. + + + + + FastLZ compression. This option uses less CPU resources compared to , at the expense of using more bandwidth. + + + + + Zlib compression. This option uses less bandwidth compared to , at the expense of using more CPU resources. + + + + + Zstandard 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. + + + + + An error occurred during . You will likely need to the host and recreate it. + + + + + No event occurred within the specified time limit. + + + + + A connection request initiated by enet_host_connect has completed. The array will contain the peer which successfully connected. + + + + + A peer has disconnected. This event is generated on a successful completion of a disconnect initiated by , if a peer has timed out, or if a connection request initialized by 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. + + + + + 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 . + + + + + Total data sent. + + + + + Total UDP packets sent. + + + + + Total data received. + + + + + Total UDP packets received. + + + + + Creates an ENetHost bound to the given and that allows up to connected peers, each allocating up to channels, optionally limiting bandwidth to and (if greater than zero). + Note: It is necessary to create a host in both client and server in order to establish a connection. + + + + + Creates an ENetHost that allows up to connected peers, each allocating up to channels, optionally limiting bandwidth to and (if greater than zero). + This method binds a random available dynamic UDP port on the host machine at the unspecified address. Use to specify the address and port. + Note: It is necessary to create a host in both client and server in order to establish a connection. + + + + + Destroys the host and all resources associated with it. + + + + + Initiates a connection to a foreign using the specified and allocating the requested . Optional can be passed during connection in the form of a 32 bit integer. + Note: You must call either or on both ends before calling this method. + + + + + Waits for events on this connection and shuttles packets between the host and its peers, with the given (in milliseconds). The returned will have 4 elements. An , the which generated the event, the event associated data (if any), the event associated channel (if any). If the generated event is , the received packet will be queued to the associated . + Call this function regularly to handle connections, disconnections, and to receive new packets. + Note: This method must be called on both ends involved in the event (sending and receiving hosts). + + + + + Sends any queued packets on the host specified to its designated peers. + + + + + Adjusts the bandwidth limits of a host. + + + + + Limits the maximum allowed channels of future incoming connections. + + + + + Queues a to be sent to all peers associated with the host over the specified . See FLAG_* constants for available packet flags. + + + + + Queues a to be sent to all peers associated with the host over the specified . See FLAG_* constants for available packet flags. + + + + + Sets the compression method used for network packets. These have different tradeoffs of compression speed versus bandwidth, you may need to test which one works best for your use case if you use compression at all. + Note: Most games' network design involve sending many small packets frequently (smaller than 4 KB each). If in doubt, it is recommended to keep the default compression algorithm as it works best on these small packets. + Note: The compression mode must be set to the same value on both the server and all its clients. Clients will fail to connect if the compression mode set on the client differs from the one set on the server. + + + + + Configure this ENetHost to use the custom Godot extension allowing DTLS encryption for ENet servers. Call this right after to have ENet expect peers to connect using DTLS. See . + + + + + Configure this ENetHost to use the custom Godot extension allowing DTLS encryption for ENet clients. Call this before to have ENet connect using DTLS validating the server certificate against . You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + + + + + Configures the DTLS server to automatically drop new connections. + Note: This method is only relevant after calling . + + + + + Returns and resets host statistics. See for more info. + + + + + Returns the maximum number of channels allowed for connected peers. + + + + + Returns the local port to which this peer is bound. + + + + + Returns the list of peers associated with this host. + Note: This list might include some peers that are not fully connected or are still being disconnected. + + + + + Sends a toward a destination from the address and port currently bound by this ENetConnection instance. + This is useful as it serves to establish entries in NAT routing tables on all devices between this bound instance and the public facing internet, allowing a prospective client's connection packets to be routed backward through the NAT device(s) between the public internet and this host. + This requires forward knowledge of a prospective client's address and communication port as seen by the public internet - after any NAT devices have handled their connection request. This information can be obtained by a STUN service, and must be handed off to your host by an entity that is not the prospective client. This will never work for a client behind a Symmetric NAT due to the nature of the Symmetric NAT routing algorithm, as their IP and Port cannot be known beforehand. + + + + + Sends a toward a destination from the address and port currently bound by this ENetConnection instance. + This is useful as it serves to establish entries in NAT routing tables on all devices between this bound instance and the public facing internet, allowing a prospective client's connection packets to be routed backward through the NAT device(s) between the public internet and this host. + This requires forward knowledge of a prospective client's address and communication port as seen by the public internet - after any NAT devices have handled their connection request. This information can be obtained by a STUN service, and must be handed off to your host by an entity that is not the prospective client. This will never work for a client behind a Symmetric NAT due to the nature of the Symmetric NAT routing algorithm, as their IP and Port cannot be known beforehand. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_host_bound' method. + + + + + Cached name for the 'create_host' method. + + + + + Cached name for the 'destroy' method. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'service' method. + + + + + Cached name for the 'flush' method. + + + + + Cached name for the 'bandwidth_limit' method. + + + + + Cached name for the 'channel_limit' method. + + + + + Cached name for the 'broadcast' method. + + + + + Cached name for the 'compress' method. + + + + + Cached name for the 'dtls_server_setup' method. + + + + + Cached name for the 'dtls_client_setup' method. + + + + + Cached name for the 'refuse_new_connections' method. + + + + + Cached name for the 'pop_statistic' method. + + + + + Cached name for the 'get_max_channels' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'get_peers' method. + + + + + Cached name for the 'socket_send' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A MultiplayerPeer implementation that should be passed to after being initialized as either a client, server, or mesh. Events can then be handled by connecting to signals. See for more information on the ENet library wrapper. + Note: ENet only uses UDP, not TCP. When forwarding the server port to make your server accessible on the public Internet, you only need to forward the server port in UDP. You can use the class to try to forward the server port automatically when starting the server. + + + + + The underlying created after and . + + + + + Create server that listens to connections via . The port needs to be an available, unused port between 0 and 65535. Note that ports below 1024 are privileged and may require elevated permissions depending on the platform. To change the interface the server listens on, use . The default IP is the wildcard "*", which listens on all available interfaces. is the maximum number of clients that are allowed at once, any number up to 4095 may be used, although the achievable number of simultaneous clients may be far lower and depends on the application. For additional details on the bandwidth parameters, see . Returns if a server was created, if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call first) or if the server could not be created. + + + + + Create client that connects to a server at using specified . The given address needs to be either a fully qualified domain name (e.g. "www.example.com") or an IP address in IPv4 or IPv6 format (e.g. "192.168.1.1"). The is the port the server is listening on. The parameter can be used to specify the number of ENet channels allocated for the connection. The and parameters can be used to limit the incoming and outgoing bandwidth to the given number of bytes per second. The default of 0 means unlimited bandwidth. Note that ENet will strategically drop packets on specific sides of a connection between peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth parameters also determine the window size of a connection which limits the amount of reliable packets that may be in transit at any given time. Returns if a client was created, if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call first) or if the client could not be created. If is specified, the client will also listen to the given port; this is useful for some NAT traversal techniques. + + + + + Initialize this in mesh mode. The provided will be used as the local peer network unique ID once assigned as the . In the mesh configuration you will need to set up each new peer manually using before calling . While this technique is more advanced, it allows for better control over the connection process (e.g. when dealing with NAT punch-through) and for better distribution of the network load (which would otherwise be more taxing on the server). + + + + + Add a new remote peer with the given connected to the given . + Note: The must have exactly one peer in the state. + + + + + The IP used when creating a server. This is set to the wildcard "*" by default, which binds to all available interfaces. The given IP needs to be in IPv4 or IPv6 address format, for example: "192.168.1.1". + + + + + Returns the associated to the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'host' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_server' method. + + + + + Cached name for the 'create_client' method. + + + + + Cached name for the 'create_mesh' method. + + + + + Cached name for the 'add_mesh_peer' method. + + + + + Cached name for the 'set_bind_ip' method. + + + + + Cached name for the 'get_host' method. + + + + + Cached name for the 'get_peer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A PacketPeer implementation representing a peer of an . + This class cannot be instantiated directly but can be retrieved during or via . + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The reference scale for packet loss. See and . + + + + + The reference value for throttle configuration. The default value is 32. See . + + + + + Mark the packet to be sent as reliable. + + + + + Mark the packet to be sent unsequenced (unreliable). + + + + + Mark the packet to be sent unreliable even if the packet is too big and needs fragmentation (increasing the chance of it being dropped). + + + + + The peer is disconnected. + + + + + The peer is currently attempting to connect. + + + + + The peer has acknowledged the connection request. + + + + + The peer is currently connecting. + + + + + The peer has successfully connected, but is not ready to communicate with yet (). + + + + + The peer is currently connected and ready to communicate with. + + + + + The peer is slated to disconnect after it has no more outgoing packets to send. + + + + + The peer is currently disconnecting. + + + + + The peer has acknowledged the disconnection request. + + + + + The peer has lost connection, but is not considered truly disconnected (as the peer didn't acknowledge the disconnection request). + + + + + Mean packet loss of reliable packets as a ratio with respect to the . + + + + + Packet loss variance. + + + + + 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. + + + + + Mean packet round trip time for reliable packets. + + + + + Variance of the mean round trip time. + + + + + Last recorded round trip time for a reliable packet. + + + + + Variance of the last trip time recorded. + + + + + The peer's current throttle status. + + + + + The maximum number of unreliable packets that should not be dropped. This value is always greater than or equal to 1. The initial value is equal to . + + + + + Internal value used to increment the packet throttle counter. The value is hardcoded to 7 and cannot be changed. You probably want to look at instead. + + + + + The time at which throttle statistics were last updated (in milliseconds since the connection started). The interval for throttle statistics updates is . + + + + + The throttle's acceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent more often. The default value is 2. + + + + + The throttle's deceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent less often. The default value is 2. + + + + + 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 5000. + + + + + Request a disconnection from a peer. An will be generated during once the disconnection is complete. + + + + + Request a disconnection from a peer, but only after all queued outgoing packets are sent. An will be generated during once the disconnection is complete. + + + + + Force an immediate disconnection from a peer. No will be generated. The foreign peer is not guaranteed to receive the disconnect notification, and is reset immediately upon return from this function. + + + + + Sends a ping request to a peer. ENet automatically pings all connected peers at regular intervals, however, this function may be called to ensure more frequent ping requests. + + + + + Sets the in milliseconds at which pings will be sent to a peer. Pings are used both to monitor the liveness of the connection and also to dynamically adjust the throttle during periods of low traffic so that the throttle has reasonable responsiveness during traffic spikes. The default ping interval is 500 milliseconds. + + + + + Forcefully disconnects a peer. The foreign host represented by the peer is not notified of the disconnection and will timeout on its connection to the local host. + + + + + Queues a to be sent over the specified . See FLAG_* constants for available packet flags. + + + + + Queues a to be sent over the specified . See FLAG_* constants for available packet flags. + + + + + Configures throttle parameter for a peer. + Unreliable packets are dropped by ENet in response to the varying conditions of the Internet connection to the peer. The throttle represents a probability that an unreliable packet should not be dropped and thus sent by ENet to the peer. By measuring fluctuations in round trip times of reliable packets over the specified , ENet will either increase the probability by the amount specified in the parameter, or decrease it by the amount specified in the parameter (both are ratios to ). + When the throttle has a value of , no unreliable packets are dropped by ENet, and so 100% of all unreliable packets will be sent. + When the throttle has a value of 0, all unreliable packets are dropped by ENet, and so 0% of all unreliable packets will be sent. + Intermediate values for the throttle represent intermediate probabilities between 0% and 100% of unreliable packets being sent. The bandwidth limits of the local and foreign hosts are taken into account to determine a sensible limit for the throttle probability above which it should not raise even in the best of conditions. + + + + + Sets the timeout parameters for a peer. The timeout parameters control how and when a peer will timeout from a failure to acknowledge reliable traffic. Timeout values are expressed in milliseconds. + The is a factor that, multiplied by a value based on the average round trip time, will determine the timeout limit for a reliable packet. When that limit is reached, the timeout will be doubled, and the peer will be disconnected if that limit has reached . The parameter, on the other hand, defines a fixed timeout for which any packet must be acknowledged or the peer will be dropped. + + + + + Returns the ENet flags of the next packet in the received queue. See FLAG_* constants for available packet flags. Note that not all flags are replicated from the sending peer to the receiving peer. + + + + + Returns the IP address of this peer. + + + + + Returns the remote port of this peer. + + + + + Returns the requested for this peer. See . + + + + + Returns the current peer state. See . + + + + + Returns the number of channels allocated for communication with peer. + + + + + Returns if the peer is currently active (i.e. the associated is still valid). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'peer_disconnect' method. + + + + + Cached name for the 'peer_disconnect_later' method. + + + + + Cached name for the 'peer_disconnect_now' method. + + + + + Cached name for the 'ping' method. + + + + + Cached name for the 'ping_interval' method. + + + + + Cached name for the 'reset' method. + + + + + Cached name for the 'send' method. + + + + + Cached name for the 'throttle_configure' method. + + + + + Cached name for the 'set_timeout' method. + + + + + Cached name for the 'get_packet_flags' method. + + + + + Cached name for the 'get_remote_address' method. + + + + + Cached name for the 'get_remote_port' method. + + + + + Cached name for the 'get_statistic' method. + + + + + Cached name for the 'get_state' method. + + + + + Cached name for the 'get_channels' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Utility class which holds a reference to the internal identifier of an instance, as given by . This ID can then be used to retrieve the object instance with @GlobalScope.instance_from_id. + This class is used internally by the editor inspector and script debugger, but can also be used in plugins to pass and display objects as their IDs. + + + + + The identifier stored in this instance. The object instance can be retrieved with @GlobalScope.instance_from_id. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'object_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_object_id' method. + + + + + Cached name for the 'get_object_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others. It also stores information about the current build of Godot, such as the current version. + + + + + If , stops printing error and warning messages to the console and editor Output log. This can be used to hide error and warning messages during unit test suite runs. This property is equivalent to the ProjectSettings.application/run/disable_stderr project setting. + Note: This property does not impact the editor's Errors tab when running a project from the editor. + Warning: If set to anywhere in the project, important error messages may be hidden even if they are emitted from other scripts. In a @tool script, this will also impact the editor itself. Do not report bugs before ensuring error messages are enabled (as they are by default). + + + + + If , stops printing messages (for example using @GlobalScope.print) to the console, log files, and editor Output log. This property is equivalent to the ProjectSettings.application/run/disable_stdout project setting. + Note: This does not stop printing errors or warnings produced by scripts to the console or log files, for more details see . + + + + + The number of fixed iterations per second. This controls how often physics simulation and methods are run. This value should generally always be set to 60 or above, as Godot doesn't interpolate the physics step. As a result, values lower than 60 will look stuttery. This value can be increased to make input more reactive or work around collision tunneling issues, but keep in mind doing so will increase CPU usage. See also and ProjectSettings.physics/common/physics_ticks_per_second. + Note: Only physics ticks may be simulated per rendered frame at most. If more physics ticks have to be simulated per rendered frame to keep up with rendering, the project will appear to slow down (even if delta is used consistently in physics calculations). Therefore, it is recommended to also increase if increasing significantly above its default value. + + + + + The maximum number of physics steps that can be simulated each rendered frame. + Note: The default value is tuned to prevent expensive physics simulations from triggering even more expensive simulations indefinitely. However, the game will appear to slow down if the rendering FPS is less than 1 / max_physics_steps_per_frame of . This occurs even if delta is consistently used in physics calculations. To avoid this, increase if you have increased significantly above its default value. + + + + + The maximum number of frames that can be rendered every second (FPS). A value of 0 means the framerate is uncapped. + Limiting the FPS can be useful to reduce the host machine's power consumption, which reduces heat, noise emissions, and improves battery life. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled or Adaptive, the setting takes precedence and the max FPS number cannot exceed the monitor's refresh rate. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled, on monitors with variable refresh rate enabled (G-Sync/FreeSync), using an FPS limit a few frames lower than the monitor's refresh rate will reduce input lag while avoiding tearing. + See also and ProjectSettings.application/run/max_fps. + Note: The actual number of frames per second may still be below this value if the CPU or GPU cannot keep up with the project's logic and rendering. + Note: If ProjectSettings.display/window/vsync/vsync_mode is Disabled, limiting the FPS to a high value that can be consistently reached on the system can reduce input lag compared to an uncapped framerate. Since this works by ensuring the GPU load is lower than 100%, this latency reduction is only effective in GPU-bottlenecked scenarios, not CPU-bottlenecked scenarios. + + + + + The speed multiplier at which the in-game clock updates, compared to real time. For example, if set to 2.0 the game runs twice as fast, and if set to 0.5 the game runs half as fast. + This value affects , , and all other simulations that make use of delta time (such as and ). + Note: It's recommended to keep this property above 0.0, as the game may behave unexpectedly otherwise. + Note: This does not affect audio playback speed. Use to adjust audio playback speed independently of . + Note: This does not automatically adjust . With values above 1.0 physics simulation may become less precise, as each physics tick will stretch over a larger period of engine time. If you're modifying to speed up simulation by a large factor, consider also increasing to make the simulation more reliable. + + + + + How much physics ticks are synchronized with real time. If 0 or less, the ticks are fully synchronized. Higher values cause the in-game clock to deviate more from the real clock, but they smooth out framerate jitters. + Note: The default value of 0.5 should be good enough for most cases; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. + Note: When using a custom physics interpolation solution, or within a network game, it's recommended to disable the physics jitter fix by setting this property to 0. + + + + + Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation. + + + + + Returns the total number of frames drawn since the engine started. + Note: On headless platforms, or if rendering is disabled with --disable-render-loop via command line, this method always returns 0. See also . + + + + + Returns the average frames rendered every second (FPS), also known as the framerate. + + + + + Returns the total number of frames passed since the engine started. This number is increased every physics frame. See also . + This method can be used to run expensive logic less often without relying on a : + + public override void _PhysicsProcess(double delta) + { + base._PhysicsProcess(delta); + + if (Engine.GetPhysicsFrames() % 2 == 0) + { + // Run expensive logic only once every 2 physics frames here. + } + } + + + + + + Returns the total number of frames passed since the engine started. This number is increased every process frame, regardless of whether the render loop is enabled. See also and . + This method can be used to run expensive logic less often without relying on a : + + public override void _Process(double delta) + { + base._Process(delta); + + if (Engine.GetProcessFrames() % 5 == 0) + { + // Run expensive logic only once every 5 process (render) frames here. + } + } + + + + + + Returns the instance of the . This is usually the main and is the same as . + Note: The type instantiated as the main loop can changed with ProjectSettings.application/run/main_loop_type. + + + + + Returns the current engine version information as a containing the following entries: + - major - Major version number as an int; + - minor - Minor version number as an int; + - patch - Patch version number as an int; + - hex - Full version encoded as a hexadecimal int with one byte (2 hex digits) per number (see example below); + - status - Status (such as "beta", "rc1", "rc2", "stable", etc.) as a String; + - build - Build name (e.g. "custom_build") as a String; + - hash - Full Git commit hash as a String; + - timestamp - Holds the Git commit date UNIX timestamp in seconds as an int, or 0 if unavailable; + - string - major, minor, patch, status, and build in a single String. + The hex value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, "3.1.12" would be 0x03010C. + Note: The hex value is still an internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for quick version comparisons from code: + + if ((int)Engine.GetVersionInfo()["hex"] >= 0x040100) + { + // Do things specific to version 4.1 or later. + } + else + { + // Do things specific to versions before 4.1. + } + + + + + + Returns the engine author information as a , where each entry is an of strings with the names of notable contributors to the Godot Engine: lead_developers, founders, project_managers, and developers. + + + + + Returns an of dictionaries with copyright information for every component of Godot's source code. + Every contains a name identifier, and a parts array of dictionaries. It describes the component in detail with the following entries: + - files - of file paths from the source code affected by this component; + - copyright - of owners of this component; + - license - The license applied to this component (such as "Expat" or "CC-BY-4.0"). + + + + + Returns a of categorized donor names. Each entry is an of strings: + {platinum_sponsors, gold_sponsors, silver_sponsors, bronze_sponsors, mini_sponsors, gold_donors, silver_donors, bronze_donors} + + + + + Returns a of licenses used by Godot and included third party components. Each entry is a license name (such as "Expat") and its associated text. + + + + + Returns the full Godot license text. + + + + + Returns the name of the CPU architecture the Godot binary was built for. Possible return values include "x86_64", "x86_32", "arm64", "arm32", "rv64", "riscv", "ppc64", "ppc", "wasm64", and "wasm32". + To detect whether the current build is 64-bit, or the type of architecture, don't use the architecture name. Instead, use to check for the "64" feature tag, or tags such as "x86" or "arm". See the Feature Tags documentation for more details. + Note: This method does not return the name of the system's CPU architecture (like ). For example, when running an x86_32 Godot binary on an x86_64 system, the returned value will still be "x86_32". + + + + + Returns if the engine is inside the fixed physics process step of the main loop. + + func _enter_tree(): + # Depending on when the node is added to the tree, + # prints either "true" or "false". + print(Engine.is_in_physics_frame()) + + func _process(delta): + print(Engine.is_in_physics_frame()) # Prints false + + func _physics_process(delta): + print(Engine.is_in_physics_frame()) # Prints true + + + + + + Returns if a singleton with the given exists in the global scope. See also . + + GD.Print(Engine.HasSingleton("OS")); // Prints True + GD.Print(Engine.HasSingleton("Engine")); // Prints True + GD.Print(Engine.HasSingleton("AudioServer")); // Prints True + GD.Print(Engine.HasSingleton("Unknown")); // Prints False + + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Returns the global singleton with the given , or if it does not exist. Often used for plugins. See also and . + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Registers the given as a singleton, available globally under . Useful for plugins. + + + + + Removes the singleton registered under . The singleton object is not freed. Only works with user-defined singletons registered with . + + + + + Returns a list of names of all available global singletons. See also . + + + + + Registers a instance to be available with ScriptServer. + Returns: + - on success; + - if ScriptServer has reached the limit and cannot register any new language; + - if ScriptServer already contains a language with similar extension/name/type. + + + + + Unregisters the instance from ScriptServer. + Returns: + - on success; + - if the language is not registered in ScriptServer. + + + + + Returns the number of available script languages. Use with . + + + + + Returns an instance of a with the given . + + + + + Returns if the script is currently running inside the editor, otherwise returns . This is useful for @tool scripts to conditionally draw editor helpers, or prevent accidentally running "game" code that would affect the scene state while in the editor: + + if (Engine.IsEditorHint()) + DrawGizmos(); + else + SimulatePhysics(); + + See Running code in the editor in the documentation for more information. + Note: To detect whether the script is running on an editor build (such as when pressing F5), use with the "editor" argument instead. OS.has_feature("editor") evaluate to both when the script is running in the editor and when running the project from the editor, but returns when run from an exported project. + + + + + Returns the path to the 's output file, or an empty string if the engine wasn't started in Movie Maker mode. The default path can be changed in ProjectSettings.editor/movie_writer/movie_file. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'print_error_messages' property. + + + + + Cached name for the 'print_to_stdout' property. + + + + + Cached name for the 'physics_ticks_per_second' property. + + + + + Cached name for the 'max_physics_steps_per_frame' property. + + + + + Cached name for the 'max_fps' property. + + + + + Cached name for the 'time_scale' property. + + + + + Cached name for the 'physics_jitter_fix' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_physics_ticks_per_second' method. + + + + + Cached name for the 'get_physics_ticks_per_second' method. + + + + + Cached name for the 'set_max_physics_steps_per_frame' method. + + + + + Cached name for the 'get_max_physics_steps_per_frame' method. + + + + + Cached name for the 'set_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_interpolation_fraction' method. + + + + + Cached name for the 'set_max_fps' method. + + + + + Cached name for the 'get_max_fps' method. + + + + + Cached name for the 'set_time_scale' method. + + + + + Cached name for the 'get_time_scale' method. + + + + + Cached name for the 'get_frames_drawn' method. + + + + + Cached name for the 'get_frames_per_second' method. + + + + + Cached name for the 'get_physics_frames' method. + + + + + Cached name for the 'get_process_frames' method. + + + + + Cached name for the 'get_main_loop' method. + + + + + Cached name for the 'get_version_info' method. + + + + + Cached name for the 'get_author_info' method. + + + + + Cached name for the 'get_copyright_info' method. + + + + + Cached name for the 'get_donor_info' method. + + + + + Cached name for the 'get_license_info' method. + + + + + Cached name for the 'get_license_text' method. + + + + + Cached name for the 'get_architecture_name' method. + + + + + Cached name for the 'is_in_physics_frame' method. + + + + + Cached name for the 'has_singleton' method. + + + + + Cached name for the 'get_singleton' method. + + + + + Cached name for the 'register_singleton' method. + + + + + Cached name for the 'unregister_singleton' method. + + + + + Cached name for the 'get_singleton_list' method. + + + + + Cached name for the 'register_script_language' method. + + + + + Cached name for the 'unregister_script_language' method. + + + + + Cached name for the 'get_script_language_count' method. + + + + + Cached name for the 'get_script_language' method. + + + + + Cached name for the 'is_editor_hint' method. + + + + + Cached name for the 'get_write_movie_path' method. + + + + + Cached name for the 'set_print_to_stdout' method. + + + + + Cached name for the 'is_printing_to_stdout' method. + + + + + Cached name for the 'set_print_error_messages' method. + + + + + Cached name for the 'is_printing_error_messages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others. It also stores information about the current build of Godot, such as the current version. + + + + + If , stops printing error and warning messages to the console and editor Output log. This can be used to hide error and warning messages during unit test suite runs. This property is equivalent to the ProjectSettings.application/run/disable_stderr project setting. + Note: This property does not impact the editor's Errors tab when running a project from the editor. + Warning: If set to anywhere in the project, important error messages may be hidden even if they are emitted from other scripts. In a @tool script, this will also impact the editor itself. Do not report bugs before ensuring error messages are enabled (as they are by default). + + + + + If , stops printing messages (for example using @GlobalScope.print) to the console, log files, and editor Output log. This property is equivalent to the ProjectSettings.application/run/disable_stdout project setting. + Note: This does not stop printing errors or warnings produced by scripts to the console or log files, for more details see . + + + + + The number of fixed iterations per second. This controls how often physics simulation and methods are run. This value should generally always be set to 60 or above, as Godot doesn't interpolate the physics step. As a result, values lower than 60 will look stuttery. This value can be increased to make input more reactive or work around collision tunneling issues, but keep in mind doing so will increase CPU usage. See also and ProjectSettings.physics/common/physics_ticks_per_second. + Note: Only physics ticks may be simulated per rendered frame at most. If more physics ticks have to be simulated per rendered frame to keep up with rendering, the project will appear to slow down (even if delta is used consistently in physics calculations). Therefore, it is recommended to also increase if increasing significantly above its default value. + + + + + The maximum number of physics steps that can be simulated each rendered frame. + Note: The default value is tuned to prevent expensive physics simulations from triggering even more expensive simulations indefinitely. However, the game will appear to slow down if the rendering FPS is less than 1 / max_physics_steps_per_frame of . This occurs even if delta is consistently used in physics calculations. To avoid this, increase if you have increased significantly above its default value. + + + + + The maximum number of frames that can be rendered every second (FPS). A value of 0 means the framerate is uncapped. + Limiting the FPS can be useful to reduce the host machine's power consumption, which reduces heat, noise emissions, and improves battery life. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled or Adaptive, the setting takes precedence and the max FPS number cannot exceed the monitor's refresh rate. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled, on monitors with variable refresh rate enabled (G-Sync/FreeSync), using an FPS limit a few frames lower than the monitor's refresh rate will reduce input lag while avoiding tearing. + See also and ProjectSettings.application/run/max_fps. + Note: The actual number of frames per second may still be below this value if the CPU or GPU cannot keep up with the project's logic and rendering. + Note: If ProjectSettings.display/window/vsync/vsync_mode is Disabled, limiting the FPS to a high value that can be consistently reached on the system can reduce input lag compared to an uncapped framerate. Since this works by ensuring the GPU load is lower than 100%, this latency reduction is only effective in GPU-bottlenecked scenarios, not CPU-bottlenecked scenarios. + + + + + The speed multiplier at which the in-game clock updates, compared to real time. For example, if set to 2.0 the game runs twice as fast, and if set to 0.5 the game runs half as fast. + This value affects , , and all other simulations that make use of delta time (such as and ). + Note: It's recommended to keep this property above 0.0, as the game may behave unexpectedly otherwise. + Note: This does not affect audio playback speed. Use to adjust audio playback speed independently of . + Note: This does not automatically adjust . With values above 1.0 physics simulation may become less precise, as each physics tick will stretch over a larger period of engine time. If you're modifying to speed up simulation by a large factor, consider also increasing to make the simulation more reliable. + + + + + How much physics ticks are synchronized with real time. If 0 or less, the ticks are fully synchronized. Higher values cause the in-game clock to deviate more from the real clock, but they smooth out framerate jitters. + Note: The default value of 0.5 should be good enough for most cases; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. + Note: When using a custom physics interpolation solution, or within a network game, it's recommended to disable the physics jitter fix by setting this property to 0. + + + + + Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation. + + + + + Returns the total number of frames drawn since the engine started. + Note: On headless platforms, or if rendering is disabled with --disable-render-loop via command line, this method always returns 0. See also . + + + + + Returns the average frames rendered every second (FPS), also known as the framerate. + + + + + Returns the total number of frames passed since the engine started. This number is increased every physics frame. See also . + This method can be used to run expensive logic less often without relying on a : + + public override void _PhysicsProcess(double delta) + { + base._PhysicsProcess(delta); + + if (Engine.GetPhysicsFrames() % 2 == 0) + { + // Run expensive logic only once every 2 physics frames here. + } + } + + + + + + Returns the total number of frames passed since the engine started. This number is increased every process frame, regardless of whether the render loop is enabled. See also and . + This method can be used to run expensive logic less often without relying on a : + + public override void _Process(double delta) + { + base._Process(delta); + + if (Engine.GetProcessFrames() % 5 == 0) + { + // Run expensive logic only once every 5 process (render) frames here. + } + } + + + + + + Returns the instance of the . This is usually the main and is the same as . + Note: The type instantiated as the main loop can changed with ProjectSettings.application/run/main_loop_type. + + + + + Returns the current engine version information as a containing the following entries: + - major - Major version number as an int; + - minor - Minor version number as an int; + - patch - Patch version number as an int; + - hex - Full version encoded as a hexadecimal int with one byte (2 hex digits) per number (see example below); + - status - Status (such as "beta", "rc1", "rc2", "stable", etc.) as a String; + - build - Build name (e.g. "custom_build") as a String; + - hash - Full Git commit hash as a String; + - timestamp - Holds the Git commit date UNIX timestamp in seconds as an int, or 0 if unavailable; + - string - major, minor, patch, status, and build in a single String. + The hex value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, "3.1.12" would be 0x03010C. + Note: The hex value is still an internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for quick version comparisons from code: + + if ((int)Engine.GetVersionInfo()["hex"] >= 0x040100) + { + // Do things specific to version 4.1 or later. + } + else + { + // Do things specific to versions before 4.1. + } + + + + + + Returns the engine author information as a , where each entry is an of strings with the names of notable contributors to the Godot Engine: lead_developers, founders, project_managers, and developers. + + + + + Returns an of dictionaries with copyright information for every component of Godot's source code. + Every contains a name identifier, and a parts array of dictionaries. It describes the component in detail with the following entries: + - files - of file paths from the source code affected by this component; + - copyright - of owners of this component; + - license - The license applied to this component (such as "Expat" or "CC-BY-4.0"). + + + + + Returns a of categorized donor names. Each entry is an of strings: + {platinum_sponsors, gold_sponsors, silver_sponsors, bronze_sponsors, mini_sponsors, gold_donors, silver_donors, bronze_donors} + + + + + Returns a of licenses used by Godot and included third party components. Each entry is a license name (such as "Expat") and its associated text. + + + + + Returns the full Godot license text. + + + + + Returns the name of the CPU architecture the Godot binary was built for. Possible return values include "x86_64", "x86_32", "arm64", "arm32", "rv64", "riscv", "ppc64", "ppc", "wasm64", and "wasm32". + To detect whether the current build is 64-bit, or the type of architecture, don't use the architecture name. Instead, use to check for the "64" feature tag, or tags such as "x86" or "arm". See the Feature Tags documentation for more details. + Note: This method does not return the name of the system's CPU architecture (like ). For example, when running an x86_32 Godot binary on an x86_64 system, the returned value will still be "x86_32". + + + + + Returns if the engine is inside the fixed physics process step of the main loop. + + func _enter_tree(): + # Depending on when the node is added to the tree, + # prints either "true" or "false". + print(Engine.is_in_physics_frame()) + + func _process(delta): + print(Engine.is_in_physics_frame()) # Prints false + + func _physics_process(delta): + print(Engine.is_in_physics_frame()) # Prints true + + + + + + Returns if a singleton with the given exists in the global scope. See also . + + GD.Print(Engine.HasSingleton("OS")); // Prints True + GD.Print(Engine.HasSingleton("Engine")); // Prints True + GD.Print(Engine.HasSingleton("AudioServer")); // Prints True + GD.Print(Engine.HasSingleton("Unknown")); // Prints False + + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Returns the global singleton with the given , or if it does not exist. Often used for plugins. See also and . + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Registers the given as a singleton, available globally under . Useful for plugins. + + + + + Removes the singleton registered under . The singleton object is not freed. Only works with user-defined singletons registered with . + + + + + Returns a list of names of all available global singletons. See also . + + + + + Registers a instance to be available with ScriptServer. + Returns: + - on success; + - if ScriptServer has reached the limit and cannot register any new language; + - if ScriptServer already contains a language with similar extension/name/type. + + + + + Unregisters the instance from ScriptServer. + Returns: + - on success; + - if the language is not registered in ScriptServer. + + + + + Returns the number of available script languages. Use with . + + + + + Returns an instance of a with the given . + + + + + Returns if the script is currently running inside the editor, otherwise returns . This is useful for @tool scripts to conditionally draw editor helpers, or prevent accidentally running "game" code that would affect the scene state while in the editor: + + if (Engine.IsEditorHint()) + DrawGizmos(); + else + SimulatePhysics(); + + See Running code in the editor in the documentation for more information. + Note: To detect whether the script is running on an editor build (such as when pressing F5), use with the "editor" argument instead. OS.has_feature("editor") evaluate to both when the script is running in the editor and when running the project from the editor, but returns when run from an exported project. + + + + + Returns the path to the 's output file, or an empty string if the engine wasn't started in Movie Maker mode. The default path can be changed in ProjectSettings.editor/movie_writer/movie_file. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'print_error_messages' property. + + + + + Cached name for the 'print_to_stdout' property. + + + + + Cached name for the 'physics_ticks_per_second' property. + + + + + Cached name for the 'max_physics_steps_per_frame' property. + + + + + Cached name for the 'max_fps' property. + + + + + Cached name for the 'time_scale' property. + + + + + Cached name for the 'physics_jitter_fix' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_physics_ticks_per_second' method. + + + + + Cached name for the 'get_physics_ticks_per_second' method. + + + + + Cached name for the 'set_max_physics_steps_per_frame' method. + + + + + Cached name for the 'get_max_physics_steps_per_frame' method. + + + + + Cached name for the 'set_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_interpolation_fraction' method. + + + + + Cached name for the 'set_max_fps' method. + + + + + Cached name for the 'get_max_fps' method. + + + + + Cached name for the 'set_time_scale' method. + + + + + Cached name for the 'get_time_scale' method. + + + + + Cached name for the 'get_frames_drawn' method. + + + + + Cached name for the 'get_frames_per_second' method. + + + + + Cached name for the 'get_physics_frames' method. + + + + + Cached name for the 'get_process_frames' method. + + + + + Cached name for the 'get_main_loop' method. + + + + + Cached name for the 'get_version_info' method. + + + + + Cached name for the 'get_author_info' method. + + + + + Cached name for the 'get_copyright_info' method. + + + + + Cached name for the 'get_donor_info' method. + + + + + Cached name for the 'get_license_info' method. + + + + + Cached name for the 'get_license_text' method. + + + + + Cached name for the 'get_architecture_name' method. + + + + + Cached name for the 'is_in_physics_frame' method. + + + + + Cached name for the 'has_singleton' method. + + + + + Cached name for the 'get_singleton' method. + + + + + Cached name for the 'register_singleton' method. + + + + + Cached name for the 'unregister_singleton' method. + + + + + Cached name for the 'get_singleton_list' method. + + + + + Cached name for the 'register_script_language' method. + + + + + Cached name for the 'unregister_script_language' method. + + + + + Cached name for the 'get_script_language_count' method. + + + + + Cached name for the 'get_script_language' method. + + + + + Cached name for the 'is_editor_hint' method. + + + + + Cached name for the 'get_write_movie_path' method. + + + + + Cached name for the 'set_print_to_stdout' method. + + + + + Cached name for the 'is_printing_to_stdout' method. + + + + + Cached name for the 'set_print_error_messages' method. + + + + + Cached name for the 'is_printing_error_messages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers. + + + + + Returns if the debugger is active otherwise . + + + + + Registers a profiler with the given . See for more information. + + + + + Unregisters a profiler with given . + + + + + Returns if a profiler with the given name is present and active otherwise . + + + + + Returns if a profiler with the given name is present otherwise . + + + + + Calls the add callable of the profiler with given and . + + + + + Calls the toggle callable of the profiler with given and . Enables/Disables the same profiler depending on argument. + + + + + Registers a message capture with given . If is "my_message" then messages starting with "my_message:" will be called with the given callable. + The callable must accept a message string and a data array as argument. The callable should return if the message is recognized. + Note: The callable will receive the message with the prefix stripped, unlike EditorDebuggerPlugin._Capture. See the EditorDebuggerPlugin description for an example. + + + + + Unregisters the message capture with given . + + + + + Returns if a capture with the given name is present otherwise . + + + + + Forces a processing loop of debugger events. The purpose of this method is just processing events every now and then when the script might get too busy, so that bugs like infinite loops can be caught. + + + + + Sends a message with given and array. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Sets the current debugging lines that remain. + + + + + Returns the number of lines that remain. + + + + + Sets the current debugging depth. + + + + + Returns the current debug depth. + + + + + Returns if the given and represent an existing breakpoint. + + + + + Returns if the debugger is skipping breakpoints otherwise . + + + + + Inserts a new breakpoint with the given and . + + + + + Removes a breakpoint with the given and . + + + + + Clears all breakpoints. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'register_profiler' method. + + + + + Cached name for the 'unregister_profiler' method. + + + + + Cached name for the 'is_profiling' method. + + + + + Cached name for the 'has_profiler' method. + + + + + Cached name for the 'profiler_add_frame_data' method. + + + + + Cached name for the 'profiler_enable' method. + + + + + Cached name for the 'register_message_capture' method. + + + + + Cached name for the 'unregister_message_capture' method. + + + + + Cached name for the 'has_capture' method. + + + + + Cached name for the 'line_poll' method. + + + + + Cached name for the 'send_message' method. + + + + + Cached name for the 'debug' method. + + + + + Cached name for the 'script_debug' method. + + + + + Cached name for the 'set_lines_left' method. + + + + + Cached name for the 'get_lines_left' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'is_breakpoint' method. + + + + + Cached name for the 'is_skipping_breakpoints' method. + + + + + Cached name for the 'insert_breakpoint' method. + + + + + Cached name for the 'remove_breakpoint' method. + + + + + Cached name for the 'clear_breakpoints' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers. + + + + + Returns if the debugger is active otherwise . + + + + + Registers a profiler with the given . See for more information. + + + + + Unregisters a profiler with given . + + + + + Returns if a profiler with the given name is present and active otherwise . + + + + + Returns if a profiler with the given name is present otherwise . + + + + + Calls the add callable of the profiler with given and . + + + + + Calls the toggle callable of the profiler with given and . Enables/Disables the same profiler depending on argument. + + + + + Registers a message capture with given . If is "my_message" then messages starting with "my_message:" will be called with the given callable. + The callable must accept a message string and a data array as argument. The callable should return if the message is recognized. + Note: The callable will receive the message with the prefix stripped, unlike EditorDebuggerPlugin._Capture. See the EditorDebuggerPlugin description for an example. + + + + + Unregisters the message capture with given . + + + + + Returns if a capture with the given name is present otherwise . + + + + + Forces a processing loop of debugger events. The purpose of this method is just processing events every now and then when the script might get too busy, so that bugs like infinite loops can be caught. + + + + + Sends a message with given and array. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Sets the current debugging lines that remain. + + + + + Returns the number of lines that remain. + + + + + Sets the current debugging depth. + + + + + Returns the current debug depth. + + + + + Returns if the given and represent an existing breakpoint. + + + + + Returns if the debugger is skipping breakpoints otherwise . + + + + + Inserts a new breakpoint with the given and . + + + + + Removes a breakpoint with the given and . + + + + + Clears all breakpoints. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'register_profiler' method. + + + + + Cached name for the 'unregister_profiler' method. + + + + + Cached name for the 'is_profiling' method. + + + + + Cached name for the 'has_profiler' method. + + + + + Cached name for the 'profiler_add_frame_data' method. + + + + + Cached name for the 'profiler_enable' method. + + + + + Cached name for the 'register_message_capture' method. + + + + + Cached name for the 'unregister_message_capture' method. + + + + + Cached name for the 'has_capture' method. + + + + + Cached name for the 'line_poll' method. + + + + + Cached name for the 'send_message' method. + + + + + Cached name for the 'debug' method. + + + + + Cached name for the 'script_debug' method. + + + + + Cached name for the 'set_lines_left' method. + + + + + Cached name for the 'get_lines_left' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'is_breakpoint' method. + + + + + Cached name for the 'is_skipping_breakpoints' method. + + + + + Cached name for the 'insert_breakpoint' method. + + + + + Cached name for the 'remove_breakpoint' method. + + + + + Cached name for the 'clear_breakpoints' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class can be used to implement custom profilers that are able to interact with the engine and editor debugger. + See and EditorDebuggerPlugin for more information. + + + + + Called when data is added to profiler using . + + + + + 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. + + + + + Called when the profiler is enabled/disabled, along with a set of . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_frame' method. + + + + + Cached name for the '_tick' method. + + + + + Cached name for the '_toggle' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource for environment nodes (like ) that define multiple environment operations (such as background or , 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 + + + + + Clears the background using the clear color defined in ProjectSettings.rendering/environment/defaults/default_clear_color. + + + + + Clears the background using a custom clear color. + + + + + Displays a user-defined sky in the background. + + + + + Displays a in the background. + + + + + 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. + + + + + Displays a camera feed in the background. + + + + + Represents the size of the enum. + + + + + Gather ambient light from whichever source is specified as the background. + + + + + Disable ambient light. This provides a slight performance boost over . + + + + + Specify a specific for ambient light. This provides a slight performance boost over . + + + + + Gather ambient light from the regardless of what the background is. + + + + + Use the background for reflections. + + + + + Disable reflections. This provides a slight performance boost over other options. + + + + + Use the for reflections regardless of what the background is. + + + + + 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. + + + + + Reinhard tonemapper operator. Performs a variation on rendered pixels' colors by this formula: color = color * (1 + color / (white * white)) / (1 + color). This avoids clipping bright highlights, but the resulting image can look a bit dull. When is left at the default value of 1.0 this is identical to while also being slightly less performant. + + + + + Filmic tonemapper operator. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than . + + + + + 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 and . + Note: This tonemapping operator is called "ACES Fitted" in Godot 3.x. + + + + + Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources. + + + + + Screen glow blending mode. Increases brightness, used frequently with bloom. + + + + + Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom). + + + + + 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. + + + + + Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect. + + + + + Use a physically-based fog model defined primarily by fog density. + + + + + Use a simple fog model defined by start and end positions and a custom curve. While not physically accurate, this model can be useful when you need more artistic control. + + + + + 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. + + + + + Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales. + + + + + 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. + + + + + The background mode. See for possible values. + + + + + The displayed for clear areas of the scene. Only effective when using the background mode. + + + + + Multiplier for background energy. Increase to make background brighter, decrease to make background dimmer. + + + + + Luminance of background measured in nits (candela per square meter). Only used when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. The default value is roughly equivalent to the sky at midday. + + + + + The maximum layer ID to display. Only effective when using the background mode. + + + + + The ID of the camera feed to show in the background. + + + + + The resource used for this . + + + + + If set to a value greater than 0.0, overrides the field of view to use for sky rendering. If set to 0.0, the same FOV as the current is used for sky rendering. + + + + + The rotation to use for sky rendering. + + + + + The ambient light source to use for rendering materials and global illumination. + + + + + The ambient light's . Only effective if is lower than 1.0 (exclusive). + + + + + Defines the amount of light that the sky brings on the scene. A value of 0.0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1.0 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene. + Note: is internally clamped between 0.0 and 1.0 (inclusive). + + + + + The ambient light's energy. The higher the value, the stronger the light. Only effective if is lower than 1.0 (exclusive). + + + + + The reflected (specular) light source. + + + + + The tonemapping mode to use. Tonemapping is the process that "converts" HDR values to be suitable for rendering on an LDR display. (Godot doesn't support rendering on HDR displays yet.) + + + + + The default exposure used for tonemapping. Higher values result in a brighter image. See also . + + + + + The white reference value for tonemapping (also called "whitepoint"). Higher values can make highlights look less blown out, and will also slightly darken the whole scene as a result. Only effective if the isn't set to . See also . + + + + + If , screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from s or s, but are slower and can't reflect surfaces occluded by others. + Note: SSR is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The maximum number of steps for screen-space reflections. Higher values are slower. + + + + + The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection. Only positive values are valid (negative values will be clamped to 0.0). + + + + + The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the "global" reflection. Only positive values are valid (negative values will be clamped to 0.0). + + + + + The depth tolerance for screen-space reflections. + + + + + If , the screen-space ambient occlusion effect is enabled. This darkens objects' corners and cavities to simulate ambient light not reaching the entire object as in real life. This works well for small, dynamic objects, but baked lighting or ambient occlusion textures will do a better job at displaying ambient occlusion on large static objects. Godot uses a form of SSAO called Adaptive Screen Space Ambient Occlusion which is itself a form of Horizon Based Ambient Occlusion. + Note: SSAO is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The distance at which objects can occlude each other when calculating screen-space ambient occlusion. Higher values will result in occlusion over a greater distance at the cost of performance and quality. + + + + + The primary screen-space ambient occlusion intensity. Acts as a multiplier for the screen-space ambient occlusion effect. A higher value results in darker occlusion. + + + + + The distribution of occlusion. A higher value results in darker occlusion, similar to , but with a sharper falloff. + + + + + Sets the strength of the additional level of detail for the screen-space ambient occlusion effect. A high value makes the detail pass more prominent, but it may contribute to aliasing in your final image. + + + + + The threshold for considering whether a given point on a surface is occluded or not represented as an angle from the horizon mapped into the 0.0-1.0 range. A value of 1.0 results in no occlusion. + + + + + The amount that the screen-space ambient occlusion effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry. + + + + + The screen-space ambient occlusion intensity in direct light. In real life, ambient occlusion only applies to indirect light, which means its effects can't be seen in direct light. Values higher than 0 will make the SSAO effect visible in direct light. + + + + + The screen-space ambient occlusion intensity on materials that have an AO texture defined. Values higher than 0 will make the SSAO effect visible in areas darkened by AO textures. + + + + + If , the screen-space indirect lighting effect is enabled. Screen space indirect lighting is a form of indirect lighting that allows diffuse light to bounce between nearby objects. Screen-space indirect lighting works very similarly to screen-space ambient occlusion, in that it only affects a limited range. It is intended to be used along with a form of proper global illumination like SDFGI or . Screen-space indirect lighting is not affected by individual light's . + Note: SSIL is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The distance that bounced lighting can travel when using the screen space indirect lighting effect. A larger value will result in light bouncing further in a scene, but may result in under-sampling artifacts which look like long spikes surrounding light sources. + + + + + The brightness multiplier for the screen-space indirect lighting effect. A higher value will result in brighter light. + + + + + The amount that the screen-space indirect lighting effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry. + + + + + Amount of normal rejection used when calculating screen-space indirect lighting. Normal rejection uses the normal of a given sample point to reject samples that are facing away from the current pixel. Normal rejection is necessary to avoid light leaking when only one side of an object is illuminated. However, normal rejection can be disabled if light leaking is desirable, such as when the scene mostly contains emissive objects that emit light from faces that cannot be seen from the camera. + + + + + If , enables signed distance field global illumination for meshes that have their set to . SDFGI is a real-time global illumination technique that works well with procedurally generated and user-built levels, including in situations where geometry is created during gameplay. The signed distance field is automatically generated around the camera as it moves. Dynamic lights are supported, but dynamic occluders and emissive surfaces are not. + Note: SDFGI is only supported in the Forward+ rendering method, not Mobile or Compatibility. + Performance: SDFGI is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider instead). To improve SDFGI performance, enable ProjectSettings.rendering/global_illumination/gi/use_half_resolution in the Project Settings. + Note: Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. + + + + + If , SDFGI uses an occlusion detection approach to reduce light leaking. Occlusion may however introduce dark blotches in certain spots, which may be undesired in mostly outdoor scenes. has a performance impact and should only be enabled when needed. + + + + + If , SDFGI takes the environment lighting into account. This should be set to for interior scenes. + + + + + The energy multiplier applied to light every time it bounces from a surface when using SDFGI. Values greater than 0.0 will simulate multiple bounces, resulting in a more realistic appearance. Increasing generally has no performance impact. See also . + Note: Values greater than 0.5 can cause infinite feedback loops and should be avoided in scenes with bright materials. + Note: If is 0.0, indirect lighting will not be represented in reflections as light will only bounce one time. + + + + + The number of cascades to use for SDFGI (between 1 and 8). A higher number of cascades allows displaying SDFGI further away while preserving detail up close, at the cost of performance. When using SDFGI on small-scale levels, can often be decreased between 1 and 4 to improve performance. + + + + + The cell size to use for the closest SDFGI cascade (in 3D units). Lower values allow SDFGI to be more precise up close, at the cost of making SDFGI updates more demanding. This can cause stuttering when the camera moves fast. Higher values allow SDFGI to cover more ground, while also reducing the performance impact of SDFGI updates. + Note: This property is linked to and . Changing its value will automatically change those properties as well. + + + + + Note: This property is linked to and . Changing its value will automatically change those properties as well. + + + + + The maximum distance at which SDFGI is visible. Beyond this distance, environment lighting or other sources of GI such as will be used as a fallback. + Note: This property is linked to and . Changing its value will automatically change those properties as well. + + + + + The Y scale to use for SDFGI cells. Lower values will result in SDFGI cells being packed together more closely on the Y axis. This is used to balance between quality and covering a lot of vertical ground. should be set depending on how vertical your scene is (and how fast your camera may move on the Y axis). + + + + + The energy multiplier to use for SDFGI. Higher values will result in brighter indirect lighting and reflections. See also . + + + + + The normal bias to use for SDFGI probes. Increasing this value can reduce visible streaking artifacts on sloped surfaces, at the cost of increased light leaking. + + + + + The constant bias to use for SDFGI probes. Increasing this value can reduce visible streaking artifacts on sloped surfaces, at the cost of increased light leaking. + + + + + If , the glow effect is enabled. This simulates real world eye/camera behavior where bright pixels bleed onto surrounding pixels. + Note: When using the Mobile rendering method, glow looks different due to the lower dynamic range available in the Mobile rendering method. + Note: When using the Compatibility rendering method, glow uses a different implementation with some properties being unavailable and hidden from the inspector: glow_levels/*, , , , , , and . This implementation is optimized to run on low-end devices and is less flexible as a result. + + + + + If , glow levels will be normalized so that summed together their intensities equal 1.0. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The overall brightness multiplier of the glow effect. When using the Mobile rendering method (which only supports a lower dynamic range up to 2.0), this should be increased to 1.5 to compensate. + + + + + The strength of the glow effect. This applies as the glow is blurred across the screen and increases the distance and intensity of the blur. When using the Mobile rendering method, this should be increased to compensate for the lower dynamic range. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + When using the , this controls how much the source image is blended with the glow layer. A value of 0.0 makes the glow rendering invisible, while a value of 1.0 is equivalent to . + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The bloom's intensity. If set to a value higher than 0, this will make glow visible in areas darker than the . + + + + + The glow blending mode. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The lower threshold of the HDR glow. When using the Mobile rendering method (which only supports a lower dynamic range up to 2.0), this may need to be below 1.0 for glow to be visible. A value of 0.9 works well in this case. This value also needs to be decreased below 1.0 when using glow in 2D, as 2D rendering is performed in SDR. + + + + + The bleed scale of the HDR glow. + + + + + The higher threshold of the HDR glow. Areas brighter than this threshold will be clamped for the purposes of the glow effect. + + + + + How strong of an influence the should have on the overall glow effect. A strength of 0.0 means the glow map has no influence, while a strength of 1.0 means the glow map has full influence. + Note: If the glow map has black areas, a value of 1.0 can also turn off the glow effect entirely in specific areas of the screen. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The texture that should be used as a glow map to multiply the resulting glow color according to . This can be used to create a "lens dirt" effect. The texture's RGB color channels are used for modulation, but the alpha channel is ignored. + Note: The texture will be stretched to fit the screen. Therefore, it's recommended to use a texture with an aspect ratio that matches your project's base aspect ratio (typically 16:9). + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + If , fog effects are enabled. + + + + + The fog mode. See for possible values. + + + + + The fog's color. + + + + + The fog's brightness. Higher values result in brighter fog. + + + + + If set above 0.0, renders the scene's directional light(s) in the fog color depending on the view angle. This can be used to give the impression that the sun is "piercing" through the fog. + + + + + The fog density to be used. This is demonstrated in different ways depending on the mode chosen: + Exponential Fog Mode: Higher values result in denser fog. The fog rendering is exponential like in real life. + Depth Fog mode: The maximum intensity of the deep fog, effect will appear in the distance (relative to the camera). At 1.0 the fog will fully obscure the scene, at 0.0 the fog will not be visible. + + + + + If set above 0.0 (exclusive), blends between the fog's color and the color of the background , as read from the radiance cubemap. This has a small performance cost when set above 0.0. Must have set to . + This is useful to simulate aerial perspective in large scenes with low density fog. However, it is not very useful for high-density fog, as the sky will shine through. When set to 1.0, the fog color comes completely from the . If set to 0.0, aerial perspective is disabled. + Notice that this does not sample the directly, but rather the radiance cubemap. The cubemap is sampled at a mipmap level depending on the depth of the rendered pixel; the farther away, the higher the resolution of the sampled mipmap. This results in the actual color being a blurred version of the sky, with more blur closer to the camera. The highest mipmap resolution is used at a depth of . + + + + + The factor to use when affecting the sky with non-volumetric fog. 1.0 means that fog can fully obscure the sky. Lower values reduce the impact of fog on sky rendering, with 0.0 not affecting sky rendering at all. + Note: has no visual effect if is 1.0. + + + + + The height at which the height fog effect begins. + + + + + The density used to increase fog as height decreases. To make fog increase as height increases, use a negative value. + + + + + The fog depth's intensity curve. A number of presets are available in the Inspector by right-clicking the curve. Only available when is set to . + + + + + The fog's depth starting distance from the camera. Only available when is set to . + + + + + The fog's depth end distance from the camera. If this value is set to 0, it will be equal to the current camera's value. Only available when is set to . + + + + + Enables the volumetric fog effect. Volumetric fog uses a screen-aligned froxel buffer to calculate accurate volumetric scattering in the short to medium range. Volumetric fog interacts with s and lights to calculate localized and global fog. Volumetric fog uses a PBR single-scattering model based on extinction, scattering, and emission which it exposes to users as density, albedo, and emission. + Note: Volumetric fog is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The base exponential density of the volumetric fog. Set this to the lowest density you want to have globally. s can be used to add to or subtract from this density in specific areas. Fog rendering is exponential as in real life. + A value of 0.0 disables global volumetric fog while allowing s to display volumetric fog in specific areas. + To make volumetric fog work as a volumetric lighting solution, set to the lowest non-zero value (0.0001) then increase lights' to values between 10000 and 100000 to compensate for the very low density. + + + + + The of the volumetric fog when interacting with lights. Mist and fog have an albedo close to Color(1, 1, 1, 1) while smoke has a darker albedo. + + + + + The emitted light from the volumetric fog. Even with emission, volumetric fog will not cast light onto other surfaces. Emission is useful to establish an ambient color. As the volumetric fog effect uses single-scattering only, fog tends to need a little bit of emission to soften the harsh shadows. + + + + + The brightness of the emitted light from the volumetric fog. + + + + + Scales the strength of Global Illumination used in the volumetric fog's albedo color. A value of 0.0 means that Global Illumination will not impact the volumetric fog. has a small performance cost when set above 0.0. + Note: This has no visible effect if is 0.0 or if is a fully black color. + Note: Only and SDFGI () are taken into account when using . Global illumination from , and SSIL (see ) will be ignored by volumetric fog. + + + + + The direction of scattered light as it goes through the volumetric fog. A value close to 1.0 means almost all light is scattered forward. A value close to 0.0 means light is scattered equally in all directions. A value close to -1.0 means light is scattered mostly backward. Fog and mist scatter light slightly forward, while smoke scatters light equally in all directions. + + + + + The distance over which the volumetric fog is computed. Increase to compute fog over a greater range, decrease to add more detail when a long range is not needed. For best quality fog, keep this as low as possible. See also ProjectSettings.rendering/environment/volumetric_fog/volume_depth. + + + + + The distribution of size down the length of the froxel buffer. A higher value compresses the froxels closer to the camera and places more detail closer to the camera. + + + + + Scales the strength of ambient light used in the volumetric fog. A value of 0.0 means that ambient light will not impact the volumetric fog. has a small performance cost when set above 0.0. + Note: This has no visible effect if is 0.0 or if is a fully black color. + + + + + The factor to use when affecting the sky with volumetric fog. 1.0 means that volumetric fog can fully obscure the sky. Lower values reduce the impact of volumetric fog on sky rendering, with 0.0 not affecting sky rendering at all. + Note: also affects s, even if is 0.0. If you notice s are disappearing when looking towards the sky, set to 1.0. + + + + + Enables temporal reprojection in the volumetric fog. Temporal reprojection blends the current frame's volumetric fog with the last frame's volumetric fog to smooth out jagged edges. The performance cost is minimal; however, it leads to moving s and s "ghosting" and leaving a trail behind them. When temporal reprojection is enabled, try to avoid moving s or s too fast. Short-lived dynamic lighting effects should have set to 0.0 to avoid ghosting. + + + + + The amount by which to blend the last frame with the current frame. A higher number results in smoother volumetric fog, but makes "ghosting" much worse. A lower value reduces ghosting but can result in the per-frame temporal jitter becoming visible. + + + + + If , enables the adjustment_* properties provided by this resource. If , modifications to the adjustment_* properties will have no effect on the rendered scene. + + + + + The global brightness value of the rendered scene. Effective only if is . + + + + + The global contrast value of the rendered scene (default value is 1). Effective only if is . + + + + + The global color saturation value of the rendered scene (default value is 1). Effective only if is . + + + + + The or lookup table (LUT) to use for the built-in post-process color grading. Can use a for a 1-dimensional LUT, or a for a more complex LUT. Effective only if is . + + + + + Sets the intensity of the glow level . A value above 0.0 enables the level. Each level relies on the previous level. This means that enabling higher glow levels will slow down the glow effect rendering, even if previous levels aren't enabled. + + + + + Returns the intensity of the glow level . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'background_mode' property. + + + + + Cached name for the 'background_color' property. + + + + + Cached name for the 'background_energy_multiplier' property. + + + + + Cached name for the 'background_intensity' property. + + + + + Cached name for the 'background_canvas_max_layer' property. + + + + + Cached name for the 'background_camera_feed_id' property. + + + + + Cached name for the 'sky' property. + + + + + Cached name for the 'sky_custom_fov' property. + + + + + Cached name for the 'sky_rotation' property. + + + + + Cached name for the 'ambient_light_source' property. + + + + + Cached name for the 'ambient_light_color' property. + + + + + Cached name for the 'ambient_light_sky_contribution' property. + + + + + Cached name for the 'ambient_light_energy' property. + + + + + Cached name for the 'reflected_light_source' property. + + + + + Cached name for the 'tonemap_mode' property. + + + + + Cached name for the 'tonemap_exposure' property. + + + + + Cached name for the 'tonemap_white' property. + + + + + Cached name for the 'ssr_enabled' property. + + + + + Cached name for the 'ssr_max_steps' property. + + + + + Cached name for the 'ssr_fade_in' property. + + + + + Cached name for the 'ssr_fade_out' property. + + + + + Cached name for the 'ssr_depth_tolerance' property. + + + + + Cached name for the 'ssao_enabled' property. + + + + + Cached name for the 'ssao_radius' property. + + + + + Cached name for the 'ssao_intensity' property. + + + + + Cached name for the 'ssao_power' property. + + + + + Cached name for the 'ssao_detail' property. + + + + + Cached name for the 'ssao_horizon' property. + + + + + Cached name for the 'ssao_sharpness' property. + + + + + Cached name for the 'ssao_light_affect' property. + + + + + Cached name for the 'ssao_ao_channel_affect' property. + + + + + Cached name for the 'ssil_enabled' property. + + + + + Cached name for the 'ssil_radius' property. + + + + + Cached name for the 'ssil_intensity' property. + + + + + Cached name for the 'ssil_sharpness' property. + + + + + Cached name for the 'ssil_normal_rejection' property. + + + + + Cached name for the 'sdfgi_enabled' property. + + + + + Cached name for the 'sdfgi_use_occlusion' property. + + + + + Cached name for the 'sdfgi_read_sky_light' property. + + + + + Cached name for the 'sdfgi_bounce_feedback' property. + + + + + Cached name for the 'sdfgi_cascades' property. + + + + + Cached name for the 'sdfgi_min_cell_size' property. + + + + + Cached name for the 'sdfgi_cascade0_distance' property. + + + + + Cached name for the 'sdfgi_max_distance' property. + + + + + Cached name for the 'sdfgi_y_scale' property. + + + + + Cached name for the 'sdfgi_energy' property. + + + + + Cached name for the 'sdfgi_normal_bias' property. + + + + + Cached name for the 'sdfgi_probe_bias' property. + + + + + Cached name for the 'glow_enabled' property. + + + + + Cached name for the 'glow_normalized' property. + + + + + Cached name for the 'glow_intensity' property. + + + + + Cached name for the 'glow_strength' property. + + + + + Cached name for the 'glow_mix' property. + + + + + Cached name for the 'glow_bloom' property. + + + + + Cached name for the 'glow_blend_mode' property. + + + + + Cached name for the 'glow_hdr_threshold' property. + + + + + Cached name for the 'glow_hdr_scale' property. + + + + + Cached name for the 'glow_hdr_luminance_cap' property. + + + + + Cached name for the 'glow_map_strength' property. + + + + + Cached name for the 'glow_map' property. + + + + + Cached name for the 'fog_enabled' property. + + + + + Cached name for the 'fog_mode' property. + + + + + Cached name for the 'fog_light_color' property. + + + + + Cached name for the 'fog_light_energy' property. + + + + + Cached name for the 'fog_sun_scatter' property. + + + + + Cached name for the 'fog_density' property. + + + + + Cached name for the 'fog_aerial_perspective' property. + + + + + Cached name for the 'fog_sky_affect' property. + + + + + Cached name for the 'fog_height' property. + + + + + Cached name for the 'fog_height_density' property. + + + + + Cached name for the 'fog_depth_curve' property. + + + + + Cached name for the 'fog_depth_begin' property. + + + + + Cached name for the 'fog_depth_end' property. + + + + + Cached name for the 'volumetric_fog_enabled' property. + + + + + Cached name for the 'volumetric_fog_density' property. + + + + + Cached name for the 'volumetric_fog_albedo' property. + + + + + Cached name for the 'volumetric_fog_emission' property. + + + + + Cached name for the 'volumetric_fog_emission_energy' property. + + + + + Cached name for the 'volumetric_fog_gi_inject' property. + + + + + Cached name for the 'volumetric_fog_anisotropy' property. + + + + + Cached name for the 'volumetric_fog_length' property. + + + + + Cached name for the 'volumetric_fog_detail_spread' property. + + + + + Cached name for the 'volumetric_fog_ambient_inject' property. + + + + + Cached name for the 'volumetric_fog_sky_affect' property. + + + + + Cached name for the 'volumetric_fog_temporal_reprojection_enabled' property. + + + + + Cached name for the 'volumetric_fog_temporal_reprojection_amount' property. + + + + + Cached name for the 'adjustment_enabled' property. + + + + + Cached name for the 'adjustment_brightness' property. + + + + + Cached name for the 'adjustment_contrast' property. + + + + + Cached name for the 'adjustment_saturation' property. + + + + + Cached name for the 'adjustment_color_correction' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_background' method. + + + + + Cached name for the 'get_background' method. + + + + + Cached name for the 'set_sky' method. + + + + + Cached name for the 'get_sky' method. + + + + + Cached name for the 'set_sky_custom_fov' method. + + + + + Cached name for the 'get_sky_custom_fov' method. + + + + + Cached name for the 'set_sky_rotation' method. + + + + + Cached name for the 'get_sky_rotation' method. + + + + + Cached name for the 'set_bg_color' method. + + + + + Cached name for the 'get_bg_color' method. + + + + + Cached name for the 'set_bg_energy_multiplier' method. + + + + + Cached name for the 'get_bg_energy_multiplier' method. + + + + + Cached name for the 'set_bg_intensity' method. + + + + + Cached name for the 'get_bg_intensity' method. + + + + + Cached name for the 'set_canvas_max_layer' method. + + + + + Cached name for the 'get_canvas_max_layer' method. + + + + + Cached name for the 'set_camera_feed_id' method. + + + + + Cached name for the 'get_camera_feed_id' method. + + + + + Cached name for the 'set_ambient_light_color' method. + + + + + Cached name for the 'get_ambient_light_color' method. + + + + + Cached name for the 'set_ambient_source' method. + + + + + Cached name for the 'get_ambient_source' method. + + + + + Cached name for the 'set_ambient_light_energy' method. + + + + + Cached name for the 'get_ambient_light_energy' method. + + + + + Cached name for the 'set_ambient_light_sky_contribution' method. + + + + + Cached name for the 'get_ambient_light_sky_contribution' method. + + + + + Cached name for the 'set_reflection_source' method. + + + + + Cached name for the 'get_reflection_source' method. + + + + + Cached name for the 'set_tonemapper' method. + + + + + Cached name for the 'get_tonemapper' method. + + + + + Cached name for the 'set_tonemap_exposure' method. + + + + + Cached name for the 'get_tonemap_exposure' method. + + + + + Cached name for the 'set_tonemap_white' method. + + + + + Cached name for the 'get_tonemap_white' method. + + + + + Cached name for the 'set_ssr_enabled' method. + + + + + Cached name for the 'is_ssr_enabled' method. + + + + + Cached name for the 'set_ssr_max_steps' method. + + + + + Cached name for the 'get_ssr_max_steps' method. + + + + + Cached name for the 'set_ssr_fade_in' method. + + + + + Cached name for the 'get_ssr_fade_in' method. + + + + + Cached name for the 'set_ssr_fade_out' method. + + + + + Cached name for the 'get_ssr_fade_out' method. + + + + + Cached name for the 'set_ssr_depth_tolerance' method. + + + + + Cached name for the 'get_ssr_depth_tolerance' method. + + + + + Cached name for the 'set_ssao_enabled' method. + + + + + Cached name for the 'is_ssao_enabled' method. + + + + + Cached name for the 'set_ssao_radius' method. + + + + + Cached name for the 'get_ssao_radius' method. + + + + + Cached name for the 'set_ssao_intensity' method. + + + + + Cached name for the 'get_ssao_intensity' method. + + + + + Cached name for the 'set_ssao_power' method. + + + + + Cached name for the 'get_ssao_power' method. + + + + + Cached name for the 'set_ssao_detail' method. + + + + + Cached name for the 'get_ssao_detail' method. + + + + + Cached name for the 'set_ssao_horizon' method. + + + + + Cached name for the 'get_ssao_horizon' method. + + + + + Cached name for the 'set_ssao_sharpness' method. + + + + + Cached name for the 'get_ssao_sharpness' method. + + + + + Cached name for the 'set_ssao_direct_light_affect' method. + + + + + Cached name for the 'get_ssao_direct_light_affect' method. + + + + + Cached name for the 'set_ssao_ao_channel_affect' method. + + + + + Cached name for the 'get_ssao_ao_channel_affect' method. + + + + + Cached name for the 'set_ssil_enabled' method. + + + + + Cached name for the 'is_ssil_enabled' method. + + + + + Cached name for the 'set_ssil_radius' method. + + + + + Cached name for the 'get_ssil_radius' method. + + + + + Cached name for the 'set_ssil_intensity' method. + + + + + Cached name for the 'get_ssil_intensity' method. + + + + + Cached name for the 'set_ssil_sharpness' method. + + + + + Cached name for the 'get_ssil_sharpness' method. + + + + + Cached name for the 'set_ssil_normal_rejection' method. + + + + + Cached name for the 'get_ssil_normal_rejection' method. + + + + + Cached name for the 'set_sdfgi_enabled' method. + + + + + Cached name for the 'is_sdfgi_enabled' method. + + + + + Cached name for the 'set_sdfgi_cascades' method. + + + + + Cached name for the 'get_sdfgi_cascades' method. + + + + + Cached name for the 'set_sdfgi_min_cell_size' method. + + + + + Cached name for the 'get_sdfgi_min_cell_size' method. + + + + + Cached name for the 'set_sdfgi_max_distance' method. + + + + + Cached name for the 'get_sdfgi_max_distance' method. + + + + + Cached name for the 'set_sdfgi_cascade0_distance' method. + + + + + Cached name for the 'get_sdfgi_cascade0_distance' method. + + + + + Cached name for the 'set_sdfgi_y_scale' method. + + + + + Cached name for the 'get_sdfgi_y_scale' method. + + + + + Cached name for the 'set_sdfgi_use_occlusion' method. + + + + + Cached name for the 'is_sdfgi_using_occlusion' method. + + + + + Cached name for the 'set_sdfgi_bounce_feedback' method. + + + + + Cached name for the 'get_sdfgi_bounce_feedback' method. + + + + + Cached name for the 'set_sdfgi_read_sky_light' method. + + + + + Cached name for the 'is_sdfgi_reading_sky_light' method. + + + + + Cached name for the 'set_sdfgi_energy' method. + + + + + Cached name for the 'get_sdfgi_energy' method. + + + + + Cached name for the 'set_sdfgi_normal_bias' method. + + + + + Cached name for the 'get_sdfgi_normal_bias' method. + + + + + Cached name for the 'set_sdfgi_probe_bias' method. + + + + + Cached name for the 'get_sdfgi_probe_bias' method. + + + + + Cached name for the 'set_glow_enabled' method. + + + + + Cached name for the 'is_glow_enabled' method. + + + + + Cached name for the 'set_glow_level' method. + + + + + Cached name for the 'get_glow_level' method. + + + + + Cached name for the 'set_glow_normalized' method. + + + + + Cached name for the 'is_glow_normalized' method. + + + + + Cached name for the 'set_glow_intensity' method. + + + + + Cached name for the 'get_glow_intensity' method. + + + + + Cached name for the 'set_glow_strength' method. + + + + + Cached name for the 'get_glow_strength' method. + + + + + Cached name for the 'set_glow_mix' method. + + + + + Cached name for the 'get_glow_mix' method. + + + + + Cached name for the 'set_glow_bloom' method. + + + + + Cached name for the 'get_glow_bloom' method. + + + + + Cached name for the 'set_glow_blend_mode' method. + + + + + Cached name for the 'get_glow_blend_mode' method. + + + + + Cached name for the 'set_glow_hdr_bleed_threshold' method. + + + + + Cached name for the 'get_glow_hdr_bleed_threshold' method. + + + + + Cached name for the 'set_glow_hdr_bleed_scale' method. + + + + + Cached name for the 'get_glow_hdr_bleed_scale' method. + + + + + Cached name for the 'set_glow_hdr_luminance_cap' method. + + + + + Cached name for the 'get_glow_hdr_luminance_cap' method. + + + + + Cached name for the 'set_glow_map_strength' method. + + + + + Cached name for the 'get_glow_map_strength' method. + + + + + Cached name for the 'set_glow_map' method. + + + + + Cached name for the 'get_glow_map' method. + + + + + Cached name for the 'set_fog_enabled' method. + + + + + Cached name for the 'is_fog_enabled' method. + + + + + Cached name for the 'set_fog_mode' method. + + + + + Cached name for the 'get_fog_mode' method. + + + + + Cached name for the 'set_fog_light_color' method. + + + + + Cached name for the 'get_fog_light_color' method. + + + + + Cached name for the 'set_fog_light_energy' method. + + + + + Cached name for the 'get_fog_light_energy' method. + + + + + Cached name for the 'set_fog_sun_scatter' method. + + + + + Cached name for the 'get_fog_sun_scatter' method. + + + + + Cached name for the 'set_fog_density' method. + + + + + Cached name for the 'get_fog_density' method. + + + + + Cached name for the 'set_fog_height' method. + + + + + Cached name for the 'get_fog_height' method. + + + + + Cached name for the 'set_fog_height_density' method. + + + + + Cached name for the 'get_fog_height_density' method. + + + + + Cached name for the 'set_fog_aerial_perspective' method. + + + + + Cached name for the 'get_fog_aerial_perspective' method. + + + + + Cached name for the 'set_fog_sky_affect' method. + + + + + Cached name for the 'get_fog_sky_affect' method. + + + + + Cached name for the 'set_fog_depth_curve' method. + + + + + Cached name for the 'get_fog_depth_curve' method. + + + + + Cached name for the 'set_fog_depth_begin' method. + + + + + Cached name for the 'get_fog_depth_begin' method. + + + + + Cached name for the 'set_fog_depth_end' method. + + + + + Cached name for the 'get_fog_depth_end' method. + + + + + Cached name for the 'set_volumetric_fog_enabled' method. + + + + + Cached name for the 'is_volumetric_fog_enabled' method. + + + + + Cached name for the 'set_volumetric_fog_emission' method. + + + + + Cached name for the 'get_volumetric_fog_emission' method. + + + + + Cached name for the 'set_volumetric_fog_albedo' method. + + + + + Cached name for the 'get_volumetric_fog_albedo' method. + + + + + Cached name for the 'set_volumetric_fog_density' method. + + + + + Cached name for the 'get_volumetric_fog_density' method. + + + + + Cached name for the 'set_volumetric_fog_emission_energy' method. + + + + + Cached name for the 'get_volumetric_fog_emission_energy' method. + + + + + Cached name for the 'set_volumetric_fog_anisotropy' method. + + + + + Cached name for the 'get_volumetric_fog_anisotropy' method. + + + + + Cached name for the 'set_volumetric_fog_length' method. + + + + + Cached name for the 'get_volumetric_fog_length' method. + + + + + Cached name for the 'set_volumetric_fog_detail_spread' method. + + + + + Cached name for the 'get_volumetric_fog_detail_spread' method. + + + + + Cached name for the 'set_volumetric_fog_gi_inject' method. + + + + + Cached name for the 'get_volumetric_fog_gi_inject' method. + + + + + Cached name for the 'set_volumetric_fog_ambient_inject' method. + + + + + Cached name for the 'get_volumetric_fog_ambient_inject' method. + + + + + Cached name for the 'set_volumetric_fog_sky_affect' method. + + + + + Cached name for the 'get_volumetric_fog_sky_affect' method. + + + + + Cached name for the 'set_volumetric_fog_temporal_reprojection_enabled' method. + + + + + Cached name for the 'is_volumetric_fog_temporal_reprojection_enabled' method. + + + + + Cached name for the 'set_volumetric_fog_temporal_reprojection_amount' method. + + + + + Cached name for the 'get_volumetric_fog_temporal_reprojection_amount' method. + + + + + Cached name for the 'set_adjustment_enabled' method. + + + + + Cached name for the 'is_adjustment_enabled' method. + + + + + Cached name for the 'set_adjustment_brightness' method. + + + + + Cached name for the 'get_adjustment_brightness' method. + + + + + Cached name for the 'set_adjustment_contrast' method. + + + + + Cached name for the 'get_adjustment_contrast' method. + + + + + Cached name for the 'set_adjustment_saturation' method. + + + + + Cached name for the 'get_adjustment_saturation' method. + + + + + Cached name for the 'set_adjustment_color_correction' method. + + + + + Cached name for the 'get_adjustment_color_correction' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An expression can be made of any arithmetic operation, built-in math function call, method call of a passed instance, or built-in type construction call. + An example expression text using the built-in math functions could be sqrt(pow(3, 2) + pow(4, 2)). + In the following example we use a node to write our expression and show the result. + + private Expression _expression = new Expression(); + + public override void _Ready() + { + GetNode<LineEdit>("LineEdit").TextSubmitted += OnTextEntered; + } + + private void OnTextEntered(string command) + { + Error error = _expression.Parse(command); + if (error != Error.Ok) + { + GD.Print(_expression.GetErrorText()); + return; + } + Variant result = _expression.Execute(); + if (!_expression.HasExecuteFailed()) + { + GetNode<LineEdit>("LineEdit").Text = result.ToString(); + } + } + + + + + + Parses the expression and returns an code. + You can optionally specify names of variables that may appear in the expression with , so that you can bind them when it gets executed. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Parses the expression and returns an code. + You can optionally specify names of variables that may appear in the expression with , so that you can bind them when it gets executed. + + + + + Executes the expression that was previously parsed by and returns the result. Before you use the returned object, you should check if the method failed by calling . + If you defined input variables in , you can specify their values in the inputs array, in the same order. + + + + + Returns if has failed. + + + + + Returns the error text if or has failed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'parse' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'has_execute_failed' method. + + + + + Cached name for the 'get_error_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Displays the content of an external buffer provided by the platform. + Requires the OES_EGL_image_external extension (OpenGL) or VK_ANDROID_external_memory_android_hardware_buffer extension (Vulkan). + Note: This is currently only supported in Android builds. + + + + + External texture size. + + + + + Returns the external texture ID. + Depending on your use case, you may need to pass this to platform APIs, for example, when creating an android.graphics.SurfaceTexture on Android. + + + + + Sets the external buffer ID. + Depending on your use case, you may need to call this with data received from a platform API, for example, SurfaceTexture.getHardwareBuffer() on Android. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_external_texture_id' method. + + + + + Cached name for the 'set_external_buffer_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The FBXDocument handles FBX documents. It provides methods to append data from buffers or files, generate scenes, and register/unregister document extensions. + When exporting FBX from Blender, use the "FBX Units Scale" option. The "FBX Units Scale" option sets the correct scale factor and avoids manual adjustments when re-importing into Blender, such as through glTF export. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The FBXState handles the state data imported from FBX files. + + + + + If , the import process used auxiliary nodes called geometry helper nodes. These nodes help preserve the pivots and transformations of the original 3D model during import. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'allow_geometry_helper_nodes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_allow_geometry_helper_nodes' method. + + + + + Cached name for the 'set_allow_geometry_helper_nodes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class generates noise using the FastNoiseLite library, which is a collection of several noise algorithms including Cellular, Perlin, Value, and more. + Most generated noise values are in the range of [-1, 1], but not always. Some of the cellular noise algorithms return results above 1. + + + + + A lattice of points are assigned random values then interpolated based on neighboring values. + + + + + 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. + + + + + A lattice of random gradients. Their dot products are interpolated to obtain values in between the lattices. + + + + + Cellular includes both Worley noise and Voronoi diagrams which creates various regions of the same value. + + + + + As opposed to , gradients exist in a simplex lattice rather than a grid lattice, avoiding directional artifacts. Internally uses FastNoiseLite's OpenSimplex2 noise type. + + + + + Modified, higher quality version of , but slower. Internally uses FastNoiseLite's OpenSimplex2S noise type. + + + + + No fractal noise. + + + + + Method using Fractional Brownian Motion to combine octaves into a fractal. + + + + + Method of combining octaves into a fractal resulting in a "ridged" look. + + + + + Method of combining octaves into a fractal with a ping pong effect. + + + + + Euclidean distance to the nearest point. + + + + + Squared Euclidean distance to the nearest point. + + + + + Manhattan distance (taxicab metric) to the nearest point. + + + + + Blend of and to give curved cell boundaries. + + + + + The cellular distance function will return the same value for all points within a cell. + + + + + The cellular distance function will return a value determined by the distance to the nearest point. + + + + + The cellular distance function returns the distance to the second-nearest point. + + + + + The distance to the nearest point is added to the distance to the second-nearest point. + + + + + The distance to the nearest point is subtracted from the distance to the second-nearest point. + + + + + The distance to the nearest point is multiplied with the distance to the second-nearest point. + + + + + The distance to the nearest point is divided by the distance to the second-nearest point. + + + + + The domain is warped using the simplex noise algorithm. + + + + + The domain is warped using a simplified version of the simplex noise algorithm. + + + + + The domain is warped using a simple noise grid (not as smooth as the other methods, but more performant). + + + + + No fractal noise for warping the space. + + + + + Warping the space progressively, octave for octave, resulting in a more "liquified" distortion. + + + + + Warping the space independently for each octave, resulting in a more chaotic distortion. + + + + + The noise algorithm used. See . + + + + + The random number seed for all noise types. + + + + + The frequency for all noise types. Low frequency results in smooth noise while high frequency results in rougher, more granular noise. + + + + + Translate the noise input coordinates by the given . + + + + + The method for combining octaves into a fractal. See . + + + + + The number of noise layers that are sampled to get the final value for fractal noise types. + + + + + Frequency multiplier between subsequent octaves. Increasing this value results in higher octaves producing noise with finer details and a rougher appearance. + + + + + Determines the strength of each subsequent layer of noise in fractal noise. + A low value places more emphasis on the lower frequency base layers, while a high value puts more emphasis on the higher frequency layers. + + + + + Higher weighting means higher octaves have less impact if lower octaves have a large impact. + + + + + Sets the strength of the fractal ping pong type. + + + + + Determines how the distance to the nearest/second-nearest point is computed. See for options. + + + + + Maximum distance a point can move off of its grid position. Set to 0 for an even grid. + + + + + Return type from cellular noise calculations. See . + + + + + If enabled, another FastNoiseLite instance is used to warp the space, resulting in a distortion of the noise. + + + + + Sets the warp algorithm. See . + + + + + Sets the maximum warp distance from the origin. + + + + + Frequency of the noise which warps the space. Low frequency results in smooth noise while high frequency results in rougher, more granular noise. + + + + + The method for combining octaves into a fractal which is used to warp the space. See . + + + + + The number of noise layers that are sampled to get the final value for the fractal noise which warps the space. + + + + + Octave lacunarity of the fractal noise which warps the space. Increasing this value results in higher octaves producing noise with finer details and a rougher appearance. + + + + + Determines the strength of each subsequent layer of the noise which is used to warp the space. + A low value places more emphasis on the lower frequency base layers, while a high value puts more emphasis on the higher frequency layers. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'noise_type' property. + + + + + Cached name for the 'seed' property. + + + + + Cached name for the 'frequency' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'fractal_type' property. + + + + + Cached name for the 'fractal_octaves' property. + + + + + Cached name for the 'fractal_lacunarity' property. + + + + + Cached name for the 'fractal_gain' property. + + + + + Cached name for the 'fractal_weighted_strength' property. + + + + + Cached name for the 'fractal_ping_pong_strength' property. + + + + + Cached name for the 'cellular_distance_function' property. + + + + + Cached name for the 'cellular_jitter' property. + + + + + Cached name for the 'cellular_return_type' property. + + + + + Cached name for the 'domain_warp_enabled' property. + + + + + Cached name for the 'domain_warp_type' property. + + + + + Cached name for the 'domain_warp_amplitude' property. + + + + + Cached name for the 'domain_warp_frequency' property. + + + + + Cached name for the 'domain_warp_fractal_type' property. + + + + + Cached name for the 'domain_warp_fractal_octaves' property. + + + + + Cached name for the 'domain_warp_fractal_lacunarity' property. + + + + + Cached name for the 'domain_warp_fractal_gain' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_noise_type' method. + + + + + Cached name for the 'get_noise_type' method. + + + + + Cached name for the 'set_seed' method. + + + + + Cached name for the 'get_seed' method. + + + + + Cached name for the 'set_frequency' method. + + + + + Cached name for the 'get_frequency' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_fractal_type' method. + + + + + Cached name for the 'get_fractal_type' method. + + + + + Cached name for the 'set_fractal_octaves' method. + + + + + Cached name for the 'get_fractal_octaves' method. + + + + + Cached name for the 'set_fractal_lacunarity' method. + + + + + Cached name for the 'get_fractal_lacunarity' method. + + + + + Cached name for the 'set_fractal_gain' method. + + + + + Cached name for the 'get_fractal_gain' method. + + + + + Cached name for the 'set_fractal_weighted_strength' method. + + + + + Cached name for the 'get_fractal_weighted_strength' method. + + + + + Cached name for the 'set_fractal_ping_pong_strength' method. + + + + + Cached name for the 'get_fractal_ping_pong_strength' method. + + + + + Cached name for the 'set_cellular_distance_function' method. + + + + + Cached name for the 'get_cellular_distance_function' method. + + + + + Cached name for the 'set_cellular_jitter' method. + + + + + Cached name for the 'get_cellular_jitter' method. + + + + + Cached name for the 'set_cellular_return_type' method. + + + + + Cached name for the 'get_cellular_return_type' method. + + + + + Cached name for the 'set_domain_warp_enabled' method. + + + + + Cached name for the 'is_domain_warp_enabled' method. + + + + + Cached name for the 'set_domain_warp_type' method. + + + + + Cached name for the 'get_domain_warp_type' method. + + + + + Cached name for the 'set_domain_warp_amplitude' method. + + + + + Cached name for the 'get_domain_warp_amplitude' method. + + + + + Cached name for the 'set_domain_warp_frequency' method. + + + + + Cached name for the 'get_domain_warp_frequency' method. + + + + + Cached name for the 'set_domain_warp_fractal_type' method. + + + + + Cached name for the 'get_domain_warp_fractal_type' method. + + + + + Cached name for the 'set_domain_warp_fractal_octaves' method. + + + + + Cached name for the 'get_domain_warp_fractal_octaves' method. + + + + + Cached name for the 'set_domain_warp_fractal_lacunarity' method. + + + + + Cached name for the 'get_domain_warp_fractal_lacunarity' method. + + + + + Cached name for the 'set_domain_warp_fractal_gain' method. + + + + + Cached name for the 'get_domain_warp_fractal_gain' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 storing game save data or player configuration files. + Here's a sample on how to write and read from a file: + + public void SaveToFile(string content) + { + using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Write); + file.StoreString(content); + } + + public string LoadFromFile() + { + using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Read); + string content = file.GetAsText(); + return content; + } + + In the example above, the file will be saved in the user data folder as specified in the Data paths documentation. + will close when it's freed, which happens when it goes out of scope or when it gets assigned with . can be used to close it before then explicitly. In C# the reference must be disposed manually, which can be done with the using statement or by calling the Dispose method directly. + Note: To access project resources once exported, it is recommended to use instead of , as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package. If using , make sure the file is included in the export by changing its import mode to Keep File (exported as is) in the Import dock, or, for files where this option is not available, change the non-resource export filter in the Export dialog to include the file's extension (e.g. *.txt). + Note: Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing Alt + F4). If you stop the project execution by pressing F8 while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling at regular intervals. + + + + + Opens the file for read operations. The cursor is positioned at the beginning of the file. + + + + + Opens the file for write operations. The file is created if it does not exist, and truncated if it does. + Note: When creating a file it must be in an already existing directory. To recursively create directories for a file path, see . + + + + + Opens the file for read and write operations. Does not truncate the file. The cursor is positioned at the beginning of the file. + + + + + 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. + Note: When creating a file it must be in an already existing directory. To recursively create directories for a file path, see . + + + + + Uses the FastLZ compression method. + + + + + Uses the DEFLATE compression method. + + + + + Uses the Zstandard compression method. + + + + + Uses the gzip compression method. + + + + + Uses the brotli compression method (only decompression is supported). + + + + + Read for owner bit. + + + + + Write for owner bit. + + + + + Execute for owner bit. + + + + + Read for group bit. + + + + + Write for group bit. + + + + + Execute for group bit. + + + + + Read for other bit. + + + + + Write for other bit. + + + + + Execute for other bit. + + + + + Set user id on execution bit. + + + + + Set group id on execution bit. + + + + + Restricted deletion (sticky) bit. + + + + + If , the file is read with big-endian endianness. If , the file is read with little-endian endianness. If in doubt, leave this to as most files are written with little-endian endianness. + Note: is only about the file format, not the CPU type. The CPU endianness doesn't affect the default endianness for files written. + Note: This is always reset to whenever you open the file. Therefore, you must set after opening the file, not before. + + + + + Creates a new object and opens the file for writing or reading, depending on the flags. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens a compressed file for reading or writing. + Note: can only read files that were saved by Godot, not third-party compression formats. See GitHub issue #28999 for a workaround. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Returns the result of the last call in the current thread. + + + + + Creates a temporary file. This file will be freed when the returned is freed. + If is not empty, it will be prefixed to the file name, separated by a -. + If is not empty, it will be appended to the temporary file name. + If is , the file is not deleted when the returned is freed. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Returns the whole file contents as a [] without any decoding. + Returns an empty [] if an error occurred while opening the file. You can use to check the error that occurred. + + + + + Returns the whole file contents as a . Text is interpreted as being UTF-8 encoded. + Returns an empty if an error occurred while opening the file. You can use to check the error that occurred. + + + + + Resizes the file to a specified length. The file must be open in a mode that permits writing. If the file is extended, NUL characters are appended. If the file is truncated, all data from the end file to the original length of the file is lost. + + + + + Writes the file's buffer to disk. Flushing is automatically performed when the file is closed. This means you don't need to call manually before closing a file. Still, calling can be used to ensure the data is safe even if the project crashes instead of being closed gracefully. + Note: Only call when you actually need it. Otherwise, it will decrease performance due to constant disk writes. + + + + + Returns the path as a for the current open file. + + + + + Returns the absolute path as a for the current open file. + + + + + Returns if the file is currently opened. + + + + + Changes the file reading/writing cursor to the specified position (in bytes from the beginning of the file). + + + + + Changes the file reading/writing cursor to the specified position (in bytes from the end of the file). + Note: This is an offset, so you should use negative numbers or the cursor will be at the end of the file. + + + + + Returns the file cursor's position. + + + + + Returns the size of the file in bytes. + + + + + Returns if the file cursor has already read past the end of the file. + Note: eof_reached() == false cannot be used to check whether there is more data available. To loop while there is more data available, use: + + while (file.GetPosition() < file.GetLength()) + { + // Read data + } + + + + + + Returns the next 8 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 16 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 32 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 64 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 16 bits from the file as a half-precision floating-point number. + + + + + Returns the next 32 bits from the file as a floating-point number. + + + + + Returns the next 64 bits from the file as a floating-point number. + + + + + Returns the next bits from the file as a floating-point number. + + + + + Returns next bytes of the file as a []. + + + + + Returns the next line of the file as a . The returned string doesn't include newline (\n) or carriage return (\r) characters, but does include any other leading or trailing whitespace. + Text is interpreted as being UTF-8 encoded. + + + + + Returns the next value of the file in CSV (Comma-Separated Values) format. You can pass a different delimiter to use other than the default "," (comma). This delimiter must be one-character long, and cannot be a double quotation mark. + Text is interpreted as being UTF-8 encoded. Text values must be enclosed in double quotes if they include the delimiter character. Double quotes within a text value can be escaped by doubling their occurrence. + For example, the following CSV lines are valid and will be properly parsed as two strings each: + + Alice,"Hello, Bob!" + Bob,Alice! What a surprise! + Alice,"I thought you'd reply with ""Hello, world""." + + Note how the second line can omit the enclosing quotes as it does not include the delimiter. However it could very well use quotes, it was only written without for demonstration purposes. The third line must use "" for each quotation mark that needs to be interpreted as such instead of the end of a text value. + + + + + Returns the whole file as a . Text is interpreted as being UTF-8 encoded. + If is , carriage return characters (\r, CR) will be ignored when parsing the UTF-8, so that only line feed characters (\n, LF) represent a new line (Unix convention). + + + + + Returns an MD5 String representing the file at the given path or an empty on failure. + + + + + Returns an SHA-256 representing the file at the given path or an empty on failure. + + + + + Returns the last error that happened when trying to perform operations. Compare with the ERR_FILE_* constants from . + + + + + Returns the next value from the file. If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Stores an integer as 8 bits in the file. + Note: The should lie in the interval [0, 255]. Any other value will overflow and wrap around. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + To store a signed integer, use , or convert it manually (see for an example). + + + + + Stores an integer as 16 bits in the file. + Note: The should lie in the interval [0, 2^16 - 1]. Any other value will overflow and wrap around. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + To store a signed integer, use or store a signed integer from the interval [-2^15, 2^15 - 1] (i.e. keeping one bit for the signedness) and compute its sign manually when reading. For example: + + public override void _Ready() + { + using var f = FileAccess.Open("user://file.dat", FileAccess.ModeFlags.WriteRead); + f.Store16(unchecked((ushort)-42)); // This wraps around and stores 65494 (2^16 - 42). + f.Store16(121); // In bounds, will store 121. + f.Seek(0); // Go back to start to read the stored value. + ushort read1 = f.Get16(); // 65494 + ushort read2 = f.Get16(); // 121 + short converted1 = (short)read1; // -42 + short converted2 = (short)read2; // 121 + } + + + + + + Stores an integer as 32 bits in the file. + Note: The should lie in the interval [0, 2^32 - 1]. Any other value will overflow and wrap around. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + To store a signed integer, use , or convert it manually (see for an example). + + + + + Stores an integer as 64 bits in the file. + Note: The must lie in the interval [-2^63, 2^63 - 1] (i.e. be a valid value). + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores a half-precision floating-point number as 16 bits in the file. + + + + + Stores a floating-point number as 32 bits in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores a floating-point number as 64 bits in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores a floating-point number in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores the given array of bytes in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores the given array of bytes in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores in the file followed by a newline character (\n), encoding the text as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Store the given [] in the file as a line formatted in the CSV (Comma-Separated Values) format. You can pass a different delimiter to use other than the default "," (comma). This delimiter must be one-character long. + Text will be encoded as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Store the given [] in the file as a line formatted in the CSV (Comma-Separated Values) format. You can pass a different delimiter to use other than the default "," (comma). This delimiter must be one-character long. + Text will be encoded as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores in the file without a newline character (\n), encoding the text as UTF-8. + Note: This method is intended to be used to write text files. The string is stored as a UTF-8 encoded buffer without string length or terminating zero, which means that it can't be loaded back easily. If you want to store a retrievable string in a binary file, consider using instead. For retrieving strings from a text file, you can use get_buffer(length).get_string_from_utf8() (if you know the length) or . + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores any Variant value in the file. If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + Note: Not all properties are included. Only properties that are configured with the flag set will be serialized. You can add a new usage flag to a property by overriding the method in your class. You can also check how property usage is configured by calling . See for the possible usage flags. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores the given as a line in the file in Pascal format (i.e. also store the length of the string). + Text will be encoded as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Returns a saved in Pascal format from the file. + Text is interpreted as being UTF-8 encoded. + + + + + Closes the currently opened file and prevents subsequent read/write operations. Use to persist the data to disk without closing the file. + Note: will automatically close when it's freed, which happens when it goes out of scope or when it gets assigned with . In C# the reference must be disposed after we are done using it, this can be done with the using statement or calling the Dispose method directly. + + + + + Returns if the file exists in the given path. + Note: Many resources types are imported (e.g. textures or sound files), and their source asset will not be included in the exported game, as only the imported version is used. See for an alternative approach that takes resource remapping into account. + For a non-static, relative equivalent, use . + + + + + Returns the last time the was modified in Unix timestamp format, or 0 on error. This Unix timestamp can be converted to another format using the singleton. + + + + + Returns file UNIX permissions. + Note: This method is implemented on iOS, Linux/BSD, and macOS. + + + + + Sets file UNIX permissions. + Note: This method is implemented on iOS, Linux/BSD, and macOS. + + + + + Returns , if file hidden attribute is set. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Sets file hidden attribute. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Sets file read only attribute. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Returns , if file read only attribute is set. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'big_endian' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'open_encrypted' method. + + + + + Cached name for the 'open_encrypted_with_pass' method. + + + + + Cached name for the 'open_compressed' method. + + + + + Cached name for the 'get_open_error' method. + + + + + Cached name for the 'create_temp' method. + + + + + Cached name for the 'get_file_as_bytes' method. + + + + + Cached name for the 'get_file_as_string' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the 'flush' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'get_path_absolute' method. + + + + + Cached name for the 'is_open' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'seek_end' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'eof_reached' method. + + + + + Cached name for the 'get_8' method. + + + + + Cached name for the 'get_16' method. + + + + + Cached name for the 'get_32' method. + + + + + Cached name for the 'get_64' method. + + + + + Cached name for the 'get_half' method. + + + + + Cached name for the 'get_float' method. + + + + + Cached name for the 'get_double' method. + + + + + Cached name for the 'get_real' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'get_line' method. + + + + + Cached name for the 'get_csv_line' method. + + + + + Cached name for the 'get_as_text' method. + + + + + Cached name for the 'get_md5' method. + + + + + Cached name for the 'get_sha256' method. + + + + + Cached name for the 'is_big_endian' method. + + + + + Cached name for the 'set_big_endian' method. + + + + + Cached name for the 'get_error' method. + + + + + Cached name for the 'get_var' method. + + + + + Cached name for the 'store_8' method. + + + + + Cached name for the 'store_16' method. + + + + + Cached name for the 'store_32' method. + + + + + Cached name for the 'store_64' method. + + + + + Cached name for the 'store_half' method. + + + + + Cached name for the 'store_float' method. + + + + + Cached name for the 'store_double' method. + + + + + Cached name for the 'store_real' method. + + + + + Cached name for the 'store_buffer' method. + + + + + Cached name for the 'store_line' method. + + + + + Cached name for the 'store_csv_line' method. + + + + + Cached name for the 'store_string' method. + + + + + Cached name for the 'store_var' method. + + + + + Cached name for the 'store_pascal_string' method. + + + + + Cached name for the 'get_pascal_string' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'file_exists' method. + + + + + Cached name for the 'get_modified_time' method. + + + + + Cached name for the 'get_unix_permissions' method. + + + + + Cached name for the 'set_unix_permissions' method. + + + + + Cached name for the 'get_hidden_attribute' method. + + + + + Cached name for the 'set_hidden_attribute' method. + + + + + Cached name for the 'set_read_only_attribute' method. + + + + + Cached name for the 'get_read_only_attribute' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. automatically sets its window title according to the . If you want to use a custom title, disable this by setting to . + + + + + The dialog allows selecting one, and only one file. + + + + + The dialog allows selecting multiple files. + + + + + The dialog only allows selecting a directory, disallowing the selection of any file. + + + + + The dialog allows selecting one file or directory. + + + + + The dialog will warn when a file exists. + + + + + The dialog only allows accessing files under the path (res://). + + + + + The dialog only allows accessing files under user data path (user://). + + + + + The dialog allows accessing files on the whole file system. + + + + + If , changing the property will set the window title accordingly (e.g. setting to will change the window title to "Open a File"). + + + + + The dialog's open or save mode, which affects the selection behavior. See . + + + + + The file system access scope. See constants. + Warning: In Web builds, FileDialog cannot access the host file system. In sandboxed Linux and macOS environments, is automatically used to allow limited access to host file system. + + + + + If non-empty, the given sub-folder will be "root" of this , i.e. user won't be able to go to its parent directory. + Note: This property is ignored by native file dialogs. + + + + + The available file type filters. Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. + Note: For android native dialog, MIME types are used like this: image/*, application/pdf. + + + + + The filter for file names (case-insensitive). When set to a non-empty string, only files that contains the substring will be shown. can be edited by the user with the filter button at the top of the file dialog. + See also , which should be used to restrict the file types that can be selected instead of which is meant to be set by the user. + + + + + The number of additional s and es in the dialog. + + + + + If , the dialog will show hidden files. + Note: This property is ignored by native file dialogs on Android and Linux. + + + + + If , and if supported by the current , OS native dialog will be used instead of custom one. + Note: On Android, it is only supported when using . For access mode and , the system will fall back to custom FileDialog. + Note: On Linux and macOS, sandboxed apps always use native dialogs to access the host file system. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + Note: Native dialogs are isolated from the base process, file dialog properties can't be modified once the dialog is shown. + + + + + The current working directory of the file dialog. + Note: For native file dialogs, this property is only treated as a hint and may not be respected by specific OS implementations. + + + + + The currently selected file of the file dialog. + + + + + The currently selected file path of the file dialog. + + + + + Clear all the added filters in the dialog. + + + + + Adds a comma-delimited file name option to the with an optional , which restricts what files can be picked. + A should be of the form "filename.extension", where filename and extension can be * to match any string. Filters starting with . (i.e. empty filenames) are not allowed. + For example, a of "*.png, *.jpg" and a of "Images" results in filter text "Images (*.png, *.jpg)". + + + + + Clear the filter for file names. + + + + + Returns the name of the or with index . + + + + + Returns an array of values of the with index . + + + + + Returns the default value index of the or with index . + + + + + Sets the name of the or with index . + + + + + Sets the option values of the with index . + + + + + Sets the option values of the with index . + + + + + Sets the default value index of the or with index . + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Returns a with the selected values of the additional s and/or es. keys are names and values are selected value indices. + + + + + Returns the vertical box container of the dialog, custom controls can be added to it. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + Note: Changes to this node are ignored by native file dialogs, use to add custom elements to the dialog instead. + + + + + Returns the LineEdit for the selected file. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Clear all currently selected items in the dialog. + + + + + Invalidate and update the current dialog content list. + Note: This method does nothing on native file dialogs. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user selects a file by double-clicking it or pressing the OK button. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user selects multiple files. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user selects a directory. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the filter for file names changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode_overrides_title' property. + + + + + Cached name for the 'file_mode' property. + + + + + Cached name for the 'access' property. + + + + + Cached name for the 'root_subfolder' property. + + + + + Cached name for the 'filters' property. + + + + + Cached name for the 'filename_filter' property. + + + + + Cached name for the 'option_count' property. + + + + + Cached name for the 'show_hidden_files' property. + + + + + Cached name for the 'use_native_dialog' property. + + + + + Cached name for the 'current_dir' property. + + + + + Cached name for the 'current_file' property. + + + + + Cached name for the 'current_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear_filters' method. + + + + + Cached name for the 'add_filter' method. + + + + + Cached name for the 'set_filters' method. + + + + + Cached name for the 'get_filters' method. + + + + + Cached name for the 'clear_filename_filter' method. + + + + + Cached name for the 'set_filename_filter' method. + + + + + Cached name for the 'get_filename_filter' method. + + + + + Cached name for the 'get_option_name' method. + + + + + Cached name for the 'get_option_values' method. + + + + + Cached name for the 'get_option_default' method. + + + + + Cached name for the 'set_option_name' method. + + + + + Cached name for the 'set_option_values' method. + + + + + Cached name for the 'set_option_default' method. + + + + + Cached name for the 'set_option_count' method. + + + + + Cached name for the 'get_option_count' method. + + + + + Cached name for the 'add_option' method. + + + + + Cached name for the 'get_selected_options' method. + + + + + Cached name for the 'get_current_dir' method. + + + + + Cached name for the 'get_current_file' method. + + + + + Cached name for the 'get_current_path' method. + + + + + Cached name for the 'set_current_dir' method. + + + + + Cached name for the 'set_current_file' method. + + + + + Cached name for the 'set_current_path' method. + + + + + Cached name for the 'set_mode_overrides_title' method. + + + + + Cached name for the 'is_mode_overriding_title' method. + + + + + Cached name for the 'set_file_mode' method. + + + + + Cached name for the 'get_file_mode' method. + + + + + Cached name for the 'get_vbox' method. + + + + + Cached name for the 'get_line_edit' method. + + + + + Cached name for the 'set_access' method. + + + + + Cached name for the 'get_access' method. + + + + + Cached name for the 'set_root_subfolder' method. + + + + + Cached name for the 'get_root_subfolder' method. + + + + + Cached name for the 'set_show_hidden_files' method. + + + + + Cached name for the 'is_showing_hidden_files' method. + + + + + Cached name for the 'set_use_native_dialog' method. + + + + + Cached name for the 'get_use_native_dialog' method. + + + + + Cached name for the 'deselect_all' method. + + + + + Cached name for the 'invalidate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'file_selected' signal. + + + + + Cached name for the 'files_selected' signal. + + + + + Cached name for the 'dir_selected' signal. + + + + + Cached name for the 'filename_filter_changed' signal. + + + + + 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. + + + + + 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). + + + + + The child controls will be centered in the container. + + + + + 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). + + + + + The last partially filled row or column will wrap aligned to the previous row or column in accordance with . + + + + + The last partially filled row or column will wrap aligned to the beginning of the previous row or column. + + + + + The last partially filled row or column will wrap aligned to the center of the previous row or column. + + + + + The last partially filled row or column will wrap aligned to the end of the previous row or column. + + + + + The alignment of the container's children (must be one of , , or ). + + + + + The wrap behavior of the last, partially filled row or column (must be one of , , , or ). + + + + + If , the will arrange its children vertically, rather than horizontally. + Can't be changed when using and . + + + + + If , reverses fill direction. Horizontal s will fill rows bottom to top, vertical s will fill columns right to left. + When using a vertical with a right to left , columns will fill left to right instead. + + + + + Returns the current line count. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'last_wrap_alignment' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached name for the 'reverse_fill' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'set_alignment' method. + + + + + Cached name for the 'get_alignment' method. + + + + + Cached name for the 'set_last_wrap_alignment' method. + + + + + Cached name for the 'get_last_wrap_alignment' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached name for the 'set_reverse_fill' method. + + + + + Cached name for the 'is_reverse_fill' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource that can be used by s to draw volumetric effects. + If you need more advanced effects, use a custom fog shader. + + + + + The density of the . Denser objects are more opaque, but may suffer from under-sampling artifacts that look like stripes. Negative values can be used to subtract fog from other s or global volumetric fog. + Note: Due to limited precision, values between -0.001 and 0.001 (exclusive) act like 0.0. This does not apply to . + + + + + The single-scattering of the . Internally, is converted into single-scattering, which is additively blended with other s and the . + + + + + The of the light emitted by the . Emitted light will not cast light or shadows on other objects, but can be useful for modulating the of the independently from light sources. + + + + + The rate by which the height-based fog decreases in density as height increases in world space. A high falloff will result in a sharp transition, while a low falloff will result in a smoother transition. A value of 0.0 results in uniform-density fog. The height threshold is determined by the height of the associated . + + + + + The hardness of the edges of the . A higher value will result in softer edges, while a lower value will result in harder edges. + + + + + The 3D texture that is used to scale the of the . This can be used to vary fog density within the with any kind of static pattern. For animated effects, consider using a custom fog shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'density' property. + + + + + Cached name for the 'albedo' property. + + + + + Cached name for the 'emission' property. + + + + + Cached name for the 'height_falloff' property. + + + + + Cached name for the 'edge_fade' property. + + + + + Cached name for the 'density_texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_density' method. + + + + + Cached name for the 'get_density' method. + + + + + Cached name for the 'set_albedo' method. + + + + + Cached name for the 'get_albedo' method. + + + + + Cached name for the 'set_emission' method. + + + + + Cached name for the 'get_emission' method. + + + + + Cached name for the 'set_height_falloff' method. + + + + + Cached name for the 'get_height_falloff' method. + + + + + Cached name for the 'set_edge_fade' method. + + + + + Cached name for the 'get_edge_fade' method. + + + + + Cached name for the 'set_density_texture' method. + + + + + Cached name for the 'get_density_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + s are used to add localized fog into the global volumetric fog effect. s can also remove volumetric fog from specific areas if using a with a negative . + Performance of s is directly related to their relative size on the screen and the complexity of their attached . It is best to keep s relatively small and simple where possible. + Note: s only have a visible effect if is . If you don't want fog to be globally visible (but only within nodes), set to 0.0. + + + + + The size of the when is , , or . + Note: Thin fog volumes may appear to flicker when the camera moves or rotates. This can be alleviated by increasing ProjectSettings.rendering/environment/volumetric_fog/volume_depth (at a performance cost) or by decreasing (at no performance cost, but at the cost of lower fog range). Alternatively, the can be made thicker and use a lower density in the . + Note: If is or , the cone/cylinder will be adjusted to fit within the size. Non-uniform scaling of cone/cylinder shapes via the property is not supported, but you can scale the node instead. + + + + + The shape of the . This can be set to either , , , or . + + + + + The used by the . Can be either a built-in or a custom . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for different font types. It has methods for drawing text and font character introspection. + + + + + Array of fallback s to use as a substitute if a glyph is not found in this current . + If this array is empty in a , the 's fallbacks are used instead. + + + + + Returns RID of the font cache for specific variation. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Returns of valid s, which can be passed to the methods. + + + + + Returns the total average font height (ascent plus descent) in pixels. + Note: Real height of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the height of empty line). + + + + + Returns the average font ascent (number of pixels above the baseline). + Note: Real ascent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the ascent of empty line). + + + + + Returns the average font descent (number of pixels below the baseline). + Note: Real descent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the descent of empty line). + + + + + Returns average pixel offset of the underline below the baseline. + Note: Real underline position of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate. + + + + + Returns average thickness of the underline. + Note: Real underline thickness of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate. + + + + + Returns font family name. + + + + + Returns font style name. + + + + + Returns with OpenType font name strings (localized font names, version, description, license information, sample text, etc.). + + + + + Returns font style flags, see . + + + + + Returns weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Returns font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Returns the spacing for the given type (see ). + + + + + Returns a set of OpenType feature tags. More info: OpenType feature tags. + + + + + Sets LRU cache capacity for draw_* methods. + + + + + Returns the size of a bounding box of a single-line string, taking kerning, advance and subpixel positioning into account. See also and . + For example, to get the string size as displayed by a single-line Label, use: + + Label label = GetNode<Label>("Label"); + Vector2 stringSize = label.GetThemeFont("font").GetStringSize(label.Text, HorizontalAlignment.Left, -1, label.GetThemeFontSize("font_size")); + + Note: Since kerning, advance and subpixel positioning are taken into account by , using separate calls on substrings of a string then adding the results together will return a different result compared to using a single call on the full string. + Note: Real height of the string is context-dependent and can be significantly different from the value returned by . + + + + + Returns the size of a bounding box of a string broken into the lines, taking kerning and advance into account. + See also . + + + + + Draw into a canvas item using the font, at a given position, with color, optionally clipping the width and aligning horizontally. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks into lines using rules specified by and draws it into a canvas item using the font, at a given position, with color, optionally clipping the width and aligning horizontally. specifies the baseline of the first line, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw outline into a canvas item using the font, at a given position, with color and outline size, optionally clipping the width and aligning horizontally. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks to the lines using rules specified by and draws text outline into a canvas item using the font, at a given position, with color and outline size, optionally clipping the width and aligning horizontally. specifies the baseline of the first line, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns the size of a character. Does not take kerning into account. + Note: Do not use this function to calculate width of the string character by character, use or instead. The height returned is the font height (see also ) and has no relation to the glyph height. + + + + + Draw a single Unicode character into a canvas item using the font, at a given position, with color. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + Note: Do not use this function to draw strings character by character, use or instead. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw a single Unicode character outline into a canvas item using the font, at a given position, with color and outline size. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + Note: Do not use this function to draw strings character by character, use or instead. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns if a Unicode is available in the font. + + + + + Returns a string containing all the characters available in the font. + If a given character is included in more than one font data source, it appears only once in the returned string. + + + + + Returns , if font supports given language (ISO 639 code). + + + + + Returns , if font supports given script (ISO 15924 code). + + + + + Returns list of OpenType features supported by font. + + + + + Returns list of supported variation coordinates, each coordinate is returned as tag: Vector3i(min_value,max_value,default_value). + Font variations allow for continuous change of glyph characteristics along some given design axis, such as weight, width or slant. + To print available variation axes of a variable font: + + var fv = FontVariation.new() + fv.base_font = load("res://RobotoFlex.ttf") + var variation_list = fv.get_supported_variation_list() + for tag in variation_list: + var name = TextServerManager.get_primary_interface().tag_to_name(tag) + var values = variation_list[tag] + print("variation axis: %s (%d)\n\tmin, max, default: %s" % [name, tag, values]) + + Note: To set and get variation coordinates of a , use . + + + + + Returns number of faces in the TrueType / OpenType collection. + + + + + Returns RID of the font cache for specific variation. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Returns RID of the font cache for specific variation. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fallbacks' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fallbacks' method. + + + + + Cached name for the 'get_fallbacks' method. + + + + + Cached name for the 'find_variation' method. + + + + + Cached name for the 'get_rids' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_ascent' method. + + + + + Cached name for the 'get_descent' method. + + + + + Cached name for the 'get_underline_position' method. + + + + + Cached name for the 'get_underline_thickness' method. + + + + + Cached name for the 'get_font_name' method. + + + + + Cached name for the 'get_font_style_name' method. + + + + + Cached name for the 'get_ot_name_strings' method. + + + + + Cached name for the 'get_font_style' method. + + + + + Cached name for the 'get_font_weight' method. + + + + + Cached name for the 'get_font_stretch' method. + + + + + Cached name for the 'get_spacing' method. + + + + + Cached name for the 'get_opentype_features' method. + + + + + Cached name for the 'set_cache_capacity' method. + + + + + Cached name for the 'get_string_size' method. + + + + + Cached name for the 'get_multiline_string_size' method. + + + + + Cached name for the 'draw_string' method. + + + + + Cached name for the 'draw_multiline_string' method. + + + + + Cached name for the 'draw_string_outline' method. + + + + + Cached name for the 'draw_multiline_string_outline' method. + + + + + Cached name for the 'get_char_size' method. + + + + + Cached name for the 'draw_char' method. + + + + + Cached name for the 'draw_char_outline' method. + + + + + Cached name for the 'has_char' method. + + + + + Cached name for the 'get_supported_chars' method. + + + + + Cached name for the 'is_language_supported' method. + + + + + Cached name for the 'is_script_supported' method. + + + + + Cached name for the 'get_supported_feature_list' method. + + + + + Cached name for the 'get_supported_variation_list' method. + + + + + Cached name for the 'get_face_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 s to use. + Use to access specific OpenType variation of the font, create simulated bold / slanted version, and draw lines of text. + For more complex text processing, use in conjunction with or . + Supported font formats: + - Dynamic font importer: TrueType (.ttf), TrueType collection (.ttc), OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (.pfb, .pfm). + - Bitmap font importer: AngelCode BMFont (.fnt, .font), text and binary (version 3) format variants. + - Monospace image font importer: All supported image formats. + Note: A character is a symbol that represents an item (letter, digit etc.) in an abstract way. + Note: A glyph is a bitmap or a shape used to draw one or more characters in a context-dependent manner. Glyph indices are bound to the specific font data source. + Note: If none of the font data sources contain glyphs for a character used in a string, the character in question will be replaced with a box displaying its hexadecimal code. + + var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf"); + GetNode("Label").AddThemeFontOverride("font", f); + GetNode("Label").AddThemeFontSizeOverride("font_size", 64); + + + + + + Contents of the dynamic font source file. + + + + + If set to , generate mipmaps for the font textures. + + + + + If set to , embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). + + + + + Font anti-aliasing mode. + + + + + Font family name. + + + + + Font style name. + + + + + Font style flags, see . + + + + + Weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of higher memory usage and lower font rasterization speed. Use to automatically enable it based on the font size. + + + + + If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + If set to , glyphs of all sizes are rendered using single multichannel signed distance field (MSDF) generated from the dynamic font vector data. Since this approach does not rely on rasterizing the font every time its size changes, this allows for resizing the font in real-time without any performance penalty. Text will also not look grainy for s that are scaled down (or for s viewed from a long distance). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + Note: If using font outlines, must be set to at least twice the size of the largest font outline. + Note: MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts. + + + + + The width of the range around the shape between the minimum and maximum representable signed distance. If using font outlines, must be set to at least twice the size of the largest font outline. The default value of 16 allows outline sizes up to 8 to look correct. + + + + + Source font size used to generate MSDF textures. Higher values allow for more precision, but are slower to render and require more memory. Only increase this value if you notice a visible lack of precision in glyph rendering. + + + + + If set to , system fonts can be automatically used as fallbacks. + + + + + If set to , auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only (MSDF fonts don't support hinting). + + + + + Font hinting mode. Used by dynamic fonts only. + + + + + Font oversampling factor. If set to 0.0, the global oversampling factor is used instead. Used by dynamic fonts only (MSDF fonts ignore oversampling). + + + + + Font size, used only for the bitmap fonts. + + + + + Scaling mode, used only for the bitmap fonts with greater than zero. + + + + + Font OpenType feature set override. + + + + + Loads an AngelCode BMFont (.fnt, .font) bitmap font from file . + Warning: This method should only be used in the editor or in cases when you need to load external fonts at run-time, such as fonts located at the user:// directory. + + + + + Loads a TrueType (.ttf), OpenType (.otf), WOFF (.woff), WOFF2 (.woff2) or Type 1 (.pfb, .pfm) dynamic font from file . + Warning: This method should only be used in the editor or in cases when you need to load external fonts at run-time, such as fonts located at the user:// directory. + + + + + Returns number of the font cache entries. + + + + + Removes all font cache entries. + + + + + Removes specified font cache entry. + + + + + Returns list of the font sizes in the cache. Each size is with font size and outline size. + + + + + Removes all font sizes from the cache entry. + + + + + Removes specified font size from the cache entry. + + + + + Sets variation coordinates for the specified font cache entry. See for more info. + + + + + Returns variation coordinates for the specified font cache entry. See for more info. + + + + + Sets embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Returns embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Sets 2D transform, applied to the font outlines, can be used for slanting, flipping, and rotating glyphs. + + + + + Returns 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs. + + + + + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Returns spacing for (see ) in pixels (not relative to the font size). + + + + + Sets extra baseline offset (as a fraction of font height). + + + + + Returns extra baseline offset (as a fraction of font height). + + + + + Sets an active face index in the TrueType / OpenType collection. + + + + + Returns an active face index in the TrueType / OpenType collection. + + + + + Sets the font ascent (number of pixels above the baseline). + + + + + Returns the font ascent (number of pixels above the baseline). + + + + + Sets the font descent (number of pixels below the baseline). + + + + + Returns the font descent (number of pixels below the baseline). + + + + + Sets pixel offset of the underline below the baseline. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Sets thickness of the underline in pixels. + + + + + Returns thickness of the underline in pixels. + + + + + Sets scaling factor of the color bitmap font. + + + + + Returns scaling factor of the color bitmap font. + + + + + Returns number of textures used by font cache entry. + + + + + Removes all textures from font cache entry. + Note: This function will not remove glyphs associated with the texture, use to remove them manually. + + + + + Removes specified texture from the cache entry. + Note: This function will not remove glyphs associated with the texture. Remove them manually using . + + + + + Sets font cache texture image. + + + + + Returns a copy of the font cache texture image. + + + + + Sets array containing glyph packing data. + + + + + Sets array containing glyph packing data. + + + + + Returns a copy of the array containing glyph packing data. + + + + + Returns list of rendered glyphs in the cache entry. + + + + + Removes all rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Removes specified rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Sets glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Returns glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Sets glyph offset from the baseline. + + + + + Returns glyph offset from the baseline. + + + + + Sets glyph size. + + + + + Returns glyph size. + + + + + Sets rectangle in the cache texture containing the glyph. + + + + + Returns rectangle in the cache texture containing the glyph. + + + + + Sets index of the cache texture containing the glyph. + + + + + Returns index of the cache texture containing the glyph. + + + + + Returns list of the kerning overrides. + + + + + Removes all kerning overrides. + + + + + Removes kerning override for the pair of glyphs. + + + + + Sets kerning for the pair of glyphs. + + + + + Returns kerning for the pair of glyphs. + + + + + Renders the range of characters to the font cache texture. + + + + + Renders specified glyph to the font cache texture. + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Remove language support override. + + + + + Returns list of language support overrides. + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Removes script support override. + + + + + Returns list of script support overrides. + + + + + Returns the glyph index of a , optionally modified by the . + + + + + Returns character code associated with , or 0 if is invalid. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'generate_mipmaps' property. + + + + + Cached name for the 'disable_embedded_bitmaps' property. + + + + + Cached name for the 'antialiasing' property. + + + + + Cached name for the 'font_name' property. + + + + + Cached name for the 'style_name' property. + + + + + Cached name for the 'font_style' property. + + + + + Cached name for the 'font_weight' property. + + + + + Cached name for the 'font_stretch' property. + + + + + Cached name for the 'subpixel_positioning' property. + + + + + Cached name for the 'keep_rounding_remainders' property. + + + + + Cached name for the 'multichannel_signed_distance_field' property. + + + + + Cached name for the 'msdf_pixel_range' property. + + + + + Cached name for the 'msdf_size' property. + + + + + Cached name for the 'allow_system_fallback' property. + + + + + Cached name for the 'force_autohinter' property. + + + + + Cached name for the 'hinting' property. + + + + + Cached name for the 'oversampling' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'fixed_size_scale_mode' property. + + + + + Cached name for the 'opentype_feature_overrides' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_bitmap_font' method. + + + + + Cached name for the 'load_dynamic_font' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_font_name' method. + + + + + Cached name for the 'set_font_style_name' method. + + + + + Cached name for the 'set_font_style' method. + + + + + Cached name for the 'set_font_weight' method. + + + + + Cached name for the 'set_font_stretch' method. + + + + + Cached name for the 'set_antialiasing' method. + + + + + Cached name for the 'get_antialiasing' method. + + + + + Cached name for the 'set_disable_embedded_bitmaps' method. + + + + + Cached name for the 'get_disable_embedded_bitmaps' method. + + + + + Cached name for the 'set_generate_mipmaps' method. + + + + + Cached name for the 'get_generate_mipmaps' method. + + + + + Cached name for the 'set_multichannel_signed_distance_field' method. + + + + + Cached name for the 'is_multichannel_signed_distance_field' method. + + + + + Cached name for the 'set_msdf_pixel_range' method. + + + + + Cached name for the 'get_msdf_pixel_range' method. + + + + + Cached name for the 'set_msdf_size' method. + + + + + Cached name for the 'get_msdf_size' method. + + + + + Cached name for the 'set_fixed_size' method. + + + + + Cached name for the 'get_fixed_size' method. + + + + + Cached name for the 'set_fixed_size_scale_mode' method. + + + + + Cached name for the 'get_fixed_size_scale_mode' method. + + + + + Cached name for the 'set_allow_system_fallback' method. + + + + + Cached name for the 'is_allow_system_fallback' method. + + + + + Cached name for the 'set_force_autohinter' method. + + + + + Cached name for the 'is_force_autohinter' method. + + + + + Cached name for the 'set_hinting' method. + + + + + Cached name for the 'get_hinting' method. + + + + + Cached name for the 'set_subpixel_positioning' method. + + + + + Cached name for the 'get_subpixel_positioning' method. + + + + + Cached name for the 'set_keep_rounding_remainders' method. + + + + + Cached name for the 'get_keep_rounding_remainders' method. + + + + + Cached name for the 'set_oversampling' method. + + + + + Cached name for the 'get_oversampling' method. + + + + + Cached name for the 'get_cache_count' method. + + + + + Cached name for the 'clear_cache' method. + + + + + Cached name for the 'remove_cache' method. + + + + + Cached name for the 'get_size_cache_list' method. + + + + + Cached name for the 'clear_size_cache' method. + + + + + Cached name for the 'remove_size_cache' method. + + + + + Cached name for the 'set_variation_coordinates' method. + + + + + Cached name for the 'get_variation_coordinates' method. + + + + + Cached name for the 'set_embolden' method. + + + + + Cached name for the 'get_embolden' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_extra_spacing' method. + + + + + Cached name for the 'get_extra_spacing' method. + + + + + Cached name for the 'set_extra_baseline_offset' method. + + + + + Cached name for the 'get_extra_baseline_offset' method. + + + + + Cached name for the 'set_face_index' method. + + + + + Cached name for the 'get_face_index' method. + + + + + Cached name for the 'set_cache_ascent' method. + + + + + Cached name for the 'get_cache_ascent' method. + + + + + Cached name for the 'set_cache_descent' method. + + + + + Cached name for the 'get_cache_descent' method. + + + + + Cached name for the 'set_cache_underline_position' method. + + + + + Cached name for the 'get_cache_underline_position' method. + + + + + Cached name for the 'set_cache_underline_thickness' method. + + + + + Cached name for the 'get_cache_underline_thickness' method. + + + + + Cached name for the 'set_cache_scale' method. + + + + + Cached name for the 'get_cache_scale' method. + + + + + Cached name for the 'get_texture_count' method. + + + + + Cached name for the 'clear_textures' method. + + + + + Cached name for the 'remove_texture' method. + + + + + Cached name for the 'set_texture_image' method. + + + + + Cached name for the 'get_texture_image' method. + + + + + Cached name for the 'set_texture_offsets' method. + + + + + Cached name for the 'get_texture_offsets' method. + + + + + Cached name for the 'get_glyph_list' method. + + + + + Cached name for the 'clear_glyphs' method. + + + + + Cached name for the 'remove_glyph' method. + + + + + Cached name for the 'set_glyph_advance' method. + + + + + Cached name for the 'get_glyph_advance' method. + + + + + Cached name for the 'set_glyph_offset' method. + + + + + Cached name for the 'get_glyph_offset' method. + + + + + Cached name for the 'set_glyph_size' method. + + + + + Cached name for the 'get_glyph_size' method. + + + + + Cached name for the 'set_glyph_uv_rect' method. + + + + + Cached name for the 'get_glyph_uv_rect' method. + + + + + Cached name for the 'set_glyph_texture_idx' method. + + + + + Cached name for the 'get_glyph_texture_idx' method. + + + + + Cached name for the 'get_kerning_list' method. + + + + + Cached name for the 'clear_kerning_map' method. + + + + + Cached name for the 'remove_kerning' method. + + + + + Cached name for the 'set_kerning' method. + + + + + Cached name for the 'get_kerning' method. + + + + + Cached name for the 'render_range' method. + + + + + Cached name for the 'render_glyph' method. + + + + + Cached name for the 'set_language_support_override' method. + + + + + Cached name for the 'get_language_support_override' method. + + + + + Cached name for the 'remove_language_support_override' method. + + + + + Cached name for the 'get_language_support_overrides' method. + + + + + Cached name for the 'set_script_support_override' method. + + + + + Cached name for the 'get_script_support_override' method. + + + + + Cached name for the 'remove_script_support_override' method. + + + + + Cached name for the 'get_script_support_overrides' method. + + + + + Cached name for the 'set_opentype_feature_overrides' method. + + + + + Cached name for the 'get_opentype_feature_overrides' method. + + + + + Cached name for the 'get_glyph_index' method. + + + + + Cached name for the 'get_char_from_glyph_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing. + To use simulated bold font variant: + + var fv = new FontVariation(); + fv.SetBaseFont(ResourceLoader.Load<FontFile>("res://BarlowCondensed-Regular.ttf")); + fv.SetVariationEmbolden(1.2); + GetNode("Label").AddThemeFontOverride("font", fv); + GetNode("Label").AddThemeFontSizeOverride("font_size", 64); + + To set the coordinate of multiple variation axes: + + var fv = FontVariation.new(); + var ts = TextServerManager.get_primary_interface() + fv.base_font = load("res://BarlowCondensed-Regular.ttf") + fv.variation_opentype = { ts.name_to_tag("wght"): 900, ts.name_to_tag("custom_hght"): 900 } + + + + + + Base font used to create a variation. If not set, default font is used. + + + + + Font OpenType variation coordinates. More info: OpenType variation tags. + Note: This uses OpenType tags as keys. Variation axes can be identified both by tags (, e.g. 0x77678674) and names (, e.g. wght). Some axes might be accessible by multiple names. For example, wght refers to the same axis as weight. Tags on the other hand are unique. To convert between names and tags, use and . + Note: To get available variation axes of a font, use . + + + + + Active face index in the TrueType / OpenType collection file. + + + + + If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + Note: Emboldened fonts might have self-intersecting outlines, which will prevent MSDF fonts and from working correctly. + + + + + 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs. + For example, to simulate italic typeface by slanting, apply the following transform Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0). + + + + + A set of OpenType feature tags. More info: OpenType feature tags. + + + + + Extra spacing between graphical glyphs. + + + + + Extra width of the space glyphs. + + + + + Extra spacing at the top of the line in pixels. + + + + + Extra spacing at the bottom of the line in pixels. + + + + + Extra baseline offset (as a fraction of font height). + + + + + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'base_font' property. + + + + + Cached name for the 'variation_opentype' property. + + + + + Cached name for the 'variation_face_index' property. + + + + + Cached name for the 'variation_embolden' property. + + + + + Cached name for the 'variation_transform' property. + + + + + Cached name for the 'opentype_features' property. + + + + + Cached name for the 'spacing_glyph' property. + + + + + Cached name for the 'spacing_space' property. + + + + + Cached name for the 'spacing_top' property. + + + + + Cached name for the 'spacing_bottom' property. + + + + + Cached name for the 'baseline_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_base_font' method. + + + + + Cached name for the 'get_base_font' method. + + + + + Cached name for the 'set_variation_opentype' method. + + + + + Cached name for the 'get_variation_opentype' method. + + + + + Cached name for the 'set_variation_embolden' method. + + + + + Cached name for the 'get_variation_embolden' method. + + + + + Cached name for the 'set_variation_face_index' method. + + + + + Cached name for the 'get_variation_face_index' method. + + + + + Cached name for the 'set_variation_transform' method. + + + + + Cached name for the 'get_variation_transform' method. + + + + + Cached name for the 'set_opentype_features' method. + + + + + Cached name for the 'set_spacing' method. + + + + + Cached name for the 'set_baseline_offset' method. + + + + + Cached name for the 'get_baseline_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Framebuffer cache manager for Rendering Device based renderers. Provides a way to create a framebuffer and reuse it in subsequent calls for as long as the used textures exists. Framebuffers will automatically be cleaned up when dependent objects are freed. + + + + + Creates, or obtains a cached, framebuffer. lists textures accessed. defines the subpasses and texture allocation, if left empty a single pass is created and textures are allocated depending on their usage flags. defines the number of views used when rendering. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cache_multipass' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The resource type represents a shared library which can expand the functionality of the engine. The singleton is responsible for loading, reloading, and unloading resources. + Note: GDExtension itself is not a scripting language and has no relation to resources. + + + + + The library is initialized at the same time as the core features of the engine. + + + + + The library is initialized at the same time as the engine's servers (such as or ). + + + + + The library is initialized at the same time as the engine's scene-related classes. + + + + + The library is initialized at the same time as the engine's editor classes. Only happens when loading the GDExtension in the editor. + + + + + Returns if this extension's library has been opened. + + + + + Returns the lowest level required for this extension to be properly initialized (see the enum). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_library_open' method. + + + + + Cached name for the 'get_minimum_library_initialization_level' method. + + + + + Cached name for the 'initialize_library' method. + + + + + Cached name for the 'close_library' method. + + + + + Cached name for the 'open_library' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The GDExtensionManager loads, initializes, and keeps track of all available libraries in the project. + Note: Do not worry about GDExtension unless you know what you are doing. + + + + + The extension has loaded successfully. + + + + + The extension has failed to load, possibly because it does not exist or has missing dependencies. + + + + + The extension has already been loaded. + + + + + The extension has not been loaded. + + + + + The extension requires the application to restart to fully load. + + + + + Loads an extension by absolute file path. The needs to point to a valid . Returns if successful. + + + + + Reloads the extension at the given file path. The needs to point to a valid , otherwise this method may return either or . + Note: You can only reload extensions in the editor. In release builds, this method always fails and returns . + + + + + Unloads an extension by file path. The needs to point to an already loaded , otherwise this method returns . + + + + + Returns if the extension at the given file has already been loaded successfully. See also . + + + + + Returns the file paths of all currently loaded extensions. + + + + + Returns the at the given file , or if it has not been loaded or does not exist. + + + + + Emitted after the editor has finished reloading one or more extensions. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after the editor has finished loading a new extension. + Note: This signal is only emitted in editor builds. + + + + + Represents the method that handles the event of a class. + + + + + Emitted before the editor starts unloading an extension. + Note: This signal is only emitted in editor builds. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_extension' method. + + + + + Cached name for the 'reload_extension' method. + + + + + Cached name for the 'unload_extension' method. + + + + + Cached name for the 'is_extension_loaded' method. + + + + + Cached name for the 'get_loaded_extensions' method. + + + + + Cached name for the 'get_extension' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'extensions_reloaded' signal. + + + + + Cached name for the 'extension_loaded' signal. + + + + + Cached name for the 'extension_unloading' signal. + + + + + The GDExtensionManager loads, initializes, and keeps track of all available libraries in the project. + Note: Do not worry about GDExtension unless you know what you are doing. + + + + + Loads an extension by absolute file path. The needs to point to a valid . Returns if successful. + + + + + Reloads the extension at the given file path. The needs to point to a valid , otherwise this method may return either or . + Note: You can only reload extensions in the editor. In release builds, this method always fails and returns . + + + + + Unloads an extension by file path. The needs to point to an already loaded , otherwise this method returns . + + + + + Returns if the extension at the given file has already been loaded successfully. See also . + + + + + Returns the file paths of all currently loaded extensions. + + + + + Returns the at the given file , or if it has not been loaded or does not exist. + + + + + Emitted after the editor has finished reloading one or more extensions. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after the editor has finished loading a new extension. + Note: This signal is only emitted in editor builds. + + + + + Represents the method that handles the event of a class. + + + + + Emitted before the editor starts unloading an extension. + Note: This signal is only emitted in editor builds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_extension' method. + + + + + Cached name for the 'reload_extension' method. + + + + + Cached name for the 'unload_extension' method. + + + + + Cached name for the 'is_extension_loaded' method. + + + + + Cached name for the 'get_loaded_extensions' method. + + + + + Cached name for the 'get_extension' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'extensions_reloaded' signal. + + + + + Cached name for the 'extension_loaded' signal. + + + + + Cached name for the 'extension_unloading' signal. + + + + + A script implemented in the GDScript programming language, saved with the .gd extension. The script extends the functionality of all objects that instantiate it. + Calling creates a new instance of the 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. + + + + + Returns a new instance of the script. + + var MyClass = load("myclass.gd") + var instance = MyClass.new() + print(instance.get_script() == MyClass) # Prints true + + + + + + Returns a new instance of the script. + + var MyClass = load("myclass.gd") + var instance = MyClass.new() + print(instance.get_script() == MyClass) # Prints true + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'new' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFAccessor is a data structure representing a glTF accessor that would be found in the "accessors" array. A buffer is a blob of binary data. A buffer view is a slice of a buffer. An accessor is a typed interpretation of the data in a buffer view. + Most custom data stored in glTF does not need accessors, only buffer views (see ). Accessors are for more advanced use cases such as interleaved mesh data encoded for the GPU. + + + + + Accessor type "SCALAR". For the glTF object model, this can be used to map to a single float, int, or bool value, or a float array. + + + + + Accessor type "VEC2". For the glTF object model, this maps to "float2", represented in the glTF JSON as an array of two floats. + + + + + Accessor type "VEC3". For the glTF object model, this maps to "float3", represented in the glTF JSON as an array of three floats. + + + + + Accessor type "VEC4". For the glTF object model, this maps to "float4", represented in the glTF JSON as an array of four floats. + + + + + Accessor type "MAT2". For the glTF object model, this maps to "float2x2", represented in the glTF JSON as an array of four floats. + + + + + Accessor type "MAT3". For the glTF object model, this maps to "float3x3", represented in the glTF JSON as an array of nine floats. + + + + + Accessor type "MAT4". For the glTF object model, this maps to "float4x4", represented in the glTF JSON as an array of sixteen floats. + + + + + Component type "NONE". This is not a valid component type, and is used to indicate that the component type is not set. + + + + + Component type "BYTE". The value is 0x1400 which comes from OpenGL. This indicates data is stored in 1-byte or 8-bit signed integers. This is a core part of the glTF specification. + + + + + Component type "UNSIGNED_BYTE". The value is 0x1401 which comes from OpenGL. This indicates data is stored in 1-byte or 8-bit unsigned integers. This is a core part of the glTF specification. + + + + + Component type "SHORT". The value is 0x1402 which comes from OpenGL. This indicates data is stored in 2-byte or 16-bit signed integers. This is a core part of the glTF specification. + + + + + Component type "UNSIGNED_SHORT". The value is 0x1403 which comes from OpenGL. This indicates data is stored in 2-byte or 16-bit unsigned integers. This is a core part of the glTF specification. + + + + + Component type "INT". The value is 0x1404 which comes from OpenGL. This indicates data is stored in 4-byte or 32-bit signed integers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "UNSIGNED_INT". The value is 0x1405 which comes from OpenGL. This indicates data is stored in 4-byte or 32-bit unsigned integers. This is a core part of the glTF specification. + + + + + Component type "FLOAT". The value is 0x1406 which comes from OpenGL. This indicates data is stored in 4-byte or 32-bit floating-point numbers. This is a core part of the glTF specification. + + + + + Component type "DOUBLE". The value is 0x140A which comes from OpenGL. This indicates data is stored in 8-byte or 64-bit floating-point numbers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "HALF_FLOAT". The value is 0x140B which comes from OpenGL. This indicates data is stored in 2-byte or 16-bit floating-point numbers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "LONG". The value is 0x140E which comes from OpenGL. This indicates data is stored in 8-byte or 64-bit signed integers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "UNSIGNED_LONG". The value is 0x140F which comes from OpenGL. This indicates data is stored in 8-byte or 64-bit unsigned integers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + The index of the buffer view this accessor is referencing. If -1, this accessor is not referencing any buffer view. + + + + + The offset relative to the start of the buffer view in bytes. + + + + + The glTF component type as an enum. See for possible values. Within the core glTF specification, a value of 5125 or "UNSIGNED_INT" must not be used for any accessor that is not referenced by mesh.primitive.indices. + + + + + Specifies whether integer data values are normalized before usage. + + + + + The number of elements referenced by this accessor. + + + + + The glTF accessor type as an enum. Possible values are 0 for "SCALAR", 1 for "VEC2", 2 for "VEC3", 3 for "VEC4", 4 for "MAT2", 5 for "MAT3", and 6 for "MAT4". + + + + + The glTF accessor type as an enum. Use instead. + + + + + Minimum value of each component in this accessor. + + + + + Maximum value of each component in this accessor. + + + + + Number of deviating accessor values stored in the sparse array. + + + + + The index of the buffer view with sparse indices. The referenced buffer view MUST NOT have its target or byteStride properties defined. The buffer view and the optional byteOffset MUST be aligned to the componentType byte length. + + + + + The offset relative to the start of the buffer view in bytes. + + + + + The indices component data type as an enum. Possible values are 5121 for "UNSIGNED_BYTE", 5123 for "UNSIGNED_SHORT", and 5125 for "UNSIGNED_INT". + + + + + The index of the bufferView with sparse values. The referenced buffer view MUST NOT have its target or byteStride properties defined. + + + + + The offset relative to the start of the bufferView in bytes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer_view' property. + + + + + Cached name for the 'byte_offset' property. + + + + + Cached name for the 'component_type' property. + + + + + Cached name for the 'normalized' property. + + + + + Cached name for the 'count' property. + + + + + Cached name for the 'accessor_type' property. + + + + + Cached name for the 'type' property. + + + + + Cached name for the 'min' property. + + + + + Cached name for the 'max' property. + + + + + Cached name for the 'sparse_count' property. + + + + + Cached name for the 'sparse_indices_buffer_view' property. + + + + + Cached name for the 'sparse_indices_byte_offset' property. + + + + + Cached name for the 'sparse_indices_component_type' property. + + + + + Cached name for the 'sparse_values_buffer_view' property. + + + + + Cached name for the 'sparse_values_byte_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_buffer_view' method. + + + + + Cached name for the 'set_buffer_view' method. + + + + + Cached name for the 'get_byte_offset' method. + + + + + Cached name for the 'set_byte_offset' method. + + + + + Cached name for the 'get_component_type' method. + + + + + Cached name for the 'set_component_type' method. + + + + + Cached name for the 'get_normalized' method. + + + + + Cached name for the 'set_normalized' method. + + + + + Cached name for the 'get_count' method. + + + + + Cached name for the 'set_count' method. + + + + + Cached name for the 'get_accessor_type' method. + + + + + Cached name for the 'set_accessor_type' method. + + + + + Cached name for the 'get_type' method. + + + + + Cached name for the 'set_type' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'get_sparse_count' method. + + + + + Cached name for the 'set_sparse_count' method. + + + + + Cached name for the 'get_sparse_indices_buffer_view' method. + + + + + Cached name for the 'set_sparse_indices_buffer_view' method. + + + + + Cached name for the 'get_sparse_indices_byte_offset' method. + + + + + Cached name for the 'set_sparse_indices_byte_offset' method. + + + + + Cached name for the 'get_sparse_indices_component_type' method. + + + + + Cached name for the 'set_sparse_indices_component_type' method. + + + + + Cached name for the 'get_sparse_values_buffer_view' method. + + + + + Cached name for the 'set_sparse_values_buffer_view' method. + + + + + Cached name for the 'get_sparse_values_byte_offset' method. + + + + + Cached name for the 'set_sparse_values_byte_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The original name of the animation. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_name' property. + + + + + Cached name for the 'loop' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_original_name' method. + + + + + Cached name for the 'set_original_name' method. + + + + + Cached name for the 'get_loop' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFBufferView is a data structure representing a glTF bufferView that would be found in the "bufferViews" array. A buffer is a blob of binary data. A buffer view is a slice of a buffer that can be used to identify and extract data from the buffer. + Most custom uses of buffers only need to use the , , and . The and properties are for more advanced use cases such as interleaved mesh data encoded for the GPU. + + + + + The index of the buffer this buffer view is referencing. If -1, this buffer view is not referencing any buffer. + + + + + The offset, in bytes, from the start of the buffer to the start of this buffer view. + + + + + The length, in bytes, of this buffer view. If 0, this buffer view is empty. + + + + + The stride, in bytes, between interleaved data. If -1, this buffer view is not interleaved. + + + + + if the GLTFBufferView's OpenGL GPU buffer type is an ELEMENT_ARRAY_BUFFER used for vertex indices (integer constant 34963). if the buffer type is any other value. See Buffers, BufferViews, and Accessors for possible values. This property is set on import and used on export. + + + + + if the GLTFBufferView's OpenGL GPU buffer type is an ARRAY_BUFFER used for vertex attributes (integer constant 34962). if the buffer type is any other value. See Buffers, BufferViews, and Accessors for possible values. This property is set on import and used on export. + + + + + Loads the buffer view data from the buffer referenced by this buffer view in the given . Interleaved data with a byte stride is not yet supported by this method. The data is returned as a []. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer' property. + + + + + Cached name for the 'byte_offset' property. + + + + + Cached name for the 'byte_length' property. + + + + + Cached name for the 'byte_stride' property. + + + + + Cached name for the 'indices' property. + + + + + Cached name for the 'vertex_attributes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_buffer_view_data' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'set_buffer' method. + + + + + Cached name for the 'get_byte_offset' method. + + + + + Cached name for the 'set_byte_offset' method. + + + + + Cached name for the 'get_byte_length' method. + + + + + Cached name for the 'set_byte_length' method. + + + + + Cached name for the 'get_byte_stride' method. + + + + + Cached name for the 'set_byte_stride' method. + + + + + Cached name for the 'get_indices' method. + + + + + Cached name for the 'set_indices' method. + + + + + Cached name for the 'get_vertex_attributes' method. + + + + + Cached name for the 'set_vertex_attributes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a camera as defined by the base glTF spec. + + + + + If , the camera is in perspective mode. Otherwise, the camera is in orthographic/orthogonal mode. This maps to glTF's camera type property. See and the glTF spec for more information. + + + + + The FOV of the camera. This class and glTF define the camera FOV in radians, while Godot uses degrees. This maps to glTF's yfov property. This value is only used for perspective cameras, when is . + + + + + The size of the camera. This class and glTF define the camera size magnitude as a radius in meters, while Godot defines it as a diameter in meters. This maps to glTF's ymag property. This value is only used for orthographic/orthogonal cameras, when is . + + + + + The distance to the far culling boundary for this camera relative to its local Z axis, in meters. This maps to glTF's zfar property. + + + + + The distance to the near culling boundary for this camera relative to its local Z axis, in meters. This maps to glTF's znear property. + + + + + Create a new GLTFCamera instance from the given Godot node. + + + + + Converts this GLTFCamera instance into a Godot node. + + + + + Creates a new GLTFCamera instance by parsing the given . + + + + + Serializes this GLTFCamera instance into a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'perspective' property. + + + + + Cached name for the 'fov' property. + + + + + Cached name for the 'size_mag' property. + + + + + Cached name for the 'depth_far' property. + + + + + Cached name for the 'depth_near' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_perspective' method. + + + + + Cached name for the 'set_perspective' method. + + + + + Cached name for the 'get_fov' method. + + + + + Cached name for the 'set_fov' method. + + + + + Cached name for the 'get_size_mag' method. + + + + + Cached name for the 'set_size_mag' method. + + + + + Cached name for the 'get_depth_far' method. + + + + + Cached name for the 'set_depth_far' method. + + + + + Cached name for the 'get_depth_near' method. + + + + + Cached name for the 'set_depth_near' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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 objects. + GLTFDocument can be extended with arbitrary functionality by extending the class and registering it with GLTFDocument via . This allows for custom data to be imported and exported. + + + + + 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 GODOT_single_root glTF extension. This will be parsed the same as if the implementation does not support GODOT_single_root. + + + + + 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. + + + + + 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. + + + + + The user-friendly name of the export image format. This is used when exporting the glTF file, including writing to a file and writing to a byte array. + By default, Godot allows the following options: "None", "PNG", "JPEG", "Lossless WebP", and "Lossy WebP". Support for more image formats can be added in classes. + + + + + If is a lossy image format, this determines the lossy quality of the image. On a range of 0.0 to 1.0, where 0.0 is the lowest quality and 1.0 is the highest quality. A lossy quality of 1.0 is not the same as lossless. + + + + + How to process the root node during export. See for details. The default and recommended value is . + Note: Regardless of how the glTF file is exported, when importing, the root node type and name can be overridden in the scene import settings tab. + + + + + Takes a path to a glTF file and imports the data at that file path to the given object through the parameter. + Note: The tells where to find dependencies and can be empty. + + + + + Takes a [] defining a glTF and imports the data to the given object through the parameter. + Note: The tells where to find dependencies and can be empty. + + + + + Takes a [] defining a glTF and imports the data to the given object through the parameter. + Note: The tells where to find dependencies and can be empty. + + + + + Takes a Godot Engine scene node and exports it and its descendants to the given object through the parameter. + + + + + Takes a object through the parameter and returns a Godot Engine scene node. + The parameter overrides the bake_fps in . + + + + + Takes a object through the parameter and returns a glTF []. + + + + + Takes a object through the parameter and writes a glTF file to the filesystem. + Note: The extension of the glTF file determines if it is a .glb binary file or a .gltf text file. + + + + + Determines a mapping between the given glTF Object Model and the corresponding Godot node path(s) in the generated Godot scene. The details of this mapping are returned in a object. Additional mappings can be supplied via the callback method. + + + + + Determines a mapping between the given Godot and the corresponding glTF Object Model JSON pointer(s) in the generated glTF file. The details of this mapping are returned in a object. Additional mappings can be supplied via the callback method. + + + + + Registers the given instance with GLTFDocument. If is , this extension will be run first. Otherwise, it will be run last. + Note: Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the set_additional_data and get_additional_data methods in or . + + + + + Unregisters the given instance. + + + + + Returns a list of all support glTF extensions, including extensions supported directly by the engine, and extensions supported by user plugins registering classes. + Note: If this method is run before a GLTFDocumentExtension is registered, its extensions won't be included in the list. Be sure to only run this method after all extensions are registered. If you run this when the engine starts, consider waiting a frame before calling this method to ensure all extensions are registered. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'image_format' property. + + + + + Cached name for the 'lossy_quality' property. + + + + + Cached name for the 'root_node_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_image_format' method. + + + + + Cached name for the 'get_image_format' method. + + + + + Cached name for the 'set_lossy_quality' method. + + + + + Cached name for the 'get_lossy_quality' method. + + + + + Cached name for the 'set_root_node_mode' method. + + + + + Cached name for the 'get_root_node_mode' method. + + + + + Cached name for the 'append_from_file' method. + + + + + Cached name for the 'append_from_buffer' method. + + + + + Cached name for the 'append_from_scene' method. + + + + + Cached name for the 'generate_scene' method. + + + + + Cached name for the 'generate_buffer' method. + + + + + Cached name for the 'write_to_filesystem' method. + + + + + Cached name for the 'import_object_model_property' method. + + + + + Cached name for the 'export_object_model_property' method. + + + + + Cached name for the 'register_gltf_document_extension' method. + + + + + Cached name for the 'unregister_gltf_document_extension' method. + + + + + Cached name for the 'get_supported_gltf_extensions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Extends the functionality of the 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 . + Note: Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the set_additional_data and get_additional_data methods in or . + + + + + Part of the export process. This method is run after and before . + 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 . + + + + + Part of the export process. This method is run after and before . If this is used for exporting images, this runs after . + This method can be used to modify the final JSON of each node. Data should be primarily stored in prior to serializing the JSON, but the original Godot is also provided if available. may be if not available, such as when exporting glTF data not generated from a Godot scene. + + + + + Part of the export process. Allows GLTFDocumentExtension classes to provide mappings for properties of nodes in the Godot scene tree, to JSON pointers to glTF properties, as defined by the glTF object model. + Returns a instance that defines how the property should be mapped. If your extension can't handle the property, return or an instance without any JSON pointers (see ). You should use to set the types, and set the JSON pointer(s) using the property. + The parameters provide context for the property, including the NodePath, the Godot node, the GLTF node index, and the target object. The will be equal to if no sub-object can be found, otherwise it will point to a sub-object. For example, if the path is ^"A/B/C/MeshInstance3D:mesh:surface_0/material:emission_intensity", it will get the node, then the mesh, and then the material, so will be the resource, and will be 2 because 2 levels were traversed to get to the target. + + + + + 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. + + + + + Part of the export process. This method is run after and before . + This method can be used to modify the converted node data structures before serialization with any additional data from the scene tree. + + + + + 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 instance should be used for exporting a given glTF file. If , the export will use this instance. If not overridden, is returned. + + + + + Part of the export process. This method is run after and before . + This method can be used to alter the state before performing serialization. It runs every time when generating a buffer with or writing to the file system with . + + + + + Part of the import process. This method is run after and before . + 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. + Note: The parameter may be if this is the single root node. + + + + + Returns the file extension to use for saving image data into, for example, ".png". 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 class able to import the file. If not defined or empty, Godot will save the image into a PNG file. + + + + + Part of the export process. This method is run after and before . + 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 's is in this array. If this is selected as the image exporter, one of the or methods will run next, otherwise will run next. If the format name contains "Lossy", the lossy quality slider will be displayed. + + + + + Part of the import process. This method is run after and before . + 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. + + + + + Part of the import process. This method is run after and before . + This method can be used to make modifications to each of the generated Godot scene nodes. + + + + + Part of the import process. Allows GLTFDocumentExtension classes to provide mappings for JSON pointers to glTF properties, as defined by the glTF object model, to properties of nodes in the Godot scene tree. + Returns a instance that defines how the property should be mapped. If your extension can't handle the property, return or an instance without any NodePaths (see ). You should use to set the types, and function is useful for most simple cases. + In many cases, will contain the start of a path, allowing the extension to complete the path. For example, for /nodes/3/extensions/MY_ext/prop, Godot will pass you a NodePath that leads to node 3, so the GLTFDocumentExtension class only needs to resolve the last MY_ext/prop part of the path. In this example, the extension should check split.size() > 4 and split[0] == "nodes" and split[2] == "extensions" and split[3] == "MY_ext" at the start of the function to check if this JSON pointer applies to it, then it can use and handle split[4]. + + + + + 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. + + + + + Part of the import process. This method is run after and before . + This method can be used to modify any of the data imported so far after parsing each node, but before generating the scene or any of its nodes. + + + + + Part of the import process. This method is run after and before . + This method can be used to modify or read from any of the processed data structures, before generating the nodes and then running the final per-node import step. + + + + + 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 instance should be used for importing a given glTF file. If , the import will use this instance. If not overridden, is returned. + + + + + Part of the import process. This method is run after and before . + 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. + + + + + Part of the import process. This method is run after and before . + 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 . The return value should be a member of the enum. + + + + + Part of the import process. This method is run after and before . + 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. + + + + + Part of the export process. This method is run after and before . + This method is run when saving images separately from the glTF file. When images are embedded, runs instead. Note that these methods only run when this is selected as the image exporter. + + + + + Part of the export process. This method is run after and before . + This method is run when embedding images in the glTF file. When images are saved separately, runs instead. Note that these methods only run when this is selected as the image exporter. + This method must set the image MIME type in the with the "mimeType" key. For example, for a PNG image, it would be set to "image/png". The return value must be a [] containing the image data. + + + + + Part of the export process. This method is run after or , and before . Note that this method only runs when this is selected as the image exporter. + This method can be used to set up the extensions for the texture JSON by editing . The extension must also be added as used extension with , be sure to set required to if you are not providing a fallback. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_convert_scene_node' method. + + + + + Cached name for the '_export_node' method. + + + + + Cached name for the '_export_object_model_property' method. + + + + + Cached name for the '_export_post' method. + + + + + Cached name for the '_export_post_convert' method. + + + + + Cached name for the '_export_preflight' method. + + + + + Cached name for the '_export_preserialize' method. + + + + + Cached name for the '_generate_scene_node' method. + + + + + Cached name for the '_get_image_file_extension' method. + + + + + Cached name for the '_get_saveable_image_formats' method. + + + + + Cached name for the '_get_supported_extensions' method. + + + + + Cached name for the '_import_node' method. + + + + + Cached name for the '_import_object_model_property' method. + + + + + Cached name for the '_import_post' method. + + + + + Cached name for the '_import_post_parse' method. + + + + + Cached name for the '_import_pre_generate' method. + + + + + Cached name for the '_import_preflight' method. + + + + + Cached name for the '_parse_image_data' method. + + + + + Cached name for the '_parse_node_extensions' method. + + + + + Cached name for the '_parse_texture_json' method. + + + + + Cached name for the '_save_image_at_path' method. + + + + + Cached name for the '_serialize_image_to_bytes' method. + + + + + Cached name for the '_serialize_texture_json' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a light as defined by the KHR_lights_punctual glTF extension. + + + + + The of the light. Defaults to white. A black color causes the light to have no effect. + + + + + The intensity of the light. This is expressed in candelas (lumens per steradian) for point and spot lights, and lux (lumens per m²) for directional lights. When creating a Godot light, this value is converted to a unitless multiplier. + + + + + The type of the light. The values accepted by Godot are "point", "spot", and "directional", which correspond to Godot's , , and respectively. + + + + + The range of the light, beyond which the light has no effect. glTF lights with no range defined behave like physical lights (which have infinite range). When creating a Godot light, the range is clamped to 4096. + + + + + The inner angle of the cone in a spotlight. Must be less than or equal to the outer cone angle. + Within this angle, the light is at full brightness. Between the inner and outer cone angles, there is a transition from full brightness to zero brightness. When creating a Godot , the ratio between the inner and outer cone angles is used to calculate the attenuation of the light. + + + + + The outer angle of the cone in a spotlight. Must be greater than or equal to the inner angle. + At this angle, the light drops off to zero brightness. Between the inner and outer cone angles, there is a transition from full brightness to zero brightness. If this angle is a half turn, then the spotlight emits in all directions. When creating a Godot , the outer cone angle is used as the angle of the spotlight. + + + + + Create a new GLTFLight instance from the given Godot node. + + + + + Converts this GLTFLight instance into a Godot node. + + + + + Creates a new GLTFLight instance by parsing the given . + + + + + Serializes this GLTFLight instance into a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'intensity' property. + + + + + Cached name for the 'light_type' property. + + + + + Cached name for the 'range' property. + + + + + Cached name for the 'inner_cone_angle' property. + + + + + Cached name for the 'outer_cone_angle' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_intensity' method. + + + + + Cached name for the 'set_intensity' method. + + + + + Cached name for the 'get_light_type' method. + + + + + Cached name for the 'set_light_type' method. + + + + + Cached name for the 'get_range' method. + + + + + Cached name for the 'set_range' method. + + + + + Cached name for the 'get_inner_cone_angle' method. + + + + + Cached name for the 'set_inner_cone_angle' method. + + + + + Cached name for the 'get_outer_cone_angle' method. + + + + + Cached name for the 'set_outer_cone_angle' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFMesh handles 3D mesh data imported from glTF files. It includes properties for blend channels, blend weights, instance materials, and the mesh itself. + + + + + The original name of the mesh. + + + + + The object representing the mesh itself. + + + + + An array of floats representing the blend weights of the mesh. + + + + + An array of Material objects representing the materials used in the mesh. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_name' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'blend_weights' property. + + + + + Cached name for the 'instance_materials' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_original_name' method. + + + + + Cached name for the 'set_original_name' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_blend_weights' method. + + + + + Cached name for the 'set_blend_weights' method. + + + + + Cached name for the 'get_instance_materials' method. + + + + + Cached name for the 'set_instance_materials' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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 and . + + + + + The original name of the node. + + + + + The index of the parent node in the . If -1, this node is a root node. + + + + + How deep into the node hierarchy this node is. A root node will have a height of 0, its children will have a height of 1, and so on. If -1, the height has not been calculated. + + + + + The transform of the glTF node relative to its parent. This property is usually unused since the position, rotation, and scale properties are preferred. + + + + + If this glTF node is a mesh, the index of the in the that describes the mesh's properties. If -1, this node is not a mesh. + + + + + If this glTF node is a camera, the index of the in the that describes the camera's properties. If -1, this node is not a camera. + + + + + If this glTF node has a skin, the index of the in the that describes the skin's properties. If -1, this node does not have a skin. + + + + + If this glTF node has a skeleton, the index of the in the that describes the skeleton's properties. If -1, this node does not have a skeleton. + + + + + The position of the glTF node relative to its parent. + + + + + The rotation of the glTF node relative to its parent. + + + + + The scale of the glTF node relative to its parent. + + + + + The indices of the child nodes in the . If this glTF node has no children, this will be an empty array. + + + + + If this glTF node is a light, the index of the in the that describes the light's properties. If -1, this node is not a light. + + + + + Appends the given child node index to the array. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Returns the that this GLTF node will have in the Godot scene tree after being imported. This is useful when importing glTF object model pointers with , for handling extensions such as KHR_animation_pointer or KHR_interactivity. + If is , paths to skeleton bone glTF nodes will be resolved properly. For example, a path that would be ^"A/B/C/Bone1/Bone2/Bone3" if will become ^"A/B/C/Skeleton3D:Bone3". + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_name' property. + + + + + Cached name for the 'parent' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'xform' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'camera' property. + + + + + Cached name for the 'skin' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'children' property. + + + + + Cached name for the 'light' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_original_name' method. + + + + + Cached name for the 'set_original_name' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'set_parent' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_xform' method. + + + + + Cached name for the 'set_xform' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_camera' method. + + + + + Cached name for the 'set_camera' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_skeleton' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_children' method. + + + + + Cached name for the 'set_children' method. + + + + + Cached name for the 'append_child_index' method. + + + + + Cached name for the 'get_light' method. + + + + + Cached name for the 'set_light' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached name for the 'get_scene_node_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFObjectModelProperty defines a mapping between a property in the glTF object model and a NodePath in the Godot scene tree. This can be used to animate properties in a glTF file using the KHR_animation_pointer extension, or to access them through an engine-agnostic script such as a behavior graph as defined by the KHR_interactivity extension. + The glTF property is identified by JSON pointer(s) stored in , while the Godot property it maps to is defined by . In most cases and will each only have one item, but in some cases a single glTF JSON pointer will map to multiple Godot properties, or a single Godot property will be mapped to multiple glTF JSON pointers, or it might be a many-to-many relationship. + objects can be used to define conversions between the data, such as when glTF defines an angle in radians and Godot uses degrees. The property defines the type of data stored in the glTF file as defined by the object model, see for possible values. + + + + + Unknown or not set object model type. If the object model type is set to this value, the real type still needs to be determined. + + + + + Object model type "bool". Represented in the glTF JSON as a boolean, and encoded in a as "SCALAR". When encoded in an accessor, a value of 0 is , and any other value is . + + + + + Object model type "float". Represented in the glTF JSON as a number, and encoded in a as "SCALAR". + + + + + Object model type "float[lb][rb]". Represented in the glTF JSON as an array of numbers, and encoded in a as "SCALAR". + + + + + Object model type "float2". Represented in the glTF JSON as an array of two numbers, and encoded in a as "VEC2". + + + + + Object model type "float3". Represented in the glTF JSON as an array of three numbers, and encoded in a as "VEC3". + + + + + Object model type "float4". Represented in the glTF JSON as an array of four numbers, and encoded in a as "VEC4". + + + + + Object model type "float2x2". Represented in the glTF JSON as an array of four numbers, and encoded in a as "MAT2". + + + + + Object model type "float3x3". Represented in the glTF JSON as an array of nine numbers, and encoded in a as "MAT3". + + + + + Object model type "float4x4". Represented in the glTF JSON as an array of sixteen numbers, and encoded in a as "MAT4". + + + + + Object model type "int". Represented in the glTF JSON as a number, and encoded in a as "SCALAR". The range of values is limited to signed integers. For KHR_interactivity, only 32-bit integers are supported. + + + + + If set, this will be used to convert the property value from the glTF object model to the value expected by the Godot property. This is useful when the glTF object model uses a different unit system, or when the data needs to be transformed in some way. If , the value will be copied as-is. + + + + + If set, this will be used to convert the property value from the Godot property to the value expected by the glTF object model. This is useful when the glTF object model uses a different unit system, or when the data needs to be transformed in some way. If , the value will be copied as-is. + + + + + An array of s that point to a property, or multiple properties, in the Godot scene tree. On import, this will either be set by , or by a class. For simple cases, use to add properties to this array. + In most cases will only have one item, but in some cases a single glTF JSON pointer will map to multiple Godot properties. For example, a or used on multiple glTF nodes will be represented by multiple Godot nodes. + + + + + The type of data stored in the glTF file as defined by the object model. This is a superset of the available accessor types, and determines the accessor type. See for possible values. + + + + + The glTF object model JSON pointers used to identify the property in the glTF object model. In most cases, there will be only one item in this array, but niche cases may require multiple pointers. The items are themselves arrays which represent the JSON pointer split into its components. + + + + + The type of data stored in the Godot property. This is the type of the property that the point to. + + + + + Appends a to . This can be used by classes to define how a glTF object model property maps to a Godot property, or multiple Godot properties. Prefer using for simple cases. Be sure to also call once (the order does not matter). + + + + + High-level wrapper over that handles the most common cases. It constructs a new using as a base and appends to the subpath. Be sure to also call once (the order does not matter). + + + + + The GLTF accessor type associated with this property's . See for possible values, and see for how the object model type maps to accessor types. + + + + + Returns if is not empty. This is used during import to determine if a can handle converting a glTF object model property to a Godot property. + + + + + Returns if is not empty. This is used during export to determine if a can handle converting a Godot property to a glTF object model property. + + + + + Sets the and properties. This is a convenience method to set both properties at once, since they are almost always known at the same time. This method should be called once. Calling it again with the same values will have no effect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gltf_to_godot_expression' property. + + + + + Cached name for the 'godot_to_gltf_expression' property. + + + + + Cached name for the 'node_paths' property. + + + + + Cached name for the 'object_model_type' property. + + + + + Cached name for the 'json_pointers' property. + + + + + Cached name for the 'variant_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'append_node_path' method. + + + + + Cached name for the 'append_path_to_property' method. + + + + + Cached name for the 'get_accessor_type' method. + + + + + Cached name for the 'get_gltf_to_godot_expression' method. + + + + + Cached name for the 'set_gltf_to_godot_expression' method. + + + + + Cached name for the 'get_godot_to_gltf_expression' method. + + + + + Cached name for the 'set_godot_to_gltf_expression' method. + + + + + Cached name for the 'get_node_paths' method. + + + + + Cached name for the 'has_node_paths' method. + + + + + Cached name for the 'set_node_paths' method. + + + + + Cached name for the 'get_object_model_type' method. + + + + + Cached name for the 'set_object_model_type' method. + + + + + Cached name for the 'get_json_pointers' method. + + + + + Cached name for the 'has_json_pointers' method. + + + + + Cached name for the 'set_json_pointers' method. + + + + + Cached name for the 'get_variant_type' method. + + + + + Cached name for the 'set_variant_type' method. + + + + + Cached name for the 'set_types' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a physics body as an intermediary between the OMI_physics_body 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. + + + + + The type of the body. When importing, this controls what type of node Godot should generate. Valid values are "static", "animatable", "character", "rigid", "vehicle", and "trigger". When exporting, this will be squashed down to one of "static", "kinematic", or "dynamic" motion types, or the "trigger" property. + + + + + The mass of the physics body, in kilograms. This is only used when the body type is "rigid" or "vehicle". + + + + + The linear velocity of the physics body, in meters per second. This is only used when the body type is "rigid" or "vehicle". + + + + + The angular velocity of the physics body, in radians per second. This is only used when the body type is "rigid" or "vehicle". + + + + + The center of mass of the body, in meters. This is in local space relative to the body. By default, the center of the mass is the body's origin. + + + + + The inertia strength of the physics body, in kilogram meter squared (kg⋅m²). This represents the inertia around the principle axes, the diagonal of the inertia tensor matrix. This is only used when the body type is "rigid" or "vehicle". + When converted to a Godot node, if this value is zero, then the inertia will be calculated automatically. + + + + + The inertia orientation of the physics body. This defines the rotation of the inertia's principle axes relative to the object's local axes. This is only used when the body type is "rigid" or "vehicle" and is set to a non-zero value. + + + + + The inertia tensor of the physics body, in kilogram meter squared (kg⋅m²). This is only used when the body type is "rigid" or "vehicle". + When converted to a Godot node, if this value is zero, then the inertia will be calculated automatically. + + + + + Creates a new GLTFPhysicsBody instance from the given Godot node. + + + + + Converts this GLTFPhysicsBody instance into a Godot node. + + + + + Creates a new GLTFPhysicsBody instance by parsing the given in the OMI_physics_body glTF extension format. + + + + + Serializes this GLTFPhysicsBody instance into a . It will be in the format expected by the OMI_physics_body glTF extension. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'body_type' property. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'inertia_diagonal' property. + + + + + Cached name for the 'inertia_orientation' property. + + + + + Cached name for the 'inertia_tensor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_body_type' method. + + + + + Cached name for the 'set_body_type' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'set_center_of_mass' method. + + + + + Cached name for the 'get_inertia_diagonal' method. + + + + + Cached name for the 'set_inertia_diagonal' method. + + + + + Cached name for the 'get_inertia_orientation' method. + + + + + Cached name for the 'set_inertia_orientation' method. + + + + + Cached name for the 'get_inertia_tensor' method. + + + + + Cached name for the 'set_inertia_tensor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a physics shape as defined by the OMI_physics_shape or OMI_collider glTF extensions. 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. + + + + + The type of shape this shape represents. Valid values are "box", "capsule", "cylinder", "sphere", "hull", and "trimesh". + + + + + The size of the shape, in meters. This is only used when the shape type is "box", and it represents the "diameter" of the box. This value should not be negative. + + + + + The radius of the shape, in meters. This is only used when the shape type is "capsule", "cylinder", or "sphere". This value should not be negative. + + + + + The height of the shape, in meters. This is only used when the shape type is "capsule" or "cylinder". This value should not be negative, and for "capsule" it should be at least twice the radius. + + + + + If , indicates that this shape is a trigger. For Godot, this means that the shape should be a child of an Area3D node. + This is the only variable not used in the method, it's intended to be used alongside when deciding where to add the generated node as a child. + + + + + The index of the shape's mesh in the glTF file. This is only used when the shape type is "hull" (convex hull) or "trimesh" (concave trimesh). + + + + + The resource of the shape. This is only used when the shape type is "hull" (convex hull) or "trimesh" (concave trimesh). + + + + + Creates a new GLTFPhysicsShape instance from the given Godot node. + + + + + Converts this GLTFPhysicsShape instance into a Godot node. + + + + + Creates a new GLTFPhysicsShape instance from the given Godot resource. + + + + + Converts this GLTFPhysicsShape instance into a Godot resource. + + + + + Creates a new GLTFPhysicsShape instance by parsing the given . + + + + + Serializes this GLTFPhysicsShape instance into a in the format defined by OMI_physics_shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape_type' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'is_trigger' property. + + + + + Cached name for the 'mesh_index' property. + + + + + Cached name for the 'importer_mesh' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_resource' method. + + + + + Cached name for the 'to_resource' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_shape_type' method. + + + + + Cached name for the 'set_shape_type' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_is_trigger' method. + + + + + Cached name for the 'set_is_trigger' method. + + + + + Cached name for the 'get_mesh_index' method. + + + + + Cached name for the 'set_mesh_index' method. + + + + + Cached name for the 'get_importer_mesh' method. + + + + + Cached name for the 'set_importer_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns a that maps skeleton bone indices to the indices of glTF nodes. This property is unused during import, and only set during export. In a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes. + + + + + Sets a that maps skeleton bone indices to the indices of glTF nodes. This property is unused during import, and only set during export. In a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'joints' property. + + + + + Cached name for the 'roots' property. + + + + + Cached name for the 'unique_names' property. + + + + + Cached name for the 'godot_bone_node' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_joints' method. + + + + + Cached name for the 'set_joints' method. + + + + + Cached name for the 'get_roots' method. + + + + + Cached name for the 'set_roots' method. + + + + + Cached name for the 'get_godot_skeleton' method. + + + + + Cached name for the 'get_unique_names' method. + + + + + Cached name for the 'set_unique_names' method. + + + + + Cached name for the 'get_godot_bone_node' method. + + + + + Cached name for the 'set_godot_bone_node' method. + + + + + Cached name for the 'get_bone_attachment_count' method. + + + + + Cached name for the 'get_bone_attachment' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'skin_root' property. + + + + + Cached name for the 'joints_original' property. + + + + + Cached name for the 'inverse_binds' property. + + + + + Cached name for the 'joints' property. + + + + + Cached name for the 'non_joints' property. + + + + + Cached name for the 'roots' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached name for the 'joint_i_to_bone_i' property. + + + + + Cached name for the 'joint_i_to_name' property. + + + + + Cached name for the 'godot_skin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_skin_root' method. + + + + + Cached name for the 'set_skin_root' method. + + + + + Cached name for the 'get_joints_original' method. + + + + + Cached name for the 'set_joints_original' method. + + + + + Cached name for the 'get_inverse_binds' method. + + + + + Cached name for the 'set_inverse_binds' method. + + + + + Cached name for the 'get_joints' method. + + + + + Cached name for the 'set_joints' method. + + + + + Cached name for the 'get_non_joints' method. + + + + + Cached name for the 'set_non_joints' method. + + + + + Cached name for the 'get_roots' method. + + + + + Cached name for the 'set_roots' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_skeleton' method. + + + + + Cached name for the 'get_joint_i_to_bone_i' method. + + + + + Cached name for the 'set_joint_i_to_bone_i' method. + + + + + Cached name for the 'get_joint_i_to_name' method. + + + + + Cached name for the 'set_joint_i_to_name' method. + + + + + Cached name for the 'get_godot_skin' method. + + + + + Cached name for the 'set_godot_skin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The diffuse texture. + + + + + The reflected diffuse factor of the material. + + + + + The glossiness or smoothness of the material. + + + + + The specular RGB color of the material. The alpha channel is unused. + + + + + The specular-glossiness texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'diffuse_img' property. + + + + + Cached name for the 'diffuse_factor' property. + + + + + Cached name for the 'gloss_factor' property. + + + + + Cached name for the 'specular_factor' property. + + + + + Cached name for the 'spec_gloss_img' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_diffuse_img' method. + + + + + Cached name for the 'set_diffuse_img' method. + + + + + Cached name for the 'get_diffuse_factor' method. + + + + + Cached name for the 'set_diffuse_factor' method. + + + + + Cached name for the 'get_gloss_factor' method. + + + + + Cached name for the 'set_gloss_factor' method. + + + + + Cached name for the 'get_specular_factor' method. + + + + + Cached name for the 'set_specular_factor' method. + + + + + Cached name for the 'get_spec_gloss_img' method. + + + + + Cached name for the 'set_spec_gloss_img' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains all nodes and resources of a glTF file. This is used by as data storage, which allows and all classes to remain stateless. + GLTFState can be populated by 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 classes. This allows for custom data to be stored in the glTF file or for custom data to be converted to/from Godot nodes. + + + + + Discards all embedded textures and uses untextured materials. + + + + + Extracts embedded textures to be reimported and compressed. Editor only. Acts as uncompressed at runtime. + + + + + Embeds textures VRAM compressed with Basis Universal into the generated scene. + + + + + Embeds textures compressed losslessly into the generated scene, matching old behavior. + + + + + The original raw JSON document corresponding to this GLTFState. + + + + + The copyright string in the asset header of the glTF file. This is set during import if present and export if non-empty. See the glTF asset header documentation for more information. + + + + + The binary buffer attached to a .glb file. + + + + + The name of the scene. When importing, if not specified, this will be the file name. When exporting, if specified, the scene name will be saved to the glTF file. + + + + + The folder path associated with this glTF data. This is used to find other files the glTF file references, like images or binary buffers. This will be set during import when appending from a file, and will be set during export when writing to a file. + + + + + The file name associated with this glTF data. If it ends with .gltf, this is text-based glTF, otherwise this is binary GLB. This will be set during import when appending from a file, and will be set during export when writing to a file. If writing to a buffer, this will be an empty string. + + + + + The root nodes of the glTF file. Typically, a glTF file will only have one scene, and therefore one root node. However, a glTF file may have multiple scenes and therefore multiple root nodes, which will be generated as siblings of each other and as children of the root node of the generated Godot scene. + + + + + If , forces all GLTFNodes in the document to be bones of a single Godot node. + + + + + The baking fps of the animation for either import or export. + + + + + Appends an extension to the list of extensions used by this glTF file during serialization. If is , the extension will also be added to the list of required extensions. Do not run this in , as that stage is too late to add extensions. The final list is sorted alphabetically. + + + + + Appends the given byte array data to the buffers and creates a for it. The index of the destination is returned. If is , the buffers will first be searched for duplicate data, otherwise new bytes will always be appended. + + + + + Appends the given byte array data to the buffers and creates a for it. The index of the destination is returned. If is , the buffers will first be searched for duplicate data, otherwise new bytes will always be appended. + + + + + Append the given to the state, and return its new index. This can be used to export one Godot node as multiple glTF nodes, or inject new glTF nodes at import time. On import, this must be called before finishes for the parent node. On export, this must be called before runs for the parent node. + The parameter is the Godot scene node that corresponds to this glTF node. This is highly recommended to be set to a valid node, but may be if there is no corresponding Godot scene node. One Godot scene node may be used for multiple glTF nodes, so if exporting multiple glTF nodes for one Godot scene node, use the same Godot scene node for each. + The parameter is the index of the parent in the state. If -1, the node will be a root node, otherwise the new node will be added to the parent's list of children. The index will also be written to the property of the new node. + + + + + Returns an array of all s in the glTF file. These are the nodes that and refer to. This includes nodes that may not be generated in the Godot scene, or nodes that may generate multiple Godot scene nodes. + + + + + Sets the s in the state. These are the nodes that and refer to. Some of the nodes set here may not be generated in the Godot scene, or may generate multiple Godot scene nodes. + + + + + Returns an array of all es in the glTF file. These are the meshes that the index refers to. + + + + + Sets the es in the state. These are the meshes that the index refers to. + + + + + Returns the number of nodes in this . These nodes are only used during the export process when converting Godot nodes to glTF animations. + + + + + Returns the node with the given index. These nodes are only used during the export process when converting Godot nodes to glTF animations. + + + + + Retrieves the array of texture samplers that are used by the textures contained in the glTF. + + + + + Sets the array of texture samplers that are used by the textures contained in the glTF. + + + + + Gets the images of the glTF file as an array of s. These are the images that the index refers to. + + + + + Sets the images in the state stored as an array of s. This can be used during export. These are the images that the index refers to. + + + + + Returns an array of all s in the glTF file. These are the skins that the index refers to. + + + + + Sets the s in the state. These are the skins that the index refers to. + + + + + Returns an array of all s in the glTF file. These are the cameras that the index refers to. + + + + + Sets the s in the state. These are the cameras that the index refers to. + + + + + Returns an array of all s in the glTF file. These are the lights that the index refers to. + + + + + Sets the s in the state. These are the lights that the index refers to. + + + + + Returns an array of unique node names. This is used in both the import process and export process. + + + + + Sets the unique node names in the state. This is used in both the import process and export process. + + + + + Returns an array of unique animation names. This is only used during the import process. + + + + + Sets the unique animation names in the state. This is only used during the import process. + + + + + Returns an array of all s in the glTF file. These are the skeletons that the index refers to. + + + + + Sets the s in the state. These are the skeletons that the index refers to. + + + + + Returns an array of all s in the glTF file. When importing, these will be generated as animations in an node. When exporting, these will be generated from Godot nodes. + + + + + Sets the s in the state. When importing, these will be generated as animations in an node. When exporting, these will be generated from Godot nodes. + + + + + Returns the Godot scene node that corresponds to the same index as the it was generated from. This is the inverse of . Useful during the import process. + Note: Not every will have a scene node generated, and not every generated scene node will have a corresponding . If there is no scene node for this index, is returned. + + + + + Returns the index of the corresponding to this Godot scene node. This is the inverse of . Useful during the export process. + Note: Not every Godot scene node will have a corresponding , and not every will have a scene node generated. If there is no index for this scene node, -1 is returned. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-file state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-file state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'json' property. + + + + + Cached name for the 'major_version' property. + + + + + Cached name for the 'minor_version' property. + + + + + Cached name for the 'copyright' property. + + + + + Cached name for the 'glb_data' property. + + + + + Cached name for the 'use_named_skin_binds' property. + + + + + Cached name for the 'nodes' property. + + + + + Cached name for the 'buffers' property. + + + + + Cached name for the 'buffer_views' property. + + + + + Cached name for the 'accessors' property. + + + + + Cached name for the 'meshes' property. + + + + + Cached name for the 'materials' property. + + + + + Cached name for the 'scene_name' property. + + + + + Cached name for the 'base_path' property. + + + + + Cached name for the 'filename' property. + + + + + Cached name for the 'root_nodes' property. + + + + + Cached name for the 'textures' property. + + + + + Cached name for the 'texture_samplers' property. + + + + + Cached name for the 'images' property. + + + + + Cached name for the 'skins' property. + + + + + Cached name for the 'cameras' property. + + + + + Cached name for the 'lights' property. + + + + + Cached name for the 'unique_names' property. + + + + + Cached name for the 'unique_animation_names' property. + + + + + Cached name for the 'skeletons' property. + + + + + Cached name for the 'create_animations' property. + + + + + Cached name for the 'import_as_skeleton_bones' property. + + + + + Cached name for the 'animations' property. + + + + + Cached name for the 'handle_binary_image' property. + + + + + Cached name for the 'bake_fps' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_used_extension' method. + + + + + Cached name for the 'append_data_to_buffers' method. + + + + + Cached name for the 'append_gltf_node' method. + + + + + Cached name for the 'get_json' method. + + + + + Cached name for the 'set_json' method. + + + + + Cached name for the 'get_major_version' method. + + + + + Cached name for the 'set_major_version' method. + + + + + Cached name for the 'get_minor_version' method. + + + + + Cached name for the 'set_minor_version' method. + + + + + Cached name for the 'get_copyright' method. + + + + + Cached name for the 'set_copyright' method. + + + + + Cached name for the 'get_glb_data' method. + + + + + Cached name for the 'set_glb_data' method. + + + + + Cached name for the 'get_use_named_skin_binds' method. + + + + + Cached name for the 'set_use_named_skin_binds' method. + + + + + Cached name for the 'get_nodes' method. + + + + + Cached name for the 'set_nodes' method. + + + + + Cached name for the 'get_buffers' method. + + + + + Cached name for the 'set_buffers' method. + + + + + Cached name for the 'get_buffer_views' method. + + + + + Cached name for the 'set_buffer_views' method. + + + + + Cached name for the 'get_accessors' method. + + + + + Cached name for the 'set_accessors' method. + + + + + Cached name for the 'get_meshes' method. + + + + + Cached name for the 'set_meshes' method. + + + + + Cached name for the 'get_animation_players_count' method. + + + + + Cached name for the 'get_animation_player' method. + + + + + Cached name for the 'get_materials' method. + + + + + Cached name for the 'set_materials' method. + + + + + Cached name for the 'get_scene_name' method. + + + + + Cached name for the 'set_scene_name' method. + + + + + Cached name for the 'get_base_path' method. + + + + + Cached name for the 'set_base_path' method. + + + + + Cached name for the 'get_filename' method. + + + + + Cached name for the 'set_filename' method. + + + + + Cached name for the 'get_root_nodes' method. + + + + + Cached name for the 'set_root_nodes' method. + + + + + Cached name for the 'get_textures' method. + + + + + Cached name for the 'set_textures' method. + + + + + Cached name for the 'get_texture_samplers' method. + + + + + Cached name for the 'set_texture_samplers' method. + + + + + Cached name for the 'get_images' method. + + + + + Cached name for the 'set_images' method. + + + + + Cached name for the 'get_skins' method. + + + + + Cached name for the 'set_skins' method. + + + + + Cached name for the 'get_cameras' method. + + + + + Cached name for the 'set_cameras' method. + + + + + Cached name for the 'get_lights' method. + + + + + Cached name for the 'set_lights' method. + + + + + Cached name for the 'get_unique_names' method. + + + + + Cached name for the 'set_unique_names' method. + + + + + Cached name for the 'get_unique_animation_names' method. + + + + + Cached name for the 'set_unique_animation_names' method. + + + + + Cached name for the 'get_skeletons' method. + + + + + Cached name for the 'set_skeletons' method. + + + + + Cached name for the 'get_create_animations' method. + + + + + Cached name for the 'set_create_animations' method. + + + + + Cached name for the 'get_import_as_skeleton_bones' method. + + + + + Cached name for the 'set_import_as_skeleton_bones' method. + + + + + Cached name for the 'get_animations' method. + + + + + Cached name for the 'set_animations' method. + + + + + Cached name for the 'get_scene_node' method. + + + + + Cached name for the 'get_node_index' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached name for the 'get_handle_binary_image' method. + + + + + Cached name for the 'set_handle_binary_image' method. + + + + + Cached name for the 'set_bake_fps' method. + + + + + Cached name for the 'get_bake_fps' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The index of the image associated with this texture, see . If -1, then this texture does not have an image assigned. + + + + + ID of the texture sampler to use when sampling the image. If -1, then the default texture sampler is used (linear filtering, and repeat wrapping in both axes). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'src_image' property. + + + + + Cached name for the 'sampler' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_src_image' method. + + + + + Cached name for the 'set_src_image' method. + + + + + Cached name for the 'get_sampler' method. + + + + + Cached name for the 'set_sampler' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Texture's magnification filter, used when texture appears larger on screen than the source image. + + + + + Texture's minification filter, used when the texture appears smaller on screen than the source image. + + + + + Wrapping mode to use for S-axis (horizontal) texture coordinates. + + + + + Wrapping mode to use for T-axis (vertical) texture coordinates. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mag_filter' property. + + + + + Cached name for the 'min_filter' property. + + + + + Cached name for the 'wrap_s' property. + + + + + Cached name for the 'wrap_t' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_mag_filter' method. + + + + + Cached name for the 'set_mag_filter' method. + + + + + Cached name for the 'get_min_filter' method. + + + + + Cached name for the 'set_min_filter' method. + + + + + Cached name for the 'get_wrap_s' method. + + + + + Cached name for the 'set_wrap_s' method. + + + + + Cached name for the 'get_wrap_t' method. + + + + + Cached name for the 'set_wrap_t' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 2D particle node used to create a variety of particle systems and effects. features an emitter that generates some number of particles at a given rate. + Use the property to add a to configure particle appearance and behavior. Alternatively, you can add a which will be applied to all particles. + 2D particles can optionally collide with , but they don't collide with nodes. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front. + + + + + Particle starts at the specified position. + + + + + Particle starts with specified rotation and scale. + + + + + Particle starts with the specified velocity vector, which defines the emission direction and speed. + + + + + Particle starts with specified color. + + + + + Particle starts with specified CUSTOM data. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle unless all active particles have finished processing. Use the signal to be notified once all active particles finish processing. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting this to will not restart the emission cycle. + Tip: If your emitter needs to immediately restart emitting particles once signal is received, consider calling instead of setting . + + + + + The number of particles to emit in one emission cycle. The effective emission rate is (amount * amount_ratio) / lifetime particles per second. Higher values will increase GPU requirements, even if not all particles are visible at a given time or if is decreased. + Note: Changing this value will cause the particle system to restart. To avoid this, change instead. + + + + + The ratio of particles that should actually be emitted. If set to a value lower than 1.0, this will set the amount of emitted particles throughout the lifetime to amount * amount_ratio. Unlike changing , changing while emitting does not affect already-emitted particles and doesn't cause the particle system to restart. can be used to create effects that make the number of emitted particles vary over time. + Note: Reducing the has no performance benefit, since resources need to be allocated and processed for the total of particles regardless of the . If you don't intend to change the number of particles emitted while the particles are emitting, make sure is set to 1 and change to your liking instead. + + + + + Path to another node that will be used as a subemitter (see ). Subemitters can be used to achieve effects such as fireworks, sparks on collision, bubbles popping into water drops, and more. + Note: When is set, the target node will no longer emit particles on its own. + + + + + The amount of time each particle will exist (in seconds). The effective emission rate is (amount * amount_ratio) / lifetime particles per second. + + + + + Causes all the particles in this node to interpolate towards the end of their lifetime. + Note: This only works when used with a . It needs to be manually implemented for custom process shaders. + + + + + If , only one emission cycle occurs. If set during a cycle, emission will stop at the cycle's end. + + + + + Particle system starts as if it had already run for this many seconds. + Note: This can be very expensive if set to a high number as it requires running the particle shader a number of times equal to the (or 30, if is 0) for every second. In extreme cases it can even lead to a GPU crash due to the volume of work done in a single frame. + + + + + Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins. + + + + + Emission lifetime randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. + + + + + Enables particle interpolation, which makes the particle movement smoother when their is lower than the screen refresh rate. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + Multiplier for particle's collision radius. 1.0 corresponds to the size of the sprite. If particles appear to sink into the ground when colliding, increase this value. If particles appear to float when colliding, decrease this value. Only effective if is or . + Note: Particles always have a spherical collision shape. + + + + + The that determines the node's region which needs to be visible on screen for the particle system to be active. + Grow the rect if particles suddenly appear/disappear when the node enters/exits the screen. The can be grown via code or with the Particles → Generate Visibility Rect editor tool. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + + + + + If , enables particle trails using a mesh skinning system. + Note: Unlike , the number of trail sections and subdivisions is set with the and properties. + + + + + The amount of time the particle's trail should represent (in seconds). Only effective if is . + + + + + The number of sections to use for the particle trail rendering. Higher values can result in smoother trail curves, at the cost of performance due to increased mesh complexity. See also . Only effective if is . + + + + + The number of subdivisions to use for the particle trail rendering. Higher values can result in smoother trail curves, at the cost of performance due to increased mesh complexity. See also . Only effective if is . + + + + + Particle texture. If , particles will be squares with a size of 1×1 pixels. + Note: To use a flipbook texture, assign a new to the 's property, then enable and set , , and to match the flipbook texture. + + + + + for processing particles. Can be a or a . + + + + + Returns a rectangle containing the positions of all existing particles. + Note: When using threaded rendering this method synchronizes the rendering thread. Calling it often may have a negative impact on performance. + + + + + Restarts the particle emission cycle, clearing existing particles. To avoid particles vanishing from the viewport, wait for the signal before calling. + Note: The signal is only emitted by emitters. + + + + + Emits a single particle. Whether , , and are applied depends on the value of . See . + The default ParticleProcessMaterial will overwrite and use the contents of as (rotation, age, animation, lifetime). + Note: is only supported on the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Sets this node's properties to match a given node. + + + + + Emitted when all active particles have finished processing. To immediately restart the emission cycle, call . + This signal is never emitted when is disabled, as particles will be emitted and processed continuously. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting to will not restart the emission cycle. This delay is avoided by instead calling . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'amount_ratio' property. + + + + + Cached name for the 'sub_emitter' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'interp_to_end' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'interpolate' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'collision_base_size' property. + + + + + Cached name for the 'visibility_rect' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'trail_enabled' property. + + + + + Cached name for the 'trail_lifetime' property. + + + + + Cached name for the 'trail_sections' property. + + + + + Cached name for the 'trail_section_subdivisions' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'process_material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_visibility_rect' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_interpolate' method. + + + + + Cached name for the 'set_process_material' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'set_collision_base_size' method. + + + + + Cached name for the 'set_interp_to_end' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_visibility_rect' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_interpolate' method. + + + + + Cached name for the 'get_process_material' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_collision_base_size' method. + + + + + Cached name for the 'get_interp_to_end' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'capture_rect' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'set_sub_emitter' method. + + + + + Cached name for the 'get_sub_emitter' method. + + + + + Cached name for the 'emit_particle' method. + + + + + Cached name for the 'set_trail_enabled' method. + + + + + Cached name for the 'set_trail_lifetime' method. + + + + + Cached name for the 'is_trail_enabled' method. + + + + + Cached name for the 'get_trail_lifetime' method. + + + + + Cached name for the 'set_trail_sections' method. + + + + + Cached name for the 'get_trail_sections' method. + + + + + Cached name for the 'set_trail_section_subdivisions' method. + + + + + Cached name for the 'get_trail_section_subdivisions' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached name for the 'set_amount_ratio' method. + + + + + Cached name for the 'get_amount_ratio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 3D particle node used to create a variety of particle systems and effects. features an emitter that generates some number of particles at a given rate. + Use to add a to configure particle appearance and behavior. Alternatively, you can add a which will be applied to all particles. + + + + + Maximum number of draw passes supported. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front. + + + + + Particles are drawn in order of depth. + + + + + Particle starts at the specified position. + + + + + Particle starts with specified rotation and scale. + + + + + Particle starts with the specified velocity vector, which defines the emission direction and speed. + + + + + Particle starts with specified color. + + + + + Particle starts with specified CUSTOM data. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle unless all active particles have finished processing. Use the signal to be notified once all active particles finish processing. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting this to will not restart the emission cycle. + Tip: If your emitter needs to immediately restart emitting particles once signal is received, consider calling instead of setting . + + + + + The number of particles to emit in one emission cycle. The effective emission rate is (amount * amount_ratio) / lifetime particles per second. Higher values will increase GPU requirements, even if not all particles are visible at a given time or if is decreased. + Note: Changing this value will cause the particle system to restart. To avoid this, change instead. + + + + + The ratio of particles that should actually be emitted. If set to a value lower than 1.0, this will set the amount of emitted particles throughout the lifetime to amount * amount_ratio. Unlike changing , changing while emitting does not affect already-emitted particles and doesn't cause the particle system to restart. can be used to create effects that make the number of emitted particles vary over time. + Note: Reducing the has no performance benefit, since resources need to be allocated and processed for the total of particles regardless of the . If you don't intend to change the number of particles emitted while the particles are emitting, make sure is set to 1 and change to your liking instead. + + + + + Path to another node that will be used as a subemitter (see ). Subemitters can be used to achieve effects such as fireworks, sparks on collision, bubbles popping into water drops, and more. + Note: When is set, the target node will no longer emit particles on its own. + + + + + The amount of time each particle will exist (in seconds). The effective emission rate is (amount * amount_ratio) / lifetime particles per second. + + + + + Causes all the particles in this node to interpolate towards the end of their lifetime. + Note: This only works when used with a . It needs to be manually implemented for custom process shaders. + + + + + If , only the number of particles equal to will be emitted. + + + + + Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting. + Note: This can be very expensive if set to a high number as it requires running the particle shader a number of times equal to the (or 30, if is 0) for every second. In extreme cases it can even lead to a GPU crash due to the volume of work done in a single frame. + + + + + Speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + Time ratio between each emission. If 0, particles are emitted continuously. If 1, all particles are emitted simultaneously. + + + + + Emission randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. + + + + + Enables particle interpolation, which makes the particle movement smoother when their is lower than the screen refresh rate. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + The base diameter for particle collision in meters. If particles appear to sink into the ground when colliding, increase this value. If particles appear to float when colliding, decrease this value. Only effective if is or . + Note: Particles always have a spherical collision shape. + + + + + The that determines the node's region which needs to be visible on screen for the particle system to be active. is added on each of the AABB's axes. Particle collisions and attraction will only occur within this area. + Grow the box if particles suddenly appear/disappear when the node enters/exits the screen. The can be grown via code or with the Particles → Generate AABB editor tool. + Note: is overridden by if that property is set to a non-default value. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + Note: is the only option that supports motion vectors for effects like TAA. It is suggested to use this draw order if the particles are opaque to fix ghosting artifacts. + + + + + If , enables particle trails using a mesh skinning system. Designed to work with and . + Note: must also be enabled on the particle mesh's material. Otherwise, setting to will have no effect. + Note: Unlike , the number of trail sections and subdivisions is set in the or the 's properties. + + + + + The amount of time the particle's trail should represent (in seconds). Only effective if is . + + + + + for processing particles. Can be a or a . + + + + + The number of draw passes when rendering particles. + + + + + that is drawn for the first draw pass. + + + + + that is drawn for the second draw pass. + + + + + that is drawn for the third draw pass. + + + + + that is drawn for the fourth draw pass. + + + + + Sets the that is drawn at index . + + + + + Returns the that is drawn at index . + + + + + Restarts the particle emission cycle, clearing existing particles. To avoid particles vanishing from the viewport, wait for the signal before calling. + Note: The signal is only emitted by emitters. + + + + + Returns the axis-aligned bounding box that contains all the particles that are active in the current frame. + + + + + Emits a single particle. Whether , , and are applied depends on the value of . See . + The default ParticleProcessMaterial will overwrite and use the contents of as (rotation, age, animation, lifetime). + Note: is only supported on the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Sets this node's properties to match a given node. + + + + + Emitted when all active particles have finished processing. To immediately restart the emission cycle, call . + This signal is never emitted when is disabled, as particles will be emitted and processed continuously. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting to will not restart the emission cycle. This delay is avoided by instead calling . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'amount_ratio' property. + + + + + Cached name for the 'sub_emitter' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'interp_to_end' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'interpolate' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'collision_base_size' property. + + + + + Cached name for the 'visibility_aabb' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'transform_align' property. + + + + + Cached name for the 'trail_enabled' property. + + + + + Cached name for the 'trail_lifetime' property. + + + + + Cached name for the 'process_material' property. + + + + + Cached name for the 'draw_passes' property. + + + + + Cached name for the 'draw_pass_1' property. + + + + + Cached name for the 'draw_pass_2' property. + + + + + Cached name for the 'draw_pass_3' property. + + + + + Cached name for the 'draw_pass_4' property. + + + + + Cached name for the 'draw_skin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_visibility_aabb' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_interpolate' method. + + + + + Cached name for the 'set_process_material' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'set_collision_base_size' method. + + + + + Cached name for the 'set_interp_to_end' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_visibility_aabb' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_interpolate' method. + + + + + Cached name for the 'get_process_material' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_collision_base_size' method. + + + + + Cached name for the 'get_interp_to_end' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_draw_passes' method. + + + + + Cached name for the 'set_draw_pass_mesh' method. + + + + + Cached name for the 'get_draw_passes' method. + + + + + Cached name for the 'get_draw_pass_mesh' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'capture_aabb' method. + + + + + Cached name for the 'set_sub_emitter' method. + + + + + Cached name for the 'get_sub_emitter' method. + + + + + Cached name for the 'emit_particle' method. + + + + + Cached name for the 'set_trail_enabled' method. + + + + + Cached name for the 'set_trail_lifetime' method. + + + + + Cached name for the 'is_trail_enabled' method. + + + + + Cached name for the 'get_trail_lifetime' method. + + + + + Cached name for the 'set_transform_align' method. + + + + + Cached name for the 'get_transform_align' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached name for the 'set_amount_ratio' method. + + + + + Cached name for the 'get_amount_ratio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 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 to 0.0. + Note: Particle attractors only affect , not . + + + + + Adjusts the strength of the attractor. If is negative, particles will be pushed in the opposite direction. Particles will be pushed away from the attractor's origin if is 0.0, or towards local +Z if is greater than 0.0. + + + + + The particle attractor's attenuation. Higher values result in more gradual pushing of particles as they come closer to the attractor's origin. Zero or negative values will cause particles to be pushed very fast as soon as the touch the attractor's edges. + + + + + Adjusts how directional the attractor is. At 0.0, the attractor is not directional at all: it will attract particles towards its center. At 1.0, the attractor is fully directional: particles will always be pushed towards local -Z (or +Z if is negative). + Note: If is greater than 0.0, the direction in which particles are pushed can be changed by rotating the node. + + + + + The particle rendering layers () that will be affected by the attractor. By default, all particles are affected by an attractor. + After configuring particle nodes accordingly, specific layers can be unchecked to prevent certain particles from being affected by attractors. For example, this can be used if you're using an attractor as part of a spell effect but don't want the attractor to affect unrelated weather particles at the same position. + Particle attraction can also be disabled on a per-process material basis by setting on the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'strength' property. + + + + + Cached name for the 'attenuation' property. + + + + + Cached name for the 'directionality' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_strength' method. + + + + + Cached name for the 'get_strength' method. + + + + + Cached name for the 'set_attenuation' method. + + + + + Cached name for the 'get_attenuation' method. + + + + + Cached name for the 'set_directionality' method. + + + + + Cached name for the 'get_directionality' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A box-shaped attractor that influences particles from nodes. Can be used to attract particles towards its origin, or to push them away from its origin. + Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported. + Note: Particle attractors only affect , not . + + + + + The attractor box's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A spheroid-shaped attractor that influences particles from nodes. Can be used to attract particles towards its origin, or to push them away from its origin. + Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported. + Note: Particle attractors only affect , not . + + + + + The attractor sphere's radius in 3D units. + Note: Stretched ellipses can be obtained by using non-uniform scaling on the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A box-shaped attractor with varying directions and strengths defined in it that influences particles from nodes. + Unlike , uses a to affect attraction strength within the box. This can be used to create complex attraction scenarios where particles travel in different directions depending on their location. This can be useful for weather effects such as sandstorms. + Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported. + Note: Particle attractors only affect , not . + + + + + The size of the vector field box in 3D units. + + + + + The 3D texture to be used. Values are linearly interpolated between the texture's pixels. + Note: To get better performance, the 3D texture's resolution should reflect the of the attractor. Since particle attraction is usually low-frequency data, the texture can be kept at a low resolution such as 64×64×64. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Particle collision shapes can be used to make particles stop or bounce against them. + Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported. + Particle collision shapes can be temporarily disabled by hiding them. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + Note: Particles pushed by a collider that is being moved will not be interpolated, which can result in visible stuttering. This can be alleviated by setting to 0 or a value that matches or exceeds the target framerate. + + + + + The particle rendering layers () that will be affected by the collision shape. By default, all particles that have set to or will be affected by a collision shape. + After configuring particle nodes accordingly, specific layers can be unchecked to prevent certain particles from being affected by colliders. For example, this can be used if you're using a collider as part of a spell effect but don't want the collider to affect unrelated weather particles at the same position. + Particle collision can also be disabled on a per-process material basis by setting on the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A box-shaped 3D particle collision shape affecting nodes. + Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + The collision box's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A real-time heightmap-shaped 3D particle collision shape affecting 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 , but it doesn't require a baking step. + can also be regenerated in real-time when it is moved, when the camera moves, or even continuously. This makes a good choice for weather effects such as rain and snow and games with highly dynamic geometry. However, this class is limited since heightmaps cannot represent overhangs (e.g. indoors or caves). + Note: must be on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + Generate a 256×256 heightmap. Intended for small-scale scenes, or larger scenes with no distant particles. + + + + + Generate a 512×512 heightmap. Intended for medium-scale scenes, or larger scenes with no distant particles. + + + + + Generate a 1024×1024 heightmap. Intended for large scenes with distant particles. + + + + + Generate a 2048×2048 heightmap. Intended for very large scenes with distant particles. + + + + + Generate a 4096×4096 heightmap. Intended for huge scenes with distant particles. + + + + + Generate a 8192×8192 heightmap. Intended for gigantic scenes with distant particles. + + + + + Represents the size of the enum. + + + + + Only update the heightmap when the node is moved, or when the camera moves if is . An update can be forced by slightly moving the in any direction, or by calling . + + + + + 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. + + + + + The collision heightmap's size in 3D units. To improve heightmap quality, should be set as small as possible while covering the parts of the scene you need. + + + + + Higher resolutions can represent small details more accurately in large scenes, at the cost of lower performance. If is , consider using the lowest resolution possible. + + + + + The update policy to use for the generated heightmap. + + + + + If , the will follow the current camera in global space. The does not need to be a child of the node for this to work. + Following the camera has a performance cost, as it will force the heightmap to update whenever the camera moves. Consider lowering to improve performance if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'resolution' property. + + + + + Cached name for the 'update_mode' property. + + + + + Cached name for the 'follow_camera_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_resolution' method. + + + + + Cached name for the 'get_resolution' method. + + + + + Cached name for the 'set_update_mode' method. + + + + + Cached name for the 'get_update_mode' method. + + + + + Cached name for the 'set_follow_camera_enabled' method. + + + + + Cached name for the 'is_follow_camera_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A baked signed distance field 3D particle collision shape affecting 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 , but it requires a baking step. + Baking: The signed distance field texture can be baked by selecting the node in the editor, then clicking Bake SDF at the top of the 3D viewport. Any visible s within the will be taken into account for baking, regardless of their . + Note: Baking a 's 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 s into its property in an exported project. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + Bake a 16×16×16 signed distance field. This is the fastest option, but also the least precise. + + + + + Bake a 32×32×32 signed distance field. + + + + + Bake a 64×64×64 signed distance field. + + + + + Bake a 128×128×128 signed distance field. + + + + + Bake a 256×256×256 signed distance field. + + + + + Bake a 512×512×512 signed distance field. This is the slowest option, but also the most precise. + + + + + Represents the size of the enum. + + + + + The collision SDF's size in 3D units. To improve SDF quality, the should be set as small as possible while covering the parts of the scene you need. + + + + + The bake resolution to use for the signed distance field . The texture must be baked again for changes to the property to be effective. Higher resolutions have a greater performance cost and take more time to bake. Higher resolutions also result in larger baked textures, leading to increased VRAM and storage space requirements. To improve performance and reduce bake times, use the lowest resolution possible for the object you're representing the collision of. + + + + + The collision shape's thickness. Unlike other particle colliders, is actually hollow on the inside. can be increased to prevent particles from tunneling through the collision shape at high speeds, or when the is moved. + + + + + The visual layers to account for when baking the particle collision SDF. Only s whose match with this will be included in the generated particle collision SDF. By default, all objects are taken into account for the particle collision SDF baking. + + + + + The 3D texture representing the signed distance field. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'resolution' property. + + + + + Cached name for the 'thickness' property. + + + + + Cached name for the 'bake_mask' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_resolution' method. + + + + + Cached name for the 'get_resolution' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_thickness' method. + + + + + Cached name for the 'get_thickness' method. + + + + + Cached name for the 'set_bake_mask' method. + + + + + Cached name for the 'get_bake_mask' method. + + + + + Cached name for the 'set_bake_mask_value' method. + + + + + Cached name for the 'get_bake_mask_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A sphere-shaped 3D particle collision shape affecting nodes. + Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + The collision sphere's radius in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The (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. + + + + + The minimum difference between the pivot points' axes. + + + + + The maximum difference between the pivot points' axes. + + + + + A factor applied to the movement across the axes. The lower, the slower the movement. + + + + + The amount of restitution on the axes' movement. The lower, the more momentum gets lost. + + + + + The amount of damping that happens at the linear motion across the axes. + + + + + The velocity the linear motor will try to reach. + + + + + The maximum force the linear motor will apply while trying to reach the velocity target. + + + + + The minimum rotation in negative direction to break loose and rotate around the axes. + + + + + The minimum rotation in positive direction to break loose and rotate around the axes. + + + + + The speed of all rotations across the axes. + + + + + The amount of rotational damping across the axes. The lower, the more damping occurs. + + + + + The amount of rotational restitution across the axes. The lower, the more restitution occurs. + + + + + The maximum amount of force that can occur, when rotating around the axes. + + + + + When rotating across the axes, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower. + + + + + Target speed for the motor at the axes. + + + + + Maximum acceleration for the motor at the axes. + + + + + Represents the size of the enum. + + + + + If enabled, linear motion is possible within the given limits. + + + + + If enabled, rotational motion is possible within the given limits. + + + + + If enabled, there is a rotational motor across these axes. + + + + + If enabled, there is a linear motor across these axes. + + + + + Represents the size of the enum. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param_x' method. + + + + + Cached name for the 'get_param_x' method. + + + + + Cached name for the 'set_param_y' method. + + + + + Cached name for the 'get_param_y' method. + + + + + Cached name for the 'set_param_z' method. + + + + + Cached name for the 'get_param_z' method. + + + + + Cached name for the 'set_flag_x' method. + + + + + Cached name for the 'get_flag_x' method. + + + + + Cached name for the 'set_flag_y' method. + + + + + Cached name for the 'get_flag_y' method. + + + + + Cached name for the 'set_flag_z' method. + + + + + Cached name for the 'get_flag_z' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 2D. + + + + + Create regions where either subject or clip polygons (or both) are filled. + + + + + Create regions where subject polygons are filled except where clip polygons are filled. + + + + + Create regions where both subject and clip polygons are filled. + + + + + Create regions where either subject or clip polygons are filled but not where both are filled. + + + + + Squaring is applied uniformally at all convex edge joins at 1 * delta. + + + + + While flattened paths can never perfectly trace an arc, they are approximated by a series of arc chords. + + + + + 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. + + + + + Endpoints are joined using the value and the path filled as a polygon. + + + + + Endpoints are joined using the value and the path filled as a polyline. + + + + + Endpoints are squared off with no extension. + + + + + Endpoints are squared off and extended by delta units. + + + + + Endpoints are rounded off and extended by delta units. + + + + + Returns if is inside the circle or if it's located exactly on the circle's boundary, otherwise returns . + + + + + Given the 2D segment (, ), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position and has radius . If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not). + + + + + Checks if the two segments (, ) and (, ) intersect. If yes, return the point of intersection as . If no intersection takes place, returns . + + + + + Returns the point of intersection between the two lines (, ) and (, ). Returns a , or if the lines are parallel. + from and dir are not endpoints of a line segment or ray but the slope (dir) and a known point (from) on that line. + + var fromA = Vector2.Zero; + var dirA = Vector2.Right; + var fromB = Vector2.Down; + + // Returns new Vector2(1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1)); + // Returns new Vector2(-1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1)); + // Returns null + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right); + + + + + + Given the two 2D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 2D point on the 2D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 2D point on the 2D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns if is inside the triangle specified by , and . + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Returns the Bresenham line between the and points. A Bresenham line is a series of pixels that draws a line and is always 1-pixel thick on every row and column of the drawing (never more, never less). + Example code to draw a line between two nodes using a series of calls: + + func _draw(): + for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB.position): + draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE) + + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_point_in_circle' method. + + + + + Cached name for the 'segment_intersects_circle' method. + + + + + Cached name for the 'segment_intersects_segment' method. + + + + + Cached name for the 'line_intersects_line' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'point_is_inside_triangle' method. + + + + + Cached name for the 'is_polygon_clockwise' method. + + + + + Cached name for the 'is_point_in_polygon' method. + + + + + Cached name for the 'triangulate_polygon' method. + + + + + Cached name for the 'triangulate_delaunay' method. + + + + + Cached name for the 'convex_hull' method. + + + + + Cached name for the 'decompose_polygon_in_convex' method. + + + + + Cached name for the 'merge_polygons' method. + + + + + Cached name for the 'clip_polygons' method. + + + + + Cached name for the 'intersect_polygons' method. + + + + + Cached name for the 'exclude_polygons' method. + + + + + Cached name for the 'clip_polyline_with_polygon' method. + + + + + Cached name for the 'intersect_polyline_with_polygon' method. + + + + + Cached name for the 'offset_polygon' method. + + + + + Cached name for the 'offset_polyline' method. + + + + + Cached name for the 'make_atlas' method. + + + + + Cached name for the 'bresenham_line' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 2D. + + + + + Returns if is inside the circle or if it's located exactly on the circle's boundary, otherwise returns . + + + + + Given the 2D segment (, ), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position and has radius . If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not). + + + + + Checks if the two segments (, ) and (, ) intersect. If yes, return the point of intersection as . If no intersection takes place, returns . + + + + + Returns the point of intersection between the two lines (, ) and (, ). Returns a , or if the lines are parallel. + from and dir are not endpoints of a line segment or ray but the slope (dir) and a known point (from) on that line. + + var fromA = Vector2.Zero; + var dirA = Vector2.Right; + var fromB = Vector2.Down; + + // Returns new Vector2(1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1)); + // Returns new Vector2(-1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1)); + // Returns null + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right); + + + + + + Given the two 2D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 2D point on the 2D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 2D point on the 2D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns if is inside the triangle specified by , and . + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Returns the Bresenham line between the and points. A Bresenham line is a series of pixels that draws a line and is always 1-pixel thick on every row and column of the drawing (never more, never less). + Example code to draw a line between two nodes using a series of calls: + + func _draw(): + for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB.position): + draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_point_in_circle' method. + + + + + Cached name for the 'segment_intersects_circle' method. + + + + + Cached name for the 'segment_intersects_segment' method. + + + + + Cached name for the 'line_intersects_line' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'point_is_inside_triangle' method. + + + + + Cached name for the 'is_polygon_clockwise' method. + + + + + Cached name for the 'is_point_in_polygon' method. + + + + + Cached name for the 'triangulate_polygon' method. + + + + + Cached name for the 'triangulate_delaunay' method. + + + + + Cached name for the 'convex_hull' method. + + + + + Cached name for the 'decompose_polygon_in_convex' method. + + + + + Cached name for the 'merge_polygons' method. + + + + + Cached name for the 'clip_polygons' method. + + + + + Cached name for the 'intersect_polygons' method. + + + + + Cached name for the 'exclude_polygons' method. + + + + + Cached name for the 'clip_polyline_with_polygon' method. + + + + + Cached name for the 'intersect_polyline_with_polygon' method. + + + + + Cached name for the 'offset_polygon' method. + + + + + Cached name for the 'offset_polyline' method. + + + + + Cached name for the 'make_atlas' method. + + + + + Cached name for the 'bresenham_line' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 3D. + + + + + Calculates and returns all the vertex points of a convex shape defined by an array of . + + + + + Returns an array with 6 s that describe the sides of a box centered at the origin. The box size is defined by , which represents one (positive) corner of the box (i.e. half its actual size). + + + + + Returns an array of s closely bounding a faceted cylinder centered at the origin with radius and height . The parameter defines how many planes will be generated for the round part of the cylinder. The parameter describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Returns an array of s closely bounding a faceted capsule centered at the origin with radius and height . The parameter defines how many planes will be generated for the side part of the capsule, whereas gives the number of latitudinal steps at the bottom and top of the capsule. The parameter describes the axis along which the capsule is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Given the two 3D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 3D point on the 3D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 3D point on the 3D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns a containing weights based on how close a 3D position () is to a triangle's different vertices (, and ). This is useful for interpolating between the data of different vertices in a triangle. One example use case is using this to smoothly rotate over a mesh instead of relying solely on face normals. + Here is a more detailed explanation of barycentric coordinates. + + + + + Tests if the 3D ray starting at with the direction of intersects the triangle specified by , and . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Tests if the segment (, ) intersects the triangle , , . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Checks if the segment (, ) intersects the sphere that is located at and has radius . If no, returns an empty []. If yes, returns a [] containing the point of intersection and the sphere's normal at the point of intersection. + + + + + Checks if the segment (, ) intersects the cylinder with height that is centered at the origin and has radius . If no, returns an empty []. If an intersection takes place, the returned array contains the point of intersection and the cylinder's normal at the point of intersection. + + + + + Given a convex hull defined though the s in the array , tests if the segment (, ) intersects with that hull. If an intersection is found, returns a [] containing the point the intersection and the hull's normal. Otherwise, returns an empty array. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'compute_convex_mesh_points' method. + + + + + Cached name for the 'build_box_planes' method. + + + + + Cached name for the 'build_cylinder_planes' method. + + + + + Cached name for the 'build_capsule_planes' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'get_triangle_barycentric_coords' method. + + + + + Cached name for the 'ray_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_sphere' method. + + + + + Cached name for the 'segment_intersects_cylinder' method. + + + + + Cached name for the 'segment_intersects_convex' method. + + + + + Cached name for the 'clip_polygon' method. + + + + + Cached name for the 'tetrahedralize_delaunay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base node for geometry-based visual instances. Shares some common functionality like visibility and custom materials. + + + + + Will not cast any shadows. Use this to improve performance for small geometry that is unlikely to cast noticeable shadows (such as debris). + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Disabled global illumination mode. Use for dynamic objects that do not contribute to global illumination (such as characters). When using and SDFGI, the geometry will receive indirect lighting and reflections but the geometry will not be considered in GI baking. + + + + + Baked global illumination mode. Use for static objects that contribute to global illumination (such as level geometry). This GI mode is effective when using , SDFGI and . + + + + + Dynamic global illumination mode. Use for dynamic objects that contribute to global illumination. This GI mode is only effective when using , but it has a higher performance impact than . When using other GI methods, this will act the same as . When using , the object will receive indirect lighting using lightmap probes instead of using the baked lightmap texture. + + + + + The standard texel density for lightmapping with . + + + + + Multiplies texel density by 2× for lightmapping with . To ensure consistency in texel density, use this when scaling a mesh by a factor between 1.5 and 3.0. + + + + + Multiplies texel density by 4× for lightmapping with . To ensure consistency in texel density, use this when scaling a mesh by a factor between 3.0 and 6.0. + + + + + Multiplies texel density by 8× for lightmapping with . To ensure consistency in texel density, use this when scaling a mesh by a factor greater than 6.0. + + + + + Represents the size of the enum. + + + + + 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 and for more information. + + + + + Will fade-out itself when reaching the limits of its own visibility range. This is slower than , but it can provide smoother transitions. The fading range is determined by and . + Note: Only supported when using the Forward+ rendering method. When using the Mobile or Compatibility rendering method, this mode acts like but with hysteresis disabled. + + + + + Will fade-in its visibility dependencies (see ) when reaching the limits of its own visibility range. This is slower than , but it can provide smoother transitions. The fading range is determined by and . + Note: Only supported when using the Forward+ rendering method. When using the Mobile or Compatibility rendering method, this mode acts like but with hysteresis disabled. + + + + + The material override for the whole geometry. + If a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh. + + + + + The material overlay for the whole geometry. + If a material is assigned to this property, it will be rendered on top of any other active material for all the surfaces. + + + + + The transparency applied to the whole geometry (as a multiplier of the materials' existing transparency). 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting to a value greater than 0.0 (exclusive) will not disable shadow rendering. + In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in. + Note: is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are. + Note: Only supported when using the Forward+ rendering method. When using the Mobile or Compatibility rendering method, is ignored and is considered as always being 0.0. + + + + + The selected shadow casting flag. See for possible values. + + + + + The extra distance added to the GeometryInstance3D's bounding box () to increase its cull box. + + + + + Overrides the bounding box of this node with a custom one. This can be used to avoid the expensive recalculation that happens when a skeleton is used with a or to have precise control over the 's bounding box. To use the default AABB, set value to an with all fields set to 0.0. To avoid frustum culling, set to a very large AABB that covers your entire game world such as AABB(-10000, -10000, -10000, 20000, 20000, 20000). To disable all forms of culling (including occlusion culling), call on the 's . + + + + + Changes how quickly the mesh transitions to a lower level of detail. A value of 0 will force the mesh to its lowest level of detail, a value of 1 will use the default settings, and larger values will keep the mesh in a higher level of detail at farther distances. + Useful for testing level of detail transitions in the editor. + + + + + If , disables occlusion culling for this instance. Useful for gizmos that must be rendered even when occlusion culling is in use. + Note: does not affect frustum culling (which is what happens when an object is not visible given the camera's angle). To avoid frustum culling, set to a very large AABB that covers your entire game world such as AABB(-10000, -10000, -10000, 20000, 20000, 20000). + + + + + The global illumination mode to use for the whole geometry. To avoid inconsistent results, use a mode that matches the purpose of the mesh during gameplay (static/dynamic). + Note: Lights' bake mode will also affect the global illumination rendering. See . + + + + + The texel density to use for lightmapping in . Greater scale values provide higher resolution in the lightmap, which can result in sharper shadows for lights that have both direct and indirect light baked. However, greater scale values will also increase the space taken by the mesh in the lightmap texture, which increases the memory, storage, and bake time requirements. When using a single mesh at different scales, consider adjusting this value to keep the lightmap texel density consistent across meshes. + For example, doubling doubles the lightmap texture resolution for this object on each axis, so it will quadruple the texel count. + + + + + The texel density to use for lightmapping in . + + + + + Starting distance from which the GeometryInstance3D will be visible, taking into account as well. The default value of 0 is used to disable the range check. + + + + + Margin for the threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the threshold by this amount. + If is , this acts as a hysteresis distance. If is or , this acts as a fade transition distance and must be set to a value greater than 0.0 for the effect to be noticeable. + + + + + Distance from which the GeometryInstance3D will be hidden, taking into account as well. The default value of 0 is used to disable the range check. + + + + + Margin for the threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the threshold by this amount. + If is , this acts as a hysteresis distance. If is or , this acts as a fade transition distance and must be set to a value greater than 0.0 for the effect to be noticeable. + + + + + Controls which instances will be faded when approaching the limits of the visibility range. See for possible values. + + + + + Set the value of a shader uniform for this instance only (per-instance uniform). See also to assign a uniform on all instances using the same . + Note: For a shader uniform to be assignable on a per-instance basis, it must be defined with instance uniform ... rather than uniform ... in the shader code. + Note: is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector). + Note: Per-instance shader uniforms are currently only available in 3D, so there is no 2D equivalent of this method. + + + + + Get the value of a shader parameter as set on this instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'material_override' property. + + + + + Cached name for the 'material_overlay' property. + + + + + Cached name for the 'transparency' property. + + + + + Cached name for the 'cast_shadow' property. + + + + + Cached name for the 'extra_cull_margin' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'lod_bias' property. + + + + + Cached name for the 'ignore_occlusion_culling' property. + + + + + Cached name for the 'gi_mode' property. + + + + + Cached name for the 'gi_lightmap_texel_scale' property. + + + + + Cached name for the 'gi_lightmap_scale' property. + + + + + Cached name for the 'visibility_range_begin' property. + + + + + Cached name for the 'visibility_range_begin_margin' property. + + + + + Cached name for the 'visibility_range_end' property. + + + + + Cached name for the 'visibility_range_end_margin' property. + + + + + Cached name for the 'visibility_range_fade_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_material_override' method. + + + + + Cached name for the 'get_material_override' method. + + + + + Cached name for the 'set_material_overlay' method. + + + + + Cached name for the 'get_material_overlay' method. + + + + + Cached name for the 'set_cast_shadows_setting' method. + + + + + Cached name for the 'get_cast_shadows_setting' method. + + + + + Cached name for the 'set_lod_bias' method. + + + + + Cached name for the 'get_lod_bias' method. + + + + + Cached name for the 'set_transparency' method. + + + + + Cached name for the 'get_transparency' method. + + + + + Cached name for the 'set_visibility_range_end_margin' method. + + + + + Cached name for the 'get_visibility_range_end_margin' method. + + + + + Cached name for the 'set_visibility_range_end' method. + + + + + Cached name for the 'get_visibility_range_end' method. + + + + + Cached name for the 'set_visibility_range_begin_margin' method. + + + + + Cached name for the 'get_visibility_range_begin_margin' method. + + + + + Cached name for the 'set_visibility_range_begin' method. + + + + + Cached name for the 'get_visibility_range_begin' method. + + + + + Cached name for the 'set_visibility_range_fade_mode' method. + + + + + Cached name for the 'get_visibility_range_fade_mode' method. + + + + + Cached name for the 'set_instance_shader_parameter' method. + + + + + Cached name for the 'get_instance_shader_parameter' method. + + + + + Cached name for the 'set_extra_cull_margin' method. + + + + + Cached name for the 'get_extra_cull_margin' method. + + + + + Cached name for the 'set_lightmap_texel_scale' method. + + + + + Cached name for the 'get_lightmap_texel_scale' method. + + + + + Cached name for the 'set_lightmap_scale' method. + + + + + Cached name for the 'get_lightmap_scale' method. + + + + + Cached name for the 'set_gi_mode' method. + + + + + Cached name for the 'get_gi_mode' method. + + + + + Cached name for the 'set_ignore_occlusion_culling' method. + + + + + Cached name for the 'is_ignoring_occlusion_culling' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource describes a color transition by defining a set of colored points and how to interpolate between them. + See also which supports more complex easing methods, but does not support colors. + + + + + Linear interpolation. + + + + + 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. + + + + + Cubic interpolation. + + + + + sRGB color space. + + + + + Linear sRGB color space. + + + + + Oklab color space. This color space provides a smooth and uniform-looking transition between colors. + + + + + The algorithm used to interpolate between points of the gradient. See for available modes. + + + + + The color space used to interpolate between points of the gradient. It does not affect the returned colors, which will always be in sRGB space. See for available modes. + Note: This setting has no effect when is set to . + + + + + Gradient's offsets as a []. + Note: Setting this property updates all offsets at once. To update any offset individually use . + + + + + Gradient's colors as a []. + Note: Setting this property updates all colors at once. To update any color individually use . + + + + + Adds the specified color to the gradient, with the specified offset. + + + + + Removes the color at index . + + + + + Sets the offset for the gradient color at index . + + + + + Returns the offset of the gradient color at index . + + + + + Reverses/mirrors the gradient. + Note: This method mirrors all points around the middle of the gradient, which may produce unexpected results when is set to . + + + + + Sets the color of the gradient color at index . + + + + + Returns the color of the gradient color at index . + + + + + Returns the interpolated color specified by . + + + + + Returns the number of colors in the gradient. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'interpolation_mode' property. + + + + + Cached name for the 'interpolation_color_space' property. + + + + + Cached name for the 'offsets' property. + + + + + Cached name for the 'colors' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'reverse' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_offsets' method. + + + + + Cached name for the 'get_offsets' method. + + + + + Cached name for the 'set_colors' method. + + + + + Cached name for the 'get_colors' method. + + + + + Cached name for the 'set_interpolation_mode' method. + + + + + Cached name for the 'get_interpolation_mode' method. + + + + + Cached name for the 'set_interpolation_color_space' method. + + + + + Cached name for the 'get_interpolation_color_space' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 1D texture that obtains colors from a 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 , and . + + + + + The used to fill the texture. + + + + + The number of color samples that will be obtained from the . + + + + + If , the generated texture will support high dynamic range ( format). This allows for glow effects to work if is . If , the generated texture will use low dynamic range; overbright colors will be clamped ( format). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gradient' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'use_hdr' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gradient' method. + + + + + Cached name for the 'get_gradient' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_use_hdr' method. + + + + + Cached name for the 'is_using_hdr' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D texture that obtains colors from a 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 and ). See also , and . + + + + + The colors are linearly interpolated in a straight line. + + + + + The colors are linearly interpolated in a circular pattern. + + + + + The colors are linearly interpolated in a square pattern. + + + + + The gradient fill is restricted to the range defined by to offsets. + + + + + The texture is filled starting from to offsets, repeating the same pattern in both directions. + + + + + The texture is filled starting from to offsets, mirroring the pattern in both directions. + + + + + The used to fill the texture. + + + + + The number of horizontal color samples that will be obtained from the , which also represents the texture's width. + + + + + The number of vertical color samples that will be obtained from the , which also represents the texture's height. + + + + + If , the generated texture will support high dynamic range ( format). This allows for glow effects to work if is . If , the generated texture will use low dynamic range; overbright colors will be clamped ( format). + + + + + The gradient fill type, one of the values. The texture is filled by interpolating colors starting from to offsets. + + + + + The initial offset used to fill the texture specified in UV coordinates. + + + + + The final offset used to fill the texture specified in UV coordinates. + + + + + The gradient repeat type, one of the values. The texture is filled starting from to offsets by default, but the gradient fill can be repeated to cover the entire texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gradient' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'use_hdr' property. + + + + + Cached name for the 'fill' property. + + + + + Cached name for the 'fill_from' property. + + + + + Cached name for the 'fill_to' property. + + + + + Cached name for the 'repeat' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gradient' method. + + + + + Cached name for the 'get_gradient' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'set_use_hdr' method. + + + + + Cached name for the 'is_using_hdr' method. + + + + + Cached name for the 'set_fill' method. + + + + + Cached name for the 'get_fill' method. + + + + + Cached name for the 'set_fill_from' method. + + + + + Cached name for the 'get_fill_from' method. + + + + + Cached name for the 'set_fill_to' method. + + + + + Cached name for the 'get_fill_to' method. + + + + + Cached name for the 'set_repeat' method. + + + + + Cached name for the 'get_repeat' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows to create custom elements for a 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 . + + + + + The offset of the GraphElement, relative to the scroll offset of the . + + + + + If , the user can resize the GraphElement. + Note: Dragging the handle will only emit the and signals, the GraphElement needs to be resized manually. + + + + + If , the user can drag the GraphElement. + + + + + If , the user can select the GraphElement. + + + + + If , the GraphElement is selected. + + + + + Emitted when the GraphElement is selected. + + + + + Emitted when the GraphElement is deselected. + + + + + Emitted when displaying the GraphElement over other ones is requested. Happens on focusing (clicking into) the GraphElement. + + + + + Emitted when removing the GraphElement is requested. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when resizing the GraphElement is requested. Happens on dragging the resizer handle (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when releasing the mouse button after dragging the resizer handle (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the GraphElement is dragged. + + + + + Emitted when the GraphElement is moved. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position_offset' property. + + + + + Cached name for the 'resizable' property. + + + + + Cached name for the 'draggable' property. + + + + + Cached name for the 'selectable' property. + + + + + Cached name for the 'selected' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_resizable' method. + + + + + Cached name for the 'is_resizable' method. + + + + + Cached name for the 'set_draggable' method. + + + + + Cached name for the 'is_draggable' method. + + + + + Cached name for the 'set_selectable' method. + + + + + Cached name for the 'is_selectable' method. + + + + + Cached name for the 'set_selected' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'set_position_offset' method. + + + + + Cached name for the 'get_position_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'node_selected' signal. + + + + + Cached name for the 'node_deselected' signal. + + + + + Cached name for the 'raise_request' signal. + + + + + Cached name for the 'delete_request' signal. + + + + + Cached name for the 'resize_request' signal. + + + + + Cached name for the 'resize_end' signal. + + + + + Cached name for the 'dragged' signal. + + + + + Cached name for the 'position_offset_changed' signal. + + + + + GraphFrame is a special to which other s can be attached. It can be configured to automatically resize to enclose all attached s. If the frame is moved, all the attached s inside it will be moved as well. + A GraphFrame is always kept behind the connection layer and other s inside a . + + + + + Title of the frame. + + + + + If , the frame's rect will be adjusted automatically to enclose all attached s. + + + + + The margin around the attached nodes that is used to calculate the size of the frame when is . + + + + + The margin inside the frame that can be used to drag the frame. + + + + + If , the tint color will be used to tint the frame. + + + + + The color of the frame when is . + + + + + Returns the used for the title bar, only containing a for displaying the title by default. + This can be used to add custom controls to the title bar such as option or close buttons. + + + + + Emitted when or changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'autoshrink_enabled' property. + + + + + Cached name for the 'autoshrink_margin' property. + + + + + Cached name for the 'drag_margin' property. + + + + + Cached name for the 'tint_color_enabled' property. + + + + + Cached name for the 'tint_color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'get_titlebar_hbox' method. + + + + + Cached name for the 'set_autoshrink_enabled' method. + + + + + Cached name for the 'is_autoshrink_enabled' method. + + + + + Cached name for the 'set_autoshrink_margin' method. + + + + + Cached name for the 'get_autoshrink_margin' method. + + + + + Cached name for the 'set_drag_margin' method. + + + + + Cached name for the 'get_drag_margin' method. + + + + + Cached name for the 'set_tint_color_enabled' method. + + + + + Cached name for the 'is_tint_color_enabled' method. + + + + + Cached name for the 'set_tint_color' method. + + + + + Cached name for the 'get_tint_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'autoshrink_changed' signal. + + + + + arranges its child controls in a grid layout. The number of columns is specified by the property, whereas the number of rows depends on how many are needed for the child controls. The number of rows and columns is preserved for every size of the container. + Note: only works with child nodes inheriting from . It won't rearrange child nodes inheriting from . + + + + + The number of columns in the . If modified, reorders its Control-derived children to accommodate the new layout. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'columns' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_columns' method. + + + + + Cached name for the 'get_columns' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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 . All cells in the map have the same dimensions. + Internally, a GridMap is split into a sparse collection of octants for efficient rendering and physics processing. Every octant has the same dimensions and can contain several cells. + Note: GridMap doesn't extend and therefore can't be hidden or cull masked based on . If you make a light not affect the first layer, the whole GridMap won't be lit by the light in question. + + + + + Invalid cell item that can be used in to clear cells (or represent an empty cell in ). + + + + + The assigned . + + + + + Overrides the default friction and bounce physics properties for the whole . + + + + + The dimensions of the grid's cells. + This does not affect the size of the meshes. See . + + + + + The size of each octant measured in number of cells. This applies to all three axis. + + + + + If , grid items are centered on the X axis. + + + + + If , grid items are centered on the Y axis. + + + + + If , grid items are centered on the Z axis. + + + + + The scale of the cell items. + This does not affect the size of the grid cells themselves, only the items in them. This can be used to make cell items overlap their neighbors. + + + + + The physics layers this GridMap is in. + GridMaps act as static bodies, meaning they aren't affected by gravity or other forces. They only affect other physics bodies that collide with them. + + + + + The physics layers this GridMap detects collisions in. See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + If , this GridMap creates a navigation region for each cell that uses a item with a navigation mesh. The created navigation region will use the navigation layers bitmask assigned to the 's item. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Sets the of the navigation map this GridMap node should use for its cell baked navigation meshes. + + + + + Returns the of the navigation map this GridMap node uses for its cell baked navigation meshes. + This function returns always the map set on the GridMap node and not the map on the NavigationServer. If the map is changed directly with the NavigationServer API the GridMap node will not be aware of the map change. + + + + + Sets the mesh index for the cell referenced by its grid coordinates. + A negative item index such as will clear the cell. + Optionally, the item's orientation can be passed. For valid orientation values, see . + + + + + The item index located at the given grid coordinates. If the cell is empty, will be returned. + + + + + The orientation of the cell at the given grid coordinates. -1 is returned if the cell is empty. + + + + + Returns the basis that gives the specified cell its orientation. + + + + + Returns one of 24 possible rotations that lie along the vectors (x,y,z) with each component being either -1, 0, or 1. For further details, refer to the Godot source code. + + + + + This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1, 0, or 1, and returns the index (in the range from 0 to 23) of the point best representing the orientation of the object. For further details, refer to the Godot source code. + + + + + Returns the map coordinates of the cell containing the given . If is in global coordinates, consider using before passing it to this method. See also . + + + + + Returns the position of a grid cell in the GridMap's local coordinate space. To convert the returned value into global coordinates, use . See also . + + + + + This method does nothing. + + + + + Clear all cells. + + + + + Returns an array of with the non-empty cell coordinates in the grid map. + + + + + Returns an array of all cells with the given item index specified in . + + + + + Returns an array of and references corresponding to the non-empty cells in the grid. The transforms are specified in local space. + + + + + Returns an array of es and references of all bake meshes that exist within the current GridMap. + + + + + Returns of a baked mesh with the given . + + + + + Clears all baked meshes. See . + + + + + Bakes lightmap data for all meshes in the assigned . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when changes. + + + + + Emitted when the of this GridMap changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh_library' property. + + + + + Cached name for the 'physics_material' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'cell_octant_size' property. + + + + + Cached name for the 'cell_center_x' property. + + + + + Cached name for the 'cell_center_y' property. + + + + + Cached name for the 'cell_center_z' property. + + + + + Cached name for the 'cell_scale' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached name for the 'bake_navigation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_physics_material' method. + + + + + Cached name for the 'get_physics_material' method. + + + + + Cached name for the 'set_bake_navigation' method. + + + + + Cached name for the 'is_baking_navigation' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_mesh_library' method. + + + + + Cached name for the 'get_mesh_library' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_cell_scale' method. + + + + + Cached name for the 'get_cell_scale' method. + + + + + Cached name for the 'set_octant_size' method. + + + + + Cached name for the 'get_octant_size' method. + + + + + Cached name for the 'set_cell_item' method. + + + + + Cached name for the 'get_cell_item' method. + + + + + Cached name for the 'get_cell_item_orientation' method. + + + + + Cached name for the 'get_cell_item_basis' method. + + + + + Cached name for the 'get_basis_with_orthogonal_index' method. + + + + + Cached name for the 'get_orthogonal_index_from_basis' method. + + + + + Cached name for the 'local_to_map' method. + + + + + Cached name for the 'map_to_local' method. + + + + + Cached name for the 'resource_changed' method. + + + + + Cached name for the 'set_center_x' method. + + + + + Cached name for the 'get_center_x' method. + + + + + Cached name for the 'set_center_y' method. + + + + + Cached name for the 'get_center_y' method. + + + + + Cached name for the 'set_center_z' method. + + + + + Cached name for the 'get_center_z' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_used_cells_by_item' method. + + + + + Cached name for the 'get_meshes' method. + + + + + Cached name for the 'get_bake_meshes' method. + + + + + Cached name for the 'get_bake_mesh_instance' method. + + + + + Cached name for the 'clear_baked_meshes' method. + + + + + Cached name for the 'make_baked_meshes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'cell_size_changed' signal. + + + + + Cached name for the 'changed' signal. + + + + + A physics joint that restricts the movement of two 2D physics bodies to a fixed axis. For example, a representing a piston base can be attached to a representing the piston head, moving up and down. + + + + + The groove's length. The groove is from the joint's origin towards along the joint's local Y axis. + + + + + The body B's initial anchor position defined by the joint's origin and a local offset along the joint's Y axis (along the groove). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'initial_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_initial_offset' method. + + + + + Cached name for the 'get_initial_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of that can only arrange its child controls horizontally. Child controls are rearranged automatically when their minimum size changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The HMACContext class is useful for advanced HMAC use cases, such as streaming the message as it supports creating the message over time rather than providing it all at once. + + using Godot; + using System.Diagnostics; + + public partial class MyNode : Node + { + private HmacContext _ctx = new HmacContext(); + + public override void _Ready() + { + byte[] key = "supersecret".ToUtf8Buffer(); + Error err = _ctx.Start(HashingContext.HashType.Sha256, key); + Debug.Assert(err == Error.Ok); + byte[] msg1 = "this is ".ToUtf8Buffer(); + byte[] msg2 = "super duper secret".ToUtf8Buffer(); + err = _ctx.Update(msg1); + Debug.Assert(err == Error.Ok); + err = _ctx.Update(msg2); + Debug.Assert(err == Error.Ok); + byte[] hmac = _ctx.Finish(); + GD.Print(hmac.HexEncode()); + } + } + + + + + + Initializes the HMACContext. This method cannot be called again on the same HMACContext until has been called. + + + + + Initializes the HMACContext. This method cannot be called again on the same HMACContext until has been called. + + + + + Updates the message to be HMACed. This can be called multiple times before is called to append to the message, but cannot be called until has been called. + + + + + Updates the message to be HMACed. This can be called multiple times before is called to append to the message, but cannot be called until has been called. + + + + + Returns the resulting HMAC. If the HMAC failed, an empty [] is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'finish' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal scrollbar, typically used to navigate through content that extends beyond the visible width of a control. It is a -based control and goes from left (min) to right (max). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal separator used for separating other controls that are arranged vertically. is purely visual and normally drawn as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal slider, used to adjust a value by moving a grabber along a horizontal axis. It is a -based control and goes from left (min) to right (max). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 node for a higher-level alternative. + Note: This client only needs to connect to a host once (see ) 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 for a full example and to get started. + A should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports Transport Layer Security (TLS), including server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side. + For more information on HTTP, see MDN's documentation on HTTP (or read RFC 2616 to get it straight from the source). + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead. + Note: When performing HTTP requests from a project exported to Web, keep in mind the remote server may not allow requests from foreign origins due to CORS. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the Access-Control-Allow-Origin: * HTTP header. + Note: TLS support is currently limited to TLSv1.2 and TLSv1.3. Attempting to connect to a server that only supports older (insecure) TLS versions will return an error. + Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period. + + + + + HTTP GET method. The GET method requests a representation of the specified resource. Requests using GET should only retrieve data. + + + + + 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. + + + + + 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. + + + + + 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). + + + + + HTTP DELETE method. The DELETE method requests to delete the specified resource. + + + + + HTTP OPTIONS method. The OPTIONS method asks for a description of the communication options for the target resource. Rarely used. + + + + + 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. + + + + + HTTP CONNECT method. The CONNECT method establishes a tunnel to the server identified by the target resource. Rarely used. + + + + + HTTP PATCH method. The PATCH method is used to apply partial modifications to a resource. + + + + + Represents the size of the enum. + + + + + Status: Disconnected from the server. + + + + + Status: Currently resolving the hostname for the given URL into an IP. + + + + + Status: DNS failure: Can't resolve the hostname for the given URL. + + + + + Status: Currently connecting to server. + + + + + Status: Can't connect to the server. + + + + + Status: Connection established. + + + + + Status: Currently sending request. + + + + + Status: HTTP body received. + + + + + Status: Error in HTTP connection. + + + + + Status: Error in TLS handshake. + + + + + HTTP status code 100 Continue. 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). + + + + + HTTP status code 101 Switching Protocol. Sent in response to an Upgrade request header by the client. Indicates the protocol the server is switching to. + + + + + HTTP status code 102 Processing (WebDAV). Indicates that the server has received and is processing the request, but no response is available yet. + + + + + HTTP status code 200 OK. The request has succeeded. Default response for successful requests. Meaning varies depending on the request: + - : The resource has been fetched and is transmitted in the message body. + - : The entity headers are in the message body. + - : The resource describing the result of the action is transmitted in the message body. + - : The message body contains the request message as received by the server. + + + + + HTTP status code 201 Created. 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. + + + + + HTTP status code 202 Accepted. 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. + + + + + HTTP status code 203 Non-Authoritative Information. 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. + + + + + HTTP status code 204 No Content. 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. + + + + + HTTP status code 205 Reset Content. 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. + + + + + HTTP status code 206 Partial Content. This response code is used because of a range header sent by the client to separate download into multiple streams. + + + + + HTTP status code 207 Multi-Status (WebDAV). A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate. + + + + + HTTP status code 208 Already Reported (WebDAV). Used inside a DAV: propstat response element to avoid enumerating the internal members of multiple bindings to the same collection repeatedly. + + + + + HTTP status code 226 IM Used (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. + + + + + HTTP status code 300 Multiple Choice. 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. + + + + + HTTP status code 301 Moved Permanently. Redirection. This response code means the URI of requested resource has been changed. The new URI is usually included in the response. + + + + + HTTP status code 302 Found. 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. + + + + + HTTP status code 303 See Other. 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. + + + + + HTTP status code 304 Not Modified. 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 . + + + + + HTTP status code 305 Use Proxy. + + + + + HTTP status code 306 Switch Proxy. + + + + + HTTP status code 307 Temporary Redirect. 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. + + + + + HTTP status code 308 Permanent Redirect. 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. + + + + + HTTP status code 400 Bad Request. 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). + + + + + HTTP status code 401 Unauthorized. Credentials required. The request has not been applied because it lacks valid authentication credentials for the target resource. + + + + + HTTP status code 402 Payment Required. 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. + + + + + HTTP status code 403 Forbidden. The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server. + + + + + HTTP status code 404 Not Found. 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. + + + + + HTTP status code 405 Method Not Allowed. 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. + + + + + HTTP status code 406 Not Acceptable. 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. + + + + + HTTP status code 407 Proxy Authentication Required. Similar to 401 Unauthorized, but it indicates that the client needs to authenticate itself in order to use a proxy. + + + + + HTTP status code 408 Request Timeout. The server did not receive a complete request message within the time that it was prepared to wait. + + + + + HTTP status code 409 Conflict. 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. + + + + + HTTP status code 410 Gone. The target resource is no longer available at the origin server and this condition is likely permanent. + + + + + HTTP status code 411 Length Required. The server refuses to accept the request without a defined Content-Length header. + + + + + HTTP status code 412 Precondition Failed. One or more conditions given in the request header fields evaluated to when tested on the server. + + + + + HTTP status code 413 Entity Too Large. The server is refusing to process a request because the request payload is larger than the server is willing or able to process. + + + + + HTTP status code 414 Request-URI Too Long. The server is refusing to service the request because the request-target is longer than the server is willing to interpret. + + + + + HTTP status code 415 Unsupported Media Type. 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. + + + + + HTTP status code 416 Requested Range Not Satisfiable. 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. + + + + + HTTP status code 417 Expectation Failed. The expectation given in the request's Expect header field could not be met by at least one of the inbound servers. + + + + + HTTP status code 418 I'm A Teapot. 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. + + + + + HTTP status code 421 Misdirected Request. 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. + + + + + HTTP status code 422 Unprocessable Entity (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. + + + + + HTTP status code 423 Locked (WebDAV). The source or destination resource of a method is locked. + + + + + HTTP status code 424 Failed Dependency (WebDAV). The method could not be performed on the resource because the requested action depended on another action and that action failed. + + + + + HTTP status code 426 Upgrade Required. 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. + + + + + HTTP status code 428 Precondition Required. The origin server requires the request to be conditional. + + + + + HTTP status code 429 Too Many Requests. 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. + + + + + HTTP status code 431 Request Header Fields Too Large. 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. + + + + + HTTP status code 451 Response Unavailable For Legal Reasons. The server is denying access to the resource as a consequence of a legal demand. + + + + + HTTP status code 500 Internal Server Error. The server encountered an unexpected condition that prevented it from fulfilling the request. + + + + + HTTP status code 501 Not Implemented. The server does not support the functionality required to fulfill the request. + + + + + HTTP status code 502 Bad Gateway. 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. + + + + + HTTP status code 503 Service Unavailable. 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. + + + + + HTTP status code 504 Gateway Timeout. 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. + + + + + HTTP status code 505 HTTP Version Not Supported. The server does not support, or refuses to support, the major version of HTTP that was used in the request message. + + + + + HTTP status code 506 Variant Also Negotiates. 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. + + + + + HTTP status code 507 Insufficient Storage. The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. + + + + + HTTP status code 508 Loop Detected. 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. + + + + + HTTP status code 510 Not Extended. 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. + + + + + HTTP status code 511 Network Authentication Required. The client needs to authenticate to gain network access. + + + + + If , execution will block until all data is read from the response. + + + + + The connection to use for this client. + + + + + The size of the buffer used and maximum bytes to read per iteration. See . + + + + + Connects to a host. This needs to be done before any requests are sent. + If no is specified (or -1 is used), it is automatically set to 80 for HTTP and 443 for HTTPS. You can pass the optional parameter to customize the trusted certification authorities, or the common name verification when using HTTPS. See and . + + + + + Sends a raw request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + Sends the body data raw, as a byte array and does not encode it in any way. + + + + + Sends a raw request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + Sends the body data raw, as a byte array and does not encode it in any way. + + + + + Sends a request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + To create a POST request with query strings to push to the server, do: + + var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; + string queryString = new HttpClient().QueryStringFromDict(fields); + string[] headers = { "Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}" }; + var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString); + + Note: The parameter is ignored if is . This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See String.uri_encode for an example. + + + + + Sends a request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + To create a POST request with query strings to push to the server, do: + + var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; + string queryString = new HttpClient().QueryStringFromDict(fields); + string[] headers = { "Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}" }; + var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString); + + Note: The parameter is ignored if is . This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See String.uri_encode for an example. + + + + + Closes the current connection, allowing reuse of this . + + + + + If , this has a response available. + + + + + If , this has a response that is chunked. + + + + + Returns the response's HTTP status code. + + + + + Returns the response headers. + + + + + Returns all response headers as a . Each entry is composed by the header name, and a containing the values separated by "; ". The casing is kept the same as the headers were received. + + { + "content-length": 12, + "Content-Type": "application/json; charset=UTF-8", + } + + + + + + Returns the response's body length. + Note: Some Web servers may not send a body length. In this case, the value returned will be -1. If using chunked transfer encoding, the body length will also be -1. + Note: This function always returns -1 on the Web platform due to browsers limitations. + + + + + Reads one chunk from the response. + + + + + Returns a constant. Need to call in order to get status updates. + + + + + This needs to be called in order to have any request processed. Check results with . + + + + + Sets the proxy server for HTTP requests. + The proxy server is unset if is empty or is -1. + + + + + Sets the proxy server for HTTPS requests. + The proxy server is unset if is empty or is -1. + + + + + Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.: + + var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; + string queryString = httpClient.QueryStringFromDict(fields); + // Returns "username=user&password=pass" + + Furthermore, if a key has a value, only the key itself is added, without equal sign and value. If the value is an array, for each value in it a pair with the same key is added. + + var fields = new Godot.Collections.Dictionary + { + { "single", 123 }, + { "notValued", default }, + { "multiple", new Godot.Collections.Array { 22, 33, 44 } }, + }; + string queryString = httpClient.QueryStringFromDict(fields); + // Returns "single=123&not_valued&multiple=22&multiple=33&multiple=44" + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'blocking_mode_enabled' property. + + + + + Cached name for the 'connection' property. + + + + + Cached name for the 'read_chunk_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'set_connection' method. + + + + + Cached name for the 'get_connection' method. + + + + + Cached name for the 'request_raw' method. + + + + + Cached name for the 'request' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'has_response' method. + + + + + Cached name for the 'is_response_chunked' method. + + + + + Cached name for the 'get_response_code' method. + + + + + Cached name for the 'get_response_headers' method. + + + + + Cached name for the 'get_response_headers_as_dictionary' method. + + + + + Cached name for the 'get_response_body_length' method. + + + + + Cached name for the 'read_response_body_chunk' method. + + + + + Cached name for the 'set_read_chunk_size' method. + + + + + Cached name for the 'get_read_chunk_size' method. + + + + + Cached name for the 'set_blocking_mode' method. + + + + + Cached name for the 'is_blocking_mode_enabled' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'set_http_proxy' method. + + + + + Cached name for the 'set_https_proxy' method. + + + + + Cached name for the 'query_string_from_dict' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node with the ability to send HTTP requests. Uses internally. + Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP. + Warning: See the notes and warnings on for limitations, especially regarding TLS security. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + Example: Contact a REST API and print one of its returned fields: + + public override void _Ready() + { + // Create an HTTP request node and connect its completion signal. + var httpRequest = new HttpRequest(); + AddChild(httpRequest); + httpRequest.RequestCompleted += HttpRequestCompleted; + + // Perform a GET request. The URL below returns JSON as of writing. + Error error = httpRequest.Request("https://httpbin.org/get"); + if (error != Error.Ok) + { + GD.PushError("An error occurred in the HTTP request."); + } + + // Perform a POST request. The URL below returns JSON as of writing. + // Note: Don't make simultaneous requests using a single HTTPRequest node. + // The snippet below is provided for reference only. + string body = new Json().Stringify(new Godot.Collections.Dictionary + { + { "name", "Godette" } + }); + error = httpRequest.Request("https://httpbin.org/post", null, HttpClient.Method.Post, body); + if (error != Error.Ok) + { + GD.PushError("An error occurred in the HTTP request."); + } + } + + // Called when the HTTP request is completed. + private void HttpRequestCompleted(long result, long responseCode, string[] headers, byte[] body) + { + var json = new Json(); + json.Parse(body.GetStringFromUtf8()); + var response = json.GetData().AsGodotDictionary(); + + // Will print the user agent string used by the HTTPRequest node (as recognized by httpbin.org). + GD.Print((response["headers"].AsGodotDictionary())["User-Agent"]); + } + + Example: Load an image using and display it: + + 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; + } + + Note: nodes will automatically handle decompression of response bodies. A Accept-Encoding header will be automatically added to each of your requests, unless one is already specified. Any response with a Content-Encoding: gzip header will automatically be decompressed and delivered to you as uncompressed bytes. + + + + + Request successful. + + + + + Request failed due to a mismatch between the expected and actual chunked body size during transfer. Possible causes include network errors, server misconfiguration, or issues with chunked encoding. + + + + + Request failed while connecting. + + + + + Request failed while resolving. + + + + + Request failed due to connection (read/write) error. + + + + + Request failed on TLS handshake. + + + + + Request does not have a response (yet). + + + + + Request exceeded its maximum size limit, see . + + + + + Request failed due to an error while decompressing the response body. Possible causes include unsupported or incorrect compression format, corrupted data, or incomplete transfer. + + + + + Request failed (currently unused). + + + + + HTTPRequest couldn't open the download file. + + + + + HTTPRequest couldn't write to the download file. + + + + + Request reached its maximum redirect limit, see . + + + + + Request failed due to a timeout. If you expect requests to take a long time, try increasing the value of or setting it to 0.0 to remove the timeout completely. + + + + + The file to download into. Will output any received file into it. + + + + + The size of the buffer used and maximum bytes to read per iteration. See . + Set this to a lower value (e.g. 4096 for 4 KiB) when downloading small files to decrease memory usage at the cost of download speeds. + + + + + If , multithreading is used to improve performance. + + + + + If , this header will be added to each request: Accept-Encoding: gzip, deflate telling servers that it's okay to compress response bodies. + Any Response body declaring a Content-Encoding of either gzip or deflate will then be automatically decompressed, and the uncompressed bytes will be delivered via . + If the user has specified their own Accept-Encoding header, then no header will be added regardless of . + If no header will be added, and no decompression will be performed on response bodies. The raw bytes of the response body will be returned via . + + + + + Maximum allowed size for response bodies. If the response body is compressed, this will be used as the maximum allowed size for the decompressed body. + + + + + Maximum number of allowed redirects. + + + + + The duration to wait in seconds before a request times out. If is set to 0.0 then the request will never time out. For simple requests, such as communication with a REST API, it is recommended that is set to a value suitable for the server response time (e.g. between 1.0 and 10.0). This will help prevent unwanted timeouts caused by variation in server response times while still allowing the application to detect when a request has timed out. For larger requests such as file downloads it is suggested the be set to 0.0, disabling the timeout functionality. This will help to prevent large transfers from failing due to exceeding the timeout value. + + + + + Creates request on the underlying . If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + Note: When is , the payload sent via might be ignored by the server or even cause the server to reject the request (check RFC 7231 section 4.3.1 for more details). As a workaround, you can send data as a query string in the URL (see String.uri_encode for an example). + Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Creates request on the underlying . If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + Note: When is , the payload sent via might be ignored by the server or even cause the server to reject the request (check RFC 7231 section 4.3.1 for more details). As a workaround, you can send data as a query string in the URL (see String.uri_encode for an example). + Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead. + + + + + Creates request on the underlying using a raw array of bytes for the request body. If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + + If the parameter is null, then the default value is Array.Empty<string>(). + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates request on the underlying using a raw array of bytes for the request body. If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + + + + + Cancels the current request. + + + + + Sets the to be used when connecting to an HTTPS server. See . + + + + + Returns the current status of the underlying . See . + + + + + Returns the number of bytes this HTTPRequest downloaded. + + + + + Returns the response body length. + Note: Some Web servers may not send a body length. In this case, the value returned will be -1. If using chunked transfer encoding, the body length will also be -1. + + + + + Sets the proxy server for HTTP requests. + The proxy server is unset if is empty or is -1. + + + + + Sets the proxy server for HTTPS requests. + The proxy server is unset if is empty or is -1. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a request is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'download_file' property. + + + + + Cached name for the 'download_chunk_size' property. + + + + + Cached name for the 'use_threads' property. + + + + + Cached name for the 'accept_gzip' property. + + + + + Cached name for the 'body_size_limit' property. + + + + + Cached name for the 'max_redirects' property. + + + + + Cached name for the 'timeout' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'request' method. + + + + + Cached name for the 'request_raw' method. + + + + + Cached name for the 'cancel_request' method. + + + + + Cached name for the 'set_tls_options' method. + + + + + Cached name for the 'get_http_client_status' method. + + + + + Cached name for the 'set_use_threads' method. + + + + + Cached name for the 'is_using_threads' method. + + + + + Cached name for the 'set_accept_gzip' method. + + + + + Cached name for the 'is_accepting_gzip' method. + + + + + Cached name for the 'set_body_size_limit' method. + + + + + Cached name for the 'get_body_size_limit' method. + + + + + Cached name for the 'set_max_redirects' method. + + + + + Cached name for the 'get_max_redirects' method. + + + + + Cached name for the 'set_download_file' method. + + + + + Cached name for the 'get_download_file' method. + + + + + Cached name for the 'get_downloaded_bytes' method. + + + + + Cached name for the 'get_body_size' method. + + + + + Cached name for the 'set_timeout' method. + + + + + Cached name for the 'get_timeout' method. + + + + + Cached name for the 'set_download_chunk_size' method. + + + + + Cached name for the 'get_download_chunk_size' method. + + + + + Cached name for the 'set_http_proxy' method. + + + + + Cached name for the 'set_https_proxy' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'request_completed' signal. + + + + + 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 shows the supported hashing algorithms. + + public const int ChunkSize = 1024; + + public void HashFile(string path) + { + // Check that file exists. + if (!FileAccess.FileExists(path)) + { + return; + } + // Start an 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.GetPosition() < file.GetLength()) + { + int remaining = (int)(file.GetLength() - file.GetPosition()); + ctx.Update(file.GetBuffer(Mathf.Min(remaining, ChunkSize))); + } + // Get the computed hash. + byte[] res = ctx.Finish(); + // Print the result as hex string and array. + GD.PrintT(res.HexEncode(), (Variant)res); + } + + + + + + Hashing algorithm: MD5. + + + + + Hashing algorithm: SHA-1. + + + + + Hashing algorithm: SHA-256. + + + + + Starts a new hash computation of the given (e.g. to start computation of an SHA-256). + + + + + Updates the computation with the given of data. + + + + + Updates the computation with the given of data. + + + + + Closes the current context, and return the computed hash. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'finish' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D heightmap shape, intended for use in physics. Usually used to provide a shape for a . This is useful for terrain, but it is limited as overhangs (such as caves) cannot be stored. Holes in a are created by assigning very low values to points in the desired area. + Performance: is faster to check collisions against than , but it is significantly slower than primitive shapes like . + A heightmap collision shape can also be build by using an reference: + + + + + + Number of vertices in the width of the height map. Changing this will resize the . + + + + + Number of vertices in the depth of the height map. Changing this will resize the . + + + + + Height map data. The array's size must be equal to multiplied by . + + + + + Returns the smallest height value found in . Recalculates only when changes. + + + + + Returns the largest height value found in . Recalculates only when changes. + + + + + Updates with data read from an reference. Automatically resizes heightmap and to fit the full image width and height. + The image needs to be in either (32 bit), (16 bit), or (8 bit). + Each image pixel is read in as a float on the range from 0.0 (black pixel) to 1.0 (white pixel). This range value gets remapped to and to form the final height value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'map_width' property. + + + + + Cached name for the 'map_depth' property. + + + + + Cached name for the 'map_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_map_width' method. + + + + + Cached name for the 'get_map_width' method. + + + + + Cached name for the 'set_map_depth' method. + + + + + Cached name for the 'get_map_depth' method. + + + + + Cached name for the 'set_map_data' method. + + + + + Cached name for the 'get_map_data' method. + + + + + Cached name for the 'get_min_height' method. + + + + + Cached name for the 'get_max_height' method. + + + + + Cached name for the 'update_map_data_from_image' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 representing a door hinge that a rotates around. + + + + + The speed with which the two bodies get pulled together when they move in different directions. + + + + + The maximum rotation. Only active if angular_limit/enable is . + + + + + The minimum rotation. Only active if angular_limit/enable is . + + + + + The speed with which the rotation across the axis perpendicular to the hinge gets corrected. + + + + + The lower this value, the more the rotation gets slowed down. + + + + + Target speed for the motor. + + + + + Maximum acceleration for the motor. + + + + + Represents the size of the enum. + + + + + If , the hinges maximum and minimum rotation, defined by angular_limit/lower and angular_limit/upper has effects. + + + + + When activated, a motor turns the hinge. + + + + + Represents the size of the enum. + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + If , enables the specified flag. + + + + + Returns the value of the specified flag. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached name for the 'set_flag' method. + + + + + Cached name for the 'get_flag' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see and ). IP provides DNS hostname resolution support, both blocking and threaded. + + + + + Maximum number of concurrent DNS resolver queries allowed, is returned if exceeded. + + + + + Invalid ID constant. Returned if is exceeded. + + + + + DNS hostname resolver status: No status. + + + + + DNS hostname resolver status: Waiting. + + + + + DNS hostname resolver status: Done. + + + + + DNS hostname resolver status: Error. + + + + + Address type: None. + + + + + Address type: Internet protocol version 4 (IPv4). + + + + + Address type: Internet protocol version 6 (IPv6). + + + + + Address type: Any. + + + + + Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the constant given as . + + + + + Resolves a given hostname in a blocking way. Addresses are returned as an of IPv4 or IPv6 addresses depending on . + + + + + Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the constant given as . Returns the queue ID if successful, or on error. + + + + + Returns a queued hostname's status as a constant, given its queue . + + + + + Returns a queued hostname's IP address, given its queue . Returns an empty string on error or if resolution hasn't happened yet (see ). + + + + + Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see ). + + + + + Removes a given item from the queue. This should be used to free a queue after it has completed to enable more queries to happen. + + + + + Returns all the user's current IPv4 and IPv6 addresses as an array. + + + + + Returns all network adapters as an array. + Each adapter is a dictionary of the form: + + { + "index": "1", # Interface index. + "name": "eth0", # Interface name. + "friendly": "Ethernet One", # A friendly name (might be empty). + "addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface. + } + + + + + + Removes all of a 's cached references. If no is given, all cached IP addresses are removed. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resolve_hostname' method. + + + + + Cached name for the 'resolve_hostname_addresses' method. + + + + + Cached name for the 'resolve_hostname_queue_item' method. + + + + + Cached name for the 'get_resolve_item_status' method. + + + + + Cached name for the 'get_resolve_item_address' method. + + + + + Cached name for the 'get_resolve_item_addresses' method. + + + + + Cached name for the 'erase_resolve_item' method. + + + + + Cached name for the 'get_local_addresses' method. + + + + + Cached name for the 'get_local_interfaces' method. + + + + + Cached name for the 'clear_cache' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see and ). IP provides DNS hostname resolution support, both blocking and threaded. + + + + + Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the constant given as . + + + + + Resolves a given hostname in a blocking way. Addresses are returned as an of IPv4 or IPv6 addresses depending on . + + + + + Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the constant given as . Returns the queue ID if successful, or on error. + + + + + Returns a queued hostname's status as a constant, given its queue . + + + + + Returns a queued hostname's IP address, given its queue . Returns an empty string on error or if resolution hasn't happened yet (see ). + + + + + Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see ). + + + + + Removes a given item from the queue. This should be used to free a queue after it has completed to enable more queries to happen. + + + + + Returns all the user's current IPv4 and IPv6 addresses as an array. + + + + + Returns all network adapters as an array. + Each adapter is a dictionary of the form: + + { + "index": "1", # Interface index. + "name": "eth0", # Interface name. + "friendly": "Ethernet One", # A friendly name (might be empty). + "addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface. + } + + + + + + Removes all of a 's cached references. If no is given, all cached IP addresses are removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resolve_hostname' method. + + + + + Cached name for the 'resolve_hostname_addresses' method. + + + + + Cached name for the 'resolve_hostname_queue_item' method. + + + + + Cached name for the 'get_resolve_item_status' method. + + + + + Cached name for the 'get_resolve_item_address' method. + + + + + Cached name for the 'get_resolve_item_addresses' method. + + + + + Cached name for the 'erase_resolve_item' method. + + + + + Cached name for the 'get_local_addresses' method. + + + + + Cached name for the 'get_local_interfaces' method. + + + + + Cached name for the 'clear_cache' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Native image datatype. Contains image data which can be converted to an and provides commonly used image processing methods. The maximum width and height for an are and . + An cannot be assigned to a texture property of an object directly (such as ), and has to be converted manually to an first. + Note: The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import. + + + + + The maximal width allowed for resources. + + + + + The maximal height allowed for resources. + + + + + Texture format with a single 8-bit depth representing luminance. + + + + + OpenGL texture format with two values, luminance and alpha each stored with 8 bits. + + + + + OpenGL texture format RED with a single component and a bitdepth of 8. + + + + + OpenGL texture format RG with two components and a bitdepth of 8 for each. + + + + + OpenGL texture format RGB with three components, each with a bitdepth of 8. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + OpenGL texture format RGBA with four components, each with a bitdepth of 8. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + OpenGL texture format RGBA with four components, each with a bitdepth of 4. + + + + + OpenGL texture format RGB with three components. Red and blue have a bitdepth of 5, and green has a bitdepth of 6. + + + + + OpenGL texture format GL_R32F where there's one component, a 32-bit floating-point value. + + + + + OpenGL texture format GL_RG32F where there are two components, each a 32-bit floating-point values. + + + + + OpenGL texture format GL_RGB32F where there are three components, each a 32-bit floating-point values. + + + + + OpenGL texture format GL_RGBA32F where there are four components, each a 32-bit floating-point values. + + + + + OpenGL texture format GL_R16F where there's one component, a 16-bit "half-precision" floating-point value. + + + + + OpenGL texture format GL_RG16F where there are two components, each a 16-bit "half-precision" floating-point value. + + + + + OpenGL texture format GL_RGB16F where there are three components, each a 16-bit "half-precision" floating-point value. + + + + + OpenGL texture format GL_RGBA16F where there are four components, each a 16-bit "half-precision" floating-point value. + + + + + A special OpenGL texture format where the three color components have 9 bits of precision and all three share a single 5-bit exponent. + + + + + The S3TC 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. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + The S3TC 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. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + The S3TC 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. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Texture format that uses Red Green Texture Compression, normalizing the red channel data using the same compression algorithm that DXT5 uses for the alpha channel. + + + + + Texture format that uses Red Green Texture Compression, normalizing the red and green channel data using the same compression algorithm that DXT5 uses for the alpha channel. + + + + + Texture format that uses BPTC compression with unsigned normalized RGBA components. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Texture format that uses BPTC compression with signed floating-point RGB components. + + + + + Texture format that uses BPTC compression with unsigned floating-point RGB components. + + + + + Ericsson Texture Compression format 1, also referred to as "ETC1", and is part of the OpenGL ES graphics standard. This format cannot store an alpha channel. + + + + + Ericsson Texture Compression format 2 (R11_EAC variant), which provides one channel of unsigned data. + + + + + Ericsson Texture Compression format 2 (SIGNED_R11_EAC variant), which provides one channel of signed data. + + + + + Ericsson Texture Compression format 2 (RG11_EAC variant), which provides two channels of unsigned data. + + + + + Ericsson Texture Compression format 2 (SIGNED_RG11_EAC variant), which provides two channels of signed data. + + + + + Ericsson Texture Compression format 2 (RGB8 variant), which is a follow-up of ETC1 and compresses RGB888 data. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Ericsson Texture Compression format 2 (RGBA8variant), which compresses RGBA8888 data with full alpha support. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Ericsson Texture Compression format 2 (RGB8_PUNCHTHROUGH_ALPHA1 variant), which compresses RGBA data to make alpha either fully transparent or fully opaque. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Ericsson Texture Compression format 2 (RGBA8 variant), which compresses RA data and interprets it as two channels (red and green). See also . + + + + + The S3TC 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 . + + + + + Adaptive Scalable Texture Compression. This implements the 4×4 (high quality) mode. + + + + + Same format as , but with the hint to let the GPU know it is used for HDR. + + + + + Adaptive Scalable Texture Compression. This implements the 8×8 (low quality) mode. + + + + + Same format as , but with the hint to let the GPU know it is used for HDR. + + + + + Represents the size of the enum. + + + + + Performs nearest-neighbor interpolation. If the image is resized, it will be pixelated. + + + + + Performs bilinear interpolation. If the image is resized, it will be blurry. This mode is faster than , but it results in lower quality. + + + + + Performs cubic interpolation. If the image is resized, it will be blurry. This mode often gives better results compared to , at the cost of being slower. + + + + + Performs bilinear separately on the two most-suited mipmap levels, then linearly interpolates between them. + It's slower than , 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. + Note: If you intend to scale multiple copies of the original image, it's better to call ] 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. + + + + + Performs Lanczos interpolation. This is the slowest image resizing mode, but it typically gives the best results, especially when downscaling images. + + + + + Image does not have alpha. + + + + + Image stores alpha in a single bit. + + + + + Image uses alpha. + + + + + Use S3TC compression. + + + + + Use ETC compression. + + + + + Use ETC2 compression. + + + + + Use BPTC compression. + + + + + Use ASTC compression. + + + + + Represents the size of the enum. + + + + + The image only uses one channel for luminance (grayscale). + + + + + The image uses two channels for luminance and alpha, respectively. + + + + + The image only uses the red channel. + + + + + The image uses two channels for red and green. + + + + + The image uses three channels for red, green, and blue. + + + + + The image uses four channels for red, green, blue, and alpha. + + + + + Source texture (before compression) is a regular texture. Default for all textures. + + + + + Source texture (before compression) is in sRGB space. + + + + + Source texture (before compression) is a normal texture (e.g. it can be compressed into two channels). + + + + + Hint to indicate that the high quality 4×4 ASTC compression format should be used. + + + + + Hint to indicate that the low quality 8×8 ASTC compression format should be used. + + + + + Holds all the image's color data in a given format. See constants. + + + + + Returns the image's width. + + + + + Returns the image's height. + + + + + Returns the image's size (width and height). + + + + + Returns if the image has generated mipmaps. + + + + + Returns the image's format. See constants. + + + + + Returns a copy of the image's raw data. + + + + + Returns size (in bytes) of the image's raw data. + + + + + Converts the image's format. See constants. + + + + + Returns the number of mipmap levels or 0 if the image has no mipmaps. The largest main level image is not counted as a mipmap level by this method, so if you want to include it you can add 1 to this count. + + + + + Returns the offset where the image's mipmap with index is stored in the dictionary. + + + + + Resizes the image to the nearest power of 2 for the width and height. If is then set width and height to be the same. New pixels are calculated using the mode defined via constants. + + + + + Resizes the image to the given and . New pixels are calculated using the mode defined via constants. + + + + + Shrinks the image by a factor of 2 on each axis (this divides the pixel count by 4). + + + + + Crops the image to the given and . If the specified size is larger than the current size, the extra area is filled with black pixels. + + + + + Flips the image horizontally. + + + + + Flips the image vertically. + + + + + Generates mipmaps for the image. Mipmaps are precalculated lower-resolution copies of the image that are automatically used if the image needs to be scaled down when rendered. They help improve image quality and performance when rendering. This method returns an error if the image is compressed, in a custom format, or if the image's width/height is 0. Enabling when generating mipmaps for normal map textures will make sure all resulting vector values are normalized. + It is possible to check if the image has mipmaps by calling or . Calling on an image that already has mipmaps will replace existing mipmaps in the image. + + + + + Removes the image's mipmaps. + + + + + Creates an empty image of given size and format. See constants. If is , then generate mipmaps for this image. See the . + + + + + Creates an empty image of given size and format. See constants. If is , then generate mipmaps for this image. See the . + + + + + Creates a new image of given size and format. See constants. Fills the image with the given raw data. If is then loads mipmaps for this image from . See . + + + + + Creates a new image of given size and format. See constants. Fills the image with the given raw data. If is then loads mipmaps for this image from . See . + + + + + Overwrites data of an existing . Non-static equivalent of . + + + + + Overwrites data of an existing . Non-static equivalent of . + + + + + Returns if the image has no data. + + + + + Loads an image from file . See Supported image formats for a list of supported image formats and limitations. + Warning: This method should only be used in the editor or in cases when you need to load external images at run-time, such as images located at the user:// directory, and may not work in exported projects. + See also description for usage examples. + + + + + Creates a new and loads data from the specified file. + + + + + Saves the image as a PNG file to the file at . + + + + + Saves the image as a PNG file to a byte array. + + + + + Saves the image as a JPEG file to with the specified between 0.01 and 1.0 (inclusive). Higher values result in better-looking output at the cost of larger file sizes. Recommended values are between 0.75 and 0.90. Even at quality 1.00, JPEG compression remains lossy. + Note: JPEG does not save an alpha channel. If the contains an alpha channel, the image will still be saved, but the resulting JPEG file won't contain the alpha channel. + + + + + Saves the image as a JPEG file to a byte array with the specified between 0.01 and 1.0 (inclusive). Higher values result in better-looking output at the cost of larger byte array sizes (and therefore memory usage). Recommended values are between 0.75 and 0.90. Even at quality 1.00, JPEG compression remains lossy. + Note: JPEG does not save an alpha channel. If the contains an alpha channel, the image will still be saved, but the resulting byte array won't contain the alpha channel. + + + + + Saves the image as an EXR file to . If is and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return if Godot was compiled without the TinyEXR module. + Note: The TinyEXR module is disabled in non-editor builds, which means will return when it is called from an exported project. + + + + + Saves the image as an EXR file to a byte array. If is and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return an empty byte array if Godot was compiled without the TinyEXR module. + Note: The TinyEXR module is disabled in non-editor builds, which means will return an empty byte array when it is called from an exported project. + + + + + Saves the image as a WebP (Web Picture) file to the file at . By default it will save lossless. If is , the image will be saved lossy, using the setting between 0.0 and 1.0 (inclusive). Lossless WebP offers more efficient compression than PNG. + Note: The WebP format is limited to a size of 16383×16383 pixels, while PNG can save larger images. + + + + + Saves the image as a WebP (Web Picture) file to a byte array. By default it will save lossless. If is , the image will be saved lossy, using the setting between 0.0 and 1.0 (inclusive). Lossless WebP offers more efficient compression than PNG. + Note: The WebP format is limited to a size of 16383×16383 pixels, while PNG can save larger images. + + + + + Returns if the image has data for alpha values. Returns if all the alpha values are stored in a single bit. Returns if no data for alpha values is found. + + + + + Returns if all the image's pixels have an alpha value of 0. Returns if any pixel has an alpha value higher than 0. + + + + + Returns the color channels used by this image, as one of the constants. If the image is compressed, the original must be specified. + + + + + Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. + The parameter helps to pick the best compression method for DXT and ETC2 formats. It is ignored for ASTC compression. + For ASTC compression, the parameter must be supplied. + + + + + Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. + This is an alternative to that lets the user supply the channels used in order for the compressor to pick the best DXT and ETC2 formats. For other formats (non DXT or ETC2), this argument is ignored. + For ASTC compression, the parameter must be supplied. + + + + + Decompresses the image if it is VRAM compressed in a supported format. Returns if the format is supported, otherwise . + Note: The following formats can be decompressed: DXT, RGTC, BPTC. The formats ETC1 and ETC2 are not supported. + + + + + Returns if the image is compressed. + + + + + Rotates the image in the specified by 90 degrees. The width and height of the image must be greater than 1. If the width and height are not equal, the image will be resized. + + + + + Rotates the image by 180 degrees. The width and height of the image must be greater than 1. + + + + + Blends low-alpha pixels with nearby pixels. + + + + + Multiplies color values with alpha values. Resulting color values for a pixel are (color * alpha)/256. See also . + + + + + Converts the raw data from the sRGB colorspace to a linear scale. Only works on images with or formats. + + + + + Converts the entire image from the linear colorspace to the sRGB colorspace. Only works on images with or formats. + + + + + Converts the image's data to represent coordinates on a 3D plane. This is used when the image represents a normal map. A normal map can add lots of detail to a 3D surface without increasing the polygon count. + + + + + Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image. + + + + + Converts a bump map to a normal map. A bump map provides a height offset per-pixel, while a normal map provides a normal direction per pixel. + + + + + Compute image metrics on the current image and the compared image. + The dictionary contains max, mean, mean_squared, root_mean_squared and peak_snr. + + + + + Copies from image to this image at coordinates , clipped accordingly to both image bounds. This image and image must have the same format. with non-positive size is treated as empty. + Note: The alpha channel data in will overwrite the corresponding data in this image at the target position. To blend alpha channels, use instead. + + + + + Blits area from image to this image at the coordinates given by , clipped accordingly to both image bounds. pixel is copied onto if the corresponding pixel's alpha value is not 0. This image and image must have the same format. image and image must have the same size (width and height) but they can have different formats. with non-positive size is treated as empty. + + + + + Alpha-blends from image to this image at coordinates , clipped accordingly to both image bounds. This image and image must have the same format. with non-positive size is treated as empty. + + + + + Alpha-blends from image to this image using image at coordinates , clipped accordingly to both image bounds. Alpha channels are required for both and . pixels and pixels will blend if the corresponding mask pixel's alpha value is not 0. This image and image must have the same format. image and image must have the same size (width and height) but they can have different formats. with non-positive size is treated as empty. + + + + + Fills the image with . + + + + + Fills with . + + + + + Returns a enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible. + + + + + Returns a new that is a copy of this 's area specified with . + + + + + Copies image to this image. + + + + + Returns the color of the pixel at . + This is the same as , but with a argument instead of two integer arguments. + + + + + Returns the color of the pixel at (x, y). + This is the same as , but with two integer arguments instead of a argument. + + + + + Sets the of the pixel at to . + + int imgWidth = 10; + int imgHeight = 5; + var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8); + + img.SetPixelv(new Vector2I(1, 2), Colors.Red); // Sets the color at (1, 2) to red. + + This is the same as , but with a argument instead of two integer arguments. + + + + + Sets the of the pixel at (x, y) to . + + int imgWidth = 10; + int imgHeight = 5; + var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8); + + img.SetPixel(1, 2, Colors.Red); // Sets the color at (1, 2) to red. + + This is the same as , but with a two integer arguments instead of a argument. + + + + + Adjusts this image's , , and by the given values. Does not work if the image is compressed (see ). + + + + + Loads an image from the binary contents of a PNG file. + + + + + Loads an image from the binary contents of a PNG file. + + + + + Loads an image from the binary contents of a JPEG file. + + + + + Loads an image from the binary contents of a JPEG file. + + + + + Loads an image from the binary contents of a WebP file. + + + + + Loads an image from the binary contents of a WebP file. + + + + + Loads an image from the binary contents of a TGA file. + Note: This method is only available in engine builds with the TGA module enabled. By default, the TGA module is enabled, but it can be disabled at build-time using the module_tga_enabled=no SCons option. + + + + + Loads an image from the binary contents of a TGA file. + Note: This method is only available in engine builds with the TGA module enabled. By default, the TGA module is enabled, but it can be disabled at build-time using the module_tga_enabled=no SCons option. + + + + + Loads an image from the binary contents of a BMP file. + Note: Godot's BMP module doesn't support 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported. + Note: This method is only available in engine builds with the BMP module enabled. By default, the BMP module is enabled, but it can be disabled at build-time using the module_bmp_enabled=no SCons option. + + + + + Loads an image from the binary contents of a BMP file. + Note: Godot's BMP module doesn't support 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported. + Note: This method is only available in engine builds with the BMP module enabled. By default, the BMP module is enabled, but it can be disabled at build-time using the module_bmp_enabled=no SCons option. + + + + + Loads an image from the binary contents of a KTX file. Unlike most image formats, KTX can store VRAM-compressed data and embed mipmaps. + Note: Godot's libktx implementation only supports 2D images. Cubemaps, texture arrays, and de-padding are not supported. + Note: This method is only available in engine builds with the KTX module enabled. By default, the KTX module is enabled, but it can be disabled at build-time using the module_ktx_enabled=no SCons option. + + + + + Loads an image from the binary contents of a KTX file. Unlike most image formats, KTX can store VRAM-compressed data and embed mipmaps. + Note: Godot's libktx implementation only supports 2D images. Cubemaps, texture arrays, and de-padding are not supported. + Note: This method is only available in engine builds with the KTX module enabled. By default, the KTX module is enabled, but it can be disabled at build-time using the module_ktx_enabled=no SCons option. + + + + + Loads an image from the UTF-8 binary contents of an uncompressed SVG file (.svg). + Note: Beware when using compressed SVG files (like .svgz), they need to be decompressed before loading. + Note: This method is only available in engine builds with the SVG module enabled. By default, the SVG module is enabled, but it can be disabled at build-time using the module_svg_enabled=no SCons option. + + + + + Loads an image from the UTF-8 binary contents of an uncompressed SVG file (.svg). + Note: Beware when using compressed SVG files (like .svgz), they need to be decompressed before loading. + Note: This method is only available in engine builds with the SVG module enabled. By default, the SVG module is enabled, but it can be disabled at build-time using the module_svg_enabled=no SCons option. + + + + + Loads an image from the string contents of an SVG file (.svg). + Note: This method is only available in engine builds with the SVG module enabled. By default, the SVG module is enabled, but it can be disabled at build-time using the module_svg_enabled=no SCons option. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'has_mipmaps' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'get_data_size' method. + + + + + Cached name for the 'convert' method. + + + + + Cached name for the 'get_mipmap_count' method. + + + + + Cached name for the 'get_mipmap_offset' method. + + + + + Cached name for the 'resize_to_po2' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the 'shrink_x2' method. + + + + + Cached name for the 'crop' method. + + + + + Cached name for the 'flip_x' method. + + + + + Cached name for the 'flip_y' method. + + + + + Cached name for the 'generate_mipmaps' method. + + + + + Cached name for the 'clear_mipmaps' method. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'create_empty' method. + + + + + Cached name for the 'create_from_data' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'is_empty' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached name for the 'save_png' method. + + + + + Cached name for the 'save_png_to_buffer' method. + + + + + Cached name for the 'save_jpg' method. + + + + + Cached name for the 'save_jpg_to_buffer' method. + + + + + Cached name for the 'save_exr' method. + + + + + Cached name for the 'save_exr_to_buffer' method. + + + + + Cached name for the 'save_webp' method. + + + + + Cached name for the 'save_webp_to_buffer' method. + + + + + Cached name for the 'detect_alpha' method. + + + + + Cached name for the 'is_invisible' method. + + + + + Cached name for the 'detect_used_channels' method. + + + + + Cached name for the 'compress' method. + + + + + Cached name for the 'compress_from_channels' method. + + + + + Cached name for the 'decompress' method. + + + + + Cached name for the 'is_compressed' method. + + + + + Cached name for the 'rotate_90' method. + + + + + Cached name for the 'rotate_180' method. + + + + + Cached name for the 'fix_alpha_edges' method. + + + + + Cached name for the 'premultiply_alpha' method. + + + + + Cached name for the 'srgb_to_linear' method. + + + + + Cached name for the 'linear_to_srgb' method. + + + + + Cached name for the 'normal_map_to_xy' method. + + + + + Cached name for the 'rgbe_to_srgb' method. + + + + + Cached name for the 'bump_map_to_normal_map' method. + + + + + Cached name for the 'compute_image_metrics' method. + + + + + Cached name for the 'blit_rect' method. + + + + + Cached name for the 'blit_rect_mask' method. + + + + + Cached name for the 'blend_rect' method. + + + + + Cached name for the 'blend_rect_mask' method. + + + + + Cached name for the 'fill' method. + + + + + Cached name for the 'fill_rect' method. + + + + + Cached name for the 'get_used_rect' method. + + + + + Cached name for the 'get_region' method. + + + + + Cached name for the 'copy_from' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'get_pixelv' method. + + + + + Cached name for the 'get_pixel' method. + + + + + Cached name for the 'set_pixelv' method. + + + + + Cached name for the 'set_pixel' method. + + + + + Cached name for the 'adjust_bcs' method. + + + + + Cached name for the 'load_png_from_buffer' method. + + + + + Cached name for the 'load_jpg_from_buffer' method. + + + + + Cached name for the 'load_webp_from_buffer' method. + + + + + Cached name for the 'load_tga_from_buffer' method. + + + + + Cached name for the 'load_bmp_from_buffer' method. + + + + + Cached name for the 'load_ktx_from_buffer' method. + + + + + Cached name for the 'load_svg_from_buffer' method. + + + + + Cached name for the 'load_svg_from_string' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 to register that loader during the initialization phase. + + + + + 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. + + + + + Loads the content of into the provided . + + + + + Add this format loader to the engine, allowing it to recognize the file extensions returned by . + + + + + Remove this format loader from the engine. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_load_image' method. + + + + + Cached name for the 'add_format_loader' method. + + + + + Cached name for the 'remove_format_loader' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A based on an . For an image to be displayed, an has to be created from it using the method: + + var image = Image.load_from_file("res://icon.svg") + var texture = ImageTexture.create_from_image(image) + $Sprite2D.texture = texture + + This way, textures can be created at run-time by loading images both from within the editor and externally. + Warning: Prefer to load imported textures with @GDScript.load over loading them from within the filesystem dynamically with , as it may not work in exported projects: + + var texture = load("res://icon.svg") + $Sprite2D.texture = texture + + This is because images have to be imported as a first to be loaded with @GDScript.load. If you'd still like to load an image file just like any other , import it as an resource instead, and then load it normally using the @GDScript.load method. + Note: The image can be retrieved from an imported texture using the method, which returns a copy of the image: + + var texture = load("res://icon.svg") + var image = texture.get_image() + + An is not meant to be operated from within the editor interface directly, and is mostly useful for rendering images on screen dynamically via code. If you need to generate images procedurally from within the editor, consider saving and importing images as custom texture resources implementing a new EditorImportPlugin. + Note: The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. + + + + + Creates a new and initializes it by allocating and setting the data from an . + + + + + Returns the format of the texture, one of . + + + + + Replaces the texture's data with a new . This will re-allocate new memory for the texture. + If you want to update the image, but don't need to change its parameters (format, size), use instead for better performance. + + + + + Replaces the texture's data with a new . + Note: The texture has to be created using or initialized first with the method before it can be updated. The new image dimensions, format, and mipmaps configuration should match the existing texture's image configuration. + Use this method over if you need to update the texture frequently, which is faster than allocating additional memory for a new texture each time. + + + + + Resizes the texture to the specified dimensions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_image' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_image' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'set_size_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a 3-dimensional that has a width, height, and depth. See also . + 3D textures are typically used to store density maps for , color correction LUTs for , vector fields for and collision maps for . 3D textures can also be used in custom shaders. + + + + + Creates the with specified , , and . See for options. If is , then generate mipmaps for the . + + + + + Replaces the texture's existing data with the layers specified in . The size of must match the parameters that were used for . In other words, the texture cannot be resized or have its format changed by calling . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_images' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the '_get_images' method. + + + + + Cached name for the '_set_images' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for , and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also . + + + + + Creates an from an array of s. See for the expected data format. The first image decides the width, height, image format and mipmapping setting. The other images must have the same width, height, image format and mipmapping setting. + Each represents one layer. + + + + + Replaces the existing data at the given with this new image. + The given must have the same width, height, image format, and mipmapping flag as the rest of the referenced images. + If the image format is unsupported, it will be decompressed and converted to a similar and supported . + The update is immediate: it's synchronized with drawing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_images' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_images' method. + + + + + Cached name for the 'update_layer' method. + + + + + Cached name for the '_get_images' method. + + + + + Cached name for the '_set_images' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A mesh type optimized for creating geometry manually, similar to OpenGL 1.x immediate mode. + Here's a sample on how to generate a triangular face: + + var mesh = new ImmediateMesh(); + mesh.SurfaceBegin(Mesh.PrimitiveType.Triangles); + mesh.SurfaceAddVertex(Vector3.Left); + mesh.SurfaceAddVertex(Vector3.Forward); + mesh.SurfaceAddVertex(Vector3.Zero); + mesh.SurfaceEnd(); + + Note: Generating complex geometries with is highly inefficient. Instead, it is designed to generate simple geometry that changes often. + + + + + Begin a new surface. + + + + + Set the color attribute that will be pushed with the next vertex. + + + + + Set the normal attribute that will be pushed with the next vertex. + + + + + Set the tangent attribute that will be pushed with the next vertex. + + + + + Set the UV attribute that will be pushed with the next vertex. + + + + + Set the UV2 attribute that will be pushed with the next vertex. + + + + + Add a 3D vertex using the current attributes previously set. + + + + + Add a 2D vertex using the current attributes previously set. + + + + + End and commit current surface. Note that surface being created will not be visible until this function is called. + + + + + Clear all surfaces. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'surface_begin' method. + + + + + Cached name for the 'surface_set_color' method. + + + + + Cached name for the 'surface_set_normal' method. + + + + + Cached name for the 'surface_set_tangent' method. + + + + + Cached name for the 'surface_set_uv' method. + + + + + Cached name for the 'surface_set_uv2' method. + + + + + Cached name for the 'surface_add_vertex' method. + + + + + Cached name for the 'surface_add_vertex_2d' method. + + + + + Cached name for the 'surface_end' method. + + + + + Cached name for the 'clear_surfaces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'skin' property. + + + + + Cached name for the 'skeleton_path' property. + + + + + Cached name for the 'layer_mask' property. + + + + + Cached name for the 'cast_shadow' property. + + + + + Cached name for the 'visibility_range_begin' property. + + + + + Cached name for the 'visibility_range_begin_margin' property. + + + + + Cached name for the 'visibility_range_end' property. + + + + + Cached name for the 'visibility_range_end_margin' property. + + + + + Cached name for the 'visibility_range_fade_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'set_skeleton_path' method. + + + + + Cached name for the 'get_skeleton_path' method. + + + + + Cached name for the 'set_layer_mask' method. + + + + + Cached name for the 'get_layer_mask' method. + + + + + Cached name for the 'set_cast_shadows_setting' method. + + + + + Cached name for the 'get_cast_shadows_setting' method. + + + + + Cached name for the 'set_visibility_range_end_margin' method. + + + + + Cached name for the 'get_visibility_range_end_margin' method. + + + + + Cached name for the 'set_visibility_range_end' method. + + + + + Cached name for the 'get_visibility_range_end' method. + + + + + Cached name for the 'set_visibility_range_begin_margin' method. + + + + + Cached name for the 'get_visibility_range_begin_margin' method. + + + + + Cached name for the 'set_visibility_range_begin' method. + + + + + Cached name for the 'get_visibility_range_begin' method. + + + + + Cached name for the 'set_visibility_range_fade_mode' method. + + + + + Cached name for the 'get_visibility_range_fade_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton handles key presses, mouse buttons and movement, gamepads, and input actions. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the class. + Note: 's methods reflect the global input state and are not affected by or , as those methods only deal with the way input is propagated in the . + + + + + Makes the mouse cursor visible if it is hidden. + + + + + Makes the mouse cursor hidden if it is visible. + + + + + Captures the mouse. The mouse will be hidden and its position locked at the center of the window manager's window. + Note: If you want to process the mouse's movement in this mode, you need to use . + + + + + Confines the mouse cursor to the game window, and make it visible. + + + + + Confines the mouse cursor to the game window, and make it hidden. + + + + + Arrow cursor. Standard, default pointing cursor. + + + + + I-beam cursor. Usually used to show where the text cursor will appear when the mouse is clicked. + + + + + Pointing hand cursor. Usually used to indicate the pointer is over a link or other interactable item. + + + + + Cross cursor. Typically appears over regions in which a drawing operation can be performed or for selections. + + + + + Wait cursor. Indicates that the application is busy performing an operation, and that it cannot be used during the operation (e.g. something is blocking its main thread). + + + + + Busy cursor. Indicates that the application is busy performing an operation, and that it is still usable during the operation. + + + + + Drag cursor. Usually displayed when dragging something. + Note: Windows lacks a dragging cursor, so is the same as for this platform. + + + + + Can drop cursor. Usually displayed when dragging something to indicate that it can be dropped at the current position. + + + + + Forbidden cursor. Indicates that the current action is forbidden (for example, when dragging something) or that the control at a position is disabled. + + + + + Vertical resize mouse cursor. A double-headed vertical arrow. It tells the user they can resize the window or the panel vertically. + + + + + Horizontal resize mouse cursor. A double-headed horizontal arrow. It tells the user they can resize the window or the panel horizontally. + + + + + 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. + + + + + Window resize mouse cursor. The cursor is a double-headed arrow that goes from the top left to the bottom right, the opposite of . It tells the user they can resize the window or the panel both horizontally and vertically. + + + + + Move cursor. Indicates that something can be moved. + + + + + Vertical split mouse cursor. On Windows, it's the same as . + + + + + Horizontal split mouse cursor. On Windows, it's the same as . + + + + + Help cursor. Usually a question mark. + + + + + Controls the mouse mode. See for more information. + + + + + If , similar input events sent by the operating system are accumulated. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS. + Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input. + Note: Input accumulation is enabled by default. + + + + + If , sends mouse input events when tapping or swiping on the touchscreen. See also ProjectSettings.input_devices/pointing/emulate_mouse_from_touch. + + + + + If , sends touch input events when clicking or dragging the mouse. See also ProjectSettings.input_devices/pointing/emulate_touch_from_mouse. + + + + + Returns if any action, key, joypad button, or mouse button is being pressed. This will also return if any action is simulated via code by calling . + + + + + Returns if you are pressing the Latin key in the current keyboard layout. You can pass a constant. + is only recommended over in non-game applications. This ensures that shortcut keys behave as expected depending on the user's keyboard layout, as keyboard shortcuts are generally dependent on the keyboard layout in non-game applications. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a constant. + is recommended over for in-game actions, as it will make W/A/S/D layouts work regardless of the user's keyboard layout. will also ensure that the top row number keys work on any keyboard layout. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key with the printed on it. You can pass a constant or any Unicode character code. + + + + + Returns if you are pressing the mouse button specified with . + + + + + Returns if you are pressing the joypad button (see ). + + + + + Returns if you are pressing the action event. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns when the user has started pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user pressed down the button. + This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Returning does not imply that the action is still pressed. An action can be pressed and released again rapidly, and will still be returned so as not to miss input. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns when the user stops pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user releases the button. + Note: Returning does not imply that the action is still not pressed. An action can be released and pressed again rapidly, and will still be returned so as not to miss input. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns a value between 0 and 1 representing the intensity of the given action. In a joypad, for example, the further away the axis (analog sticks or L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If the action is mapped to a control that has no axis such as the keyboard, the value returned will be 0 or 1. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns a value between 0 and 1 representing the raw intensity of the given action, ignoring the action's deadzone. In most cases, you should use instead. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Get axis input by specifying two actions, one negative and one positive. + This is a shorthand for writing Input.get_action_strength("positive_action") - Input.get_action_strength("negative_action"). + + + + + Gets an input vector by specifying four actions for the positive and negative X and Y axes. + This method is useful when getting vector input, such as from a joystick, directional pad, arrows, or WASD. The vector has its length limited to 1 and has a circular deadzone, which is useful for using vector input as movement. + By default, the deadzone is automatically calculated from the average of the action deadzones. However, you can override the deadzone to be whatever you want (on the range of 0 to 1). + + + + + Adds a new mapping entry (in SDL2 format) to the mapping database. Optionally update already connected devices. + + + + + Removes all mappings from the internal database that match the given GUID. + + + + + Returns if the system knows the specified device. This means that it sets all button and axis indices. Unknown joypads are not expected to match these constants, but you can still retrieve events from them. + + + + + Returns the current value of the joypad axis at given index (see ). + + + + + Returns the name of the joypad at the specified device index, e.g. PS4 Controller. Godot uses the SDL2 game controller database to determine gamepad names. + + + + + Returns an SDL2-compatible device GUID on platforms that use gamepad remapping, e.g. 030000004c050000c405000000010000. Returns an empty string if it cannot be found. Godot uses the SDL2 game controller database to determine gamepad names and mappings based on this GUID. + On Windows, all XInput joypad GUIDs will be overridden by Godot to __XINPUT_DEVICE__, because their mappings are the same. + + + + + Returns a dictionary with extra platform-specific information about the device, e.g. the raw gamepad name from the OS or the Steam Input index. + On Windows, the dictionary contains the following fields: + xinput_index: The index of the controller in the XInput system. Undefined for DirectInput devices. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + On Linux: + raw_name: The name of the controller as it came from the OS, before getting renamed by the godot controller database. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + steam_input_index: The Steam Input gamepad index, if the device is not a Steam Input device this key won't be present. + Note: The returned dictionary is always empty on Web, iOS, Android, and macOS. + + + + + Queries whether an input device should be ignored or not. Devices can be ignored by setting the environment variable SDL_GAMECONTROLLER_IGNORE_DEVICES. Read the SDL documentation for more information. + Note: Some 3rd party tools can contribute to the list of ignored devices. For example, SteamInput creates virtual devices from physical devices for remapping purposes. To avoid handling the same input device twice, the original device is added to the ignore list. + + + + + Returns an containing the device IDs of all currently connected joypads. + + + + + Returns the strength of the joypad vibration: x is the strength of the weak motor, and y is the strength of the strong motor. + + + + + Returns the duration of the current vibration effect in seconds. + + + + + Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. is the strength of the weak motor (between 0 and 1) and is the strength of the strong motor (between 0 and 1). is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely). The vibration can be stopped early by calling . + Note: Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds. + Note: For macOS, vibration is only supported in macOS 11 and later. + + + + + Stops the vibration of the joypad started with . + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Returns the gravity in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the acceleration in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note this method returns an empty when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the magnetic field strength in micro-Tesla for all axes of the device's magnetometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Sets the gravity value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the acceleration value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the magnetic field of the magnetometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the rotation rate of the gyroscope sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Returns the last mouse velocity. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns the last mouse velocity in screen coordinates. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the mouse position to the specified vector, provided in pixels and relative to an origin at the upper left corner of the currently focused Window Manager game window. + Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if is set to or . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + This will simulate pressing the specified action. + The strength can be used for non-boolean actions, it's ranged between 0 and 1 representing the intensity of the given action. + Note: This method will not cause any calls. It is intended to be used with and . If you want to simulate _input, use instead. + + + + + If the specified action is already pressed, this will release it. + + + + + Sets the default cursor shape to be used in the viewport instead of . + Note: If you want to change the default cursor shape for 's nodes, use instead. + Note: This method generates an to update cursor immediately. + + + + + Returns the currently assigned cursor shape (see ). + + + + + Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing to the image parameter resets to the system cursor. See for the list of shapes. + can be either or and its size must be lower than or equal to 256×256. To avoid rendering issues, sizes lower than or equal to 128×128 are recommended. + must be within 's size. + Note: s aren't supported as custom mouse cursors. If using an , only the first frame will be displayed. + Note: The Lossless, Lossy or Uncompressed compression modes are recommended. The Video RAM compression mode can be used, but it will be decompressed on the CPU, which means loading times are slowed down and no memory is saved compared to lossless modes. + Note: On the web platform, the maximum allowed cursor image size is 128×128. Cursor images larger than 32×32 will also only be displayed if the mouse cursor image is entirely located within the page for security reasons. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Feeds an to the game. Can be used to artificially trigger input events from code. Also generates calls. + + var cancelEvent = new InputEventAction(); + cancelEvent.Action = "ui_cancel"; + cancelEvent.Pressed = true; + Input.ParseInputEvent(cancelEvent); + + Note: Calling this function has no influence on the operating system. So for example sending an will not move the OS mouse cursor to the specified position (use instead) and sending Alt/Cmd + Tab as won't toggle between active windows. + + + + + Sends all input events which are in the current buffer to the game loop. These events may have been buffered as a result of accumulated input () or agile input flushing (ProjectSettings.input_devices/buffering/agile_event_flushing). + The engine will already do this itself at key execution points (at least once per frame). However, this can be useful in advanced cases where you want precise control over the timing of event handling. + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a joypad device has been connected or disconnected. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mouse_mode' property. + + + + + Cached name for the 'use_accumulated_input' property. + + + + + Cached name for the 'emulate_mouse_from_touch' property. + + + + + Cached name for the 'emulate_touch_from_mouse' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_anything_pressed' method. + + + + + Cached name for the 'is_key_pressed' method. + + + + + Cached name for the 'is_physical_key_pressed' method. + + + + + Cached name for the 'is_key_label_pressed' method. + + + + + Cached name for the 'is_mouse_button_pressed' method. + + + + + Cached name for the 'is_joy_button_pressed' method. + + + + + Cached name for the 'is_action_pressed' method. + + + + + Cached name for the 'is_action_just_pressed' method. + + + + + Cached name for the 'is_action_just_released' method. + + + + + Cached name for the 'get_action_strength' method. + + + + + Cached name for the 'get_action_raw_strength' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'get_vector' method. + + + + + Cached name for the 'add_joy_mapping' method. + + + + + Cached name for the 'remove_joy_mapping' method. + + + + + Cached name for the 'is_joy_known' method. + + + + + Cached name for the 'get_joy_axis' method. + + + + + Cached name for the 'get_joy_name' method. + + + + + Cached name for the 'get_joy_guid' method. + + + + + Cached name for the 'get_joy_info' method. + + + + + Cached name for the 'should_ignore_device' method. + + + + + Cached name for the 'get_connected_joypads' method. + + + + + Cached name for the 'get_joy_vibration_strength' method. + + + + + Cached name for the 'get_joy_vibration_duration' method. + + + + + Cached name for the 'start_joy_vibration' method. + + + + + Cached name for the 'stop_joy_vibration' method. + + + + + Cached name for the 'vibrate_handheld' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'get_accelerometer' method. + + + + + Cached name for the 'get_magnetometer' method. + + + + + Cached name for the 'get_gyroscope' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'set_accelerometer' method. + + + + + Cached name for the 'set_magnetometer' method. + + + + + Cached name for the 'set_gyroscope' method. + + + + + Cached name for the 'get_last_mouse_velocity' method. + + + + + Cached name for the 'get_last_mouse_screen_velocity' method. + + + + + Cached name for the 'get_mouse_button_mask' method. + + + + + Cached name for the 'set_mouse_mode' method. + + + + + Cached name for the 'get_mouse_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'action_press' method. + + + + + Cached name for the 'action_release' method. + + + + + Cached name for the 'set_default_cursor_shape' method. + + + + + Cached name for the 'get_current_cursor_shape' method. + + + + + Cached name for the 'set_custom_mouse_cursor' method. + + + + + Cached name for the 'parse_input_event' method. + + + + + Cached name for the 'set_use_accumulated_input' method. + + + + + Cached name for the 'is_using_accumulated_input' method. + + + + + Cached name for the 'flush_buffered_events' method. + + + + + Cached name for the 'set_emulate_mouse_from_touch' method. + + + + + Cached name for the 'is_emulating_mouse_from_touch' method. + + + + + Cached name for the 'set_emulate_touch_from_mouse' method. + + + + + Cached name for the 'is_emulating_touch_from_mouse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'joy_connection_changed' signal. + + + + + The singleton handles key presses, mouse buttons and movement, gamepads, and input actions. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the class. + Note: 's methods reflect the global input state and are not affected by or , as those methods only deal with the way input is propagated in the . + + + + + Controls the mouse mode. See for more information. + + + + + If , similar input events sent by the operating system are accumulated. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS. + Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input. + Note: Input accumulation is enabled by default. + + + + + If , sends mouse input events when tapping or swiping on the touchscreen. See also ProjectSettings.input_devices/pointing/emulate_mouse_from_touch. + + + + + If , sends touch input events when clicking or dragging the mouse. See also ProjectSettings.input_devices/pointing/emulate_touch_from_mouse. + + + + + Returns if any action, key, joypad button, or mouse button is being pressed. This will also return if any action is simulated via code by calling . + + + + + Returns if you are pressing the Latin key in the current keyboard layout. You can pass a constant. + is only recommended over in non-game applications. This ensures that shortcut keys behave as expected depending on the user's keyboard layout, as keyboard shortcuts are generally dependent on the keyboard layout in non-game applications. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a constant. + is recommended over for in-game actions, as it will make W/A/S/D layouts work regardless of the user's keyboard layout. will also ensure that the top row number keys work on any keyboard layout. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key with the printed on it. You can pass a constant or any Unicode character code. + + + + + Returns if you are pressing the mouse button specified with . + + + + + Returns if you are pressing the joypad button (see ). + + + + + Returns if you are pressing the action event. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns when the user has started pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user pressed down the button. + This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Returning does not imply that the action is still pressed. An action can be pressed and released again rapidly, and will still be returned so as not to miss input. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns when the user stops pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user releases the button. + Note: Returning does not imply that the action is still not pressed. An action can be released and pressed again rapidly, and will still be returned so as not to miss input. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns a value between 0 and 1 representing the intensity of the given action. In a joypad, for example, the further away the axis (analog sticks or L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If the action is mapped to a control that has no axis such as the keyboard, the value returned will be 0 or 1. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns a value between 0 and 1 representing the raw intensity of the given action, ignoring the action's deadzone. In most cases, you should use instead. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Get axis input by specifying two actions, one negative and one positive. + This is a shorthand for writing Input.get_action_strength("positive_action") - Input.get_action_strength("negative_action"). + + + + + Gets an input vector by specifying four actions for the positive and negative X and Y axes. + This method is useful when getting vector input, such as from a joystick, directional pad, arrows, or WASD. The vector has its length limited to 1 and has a circular deadzone, which is useful for using vector input as movement. + By default, the deadzone is automatically calculated from the average of the action deadzones. However, you can override the deadzone to be whatever you want (on the range of 0 to 1). + + + + + Adds a new mapping entry (in SDL2 format) to the mapping database. Optionally update already connected devices. + + + + + Removes all mappings from the internal database that match the given GUID. + + + + + Returns if the system knows the specified device. This means that it sets all button and axis indices. Unknown joypads are not expected to match these constants, but you can still retrieve events from them. + + + + + Returns the current value of the joypad axis at given index (see ). + + + + + Returns the name of the joypad at the specified device index, e.g. PS4 Controller. Godot uses the SDL2 game controller database to determine gamepad names. + + + + + Returns an SDL2-compatible device GUID on platforms that use gamepad remapping, e.g. 030000004c050000c405000000010000. Returns an empty string if it cannot be found. Godot uses the SDL2 game controller database to determine gamepad names and mappings based on this GUID. + On Windows, all XInput joypad GUIDs will be overridden by Godot to __XINPUT_DEVICE__, because their mappings are the same. + + + + + Returns a dictionary with extra platform-specific information about the device, e.g. the raw gamepad name from the OS or the Steam Input index. + On Windows, the dictionary contains the following fields: + xinput_index: The index of the controller in the XInput system. Undefined for DirectInput devices. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + On Linux: + raw_name: The name of the controller as it came from the OS, before getting renamed by the godot controller database. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + steam_input_index: The Steam Input gamepad index, if the device is not a Steam Input device this key won't be present. + Note: The returned dictionary is always empty on Web, iOS, Android, and macOS. + + + + + Queries whether an input device should be ignored or not. Devices can be ignored by setting the environment variable SDL_GAMECONTROLLER_IGNORE_DEVICES. Read the SDL documentation for more information. + Note: Some 3rd party tools can contribute to the list of ignored devices. For example, SteamInput creates virtual devices from physical devices for remapping purposes. To avoid handling the same input device twice, the original device is added to the ignore list. + + + + + Returns an containing the device IDs of all currently connected joypads. + + + + + Returns the strength of the joypad vibration: x is the strength of the weak motor, and y is the strength of the strong motor. + + + + + Returns the duration of the current vibration effect in seconds. + + + + + Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. is the strength of the weak motor (between 0 and 1) and is the strength of the strong motor (between 0 and 1). is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely). The vibration can be stopped early by calling . + Note: Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds. + Note: For macOS, vibration is only supported in macOS 11 and later. + + + + + Stops the vibration of the joypad started with . + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Returns the gravity in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the acceleration in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note this method returns an empty when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the magnetic field strength in micro-Tesla for all axes of the device's magnetometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Sets the gravity value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the acceleration value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the magnetic field of the magnetometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the rotation rate of the gyroscope sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Returns the last mouse velocity. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns the last mouse velocity in screen coordinates. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the mouse position to the specified vector, provided in pixels and relative to an origin at the upper left corner of the currently focused Window Manager game window. + Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if is set to or . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + This will simulate pressing the specified action. + The strength can be used for non-boolean actions, it's ranged between 0 and 1 representing the intensity of the given action. + Note: This method will not cause any calls. It is intended to be used with and . If you want to simulate _input, use instead. + + + + + If the specified action is already pressed, this will release it. + + + + + Sets the default cursor shape to be used in the viewport instead of . + Note: If you want to change the default cursor shape for 's nodes, use instead. + Note: This method generates an to update cursor immediately. + + + + + Returns the currently assigned cursor shape (see ). + + + + + Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing to the image parameter resets to the system cursor. See for the list of shapes. + can be either or and its size must be lower than or equal to 256×256. To avoid rendering issues, sizes lower than or equal to 128×128 are recommended. + must be within 's size. + Note: s aren't supported as custom mouse cursors. If using an , only the first frame will be displayed. + Note: The Lossless, Lossy or Uncompressed compression modes are recommended. The Video RAM compression mode can be used, but it will be decompressed on the CPU, which means loading times are slowed down and no memory is saved compared to lossless modes. + Note: On the web platform, the maximum allowed cursor image size is 128×128. Cursor images larger than 32×32 will also only be displayed if the mouse cursor image is entirely located within the page for security reasons. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Feeds an to the game. Can be used to artificially trigger input events from code. Also generates calls. + + var cancelEvent = new InputEventAction(); + cancelEvent.Action = "ui_cancel"; + cancelEvent.Pressed = true; + Input.ParseInputEvent(cancelEvent); + + Note: Calling this function has no influence on the operating system. So for example sending an will not move the OS mouse cursor to the specified position (use instead) and sending Alt/Cmd + Tab as won't toggle between active windows. + + + + + Sends all input events which are in the current buffer to the game loop. These events may have been buffered as a result of accumulated input () or agile input flushing (ProjectSettings.input_devices/buffering/agile_event_flushing). + The engine will already do this itself at key execution points (at least once per frame). However, this can be useful in advanced cases where you want precise control over the timing of event handling. + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a joypad device has been connected or disconnected. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mouse_mode' property. + + + + + Cached name for the 'use_accumulated_input' property. + + + + + Cached name for the 'emulate_mouse_from_touch' property. + + + + + Cached name for the 'emulate_touch_from_mouse' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_anything_pressed' method. + + + + + Cached name for the 'is_key_pressed' method. + + + + + Cached name for the 'is_physical_key_pressed' method. + + + + + Cached name for the 'is_key_label_pressed' method. + + + + + Cached name for the 'is_mouse_button_pressed' method. + + + + + Cached name for the 'is_joy_button_pressed' method. + + + + + Cached name for the 'is_action_pressed' method. + + + + + Cached name for the 'is_action_just_pressed' method. + + + + + Cached name for the 'is_action_just_released' method. + + + + + Cached name for the 'get_action_strength' method. + + + + + Cached name for the 'get_action_raw_strength' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'get_vector' method. + + + + + Cached name for the 'add_joy_mapping' method. + + + + + Cached name for the 'remove_joy_mapping' method. + + + + + Cached name for the 'is_joy_known' method. + + + + + Cached name for the 'get_joy_axis' method. + + + + + Cached name for the 'get_joy_name' method. + + + + + Cached name for the 'get_joy_guid' method. + + + + + Cached name for the 'get_joy_info' method. + + + + + Cached name for the 'should_ignore_device' method. + + + + + Cached name for the 'get_connected_joypads' method. + + + + + Cached name for the 'get_joy_vibration_strength' method. + + + + + Cached name for the 'get_joy_vibration_duration' method. + + + + + Cached name for the 'start_joy_vibration' method. + + + + + Cached name for the 'stop_joy_vibration' method. + + + + + Cached name for the 'vibrate_handheld' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'get_accelerometer' method. + + + + + Cached name for the 'get_magnetometer' method. + + + + + Cached name for the 'get_gyroscope' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'set_accelerometer' method. + + + + + Cached name for the 'set_magnetometer' method. + + + + + Cached name for the 'set_gyroscope' method. + + + + + Cached name for the 'get_last_mouse_velocity' method. + + + + + Cached name for the 'get_last_mouse_screen_velocity' method. + + + + + Cached name for the 'get_mouse_button_mask' method. + + + + + Cached name for the 'set_mouse_mode' method. + + + + + Cached name for the 'get_mouse_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'action_press' method. + + + + + Cached name for the 'action_release' method. + + + + + Cached name for the 'set_default_cursor_shape' method. + + + + + Cached name for the 'get_current_cursor_shape' method. + + + + + Cached name for the 'set_custom_mouse_cursor' method. + + + + + Cached name for the 'parse_input_event' method. + + + + + Cached name for the 'set_use_accumulated_input' method. + + + + + Cached name for the 'is_using_accumulated_input' method. + + + + + Cached name for the 'flush_buffered_events' method. + + + + + Cached name for the 'set_emulate_mouse_from_touch' method. + + + + + Cached name for the 'is_emulating_mouse_from_touch' method. + + + + + Cached name for the 'set_emulate_touch_from_mouse' method. + + + + + Cached name for the 'is_emulating_touch_from_mouse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'joy_connection_changed' signal. + + + + + Abstract base class of all types of input events. See . + + + + + Device ID used for emulated mouse input from a touchscreen, or for emulated touch input from a mouse. This can be used to distinguish emulated mouse input from physical mouse input, or emulated touch input from physical touch input. + + + + + The event's device ID. + Note: can be negative for special use cases that don't refer to devices physically present on the system. See . + + + + + Returns if this input event matches a pre-defined action of any type. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns if the given action is being pressed (and is not an echo event for events, unless is ). Not relevant for events of type or . + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if the given action is released (i.e. not pressed). Not relevant for events of type or . + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns a value between 0.0 and 1.0 depending on the given actions' state. Useful for getting the value of events of type . + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns if this input event has been canceled. + + + + + Returns if this input event is pressed. Not relevant for events of type or . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if this input event is released. Not relevant for events of type or . + + + + + Returns if this input event is an echo event (only for events of type ). An echo event is a repeated key event sent when the user is holding down the key. Any other event type returns . + Note: The rate at which echo events are sent is typically around 20 events per second (after holding down the key for roughly half a second). However, the key repeat delay/speed can be changed by the user or disabled entirely in the operating system settings. To ensure your project works correctly on all configurations, do not assume the user has a specific key repeat configuration in your project's behavior. + + + + + Returns a representation of the event. + + + + + Returns if the specified matches this event. Only valid for action events i.e key (), button ( or ), axis or action () events. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Only considers the event configuration (such as the keyboard key or joypad axis), not state information like , , , or . + + + + + Returns if this input event's type is one that can be assigned to an input action. + + + + + Returns if the given input event and this input event can be added together (only for events of type ). + The given input event's position, global position and speed will be copied. The resulting relative is a sum of both events. Both events' modifiers have to be identical. + + + + + Returns a copy of the given input event which has been offset by and transformed by . Relevant for events of type , , , , and . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'device' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_device' method. + + + + + Cached name for the 'get_device' method. + + + + + Cached name for the 'is_action' method. + + + + + Cached name for the 'is_action_pressed' method. + + + + + Cached name for the 'is_action_released' method. + + + + + Cached name for the 'get_action_strength' method. + + + + + Cached name for the 'is_canceled' method. + + + + + Cached name for the 'is_pressed' method. + + + + + Cached name for the 'is_released' method. + + + + + Cached name for the 'is_echo' method. + + + + + Cached name for the 'as_text' method. + + + + + Cached name for the 'is_match' method. + + + + + Cached name for the 'is_action_type' method. + + + + + Cached name for the 'accumulate' method. + + + + + Cached name for the 'xformed_by' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains a generic action which can be targeted from several types of inputs. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the class. + Note: Unlike the other 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 , which are then received in . To check if a physical event matches an action from the Input Map, use and . + + + + + The action's name. Actions are accessed via this . + + + + + If , the action's state is pressed. If , the action's state is released. + + + + + The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is . The event strength allows faking analog joypad motion events, by specifying how strongly the joypad axis is bent or pressed. + + + + + The real event index in action this event corresponds to (from events defined for this action in the ). If -1, a unique ID will be used and actions pressed with this ID will need to be released with another . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'strength' property. + + + + + Cached name for the 'event_index' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action' method. + + + + + Cached name for the 'get_action' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_strength' method. + + + + + Cached name for the 'get_strength' method. + + + + + Cached name for the 'set_event_index' method. + + + + + Cached name for the 'get_event_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + InputEventFromWindow represents events specifically received by windows. This includes mouse events, keyboard events in focused windows or touch screen actions. + + + + + The ID of a that received this event. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'window_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_window_id' method. + + + + + Cached name for the 'get_window_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The local gesture position relative to the . If used in , the position is relative to the current that received this gesture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see . + + + + + Button identifier. One of the button constants. + + + + + If , the button's state is pressed. If , the button's state is released. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'button_index' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_button_index' method. + + + + + Cached name for the 'get_button_index' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about joystick motions. One represents one axis at a time. For gamepad buttons, see . + + + + + Axis identifier. Use one of the axis constants. + + + + + Current position of the joystick on the given axis. The value ranges from -1.0 to 1.0. A value of 0 means the axis is in its resting position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'axis' property. + + + + + Cached name for the 'axis_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_axis' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'set_axis_value' method. + + + + + Cached name for the 'get_axis_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An input event for keys on a keyboard. Supports key presses, key releases and events. It can also be received in . + Note: Events received from the keyboard usually have all properties set. Event mappings should have only one of the , or set. + When events are compared, properties are checked in the following priority - , and . Events with the first matching value will be considered equal. + + + + + If , the key's state is pressed. If , the key's state is released. + + + + + Latin label printed on the key in the current keyboard layout, which corresponds to one of the constants. + To get a human-readable representation of the , use OS.get_keycode_string(event.keycode) where event is the . + + +-----+ +-----+ + | Q | | Q | - "Q" - keycode + | Й | | ض | - "Й" and "ض" - key_label + +-----+ +-----+ + + + + + + Represents the physical location of a key on the 101/102-key US QWERTY keyboard, which corresponds to one of the constants. + To get a human-readable representation of the , use in combination with : + + public override void _Input(InputEvent @event) + { + if (@event is InputEventKey inputEventKey) + { + var keycode = DisplayServer.KeyboardGetKeycodeFromPhysical(inputEventKey.PhysicalKeycode); + GD.Print(OS.GetKeycodeString(keycode)); + } + } + + + + + + Represents the localized label printed on the key in the current keyboard layout, which corresponds to one of the constants or any valid Unicode character. + For keyboard layouts with a single label on the key, it is equivalent to . + To get a human-readable representation of the , use OS.get_keycode_string(event.key_label) where event is the . + + +-----+ +-----+ + | Q | | Q | - "Q" - keycode + | Й | | ض | - "Й" and "ض" - key_label + +-----+ +-----+ + + + + + + The key Unicode character code (when relevant), shifted by modifier keys. Unicode character codes for composite characters and complex scripts may not be available unless IME input mode is active. See for more information. + + + + + Represents the location of a key which has both left and right versions, such as Shift or Alt. + + + + + If , the key was already pressed before this event. An echo event is a repeated key event sent when the user is holding down the key. + Note: The rate at which echo events are sent is typically around 20 events per second (after holding down the key for roughly half a second). However, the key repeat delay/speed can be changed by the user or disabled entirely in the operating system settings. To ensure your project works correctly on all configurations, do not assume the user has a specific key repeat configuration in your project's behavior. + + + + + Returns the Latin keycode combined with modifier keys such as Shift or Alt. See also . + To get a human-readable representation of the with modifiers, use OS.get_keycode_string(event.get_keycode_with_modifiers()) where event is the . + + + + + Returns the physical keycode combined with modifier keys such as Shift or Alt. See also . + To get a human-readable representation of the with modifiers, use OS.get_keycode_string(event.get_physical_keycode_with_modifiers()) where event is the . + + + + + Returns the localized key label combined with modifier keys such as Shift or Alt. See also . + To get a human-readable representation of the with modifiers, use OS.get_keycode_string(event.get_key_label_with_modifiers()) where event is the . + + + + + Returns a representation of the event's and modifiers. + + + + + Returns a representation of the event's and modifiers. + + + + + Returns a representation of the event's and modifiers. + + + + + Returns a representation of the event's . This will be a blank string if the event is not specific to a location. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'keycode' property. + + + + + Cached name for the 'physical_keycode' property. + + + + + Cached name for the 'key_label' property. + + + + + Cached name for the 'unicode' property. + + + + + Cached name for the 'location' property. + + + + + Cached name for the 'echo' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_keycode' method. + + + + + Cached name for the 'get_keycode' method. + + + + + Cached name for the 'set_physical_keycode' method. + + + + + Cached name for the 'get_physical_keycode' method. + + + + + Cached name for the 'set_key_label' method. + + + + + Cached name for the 'get_key_label' method. + + + + + Cached name for the 'set_unicode' method. + + + + + Cached name for the 'get_unicode' method. + + + + + Cached name for the 'set_location' method. + + + + + Cached name for the 'get_location' method. + + + + + Cached name for the 'set_echo' method. + + + + + Cached name for the 'get_keycode_with_modifiers' method. + + + + + Cached name for the 'get_physical_keycode_with_modifiers' method. + + + + + Cached name for the 'get_key_label_with_modifiers' method. + + + + + Cached name for the 'as_text_keycode' method. + + + + + Cached name for the 'as_text_physical_keycode' method. + + + + + Cached name for the 'as_text_key_label' method. + + + + + Cached name for the 'as_text_location' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + InputEventMIDI stores information about messages from MIDI (Musical Instrument Digital Interface) devices. These may include musical keyboards, synthesizers, and drum machines. + MIDI messages can be received over a 5-pin MIDI connector or over USB. If your device supports both be sure to check the settings in the device to see which output it is using. + By default, Godot does not detect MIDI devices. You need to call , first. You can check which devices are detected with , and close the connection with . + + public override void _Ready() + { + OS.OpenMidiInputs(); + GD.Print(OS.GetConnectedMidiInputs()); + } + + public override void _Input(InputEvent inputEvent) + { + if (inputEvent is InputEventMidi midiEvent) + { + PrintMIDIInfo(midiEvent); + } + } + + private void PrintMIDIInfo(InputEventMidi midiEvent) + { + GD.Print(midiEvent); + GD.Print($"Channel {midiEvent.Channel}"); + GD.Print($"Message {midiEvent.Message}"); + GD.Print($"Pitch {midiEvent.Pitch}"); + GD.Print($"Velocity {midiEvent.Velocity}"); + GD.Print($"Instrument {midiEvent.Instrument}"); + GD.Print($"Pressure {midiEvent.Pressure}"); + GD.Print($"Controller number: {midiEvent.ControllerNumber}"); + GD.Print($"Controller value: {midiEvent.ControllerValue}"); + } + + Note: Godot does not support MIDI output, so there is no way to emit MIDI messages from Godot. Only MIDI input is supported. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . MIDI input will not work until the user accepts the permission request. + + + + + The MIDI channel of this message, ranging from 0 to 15. MIDI channel 9 is reserved for percussion instruments. + + + + + Represents the type of MIDI message (see the enum). + For more information, see the MIDI message status byte list chart. + + + + + The pitch index number of this MIDI message. This value ranges from 0 to 127. + On a piano, the middle C is 60, followed by a C-sharp (61), then a D (62), and so on. Each octave is split in offsets of 12. See the "MIDI note number" column of the piano key frequency chart a full list. + + + + + The velocity of the MIDI message. This value ranges from 0 to 127. For a musical keyboard, this corresponds to how quickly the key was pressed, and is rarely above 110 in practice. + Note: Some MIDI devices may send a message with 0 velocity and expect it to be treated the same as a message. If necessary, this can be handled with a few lines of code: + + func _input(event): + if event is InputEventMIDI: + if event.message == MIDI_MESSAGE_NOTE_ON and event.velocity > 0: + print("Note pressed!") + + + + + + The instrument (also called program or preset) used on this MIDI message. This value ranges from 0 to 127. + To see what each value means, refer to the General MIDI's instrument list. Keep in mind that the list is off by 1 because it does not begin from 0. A value of 0 corresponds to the acoustic grand piano. + + + + + The strength of the key being pressed. This value ranges from 0 to 127. + Note: For many devices, this value is always 0. Other devices such as musical keyboards may simulate pressure by changing the , instead. + + + + + The unique number of the controller, if is , otherwise this is 0. This value can be used to identify sliders for volume, balance, and panning, as well as switches and pedals on the MIDI device. See the General MIDI specification for a small list. + + + + + The value applied to the controller. If is , this value ranges from 0 to 127, otherwise it is 0. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'channel' property. + + + + + Cached name for the 'message' property. + + + + + Cached name for the 'pitch' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'instrument' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'controller_number' property. + + + + + Cached name for the 'controller_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_channel' method. + + + + + Cached name for the 'get_channel' method. + + + + + Cached name for the 'set_message' method. + + + + + Cached name for the 'get_message' method. + + + + + Cached name for the 'set_pitch' method. + + + + + Cached name for the 'get_pitch' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_instrument' method. + + + + + Cached name for the 'get_instrument' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_controller_number' method. + + + + + Cached name for the 'get_controller_number' method. + + + + + Cached name for the 'set_controller_value' method. + + + + + Cached name for the 'get_controller_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores the factor of a magnifying touch gesture. This is usually performed when the user pinches the touch screen and used for zooming in/out. + Note: On Android, this requires the ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures project setting to be enabled. + + + + + The amount (or delta) of the event. This value is closer to 1.0 the slower the gesture is performed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'factor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_factor' method. + + + + + Cached name for the 'get_factor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores general information about mouse events. + + + + + The mouse button mask identifier, one of or a bitwise combination of the button masks. + + + + + When received in or , returns the mouse's position in the this is in using the coordinate system of this . + When received in , returns the mouse's position in the using the local coordinate system of the . + + + + + When received in or , returns the mouse's position in the root using the coordinate system of the root . + When received in , returns the mouse's position in the that the is in using the coordinate system of the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'button_mask' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_button_mask' method. + + + + + Cached name for the 'get_button_mask' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about mouse click events. See . + Note: On Wear OS devices, rotary input is mapped to and . This can be changed to and with the ProjectSettings.input_devices/pointing/android/rotary_input_scroll_axis setting. + + + + + The amount (or delta) of the event. When used for high-precision scroll events, this indicates the scroll amount (vertical or horizontal). This is only supported on some platforms; the reported sensitivity varies depending on the platform. May be 0 if not supported. + + + + + The mouse button identifier, one of the button or button wheel constants. + + + + + If , the mouse button event has been canceled. + + + + + If , the mouse button's state is pressed. If , the mouse button's state is released. + + + + + If , the mouse button's state is a double-click. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'factor' property. + + + + + Cached name for the 'button_index' property. + + + + + Cached name for the 'canceled' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'double_click' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_factor' method. + + + + + Cached name for the 'get_factor' method. + + + + + Cached name for the 'set_button_index' method. + + + + + Cached name for the 'get_button_index' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_canceled' method. + + + + + Cached name for the 'set_double_click' method. + + + + + Cached name for the 'is_double_click' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See . + Note: By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set to to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider using as well to avoid visible gaps in lines if the user is moving the mouse quickly. + Note: This event may be emitted even when the mouse hasn't moved, either by the operating system or by Godot itself. If you really need to know if the mouse has moved (e.g. to suppress displaying a tooltip), you should check that relative.is_zero_approx() is . + + + + + Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from -1.0 to 1.0 for both axes. + + + + + Represents the pressure the user puts on the pen. Ranges from 0.0 to 1.0. + + + + + Returns when using the eraser end of a stylus pen. + Note: This property is implemented on Linux, macOS and Windows. + + + + + The mouse position relative to the previous position (position at the last frame). + Note: Since may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary. + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using in a script that handles mouse aiming with the mouse mode. To avoid this, use instead. + + + + + The unscaled mouse position relative to the previous position in the coordinate system of the screen (position at the last frame). + Note: Since may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary. + Note: This coordinate is not scaled according to the content scale factor or calls to . This should be preferred over for mouse aiming when using the mouse mode, regardless of the project's stretch mode. + + + + + The mouse velocity in pixels per second. + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using in a script that handles mouse aiming with the mouse mode. To avoid this, use instead. + + + + + The unscaled mouse velocity in pixels per second in screen coordinates. This velocity is not scaled according to the content scale factor or calls to . This should be preferred over for mouse aiming when using the mouse mode, regardless of the project's stretch mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tilt' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'pen_inverted' property. + + + + + Cached name for the 'relative' property. + + + + + Cached name for the 'screen_relative' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'screen_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tilt' method. + + + + + Cached name for the 'get_tilt' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_pen_inverted' method. + + + + + Cached name for the 'get_pen_inverted' method. + + + + + Cached name for the 'set_relative' method. + + + + + Cached name for the 'get_relative' method. + + + + + Cached name for the 'set_screen_relative' method. + + + + + Cached name for the 'get_screen_relative' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_screen_velocity' method. + + + + + Cached name for the 'get_screen_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about pan gestures. A pan gesture is performed when the user swipes the touch screen with two fingers. It's typically used for panning/scrolling. + Note: On Android, this requires the ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures project setting to be enabled. + + + + + Panning amount since last pan event. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'delta' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_delta' method. + + + + + Cached name for the 'get_delta' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about screen drag events. See . + + + + + The drag event index in the case of a multi-drag event. + + + + + Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from -1.0 to 1.0 for both axes. + + + + + Represents the pressure the user puts on the pen. Ranges from 0.0 to 1.0. + + + + + Returns when using the eraser end of a stylus pen. + + + + + The drag position in the viewport the node is in, using the coordinate system of this viewport. + + + + + The drag position relative to the previous position (position at the last frame). + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means touch sensitivity will appear different depending on resolution when using in a script that handles touch aiming. To avoid this, use instead. + + + + + The unscaled drag position relative to the previous position in screen coordinates (position at the last frame). This position is not scaled according to the content scale factor or calls to . This should be preferred over for touch aiming regardless of the project's stretch mode. + + + + + The drag velocity. + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means touch sensitivity will appear different depending on resolution when using in a script that handles touch aiming. To avoid this, use instead. + + + + + The unscaled drag velocity in pixels per second in screen coordinates. This velocity is not scaled according to the content scale factor or calls to . This should be preferred over for touch aiming regardless of the project's stretch mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'index' property. + + + + + Cached name for the 'tilt' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'pen_inverted' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'relative' property. + + + + + Cached name for the 'screen_relative' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'screen_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_index' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'set_tilt' method. + + + + + Cached name for the 'get_tilt' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_pen_inverted' method. + + + + + Cached name for the 'get_pen_inverted' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_relative' method. + + + + + Cached name for the 'get_relative' method. + + + + + Cached name for the 'set_screen_relative' method. + + + + + Cached name for the 'get_screen_relative' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_screen_velocity' method. + + + + + Cached name for the 'get_screen_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about multi-touch press/release input events. Supports touch press, touch release and for multi-touch count and order. + + + + + The touch index in the case of a multi-touch event. One index = one finger. + + + + + The touch position in the viewport the node is in, using the coordinate system of this viewport. + + + + + If , the touch event has been canceled. + + + + + If , the touch's state is pressed. If , the touch's state is released. + + + + + If , the touch's state is a double tap. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'index' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'canceled' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'double_tap' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_index' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_canceled' method. + + + + + Cached name for the 'set_double_tap' method. + + + + + Cached name for the 'is_double_tap' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + InputEventShortcut is a special event that can be received in , , and . It is typically sent by the editor's Command Palette to trigger actions, but can also be sent manually using . + + + + + The represented by this event. Its method will always return for this event. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shortcut' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shortcut' method. + + + + + Cached name for the 'get_shortcut' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about mouse, keyboard, and touch gesture input events. This includes information about which modifier keys are pressed, such as Shift or Alt. See . + + + + + Automatically use Meta (Cmd) on macOS and Ctrl on other platforms. If , and cannot be set. + + + + + State of the Alt modifier. + + + + + State of the Shift modifier. + + + + + State of the Ctrl modifier. + + + + + State of the Meta modifier. On Windows and Linux, this represents the Windows key (sometimes called "meta" or "super" on Linux). On macOS, this represents the Command key. + + + + + On macOS, returns if Meta (Cmd) is pressed. + On other platforms, returns if Ctrl is pressed. + + + + + Returns the keycode combination of modifier keys. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'command_or_control_autoremap' property. + + + + + Cached name for the 'alt_pressed' property. + + + + + Cached name for the 'shift_pressed' property. + + + + + Cached name for the 'ctrl_pressed' property. + + + + + Cached name for the 'meta_pressed' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_command_or_control_autoremap' method. + + + + + Cached name for the 'is_command_or_control_autoremap' method. + + + + + Cached name for the 'is_command_or_control_pressed' method. + + + + + Cached name for the 'set_alt_pressed' method. + + + + + Cached name for the 'is_alt_pressed' method. + + + + + Cached name for the 'set_shift_pressed' method. + + + + + Cached name for the 'is_shift_pressed' method. + + + + + Cached name for the 'set_ctrl_pressed' method. + + + + + Cached name for the 'is_ctrl_pressed' method. + + + + + Cached name for the 'set_meta_pressed' method. + + + + + Cached name for the 'is_meta_pressed' method. + + + + + Cached name for the 'get_modifiers_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Manages all which can be created/modified from the project settings menu Project > Project Settings > Input Map or in code with and . See . + + + + + Returns if the has a registered action with the given name. + + + + + Returns an array of all actions in the . + + + + + Adds an empty action to the with a configurable . + An can then be added to this action with . + + + + + Removes an action from the . + + + + + Sets a deadzone value for the action. + + + + + Returns a deadzone value for the action. + + + + + Adds an to an action. This will trigger the action. + + + + + Returns if the action has the given associated with it. + + + + + Removes an from an action. + + + + + Removes all events from an action. + + + + + Returns an array of s associated with a given action. + Note: When used in the editor (e.g. a tool script or EditorPlugin), this method will return events for the editor action. If you want to access your project's input binds from the editor, read the input/* settings from . + + + + + Returns if the given event is part of an existing action. This method ignores keyboard modifiers if the given is not pressed (for proper release detection). See if you don't want this behavior. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Clears all in the and load it anew from . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_action' method. + + + + + Cached name for the 'get_actions' method. + + + + + Cached name for the 'add_action' method. + + + + + Cached name for the 'erase_action' method. + + + + + Cached name for the 'action_set_deadzone' method. + + + + + Cached name for the 'action_get_deadzone' method. + + + + + Cached name for the 'action_add_event' method. + + + + + Cached name for the 'action_has_event' method. + + + + + Cached name for the 'action_erase_event' method. + + + + + Cached name for the 'action_erase_events' method. + + + + + Cached name for the 'action_get_events' method. + + + + + Cached name for the 'event_is_action' method. + + + + + Cached name for the 'load_from_project_settings' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Manages all which can be created/modified from the project settings menu Project > Project Settings > Input Map or in code with and . See . + + + + + Returns if the has a registered action with the given name. + + + + + Returns an array of all actions in the . + + + + + Adds an empty action to the with a configurable . + An can then be added to this action with . + + + + + Removes an action from the . + + + + + Sets a deadzone value for the action. + + + + + Returns a deadzone value for the action. + + + + + Adds an to an action. This will trigger the action. + + + + + Returns if the action has the given associated with it. + + + + + Removes an from an action. + + + + + Removes all events from an action. + + + + + Returns an array of s associated with a given action. + Note: When used in the editor (e.g. a tool script or EditorPlugin), this method will return events for the editor action. If you want to access your project's input binds from the editor, read the input/* settings from . + + + + + Returns if the given event is part of an existing action. This method ignores keyboard modifiers if the given is not pressed (for proper release detection). See if you don't want this behavior. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Clears all in the and load it anew from . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_action' method. + + + + + Cached name for the 'get_actions' method. + + + + + Cached name for the 'add_action' method. + + + + + Cached name for the 'erase_action' method. + + + + + Cached name for the 'action_set_deadzone' method. + + + + + Cached name for the 'action_get_deadzone' method. + + + + + Cached name for the 'action_add_event' method. + + + + + Cached name for the 'action_has_event' method. + + + + + Cached name for the 'action_erase_event' method. + + + + + Cached name for the 'action_erase_events' method. + + + + + Cached name for the 'action_get_events' method. + + + + + Cached name for the 'event_is_action' method. + + + + + Cached name for the 'load_from_project_settings' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Turning on the option Load As Placeholder for an instantiated scene in the editor causes it to be replaced by an 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 . This is useful to avoid loading large scenes all at once by loading parts of it selectively. + The does not have a transform. This causes any child nodes to be positioned relatively to the 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. + + + + + Returns the list of properties that will be applied to the node when is called. + If is , a key named .order (note the leading period) is added to the dictionary. This .order key is an of property names specifying the order in which properties will be applied (with index 0 being the first). + + + + + Call this method to actually load in the node. The created node will be placed as a sibling above the in the scene tree. The 's reference is also returned for convenience. + Note: is not thread-safe. Use if calling from a thread. + + + + + Gets the path to the resource file that is loaded by default when calling . Not thread-safe. Use if calling from a thread. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_stored_values' method. + + + + + Cached name for the 'create_instance' method. + + + + + Cached name for the 'get_instance_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is used to make delays in a tweening sequence. See for more usage information. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This control provides a vertical list of selectable items that may be in a single or in multiple columns, with each item having options for text and an icon. Tooltips are supported and may be different for every item in the list. + Selectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be "activated" by double-clicking them or by pressing Enter. + Item text only supports single-line strings. Newline characters (e.g. \n) in the string won't produce a newline. Text wrapping is enabled in mode, but the column's width is adjusted to fully fit its content by default. You need to set greater than zero to wrap the text. + All set_* methods allow negative item indices, i.e. -1 to access the last item, -2 to select the second-to-last item, and so on. + Incremental search: Like and , supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec. + + + + + Icon is drawn above the text. + + + + + Icon is drawn to the left of the text. + + + + + Only allow selecting a single item. + + + + + Allows selecting multiple items by holding Ctrl or Shift. + + + + + Allows selecting multiple items by toggling them on and off. + + + + + Allows single or multiple item selection. See the constants. + + + + + If , the currently selected item can be selected again. + + + + + If , right mouse button click can select items. + + + + + If , allows navigating the with letter keys through incremental search. + + + + + Maximum lines of text allowed in each item. Space will be reserved even when there is not enough lines of text to display. + Note: This property takes effect only when is . To make the text wrap, should be greater than zero. + + + + + If , the control will automatically resize the width to fit its content. + + + + + If , the control will automatically resize the height to fit its content. + + + + + Sets the clipping behavior when the text exceeds an item's bounding rectangle. See for a description of all modes. + + + + + The number of items currently in the list. + + + + + Maximum columns the list will have. + If greater than zero, the content will be split among the specified columns. + A value of zero means unlimited columns, i.e. all items will be put in the same row. + + + + + Whether all columns will have the same width. + If , the width is equal to the largest column width of all columns. + + + + + The width all columns will be adjusted to. + A value of zero disables the adjustment, each item will have a width equal to the width of its content and the columns will have an uneven width. + + + + + The icon position, whether above or to the left of the text. See the constants. + + + + + The scale of icon applied after and transposing takes effect. + + + + + The size all icons will be adjusted to. + If either X or Y component is not greater than zero, icon size won't be affected. + + + + + Adds an item to the item list with specified text. Returns the index of an added item. + Specify an , or use as the for a list item with no icon. + If is , the list item will be selectable. + + + + + Adds an item to the item list with no text, only an icon. Returns the index of an added item. + + + + + Sets text of the item associated with the specified index. + + + + + Returns the text associated with the specified index. + + + + + Sets (or replaces) the icon's associated with the specified index. + + + + + Returns the icon associated with the specified index. + + + + + Sets item's text base writing direction. + + + + + Returns item's text base writing direction. + + + + + Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns item's text language code. + + + + + Sets the auto translate mode of the item associated with the specified index. + Items use by default, which uses the same auto translate mode as the itself. + + + + + Returns item's auto translate mode. + + + + + Sets whether the item icon will be drawn transposed. + + + + + Returns if the item icon will be drawn transposed, i.e. the X and Y axes are swapped. + + + + + Sets the region of item's icon used. The whole icon will be used if the region has no area. + + + + + Returns the region of item's icon used. The whole icon will be used if the region has no area. + + + + + Sets a modulating of the item associated with the specified index. + + + + + Returns a modulating item's icon at the specified index. + + + + + Allows or disallows selection of the item associated with the specified index. + + + + + Returns if the item at the specified index is selectable. + + + + + Disables (or enables) the item at the specified index. + Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter). + + + + + Returns if the item at the specified index is disabled. + + + + + Sets a value (of any type) to be stored with the item associated with the specified index. + + + + + Returns the metadata value of the specified index. + + + + + Sets the background color of the item specified by index to the specified . + + + + + Returns the custom background color of the item specified by index. + + + + + Sets the foreground color of the item specified by index to the specified . + + + + + Returns the custom foreground color of the item specified by index. + + + + + Returns the position and size of the item with the specified index, in the coordinate system of the node. If is the last column expands to fill the rest of the row. + Note: The returned value is unreliable if called right after modifying the , before it redraws in the next frame. + + + + + Sets whether the tooltip hint is enabled for specified item index. + + + + + Returns if the tooltip is enabled for specified item index. + + + + + Sets the tooltip hint for the item associated with the specified index. + + + + + Returns the tooltip hint associated with the specified index. + + + + + Select the item at the specified index. + Note: This method does not trigger the item selection signal. + + + + + Ensures the item associated with the specified index is not selected. + + + + + Ensures there are no items selected. + + + + + Returns if the item at the specified index is currently selected. + + + + + Returns an array with the indexes of the selected items. + + + + + Moves item from index to . + + + + + Removes the item specified by index from the list. + + + + + Removes all items from the list. + + + + + Sorts items in the list by their text. + + + + + Returns if one or more items are selected. + + + + + Returns the item index at the given . + When there is no item at that point, -1 will be returned if is , and the closest item index will be returned otherwise. + Note: The returned value is unreliable if called right after modifying the , before it redraws in the next frame. + + + + + Ensure current selection is visible, adjusting the scroll position as necessary. + + + + + Returns the vertical scrollbar. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Forces an update to the list size based on its items. This happens automatically whenever size of the items, or other relevant settings like , change. The method can be used to trigger the update ahead of next drawing pass. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when specified item has been selected. Only applicable in single selection mode. + must be enabled to reselect an item. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when any mouse click is issued within the rect of the list but on empty space. + atPosition is the click position in this control's local coordinate system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when specified list item has been clicked with any mouse button. + atPosition is the click position in this control's local coordinate system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a multiple selection is altered on a list allowing multiple selection. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when specified list item is activated via double-clicking or by pressing Enter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'select_mode' property. + + + + + Cached name for the 'allow_reselect' property. + + + + + Cached name for the 'allow_rmb_select' property. + + + + + Cached name for the 'allow_search' property. + + + + + Cached name for the 'max_text_lines' property. + + + + + Cached name for the 'auto_width' property. + + + + + Cached name for the 'auto_height' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached name for the 'max_columns' property. + + + + + Cached name for the 'same_column_width' property. + + + + + Cached name for the 'fixed_column_width' property. + + + + + Cached name for the 'icon_mode' property. + + + + + Cached name for the 'icon_scale' property. + + + + + Cached name for the 'fixed_icon_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'set_item_text_direction' method. + + + + + Cached name for the 'get_item_text_direction' method. + + + + + Cached name for the 'set_item_language' method. + + + + + Cached name for the 'get_item_language' method. + + + + + Cached name for the 'set_item_auto_translate_mode' method. + + + + + Cached name for the 'get_item_auto_translate_mode' method. + + + + + Cached name for the 'set_item_icon_transposed' method. + + + + + Cached name for the 'is_item_icon_transposed' method. + + + + + Cached name for the 'set_item_icon_region' method. + + + + + Cached name for the 'get_item_icon_region' method. + + + + + Cached name for the 'set_item_icon_modulate' method. + + + + + Cached name for the 'get_item_icon_modulate' method. + + + + + Cached name for the 'set_item_selectable' method. + + + + + Cached name for the 'is_item_selectable' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'set_item_metadata' method. + + + + + Cached name for the 'get_item_metadata' method. + + + + + Cached name for the 'set_item_custom_bg_color' method. + + + + + Cached name for the 'get_item_custom_bg_color' method. + + + + + Cached name for the 'set_item_custom_fg_color' method. + + + + + Cached name for the 'get_item_custom_fg_color' method. + + + + + Cached name for the 'get_item_rect' method. + + + + + Cached name for the 'set_item_tooltip_enabled' method. + + + + + Cached name for the 'is_item_tooltip_enabled' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'deselect_all' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'get_selected_items' method. + + + + + Cached name for the 'move_item' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'sort_items_by_text' method. + + + + + Cached name for the 'set_fixed_column_width' method. + + + + + Cached name for the 'get_fixed_column_width' method. + + + + + Cached name for the 'set_same_column_width' method. + + + + + Cached name for the 'is_same_column_width' method. + + + + + Cached name for the 'set_max_text_lines' method. + + + + + Cached name for the 'get_max_text_lines' method. + + + + + Cached name for the 'set_max_columns' method. + + + + + Cached name for the 'get_max_columns' method. + + + + + Cached name for the 'set_select_mode' method. + + + + + Cached name for the 'get_select_mode' method. + + + + + Cached name for the 'set_icon_mode' method. + + + + + Cached name for the 'get_icon_mode' method. + + + + + Cached name for the 'set_fixed_icon_size' method. + + + + + Cached name for the 'get_fixed_icon_size' method. + + + + + Cached name for the 'set_icon_scale' method. + + + + + Cached name for the 'get_icon_scale' method. + + + + + Cached name for the 'set_allow_rmb_select' method. + + + + + Cached name for the 'get_allow_rmb_select' method. + + + + + Cached name for the 'set_allow_reselect' method. + + + + + Cached name for the 'get_allow_reselect' method. + + + + + Cached name for the 'set_allow_search' method. + + + + + Cached name for the 'get_allow_search' method. + + + + + Cached name for the 'set_auto_width' method. + + + + + Cached name for the 'has_auto_width' method. + + + + + Cached name for the 'set_auto_height' method. + + + + + Cached name for the 'has_auto_height' method. + + + + + Cached name for the 'is_anything_selected' method. + + + + + Cached name for the 'get_item_at_position' method. + + + + + Cached name for the 'ensure_current_is_visible' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'force_update_list_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'item_selected' signal. + + + + + Cached name for the 'empty_clicked' signal. + + + + + Cached name for the 'item_clicked' signal. + + + + + Cached name for the 'multi_selected' signal. + + + + + Cached name for the 'item_activated' signal. + + + + + The JNISingleton is implemented only in the Android export. It's used to call methods and connect signals from an Android plugin written in Java or Kotlin. Methods and signals can be called and connected to the JNISingleton as if it is a Node. See Java Native Interface - Wikipedia for more information. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class enables all data types to be converted to and from a JSON string. This is useful for serializing data, e.g. to save to a file or send over the network. + is used to convert any data type into a JSON string. + is used to convert any existing JSON data into a that can be used within Godot. If successfully parsed, use to retrieve the , and use @GlobalScope.typeof to check if the Variant's type is what you expect. JSON Objects are converted into a , but JSON data can be used to store s, numbers, s and even just a boolean. + + var data_to_send = ["a", "b", "c"] + var json_string = JSON.stringify(data_to_send) + # Save data + # ... + # Retrieve data + var json = JSON.new() + var error = json.parse(json_string) + if error == OK: + var data_received = json.data + if typeof(data_received) == TYPE_ARRAY: + print(data_received) # Prints array + else: + print("Unexpected data") + else: + print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line()) + + Alternatively, you can parse strings using the static method, but it doesn't handle errors. + + var data = JSON.parse_string(json_string) # Returns null if parsing failed. + + Note: Both parse methods do not fully comply with the JSON specification: + - Trailing commas in arrays or objects are ignored, instead of causing a parser error. + - New line and tab characters are accepted in string literals, and are treated like their corresponding escape sequences \n and \t. + - Numbers are parsed using String.to_float which is generally more lax than the JSON specification. + - Certain errors, such as invalid Unicode sequences, do not cause a parser error. Instead, the string is cleaned up and an error is logged to the console. + + + + + Contains the parsed JSON data in form. + + + + + Converts a var to JSON text and returns the result. Useful for serializing data to store or send over the network. + Note: The JSON specification does not define integer or float types, but only a number type. Therefore, converting a Variant to JSON text will convert all numerical values to types. + Note: If is , when stringifying floats, the unreliable digits are stringified in addition to the reliable digits to guarantee exact decoding. + The parameter controls if and how something is indented; its contents will be used where there should be an indent in the output. Even spaces like " " will work. \t and \n can also be used for a tab indent, or to make a newline for each indent respectively. + Example output: + + ## JSON.stringify(my_dictionary) + {"name":"my_dictionary","version":"1.0.0","entities":[{"name":"entity_0","value":"value_0"},{"name":"entity_1","value":"value_1"}]} + + ## JSON.stringify(my_dictionary, "\t") + { + "name": "my_dictionary", + "version": "1.0.0", + "entities": [ + { + "name": "entity_0", + "value": "value_0" + }, + { + "name": "entity_1", + "value": "value_1" + } + ] + } + + ## JSON.stringify(my_dictionary, "...") + { + ..."name": "my_dictionary", + ..."version": "1.0.0", + ..."entities": [ + ......{ + ........."name": "entity_0", + ........."value": "value_0" + ......}, + ......{ + ........."name": "entity_1", + ........."value": "value_1" + ......} + ...] + } + + + + + + Attempts to parse the provided and returns the parsed data. Returns if parse failed. + + + + + Attempts to parse the provided. + Returns an . If the parse was successful, it returns and the result can be retrieved using . If unsuccessful, use and to identify the source of the failure. + Non-static variant of , if you want custom error handling. + The optional argument instructs the parser to keep a copy of the original text. This text can be obtained later by using the function and is used when saving the resource (instead of generating new text from ). + + + + + Return the text parsed by (requires passing keep_text to ). + + + + + Returns 0 if the last call to was successful, or the line number where the parse failed. + + + + + Returns an empty string if the last call to was successful, or the error message if it failed. + + + + + Converts a native engine type to a JSON-compliant value. + By default, objects are ignored for security reasons, unless is . + You can convert a native value to a JSON string like this: + + func encode_data(value, full_objects = false): + return JSON.stringify(JSON.from_native(value, full_objects)) + + + + + + Converts a JSON-compliant value that was created with back to native engine types. + By default, objects are ignored for security reasons, unless is . + You can convert a JSON string back to a native value like this: + + func decode_data(string, allow_objects = false): + return JSON.to_native(JSON.parse_string(string), allow_objects) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'stringify' method. + + + + + Cached name for the 'parse_string' method. + + + + + Cached name for the 'parse' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_parsed_text' method. + + + + + Cached name for the 'get_error_line' method. + + + + + Cached name for the 'get_error_message' method. + + + + + Cached name for the 'from_native' method. + + + + + Cached name for the 'to_native' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + JSON-RPC is a standard which wraps a method call in a 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 ; you will have to convert between a and with other functions. + + + + + The request could not be parsed as it was not valid by JSON standard ( failed). + + + + + A method call was requested but the request's format is not valid. + + + + + A method call was requested but no function of that name existed in the JSONRPC subclass. + + + + + A method call was requested but the given method parameters are not valid. Not used by the built-in JSONRPC. + + + + + An internal error occurred while processing the request. Not used by the built-in JSONRPC. + + + + + Given a Dictionary which takes the form of a JSON-RPC request: unpack the request and run it. Methods are resolved by looking at the field called "method" and looking for an equivalently named function in the JSONRPC object. If one is found that method is called. + To add new supported methods extend the JSONRPC class and call on your subclass. + : The action to be run, as a Dictionary in the form of a JSON-RPC request or notification. + + + + + Returns a dictionary in the form of a JSON-RPC request. Requests are sent to a server with the expectation of a response. The ID field is used for the server to specify which exact request it is responding to. + - : Name of the method being called. + - : An array or dictionary of parameters being passed to the method. + - : Uniquely identifies this request. The server is expected to send a response with the same ID. + + + + + When a server has received and processed a request, it is expected to send a response. If you did not want a response then you need to have sent a Notification instead. + - : The return value of the function which was called. + - : The ID of the request this response is targeted to. + + + + + Returns a dictionary in the form of a JSON-RPC notification. Notifications are one-shot messages which do not expect a response. + - : Name of the method being called. + - : An array or dictionary of parameters being passed to the method. + + + + + Creates a response which indicates a previous reply has failed in some way. + - : The error code corresponding to what kind of error this is. See the constants. + - : A custom message about this error. + - : The request this error is a response to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_scope' method. + + + + + Cached name for the 'process_action' method. + + + + + Cached name for the 'process_string' method. + + + + + Cached name for the 'make_request' method. + + + + + Cached name for the 'make_response' method. + + + + + Cached name for the 'make_notification' method. + + + + + Cached name for the 'make_response_error' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a class from the Java Native Interface. It is returned from . + Note: This class only works on Android. On any other platform, this class does nothing. + Note: This class is not to be confused with . + + + + + Returns the Java class name. + + + + + Returns the object's Java methods and their signatures as an of dictionaries, in the same format as . + + + + + Returns a representing the Java parent class of this class. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_java_class_name' method. + + + + + Cached name for the 'get_java_method_list' method. + + + + + Cached name for the 'get_java_parent_class' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The JavaClassWrapper singleton provides a way for the Godot application to send and receive data through the Java Native Interface (JNI). + Note: This singleton is only available in Android builds. + + var LocalDateTime = JavaClassWrapper.wrap("java.time.LocalDateTime") + var DateTimeFormatter = JavaClassWrapper.wrap("java.time.format.DateTimeFormatter") + + var datetime = LocalDateTime.now() + var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss") + + print(datetime.format(formatter)) + + + + + + Wraps a class defined in Java, and returns it as a type that Godot can interact with. + Note: This method only works on Android. On every other platform, this method does nothing and returns an empty . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'wrap' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The JavaClassWrapper singleton provides a way for the Godot application to send and receive data through the Java Native Interface (JNI). + Note: This singleton is only available in Android builds. + + var LocalDateTime = JavaClassWrapper.wrap("java.time.LocalDateTime") + var DateTimeFormatter = JavaClassWrapper.wrap("java.time.format.DateTimeFormatter") + + var datetime = LocalDateTime.now() + var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss") + + print(datetime.format(formatter)) + + + + + + Wraps a class defined in Java, and returns it as a type that Godot can interact with. + Note: This method only works on Android. On every other platform, this method does nothing and returns an empty . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'wrap' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents an object from the Java Native Interface. It can be returned from Java methods called on or other s. See for an example. + Note: This class only works on Android. On any other platform, this class does nothing. + Note: This class is not to be confused with . + + + + + Returns the that this object is an instance of. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_java_class' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs. + Note: This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See Compiling for the Web in the documentation for more information. + + + + + Execute the string as JavaScript code within the browser window. This is a call to the actual global JavaScript function eval(). + If is , the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment. + + + + + Returns an interface to a JavaScript object that can be used by scripts. The must be a valid property of the JavaScript window. The callback must accept a single argument, which will contain the JavaScript arguments. See for usage. + + + + + Creates a reference to a that can be used as a callback by JavaScript. The reference must be kept until the callback happens, or it won't be called at all. See for usage. + + + + + Returns if the given is of type ArrayBuffer, DataView, or one of the many typed array objects. + + + + + Returns a copy of 's contents as a []. See also . + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Returns if a new version of the progressive web app is waiting to be activated. + Note: Only relevant when exported as a Progressive Web App. + + + + + Performs the live update of the progressive web app. Forcing the new version to be installed and the page to be reloaded. + Note: Your application will be reloaded in all browser tabs. + Note: Only relevant when exported as a Progressive Web App and returns . + + + + + Force synchronization of the persistent file system (when enabled). + Note: This is only useful for modules or extensions that can't use to write files. + + + + + Emitted when an update for this progressive web app has been detected but is waiting to be activated because a previous version is active. See to force the update to take place immediately. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'eval' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'create_callback' method. + + + + + Cached name for the 'is_js_buffer' method. + + + + + Cached name for the 'js_buffer_to_packed_byte_array' method. + + + + + Cached name for the 'create_object' method. + + + + + Cached name for the 'download_buffer' method. + + + + + Cached name for the 'pwa_needs_update' method. + + + + + Cached name for the 'pwa_update' method. + + + + + Cached name for the 'force_fs_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pwa_update_available' signal. + + + + + The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs. + Note: This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See Compiling for the Web in the documentation for more information. + + + + + Execute the string as JavaScript code within the browser window. This is a call to the actual global JavaScript function eval(). + If is , the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment. + + + + + Returns an interface to a JavaScript object that can be used by scripts. The must be a valid property of the JavaScript window. The callback must accept a single argument, which will contain the JavaScript arguments. See for usage. + + + + + Creates a reference to a that can be used as a callback by JavaScript. The reference must be kept until the callback happens, or it won't be called at all. See for usage. + + + + + Returns if the given is of type ArrayBuffer, DataView, or one of the many typed array objects. + + + + + Returns a copy of 's contents as a []. See also . + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Returns if a new version of the progressive web app is waiting to be activated. + Note: Only relevant when exported as a Progressive Web App. + + + + + Performs the live update of the progressive web app. Forcing the new version to be installed and the page to be reloaded. + Note: Your application will be reloaded in all browser tabs. + Note: Only relevant when exported as a Progressive Web App and returns . + + + + + Force synchronization of the persistent file system (when enabled). + Note: This is only useful for modules or extensions that can't use to write files. + + + + + Emitted when an update for this progressive web app has been detected but is waiting to be activated because a previous version is active. See to force the update to take place immediately. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'eval' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'create_callback' method. + + + + + Cached name for the 'is_js_buffer' method. + + + + + Cached name for the 'js_buffer_to_packed_byte_array' method. + + + + + Cached name for the 'create_object' method. + + + + + Cached name for the 'download_buffer' method. + + + + + Cached name for the 'pwa_needs_update' method. + + + + + Cached name for the 'pwa_update' method. + + + + + Cached name for the 'force_fs_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pwa_update_available' signal. + + + + + JavaScriptObject is used to interact with JavaScript objects retrieved or created via , , or . + + extends Node + + var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # This reference must be kept + var console = JavaScriptBridge.get_interface("console") + + func _init(): + var buf = JavaScriptBridge.create_object("ArrayBuffer", 10) # new ArrayBuffer(10) + print(buf) # prints [JavaScriptObject:OBJECT_ID] + var uint8arr = JavaScriptBridge.create_object("Uint8Array", buf) # new Uint8Array(buf) + uint8arr[1] = 255 + prints(uint8arr[1], uint8arr.byteLength) # prints 255 10 + console.log(uint8arr) # prints in browser console "Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, 0 ]" + + # Equivalent of JavaScriptBridge: Array.from(uint8arr).forEach(myCallback) + JavaScriptBridge.get_interface("Array").from(uint8arr).forEach(_my_js_callback) + + func myCallback(args): + # Will be called with the parameters passed to the "forEach" callback + # [0, 0, [JavaScriptObject:1173]] + # [255, 1, [JavaScriptObject:1173]] + # ... + # [0, 9, [JavaScriptObject:1180]] + print(args) + + Note: Only available in the Web platform. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all joints in 2D physics. 2D joints bind together two physics bodies ( and ) and apply a constraint. + + + + + Path to the first body (A) attached to the joint. The node must inherit . + + + + + Path to the second body (B) attached to the joint. The node must inherit . + + + + + When and move in different directions the controls how fast the joint pulls them back to their original position. The lower the the more the two bodies can pull on the joint. + When set to 0, the default value from ProjectSettings.physics/2d/solver/default_constraint_bias is used. + + + + + If , the two bodies bound together do not collide with each other. + + + + + Returns the joint's internal from the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'node_a' property. + + + + + Cached name for the 'node_b' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'disable_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_node_a' method. + + + + + Cached name for the 'get_node_a' method. + + + + + Cached name for the 'set_node_b' method. + + + + + Cached name for the 'get_node_b' method. + + + + + Cached name for the 'set_bias' method. + + + + + Cached name for the 'get_bias' method. + + + + + Cached name for the 'set_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all joints in 3D physics. 3D joints bind together two physics bodies ( and ) and apply a constraint. If only one body is defined, it is attached to a fixed without collision shapes. + + + + + Path to the first node (A) attached to the joint. The node must inherit . + If left empty and is set, the body is attached to a fixed without collision shapes. + + + + + Path to the second node (B) attached to the joint. The node must inherit . + If left empty and is set, the body is attached to a fixed without collision shapes. + + + + + The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority. + + + + + If , the two bodies bound together do not collide with each other. + + + + + Returns the joint's internal from the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'node_a' property. + + + + + Cached name for the 'node_b' property. + + + + + Cached name for the 'solver_priority' property. + + + + + Cached name for the 'exclude_nodes_from_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_node_a' method. + + + + + Cached name for the 'get_node_a' method. + + + + + Cached name for the 'set_node_b' method. + + + + + Cached name for the 'get_node_b' method. + + + + + Cached name for the 'set_solver_priority' method. + + + + + Cached name for the 'get_solver_priority' method. + + + + + Cached name for the 'set_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Holds collision data from the movement of a , usually from . When a is moved, it stops if it detects a collision with another body. If a collision is detected, a 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. + + + + + Returns the point of collision in global coordinates. + + + + + Returns the colliding body's shape's normal at the point of collision. + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the collision angle according to , which is Vector2.UP by default. This value is always positive. + + If the parameter is null, then the default value is new Vector2(0.0f, -1.0f). + + + + Returns the colliding body's length of overlap along the collision normal. + + + + + Returns the moving object's colliding shape. + + + + + Returns the colliding body's attached . + + + + + Returns the unique instance ID of the colliding body's attached . See . + + + + + Returns the colliding body's used by the . + + + + + Returns the colliding body's shape. + + + + + Returns the colliding body's shape index. See . + + + + + Returns the colliding body's velocity. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_normal' method. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_angle' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'get_local_shape' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collider_shape_index' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Holds collision data from the movement of a , usually from . When a is moved, it stops if it detects a collision with another body. If a collision is detected, a 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. + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the colliding body's length of overlap along the collision normal. + + + + + Returns the number of detected collisions. + + + + + Returns the point of collision in global coordinates given a collision index (the deepest collision by default). + + + + + Returns the colliding body's shape's normal at the point of collision given a collision index (the deepest collision by default). + + + + + Returns the collision angle according to , which is Vector3.UP by default. This value is always positive. + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Returns the moving object's colliding shape given a collision index (the deepest collision by default). + + + + + Returns the colliding body's attached given a collision index (the deepest collision by default). + + + + + Returns the unique instance ID of the colliding body's attached given a collision index (the deepest collision by default). See . + + + + + Returns the colliding body's used by the given a collision index (the deepest collision by default). + + + + + Returns the colliding body's shape given a collision index (the deepest collision by default). + + + + + Returns the colliding body's shape index given a collision index (the deepest collision by default). See . + + + + + Returns the colliding body's velocity given a collision index (the deepest collision by default). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_normal' method. + + + + + Cached name for the 'get_angle' method. + + + + + Cached name for the 'get_local_shape' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collider_shape_index' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 instead. + + + + + The text to display on screen. + + + + + A resource that can be shared between multiple nodes. Takes priority over theme properties. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom, and fill. Set it to one of the constants. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see . + + + + + Line fill alignment rules. See for more information. + + + + + String used as a paragraph separator. Each paragraph is processed independently, in its own BiDi context. + + + + + If , the Label only shows the text that fits inside its bounding rectangle and will clip text horizontally. + + + + + Sets the clipping behavior when the text exceeds the node's bounding rectangle. See for a description of all modes. + + + + + Ellipsis character used for text clipping. + + + + + If , all the text displays as UPPERCASE. + + + + + Aligns text to the given tab-stops. + + + + + The number of the lines ignored and not displayed from the start of the value. + + + + + Limits the lines of text the node shows on screen. + + + + + The number of characters to display. If set to -1, all characters are displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Sets the clipping behavior when or is set. See for more info. + + + + + The fraction of characters to display, relative to the total number of characters (see ). If set to 1.0, all characters are displayed. If set to 0.5, only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Returns the height of the line . + If is set to -1, returns the biggest line height. + If there are no lines, returns font size in pixels. + + + + + Returns the number of lines of text the Label has. + + + + + Returns the number of lines shown. Useful if the 's height cannot currently display all lines. + + + + + Returns the total number of printable characters in the text (excluding spaces and newlines). + + + + + Returns the bounding rectangle of the character at position in the label's local coordinate system. If the character is a non-visual character or is outside the valid range, an empty is returned. If the character is a part of a composite grapheme, the bounding rectangle of the whole grapheme is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'label_settings' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'paragraph_separator' property. + + + + + Cached name for the 'clip_text' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'ellipsis_char' property. + + + + + Cached name for the 'uppercase' property. + + + + + Cached name for the 'tab_stops' property. + + + + + Cached name for the 'lines_skipped' property. + + + + + Cached name for the 'max_lines_visible' property. + + + + + Cached name for the 'visible_characters' property. + + + + + Cached name for the 'visible_characters_behavior' property. + + + + + Cached name for the 'visible_ratio' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_label_settings' method. + + + + + Cached name for the 'get_label_settings' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_paragraph_separator' method. + + + + + Cached name for the 'get_paragraph_separator' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_clip_text' method. + + + + + Cached name for the 'is_clipping_text' method. + + + + + Cached name for the 'set_tab_stops' method. + + + + + Cached name for the 'get_tab_stops' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_ellipsis_char' method. + + + + + Cached name for the 'get_ellipsis_char' method. + + + + + Cached name for the 'set_uppercase' method. + + + + + Cached name for the 'is_uppercase' method. + + + + + Cached name for the 'get_line_height' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'get_visible_line_count' method. + + + + + Cached name for the 'get_total_character_count' method. + + + + + Cached name for the 'set_visible_characters' method. + + + + + Cached name for the 'get_visible_characters' method. + + + + + Cached name for the 'get_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_ratio' method. + + + + + Cached name for the 'get_visible_ratio' method. + + + + + Cached name for the 'set_lines_skipped' method. + + + + + Cached name for the 'get_lines_skipped' method. + + + + + Cached name for the 'set_max_lines_visible' method. + + + + + Cached name for the 'get_max_lines_visible' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_character_bounds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + If set, lights in the environment affect the label. + + + + + If set, text can be seen from the back as well. If not, the text is invisible when looking at it from behind. + + + + + 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. + + + + + Label is scaled by depth so that it always appears the same size on screen. + + + + + Represents the size of the enum. + + + + + This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping. has no effect when this transparency mode is used; the will never cast shadows. + + + + + 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 ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa). This mode is also known as alpha testing or 1-bit transparency. + Note: This mode might have issues with anti-aliased fonts and outlines, try adjusting or using MSDF font. + Note: When using text with overlapping glyphs (e.g., cursive scripts), this mode might have transparency sorting issues between the main text and the outline. + + + + + This mode draws fully opaque pixels in the depth prepass. This is slower than or , but it allows displaying translucent areas and smooth edges while using proper sorting. + Note: When using text with overlapping glyphs (e.g., cursive scripts), this mode might have transparency sorting issues between the main text and the outline. + + + + + This mode draws cuts off all values below a spatially-deterministic threshold, the rest will remain opaque. + + + + + The size of one pixel's width on the label to scale it in 3D. To make the font look more detailed when up close, increase while decreasing at the same time. + + + + + The text drawing offset (in pixels). + + + + + The billboard mode to use for the label. See for possible values. + + + + + If , the in the has effects on the label. + + + + + If , text can be seen from the back as well, if , it is invisible when looking at it from behind. + + + + + If , depth testing is disabled and the object will be drawn in render order. + + + + + If , the label is rendered at the same size regardless of distance. + + + + + The alpha cutting mode to use for the sprite. See for possible values. + + + + + Threshold at which the alpha scissor will discard values. + + + + + The hashing scale for Alpha Hash. Recommended values between 0 and 2. + + + + + The type of alpha antialiasing to apply. See . + + + + + Threshold at which antialiasing will be applied on the alpha channel. + + + + + Filter flags for the texture. See for options. + + + + + Sets the render priority for the text. Higher priority objects will be sorted in front of lower priority objects. + Note: This only applies if is set to (default value). + Note: This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority). + + + + + Sets the render priority for the text outline. Higher priority objects will be sorted in front of lower priority objects. + Note: This only applies if is set to (default value). + Note: This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority). + + + + + Text of the . + + + + + The tint of text outline. + + + + + The text to display on screen. + + + + + Font configuration used to display text. + + + + + Font size of the 's text. To make the font look more detailed when up close, increase while decreasing at the same time. + Higher font sizes require more time to render new characters, which can cause stuttering during gameplay. + + + + + Text outline size. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom. Set it to one of the constants. + + + + + If , all the text displays as UPPERCASE. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see . + + + + + Line fill alignment rules. See for more information. + + + + + Text width (in pixels), used for autowrap and fill alignment. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + If , the specified flag will be enabled. See for a list of flags. + + + + + Returns the value of the specified flag. + + + + + Returns a with the label's vertices following its current configuration (such as its ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pixel_size' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'billboard' property. + + + + + Cached name for the 'shaded' property. + + + + + Cached name for the 'double_sided' property. + + + + + Cached name for the 'no_depth_test' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'alpha_cut' property. + + + + + Cached name for the 'alpha_scissor_threshold' property. + + + + + Cached name for the 'alpha_hash_scale' property. + + + + + Cached name for the 'alpha_antialiasing_mode' property. + + + + + Cached name for the 'alpha_antialiasing_edge' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'render_priority' property. + + + + + Cached name for the 'outline_render_priority' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'outline_modulate' property. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'font' property. + + + + + Cached name for the 'font_size' property. + + + + + Cached name for the 'outline_size' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'uppercase' property. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_outline_modulate' method. + + + + + Cached name for the 'get_outline_modulate' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_uppercase' method. + + + + + Cached name for the 'is_uppercase' method. + + + + + Cached name for the 'set_render_priority' method. + + + + + Cached name for the 'get_render_priority' method. + + + + + Cached name for the 'set_outline_render_priority' method. + + + + + Cached name for the 'get_outline_render_priority' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'set_outline_size' method. + + + + + Cached name for the 'get_outline_size' method. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_pixel_size' method. + + + + + Cached name for the 'get_pixel_size' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_draw_flag' method. + + + + + Cached name for the 'get_draw_flag' method. + + + + + Cached name for the 'set_billboard_mode' method. + + + + + Cached name for the 'get_billboard_mode' method. + + + + + Cached name for the 'set_alpha_cut_mode' method. + + + + + Cached name for the 'get_alpha_cut_mode' method. + + + + + Cached name for the 'set_alpha_scissor_threshold' method. + + + + + Cached name for the 'get_alpha_scissor_threshold' method. + + + + + Cached name for the 'set_alpha_hash_scale' method. + + + + + Cached name for the 'get_alpha_hash_scale' method. + + + + + Cached name for the 'set_alpha_antialiasing' method. + + + + + Cached name for the 'get_alpha_antialiasing' method. + + + + + Cached name for the 'set_alpha_antialiasing_edge' method. + + + + + Cached name for the 'get_alpha_antialiasing_edge' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'generate_triangle_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a resource that provides common settings to customize the text in a . It will take priority over the properties defined in . The resource can be shared between multiple labels and changed on the fly, so it's convenient and flexible way to setup text style. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + Vertical space between paragraphs. Added on top of . + + + + + used for the text. + + + + + Size of the text. + + + + + Color of the text. + + + + + Text outline size. + + + + + The color of the outline. + + + + + Size of the shadow effect. + + + + + Color of the shadow effect. If alpha is 0, no shadow will be drawn. + + + + + Offset of the shadow effect, in pixels. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached name for the 'paragraph_spacing' property. + + + + + Cached name for the 'font' property. + + + + + Cached name for the 'font_size' property. + + + + + Cached name for the 'font_color' property. + + + + + Cached name for the 'outline_size' property. + + + + + Cached name for the 'outline_color' property. + + + + + Cached name for the 'shadow_size' property. + + + + + Cached name for the 'shadow_color' property. + + + + + Cached name for the 'shadow_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'set_paragraph_spacing' method. + + + + + Cached name for the 'get_paragraph_spacing' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'set_font_color' method. + + + + + Cached name for the 'get_font_color' method. + + + + + Cached name for the 'set_outline_size' method. + + + + + Cached name for the 'get_outline_size' method. + + + + + Cached name for the 'set_outline_color' method. + + + + + Cached name for the 'get_outline_color' method. + + + + + Cached name for the 'set_shadow_size' method. + + + + + Cached name for the 'get_shadow_size' method. + + + + + Cached name for the 'set_shadow_color' method. + + + + + Cached name for the 'get_shadow_color' method. + + + + + Cached name for the 'set_shadow_offset' method. + + + + + Cached name for the 'get_shadow_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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). + + + + + No filter applies to the shadow map. This provides hard shadow edges and is the fastest to render. See . + + + + + Percentage closer filtering (5 samples) applies to the shadow map. This is slower compared to hard shadow rendering. See . + + + + + Percentage closer filtering (13 samples) applies to the shadow map. This is the slowest shadow filtering mode, and should be used sparingly. See . + + + + + Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behavior of a light. + + + + + Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect. + + + + + Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation. + + + + + If , Light2D will emit light. + + + + + If , Light2D will only appear when editing the scene. + + + + + The Light2D's . + + + + + The Light2D's energy value. The larger the value, the stronger the light. + + + + + The Light2D's blend mode. See constants for values. + + + + + Minimum z value of objects that are affected by the Light2D. + + + + + Maximum z value of objects that are affected by the Light2D. + + + + + Minimum layer value of objects that are affected by the Light2D. + + + + + Maximum layer value of objects that are affected by the Light2D. + + + + + The layer mask. Only objects with a matching will be affected by the Light2D. See also , which affects which objects can cast shadows. + Note: is ignored by , which will always light a 2D node regardless of the 2D node's . + + + + + If , the Light2D will cast shadows. + + + + + of shadows cast by the Light2D. + + + + + Shadow filter type. See for possible values. + + + + + Smoothing value for shadows. Higher values will result in softer shadows, at the cost of visible streaks that can appear in shadow rendering. only has an effect if is or . + + + + + The shadow mask. Used with to cast shadows. Only occluders with a matching will cast shadows. See also , which affects which objects can receive the light. + + + + + Sets the light's height, which is used in 2D normal mapping. See and . + + + + + Returns the light's height, which is used in 2D normal mapping. See and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'editor_only' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'energy' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'range_z_min' property. + + + + + Cached name for the 'range_z_max' property. + + + + + Cached name for the 'range_layer_min' property. + + + + + Cached name for the 'range_layer_max' property. + + + + + Cached name for the 'range_item_cull_mask' property. + + + + + Cached name for the 'shadow_enabled' property. + + + + + Cached name for the 'shadow_color' property. + + + + + Cached name for the 'shadow_filter' property. + + + + + Cached name for the 'shadow_filter_smooth' property. + + + + + Cached name for the 'shadow_item_cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_editor_only' method. + + + + + Cached name for the 'is_editor_only' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_energy' method. + + + + + Cached name for the 'get_energy' method. + + + + + Cached name for the 'set_z_range_min' method. + + + + + Cached name for the 'get_z_range_min' method. + + + + + Cached name for the 'set_z_range_max' method. + + + + + Cached name for the 'get_z_range_max' method. + + + + + Cached name for the 'set_layer_range_min' method. + + + + + Cached name for the 'get_layer_range_min' method. + + + + + Cached name for the 'set_layer_range_max' method. + + + + + Cached name for the 'get_layer_range_max' method. + + + + + Cached name for the 'set_item_cull_mask' method. + + + + + Cached name for the 'get_item_cull_mask' method. + + + + + Cached name for the 'set_item_shadow_cull_mask' method. + + + + + Cached name for the 'get_item_shadow_cull_mask' method. + + + + + Cached name for the 'set_shadow_enabled' method. + + + + + Cached name for the 'is_shadow_enabled' method. + + + + + Cached name for the 'set_shadow_smooth' method. + + + + + Cached name for the 'get_shadow_smooth' method. + + + + + Cached name for the 'set_shadow_filter' method. + + + + + Cached name for the 'get_shadow_filter' method. + + + + + Cached name for the 'set_shadow_color' method. + + + + + Cached name for the 'get_shadow_color' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Light3D is the abstract base class for light nodes. As it can't be instantiated, it shouldn't be used directly. Other types of light nodes inherit from it. Light3D contains the common variables and parameters used for lighting. + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing or . + + + + + Constant for accessing . + + + + + Constant for accessing or . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing and . Only used when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . + + + + + Represents the size of the enum. + + + + + 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. + Note: Hiding a light does not affect baking . Hiding a light will still affect baking and SDFGI (see ). + + + + + Light is taken into account in static baking (, , SDFGI ()). 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. + Note: The light is not baked in if is . + + + + + Light is taken into account in dynamic baking ( and SDFGI () 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 . This has a greater performance cost compared to . When using SDFGI, the update speed of dynamic lights is affected by ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Used by positional lights ( and ) when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . Sets the intensity of the light source measured in Lumens. Lumens are a measure of luminous flux, which is the total amount of visible light emitted by a light source per unit of time. + For s, we assume that the area outside the visible cone is surrounded by a perfect light absorbing material. Accordingly, the apparent brightness of the cone area does not change as the cone increases and decreases in size. + A typical household lightbulb can range from around 600 lumens to 1,200 lumens, a candle is about 13 lumens, while a streetlight can be approximately 60,000 lumens. + + + + + Used by s when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . Sets the intensity of the light source measured in Lux. Lux is a measure of luminous flux per unit area, it is equal to one lumen per square meter. Lux is the measure of how much light hits a surface at a given time. + On a clear sunny day a surface in direct sunlight may be approximately 100,000 lux, a typical room in a home may be approximately 50 lux, while the moonlit ground may be approximately 0.1 lux. + + + + + Sets the color temperature of the light source, measured in Kelvin. This is used to calculate a correlated color temperature which tints the . + The sun on a cloudy day is approximately 6500 Kelvin, on a clear day it is between 5500 to 6000 Kelvin, and on a clear day at sunrise or sunset it ranges to around 1850 Kelvin. + + + + + The light's color. An overbright color can be used to achieve a result equivalent to increasing the light's . + + + + + The light's strength multiplier (this is not a physical unit). For and , changing this value will only change the light color's intensity, not the light's radius. + + + + + Secondary multiplier used with indirect light (light bounces). Used with and SDFGI (see ). + Note: This property is ignored if is equal to 0.0, as the light won't be present at all in the GI shader. + + + + + Secondary multiplier multiplied with then used with the 's volumetric fog (if enabled). If set to 0.0, computing volumetric fog will be skipped for this light, which can improve performance for large amounts of lights when volumetric fog is enabled. + Note: To prevent short-lived dynamic light effects from poorly interacting with volumetric fog, lights used in those effects should have set to 0.0 unless is disabled (or unless the reprojection amount is significantly lowered). + + + + + projected by light. must be on for the projector to work. Light projectors make the light appear as if it is shining through a colored but transparent object, almost like light shining through stained-glass. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for light projector textures is set globally with ProjectSettings.rendering/textures/light_projectors/filter. + Note: Light projector textures are only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + The size of the light in Godot units. Only available for s and s. Increasing this value will make the light fade out slower and shadows appear blurrier (also called percentage-closer soft shadows, or PCSS). This can be used to simulate area lights to an extent. Increasing this value above 0.0 for lights with shadows enabled will have a noticeable performance cost due to PCSS. + Note: is not affected by (the light's scale or its parent's scale). + Note: PCSS for positional lights is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + The light's angular size in degrees. Increasing this will make shadows softer at greater distances (also called percentage-closer soft shadows, or PCSS). Only available for s. For reference, the Sun from the Earth is approximately 0.5. Increasing this value above 0.0 for lights with shadows enabled will have a noticeable performance cost due to PCSS. + Note: is not affected by (the light's scale or its parent's scale). + Note: PCSS for directional lights is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + If , the light's effect is reversed, darkening areas and casting bright shadows. + + + + + The intensity of the specular blob in objects affected by the light. At 0, the light becomes a pure diffuse light. When not baking emission, this can be used to avoid unrealistic reflections when placing lights above an emissive surface. + + + + + The light's bake mode. This will affect the global illumination techniques that have an effect on the light's rendering. See . + Note: Meshes' global illumination mode will also affect the global illumination rendering. See . + + + + + The light will affect objects in the selected layers. + + + + + If , the light will cast real-time shadows. This has a significant performance cost. Only enable shadow rendering when it makes a noticeable difference in the scene's appearance, and consider using to hide the light when far away from the . + + + + + Used to adjust shadow appearance. Too small a value results in self-shadowing ("shadow acne"), while too large a value causes shadows to separate from casters ("peter-panning"). Adjust as needed. + + + + + Offsets the lookup into the shadow map by the object's normal. This can be used to reduce self-shadowing artifacts without using . In practice, this value should be tweaked along with to reduce artifacts as much as possible. + + + + + If , reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with . + + + + + The opacity to use when rendering the light's shadow map. Values lower than 1.0 make the light appear through shadows. This can be used to fake global illumination at a low performance cost. + + + + + Blurs the edges of the shadow. Can be used to hide pixel artifacts in low-resolution shadow maps. A high value can impact performance, make shadows appear grainy and can cause other unwanted artifacts. Try to keep as near default as possible. + + + + + The light will only cast shadows using objects in the selected layers. + + + + + If , the light will smoothly fade away when far from the active starting at . This acts as a form of level of detail (LOD). The light will fade out over + , after which it will be culled and not sent to the shader at all. Use this to reduce the number of active lights in a scene and thus improve performance. + Note: Only effective for and . + + + + + The distance from the camera at which the light begins to fade away (in 3D units). + Note: Only effective for and . + + + + + The distance from the camera at which the light's shadow cuts off (in 3D units). Set this to a value lower than + to further improve performance, as shadow rendering is often more expensive than light rendering itself. + Note: Only effective for and , and only when is . + + + + + Distance over which the light and its shadow fades. The light's energy and shadow's opacity is progressively reduced over this distance and is completely invisible at the end. + Note: Only effective for and . + + + + + If , the light only appears in the editor and will not be visible at runtime. If , the light will never be baked in regardless of its . + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + Returns the of an idealized blackbody at the given . This value is calculated internally based on the . This is multiplied by before being sent to the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'light_intensity_lumens' property. + + + + + Cached name for the 'light_intensity_lux' property. + + + + + Cached name for the 'light_temperature' property. + + + + + Cached name for the 'light_color' property. + + + + + Cached name for the 'light_energy' property. + + + + + Cached name for the 'light_indirect_energy' property. + + + + + Cached name for the 'light_volumetric_fog_energy' property. + + + + + Cached name for the 'light_projector' property. + + + + + Cached name for the 'light_size' property. + + + + + Cached name for the 'light_angular_distance' property. + + + + + Cached name for the 'light_negative' property. + + + + + Cached name for the 'light_specular' property. + + + + + Cached name for the 'light_bake_mode' property. + + + + + Cached name for the 'light_cull_mask' property. + + + + + Cached name for the 'shadow_enabled' property. + + + + + Cached name for the 'shadow_bias' property. + + + + + Cached name for the 'shadow_normal_bias' property. + + + + + Cached name for the 'shadow_reverse_cull_face' property. + + + + + Cached name for the 'shadow_transmittance_bias' property. + + + + + Cached name for the 'shadow_opacity' property. + + + + + Cached name for the 'shadow_blur' property. + + + + + Cached name for the 'shadow_caster_mask' property. + + + + + Cached name for the 'distance_fade_enabled' property. + + + + + Cached name for the 'distance_fade_begin' property. + + + + + Cached name for the 'distance_fade_shadow' property. + + + + + Cached name for the 'distance_fade_length' property. + + + + + Cached name for the 'editor_only' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_editor_only' method. + + + + + Cached name for the 'is_editor_only' method. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached name for the 'set_shadow' method. + + + + + Cached name for the 'has_shadow' method. + + + + + Cached name for the 'set_negative' method. + + + + + Cached name for the 'is_negative' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_enable_distance_fade' method. + + + + + Cached name for the 'is_distance_fade_enabled' method. + + + + + Cached name for the 'set_distance_fade_begin' method. + + + + + Cached name for the 'get_distance_fade_begin' method. + + + + + Cached name for the 'set_distance_fade_shadow' method. + + + + + Cached name for the 'get_distance_fade_shadow' method. + + + + + Cached name for the 'set_distance_fade_length' method. + + + + + Cached name for the 'get_distance_fade_length' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_shadow_reverse_cull_face' method. + + + + + Cached name for the 'get_shadow_reverse_cull_face' method. + + + + + Cached name for the 'set_shadow_caster_mask' method. + + + + + Cached name for the 'get_shadow_caster_mask' method. + + + + + Cached name for the 'set_bake_mode' method. + + + + + Cached name for the 'get_bake_mode' method. + + + + + Cached name for the 'set_projector' method. + + + + + Cached name for the 'get_projector' method. + + + + + Cached name for the 'set_temperature' method. + + + + + Cached name for the 'get_temperature' method. + + + + + Cached name for the 'get_correlated_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must be provided with an in order for the shadow to be computed. + + + + + The used to compute the shadow. + + + + + If enabled, the occluder will be part of a real-time generated signed distance field that can be used in custom shaders. + + + + + The LightOccluder2D's occluder light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'occluder' property. + + + + + Cached name for the 'sdf_collision' property. + + + + + Cached name for the 'occluder_light_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_occluder_polygon' method. + + + + + Cached name for the 'get_occluder_polygon' method. + + + + + Cached name for the 'set_occluder_light_mask' method. + + + + + Cached name for the 'get_occluder_light_mask' method. + + + + + Cached name for the 'set_as_sdf_collision' method. + + + + + Cached name for the 'is_set_as_sdf_collision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is used to compute and store baked lightmaps. Lightmaps are used to provide high-quality indirect lighting with very little light leaking. can also provide rough reflections using spherical harmonics if is enabled. Dynamic objects can receive indirect lighting thanks to light probes, which can be automatically placed by setting to a value other than . Additional lightmap probes can also be added by creating nodes. The downside is that lightmaps are fully static and cannot be baked in an exported project. Baking a node is also slower compared to . + Procedural generation: Lightmap baking functionality is only available in the editor. This means is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use or SDFGI instead (see ). + Performance: provides the best possible run-time performance for global illumination. It is suitable for low-end hardware including integrated graphics and mobile devices. + Note: Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again. + Note: Lightmap baking on s and es is not supported, as these cannot store UV2 data required for baking. + Note: If no custom lightmappers are installed, can only be baked from devices that support the Forward+ or Mobile renderers. + Note: The node only bakes light data for child nodes of its parent. Nodes further up the hierarchy of the scene will not be baked. + + + + + Low bake quality (fastest bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/low_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/low_quality_probe_ray_count. + + + + + Medium bake quality (fast bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_probe_ray_count. + + + + + High bake quality (slow bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/high_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/high_quality_probe_ray_count. + + + + + Highest bake quality (slowest bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count. + + + + + Don't generate lightmap probes for lighting dynamic objects. + + + + + Lowest level of subdivision (fastest bake times, smallest file sizes). + + + + + Low level of subdivision (fast bake times, small file sizes). + + + + + High level of subdivision (slow bake times, large file sizes). + + + + + Highest level of subdivision (slowest bake times, largest file sizes). + + + + + Lightmap baking was successful. + + + + + Lightmap baking failed because the root node for the edited scene could not be accessed. + + + + + Lightmap baking failed as the lightmap data resource is embedded in a foreign resource. + + + + + Lightmap baking failed as there is no lightmapper available in this Godot build. + + + + + Lightmap baking failed as the save path isn't configured in the resource. + + + + + Lightmap baking failed as there are no meshes whose is 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. + + + + + Lightmap baking failed as the lightmapper failed to analyze some of the meshes marked as static for baking. + + + + + Lightmap baking failed as the resulting image couldn't be saved or imported by Godot after it was saved. + + + + + The user aborted the lightmap baking operation (typically by clicking the Cancel button in the progress dialog). + + + + + Lightmap baking failed as the maximum texture size is too small to fit some of the meshes marked for baking. + + + + + Lightmap baking failed as the lightmap is too small. + + + + + Lightmap baking failed as the lightmap was unable to fit into an atlas. + + + + + Ignore environment lighting when baking lightmaps. + + + + + Use the scene's environment lighting when baking lightmaps. + Note: If baking lightmaps in a scene with no node, this will act like . The editor's preview sky and sun is not taken into account by when baking lightmaps. + + + + + Use as a source of environment lighting when baking lightmaps. + + + + + Use multiplied by as a constant source of environment lighting when baking lightmaps. + + + + + The quality preset to use when baking lightmaps. This affects bake times, but output file sizes remain mostly identical across quality levels. + To further speed up bake times, decrease , disable and increase the lightmap texel size on 3D scenes in the Import dock. + + + + + Number of light bounces that are taken into account during baking. Higher values result in brighter, more realistic lighting, at the cost of longer bake times. If set to 0, only environment lighting, direct light and emissive lighting is baked. + + + + + The energy multiplier for each bounce. Higher values will make indirect lighting brighter. A value of 1.0 represents physically accurate behavior, but higher values can be used to make indirect lighting propagate more visibly when using a low number of bounces. This can be used to speed up bake times by lowering the number of then increasing . + Note: only has an effect if is set to a value greater than or equal to 1. + + + + + If , bakes lightmaps to contain directional information as spherical harmonics. This results in more realistic lighting appearance, especially with normal mapped materials and for lights that have their direct light baked ( set to and with set to ). The directional information is also used to provide rough reflections for static and dynamic objects. This has a small run-time performance cost as the shader has to perform more work to interpret the direction information from the lightmap. Directional lightmaps also take longer to bake and result in larger file sizes. + Note: The property's name has no relationship with . works with all light types. + + + + + The shadowmasking policy to use for directional shadows on static objects that are baked with this instance. + Shadowmasking allows nodes to cast shadows even outside the range defined by their property. This is done by baking a texture that contains a shadowmap for the directional light, then using this texture according to the current shadowmask mode. + Note: The shadowmask texture is only created if is not . To see a difference, you need to bake lightmaps again after switching from to any other mode. + + + + + If , a texture with the lighting information will be generated to speed up the generation of indirect lighting at the cost of some accuracy. The geometry might exhibit extra light leak artifacts when using low resolution lightmaps or UVs that stretch the lightmap significantly across surfaces. Leave at its default value of if unsure. + Note: only has an effect if is set to a value greater than or equal to 1. + + + + + If , ignore environment lighting when baking lightmaps. + + + + + If , uses a GPU-based denoising algorithm on the generated lightmap. This eliminates most noise within the generated lightmap at the cost of longer bake times. File sizes are generally not impacted significantly by the use of a denoiser, although lossless compression may do a better job at compressing a denoised image. + + + + + The strength of denoising step applied to the generated lightmaps. Only effective if is and ProjectSettings.rendering/lightmapping/denoising/denoiser is set to JNLM. + + + + + The distance in pixels from which the denoiser samples. Lower values preserve more details, but may give blotchy results if the lightmap quality is not high enough. Only effective if is and ProjectSettings.rendering/lightmapping/denoising/denoiser is set to JNLM. + + + + + The bias to use when computing shadows. Increasing can fix shadow acne on the resulting baked lightmap, but can introduce peter-panning (shadows not connecting to their casters). Real-time shadows are not affected by this property. + + + + + Scales the lightmap texel density of all meshes for the current bake. This is a multiplier that builds upon the existing lightmap texel size defined in each imported 3D scene, along with the per-mesh density multiplier (which is designed to be used when the same mesh is used at different scales). Lower values will result in faster bake times. + For example, doubling doubles the lightmap texture resolution for all objects on each axis, so it will quadruple the texel count. + + + + + The maximum texture size for the generated texture atlas. Higher values will result in fewer slices being generated, but may not work on all hardware as a result of hardware limitations on texture sizes. Leave at its default value of 16384 if unsure. + + + + + The environment mode to use when baking lightmaps. + + + + + The sky to use as a source of environment lighting. Only effective if is . + + + + + The color to use for environment lighting. Only effective if is . + + + + + The color multiplier to use for environment lighting. Only effective if is . + + + + + The resource that specifies exposure levels to bake at. Auto-exposure and non exposure properties will be ignored. Exposure settings should be used to reduce the dynamic range present when baking. If exposure is too high, the will have banding artifacts or may have over-exposure artifacts. + + + + + The level of subdivision to use when automatically generating s for dynamic object lighting. Higher values result in more accurate indirect lighting on dynamic objects, at the cost of longer bake times and larger file sizes. + Note: Automatically generated s are not visible as nodes in the Scene tree dock, and cannot be modified this way after they are generated. + Note: Regardless of , direct lighting on dynamic objects is always applied using nodes in real-time. + + + + + The associated to this node. This resource is automatically created after baking, and is not meant to be created manually. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'quality' property. + + + + + Cached name for the 'bounces' property. + + + + + Cached name for the 'bounce_indirect_energy' property. + + + + + Cached name for the 'directional' property. + + + + + Cached name for the 'shadowmask_mode' property. + + + + + Cached name for the 'use_texture_for_bounces' property. + + + + + Cached name for the 'interior' property. + + + + + Cached name for the 'use_denoiser' property. + + + + + Cached name for the 'denoiser_strength' property. + + + + + Cached name for the 'denoiser_range' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'texel_scale' property. + + + + + Cached name for the 'max_texture_size' property. + + + + + Cached name for the 'environment_mode' property. + + + + + Cached name for the 'environment_custom_sky' property. + + + + + Cached name for the 'environment_custom_color' property. + + + + + Cached name for the 'environment_custom_energy' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'generate_probes_subdiv' property. + + + + + Cached name for the 'light_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_light_data' method. + + + + + Cached name for the 'get_light_data' method. + + + + + Cached name for the 'set_bake_quality' method. + + + + + Cached name for the 'get_bake_quality' method. + + + + + Cached name for the 'set_bounces' method. + + + + + Cached name for the 'get_bounces' method. + + + + + Cached name for the 'set_bounce_indirect_energy' method. + + + + + Cached name for the 'get_bounce_indirect_energy' method. + + + + + Cached name for the 'set_generate_probes' method. + + + + + Cached name for the 'get_generate_probes' method. + + + + + Cached name for the 'set_bias' method. + + + + + Cached name for the 'get_bias' method. + + + + + Cached name for the 'set_environment_mode' method. + + + + + Cached name for the 'get_environment_mode' method. + + + + + Cached name for the 'set_environment_custom_sky' method. + + + + + Cached name for the 'get_environment_custom_sky' method. + + + + + Cached name for the 'set_environment_custom_color' method. + + + + + Cached name for the 'get_environment_custom_color' method. + + + + + Cached name for the 'set_environment_custom_energy' method. + + + + + Cached name for the 'get_environment_custom_energy' method. + + + + + Cached name for the 'set_texel_scale' method. + + + + + Cached name for the 'get_texel_scale' method. + + + + + Cached name for the 'set_max_texture_size' method. + + + + + Cached name for the 'get_max_texture_size' method. + + + + + Cached name for the 'set_use_denoiser' method. + + + + + Cached name for the 'is_using_denoiser' method. + + + + + Cached name for the 'set_denoiser_strength' method. + + + + + Cached name for the 'get_denoiser_strength' method. + + + + + Cached name for the 'set_denoiser_range' method. + + + + + Cached name for the 'get_denoiser_range' method. + + + + + Cached name for the 'set_interior' method. + + + + + Cached name for the 'is_interior' method. + + + + + Cached name for the 'set_directional' method. + + + + + Cached name for the 'is_directional' method. + + + + + Cached name for the 'set_shadowmask_mode' method. + + + + + Cached name for the 'get_shadowmask_mode' method. + + + + + Cached name for the 'set_use_texture_for_bounces' method. + + + + + Cached name for the 'is_using_texture_for_bounces' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains baked lightmap and dynamic object probe data for . It is replaced every time lightmaps are baked in . + + + + + Shadowmasking is disabled. No shadowmask texture will be created when baking lightmaps. Existing shadowmask textures will be removed during baking. + + + + + Shadowmasking is enabled. Directional shadows that are outside the will be rendered using the shadowmask texture. Shadows that are inside the range will be rendered using real-time shadows exclusively. This mode allows for more precise real-time shadows up close, without the potential "smearing" effect that can occur when using lightmaps with a high texel size. The downside is that when the camera moves fast, the transition between the real-time light and shadowmask can be obvious. Also, objects that only have shadows baked in the shadowmask (and no real-time shadows) won't display any shadows up close. + + + + + Shadowmasking is enabled. Directional shadows will be rendered with real-time shadows overlaid on top of the shadowmask texture. This mode makes for smoother shadow transitions when the camera moves fast, at the cost of a potential smearing effect for directional shadows that are up close (due to the real-time shadow being mixed with a low-resolution shadowmask). Objects that only have shadows baked in the shadowmask (and no real-time shadows) will keep their shadows up close. + + + + + The lightmap atlas textures generated by the lightmapper. + + + + + The shadowmask atlas textures generated by the lightmapper. + + + + + The lightmap atlas texture generated by the lightmapper. + + + + + If is , tells the engine to treat the lightmap data as if it was baked with directional information. + Note: Changing this value on already baked lightmaps will not cause them to be baked again. This means the material appearance will look incorrect until lightmaps are baked again, in which case the value set here is discarded as the entire resource is replaced by the lightmapper. + + + + + If , lightmaps were baked with directional information. See also . + + + + + Adds an object that is considered baked within this . + + + + + Returns the number of objects that are considered baked within this . + + + + + Returns the of the baked object at index . + + + + + Clear all objects that are considered baked within this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'lightmap_textures' property. + + + + + Cached name for the 'shadowmask_textures' property. + + + + + Cached name for the 'uses_spherical_harmonics' property. + + + + + Cached name for the 'user_data' property. + + + + + Cached name for the 'probe_data' property. + + + + + Cached name for the '_uses_packed_directional' property. + + + + + Cached name for the 'light_texture' property. + + + + + Cached name for the 'light_textures' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_user_data' method. + + + + + Cached name for the '_get_user_data' method. + + + + + Cached name for the 'set_lightmap_textures' method. + + + + + Cached name for the 'get_lightmap_textures' method. + + + + + Cached name for the 'set_shadowmask_textures' method. + + + + + Cached name for the 'get_shadowmask_textures' method. + + + + + Cached name for the 'set_uses_spherical_harmonics' method. + + + + + Cached name for the 'is_using_spherical_harmonics' method. + + + + + Cached name for the '_set_uses_packed_directional' method. + + + + + Cached name for the '_is_using_packed_directional' method. + + + + + Cached name for the 'add_user' method. + + + + + Cached name for the 'get_user_count' method. + + + + + Cached name for the 'get_user_path' method. + + + + + Cached name for the 'clear_users' method. + + + + + Cached name for the '_set_probe_data' method. + + + + + Cached name for the '_get_probe_data' method. + + + + + Cached name for the 'set_light_texture' method. + + + + + Cached name for the 'get_light_texture' method. + + + + + Cached name for the '_set_light_textures_data' method. + + + + + Cached name for the '_get_light_textures_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + represents the position of a single manually placed probe for dynamic object lighting with . Lightmap probes affect the lighting of -derived nodes that have their set to . + Typically, probes are placed automatically by setting to a value other than . By creating 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. + Note: nodes that are placed after baking lightmaps are ignored by dynamic objects. You must bake lightmaps again after creating or modifying s for the probes to be effective. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class should be extended by custom lightmapper classes. Lightmappers can then be used with to provide fast baked global illumination in 3D. + Godot contains a built-in GPU-based lightmapper that uses compute shaders, but custom lightmappers can be implemented by C++ modules. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + LightmapperRD ("RD" stands for ) is the built-in GPU-based lightmapper for use with . On most dedicated GPUs, it can bake lightmaps much faster than most CPU-based lightmappers. LightmapperRD uses compute shaders to bake lightmaps, so it does not require CUDA or OpenCL libraries to be installed to be usable. + Note: Only usable when using the RenderingDevice backend (Forward+ or Mobile renderers), not Compatibility. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node draws a 2D polyline, i.e. a shape consisting of several points connected by segments. is not a mathematical polyline, i.e. the segments are not infinitely thin. It is intended for rendering and it can be colored and optionally textured. + Warning: Certain configurations may be impossible to draw nicely, such as very sharp angles. In these situations, the node uses fallback drawing logic to look decent. + Note: is drawn using a 2D mesh. + + + + + 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 ), the joint falls back to to prevent very long miters. + + + + + Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line. + + + + + Makes the polyline's joints rounded, connecting the sides of the two segments with an arc. The detail of this arc depends on . + + + + + Draws no line cap. + + + + + Draws the line cap as a box, slightly extending the first/last segment. + + + + + Draws the line cap as a semicircle attached to the first/last segment. + + + + + Takes the left pixels of the texture and renders them over the whole polyline. + + + + + Tiles the texture over the polyline. of the node must be or for it to work properly. + + + + + Stretches the texture across the polyline. of the node must be for best results. + + + + + The points of the polyline, interpreted in local 2D coordinates. Segments are drawn between the adjacent points in this array. + + + + + If and the polyline has more than 2 points, the last point and the first one will be connected by a segment. + Note: The shape of the closing segment is not guaranteed to be seamless if a is provided. + Note: The joint between the closing segment and the first segment is drawn first and it samples the and the at the beginning. This is an implementation detail that might change in a future version. + + + + + The polyline's width. + + + + + The polyline's width curve. The width of the polyline over its length will be equivalent to the value of the width curve over its domain. The width curve should be a unit . + + + + + The color of the polyline. Will not be used if a gradient is set. + + + + + The gradient is drawn through the whole line from start to finish. The will not be used if this property is set. + + + + + The texture used for the polyline. Uses for drawing style. + + + + + The style to render the of the polyline. Use constants. + + + + + The style of the connections between segments of the polyline. Use constants. + + + + + The style of the beginning of the polyline, if is . Use constants. + + + + + The style of the end of the polyline, if is . Use constants. + + + + + Determines the miter limit of the polyline. Normally, when is set to , sharp angles fall back to using the logic of joints to prevent very long miters. Higher values of this property mean that the fallback to a bevel joint will happen at sharper angles. + + + + + The smoothness used for rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. + + + + + If , the polyline's border will be anti-aliased. + Note: is not accelerated by batching when being anti-aliased. + + + + + Overwrites the position of the point at the given with the supplied . + + + + + Returns the position of the point at index . + + + + + Returns the number of points in the polyline. + + + + + Adds a point with the specified relative to the polyline's own position. If no is provided, the new point will be added to the end of the points array. + If is given, the new point is inserted before the existing point identified by index . The indices of the points after the new point get increased by 1. The provided must not exceed the number of existing points in the polyline. See . + + + + + Removes the point at index from the polyline. + + + + + Removes all points from the polyline, making it empty. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'points' property. + + + + + Cached name for the 'closed' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'width_curve' property. + + + + + Cached name for the 'default_color' property. + + + + + Cached name for the 'gradient' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_mode' property. + + + + + Cached name for the 'joint_mode' property. + + + + + Cached name for the 'begin_cap_mode' property. + + + + + Cached name for the 'end_cap_mode' property. + + + + + Cached name for the 'sharp_limit' property. + + + + + Cached name for the 'round_precision' property. + + + + + Cached name for the 'antialiased' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_points' method. + + + + + Cached name for the 'get_points' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'set_closed' method. + + + + + Cached name for the 'is_closed' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached name for the 'set_default_color' method. + + + + + Cached name for the 'get_default_color' method. + + + + + Cached name for the 'set_gradient' method. + + + + + Cached name for the 'get_gradient' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_mode' method. + + + + + Cached name for the 'get_texture_mode' method. + + + + + Cached name for the 'set_joint_mode' method. + + + + + Cached name for the 'get_joint_mode' method. + + + + + Cached name for the 'set_begin_cap_mode' method. + + + + + Cached name for the 'get_begin_cap_mode' method. + + + + + Cached name for the 'set_end_cap_mode' method. + + + + + Cached name for the 'get_end_cap_mode' method. + + + + + Cached name for the 'set_sharp_limit' method. + + + + + Cached name for the 'get_sharp_limit' method. + + + + + Cached name for the 'set_round_precision' method. + + + + + Cached name for the 'get_round_precision' method. + + + + + Cached name for the 'set_antialiased' method. + + + + + Cached name for the 'get_antialiased' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + provides an input field for editing a single line of text. + - When the control is focused using the keyboard arrow keys, it will only gain focus and not enter edit mode. + - To enter edit mode, click on the control with the mouse or press the ui_text_submit action (by default Enter or Kp Enter). + - To exit edit mode, press ui_text_submit or ui_cancel (by default Escape) actions. + - Check , , , and for more information. + Important: + - Focusing the with ui_focus_next (by default Tab) or ui_focus_prev (by default Shift + Tab) or still enters edit mode (for compatibility). + features many built-in shortcuts that are always available (Ctrl here maps to Cmd on macOS): + - Ctrl + C: Copy + - Ctrl + X: Cut + - Ctrl + V or Ctrl + Y: Paste/"yank" + - Ctrl + Z: Undo + - Ctrl + ~: Swap input direction. + - Ctrl + Shift + Z: Redo + - Ctrl + U: Delete text from the caret position to the beginning of the line + - Ctrl + K: Delete text from the caret position to the end of the line + - Ctrl + A: Select all text + - Up Arrow/Down Arrow: Move the caret to the beginning/end of the line + On macOS, some extra keyboard shortcuts are available: + - Cmd + F: Same as Right Arrow, move the caret one character right + - Cmd + B: Same as Left Arrow, move the caret one character left + - Cmd + P: Same as Up Arrow, move the caret to the previous line + - Cmd + N: Same as Down Arrow, move the caret to the next line + - Cmd + D: Same as Delete, delete the character on the right side of caret + - Cmd + H: Same as Backspace, delete the character on the left side of the caret + - Cmd + A: Same as Home, move the caret to the beginning of the line + - Cmd + E: Same as End, move the caret to the end of the line + - Cmd + Left Arrow: Same as Home, move the caret to the beginning of the line + - Cmd + Right Arrow: Same as End, move the caret to the end of the line + Note: Caret movement shortcuts listed above are not affected by . + + + + + Cuts (copies and clears) the selected text. + + + + + Copies the selected text. + + + + + 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 String.strip_escapes. + + + + + Erases the whole text. + + + + + Selects the whole text. + + + + + Undoes the previous action. + + + + + Reverse the last undo action. + + + + + ID of "Text Writing Direction" submenu. + + + + + Sets text direction to inherited. + + + + + Sets text direction to automatic. + + + + + Sets text direction to left-to-right. + + + + + Sets text direction to right-to-left. + + + + + Toggles control character display. + + + + + ID of "Insert Control Character" submenu. + + + + + Inserts left-to-right mark (LRM) character. + + + + + Inserts right-to-left mark (RLM) character. + + + + + Inserts start of left-to-right embedding (LRE) character. + + + + + Inserts start of right-to-left embedding (RLE) character. + + + + + Inserts start of left-to-right override (LRO) character. + + + + + Inserts start of right-to-left override (RLO) character. + + + + + Inserts pop direction formatting (PDF) character. + + + + + Inserts Arabic letter mark (ALM) character. + + + + + Inserts left-to-right isolate (LRI) character. + + + + + Inserts right-to-left isolate (RLI) character. + + + + + Inserts first strong isolate (FSI) character. + + + + + Inserts pop direction isolate (PDI) character. + + + + + Inserts zero width joiner (ZWJ) character. + + + + + Inserts zero width non-joiner (ZWNJ) character. + + + + + Inserts word joiner (WJ) character. + + + + + Inserts soft hyphen (SHY) character. + + + + + Represents the size of the enum. + + + + + Default text virtual keyboard. + + + + + Multiline virtual keyboard. + + + + + Virtual number keypad, useful for PIN entry. + + + + + Virtual number keypad, useful for entering fractional numbers. + + + + + Virtual phone number keypad. + + + + + Virtual keyboard with additional keys to assist with typing email addresses. + + + + + Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization. + Note: This is not supported on Web. Instead, this behaves identically to . + + + + + Virtual keyboard with additional keys to assist with typing URLs. + + + + + String value of the . + Note: Changing text using this property won't emit the signal. + + + + + Text shown when the is empty. It is not the 's default value (see ). + + + + + Text alignment as defined in the enum. + + + + + Maximum number of characters that can be entered inside the . If 0, there is no limit. + When a limit is defined, characters that would exceed are truncated. This happens both for existing contents when setting the max length, or for new text inserted in the , including pasting. + If any input text is truncated, the signal is emitted with the truncated substring as parameter: + + Text = "Hello world"; + MaxLength = 5; + // `Text` becomes "Hello". + MaxLength = 10; + Text += " goodbye"; + // `Text` becomes "Hello good". + // `text_change_rejected` is emitted with "bye" as parameter. + + + + + + If , existing text cannot be modified and new text cannot be added. + + + + + If , the width will increase to stay longer than the . It will not compress if the is shortened. + + + + + If , the context menu will appear when right-clicked. + + + + + If , the native virtual keyboard is shown when focused on platforms that support it. + + + + + Specifies the type of virtual keyboard to show. + + + + + If , the will show a clear button if is not empty, which can be used to clear the text quickly. + + + + + If , shortcut keys for context menu items are enabled, even if the context menu is disabled. + + + + + If , using middle mouse button to paste clipboard will be disabled. + Note: This method is only implemented on Linux. + + + + + If , it's impossible to select the text using mouse nor keyboard. + + + + + If , the selected text will be deselected when focus is lost. + + + + + If , allow drag and drop of selected text. + + + + + Sets the icon that will appear in the right end of the if there's no , or always, if is set to . + + + + + If , the doesn't display decoration. + + + + + If , control characters are displayed. + + + + + If , the will select the whole text when it gains focus. + + + + + If , makes the caret blink. + + + + + The interval at which the caret blinks (in seconds). + + + + + The caret's column position inside the . When set, the text may scroll to accommodate it. + + + + + If , the will always show the caret, even if focus is lost. + + + + + Allow moving caret, selecting and removing the individual composite character components. + Note: Backspace is always removing individual composite character components. + + + + + If , every character is replaced with the secret character (see ). + + + + + The character to use to mask secret input. Only a single character can be used as the secret character. If it is longer than one character, only the first one will be used. If it is empty, a space will be used instead. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms. If left empty, current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Returns if the user has text in the Input Method Editor (IME). + + + + + Closes the Input Method Editor (IME) if it is open. Any text in the IME will be lost. + + + + + Applies text from the Input Method Editor (IME) and closes the IME if it is open. + + + + + Allows entering edit mode whether the is focused or not. + Use Callable.call_deferred if you want to enter edit mode on . + + + + + Allows exiting edit mode while preserving focus. + + + + + Returns whether the is being edited. + + + + + Erases the 's . + + + + + Selects characters inside between and . By default, is at the beginning and at the end. + + Text = "Welcome"; + Select(); // Will select "Welcome". + Select(4); // Will select "ome". + Select(2, 5); // Will select "lco". + + + + + + Selects the whole . + + + + + Clears the current selection. + + + + + Returns if an "undo" action is available. + + + + + Returns if a "redo" action is available. + + + + + Returns if the user has selected text. + + + + + Returns the text inside the selection. + + + + + Returns the selection begin column. + + + + + Returns the selection end column. + + + + + Returns the scroll offset due to , as a number of characters. + + + + + Inserts at the caret. If the resulting value is longer than , nothing happens. + + + + + Deletes one character at the caret's current position (equivalent to pressing Delete). + + + + + Deletes a section of the going from position to . Both parameters should be within the text's length. + + + + + Executes a given action as defined in the enum. + + + + + Returns the of this . By default, this menu is displayed when right-clicking on the . + You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see ). For example: + + public override void _Ready() + { + var menu = GetMenu(); + // Remove all items after "Redo". + menu.ItemCount = menu.GetItemIndex(LineEdit.MenuItems.Redo) + 1; + // Add custom items. + menu.AddSeparator(); + menu.AddItem("Insert Date", LineEdit.MenuItems.Max + 1); + // Add event handler. + menu.IdPressed += OnItemPressed; + } + + public void OnItemPressed(int id) + { + if (id == LineEdit.MenuItems.Max + 1) + { + InsertTextAtCaret(Time.GetDateStringFromSystem()); + } + } + + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the text changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when appending text that overflows the . The appended text is truncated to fit , and the part that couldn't fit is passed as the rejectedSubstring argument. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user presses the ui_text_submit action (by default: Enter or Kp Enter) while the has focus. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the switches in or out of edit mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'placeholder_text' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'max_length' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'expand_to_text_length' property. + + + + + Cached name for the 'context_menu_enabled' property. + + + + + Cached name for the 'virtual_keyboard_enabled' property. + + + + + Cached name for the 'virtual_keyboard_type' property. + + + + + Cached name for the 'clear_button_enabled' property. + + + + + Cached name for the 'shortcut_keys_enabled' property. + + + + + Cached name for the 'middle_mouse_paste_enabled' property. + + + + + Cached name for the 'selecting_enabled' property. + + + + + Cached name for the 'deselect_on_focus_loss_enabled' property. + + + + + Cached name for the 'drag_and_drop_selection_enabled' property. + + + + + Cached name for the 'right_icon' property. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'draw_control_chars' property. + + + + + Cached name for the 'select_all_on_focus' property. + + + + + Cached name for the 'caret_blink' property. + + + + + Cached name for the 'caret_blink_interval' property. + + + + + Cached name for the 'caret_column' property. + + + + + Cached name for the 'caret_force_displayed' property. + + + + + Cached name for the 'caret_mid_grapheme' property. + + + + + Cached name for the 'secret' property. + + + + + Cached name for the 'secret_character' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_ime_text' method. + + + + + Cached name for the 'cancel_ime' method. + + + + + Cached name for the 'apply_ime' method. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'edit' method. + + + + + Cached name for the 'unedit' method. + + + + + Cached name for the 'is_editing' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'select_all' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'has_undo' method. + + + + + Cached name for the 'has_redo' method. + + + + + Cached name for the 'has_selection' method. + + + + + Cached name for the 'get_selected_text' method. + + + + + Cached name for the 'get_selection_from_column' method. + + + + + Cached name for the 'get_selection_to_column' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'get_draw_control_chars' method. + + + + + Cached name for the 'set_draw_control_chars' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_placeholder' method. + + + + + Cached name for the 'get_placeholder' method. + + + + + Cached name for the 'set_caret_column' method. + + + + + Cached name for the 'get_caret_column' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_expand_to_text_length_enabled' method. + + + + + Cached name for the 'is_expand_to_text_length_enabled' method. + + + + + Cached name for the 'set_caret_blink_enabled' method. + + + + + Cached name for the 'is_caret_blink_enabled' method. + + + + + Cached name for the 'set_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'is_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'set_caret_force_displayed' method. + + + + + Cached name for the 'is_caret_force_displayed' method. + + + + + Cached name for the 'set_caret_blink_interval' method. + + + + + Cached name for the 'get_caret_blink_interval' method. + + + + + Cached name for the 'set_max_length' method. + + + + + Cached name for the 'get_max_length' method. + + + + + Cached name for the 'insert_text_at_caret' method. + + + + + Cached name for the 'delete_char_at_caret' method. + + + + + Cached name for the 'delete_text' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_secret' method. + + + + + Cached name for the 'is_secret' method. + + + + + Cached name for the 'set_secret_character' method. + + + + + Cached name for the 'get_secret_character' method. + + + + + Cached name for the 'menu_option' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'is_menu_visible' method. + + + + + Cached name for the 'set_context_menu_enabled' method. + + + + + Cached name for the 'is_context_menu_enabled' method. + + + + + Cached name for the 'set_virtual_keyboard_enabled' method. + + + + + Cached name for the 'is_virtual_keyboard_enabled' method. + + + + + Cached name for the 'set_virtual_keyboard_type' method. + + + + + Cached name for the 'get_virtual_keyboard_type' method. + + + + + Cached name for the 'set_clear_button_enabled' method. + + + + + Cached name for the 'is_clear_button_enabled' method. + + + + + Cached name for the 'set_shortcut_keys_enabled' method. + + + + + Cached name for the 'is_shortcut_keys_enabled' method. + + + + + Cached name for the 'set_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'is_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'set_selecting_enabled' method. + + + + + Cached name for the 'is_selecting_enabled' method. + + + + + Cached name for the 'set_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'is_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'set_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'is_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'set_right_icon' method. + + + + + Cached name for the 'get_right_icon' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_select_all_on_focus' method. + + + + + Cached name for the 'is_select_all_on_focus' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'text_changed' signal. + + + + + Cached name for the 'text_change_rejected' signal. + + + + + Cached name for the 'text_submitted' signal. + + + + + Cached name for the 'editing_toggled' signal. + + + + + 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 which contains common properties and methods associated with this node. + + + + + The LinkButton will always show an underline at the bottom of its text. + + + + + The LinkButton will show an underline at the bottom of its text when the mouse cursor is over it. + + + + + The LinkButton will never show an underline at the bottom of its text. + + + + + The button's text that will be displayed inside the button's area. + + + + + The underline mode to use for the text. See for the available modes. + + + + + The URI for this . If set to a valid URI, pressing the button opens the URI using the operating system's default program for the protocol (via ). HTTP and HTTPS URLs open the default web browser. + + Uri = "https://godotengine.org"; // Opens the URL in the default web browser. + Uri = "C:\SomeFolder"; // Opens the file explorer at the given path. + Uri = "C:\SomeImage.png"; // Opens the given image in the default viewing app. + + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'underline' property. + + + + + Cached name for the 'uri' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_uri' method. + + + + + Cached name for the 'get_uri' method. + + + + + Cached name for the 'set_underline_mode' method. + + + + + Cached name for the 'get_underline_mode' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This rotates a bone to look at a target. This is helpful for moving a 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. + When applying multiple s, the assigned to the parent bone must be put above the assigned to the child bone in the list in order for the child bone results to be correct. + + + + + Enumerated value for the +X axis. + + + + + Enumerated value for the -X axis. + + + + + Enumerated value for the +Y axis. + + + + + Enumerated value for the -Y axis. + + + + + Enumerated value for the +Z axis. + + + + + Enumerated value for the -Z axis. + + + + + The bone rest position of the bone specified in is used as origin. + + + + + The bone global pose position of the bone specified in is used as origin. + Note: It is recommended that you select only the parent bone unless you are familiar with the bone processing process. The specified bone pose at the time the is processed is used as a reference. In other words, if you specify a child bone and the causes the child bone to move, the rendered result and direction will not match. + + + + + The global position of the specified in is used as origin. + Note: Same as , when specifying a with a child bone assigned, the rendered result and direction will not match. + + + + + The to the node that is the target for the look at modification. This node is what the modification will rotate the bone to. + + + + + The bone name of the that the modification will operate on. + + + + + Index of the in the parent . + + + + + The forward axis of the bone. This modifies the bone so that this axis points toward the . + + + + + The axis of the first rotation. This works by compositing the rotation by Euler angles to prevent to rotate the . + + + + + If , provides rotation by two axes. + + + + + This value determines from what origin is retrieved for use in the calculation of the forward vector. + + + + + If is , the bone global pose position specified for this is used as origin. + + + + + Index of the in the parent . + + + + + If is , the global position of the specified for this is used as origin. + + + + + The offset of the bone pose origin. Matching the origins by offset is useful for cases where multiple bones must always face the same direction, such as the eyes. + Note: This value indicates the local position of the object set in . + + + + + If the target passes through too close to the origin than this value, time-based interpolation is used even if the target is within the angular limitations, to prevent the angular velocity from becoming too high. + + + + + The duration of the time-based interpolation. Interpolation is triggered at the following cases: + - When the target node is changed + - When an axis is flipped due to angle limitation + Note: The flipping occurs when the target is outside the angle limitation and the internally computed secondary rotation axis of the forward vector is flipped. Visually, it occurs when the target is outside the angle limitation and crosses the plane of the and . + + + + + The transition type of the time-based interpolation. See also . + + + + + The ease type of the time-based interpolation. See also . + + + + + If , limits the degree of rotation. This helps prevent the character's neck from rotating 360 degrees. + Note: As with blending, interpolation is provided that favors . This means that interpolation does not select the shortest path in some cases. + Note: Some may exceed the limitations (e.g. `Back`, `Elastic`, and `Spring`). If interpolation occurs while overshooting the limitations, the result might possibly not respect the bone rest. + + + + + If , the limitations are spread from the bone symmetrically. + If , the limitation can be specified separately for each side of the bone rest. + + + + + The limit angle of the primary rotation when is . + + + + + The threshold to start damping for . It provides non-linear (b-spline) interpolation, let it feel more resistance the more it rotate to the edge limit. This is useful for simulating the limits of human motion. + If 1.0, no damping is performed. If 0.0, damping is always performed. + + + + + The limit angle of positive side of the primary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of negative side of the primary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of the secondary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of positive side of the secondary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of negative side of the secondary rotation when is . + + + + + The threshold to start damping for . + + + + + Returns the remaining seconds of the time-based interpolation. + + + + + Returns whether the time-based interpolation is running or not. If , it is equivalent to being 0. + This is useful to determine whether a can be removed safely. + + + + + Returns whether the target is within the angle limitations. It is useful for unsetting the when the target is outside of the angle limitations. + Note: The value is updated after . To retrieve this value correctly, we recommend using the signal . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_node' property. + + + + + Cached name for the 'bone_name' property. + + + + + Cached name for the 'bone' property. + + + + + Cached name for the 'forward_axis' property. + + + + + Cached name for the 'primary_rotation_axis' property. + + + + + Cached name for the 'use_secondary_rotation' property. + + + + + Cached name for the 'origin_from' property. + + + + + Cached name for the 'origin_bone_name' property. + + + + + Cached name for the 'origin_bone' property. + + + + + Cached name for the 'origin_external_node' property. + + + + + Cached name for the 'origin_offset' property. + + + + + Cached name for the 'origin_safe_margin' property. + + + + + Cached name for the 'duration' property. + + + + + Cached name for the 'transition_type' property. + + + + + Cached name for the 'ease_type' property. + + + + + Cached name for the 'use_angle_limitation' property. + + + + + Cached name for the 'symmetry_limitation' property. + + + + + Cached name for the 'primary_limit_angle' property. + + + + + Cached name for the 'primary_damp_threshold' property. + + + + + Cached name for the 'primary_positive_limit_angle' property. + + + + + Cached name for the 'primary_positive_damp_threshold' property. + + + + + Cached name for the 'primary_negative_limit_angle' property. + + + + + Cached name for the 'primary_negative_damp_threshold' property. + + + + + Cached name for the 'secondary_limit_angle' property. + + + + + Cached name for the 'secondary_damp_threshold' property. + + + + + Cached name for the 'secondary_positive_limit_angle' property. + + + + + Cached name for the 'secondary_positive_damp_threshold' property. + + + + + Cached name for the 'secondary_negative_limit_angle' property. + + + + + Cached name for the 'secondary_negative_damp_threshold' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone' method. + + + + + Cached name for the 'get_bone' method. + + + + + Cached name for the 'set_forward_axis' method. + + + + + Cached name for the 'get_forward_axis' method. + + + + + Cached name for the 'set_primary_rotation_axis' method. + + + + + Cached name for the 'get_primary_rotation_axis' method. + + + + + Cached name for the 'set_use_secondary_rotation' method. + + + + + Cached name for the 'is_using_secondary_rotation' method. + + + + + Cached name for the 'set_origin_safe_margin' method. + + + + + Cached name for the 'get_origin_safe_margin' method. + + + + + Cached name for the 'set_origin_from' method. + + + + + Cached name for the 'get_origin_from' method. + + + + + Cached name for the 'set_origin_bone_name' method. + + + + + Cached name for the 'get_origin_bone_name' method. + + + + + Cached name for the 'set_origin_bone' method. + + + + + Cached name for the 'get_origin_bone' method. + + + + + Cached name for the 'set_origin_external_node' method. + + + + + Cached name for the 'get_origin_external_node' method. + + + + + Cached name for the 'set_origin_offset' method. + + + + + Cached name for the 'get_origin_offset' method. + + + + + Cached name for the 'set_duration' method. + + + + + Cached name for the 'get_duration' method. + + + + + Cached name for the 'set_transition_type' method. + + + + + Cached name for the 'get_transition_type' method. + + + + + Cached name for the 'set_ease_type' method. + + + + + Cached name for the 'get_ease_type' method. + + + + + Cached name for the 'set_use_angle_limitation' method. + + + + + Cached name for the 'is_using_angle_limitation' method. + + + + + Cached name for the 'set_symmetry_limitation' method. + + + + + Cached name for the 'is_limitation_symmetry' method. + + + + + Cached name for the 'set_primary_limit_angle' method. + + + + + Cached name for the 'get_primary_limit_angle' method. + + + + + Cached name for the 'set_primary_damp_threshold' method. + + + + + Cached name for the 'get_primary_damp_threshold' method. + + + + + Cached name for the 'set_primary_positive_limit_angle' method. + + + + + Cached name for the 'get_primary_positive_limit_angle' method. + + + + + Cached name for the 'set_primary_positive_damp_threshold' method. + + + + + Cached name for the 'get_primary_positive_damp_threshold' method. + + + + + Cached name for the 'set_primary_negative_limit_angle' method. + + + + + Cached name for the 'get_primary_negative_limit_angle' method. + + + + + Cached name for the 'set_primary_negative_damp_threshold' method. + + + + + Cached name for the 'get_primary_negative_damp_threshold' method. + + + + + Cached name for the 'set_secondary_limit_angle' method. + + + + + Cached name for the 'get_secondary_limit_angle' method. + + + + + Cached name for the 'set_secondary_damp_threshold' method. + + + + + Cached name for the 'get_secondary_damp_threshold' method. + + + + + Cached name for the 'set_secondary_positive_limit_angle' method. + + + + + Cached name for the 'get_secondary_positive_limit_angle' method. + + + + + Cached name for the 'set_secondary_positive_damp_threshold' method. + + + + + Cached name for the 'get_secondary_positive_damp_threshold' method. + + + + + Cached name for the 'set_secondary_negative_limit_angle' method. + + + + + Cached name for the 'get_secondary_negative_limit_angle' method. + + + + + Cached name for the 'set_secondary_negative_damp_threshold' method. + + + + + Cached name for the 'get_secondary_negative_damp_threshold' method. + + + + + Cached name for the 'get_interpolation_remaining' method. + + + + + Cached name for the 'is_interpolating' method. + + + + + Cached name for the 'is_target_within_limitation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the abstract base class for a Godot project's game loop. It is inherited by , which is the default game loop implementation used in Godot projects, though it is also possible to write and use one's own subclass instead of the scene tree. + Upon the application start, a implementation must be provided to the OS; otherwise, the application will exit. This happens automatically (and a is created) unless a is provided from the command line (with e.g. godot -s my_loop.gd) or the ProjectSettings.application/run/main_loop_type project setting is overwritten. + Here is an example script implementing a simple : + + 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}"); + } + } + + + + + + Notification received from the OS when the application is exceeding its allocated memory. + Specific to the iOS platform. + + + + + Notification received when translations may have changed. Can be triggered by the user changing the locale. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like . + + + + + Notification received from the OS when a request for "About" information is sent. + Specific to the macOS platform. + + + + + Notification received from Godot's crash handler when the engine is about to crash. + Implemented on desktop platforms if the crash handler is enabled. + + + + + Notification received from the OS when an update of the Input Method Engine occurs (e.g. change of IME cursor position or composition string). + Specific to the macOS platform. + + + + + Notification received from the OS when the application is resumed. + Specific to the Android and iOS platforms. + + + + + Notification received from the OS when the application is paused. + Specific to the Android and iOS platforms. + Note: On iOS, you only have approximately 5 seconds to finish a task started by this signal. If you go over this allotment, iOS will kill the app instead of pausing it. + + + + + Notification received from the OS when the application is focused, i.e. when changing the focus from the OS desktop or a thirdparty application to any open window of the Godot instance. + Implemented on desktop and mobile platforms. + + + + + Notification received from the OS when the application is defocused, i.e. when changing the focus from any open window of the Godot instance to the OS desktop or a thirdparty application. + Implemented on desktop and mobile platforms. + + + + + Notification received when text server is changed. + + + + + Called before the program exits. + + + + + Called once during initialization. + + + + + Called each physics frame with the time since the last physics frame as argument (, in seconds). Equivalent to . + If implemented, the method must return a boolean value. ends the main loop, while lets it proceed to the next frame. + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Called each process (idle) frame with the time since the last process frame as argument (in seconds). Equivalent to . + If implemented, the method must return a boolean value. ends the main loop, while lets it proceed to the next frame. + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a user responds to a permission request. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_finalize' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_physics_process' method. + + + + + Cached name for the '_process' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'on_request_permissions_result' signal. + + + + + 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 's margins, use the margin_* theme properties listed below. + Note: The margin sizes are theme overrides, not normal properties. This is an example of how to change them in code: + + // This code sample assumes the current script is extending MarginContainer. + int marginValue = 100; + AddThemeConstantOverride("margin_top", marginValue); + AddThemeConstantOverride("margin_left", marginValue); + AddThemeConstantOverride("margin_bottom", marginValue); + AddThemeConstantOverride("margin_right", marginValue); + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generic 2D position hint for editing. It's just like a plain , 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. + + + + + Size of the gizmo cross that appears in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gizmo_extents' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gizmo_extents' method. + + + + + Cached name for the 'get_gizmo_extents' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generic 3D position hint for editing. It's just like a plain , but it displays as a cross in the 3D editor at all times. + + + + + Size of the gizmo cross that appears in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gizmo_extents' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gizmo_extents' method. + + + + + Cached name for the 'get_gizmo_extents' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides data transformation and encoding utility functions. + + + + + Returns a Base64-encoded string of the . If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Returns a decoded corresponding to the Base64-encoded string . If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a decoded [] corresponding to the Base64-encoded string . + + + + + Returns a Base64-encoded string of the UTF-8 string . + + + + + Returns a decoded string corresponding to the Base64-encoded string . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'variant_to_base64' method. + + + + + Cached name for the 'base64_to_variant' method. + + + + + Cached name for the 'raw_to_base64' method. + + + + + Cached name for the 'base64_to_raw' method. + + + + + Cached name for the 'utf8_to_base64' method. + + + + + Cached name for the 'base64_to_utf8' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides data transformation and encoding utility functions. + + + + + Returns a Base64-encoded string of the . If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Returns a decoded corresponding to the Base64-encoded string . If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a decoded [] corresponding to the Base64-encoded string . + + + + + Returns a Base64-encoded string of the UTF-8 string . + + + + + Returns a decoded string corresponding to the Base64-encoded string . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'variant_to_base64' method. + + + + + Cached name for the 'base64_to_variant' method. + + + + + Cached name for the 'raw_to_base64' method. + + + + + Cached name for the 'base64_to_raw' method. + + + + + Cached name for the 'utf8_to_base64' method. + + + + + Cached name for the 'base64_to_utf8' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a base resource used for coloring and shading geometry. All materials inherit from it and almost all derived nodes carry a . A few flags and parameters are shared between all material types and are configured here. + Importantly, you can inherit from to create your own custom material type in script or in GDExtension. + + + + + Maximum value for the parameter. + + + + + Minimum value for the parameter. + + + + + Sets the render priority for objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects. In other words, all objects with 1 will render before all objects with 0. + Note: This only applies to s and s with type "Spatial". + Note: This will not impact how transparent objects are sorted relative to opaque objects or how dynamic meshes will be sorted relative to other opaque meshes. This is because all transparent objects are drawn after all opaque objects and all dynamic opaque meshes are drawn before other opaque meshes. + + + + + Sets the to be used for the next pass. This renders the object again using a different material. + Note: materials are not necessarily drawn immediately after the source . Draw order is determined by material properties, , and distance to camera. + Note: This only applies to s and s with type "Spatial". + + + + + Only exposed for the purpose of overriding. You cannot call this function directly. Used internally to determine if should be shown in the editor or not. + + + + + Only exposed for the purpose of overriding. You cannot call this function directly. Used internally to determine if should be shown in the editor or not. + + + + + Only exposed for the purpose of overriding. You cannot call this function directly. Used internally by various editor tools. + + + + + 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 's . + + + + + Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code. See also . + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_priority' property. + + + + + Cached name for the 'next_pass' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_do_next_pass' method. + + + + + Cached name for the '_can_use_render_priority' method. + + + + + Cached name for the '_get_shader_mode' method. + + + + + Cached name for the '_get_shader_rid' method. + + + + + Cached name for the 'set_next_pass' method. + + + + + Cached name for the 'get_next_pass' method. + + + + + Cached name for the 'set_render_priority' method. + + + + + Cached name for the 'get_render_priority' method. + + + + + Cached name for the 'inspect_native_shader_code' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal menu bar that creates a menu for each child. New items are created by adding s to this node. + + + + + Flat don't display item decoration. + + + + + Position order in the global menu to insert items at. All menu items in the are always inserted as a continuous range. Menus with lower are inserted first. Menus with equal to -1 are inserted last. + + + + + If , when the cursor hovers above menu item, it will close the current and open the other one. + + + + + If , will use system global menu when supported. + Note: If and global menu is supported, this node is not displayed, has zero size, and all its child nodes except s are inaccessible. + Note: This property overrides the value of the property of the child nodes. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + If , shortcuts are disabled and cannot be used to trigger the button. + + + + + Returns , if system global menu is supported and used by this . + + + + + Returns number of menu items. + + + + + Sets menu item title. + + + + + Returns menu item title. + + + + + Sets menu item tooltip. + + + + + Returns menu item tooltip. + + + + + If , menu item is disabled. + + + + + Returns , if menu item is disabled. + + + + + If , menu item is hidden. + + + + + Returns , if menu item is hidden. + + + + + Returns associated with menu item. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'start_index' property. + + + + + Cached name for the 'switch_on_hover' property. + + + + + Cached name for the 'prefer_global_menu' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_switch_on_hover' method. + + + + + Cached name for the 'is_switch_on_hover' method. + + + + + Cached name for the 'set_disable_shortcuts' method. + + + + + Cached name for the 'set_prefer_global_menu' method. + + + + + Cached name for the 'is_prefer_global_menu' method. + + + + + Cached name for the 'is_native_menu' method. + + + + + Cached name for the 'get_menu_count' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_start_index' method. + + + + + Cached name for the 'get_start_index' method. + + + + + Cached name for the 'set_menu_title' method. + + + + + Cached name for the 'get_menu_title' method. + + + + + Cached name for the 'set_menu_tooltip' method. + + + + + Cached name for the 'get_menu_tooltip' method. + + + + + Cached name for the 'set_menu_disabled' method. + + + + + Cached name for the 'is_menu_disabled' method. + + + + + Cached name for the 'set_menu_hidden' method. + + + + + Cached name for the 'is_menu_hidden' method. + + + + + Cached name for the 'get_menu_popup' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A button that brings up a when clicked. To create new items inside this , use get_popup().add_item("My Item Name"). You can also create them directly from Godot editor's inspector. + See also which contains common properties and methods associated with this node. + + + + + If , when the cursor hovers above another within the same parent which also has enabled, it will close the current and open the other one. + + + + + The number of items currently in the list. + + + + + Returns the contained in this button. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adjusts popup position and sizing for the , then shows the . Prefer this over using get_popup().popup(). + + + + + If , shortcuts are disabled and cannot be used to trigger the button. + + + + + Emitted when the of this MenuButton is about to show. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'switch_on_hover' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'show_popup' method. + + + + + Cached name for the 'set_switch_on_hover' method. + + + + + Cached name for the 'is_switch_on_hover' method. + + + + + Cached name for the 'set_disable_shortcuts' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'about_to_popup' signal. + + + + + Mesh is a type of that contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials. The maximum number of surfaces per mesh is . + + + + + Render array as points (one vertex equals one point). + + + + + Render array as lines (every two vertices a line is created). + + + + + Render array as line strip. + + + + + Render array as triangles (every three vertices a triangle is created). + + + + + Render array as triangle strips. + + + + + [], [], or of vertex positions. + + + + + [] of vertex normals. + Note: The array has to consist of normal vectors, otherwise they will be normalized by the engine, potentially causing visual discrepancies. + + + + + [] 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. + + + + + [] of vertex colors. + + + + + [] for UV coordinates. + + + + + [] for second UV coordinates. + + + + + Contains custom color channel 0. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + Contains custom color channel 1. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + Contains custom color channel 2. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + Contains custom color channel 3. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + [] or [] of bone indices. Contains either 4 or 8 numbers per vertex depending on the presence of the flag. + + + + + [] or [] of bone weights in the range 0.0 to 1.0 (inclusive). Contains either 4 or 8 numbers per vertex depending on the presence of the flag. + + + + + [] 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'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. + + + + + Represents the size of the enum. + + + + + Indicates this custom channel contains unsigned normalized byte colors from 0 to 1, encoded as []. + + + + + Indicates this custom channel contains signed normalized byte colors from -1 to 1, encoded as []. + + + + + Indicates this custom channel contains half precision float colors, encoded as []. Only red and green channels are used. + + + + + Indicates this custom channel contains half precision float colors, encoded as []. + + + + + Indicates this custom channel contains full float colors, in a []. Only the red channel is used. + + + + + Indicates this custom channel contains full float colors, in a []. Only red and green channels are used. + + + + + Indicates this custom channel contains full float colors, in a []. Only red, green and blue channels are used. + + + + + Indicates this custom channel contains full float colors, in a []. + + + + + Represents the size of the enum. + + + + + Mesh array contains vertices. All meshes require a vertex array so this should always be present. + + + + + Mesh array contains normals. + + + + + Mesh array contains tangents. + + + + + Mesh array contains colors. + + + + + Mesh array contains UVs. + + + + + Mesh array contains second UV. + + + + + Mesh array contains custom channel index 0. + + + + + Mesh array contains custom channel index 1. + + + + + Mesh array contains custom channel index 2. + + + + + Mesh array contains custom channel index 3. + + + + + Mesh array contains bones. + + + + + Mesh array contains bone weights. + + + + + Mesh array uses indices. + + + + + Mask of mesh channels permitted in blend shapes. + + + + + Shift of first custom channel. + + + + + Number of format bits per custom channel. See . + + + + + Amount to shift for custom channel index 0. + + + + + Amount to shift for custom channel index 1. + + + + + Amount to shift for custom channel index 2. + + + + + Amount to shift for custom channel index 3. + + + + + Mask of custom format bits per custom channel. Must be shifted by one of the SHIFT constants. See . + + + + + Shift of first compress flag. Compress flags should be passed to and . + + + + + Flag used to mark that the array contains 2D vertices. + + + + + Flag indices that the mesh data will use GL_DYNAMIC_DRAW on GLES. Unused on Vulkan. + + + + + Flag used to mark that the mesh contains up to 8 bone influences per vertex. This flag indicates that and elements will have double length. + + + + + Flag used to mark that the mesh intentionally contains no vertex array. + + + + + 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. + + + + + Blend shapes are normalized. + + + + + Blend shapes are relative to base weight. + + + + + Sets a hint to be used for lightmap resolution. + + + + + Virtual method to override the for a custom class extending . + + + + + Virtual method to override the number of blend shapes for a custom class extending . + + + + + Virtual method to override the retrieval of blend shape names for a custom class extending . + + + + + Virtual method to override the surface count for a custom class extending . + + + + + Virtual method to override the names of blend shapes for a custom class extending . + + + + + Virtual method to override the surface array index length for a custom class extending . + + + + + Virtual method to override the surface array length for a custom class extending . + + + + + Virtual method to override the surface arrays for a custom class extending . + + + + + Virtual method to override the blend shape arrays for a custom class extending . + + + + + Virtual method to override the surface format for a custom class extending . + + + + + Virtual method to override the surface LODs for a custom class extending . + + + + + Virtual method to override the surface material for a custom class extending . + + + + + Virtual method to override the surface primitive type for a custom class extending . + + + + + Virtual method to override the setting of a at the given for a custom class extending . + + + + + Returns the smallest enclosing this mesh in local space. Not affected by custom_aabb. + Note: This is only implemented for and . + + + + + Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle. + + + + + Returns the number of surfaces that the holds. This is equivalent to . + + + + + Returns the arrays for the vertices, normals, UVs, etc. that make up the requested surface (see ). + + + + + Returns the blend shape arrays for the requested surface. + + + + + Sets a for a given surface. Surface will be rendered using this material. + Note: This assigns the material within the resource, not the associated to the 's Surface Material Override properties. To set the associated to the 's Surface Material Override properties, use instead. + + + + + Returns a in a given surface. Surface is rendered using this material. + Note: This returns the material within the resource, not the associated to the 's Surface Material Override properties. To get the associated to the 's Surface Material Override properties, use instead. + + + + + Creates a placeholder version of this resource (). + + + + + Calculate a from the mesh. + + + + + Calculate a from the mesh. + If is (default), duplicate and interior vertices are removed automatically. You can set it to to make the process faster if not needed. + If is , the geometry can be further simplified to reduce the number of vertices. Disabled by default. + + + + + Calculate an outline mesh at a defined offset (margin) from the original mesh. + Note: This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise). + + + + + Generate a from the mesh. Considers only surfaces using one of these primitive types: , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'lightmap_size_hint' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_aabb' method. + + + + + Cached name for the '_get_blend_shape_count' method. + + + + + Cached name for the '_get_blend_shape_name' method. + + + + + Cached name for the '_get_surface_count' method. + + + + + Cached name for the '_set_blend_shape_name' method. + + + + + Cached name for the '_surface_get_array_index_len' method. + + + + + Cached name for the '_surface_get_array_len' method. + + + + + Cached name for the '_surface_get_arrays' method. + + + + + Cached name for the '_surface_get_blend_shape_arrays' method. + + + + + Cached name for the '_surface_get_format' method. + + + + + Cached name for the '_surface_get_lods' method. + + + + + Cached name for the '_surface_get_material' method. + + + + + Cached name for the '_surface_get_primitive_type' method. + + + + + Cached name for the '_surface_set_material' method. + + + + + Cached name for the 'set_lightmap_size_hint' method. + + + + + Cached name for the 'get_lightmap_size_hint' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached name for the 'get_faces' method. + + + + + Cached name for the 'get_surface_count' method. + + + + + Cached name for the 'surface_get_arrays' method. + + + + + Cached name for the 'surface_get_blend_shape_arrays' method. + + + + + Cached name for the 'surface_set_material' method. + + + + + Cached name for the 'surface_get_material' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached name for the 'create_trimesh_shape' method. + + + + + Cached name for the 'create_convex_shape' method. + + + + + Cached name for the 'create_outline' method. + + + + + Cached name for the 'generate_triangle_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Parameters to be used with a convex decomposition operation. + + + + + Constant for voxel-based approximate convex decomposition. + + + + + Constant for tetrahedron-based approximate convex decomposition. + + + + + Maximum concavity. Ranges from 0.0 to 1.0. + + + + + Controls the bias toward clipping along symmetry planes. Ranges from 0.0 to 1.0. + + + + + Controls the bias toward clipping along revolution axes. Ranges from 0.0 to 1.0. + + + + + Controls the adaptive sampling of the generated convex-hulls. Ranges from 0.0 to 0.01. + + + + + Maximum number of voxels generated during the voxelization stage. + + + + + Controls the maximum number of triangles per convex-hull. Ranges from 4 to 1024. + + + + + Controls the granularity of the search for the "best" clipping plane. Ranges from 1 to 16. + + + + + Controls the precision of the convex-hull generation process during the clipping plane selection stage. Ranges from 1 to 16. + + + + + If , normalizes the mesh before applying the convex decomposition. + + + + + Mode for the approximate convex decomposition. + + + + + If , uses approximation for computing convex hulls. + + + + + The maximum number of convex hulls to produce from the merge operation. + + + + + If , projects output convex hull vertices onto the original source mesh to increase floating-point accuracy of the results. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'max_concavity' property. + + + + + Cached name for the 'symmetry_planes_clipping_bias' property. + + + + + Cached name for the 'revolution_axes_clipping_bias' property. + + + + + Cached name for the 'min_volume_per_convex_hull' property. + + + + + Cached name for the 'resolution' property. + + + + + Cached name for the 'max_num_vertices_per_convex_hull' property. + + + + + Cached name for the 'plane_downsampling' property. + + + + + Cached name for the 'convex_hull_downsampling' property. + + + + + Cached name for the 'normalize_mesh' property. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'convex_hull_approximation' property. + + + + + Cached name for the 'max_convex_hulls' property. + + + + + Cached name for the 'project_hull_vertices' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_max_concavity' method. + + + + + Cached name for the 'get_max_concavity' method. + + + + + Cached name for the 'set_symmetry_planes_clipping_bias' method. + + + + + Cached name for the 'get_symmetry_planes_clipping_bias' method. + + + + + Cached name for the 'set_revolution_axes_clipping_bias' method. + + + + + Cached name for the 'get_revolution_axes_clipping_bias' method. + + + + + Cached name for the 'set_min_volume_per_convex_hull' method. + + + + + Cached name for the 'get_min_volume_per_convex_hull' method. + + + + + Cached name for the 'set_resolution' method. + + + + + Cached name for the 'get_resolution' method. + + + + + Cached name for the 'set_max_num_vertices_per_convex_hull' method. + + + + + Cached name for the 'get_max_num_vertices_per_convex_hull' method. + + + + + Cached name for the 'set_plane_downsampling' method. + + + + + Cached name for the 'get_plane_downsampling' method. + + + + + Cached name for the 'set_convex_hull_downsampling' method. + + + + + Cached name for the 'get_convex_hull_downsampling' method. + + + + + Cached name for the 'set_normalize_mesh' method. + + + + + Cached name for the 'get_normalize_mesh' method. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_convex_hull_approximation' method. + + + + + Cached name for the 'get_convex_hull_approximation' method. + + + + + Cached name for the 'set_max_convex_hulls' method. + + + + + Cached name for the 'get_max_convex_hulls' method. + + + + + Cached name for the 'set_project_hull_vertices' method. + + + + + Cached name for the 'get_project_hull_vertices' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MeshDataTool provides access to individual vertices in a . 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 . When you are finished editing the data commit the data to a mesh with . + Below is an example of how MeshDataTool may be used. + + var mesh = new ArrayMesh(); + mesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, new BoxMesh().GetMeshArrays()); + var mdt = new MeshDataTool(); + mdt.CreateFromSurface(mesh, 0); + for (var i = 0; i < mdt.GetVertexCount(); i++) + { + Vector3 vertex = mdt.GetVertex(i); + // In this example we extend the mesh by one unit, which results in separated faces as it is flat shaded. + vertex += mdt.GetVertexNormal(i); + // Save your change. + mdt.SetVertex(i, vertex); + } + mesh.ClearSurfaces(); + mdt.CommitToSurface(mesh); + var mi = new MeshInstance(); + mi.Mesh = mesh; + AddChild(mi); + + See also , and for procedural geometry generation. + Note: Godot uses clockwise winding order for front faces of triangle primitive modes. + + + + + Clears all data currently in MeshDataTool. + + + + + Uses specified surface of given to populate data for MeshDataTool. + Requires with primitive type . + + + + + Adds a new surface to specified with edited data. + + + + + Returns the 's format as a combination of the flags. For example, a mesh containing both vertices and normals would return a format of 3 because is 1 and is 2. + + + + + Returns the total number of vertices in . + + + + + Returns the number of edges in this . + + + + + Returns the number of faces in this . + + + + + Sets the position of the given vertex. + + + + + Returns the position of the given vertex. + + + + + Sets the normal of the given vertex. + + + + + Returns the normal of the given vertex. + + + + + Sets the tangent of the given vertex. + + + + + Returns the tangent of the given vertex. + + + + + Sets the UV of the given vertex. + + + + + Returns the UV of the given vertex. + + + + + Sets the UV2 of the given vertex. + + + + + Returns the UV2 of the given vertex. + + + + + Sets the color of the given vertex. + + + + + Returns the color of the given vertex. + + + + + Sets the bones of the given vertex. + + + + + Sets the bones of the given vertex. + + + + + Returns the bones of the given vertex. + + + + + Sets the bone weights of the given vertex. + + + + + Sets the bone weights of the given vertex. + + + + + Returns bone weights of the given vertex. + + + + + Sets the metadata associated with the given vertex. + + + + + Returns the metadata associated with the given vertex. + + + + + Returns an array of edges that share the given vertex. + + + + + Returns an array of faces that share the given vertex. + + + + + Returns index of specified vertex connected to given edge. + Vertex argument can only be 0 or 1 because edges are comprised of two vertices. + + + + + Returns array of faces that touch given edge. + + + + + Sets the metadata of the given edge. + + + + + Returns meta information assigned to given edge. + + + + + Returns the specified vertex index of the given face. + must be either 0, 1, or 2 because faces contain three vertices. + + int index = meshDataTool.GetFaceVertex(0, 1); // Gets the index of the second vertex of the first face. + Vector3 position = meshDataTool.GetVertex(index); + Vector3 normal = meshDataTool.GetVertexNormal(index); + + + + + + Returns specified edge associated with given face. + Edge argument must be either 0, 1, or 2 because a face only has three edges. + + + + + Sets the metadata of the given face. + + + + + Returns the metadata associated with the given face. + + + + + Calculates and returns the face normal of the given face. + + + + + Sets the material to be used by newly-constructed . + + + + + Returns the material assigned to the . + + + + + Adds a new surface to specified with edited data. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'create_from_surface' method. + + + + + Cached name for the 'commit_to_surface' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_vertex_count' method. + + + + + Cached name for the 'get_edge_count' method. + + + + + Cached name for the 'get_face_count' method. + + + + + Cached name for the 'set_vertex' method. + + + + + Cached name for the 'get_vertex' method. + + + + + Cached name for the 'set_vertex_normal' method. + + + + + Cached name for the 'get_vertex_normal' method. + + + + + Cached name for the 'set_vertex_tangent' method. + + + + + Cached name for the 'get_vertex_tangent' method. + + + + + Cached name for the 'set_vertex_uv' method. + + + + + Cached name for the 'get_vertex_uv' method. + + + + + Cached name for the 'set_vertex_uv2' method. + + + + + Cached name for the 'get_vertex_uv2' method. + + + + + Cached name for the 'set_vertex_color' method. + + + + + Cached name for the 'get_vertex_color' method. + + + + + Cached name for the 'set_vertex_bones' method. + + + + + Cached name for the 'get_vertex_bones' method. + + + + + Cached name for the 'set_vertex_weights' method. + + + + + Cached name for the 'get_vertex_weights' method. + + + + + Cached name for the 'set_vertex_meta' method. + + + + + Cached name for the 'get_vertex_meta' method. + + + + + Cached name for the 'get_vertex_edges' method. + + + + + Cached name for the 'get_vertex_faces' method. + + + + + Cached name for the 'get_edge_vertex' method. + + + + + Cached name for the 'get_edge_faces' method. + + + + + Cached name for the 'set_edge_meta' method. + + + + + Cached name for the 'get_edge_meta' method. + + + + + Cached name for the 'get_face_vertex' method. + + + + + Cached name for the 'get_face_edge' method. + + + + + Cached name for the 'set_face_meta' method. + + + + + Cached name for the 'get_face_meta' method. + + + + + Cached name for the 'get_face_normal' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node used for displaying a in 2D. A can be automatically created from an existing via a tool in the editor toolbar. Select the node, then choose Sprite2D > Convert to MeshInstance2D at the top of the 2D editor viewport. + + + + + The that will be drawn by the . + + + + + The that will be used if using the default . Can be accessed as TEXTURE in CanvasItem shader. + + + + + Emitted when the is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'texture_changed' signal. + + + + + A library of meshes. Contains a list of resources, each with a name and ID. Each item can also include collision and navigation shapes. This resource is used in . + + + + + Creates a new item in the library with the given ID. + You can get an unused ID from . + + + + + Sets the item's name. + This name is shown in the editor. It can also be used to look up the item later using . + + + + + Sets the item's mesh. + + + + + Sets the transform to apply to the item's mesh. + + + + + Sets the item's shadow casting mode. See for possible values. + + + + + Sets the item's navigation mesh. + + + + + Sets the transform to apply to the item's navigation mesh. + + + + + Sets the item's navigation layers bitmask. + + + + + Sets an item's collision shapes. + The array should consist of objects, each followed by a that will be applied to it. For shapes that should not have a transform, use Transform3D.IDENTITY. + + + + + Sets a texture to use as the item's preview icon in the editor. + + + + + Returns the item's name. + + + + + Returns the item's mesh. + + + + + Returns the transform applied to the item's mesh. + + + + + Returns the item's shadow casting mode. See for possible values. + + + + + Returns the item's navigation mesh. + + + + + Returns the transform applied to the item's navigation mesh. + + + + + Returns the item's navigation layers bitmask. + + + + + Returns an item's collision shapes. + The array consists of each followed by its . + + + + + When running in the editor, returns a generated item preview (a 3D rendering in isometric perspective). When used in a running project, returns the manually-defined item preview which can be set using . Returns an empty if no preview was manually set in a running project. + + + + + Removes the item. + + + + + Returns the first item with the given name, or -1 if no item is found. + + + + + Clears the library. + + + + + Returns the list of item IDs in use. + + + + + Gets an unused ID for a new item. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_item' method. + + + + + Cached name for the 'set_item_name' method. + + + + + Cached name for the 'set_item_mesh' method. + + + + + Cached name for the 'set_item_mesh_transform' method. + + + + + Cached name for the 'set_item_mesh_cast_shadow' method. + + + + + Cached name for the 'set_item_navigation_mesh' method. + + + + + Cached name for the 'set_item_navigation_mesh_transform' method. + + + + + Cached name for the 'set_item_navigation_layers' method. + + + + + Cached name for the 'set_item_shapes' method. + + + + + Cached name for the 'set_item_preview' method. + + + + + Cached name for the 'get_item_name' method. + + + + + Cached name for the 'get_item_mesh' method. + + + + + Cached name for the 'get_item_mesh_transform' method. + + + + + Cached name for the 'get_item_mesh_cast_shadow' method. + + + + + Cached name for the 'get_item_navigation_mesh' method. + + + + + Cached name for the 'get_item_navigation_mesh_transform' method. + + + + + Cached name for the 'get_item_navigation_layers' method. + + + + + Cached name for the 'get_item_shapes' method. + + + + + Cached name for the 'get_item_preview' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'find_item_by_name' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_item_list' method. + + + + + Cached name for the 'get_last_unused_item_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Simple texture that uses a mesh to draw itself. It's limited because flags can't be changed and region drawing is not supported. + + + + + Sets the mesh used to draw. It must be a mesh using 2D vertices. + + + + + Sets the base texture that the Mesh will use to draw. + + + + + Sets the size of the image, needed for reference. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'base_texture' property. + + + + + Cached name for the 'image_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_image_size' method. + + + + + Cached name for the 'get_image_size' method. + + + + + Cached name for the 'set_base_texture' method. + + + + + Cached name for the 'get_base_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is similar to a combination of and . It calls a method providing an interpolated value as a parameter. See for more usage information. + The tweener will finish automatically if the callback's target object is freed. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Sets the time in seconds after which the will start interpolating. By default there's no delay. + + + + + Sets the type of used transition from . If not set, the default transition is used from the that contains this Tweener. + + + + + Sets the type of used easing from . If not set, the default easing is used from the that contains this Tweener. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_delay' method. + + + + + Cached name for the 'set_trans' method. + + + + + Cached name for the 'set_ease' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 a scene. + Warning: Ignore missing nodes unless you know what you are doing. Existing properties on a missing node can be freely modified in code, regardless of the type they are intended to be. + + + + + The name of the class this node was supposed to be (see ). + + + + + Returns the path of the scene this node was instance of originally. + + + + + If , allows new properties to be set along with existing ones. If , only existing properties' values can be set, and new properties cannot be added. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_class' property. + + + + + Cached name for the 'original_scene' property. + + + + + Cached name for the 'recording_properties' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_original_class' method. + + + + + Cached name for the 'get_original_class' method. + + + + + Cached name for the 'set_original_scene' method. + + + + + Cached name for the 'get_original_scene' method. + + + + + Cached name for the 'set_recording_properties' method. + + + + + Cached name for the 'is_recording_properties' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 a scene. + Warning: Ignore missing resources unless you know what you are doing. Existing properties on a missing resource can be freely modified in code, regardless of the type they are intended to be. + + + + + The name of the class this resource was supposed to be (see ). + + + + + If set to , allows new properties to be added on top of the existing ones with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_class' property. + + + + + Cached name for the 'recording_properties' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_original_class' method. + + + + + Cached name for the 'get_original_class' method. + + + + + Cached name for the 'set_recording_properties' method. + + + + + Cached name for the 'is_recording_properties' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + You can initialize this interface as follows: + + var interface = XRServer.find_interface("Native mobile") + if interface and interface.initialize(): + get_viewport().use_xr = true + + + + + + The height at which the camera is placed in relation to the ground (i.e. node). + + + + + The interocular distance, also known as the interpupillary distance. The distance between the pupils of the left and right eye. + + + + + The width of the display in centimeters. + + + + + The distance between the display and the lenses inside of the device in centimeters. + + + + + Set the offset rect relative to the area being rendered. A length of 1 represents the whole rendering area on that axis. + + + + + The oversample setting. Because of the lens distortion we have to render our buffers at a higher resolution then the screen can natively handle. A value between 1.5 and 2.0 often provides good results but at the cost of performance. + + + + + The k1 lens factor is one of the two constants that define the strength of the lens used and directly influences the lens distortion effect. + + + + + The k2 lens factor, see k1. + + + + + The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. This improves performance at the cost of quality. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'eye_height' property. + + + + + Cached name for the 'iod' property. + + + + + Cached name for the 'display_width' property. + + + + + Cached name for the 'display_to_lens' property. + + + + + Cached name for the 'offset_rect' property. + + + + + Cached name for the 'oversample' property. + + + + + Cached name for the 'k1' property. + + + + + Cached name for the 'k2' property. + + + + + Cached name for the 'vrs_min_radius' property. + + + + + Cached name for the 'vrs_strength' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_eye_height' method. + + + + + Cached name for the 'get_eye_height' method. + + + + + Cached name for the 'set_iod' method. + + + + + Cached name for the 'get_iod' method. + + + + + Cached name for the 'set_display_width' method. + + + + + Cached name for the 'get_display_width' method. + + + + + Cached name for the 'set_display_to_lens' method. + + + + + Cached name for the 'get_display_to_lens' method. + + + + + Cached name for the 'set_offset_rect' method. + + + + + Cached name for the 'get_offset_rect' method. + + + + + Cached name for the 'set_oversample' method. + + + + + Cached name for the 'get_oversample' method. + + + + + Cached name for the 'set_k1' method. + + + + + Cached name for the 'get_k1' method. + + + + + Cached name for the 'set_k2' method. + + + + + Cached name for the 'get_k2' method. + + + + + Cached name for the 'get_vrs_min_radius' method. + + + + + Cached name for the 'set_vrs_min_radius' method. + + + + + Cached name for the 'get_vrs_strength' method. + + + + + Cached name for the 'set_vrs_strength' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Godot can record videos with non-real-time simulation. Like the --fixed-fps command line argument, this forces the reported delta in 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 s: + - AVI container with MJPEG for video and uncompressed audio (.avi file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing 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 . MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most. + - PNG image sequence for video and WAV for audio (.png file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as FFmpeg after recording. Transparency is currently not supported, even if the root viewport is set to be transparent. + If you need to encode to a different format or pipe a stream through third-party software, you can extend the class to create your own movie writers. This should typically be done using GDExtension for performance reasons. + Editor usage: A default movie file path can be specified in ProjectSettings.editor/movie_writer/movie_file. Alternatively, for running single scenes, a movie_file metadata can be added to the root node, specifying the path to a movie file that will be used when recording that scene. Once a path is set, click the video reel icon in the top-right corner of the editor to enable Movie Maker mode, then run any scene as usual. The engine will start recording as soon as the splash screen is finished, and it will only stop recording when the engine quits. Click the video reel icon again to disable Movie Maker mode. Note that toggling Movie Maker mode does not affect project instances that are already running. + Note: MovieWriter is available for use in both the editor and exported projects, but it is not designed for use by end users to record videos while playing. Players wishing to record gameplay videos should install tools such as OBS Studio or SimpleScreenRecorder instead. + + + + + 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 is not overridden. + + + + + 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 if is not overridden. + + + + + Called when the engine determines whether this is able to handle the file at . Must return if this is able to handle the given file path, otherwise. Typically, is overridden as follows to allow the user to record a file at any path with a given file extension: + + 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" + + + + + + Called once before the engine starts writing video and audio data. is the width and height of the video to save. is the number of frames per second specified in the project settings or using the --fixed-fps <fps> command line argument. + + + + + Called when the engine finishes writing. This occurs when the engine quits by pressing the window manager's close button, or when is called. + Note: Pressing Ctrl + C on the terminal running the editor/project does not result in being called. + + + + + Adds a writer to be usable by the engine. The supported file extensions can be set by overriding . + Note: must be called early enough in the engine initialization to work, as movie writing is designed to start at the same time as the rest of the engine. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_audio_mix_rate' method. + + + + + Cached name for the '_get_audio_speaker_mode' method. + + + + + Cached name for the '_handles_file' method. + + + + + Cached name for the '_write_begin' method. + + + + + Cached name for the '_write_end' method. + + + + + Cached name for the 'add_writer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MultiMesh provides low-level mesh instancing. Drawing thousands of nodes can be slow, since each object is submitted to the GPU then drawn individually. + MultiMesh is much faster as it can draw thousands of instances with a single draw call, resulting in less API overhead. + As a drawback, if the instances are too far away from each other, performance may be reduced as every single instance will always render (they are spatially indexed as one, for the whole object). + Since instances may have any behavior, the AABB used for visibility must be provided by the user. + Note: A MultiMesh is a single object, therefore the same maximum lights per object restriction applies. This means, that once the maximum lights are consumed by one or more instances, the rest of the MultiMesh instances will not receive any lighting. + Note: Blend Shapes will be ignored if used in a MultiMesh. + + + + + Use this when using 2D transforms. + + + + + Use this when using 3D transforms. + + + + + Always interpolate using Basis lerping, which can produce warping artifacts in some situations. + + + + + Attempt to interpolate using Basis slerping (spherical linear interpolation) where possible, otherwise fall back to lerping. + + + + + Format of transform used to transform mesh, either 2D or 3D. + + + + + If , the will use color data (see ). Can only be set when is 0 or less. This means that you need to call this method before setting the instance count, or temporarily reset it to 0. + + + + + If , the will use custom data (see ). Can only be set when is 0 or less. This means that you need to call this method before setting the instance count, or temporarily reset it to 0. + + + + + Custom AABB for this MultiMesh resource. Setting this manually prevents costly runtime AABB recalculations. + + + + + Number of instances that will get drawn. This clears and (re)sizes the buffers. Setting data format or flags afterwards will have no effect. + By default, all instances are drawn but you can limit this with . + + + + + Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers. + + + + + resource to be instanced. + The looks of the individual instances can be modified using and . + + + + + Array containing each value used by all instances of this mesh, as a []. Each transform is divided into 4 values corresponding to the transforms' x, y, z, and origin. + + + + + Array containing each value used by all instances of this mesh, as a []. Each transform is divided into 3 values corresponding to the transforms' x, y, and origin. + + + + + Array containing each used by all instances of this mesh. + + + + + Array containing each custom data value used by all instances of this mesh, as a []. + + + + + Choose whether to use an interpolation method that favors speed or quality. + When using low physics tick rates (typically below 20) or high rates of object rotation, you may get better results from the high quality setting. + Note: Fast quality does not equate to low quality. Except in the special cases mentioned above, the quality should be comparable to high quality. + + + + + Sets the for a specific instance. + + + + + Sets the for a specific instance. + + + + + Returns the of a specific instance. + + + + + Returns the of a specific instance. + + + + + Sets the color of a specific instance by multiplying the mesh's existing vertex colors. This allows for different color tinting per instance. + Note: Each component is stored in 32 bits in the Forward+ and Mobile rendering methods, but is packed into 16 bits in the Compatibility rendering method. + For the color to take effect, ensure that is on the and is on the material. If you intend to set an absolute color instead of tinting, make sure the material's albedo color is set to pure white (Color(1, 1, 1)). + + + + + Gets a specific instance's color multiplier. + + + + + Sets custom data for a specific instance. is a type only to contain 4 floating-point numbers. + Note: Each number is stored in 32 bits in the Forward+ and Mobile rendering methods, but is packed into 16 bits in the Compatibility rendering method. + For the custom data to be used, ensure that is . + This custom instance data has to be manually accessed in your custom shader using INSTANCE_CUSTOM. + + + + + Returns the custom data that has been set for a specific instance. + + + + + When using physics interpolation, this function allows you to prevent interpolation on an instance in the current physics tick. + This allows you to move instances instantaneously, and should usually be used when initially placing an instance such as a bullet to prevent graphical glitches. + + + + + Returns the visibility axis-aligned bounding box in local space. + + + + + An alternative to setting the property, which can be used with physics interpolation. This method takes two arrays, and can set the data for the current and previous tick in one go. The renderer will automatically interpolate the data at each frame. + This is useful for situations where the order of instances may change from physics tick to tick, such as particle systems. + When the order of instances is coherent, the simpler alternative of setting can still be used with interpolation. + + + + + An alternative to setting the property, which can be used with physics interpolation. This method takes two arrays, and can set the data for the current and previous tick in one go. The renderer will automatically interpolate the data at each frame. + This is useful for situations where the order of instances may change from physics tick to tick, such as particle systems. + When the order of instances is coherent, the simpler alternative of setting can still be used with interpolation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transform_format' property. + + + + + Cached name for the 'use_colors' property. + + + + + Cached name for the 'use_custom_data' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'instance_count' property. + + + + + Cached name for the 'visible_instance_count' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'buffer' property. + + + + + Cached name for the 'transform_array' property. + + + + + Cached name for the 'transform_2d_array' property. + + + + + Cached name for the 'color_array' property. + + + + + Cached name for the 'custom_data_array' property. + + + + + Cached name for the 'physics_interpolation_quality' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_use_colors' method. + + + + + Cached name for the 'is_using_colors' method. + + + + + Cached name for the 'set_use_custom_data' method. + + + + + Cached name for the 'is_using_custom_data' method. + + + + + Cached name for the 'set_transform_format' method. + + + + + Cached name for the 'get_transform_format' method. + + + + + Cached name for the 'set_instance_count' method. + + + + + Cached name for the 'get_instance_count' method. + + + + + Cached name for the 'set_visible_instance_count' method. + + + + + Cached name for the 'get_visible_instance_count' method. + + + + + Cached name for the 'set_physics_interpolation_quality' method. + + + + + Cached name for the 'get_physics_interpolation_quality' method. + + + + + Cached name for the 'set_instance_transform' method. + + + + + Cached name for the 'set_instance_transform_2d' method. + + + + + Cached name for the 'get_instance_transform' method. + + + + + Cached name for the 'get_instance_transform_2d' method. + + + + + Cached name for the 'set_instance_color' method. + + + + + Cached name for the 'get_instance_color' method. + + + + + Cached name for the 'set_instance_custom_data' method. + + + + + Cached name for the 'get_instance_custom_data' method. + + + + + Cached name for the 'reset_instance_physics_interpolation' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'set_buffer' method. + + + + + Cached name for the 'set_buffer_interpolated' method. + + + + + Cached name for the '_set_transform_array' method. + + + + + Cached name for the '_get_transform_array' method. + + + + + Cached name for the '_set_transform_2d_array' method. + + + + + Cached name for the '_get_transform_2d_array' method. + + + + + Cached name for the '_set_color_array' method. + + + + + Cached name for the '_get_color_array' method. + + + + + Cached name for the '_set_custom_data_array' method. + + + + + Cached name for the '_get_custom_data_array' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a specialized node to instance a resource in 2D. + Usage is the same as . + + + + + The that will be drawn by the . + + + + + The that will be used if using the default . Can be accessed as TEXTURE in CanvasItem shader. + + + + + Emitted when the is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'multimesh' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_multimesh' method. + + + + + Cached name for the 'get_multimesh' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'texture_changed' signal. + + + + + is a specialized node to instance s based on a 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). + + + + + The resource that will be used and shared among all instances of the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'multimesh' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_multimesh' method. + + + + + Cached name for the 'get_multimesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for high-level multiplayer API implementations. See also . + By default, 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, 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 for details about extensions, for the details about the default implementation. + + + + + Used with to disable a method or property for all RPC calls, making it unavailable. Default for all methods. + + + + + Used with to set a method to be callable remotely by any peer. Analogous to the @rpc("any_peer") annotation. Calls are accepted from all remote peers, no matter if they are node's authority or not. + + + + + Used with to set a method to be callable remotely only by the current multiplayer authority (which is the server by default). Analogous to the @rpc("authority") annotation. See . + + + + + The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with ) and will set root node's network mode to authority, or it will become a regular client peer. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals. + + + + + Returns if there is a set. + + + + + Returns the unique peer ID of this MultiplayerAPI's . + + + + + Returns if this MultiplayerAPI's is valid and in server mode (listening for connections). + + + + + Returns the sender's peer ID for the RPC currently being executed. + Note: This method returns 0 when called outside of an RPC. As such, the original peer ID may be lost when code execution is delayed (such as with GDScript's await keyword). + + + + + Method used for polling the MultiplayerAPI. You only need to worry about this if you set to . By default, will poll its MultiplayerAPI(s) for you. + Note: This method results in RPCs being called, so they will be executed in the same context of this function (e.g. _process, physics, ). + + + + + Sends an RPC to the target . The given will be called on the remote with the provided . The RPC may also be called locally depending on the implementation and RPC configuration. See and . + Note: Prefer using , , or my_method.rpc(peer, arg1, arg2, ...) (in GDScript), since they are faster. This method is mostly useful in conjunction with when extending or replacing the multiplayer capabilities. + + + + + Notifies the MultiplayerAPI of a new for the given . This method is used internally by to configure the root path for this MultiplayerAPI (passing and a valid as ). This method can be further used by MultiplayerAPI implementations to provide additional features, refer to specific implementation (e.g. ) for details on how they use it. + Note: This method is mostly relevant when extending or overriding the MultiplayerAPI behavior via . + + + + + Notifies the MultiplayerAPI to remove a for the given . This method is used internally by to configure the root path for this MultiplayerAPI (passing and an empty as ). This method can be further used by MultiplayerAPI implementations to provide additional features, refer to specific implementation (e.g. ) for details on how they use it. + Note: This method is mostly relevant when extending or overriding the MultiplayerAPI behavior via . + + + + + Returns the peer IDs of all connected peers of this MultiplayerAPI's . + + + + + Sets the default MultiplayerAPI implementation class. This method can be used by modules and extensions to configure which implementation will be used by when the engine starts. + + + + + Returns the default MultiplayerAPI implementation class name. This is usually "SceneMultiplayer" when is available. See . + + + + + Returns a new instance of the default MultiplayerAPI. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's connects with a new peer. ID is the peer ID of the new peer. Clients get notified when other clients connect to the same server. Upon connecting to a server, a client also receives this signal for the server (with ID being 1). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's disconnects from a peer. Clients get notified when other clients disconnect from the same server. + + + + + Emitted when this MultiplayerAPI's successfully connected to a server. Only emitted on clients. + + + + + Emitted when this MultiplayerAPI's fails to establish a connection to a server. Only emitted on clients. + + + + + Emitted when this MultiplayerAPI's disconnects from server. Only emitted on clients. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'multiplayer_peer' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_multiplayer_peer' method. + + + + + Cached name for the 'get_multiplayer_peer' method. + + + + + Cached name for the 'set_multiplayer_peer' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'is_server' method. + + + + + Cached name for the 'get_remote_sender_id' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'rpc' method. + + + + + Cached name for the 'object_configuration_add' method. + + + + + Cached name for the 'object_configuration_remove' method. + + + + + Cached name for the 'get_peers' method. + + + + + Cached name for the 'set_default_interface' method. + + + + + Cached name for the 'get_default_interface' method. + + + + + Cached name for the 'create_default_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'peer_connected' signal. + + + + + Cached name for the 'peer_disconnected' signal. + + + + + Cached name for the 'connected_to_server' signal. + + + + + Cached name for the 'connection_failed' signal. + + + + + Cached name for the 'server_disconnected' signal. + + + + + This class can be used to extend or replace the default implementation via script or extensions. + The following example extend the default implementation () by logging every RPC being made, and every object being configured for replication. + + Then in your main scene or in an autoload call to start using your custom : + + Native extensions can alternatively use the method during initialization to configure themselves as the default implementation. + + + + + Called when the is retrieved. + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Called when the is set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_multiplayer_peer' method. + + + + + Cached name for the '_get_peer_ids' method. + + + + + Cached name for the '_get_remote_sender_id' method. + + + + + Cached name for the '_get_unique_id' method. + + + + + Cached name for the '_object_configuration_add' method. + + + + + Cached name for the '_object_configuration_remove' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_rpc' method. + + + + + Cached name for the '_set_multiplayer_peer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Manages the connection with one or more remote peers acting as server or client and assigning unique IDs to each of them. See also . + Note: The protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Packets are sent to all connected peers. + + + + + Packets are sent to the remote peer acting as server. + + + + + The MultiplayerPeer is disconnected. + + + + + The MultiplayerPeer is currently connecting to a server. + + + + + This MultiplayerPeer is connected. + + + + + Packets are not acknowledged, no resend attempts are made for lost packets. Packets may arrive in any order. Potentially faster than . Use for non-critical data, and always consider whether the order matters. + + + + + 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 . 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. + + + + + 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. + + + + + If , this refuses new connections. + + + + + The manner in which to send packets to the target peer. See , and the method. + + + + + The channel to use to send packets. Many network APIs such as ENet and WebRTC allow the creation of multiple independent channels which behaves, in a way, like separate connections. This means that reliable data will only block delivery of other packets on that channel, and ordering will only be in respect to the channel the packet is being sent on. Using different channels to send different and independent state updates is a common way to optimize network usage and decrease latency in fast-paced games. + Note: The default channel (0) actually works as 3 separate channels (one for each ) so that and does not interact with each other by default. Refer to the specific network API documentation (e.g. ENet or WebRTC) to learn how to set up channels correctly. + + + + + Sets the peer to which packets will be sent. + The can be one of: to send to all connected peers, to send to the peer acting as server, a valid peer ID to send to that specific peer, a negative peer ID to send to all peers except that one. By default, the target peer is . + + + + + Returns the ID of the who sent the next available packet. See . + + + + + Returns the channel over which the next available packet was received. See . + + + + + Returns the transfer mode the remote peer used to send the next available packet. See . + + + + + Waits up to 1 second to receive a new network event. + + + + + Immediately close the multiplayer peer returning to the state . Connected peers will be dropped without emitting . + + + + + Disconnects the given from this host. If is the signal will not be emitted for this peer. + + + + + Returns the current state of the connection. See . + + + + + Returns the ID of this . + + + + + Returns a randomly generated integer that can be used as a network unique ID. + + + + + Returns if the server can act as a relay in the current configuration. That is, if the higher level should notify connected clients of other peers, and implement a relay protocol to allow communication between them. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a remote peer connects. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a remote peer has disconnected. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'refuse_new_connections' property. + + + + + Cached name for the 'transfer_mode' property. + + + + + Cached name for the 'transfer_channel' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_transfer_channel' method. + + + + + Cached name for the 'get_transfer_channel' method. + + + + + Cached name for the 'set_transfer_mode' method. + + + + + Cached name for the 'get_transfer_mode' method. + + + + + Cached name for the 'set_target_peer' method. + + + + + Cached name for the 'get_packet_peer' method. + + + + + Cached name for the 'get_packet_channel' method. + + + + + Cached name for the 'get_packet_mode' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'disconnect_peer' method. + + + + + Cached name for the 'get_connection_status' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'generate_unique_id' method. + + + + + Cached name for the 'set_refuse_new_connections' method. + + + + + Cached name for the 'is_refusing_new_connections' method. + + + + + Cached name for the 'is_server_relay_supported' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'peer_connected' signal. + + + + + Cached name for the 'peer_disconnected' signal. + + + + + This class is designed to be inherited from a GDExtension plugin to implement custom networking layers for the multiplayer API (such as WebRTC). All the methods below must be implemented to have a working custom multiplayer implementation. See also . + + + + + Called when the multiplayer peer should be immediately closed (see ). + + + + + Called when the connected should be forcibly disconnected (see ). + + + + + Called when the available packet count is internally requested by the . + + + + + Called when the connection status is requested on the (see ). + + + + + Called when the maximum allowed packet size (in bytes) is requested by the . + + + + + Called to get the channel over which the next available packet was received. See . + + + + + Called to get the transfer mode the remote peer used to send the next available packet. See . + + + + + Called when the ID of the who sent the most recent packet is requested (see ). + + + + + Called when a packet needs to be received by the , if _get_packet isn't implemented. Use this when extending this class via GDScript. + + + + + Called when the transfer channel to use is read on this (see ). + + + + + Called when the transfer mode to use is read on this (see ). + + + + + Called when the unique ID of this is requested (see ). The value must be between 1 and 2147483647. + + + + + Called when the "refuse new connections" status is requested on this (see ). + + + + + Called when the "is server" status is requested on the . See . + + + + + Called to check if the server can act as a relay in the current configuration. See . + + + + + Called when the is polled. See . + + + + + Called when a packet needs to be sent by the , if _put_packet isn't implemented. Use this when extending this class via GDScript. + + + + + Called when the "refuse new connections" status is set on this (see ). + + + + + Called when the target peer to use is set for this (see ). + + + + + Called when the channel to use is set for this (see ). + + + + + Called when the transfer mode is set on this (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_close' method. + + + + + Cached name for the '_disconnect_peer' method. + + + + + Cached name for the '_get_available_packet_count' method. + + + + + Cached name for the '_get_connection_status' method. + + + + + Cached name for the '_get_max_packet_size' method. + + + + + Cached name for the '_get_packet_channel' method. + + + + + Cached name for the '_get_packet_mode' method. + + + + + Cached name for the '_get_packet_peer' method. + + + + + Cached name for the '_get_packet_script' method. + + + + + Cached name for the '_get_transfer_channel' method. + + + + + Cached name for the '_get_transfer_mode' method. + + + + + Cached name for the '_get_unique_id' method. + + + + + Cached name for the '_is_refusing_new_connections' method. + + + + + Cached name for the '_is_server' method. + + + + + Cached name for the '_is_server_relay_supported' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_put_packet_script' method. + + + + + Cached name for the '_set_refuse_new_connections' method. + + + + + Cached name for the '_set_target_peer' method. + + + + + Cached name for the '_set_transfer_channel' method. + + + + + Cached name for the '_set_transfer_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Spawnable scenes can be configured in the editor or through code (see ). + Also supports custom node spawns through , calling on all peers. + Internally, uses to notify spawns passing the spawned node as the object and itself as the configuration, and to notify despawns in a similar way. + + + + + Path to the spawn root. Spawnable scenes that are added as direct children are replicated to other peers. + + + + + Maximum number of nodes allowed to be spawned by this spawner. Includes both spawnable scenes and custom spawns. + When set to 0 (the default), there is no limit. + + + + + Method called on all peers when a custom is requested by the authority. Will receive the data parameter, and should return a that is not in the scene tree. + Note: The returned node should not be added to the scene with . This is done automatically. + + + + + Adds a scene path to spawnable scenes, making it automatically replicated from the multiplayer authority to other peers when added as children of the node pointed by . + + + + + Returns the count of spawnable scene paths. + + + + + Returns the spawnable scene path by index. + + + + + Clears all spawnable scenes. Does not despawn existing instances on remote peers. + + + + + Requests a custom spawn, with passed to on all peers. Returns the locally spawned node instance already inside the scene tree, and added as a child of the node pointed by . + Note: Spawnable scenes are spawned automatically. is only needed for custom spawns. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a spawnable scene or custom spawn was despawned by the multiplayer authority. Only called on remote peers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a spawnable scene or custom spawn was spawned by the multiplayer authority. Only called on remote peers. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_spawnable_scenes' property. + + + + + Cached name for the 'spawn_path' property. + + + + + Cached name for the 'spawn_limit' property. + + + + + Cached name for the 'spawn_function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_spawnable_scene' method. + + + + + Cached name for the 'get_spawnable_scene_count' method. + + + + + Cached name for the 'get_spawnable_scene' method. + + + + + Cached name for the 'clear_spawnable_scenes' method. + + + + + Cached name for the '_get_spawnable_scenes' method. + + + + + Cached name for the '_set_spawnable_scenes' method. + + + + + Cached name for the 'spawn' method. + + + + + Cached name for the 'get_spawn_path' method. + + + + + Cached name for the 'set_spawn_path' method. + + + + + Cached name for the 'get_spawn_limit' method. + + + + + Cached name for the 'set_spawn_limit' method. + + + + + Cached name for the 'get_spawn_function' method. + + + + + Cached name for the 'set_spawn_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'despawned' signal. + + + + + Cached name for the 'spawned' signal. + + + + + By default, synchronizes configured properties to all peers. + Visibility can be handled directly with or as-needed with and . + s will handle nodes according to visibility of synchronizers as long as the node at was spawned by one. + Internally, uses to notify synchronization start passing the at as the object and itself as the configuration, and uses to notify synchronization end in a similar way. + Note: Synchronization is not supported for type properties, like . Properties that are unique to each peer, like the instance IDs of s (see ) or s, will also not work in synchronization. + + + + + Visibility filters are updated during process frames (see ). + + + + + Visibility filters are updated during physics frames (see ). + + + + + Visibility filters are not updated automatically, and must be updated manually by calling . + + + + + Node path that replicated properties are relative to. + If was spawned by a , the node will be also be spawned and despawned based on this synchronizer visibility options. + + + + + Time interval between synchronizations. Used when the replication is set to . If set to 0.0 (the default), synchronizations happen every network process frame. + + + + + Time interval between delta synchronizations. Used when the replication is set to . If set to 0.0 (the default), delta synchronizations happen every network process frame. + + + + + Resource containing which properties to synchronize. + + + + + Specifies when visibility filters are updated (see for options). + + + + + Whether synchronization should be visible to all peers by default. See and for ways of configuring fine-grained visibility options. + + + + + Updates the visibility of according to visibility filters. If is 0 (the default), all peers' visibilties are updated. + + + + + Adds a peer visibility filter for this synchronizer. + should take a peer ID and return a . + + + + + Removes a peer visibility filter from this synchronizer. + + + + + Sets the visibility of to . If is 0, the value of will be updated instead. + + + + + Queries the current visibility for peer . + + + + + Emitted when a new synchronization state is received by this synchronizer after the properties have been updated. + + + + + Emitted when a new delta synchronization state is received by this synchronizer after the properties have been updated. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when visibility of forPeer is updated. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_path' property. + + + + + Cached name for the 'replication_interval' property. + + + + + Cached name for the 'delta_interval' property. + + + + + Cached name for the 'replication_config' property. + + + + + Cached name for the 'visibility_update_mode' property. + + + + + Cached name for the 'public_visibility' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_path' method. + + + + + Cached name for the 'get_root_path' method. + + + + + Cached name for the 'set_replication_interval' method. + + + + + Cached name for the 'get_replication_interval' method. + + + + + Cached name for the 'set_delta_interval' method. + + + + + Cached name for the 'get_delta_interval' method. + + + + + Cached name for the 'set_replication_config' method. + + + + + Cached name for the 'get_replication_config' method. + + + + + Cached name for the 'set_visibility_update_mode' method. + + + + + Cached name for the 'get_visibility_update_mode' method. + + + + + Cached name for the 'update_visibility' method. + + + + + Cached name for the 'set_visibility_public' method. + + + + + Cached name for the 'is_visibility_public' method. + + + + + Cached name for the 'add_visibility_filter' method. + + + + + Cached name for the 'remove_visibility_filter' method. + + + + + Cached name for the 'set_visibility_for' method. + + + + + Cached name for the 'get_visibility_for' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'synchronized' signal. + + + + + Cached name for the 'delta_synchronized' signal. + + + + + Cached name for the 'visibility_changed' signal. + + + + + A synchronization mutex (mutual exclusion). This is used to synchronize multiple s, and is equivalent to a binary . It guarantees that only one thread can access a critical section at a time. + This is a reentrant mutex, meaning that it can be locked multiple times by one thread, provided it also unlocks it as many times. + Warning: Mutexes must be used carefully to avoid deadlocks. + Warning: To ensure proper cleanup without crashes or deadlocks, the following conditions must be met: + - When a '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 's reference count reaches zero and it is therefore destroyed, it must not have any mutex locked. + + + + + Locks this , blocks until it is unlocked by the current owner. + Note: This function returns without blocking if the thread already has ownership of the mutex. + + + + + Tries locking this , but does not block. Returns on success, otherwise. + Note: This function returns if the thread already has ownership of the mutex. + + + + + Unlocks this , leaving it to other threads. + Note: If a thread called or multiple times while already having ownership of the mutex, it must also call the same number of times in order to unlock it correctly. + Warning: Calling more times that on a given thread, thus ending up trying to unlock a non-locked mutex, is wrong and may causes crashes or deadlocks. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'lock' method. + + + + + Cached name for the 'try_lock' method. + + + + + Cached name for the 'unlock' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles low-level access to the OS native global menu bar and popup menus. + Note: This is low-level API, consider using with set to , and with set to . + To create a menu, use , add menu items using add_*_item methods. To remove a menu, use . + + var menu + + func _menu_callback(item_id): + if item_id == "ITEM_CUT": + cut() + elif item_id == "ITEM_COPY": + copy() + elif item_id == "ITEM_PASTE": + paste() + + func _enter_tree(): + # Create new menu and add items: + menu = NativeMenu.create_menu() + NativeMenu.add_item(menu, "Cut", _menu_callback, Callable(), "ITEM_CUT") + NativeMenu.add_item(menu, "Copy", _menu_callback, Callable(), "ITEM_COPY") + NativeMenu.add_separator(menu) + NativeMenu.add_item(menu, "Paste", _menu_callback, Callable(), "ITEM_PASTE") + + func _on_button_pressed(): + # Show popup menu at mouse position: + NativeMenu.popup(menu, DisplayServer.mouse_get_position()) + + func _exit_tree(): + # Remove menu when it's no longer needed: + NativeMenu.free_menu(menu) + + + + + + supports native global main menu. + + + + + supports native popup menus. + + + + + supports menu open and close callbacks. + + + + + supports menu item hover callback. + + + + + supports menu item accelerator/key callback. + + + + + Invalid special system menu ID. + + + + + Global main menu ID. + + + + + Application (first menu after "Apple" menu on macOS) menu ID. + + + + + "Window" menu ID (on macOS this menu includes standard window control items and a list of open windows). + + + + + "Help" menu ID (on macOS this menu includes help search bar). + + + + + Dock icon right-click menu ID (on macOS this menu include standard application control items and a list of open windows). + + + + + Returns if the specified is supported by the current , otherwise. + Note: This method is implemented on macOS and Windows. + + + + + Returns if a special system menu is supported. + Note: This method is implemented only on macOS. + + + + + Returns RID of a special system menu. + Note: This method is implemented only on macOS. + + + + + Returns readable name of a special system menu. + Note: This method is implemented only on macOS. + + + + + Creates a new global menu object. + Note: This method is implemented on macOS and Windows. + + + + + Returns if is valid global menu. + Note: This method is implemented on macOS and Windows. + + + + + Frees a global menu object created by this . + Note: This method is implemented on macOS and Windows. + + + + + Returns global menu size. + Note: This method is implemented on macOS and Windows. + + + + + Shows the global menu at in the screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Sets the menu text layout direction from right-to-left if is . + Note: This method is implemented on macOS and Windows. + + + + + Registers callable to emit after the menu is closed. + Note: This method is implemented only on macOS. + + + + + Returns global menu open callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Registers callable to emit when the menu is about to show. + Note: The OS can simulate menu opening to track menu item changes and global shortcuts, in which case the corresponding close callback is not triggered. Use to check if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Returns global menu close callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Sets the minimum width of the global menu. + Note: This method is implemented only on macOS. + + + + + Returns global menu minimum width. + Note: This method is implemented only on macOS. + + + + + Returns if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the RID of the global menu that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Adds a new item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text to the global menu . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a separator between items to the global menu . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the submenu specified by . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checked. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Returns the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented on macOS and Windows. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns the icon of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented on macOS and Windows. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Sets the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets the submenu RID of the item at index . The submenu is a global menu that would be shown when the item is clicked. + Note: This method is implemented on macOS and Windows. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented on macOS and Windows. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Replaces the icon of the specified . + Note: This method is implemented on macOS and Windows. + Note: This method is not supported by macOS Dock menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Return is global menu is a special system menu. + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented on macOS and Windows. + + + + + Removes all items from the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'has_system_menu' method. + + + + + Cached name for the 'get_system_menu' method. + + + + + Cached name for the 'get_system_menu_name' method. + + + + + Cached name for the 'create_menu' method. + + + + + Cached name for the 'has_menu' method. + + + + + Cached name for the 'free_menu' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'popup' method. + + + + + Cached name for the 'set_interface_direction' method. + + + + + Cached name for the 'set_popup_open_callback' method. + + + + + Cached name for the 'get_popup_open_callback' method. + + + + + Cached name for the 'set_popup_close_callback' method. + + + + + Cached name for the 'get_popup_close_callback' method. + + + + + Cached name for the 'set_minimum_width' method. + + + + + Cached name for the 'get_minimum_width' method. + + + + + Cached name for the 'is_opened' method. + + + + + Cached name for the 'add_submenu_item' method. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_check_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'add_icon_check_item' method. + + + + + Cached name for the 'add_radio_check_item' method. + + + + + Cached name for the 'add_icon_radio_check_item' method. + + + + + Cached name for the 'add_multistate_item' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'find_item_index_with_text' method. + + + + + Cached name for the 'find_item_index_with_tag' method. + + + + + Cached name for the 'find_item_index_with_submenu' method. + + + + + Cached name for the 'is_item_checked' method. + + + + + Cached name for the 'is_item_checkable' method. + + + + + Cached name for the 'is_item_radio_checkable' method. + + + + + Cached name for the 'get_item_callback' method. + + + + + Cached name for the 'get_item_key_callback' method. + + + + + Cached name for the 'get_item_tag' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_submenu' method. + + + + + Cached name for the 'get_item_accelerator' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'is_item_hidden' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'get_item_state' method. + + + + + Cached name for the 'get_item_max_states' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_indentation_level' method. + + + + + Cached name for the 'set_item_checked' method. + + + + + Cached name for the 'set_item_checkable' method. + + + + + Cached name for the 'set_item_radio_checkable' method. + + + + + Cached name for the 'set_item_callback' method. + + + + + Cached name for the 'set_item_hover_callbacks' method. + + + + + Cached name for the 'set_item_key_callback' method. + + + + + Cached name for the 'set_item_tag' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_submenu' method. + + + + + Cached name for the 'set_item_accelerator' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_hidden' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'set_item_state' method. + + + + + Cached name for the 'set_item_max_states' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_indentation_level' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'is_system_menu' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles low-level access to the OS native global menu bar and popup menus. + Note: This is low-level API, consider using with set to , and with set to . + To create a menu, use , add menu items using add_*_item methods. To remove a menu, use . + + var menu + + func _menu_callback(item_id): + if item_id == "ITEM_CUT": + cut() + elif item_id == "ITEM_COPY": + copy() + elif item_id == "ITEM_PASTE": + paste() + + func _enter_tree(): + # Create new menu and add items: + menu = NativeMenu.create_menu() + NativeMenu.add_item(menu, "Cut", _menu_callback, Callable(), "ITEM_CUT") + NativeMenu.add_item(menu, "Copy", _menu_callback, Callable(), "ITEM_COPY") + NativeMenu.add_separator(menu) + NativeMenu.add_item(menu, "Paste", _menu_callback, Callable(), "ITEM_PASTE") + + func _on_button_pressed(): + # Show popup menu at mouse position: + NativeMenu.popup(menu, DisplayServer.mouse_get_position()) + + func _exit_tree(): + # Remove menu when it's no longer needed: + NativeMenu.free_menu(menu) + + + + + + Returns if the specified is supported by the current , otherwise. + Note: This method is implemented on macOS and Windows. + + + + + Returns if a special system menu is supported. + Note: This method is implemented only on macOS. + + + + + Returns RID of a special system menu. + Note: This method is implemented only on macOS. + + + + + Returns readable name of a special system menu. + Note: This method is implemented only on macOS. + + + + + Creates a new global menu object. + Note: This method is implemented on macOS and Windows. + + + + + Returns if is valid global menu. + Note: This method is implemented on macOS and Windows. + + + + + Frees a global menu object created by this . + Note: This method is implemented on macOS and Windows. + + + + + Returns global menu size. + Note: This method is implemented on macOS and Windows. + + + + + Shows the global menu at in the screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Sets the menu text layout direction from right-to-left if is . + Note: This method is implemented on macOS and Windows. + + + + + Registers callable to emit after the menu is closed. + Note: This method is implemented only on macOS. + + + + + Returns global menu open callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Registers callable to emit when the menu is about to show. + Note: The OS can simulate menu opening to track menu item changes and global shortcuts, in which case the corresponding close callback is not triggered. Use to check if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Returns global menu close callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Sets the minimum width of the global menu. + Note: This method is implemented only on macOS. + + + + + Returns global menu minimum width. + Note: This method is implemented only on macOS. + + + + + Returns if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the RID of the global menu that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Adds a new item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text to the global menu . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a separator between items to the global menu . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the submenu specified by . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checked. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Returns the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented on macOS and Windows. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns the icon of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented on macOS and Windows. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Sets the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets the submenu RID of the item at index . The submenu is a global menu that would be shown when the item is clicked. + Note: This method is implemented on macOS and Windows. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented on macOS and Windows. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Replaces the icon of the specified . + Note: This method is implemented on macOS and Windows. + Note: This method is not supported by macOS Dock menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Return is global menu is a special system menu. + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented on macOS and Windows. + + + + + Removes all items from the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'has_system_menu' method. + + + + + Cached name for the 'get_system_menu' method. + + + + + Cached name for the 'get_system_menu_name' method. + + + + + Cached name for the 'create_menu' method. + + + + + Cached name for the 'has_menu' method. + + + + + Cached name for the 'free_menu' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'popup' method. + + + + + Cached name for the 'set_interface_direction' method. + + + + + Cached name for the 'set_popup_open_callback' method. + + + + + Cached name for the 'get_popup_open_callback' method. + + + + + Cached name for the 'set_popup_close_callback' method. + + + + + Cached name for the 'get_popup_close_callback' method. + + + + + Cached name for the 'set_minimum_width' method. + + + + + Cached name for the 'get_minimum_width' method. + + + + + Cached name for the 'is_opened' method. + + + + + Cached name for the 'add_submenu_item' method. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_check_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'add_icon_check_item' method. + + + + + Cached name for the 'add_radio_check_item' method. + + + + + Cached name for the 'add_icon_radio_check_item' method. + + + + + Cached name for the 'add_multistate_item' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'find_item_index_with_text' method. + + + + + Cached name for the 'find_item_index_with_tag' method. + + + + + Cached name for the 'find_item_index_with_submenu' method. + + + + + Cached name for the 'is_item_checked' method. + + + + + Cached name for the 'is_item_checkable' method. + + + + + Cached name for the 'is_item_radio_checkable' method. + + + + + Cached name for the 'get_item_callback' method. + + + + + Cached name for the 'get_item_key_callback' method. + + + + + Cached name for the 'get_item_tag' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_submenu' method. + + + + + Cached name for the 'get_item_accelerator' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'is_item_hidden' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'get_item_state' method. + + + + + Cached name for the 'get_item_max_states' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_indentation_level' method. + + + + + Cached name for the 'set_item_checked' method. + + + + + Cached name for the 'set_item_checkable' method. + + + + + Cached name for the 'set_item_radio_checkable' method. + + + + + Cached name for the 'set_item_callback' method. + + + + + Cached name for the 'set_item_hover_callbacks' method. + + + + + Cached name for the 'set_item_key_callback' method. + + + + + Cached name for the 'set_item_tag' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_submenu' method. + + + + + Cached name for the 'set_item_accelerator' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_hidden' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'set_item_state' method. + + + + + Cached name for the 'set_item_max_states' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_indentation_level' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'is_system_menu' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D agent used to pathfind to a position while avoiding static and dynamic obstacles. The calculation can be used by the parent node to dynamically move it along the path. Requires navigation data to work correctly. + Dynamic obstacles are avoided using RVO collision avoidance. Avoidance is computed before physics, so the pathfinding information can be used safely in the physics step. + Note: After setting the property, the 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. + + + + + If set, a new navigation path from the current agent position to the is requested from the NavigationServer. + + + + + The distance threshold before a path point is considered to be reached. This allows agents to not have to hit a path point on the path exactly, but only to reach its general area. If this value is set too high, the NavigationAgent will skip points on the path, which can lead to it leaving the navigation mesh. If this value is set too low, the NavigationAgent will be stuck in a repath loop because it will constantly overshoot the distance to the next point on each physics frame update. + + + + + The distance threshold before the target is considered to be reached. On reaching the target, is emitted and navigation ends (see and ). + You can make navigation end early by setting this property to a value greater than (navigation will end before reaching the last waypoint). + You can also make navigation end closer to the target than each individual path position by setting this property to a value lower than (navigation won't immediately end when reaching the last waypoint). However, if the value set is too low, the agent will be stuck in a repath loop because it will constantly overshoot the distance to the target on each physics frame update. + + + + + The maximum distance the agent is allowed away from the ideal path to the final position. This can happen due to trying to avoid collisions. When the maximum distance is exceeded, it recalculates the ideal path. + + + + + A bitfield determining which navigation layers of navigation regions this agent will use to calculate a path. Changing it during runtime will clear the current navigation path and generate a new one, according to the new navigation layers. + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to return with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + If the agent is registered for an RVO avoidance callback on the . When is used and the processing is completed a safe_velocity Vector2 is received with a signal connection to . Avoidance processing with many registered agents has a significant performance cost and should only be enabled on agents that currently require it. + + + + + Sets the new wanted velocity for the agent. The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agents and obstacles. When an agent is teleported to a new position, use as well to reset the internal simulation velocity. + + + + + The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by ). + Does not affect normal pathfinding. To change an actor's pathfinding radius bake resources with a different property and use different navigation maps for each actor size. + + + + + The distance to search for other agents. + + + + + The maximum number of neighbors for the agent to consider. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to static avoidance obstacles. The larger the number, the sooner the agent will respond to static avoidance obstacles, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The maximum speed that an agent can move. + + + + + A bitfield determining the avoidance layers for this NavigationAgent. Other agents with a matching bit on the will avoid this agent. + + + + + A bitfield determining what other avoidance agents and obstacles this NavigationAgent will avoid when a bit matches at least one of their . + + + + + The agent does not adjust the velocity for other agents that would match the but have a lower . This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + If shows debug visuals for this agent. + + + + + If uses the defined for this agent instead of global color. + + + + + If is uses this color for this agent instead of global color. + + + + + If is uses this rasterized point size for rendering path points for this agent instead of global point size. + + + + + If is uses this line width for rendering paths for this agent instead of global line width. + + + + + Returns the of this agent on the . + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the of the navigation map this NavigationAgent node should use and also updates the agent on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationAgent node. This function returns always the map set on the NavigationAgent node and not the map of the abstract agent on the NavigationServer. If the agent map is changed directly with the NavigationServer API the NavigationAgent node will not be aware of the map change. Use to change the navigation map for the NavigationAgent and also update the agent on the NavigationServer. + + + + + Returns the next position in global coordinates that can be moved to, making sure that there are no static objects in the way. If the agent does not have a navigation path, it will return the position of the agent's parent. The use of this function once every physics frame is required to update the internal path logic of the NavigationAgent. + + + + + Replaces the internal velocity in the collision avoidance simulation with . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Returns the distance to the target position, using the agent's global position. The user must set in order for this to be accurate. + + + + + Returns the path query result for the path the agent is currently following. + + + + + Returns this agent's current path from start to finish in global coordinates. The path only updates when the target position is changed or the agent requires a repath. The path array is not intended to be used in direct path movement as the agent has its own internal path logic that would get corrupted by changing the path array manually. Use the intended once every physics frame to receive the next path point for the agents movement as this function also updates the internal path logic. + + + + + Returns which index the agent is currently on in the navigation path's []. + + + + + Returns if the agent reached the target, i.e. the agent moved within of the . It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Returns if is within of the . + + + + + Returns if the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. + Note: While prefer to stop calling update functions like . This avoids jittering the standing agent due to calling repeated path updates. + + + + + Returns the reachable final position of the current navigation path in global coordinates. This position can change if the agent needs to update the navigation path which makes the agent emit the signal. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified mask in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified mask of the bitmask is enabled, given a between 1 and 32. + + + + + Emitted when the agent had to update the loaded path: + - because path was previously empty. + - because navigation map has changed. + - because agent pushed further away from the current path segment than the . + + + + + Signals that the agent reached the target, i.e. the agent moved within of the . This signal is emitted only once per loaded path. + This signal will be emitted just before when the target is reachable. + It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a waypoint. Emitted when the agent moves within of the next position of the path. + The details dictionary may contain the following keys depending on the value of : + - position: The position of the waypoint that was reached. + - type: The type of navigation primitive (region or link) that contains this waypoint. + - rid: The of the containing navigation primitive (region or link). + - owner: The object which manages the containing navigation primitive (region or link). + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a navigation link. Emitted when the agent moves within of the next position of the path when that position is a navigation link. + The details dictionary may contain the following keys depending on the value of : + - position: The start position of the link that was reached. + - type: Always . + - rid: The of the link. + - owner: The object which manages the link (usually ). + - link_entry_position: If owner is available and the owner is a , it will contain the global position of the link's point the agent is entering. + - link_exit_position: If owner is available and the owner is a , it will contain the global position of the link's point which the agent is exiting. + + + + + Signals that the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. This signal is emitted only once per loaded path. + This signal will be emitted just after when the target is reachable. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when the collision avoidance velocity is calculated. Emitted every update as long as is and the agent has a navigation map. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'path_desired_distance' property. + + + + + Cached name for the 'target_desired_distance' property. + + + + + Cached name for the 'path_max_distance' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'path_metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'neighbor_distance' property. + + + + + Cached name for the 'max_neighbors' property. + + + + + Cached name for the 'time_horizon_agents' property. + + + + + Cached name for the 'time_horizon_obstacles' property. + + + + + Cached name for the 'max_speed' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached name for the 'avoidance_mask' property. + + + + + Cached name for the 'avoidance_priority' property. + + + + + Cached name for the 'debug_enabled' property. + + + + + Cached name for the 'debug_use_custom' property. + + + + + Cached name for the 'debug_path_custom_color' property. + + + + + Cached name for the 'debug_path_custom_point_size' property. + + + + + Cached name for the 'debug_path_custom_line_width' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_path_desired_distance' method. + + + + + Cached name for the 'get_path_desired_distance' method. + + + + + Cached name for the 'set_target_desired_distance' method. + + + + + Cached name for the 'get_target_desired_distance' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_neighbor_distance' method. + + + + + Cached name for the 'get_neighbor_distance' method. + + + + + Cached name for the 'set_max_neighbors' method. + + + + + Cached name for the 'get_max_neighbors' method. + + + + + Cached name for the 'set_time_horizon_agents' method. + + + + + Cached name for the 'get_time_horizon_agents' method. + + + + + Cached name for the 'set_time_horizon_obstacles' method. + + + + + Cached name for the 'get_time_horizon_obstacles' method. + + + + + Cached name for the 'set_max_speed' method. + + + + + Cached name for the 'get_max_speed' method. + + + + + Cached name for the 'set_path_max_distance' method. + + + + + Cached name for the 'get_path_max_distance' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_path_metadata_flags' method. + + + + + Cached name for the 'get_path_metadata_flags' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached name for the 'get_next_path_position' method. + + + + + Cached name for the 'set_velocity_forced' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'distance_to_target' method. + + + + + Cached name for the 'get_current_navigation_result' method. + + + + + Cached name for the 'get_current_navigation_path' method. + + + + + Cached name for the 'get_current_navigation_path_index' method. + + + + + Cached name for the 'is_target_reached' method. + + + + + Cached name for the 'is_target_reachable' method. + + + + + Cached name for the 'is_navigation_finished' method. + + + + + Cached name for the 'get_final_position' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_mask' method. + + + + + Cached name for the 'get_avoidance_mask' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_avoidance_mask_value' method. + + + + + Cached name for the 'get_avoidance_mask_value' method. + + + + + Cached name for the 'set_avoidance_priority' method. + + + + + Cached name for the 'get_avoidance_priority' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'set_debug_use_custom' method. + + + + + Cached name for the 'get_debug_use_custom' method. + + + + + Cached name for the 'set_debug_path_custom_color' method. + + + + + Cached name for the 'get_debug_path_custom_color' method. + + + + + Cached name for the 'set_debug_path_custom_point_size' method. + + + + + Cached name for the 'get_debug_path_custom_point_size' method. + + + + + Cached name for the 'set_debug_path_custom_line_width' method. + + + + + Cached name for the 'get_debug_path_custom_line_width' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'path_changed' signal. + + + + + Cached name for the 'target_reached' signal. + + + + + Cached name for the 'waypoint_reached' signal. + + + + + Cached name for the 'link_reached' signal. + + + + + Cached name for the 'navigation_finished' signal. + + + + + Cached name for the 'velocity_computed' signal. + + + + + A 3D agent used to pathfind to a position while avoiding static and dynamic obstacles. The calculation can be used by the parent node to dynamically move it along the path. Requires navigation data to work correctly. + Dynamic obstacles are avoided using RVO collision avoidance. Avoidance is computed before physics, so the pathfinding information can be used safely in the physics step. + Note: After setting the property, the 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. + + + + + If set, a new navigation path from the current agent position to the is requested from the NavigationServer. + + + + + The distance threshold before a path point is considered to be reached. This allows agents to not have to hit a path point on the path exactly, but only to reach its general area. If this value is set too high, the NavigationAgent will skip points on the path, which can lead to it leaving the navigation mesh. If this value is set too low, the NavigationAgent will be stuck in a repath loop because it will constantly overshoot the distance to the next point on each physics frame update. + + + + + The distance threshold before the target is considered to be reached. On reaching the target, is emitted and navigation ends (see and ). + You can make navigation end early by setting this property to a value greater than (navigation will end before reaching the last waypoint). + You can also make navigation end closer to the target than each individual path position by setting this property to a value lower than (navigation won't immediately end when reaching the last waypoint). However, if the value set is too low, the agent will be stuck in a repath loop because it will constantly overshoot the distance to the target on each physics frame update. + + + + + The height offset is subtracted from the y-axis value of any vector path position for this NavigationAgent. The NavigationAgent height offset does not change or influence the navigation mesh or pathfinding query result. Additional navigation maps that use regions with navigation meshes that the developer baked with appropriate agent radius or height values are required to support different-sized agents. + + + + + The maximum distance the agent is allowed away from the ideal path to the final position. This can happen due to trying to avoid collisions. When the maximum distance is exceeded, it recalculates the ideal path. + + + + + A bitfield determining which navigation layers of navigation regions this agent will use to calculate a path. Changing it during runtime will clear the current navigation path and generate a new one, according to the new navigation layers. + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to return with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + If the agent is registered for an RVO avoidance callback on the . When is set and the processing is completed a safe_velocity Vector3 is received with a signal connection to . Avoidance processing with many registered agents has a significant performance cost and should only be enabled on agents that currently require it. + + + + + Sets the new wanted velocity for the agent. The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agents and obstacles. When an agent is teleported to a new position, use as well to reset the internal simulation velocity. + + + + + The height of the avoidance agent. Agents will ignore other agents or obstacles that are above or below their current position + height in 2D avoidance. Does nothing in 3D avoidance which uses radius spheres alone. + + + + + The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by ). + Does not affect normal pathfinding. To change an actor's pathfinding radius bake resources with a different property and use different navigation maps for each actor size. + + + + + The distance to search for other agents. + + + + + The maximum number of neighbors for the agent to consider. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to static avoidance obstacles. The larger the number, the sooner the agent will respond to static avoidance obstacles, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The maximum speed that an agent can move. + + + + + If , the agent calculates avoidance velocities in 3D omnidirectionally, e.g. for games that take place in air, underwater or space. Agents using 3D avoidance only avoid other agents using 3D avoidance, and react to radius-based avoidance obstacles. They ignore any vertex-based obstacles. + If , the agent calculates avoidance velocities in 2D along the x and z-axes, ignoring the y-axis. Agents using 2D avoidance only avoid other agents using 2D avoidance, and react to radius-based avoidance obstacles or vertex-based avoidance obstacles. Other agents using 2D avoidance that are below or above their current position including are ignored. + + + + + If , and the agent uses 2D avoidance, it will remember the set y-axis velocity and reapply it after the avoidance step. While 2D avoidance has no y-axis and simulates on a flat plane this setting can help to soften the most obvious clipping on uneven 3D geometry. + + + + + A bitfield determining the avoidance layers for this NavigationAgent. Other agents with a matching bit on the will avoid this agent. + + + + + A bitfield determining what other avoidance agents and obstacles this NavigationAgent will avoid when a bit matches at least one of their . + + + + + The agent does not adjust the velocity for other agents that would match the but have a lower . This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + If shows debug visuals for this agent. + + + + + If uses the defined for this agent instead of global color. + + + + + If is uses this color for this agent instead of global color. + + + + + If is uses this rasterized point size for rendering path points for this agent instead of global point size. + + + + + Returns the of this agent on the . + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the of the navigation map this NavigationAgent node should use and also updates the agent on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationAgent node. This function returns always the map set on the NavigationAgent node and not the map of the abstract agent on the NavigationServer. If the agent map is changed directly with the NavigationServer API the NavigationAgent node will not be aware of the map change. Use to change the navigation map for the NavigationAgent and also update the agent on the NavigationServer. + + + + + Returns the next position in global coordinates that can be moved to, making sure that there are no static objects in the way. If the agent does not have a navigation path, it will return the position of the agent's parent. The use of this function once every physics frame is required to update the internal path logic of the NavigationAgent. + + + + + Replaces the internal velocity in the collision avoidance simulation with . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Returns the distance to the target position, using the agent's global position. The user must set in order for this to be accurate. + + + + + Returns the path query result for the path the agent is currently following. + + + + + Returns this agent's current path from start to finish in global coordinates. The path only updates when the target position is changed or the agent requires a repath. The path array is not intended to be used in direct path movement as the agent has its own internal path logic that would get corrupted by changing the path array manually. Use the intended once every physics frame to receive the next path point for the agents movement as this function also updates the internal path logic. + + + + + Returns which index the agent is currently on in the navigation path's []. + + + + + Returns if the agent reached the target, i.e. the agent moved within of the . It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Returns if is within of the . + + + + + Returns if the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. + Note: While prefer to stop calling update functions like . This avoids jittering the standing agent due to calling repeated path updates. + + + + + Returns the reachable final position of the current navigation path in global coordinates. This position can change if the agent needs to update the navigation path which makes the agent emit the signal. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified mask in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified mask of the bitmask is enabled, given a between 1 and 32. + + + + + Emitted when the agent had to update the loaded path: + - because path was previously empty. + - because navigation map has changed. + - because agent pushed further away from the current path segment than the . + + + + + Signals that the agent reached the target, i.e. the agent moved within of the . This signal is emitted only once per loaded path. + This signal will be emitted just before when the target is reachable. + It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a waypoint. Emitted when the agent moves within of the next position of the path. + The details dictionary may contain the following keys depending on the value of : + - position: The position of the waypoint that was reached. + - type: The type of navigation primitive (region or link) that contains this waypoint. + - rid: The of the containing navigation primitive (region or link). + - owner: The object which manages the containing navigation primitive (region or link). + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a navigation link. Emitted when the agent moves within of the next position of the path when that position is a navigation link. + The details dictionary may contain the following keys depending on the value of : + - position: The start position of the link that was reached. + - type: Always . + - rid: The of the link. + - owner: The object which manages the link (usually ). + - link_entry_position: If owner is available and the owner is a , it will contain the global position of the link's point the agent is entering. + - link_exit_position: If owner is available and the owner is a , it will contain the global position of the link's point which the agent is exiting. + + + + + Signals that the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. This signal is emitted only once per loaded path. + This signal will be emitted just after when the target is reachable. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when the collision avoidance velocity is calculated. Emitted every update as long as is and the agent has a navigation map. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'path_desired_distance' property. + + + + + Cached name for the 'target_desired_distance' property. + + + + + Cached name for the 'path_height_offset' property. + + + + + Cached name for the 'path_max_distance' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'path_metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'neighbor_distance' property. + + + + + Cached name for the 'max_neighbors' property. + + + + + Cached name for the 'time_horizon_agents' property. + + + + + Cached name for the 'time_horizon_obstacles' property. + + + + + Cached name for the 'max_speed' property. + + + + + Cached name for the 'use_3d_avoidance' property. + + + + + Cached name for the 'keep_y_velocity' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached name for the 'avoidance_mask' property. + + + + + Cached name for the 'avoidance_priority' property. + + + + + Cached name for the 'debug_enabled' property. + + + + + Cached name for the 'debug_use_custom' property. + + + + + Cached name for the 'debug_path_custom_color' property. + + + + + Cached name for the 'debug_path_custom_point_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_path_desired_distance' method. + + + + + Cached name for the 'get_path_desired_distance' method. + + + + + Cached name for the 'set_target_desired_distance' method. + + + + + Cached name for the 'get_target_desired_distance' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_path_height_offset' method. + + + + + Cached name for the 'get_path_height_offset' method. + + + + + Cached name for the 'set_use_3d_avoidance' method. + + + + + Cached name for the 'get_use_3d_avoidance' method. + + + + + Cached name for the 'set_keep_y_velocity' method. + + + + + Cached name for the 'get_keep_y_velocity' method. + + + + + Cached name for the 'set_neighbor_distance' method. + + + + + Cached name for the 'get_neighbor_distance' method. + + + + + Cached name for the 'set_max_neighbors' method. + + + + + Cached name for the 'get_max_neighbors' method. + + + + + Cached name for the 'set_time_horizon_agents' method. + + + + + Cached name for the 'get_time_horizon_agents' method. + + + + + Cached name for the 'set_time_horizon_obstacles' method. + + + + + Cached name for the 'get_time_horizon_obstacles' method. + + + + + Cached name for the 'set_max_speed' method. + + + + + Cached name for the 'get_max_speed' method. + + + + + Cached name for the 'set_path_max_distance' method. + + + + + Cached name for the 'get_path_max_distance' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_path_metadata_flags' method. + + + + + Cached name for the 'get_path_metadata_flags' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached name for the 'get_next_path_position' method. + + + + + Cached name for the 'set_velocity_forced' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'distance_to_target' method. + + + + + Cached name for the 'get_current_navigation_result' method. + + + + + Cached name for the 'get_current_navigation_path' method. + + + + + Cached name for the 'get_current_navigation_path_index' method. + + + + + Cached name for the 'is_target_reached' method. + + + + + Cached name for the 'is_target_reachable' method. + + + + + Cached name for the 'is_navigation_finished' method. + + + + + Cached name for the 'get_final_position' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_mask' method. + + + + + Cached name for the 'get_avoidance_mask' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_avoidance_mask_value' method. + + + + + Cached name for the 'get_avoidance_mask_value' method. + + + + + Cached name for the 'set_avoidance_priority' method. + + + + + Cached name for the 'get_avoidance_priority' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'set_debug_use_custom' method. + + + + + Cached name for the 'get_debug_use_custom' method. + + + + + Cached name for the 'set_debug_path_custom_color' method. + + + + + Cached name for the 'get_debug_path_custom_color' method. + + + + + Cached name for the 'set_debug_path_custom_point_size' method. + + + + + Cached name for the 'get_debug_path_custom_point_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'path_changed' signal. + + + + + Cached name for the 'target_reached' signal. + + + + + Cached name for the 'waypoint_reached' signal. + + + + + Cached name for the 'link_reached' signal. + + + + + Cached name for the 'navigation_finished' signal. + + + + + Cached name for the 'velocity_computed' signal. + + + + + A link between two positions on s that agents can be routed through. These positions can be on the same 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. + + + + + Whether this link is currently active. If , will ignore this link. + + + + + Whether this link can be traveled in both directions or only from to . + + + + + A bitfield determining all navigation layers the link belongs to. These navigation layers will be checked when requesting a path with . + + + + + Starting position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + Ending position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + When pathfinding enters this link from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves along the link the traveled distance is multiplied with for determining the shortest path. + + + + + Returns the of this link on the . + + + + + Sets the of the navigation map this link should use. By default the link will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this link. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'bidirectional' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'end_position' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_bidirectional' method. + + + + + Cached name for the 'is_bidirectional' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_end_position' method. + + + + + Cached name for the 'get_end_position' method. + + + + + Cached name for the 'set_global_start_position' method. + + + + + Cached name for the 'get_global_start_position' method. + + + + + Cached name for the 'set_global_end_position' method. + + + + + Cached name for the 'get_global_end_position' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A link between two positions on s that agents can be routed through. These positions can be on the same 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. + + + + + Whether this link is currently active. If , will ignore this link. + + + + + Whether this link can be traveled in both directions or only from to . + + + + + A bitfield determining all navigation layers the link belongs to. These navigation layers will be checked when requesting a path with . + + + + + Starting position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + Ending position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + When pathfinding enters this link from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves along the link the traveled distance is multiplied with for determining the shortest path. + + + + + Returns the of this link on the . + + + + + Sets the of the navigation map this link should use. By default the link will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this link. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'bidirectional' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'end_position' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_bidirectional' method. + + + + + Cached name for the 'is_bidirectional' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_end_position' method. + + + + + Cached name for the 'get_end_position' method. + + + + + Cached name for the 'set_global_start_position' method. + + + + + Cached name for the 'get_global_start_position' method. + + + + + Cached name for the 'set_global_end_position' method. + + + + + Cached name for the 'get_global_end_position' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Watershed partitioning. Generally the best choice if you precompute the navigation mesh, use this if you have large open areas. + + + + + Monotone partitioning. Use this if you want fast navigation mesh generation. + + + + + Layer partitioning. Good choice to use for tiled navigation mesh with medium and small sized tiles. + + + + + Represents the size of the enum. + + + + + Parses mesh instances as geometry. This includes , , and nodes. + + + + + Parses colliders as geometry. The collider should be in any of the layers specified by . + + + + + Both and . + + + + + Represents the size of the enum. + + + + + Scans the child nodes of the root node recursively for geometry. + + + + + Scans nodes in a group and their child nodes recursively for geometry. The group is specified by . + + + + + Uses nodes in a group for geometry. The group is specified by . + + + + + Represents the size of the enum. + + + + + Partitioning algorithm for creating the navigation mesh polys. See for possible values. + + + + + Determines which type of nodes will be parsed as geometry. See for possible values. + + + + + The physics layers to scan for static colliders. + Only used when is or . + + + + + The source of the geometry used when baking. See for possible values. + + + + + The name of the group to scan for geometry. + Only used when is or . + + + + + The cell size used to rasterize the navigation mesh vertices on the XZ plane. Must match with the cell size on the navigation map. + + + + + The cell height used to rasterize the navigation mesh vertices on the Y axis. Must match with the cell height on the navigation map. + + + + + The size of the non-navigable border around the bake bounding area. + In conjunction with the and a value at 1.0 or below the border size can be used to bake tile aligned navigation meshes without the tile edges being shrunk by . + Note: While baking and not zero, this value will be rounded up to the nearest multiple of . + + + + + The minimum floor to ceiling height that will still allow the floor area to be considered walkable. + Note: While baking, this value will be rounded up to the nearest multiple of . + + + + + The distance to erode/shrink the walkable area of the heightfield away from obstructions. + Note: While baking, this value will be rounded up to the nearest multiple of . + + + + + The minimum ledge height that is considered to still be traversable. + Note: While baking, this value will be rounded down to the nearest multiple of . + + + + + The maximum slope that is considered walkable, in degrees. + + + + + The minimum size of a region for it to be created. + Note: This value will be squared to calculate the minimum number of cells allowed to form isolated island areas. For example, a value of 8 will set the number of cells to 64. + + + + + Any regions with a size smaller than this will be merged with larger regions if possible. + Note: This value will be squared to calculate the number of cells. For example, a value of 20 will set the number of cells to 400. + + + + + The maximum allowed length for contour edges along the border of the mesh. A value of 0.0 disables this feature. + Note: While baking, this value will be rounded up to the nearest multiple of . + + + + + The maximum distance a simplified contour's border edges should deviate the original raw contour. + + + + + The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process. + + + + + The sampling distance to use when generating the detail mesh, in cell unit. + + + + + The maximum distance the detail mesh surface should deviate from heightfield, in cell unit. + + + + + If , marks non-walkable spans as walkable if their maximum is within of a walkable neighbor. + + + + + If , marks spans that are ledges as non-walkable. + + + + + If , marks walkable spans as not walkable if the clearance above the span is less than . + + + + + If the baking has a volume the navigation mesh baking will be restricted to its enclosing area. + + + + + The position offset applied to the . + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Returns a [] containing all the vertices being used to create the polygons. + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Returns the number of polygons in the navigation mesh. + + + + + Returns a [] containing the indices of the vertices of a created polygon. + + + + + Clears the array of polygons, but it doesn't clear the array of vertices. + + + + + Initializes the navigation mesh by setting the vertices and indices according to a . + Note: The given must be of type and have an index array. + + + + + Clears the internal arrays for vertices and polygon indices. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'polygons' property. + + + + + Cached name for the 'sample_partition_type' property. + + + + + Cached name for the 'geometry_parsed_geometry_type' property. + + + + + Cached name for the 'geometry_collision_mask' property. + + + + + Cached name for the 'geometry_source_geometry_mode' property. + + + + + Cached name for the 'geometry_source_group_name' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'cell_height' property. + + + + + Cached name for the 'border_size' property. + + + + + Cached name for the 'agent_height' property. + + + + + Cached name for the 'agent_radius' property. + + + + + Cached name for the 'agent_max_climb' property. + + + + + Cached name for the 'agent_max_slope' property. + + + + + Cached name for the 'region_min_size' property. + + + + + Cached name for the 'region_merge_size' property. + + + + + Cached name for the 'edge_max_length' property. + + + + + Cached name for the 'edge_max_error' property. + + + + + Cached name for the 'vertices_per_polygon' property. + + + + + Cached name for the 'detail_sample_distance' property. + + + + + Cached name for the 'detail_sample_max_error' property. + + + + + Cached name for the 'filter_low_hanging_obstacles' property. + + + + + Cached name for the 'filter_ledge_spans' property. + + + + + Cached name for the 'filter_walkable_low_height_spans' property. + + + + + Cached name for the 'filter_baking_aabb' property. + + + + + Cached name for the 'filter_baking_aabb_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sample_partition_type' method. + + + + + Cached name for the 'get_sample_partition_type' method. + + + + + Cached name for the 'set_parsed_geometry_type' method. + + + + + Cached name for the 'get_parsed_geometry_type' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_source_geometry_mode' method. + + + + + Cached name for the 'get_source_geometry_mode' method. + + + + + Cached name for the 'set_source_group_name' method. + + + + + Cached name for the 'get_source_group_name' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_cell_height' method. + + + + + Cached name for the 'get_cell_height' method. + + + + + Cached name for the 'set_border_size' method. + + + + + Cached name for the 'get_border_size' method. + + + + + Cached name for the 'set_agent_height' method. + + + + + Cached name for the 'get_agent_height' method. + + + + + Cached name for the 'set_agent_radius' method. + + + + + Cached name for the 'get_agent_radius' method. + + + + + Cached name for the 'set_agent_max_climb' method. + + + + + Cached name for the 'get_agent_max_climb' method. + + + + + Cached name for the 'set_agent_max_slope' method. + + + + + Cached name for the 'get_agent_max_slope' method. + + + + + Cached name for the 'set_region_min_size' method. + + + + + Cached name for the 'get_region_min_size' method. + + + + + Cached name for the 'set_region_merge_size' method. + + + + + Cached name for the 'get_region_merge_size' method. + + + + + Cached name for the 'set_edge_max_length' method. + + + + + Cached name for the 'get_edge_max_length' method. + + + + + Cached name for the 'set_edge_max_error' method. + + + + + Cached name for the 'get_edge_max_error' method. + + + + + Cached name for the 'set_vertices_per_polygon' method. + + + + + Cached name for the 'get_vertices_per_polygon' method. + + + + + Cached name for the 'set_detail_sample_distance' method. + + + + + Cached name for the 'get_detail_sample_distance' method. + + + + + Cached name for the 'set_detail_sample_max_error' method. + + + + + Cached name for the 'get_detail_sample_max_error' method. + + + + + Cached name for the 'set_filter_low_hanging_obstacles' method. + + + + + Cached name for the 'get_filter_low_hanging_obstacles' method. + + + + + Cached name for the 'set_filter_ledge_spans' method. + + + + + Cached name for the 'get_filter_ledge_spans' method. + + + + + Cached name for the 'set_filter_walkable_low_height_spans' method. + + + + + Cached name for the 'get_filter_walkable_low_height_spans' method. + + + + + Cached name for the 'set_filter_baking_aabb' method. + + + + + Cached name for the 'get_filter_baking_aabb' method. + + + + + Cached name for the 'set_filter_baking_aabb_offset' method. + + + + + Cached name for the 'get_filter_baking_aabb_offset' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'add_polygon' method. + + + + + Cached name for the 'get_polygon_count' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'clear_polygons' method. + + + + + Cached name for the 'create_from_mesh' method. + + + + + Cached name for the '_set_polygons' method. + + + + + Cached name for the '_get_polygons' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is responsible for creating and clearing 3D navigation meshes used as resources inside . The has very limited to no use for 2D as the navigation mesh baking process expects 3D node types and 3D source geometry to parse. + The entire navigation mesh baking is best done in a separate thread as the voxelization, collision tests and mesh optimization steps involved are very slow and performance-intensive operations. + Navigation mesh baking happens in multiple steps and the result depends on 3D source geometry and properties of the resource. In the first step, starting from a root node and depending on properties all valid 3D source geometry nodes are collected from the . Second, all collected nodes are parsed for their relevant 3D geometry data and a combined 3D mesh is build. Due to the many different types of parsable objects, from normal s to s or various s, some operations to collect geometry data can trigger and synchronizations. Server synchronization can have a negative effect on baking time or framerate as it often involves locking for thread security. Many parsable objects and the continuous synchronization with other threaded Servers can increase the baking time significantly. On the other hand only a few but very large and complex objects will take some time to prepare for the Servers which can noticeably stall the next frame render. As a general rule the total number of parsable objects and their individual size and complexity should be balanced to avoid framerate issues or very long baking times. The combined mesh is then passed to the Recast Navigation Object to test the source geometry for walkable terrain suitable to agent properties by creating a voxel world around the meshes bounding area. + The finalized navigation mesh is then returned and stored inside the for use as a resource inside nodes. + Note: Using meshes to not only define walkable surfaces but also obstruct navigation baking does not always work. The navigation baking has no concept of what is a geometry "inside" when dealing with mesh source geometry and this is intentional. Depending on current baking parameters, as soon as the obstructing mesh is large enough to fit a navigation mesh area inside, the baking will generate navigation mesh areas that are inside the obstructing source geometry mesh. + + + + + Bakes the with source geometry collected starting from the . + + + + + Removes all polygons and vertices from the provided resource. + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is responsible for creating and clearing 3D navigation meshes used as resources inside . The has very limited to no use for 2D as the navigation mesh baking process expects 3D node types and 3D source geometry to parse. + The entire navigation mesh baking is best done in a separate thread as the voxelization, collision tests and mesh optimization steps involved are very slow and performance-intensive operations. + Navigation mesh baking happens in multiple steps and the result depends on 3D source geometry and properties of the resource. In the first step, starting from a root node and depending on properties all valid 3D source geometry nodes are collected from the . Second, all collected nodes are parsed for their relevant 3D geometry data and a combined 3D mesh is build. Due to the many different types of parsable objects, from normal s to s or various s, some operations to collect geometry data can trigger and synchronizations. Server synchronization can have a negative effect on baking time or framerate as it often involves locking for thread security. Many parsable objects and the continuous synchronization with other threaded Servers can increase the baking time significantly. On the other hand only a few but very large and complex objects will take some time to prepare for the Servers which can noticeably stall the next frame render. As a general rule the total number of parsable objects and their individual size and complexity should be balanced to avoid framerate issues or very long baking times. The combined mesh is then passed to the Recast Navigation Object to test the source geometry for walkable terrain suitable to agent properties by creating a voxel world around the meshes bounding area. + The finalized navigation mesh is then returned and stored inside the for use as a resource inside nodes. + Note: Using meshes to not only define walkable surfaces but also obstruct navigation baking does not always work. The navigation baking has no concept of what is a geometry "inside" when dealing with mesh source geometry and this is intentional. Depending on current baking parameters, as soon as the obstructing mesh is large enough to fit a navigation mesh area inside, the baking will generate navigation mesh areas that are inside the obstructing source geometry mesh. + + + + + Bakes the with source geometry collected starting from the . + + + + + Removes all polygons and vertices from the provided resource. + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Container for parsed source geometry data used in navigation mesh baking. + + + + + Clears the internal data. + + + + + Returns when parsed source geometry data exists. + + + + + Sets all the traversable area outlines arrays. + + + + + Returns all the traversable area outlines arrays. + + + + + Sets all the obstructed area outlines arrays. + + + + + Returns all the obstructed area outlines arrays. + + + + + Appends another array of at the end of the existing traversable outlines array. + + + + + Appends another array of at the end of the existing obstruction outlines array. + + + + + Adds the outline points of a shape as traversable area. + + + + + Adds the outline points of a shape as traversable area. + + + + + Adds the outline points of a shape as obstructed area. + + + + + Adds the outline points of a shape as obstructed area. + + + + + Adds the geometry data of another to the navigation mesh baking data. + + + + + Adds a projected obstruction shape to the source geometry. If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Adds a projected obstruction shape to the source geometry. If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Clears all projected obstructions. + + + + + Sets the projected obstructions with an Array of Dictionaries with the following key value pairs: + + + + + + Returns the projected obstructions as an of dictionaries. Each contains the following entries: + - vertices - A [] that defines the outline points of the projected shape. + - carve - A that defines how the projected shape affects the navigation mesh baking. If the projected shape will not be affected by addition offsets, e.g. agent radius. + + + + + Returns an axis-aligned bounding box that covers all the stored geometry data. The bounds are calculated when calling this function with the result cached until further geometry changes are made. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'traversable_outlines' property. + + + + + Cached name for the 'obstruction_outlines' property. + + + + + Cached name for the 'projected_obstructions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'has_data' method. + + + + + Cached name for the 'set_traversable_outlines' method. + + + + + Cached name for the 'get_traversable_outlines' method. + + + + + Cached name for the 'set_obstruction_outlines' method. + + + + + Cached name for the 'get_obstruction_outlines' method. + + + + + Cached name for the 'append_traversable_outlines' method. + + + + + Cached name for the 'append_obstruction_outlines' method. + + + + + Cached name for the 'add_traversable_outline' method. + + + + + Cached name for the 'add_obstruction_outline' method. + + + + + Cached name for the 'merge' method. + + + + + Cached name for the 'add_projected_obstruction' method. + + + + + Cached name for the 'clear_projected_obstructions' method. + + + + + Cached name for the 'set_projected_obstructions' method. + + + + + Cached name for the 'get_projected_obstructions' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Container for parsed source geometry data used in navigation mesh baking. + + + + + Sets the parsed source geometry data vertices. The vertices need to be matched with appropriated indices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Sets the parsed source geometry data vertices. The vertices need to be matched with appropriated indices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Returns the parsed source geometry data vertices array. + + + + + Sets the parsed source geometry data indices. The indices need to be matched with appropriated vertices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Sets the parsed source geometry data indices. The indices need to be matched with appropriated vertices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Returns the parsed source geometry data indices array. + + + + + Appends arrays of and at the end of the existing arrays. Adds the existing index as an offset to the appended indices. + + + + + Appends arrays of and at the end of the existing arrays. Adds the existing index as an offset to the appended indices. + + + + + Clears the internal data. + + + + + Returns when parsed source geometry data exists. + + + + + Adds the geometry data of a resource to the navigation mesh baking data. The mesh must have valid triangulated mesh data to be considered. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds an the size of and with vertices at index and indices at index to the navigation mesh baking data. The array must have valid triangulated mesh data to be considered. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds the geometry data of another to the navigation mesh baking data. + + + + + Adds a projected obstruction shape to the source geometry. The are considered projected on a xz-axes plane, placed at the global y-axis and extruded by . If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Adds a projected obstruction shape to the source geometry. The are considered projected on a xz-axes plane, placed at the global y-axis and extruded by . If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Clears all projected obstructions. + + + + + Sets the projected obstructions with an Array of Dictionaries with the following key value pairs: + + + + + + Returns the projected obstructions as an of dictionaries. Each contains the following entries: + - vertices - A [] that defines the outline points of the projected shape. + - elevation - A that defines the projected shape placement on the y-axis. + - height - A that defines how much the projected shape is extruded along the y-axis. + - carve - A that defines how the obstacle affects the navigation mesh baking. If the projected shape will not be affected by addition offsets, e.g. agent radius. + + + + + Returns an axis-aligned bounding box that covers all the stored geometry data. The bounds are calculated when calling this function with the result cached until further geometry changes are made. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'indices' property. + + + + + Cached name for the 'projected_obstructions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'set_indices' method. + + + + + Cached name for the 'get_indices' method. + + + + + Cached name for the 'append_arrays' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'has_data' method. + + + + + Cached name for the 'add_mesh' method. + + + + + Cached name for the 'add_mesh_array' method. + + + + + Cached name for the 'add_faces' method. + + + + + Cached name for the 'merge' method. + + + + + Cached name for the 'add_projected_obstruction' method. + + + + + Cached name for the 'clear_projected_obstructions' method. + + + + + Cached name for the 'set_projected_obstructions' method. + + + + + Cached name for the 'get_projected_obstructions' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An obstacle needs a navigation map and outline defined to work correctly. The outlines can not cross or overlap. + Obstacles can be included in the navigation mesh baking process when is enabled. They do not add walkable geometry, instead their role is to discard other source geometry inside the shape. This can be used to prevent navigation mesh from appearing in unwanted places. If is enabled the baked shape will not be affected by offsets of the navigation mesh baking, e.g. the agent radius. + With the obstacle can constrain the avoidance velocities of avoidance using agents. If the obstacle's vertices are wound in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Obstacles using vertices and avoidance can warp to a new position but should not be moved every single frame as each change requires a rebuild of the avoidance map. + + + + + Sets the avoidance radius for the obstacle. + + + + + The outline vertices of the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. Outlines can not be crossed or overlap. Should the vertices using obstacle be warped to a new position agent's can not predict this movement and may get trapped inside the obstacle. + + + + + If enabled and parsed in a navigation mesh baking process the obstacle will discard source geometry inside its defined shape. + + + + + If enabled the obstacle vertices will carve into the baked navigation mesh with the shape unaffected by additional offsets (e.g. agent radius). + It will still be affected by further postprocessing of the baking process, like edge and polygon simplification. + Requires to be enabled. + + + + + If the obstacle affects avoidance using agents. + + + + + Sets the wanted velocity for the obstacle so other agent's can better predict the obstacle if it is moved with a velocity regularly (every frame) instead of warped to a new position. Does only affect avoidance for the obstacles . Does nothing for the obstacles static vertices. + + + + + A bitfield determining the avoidance layers for this obstacle. Agents with a matching bit on the their avoidance mask will avoid this obstacle. + + + + + Returns the of this obstacle on the . + + + + + Sets the of the navigation map this NavigationObstacle node should use and also updates the obstacle on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationObstacle node. This function returns always the map set on the NavigationObstacle node and not the map of the abstract obstacle on the NavigationServer. If the obstacle map is changed directly with the NavigationServer API the NavigationObstacle node will not be aware of the map change. Use to change the navigation map for the NavigationObstacle and also update the obstacle on the NavigationServer. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'affect_navigation_mesh' property. + + + + + Cached name for the 'carve_navigation_mesh' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_affect_navigation_mesh' method. + + + + + Cached name for the 'get_affect_navigation_mesh' method. + + + + + Cached name for the 'set_carve_navigation_mesh' method. + + + + + Cached name for the 'get_carve_navigation_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An obstacle needs a navigation map and outline defined to work correctly. The outlines can not cross or overlap and are restricted to a plane projection. This means the y-axis of the vertices is ignored, instead the obstacle's global y-axis position is used for placement. The projected shape is extruded by the obstacles height along the y-axis. + Obstacles can be included in the navigation mesh baking process when is enabled. They do not add walkable geometry, instead their role is to discard other source geometry inside the shape. This can be used to prevent navigation mesh from appearing in unwanted places, e.g. inside "solid" geometry or on top of it. If is enabled the baked shape will not be affected by offsets of the navigation mesh baking, e.g. the agent radius. + With the obstacle can constrain the avoidance velocities of avoidance using agents. If the obstacle's vertices are wound in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Obstacles using vertices and avoidance can warp to a new position but should not be moved every single frame as each change requires a rebuild of the avoidance map. + + + + + Sets the avoidance radius for the obstacle. + + + + + Sets the obstacle height used in 2D avoidance. 2D avoidance using agent's ignore obstacles that are below or above them. + + + + + The outline vertices of the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. Outlines can not be crossed or overlap. Should the vertices using obstacle be warped to a new position agent's can not predict this movement and may get trapped inside the obstacle. + + + + + If enabled and parsed in a navigation mesh baking process the obstacle will discard source geometry inside its and defined shape. + + + + + If enabled the obstacle vertices will carve into the baked navigation mesh with the shape unaffected by additional offsets (e.g. agent radius). + It will still be affected by further postprocessing of the baking process, like edge and polygon simplification. + Requires to be enabled. + + + + + If the obstacle affects avoidance using agents. + + + + + Sets the wanted velocity for the obstacle so other agent's can better predict the obstacle if it is moved with a velocity regularly (every frame) instead of warped to a new position. Does only affect avoidance for the obstacles . Does nothing for the obstacles static vertices. + + + + + A bitfield determining the avoidance layers for this obstacle. Agents with a matching bit on the their avoidance mask will avoid this obstacle. + + + + + If the obstacle affects 3D avoidance using agent's with obstacle . + If the obstacle affects 2D avoidance using agent's with both obstacle as well as obstacle . + + + + + Returns the of this obstacle on the . + + + + + Sets the of the navigation map this NavigationObstacle node should use and also updates the obstacle on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationObstacle node. This function returns always the map set on the NavigationObstacle node and not the map of the abstract obstacle on the NavigationServer. If the obstacle map is changed directly with the NavigationServer API the NavigationObstacle node will not be aware of the map change. Use to change the navigation map for the NavigationObstacle and also update the obstacle on the NavigationServer. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'affect_navigation_mesh' property. + + + + + Cached name for the 'carve_navigation_mesh' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached name for the 'use_3d_avoidance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_use_3d_avoidance' method. + + + + + Cached name for the 'get_use_3d_avoidance' method. + + + + + Cached name for the 'set_affect_navigation_mesh' method. + + + + + Cached name for the 'get_affect_navigation_mesh' method. + + + + + Cached name for the 'set_carve_navigation_mesh' method. + + + + + Cached name for the 'get_carve_navigation_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the start and target position, you can configure path queries to the . + + + + + The path query uses the default A* pathfinding algorithm. + + + + + 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. + + + + + 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. + + + + + Applies no postprocessing and returns the raw path corridor as found by the pathfinding algorithm. + + + + + Don't include any additional metadata about the returned path. + + + + + Include the type of navigation primitive (region or link) that each point of the path goes through. + + + + + Include the s of the regions and links that each point of the path goes through. + + + + + Include the ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Include all available metadata about the returned path. + + + + + The navigation map used in the path query. + + + + + The pathfinding start position in global coordinates. + + + + + The pathfinding target position in global coordinates. + + + + + The navigation layers the query will use (as a bitmask). + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to include with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'map' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_map' method. + + + + + Cached name for the 'get_map' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_metadata_flags' method. + + + + + Cached name for the 'get_metadata_flags' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the start and target position, you can configure path queries to the . + + + + + The path query uses the default A* pathfinding algorithm. + + + + + 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. + + + + + 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. + + + + + Applies no postprocessing and returns the raw path corridor as found by the pathfinding algorithm. + + + + + Don't include any additional metadata about the returned path. + + + + + Include the type of navigation primitive (region or link) that each point of the path goes through. + + + + + Include the s of the regions and links that each point of the path goes through. + + + + + Include the ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Include all available metadata about the returned path. + + + + + The navigation map used in the path query. + + + + + The pathfinding start position in global coordinates. + + + + + The pathfinding target position in global coordinates. + + + + + The navigation layers the query will use (as a bitmask). + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to include with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'map' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_map' method. + + + + + Cached name for the 'get_map' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_metadata_flags' method. + + + + + Cached name for the 'get_metadata_flags' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class stores the result of a 2D navigation path query from the . + + + + + This segment of the path goes through a region. + + + + + This segment of the path goes through a link. + + + + + The resulting path array from the navigation query. All path array positions are in global coordinates. Without customized query parameters this is the same path as returned by . + + + + + The type of navigation primitive (region or link) that each point of the path goes through. + + + + + The s of the regions and links that each point of the path goes through. + + + + + The ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Reset the result object to its initial state. This is useful to reuse the object across multiple queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'path' property. + + + + + Cached name for the 'path_types' property. + + + + + Cached name for the 'path_rids' property. + + + + + Cached name for the 'path_owner_ids' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_path' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'set_path_types' method. + + + + + Cached name for the 'get_path_types' method. + + + + + Cached name for the 'set_path_rids' method. + + + + + Cached name for the 'get_path_rids' method. + + + + + Cached name for the 'set_path_owner_ids' method. + + + + + Cached name for the 'get_path_owner_ids' method. + + + + + Cached name for the 'reset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class stores the result of a 3D navigation path query from the . + + + + + This segment of the path goes through a region. + + + + + This segment of the path goes through a link. + + + + + The resulting path array from the navigation query. All path array positions are in global coordinates. Without customized query parameters this is the same path as returned by . + + + + + The type of navigation primitive (region or link) that each point of the path goes through. + + + + + The s of the regions and links that each point of the path goes through. + + + + + The ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Reset the result object to its initial state. This is useful to reuse the object across multiple queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'path' property. + + + + + Cached name for the 'path_types' property. + + + + + Cached name for the 'path_rids' property. + + + + + Cached name for the 'path_owner_ids' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_path' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'set_path_types' method. + + + + + Cached name for the 'get_path_types' method. + + + + + Cached name for the 'set_path_rids' method. + + + + + Cached name for the 'get_path_rids' method. + + + + + Cached name for the 'set_path_owner_ids' method. + + + + + Cached name for the 'get_path_owner_ids' method. + + + + + Cached name for the 'reset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A navigation mesh can be created either by baking it with the help of the , or by adding vertices and convex polygon indices arrays manually. + To bake a navigation mesh at least one outline needs to be added that defines the outer bounds of the baked area. + + var newNavigationMesh = new NavigationPolygon(); + var boundingOutline = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; + newNavigationMesh.AddOutline(boundingOutline); + NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new NavigationMeshSourceGeometryData2D()); + GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh; + + Adding vertices and polygon indices manually. + + var newNavigationMesh = new NavigationPolygon(); + var newVertices = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; + newNavigationMesh.Vertices = newVertices; + var newPolygonIndices = new int[] { 0, 1, 2, 3 }; + newNavigationMesh.AddPolygon(newPolygonIndices); + GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh; + + + + + + Convex partitioning that yields navigation mesh with convex polygons. + + + + + Triangulation partitioning that yields navigation mesh with triangle polygons. + + + + + Represents the size of the enum. + + + + + Parses mesh instances as obstruction geometry. This includes , , , and nodes. + Meshes are only parsed when they use a 2D vertices surface format. + + + + + Parses and colliders as obstruction geometry. The collider should be in any of the layers specified by . + + + + + Both and . + + + + + Represents the size of the enum. + + + + + Scans the child nodes of the root node recursively for geometry. + + + + + Scans nodes in a group and their child nodes recursively for geometry. The group is specified by . + + + + + Uses nodes in a group for geometry. The group is specified by . + + + + + Represents the size of the enum. + + + + + Partitioning algorithm for creating the navigation mesh polys. See for possible values. + + + + + Determines which type of nodes will be parsed as geometry. See for possible values. + + + + + The physics layers to scan for static colliders. + Only used when is or . + + + + + The source of the geometry used when baking. See for possible values. + + + + + The group name of nodes that should be parsed for baking source geometry. + Only used when is or . + + + + + The cell size used to rasterize the navigation mesh vertices. Must match with the cell size on the navigation map. + + + + + The size of the non-navigable border around the bake bounding area defined by the . + In conjunction with the the border size can be used to bake tile aligned navigation meshes without the tile edges being shrunk by . + + + + + The distance to erode/shrink the walkable surface when baking the navigation mesh. + + + + + If the baking has an area the navigation mesh baking will be restricted to its enclosing area. + + + + + The position offset applied to the . + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Returns a [] containing all the vertices being used to create the polygons. + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Returns the count of all polygons. + + + + + Returns a [] containing the indices of the vertices of a created polygon. + + + + + Clears the array of polygons, but it doesn't clear the array of outlines and vertices. + + + + + Returns the resulting from this navigation polygon. This navigation mesh can be used to update the navigation mesh of a region with the API directly (as 2D uses the 3D server behind the scene). + + + + + Appends a [] that contains the vertices of an outline to the internal array that contains all the outlines. + + + + + Appends a [] that contains the vertices of an outline to the internal array that contains all the outlines. + + + + + Adds a [] that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. + + + + + Adds a [] that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. + + + + + Returns the number of outlines that were created in the editor or by script. + + + + + Changes an outline created in the editor or by script. You have to call for the polygons to update. + + + + + Changes an outline created in the editor or by script. You have to call for the polygons to update. + + + + + Returns a [] containing the vertices of an outline that was created in the editor or by script. + + + + + Removes an outline created in the editor or by script. You have to call for the polygons to update. + + + + + Clears the array of the outlines, but it doesn't clear the vertices and the polygons that were created by them. + + + + + Creates polygons from the outlines added in the editor or by script. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Clears the internal arrays for vertices and polygon indices. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'polygons' property. + + + + + Cached name for the 'outlines' property. + + + + + Cached name for the 'sample_partition_type' property. + + + + + Cached name for the 'parsed_geometry_type' property. + + + + + Cached name for the 'parsed_collision_mask' property. + + + + + Cached name for the 'source_geometry_mode' property. + + + + + Cached name for the 'source_geometry_group_name' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'border_size' property. + + + + + Cached name for the 'agent_radius' property. + + + + + Cached name for the 'baking_rect' property. + + + + + Cached name for the 'baking_rect_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'add_polygon' method. + + + + + Cached name for the 'get_polygon_count' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'clear_polygons' method. + + + + + Cached name for the 'get_navigation_mesh' method. + + + + + Cached name for the 'add_outline' method. + + + + + Cached name for the 'add_outline_at_index' method. + + + + + Cached name for the 'get_outline_count' method. + + + + + Cached name for the 'set_outline' method. + + + + + Cached name for the 'get_outline' method. + + + + + Cached name for the 'remove_outline' method. + + + + + Cached name for the 'clear_outlines' method. + + + + + Cached name for the 'make_polygons_from_outlines' method. + + + + + Cached name for the '_set_polygons' method. + + + + + Cached name for the '_get_polygons' method. + + + + + Cached name for the '_set_outlines' method. + + + + + Cached name for the '_get_outlines' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_border_size' method. + + + + + Cached name for the 'get_border_size' method. + + + + + Cached name for the 'set_sample_partition_type' method. + + + + + Cached name for the 'get_sample_partition_type' method. + + + + + Cached name for the 'set_parsed_geometry_type' method. + + + + + Cached name for the 'get_parsed_geometry_type' method. + + + + + Cached name for the 'set_parsed_collision_mask' method. + + + + + Cached name for the 'get_parsed_collision_mask' method. + + + + + Cached name for the 'set_parsed_collision_mask_value' method. + + + + + Cached name for the 'get_parsed_collision_mask_value' method. + + + + + Cached name for the 'set_source_geometry_mode' method. + + + + + Cached name for the 'get_source_geometry_mode' method. + + + + + Cached name for the 'set_source_geometry_group_name' method. + + + + + Cached name for the 'get_source_geometry_group_name' method. + + + + + Cached name for the 'set_agent_radius' method. + + + + + Cached name for the 'get_agent_radius' method. + + + + + Cached name for the 'set_baking_rect' method. + + + + + Cached name for the 'get_baking_rect' method. + + + + + Cached name for the 'set_baking_rect_offset' method. + + + + + Cached name for the 'get_baking_rect_offset' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A traversable 2D region based on a that 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 . + Note: Overlapping two regions' navigation polygons is not enough for connecting two regions. They must share a similar edge. + The pathfinding cost of entering a region from another region can be controlled with the value. + Note: This value is not added to the path cost when the start position is already inside this region. + The pathfinding cost of traveling distances inside this region can be controlled with the multiplier. + Note: This node caches changes to its properties, so if you make changes to the underlying region in , they will not be reflected in this node's properties. + + + + + The resource to use. + + + + + Determines if the is enabled or disabled. + + + + + If enabled the navigation region will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with . + + + + + When pathfinding enters this region's navigation mesh from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with for determining the shortest path. + + + + + Returns the of this region on the . Combined with can be used to identify the closest to a point on the merged navigation map. + + + + + Sets the of the navigation map this region should use. By default the region will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this region. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Returns the of this region on the . + + + + + Bakes the . If is set to (default), the baking is done on a separate thread. + + + + + Returns when the is being baked on a background thread. + + + + + Emitted when the used navigation polygon is replaced or changes to the internals of the current navigation polygon are committed. + + + + + Emitted when a navigation polygon bake operation is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_polygon' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'use_edge_connections' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_navigation_polygon' method. + + + + + Cached name for the 'get_navigation_polygon' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_use_edge_connections' method. + + + + + Cached name for the 'get_use_edge_connections' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'get_region_rid' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached name for the 'bake_navigation_polygon' method. + + + + + Cached name for the 'is_baking' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_polygon_changed' signal. + + + + + Cached name for the 'bake_finished' signal. + + + + + A traversable 3D region based on a that 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 . + Note: Overlapping two regions' navigation meshes is not enough for connecting two regions. They must share a similar edge. + The cost of entering this region from another region can be controlled with the value. + Note: This value is not added to the path cost when the start position is already inside this region. + The cost of traveling distances inside this region can be controlled with the multiplier. + Note: This node caches changes to its properties, so if you make changes to the underlying region in , they will not be reflected in this node's properties. + + + + + The resource to use. + + + + + Determines if the is enabled or disabled. + + + + + If enabled the navigation region will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with . + + + + + When pathfinding enters this region's navigation mesh from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with for determining the shortest path. + + + + + Returns the of this region on the . Combined with can be used to identify the closest to a point on the merged navigation map. + + + + + Sets the of the navigation map this region should use. By default the region will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this region. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Returns the of this region on the . + + + + + Bakes the . If is set to (default), the baking is done on a separate thread. Baking on separate thread is useful because navigation baking is not a cheap operation. When it is completed, it automatically sets the new . Please note that baking on separate thread may be very slow if geometry is parsed from meshes as async access to each mesh involves heavy synchronization. Also, please note that baking on a separate thread is automatically disabled on operating systems that cannot use threads (such as Web with threads disabled). + + + + + Returns when the is being baked on a background thread. + + + + + Notifies when the has changed. + + + + + Notifies when the navigation mesh bake operation is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_mesh' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'use_edge_connections' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_navigation_mesh' method. + + + + + Cached name for the 'get_navigation_mesh' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_use_edge_connections' method. + + + + + Cached name for the 'get_use_edge_connections' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'get_region_rid' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached name for the 'bake_navigation_mesh' method. + + + + + Cached name for the 'is_baking' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_mesh_changed' signal. + + + + + Cached name for the 'bake_finished' signal. + + + + + NavigationServer2D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from or . + Maps are divided into regions, which are composed of navigation polygons. Together, they define the traversable areas in the 2D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. The edge connection margin is a distance used to connect two regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the for the region. + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the specified uses avoidance. + + + + + Return if the specified uses avoidance. + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position far away this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position far away use instead to reset the internal velocity state. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new navigation obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets the navigation map for the obstacle. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Sets the position of the obstacle in world space. + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation polygon is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_polygon' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_polygon' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + NavigationServer2D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from or . + Maps are divided into regions, which are composed of navigation polygons. Together, they define the traversable areas in the 2D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. The edge connection margin is a distance used to connect two regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the for the region. + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the specified uses avoidance. + + + + + Return if the specified uses avoidance. + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position far away this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position far away use instead to reset the internal velocity state. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new navigation obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets the navigation map for the obstacle. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Sets the position of the obstacle in world space. + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation polygon is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_polygon' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_polygon' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + NavigationServer3D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from . + Maps are divided into regions, which are composed of navigation meshes. Together, they define the navigable areas in the 3D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Constant to get the number of active navigation maps. + + + + + Constant to get the number of active navigation regions. + + + + + Constant to get the number of active navigation agents processing avoidance. + + + + + Constant to get the number of active navigation links. + + + + + Constant to get the number of navigation mesh polygons. + + + + + Constant to get the number of navigation mesh polygon edges. + + + + + Constant to get the number of navigation mesh polygon edges that were merged due to edge key overlap. + + + + + Constant to get the number of navigation mesh polygon edges that are considered connected by edge proximity. + + + + + 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. + + + + + Constant to get the number of active navigation obstacles. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map up direction. + + + + + Returns the map's up direction. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices on the XZ plane. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices on the XZ plane. + + + + + Sets the map cell height used to rasterize the navigation mesh vertices on the Y axis. Must match with the cell height of the used navigation meshes. + + + + + Returns the map cell height used to rasterize the navigation mesh vertices on the Y axis. + + + + + Set the map's internal merge rasterizer cell scale used to control merging sensitivity. + + + + + Returns map's internal merge rasterizer cell scale. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. This distance is the minimum vertex distance needed to connect two edges from different regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the navigation mesh for the region. + + + + + Bakes the with bake source geometry collected starting from the . + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the provided calculates avoidance. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the agent uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + If the agent calculates avoidance velocities in 3D for the xyz-axis, e.g. for games that take place in air, underwater or space. The 3D using agent only avoids other 3D avoidance using agent's. The 3D using agent only reacts to radius based avoidance obstacles. The 3D using agent ignores any vertices based obstacles. The 3D using agent only avoids other 3D using agent's. + If the agent calculates avoidance velocities in 2D along the xz-axis ignoring the y-axis. The 2D using agent only avoids other 2D avoidance using agent's. The 2D using agent reacts to radius avoidance obstacles. The 2D using agent reacts to vertices based avoidance obstacles. The 2D using agent only avoids other 2D using agent's. 2D using agents will ignore other 2D using agents or obstacles that are below their current position or above their current position including the agents height in 2D avoidance. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Updates the provided . + + + + + Returns the height of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position use as well to reset the internal simulation velocity. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Assigns the to a navigation map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets the for the . In 3D agents will ignore obstacles that are above or below them while using 2D avoidance. + + + + + Returns the height of the specified . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Updates the in world space for the . + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation mesh is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + Control activation of this server. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Returns information about the current state of the NavigationServer. See for a list of available states. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Emitted when avoidance debug settings are changed. Only available in debug builds. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_up' method. + + + + + Cached name for the 'map_get_up' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_cell_height' method. + + + + + Cached name for the 'map_get_cell_height' method. + + + + + Cached name for the 'map_set_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_get_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point_to_segment' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_normal' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_mesh' method. + + + + + Cached name for the 'region_bake_navigation_mesh' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point_to_segment' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_closest_point_normal' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_use_3d_avoidance' method. + + + + + Cached name for the 'agent_get_use_3d_avoidance' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_height' method. + + + + + Cached name for the 'agent_get_height' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_get_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_height' method. + + + + + Cached name for the 'obstacle_get_height' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_mesh' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + Cached name for the 'avoidance_debug_changed' signal. + + + + + NavigationServer3D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from . + Maps are divided into regions, which are composed of navigation meshes. Together, they define the navigable areas in the 3D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map up direction. + + + + + Returns the map's up direction. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices on the XZ plane. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices on the XZ plane. + + + + + Sets the map cell height used to rasterize the navigation mesh vertices on the Y axis. Must match with the cell height of the used navigation meshes. + + + + + Returns the map cell height used to rasterize the navigation mesh vertices on the Y axis. + + + + + Set the map's internal merge rasterizer cell scale used to control merging sensitivity. + + + + + Returns map's internal merge rasterizer cell scale. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. This distance is the minimum vertex distance needed to connect two edges from different regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the navigation mesh for the region. + + + + + Bakes the with bake source geometry collected starting from the . + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the provided calculates avoidance. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the agent uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + If the agent calculates avoidance velocities in 3D for the xyz-axis, e.g. for games that take place in air, underwater or space. The 3D using agent only avoids other 3D avoidance using agent's. The 3D using agent only reacts to radius based avoidance obstacles. The 3D using agent ignores any vertices based obstacles. The 3D using agent only avoids other 3D using agent's. + If the agent calculates avoidance velocities in 2D along the xz-axis ignoring the y-axis. The 2D using agent only avoids other 2D avoidance using agent's. The 2D using agent reacts to radius avoidance obstacles. The 2D using agent reacts to vertices based avoidance obstacles. The 2D using agent only avoids other 2D using agent's. 2D using agents will ignore other 2D using agents or obstacles that are below their current position or above their current position including the agents height in 2D avoidance. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Updates the provided . + + + + + Returns the height of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position use as well to reset the internal simulation velocity. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Assigns the to a navigation map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets the for the . In 3D agents will ignore obstacles that are above or below them while using 2D avoidance. + + + + + Returns the height of the specified . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Updates the in world space for the . + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation mesh is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + Control activation of this server. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Returns information about the current state of the NavigationServer. See for a list of available states. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Emitted when avoidance debug settings are changed. Only available in debug builds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_up' method. + + + + + Cached name for the 'map_get_up' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_cell_height' method. + + + + + Cached name for the 'map_get_cell_height' method. + + + + + Cached name for the 'map_set_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_get_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point_to_segment' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_normal' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_mesh' method. + + + + + Cached name for the 'region_bake_navigation_mesh' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point_to_segment' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_closest_point_normal' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_use_3d_avoidance' method. + + + + + Cached name for the 'agent_get_use_3d_avoidance' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_height' method. + + + + + Cached name for the 'agent_get_height' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_get_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_height' method. + + + + + Cached name for the 'obstacle_get_height' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_mesh' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + Cached name for the 'avoidance_debug_changed' signal. + + + + + Also known as 9-slice panels, 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. + + + + + Stretches the center texture across the NinePatchRect. This may cause the texture to be distorted. + + + + + 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. + + + + + 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 . The texture must be seamless for this to work without displaying artifacts between edges. + + + + + The node's texture resource. + + + + + If , draw the panel's center. Else, only draw the 9-slice's borders. + + + + + Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture. + + + + + The width of the 9-slice's left column. A margin of 16 means the 9-slice's left corners and side will have a width of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The height of the 9-slice's top row. A margin of 16 means the 9-slice's top corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The width of the 9-slice's right column. A margin of 16 means the 9-slice's right corners and side will have a width of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The height of the 9-slice's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The stretch mode to use for horizontal stretching/tiling. See for possible values. + + + + + The stretch mode to use for vertical stretching/tiling. See for possible values. + + + + + Sets the size of the margin on the specified to pixels. + + + + + Returns the size of the margin on the specified . + + + + + Emitted when the node's texture changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'draw_center' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached name for the 'patch_margin_left' property. + + + + + Cached name for the 'patch_margin_top' property. + + + + + Cached name for the 'patch_margin_right' property. + + + + + Cached name for the 'patch_margin_bottom' property. + + + + + Cached name for the 'axis_stretch_horizontal' property. + + + + + Cached name for the 'axis_stretch_vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_patch_margin' method. + + + + + Cached name for the 'get_patch_margin' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_draw_center' method. + + + + + Cached name for the 'is_draw_center_enabled' method. + + + + + Cached name for the 'set_h_axis_stretch_mode' method. + + + + + Cached name for the 'get_h_axis_stretch_mode' method. + + + + + Cached name for the 'set_v_axis_stretch_mode' method. + + + + + Cached name for the 'get_v_axis_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'texture_changed' signal. + + + + + 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. + Note: Since both and inherit from , they share several concepts from the class such as the and properties. + + + + + Position, relative to the node's parent. See also . + + + + + Rotation in radians, relative to the node's parent. See also . + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use . + + + + + Helper property to access in degrees instead of radians. See also . + + + + + The node's scale, relative to the node's parent. Unscaled value: (1, 1). See also . + Note: Negative X scales in 2D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, negative scales on the X axis will be changed to negative scales on the Y axis and a rotation of 180 degrees when decomposed. + + + + + If set to a non-zero value, slants the node in one direction or another. This can be used for pseudo-3D effects. See also . + Note: Skew is performed on the X axis only, and between rotation and scaling. + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use skew = deg_to_rad(value_in_degrees). + + + + + The node's , relative to the node's parent. See also . + + + + + Global position. See also . + + + + + Global rotation in radians. See also . + + + + + Helper property to access in degrees instead of radians. See also . + + + + + Global scale. See also . + + + + + Global skew in radians. See also . + + + + + Global . See also . + + + + + Applies a rotation to the node, in radians, starting from its current rotation. + + + + + Applies a local translation on the node's X axis based on the 's . If is , normalizes the movement. + + + + + Applies a local translation on the node's Y axis based on the 's . If is , normalizes the movement. + + + + + Translates the node by the given in local coordinates. + + + + + Adds the vector to the node's global position. + + + + + Multiplies the current scale by the vector. + + + + + Rotates the node so that its local +X axis points towards the , which is expected to use global coordinates. + should not be the same as the node's position, otherwise the node always looks to the right. + + + + + Returns the angle between the node and the in radians. + Illustration of the returned angle. + + + + + Transforms the provided global position into a position in local coordinate space. The output will be local relative to the it is called on. e.g. It is appropriate for determining the positions of child nodes, but it is not appropriate for determining its own position relative to its parent. + + + + + Transforms the provided local position into a position in global coordinate space. The input is expected to be local relative to the it is called on. e.g. Applying this method to the positions of child nodes will correctly transform their positions into the global coordinate space, but applying it to a node's own position will give an incorrect result, as it will incorporate the node's own transformation into its global position. + + + + + Returns the relative to this node's parent. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'rotation_degrees' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'skew' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached name for the 'global_rotation' property. + + + + + Cached name for the 'global_rotation_degrees' property. + + + + + Cached name for the 'global_scale' property. + + + + + Cached name for the 'global_skew' property. + + + + + Cached name for the 'global_transform' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'set_rotation_degrees' method. + + + + + Cached name for the 'set_skew' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'get_rotation_degrees' method. + + + + + Cached name for the 'get_skew' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'rotate' method. + + + + + Cached name for the 'move_local_x' method. + + + + + Cached name for the 'move_local_y' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'global_translate' method. + + + + + Cached name for the 'apply_scale' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached name for the 'set_global_rotation' method. + + + + + Cached name for the 'set_global_rotation_degrees' method. + + + + + Cached name for the 'get_global_rotation' method. + + + + + Cached name for the 'get_global_rotation_degrees' method. + + + + + Cached name for the 'set_global_skew' method. + + + + + Cached name for the 'get_global_skew' method. + + + + + Cached name for the 'set_global_scale' method. + + + + + Cached name for the 'get_global_scale' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'set_global_transform' method. + + + + + Cached name for the 'look_at' method. + + + + + Cached name for the 'get_angle_to' method. + + + + + Cached name for the 'to_local' method. + + + + + Cached name for the 'to_global' method. + + + + + Cached name for the 'get_relative_transform_to_parent' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This abstract class helps connect the scene with the editor-specific EditorNode3DGizmo class. + by itself has no exposed API, refer to and pass it an EditorNode3DGizmo instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class defines the interface for noise generation libraries to inherit from. + A default implementation is provided for libraries that do not provide seamless noise. This function requests a larger image from the 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. + + + + + Returns the 1D noise value at the given (x) coordinate. + + + + + Returns the 2D noise value at the given position. + + + + + Returns the 2D noise value at the given position. + + + + + Returns the 3D noise value at the given position. + + + + + Returns the 3D noise value at the given position. + + + + + Returns an containing 2D noise values. + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Returns an containing seamless 2D noise values. + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Returns an of s containing 3D noise values for use with . + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Returns an of s containing seamless 3D noise values for use with . + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_noise_1d' method. + + + + + Cached name for the 'get_noise_2d' method. + + + + + Cached name for the 'get_noise_2dv' method. + + + + + Cached name for the 'get_noise_3d' method. + + + + + Cached name for the 'get_noise_3dv' method. + + + + + Cached name for the 'get_image' method. + + + + + Cached name for the 'get_seamless_image' method. + + + + + Cached name for the 'get_image_3d' method. + + + + + Cached name for the 'get_seamless_image_3d' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uses the library or other noise generators to fill the texture data of your desired size. can also generate normal map textures. + The class uses s to generate the texture data internally, so may return if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the image and the generated byte data: + + var texture = NoiseTexture2D.new() + texture.noise = FastNoiseLite.new() + await texture.changed + var image = texture.get_image() + var data = image.get_data() + + + + + + Width of the generated texture (in pixels). + + + + + Height of the generated texture (in pixels). + + + + + If , inverts the noise texture. White becomes black, black becomes white. + + + + + Determines whether the noise image is calculated in 3D space. May result in reduced contrast. + + + + + Determines whether mipmaps are generated for this texture. Enabling this results in less texture aliasing in the distance, at the cost of increasing memory usage by roughly 33% and making the noise texture generation take longer. + Note: requires mipmap filtering to be enabled on the material using the to have an effect. + + + + + If , a seamless texture is requested from the resource. + Note: Seamless noise textures may take longer to generate and/or can have a lower contrast compared to non-seamless noise depending on the used resource. This is because some implementations use higher dimensions for generating seamless noise. + Note: The default implementation uses the fallback path for seamless generation. If using a or lower than the default, you may need to increase to make seamless blending more effective. + + + + + Used for the default/fallback implementation of the seamless texture generation. It determines the distance over which the seams are blended. High values may result in less details and contrast. See for further details. + Note: If using a or lower than the default, you may need to increase to make seamless blending more effective. + + + + + If , the resulting texture contains a normal map created from the original noise interpreted as a bump map. + + + + + Strength of the bump maps used in this texture. A higher value will make the bump maps appear larger while a lower value will make them appear softer. + + + + + If , the noise image coming from the noise generator is normalized to the range 0.0 to 1.0. + Turning normalization off can affect the contrast and allows you to generate non repeating tileable noise textures. + + + + + A which is used to map the luminance of each pixel to a color value. + + + + + The instance of the object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'invert' property. + + + + + Cached name for the 'in_3d_space' property. + + + + + Cached name for the 'generate_mipmaps' property. + + + + + Cached name for the 'seamless' property. + + + + + Cached name for the 'seamless_blend_skirt' property. + + + + + Cached name for the 'as_normal_map' property. + + + + + Cached name for the 'bump_strength' property. + + + + + Cached name for the 'normalize' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'noise' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'set_invert' method. + + + + + Cached name for the 'get_invert' method. + + + + + Cached name for the 'set_in_3d_space' method. + + + + + Cached name for the 'is_in_3d_space' method. + + + + + Cached name for the 'set_generate_mipmaps' method. + + + + + Cached name for the 'is_generating_mipmaps' method. + + + + + Cached name for the 'set_seamless' method. + + + + + Cached name for the 'get_seamless' method. + + + + + Cached name for the 'set_seamless_blend_skirt' method. + + + + + Cached name for the 'get_seamless_blend_skirt' method. + + + + + Cached name for the 'set_as_normal_map' method. + + + + + Cached name for the 'is_normal_map' method. + + + + + Cached name for the 'set_bump_strength' method. + + + + + Cached name for the 'get_bump_strength' method. + + + + + Cached name for the 'set_normalize' method. + + + + + Cached name for the 'is_normalized' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_noise' method. + + + + + Cached name for the 'get_noise' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uses the library or other noise generators to fill the texture data of your desired size. + The class uses s to generate the texture data internally, so may return if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the image: + + var texture = NoiseTexture3D.new() + texture.noise = FastNoiseLite.new() + await texture.changed + var data = texture.get_data() + + + + + + Width of the generated texture (in pixels). + + + + + Height of the generated texture (in pixels). + + + + + Depth of the generated texture (in pixels). + + + + + If , inverts the noise texture. White becomes black, black becomes white. + + + + + If , a seamless texture is requested from the resource. + Note: Seamless noise textures may take longer to generate and/or can have a lower contrast compared to non-seamless noise depending on the used resource. This is because some implementations use higher dimensions for generating seamless noise. + Note: The default implementation uses the fallback path for seamless generation. If using a , or lower than the default, you may need to increase to make seamless blending more effective. + + + + + Used for the default/fallback implementation of the seamless texture generation. It determines the distance over which the seams are blended. High values may result in less details and contrast. See for further details. + Note: If using a , or lower than the default, you may need to increase to make seamless blending more effective. + + + + + If , the noise image coming from the noise generator is normalized to the range 0.0 to 1.0. + Turning normalization off can affect the contrast and allows you to generate non repeating tileable noise textures. + + + + + A which is used to map the luminance of each pixel to a color value. + + + + + The instance of the object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'invert' property. + + + + + Cached name for the 'seamless' property. + + + + + Cached name for the 'seamless_blend_skirt' property. + + + + + Cached name for the 'normalize' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'noise' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'set_invert' method. + + + + + Cached name for the 'get_invert' method. + + + + + Cached name for the 'set_seamless' method. + + + + + Cached name for the 'get_seamless' method. + + + + + Cached name for the 'set_seamless_blend_skirt' method. + + + + + Cached name for the 'get_seamless_blend_skirt' method. + + + + + Cached name for the 'set_normalize' method. + + + + + Cached name for the 'is_normalized' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_noise' method. + + + + + Cached name for the 'get_noise' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + ORMMaterial3D's properties are inherited from . Unlike , ORMMaterial3D uses a single texture for ambient occlusion, roughness and metallic maps, known as an ORM texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class wraps the most common functionalities for communicating with the host operating system, such as the video driver, delays, environment variables, execution of binaries, command line, etc. + Note: In Godot 4, functions related to window management, clipboard, and TTS were moved to the singleton (and the class). Functions related to time were removed and are only available in the class. + + + + + The Vulkan rendering driver. It requires Vulkan 1.0 support and automatically uses features from Vulkan 1.1 and 1.2 if available. + + + + + 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. + + + + + The Direct3D 12 rendering driver. + + + + + The Metal rendering driver. + + + + + Refers to the Desktop directory path. + + + + + Refers to the DCIM (Digital Camera Images) directory path. + + + + + Refers to the Documents directory path. + + + + + Refers to the Downloads directory path. + + + + + Refers to the Movies (or Videos) directory path. + + + + + Refers to the Music directory path. + + + + + Refers to the Pictures directory path. + + + + + Refers to the Ringtones directory path. + + + + + Standard I/O device is invalid. No data can be received from or sent to these standard I/O devices. + + + + + Standard I/O device is a console. This typically occurs when Godot is run from a terminal with no redirection. This is also used for all standard I/O devices when running Godot from the editor, at least on desktop platforms. + + + + + Standard I/O device is a regular file. This typically occurs with redirection from a terminal, e.g. godot > stdout.txt, godot < stdin.txt or godot > stdout_stderr.txt 2>&1. + + + + + Standard I/O device is a FIFO/pipe. This typically occurs with pipe usage from a terminal, e.g. echo "Hello" | godot. + + + + + Standard I/O device type is unknown. + + + + + If , the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile. + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode. + + + + + The amount of sleeping between frames when the low-processor usage mode is enabled, in microseconds. Higher values will result in lower CPU usage. See also . + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode_sleep_usec. + + + + + If , the engine filters the time delta measured between each frame, and attempts to compensate for random variation. This only works on systems where V-Sync is active. + Note: On start-up, this is the same as ProjectSettings.application/run/delta_smoothing. + + + + + Generates a [] of cryptographically secure random bytes with given . + Note: Generating large quantities of bytes using this method can result in locking and entropy of lower quality on most platforms. Using is preferred in most cases. + + + + + Returns the list of certification authorities trusted by the operating system as a string of concatenated certificates in PEM format. + + + + + Returns an array of connected MIDI device names, if they exist. Returns an empty array if the system MIDI driver has not previously been initialized with . See also . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Initializes the singleton for the system MIDI driver, allowing Godot to receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Shuts down the system MIDI driver. Godot will no longer receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + + + + + Displays a modal dialog box using the host platform's implementation. The engine execution is blocked until the dialog is closed. + + + + + Crashes the engine (or the editor if called within a @tool script). See also . + Note: This method should only be used for testing the system's crash handler, not for any other purpose. For general error reporting, use (in order of preference) @GDScript.assert, @GlobalScope.push_error, or . + + + + + Returns the number of logical CPU cores available on the host machine. On CPUs with HyperThreading enabled, this number will be greater than the number of physical CPU cores. + + + + + Returns the full name of the CPU model on the host machine (e.g. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz"). + Note: This method is only implemented on Windows, macOS, Linux and iOS. On Android and Web, returns an empty string. + + + + + Returns the list of font family names available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the path to the system font file with and style. Returns an empty string if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Returned font might have different style if the requested style is not available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns an array of the system substitute font file paths, which are similar to the font with and style for the specified text, locale, and script. Returns an empty array if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Depending on OS, it's not guaranteed that any of the returned fonts will be suitable for rendering specified text. Fonts should be loaded and checked in the order they are returned, and the first suitable one used. + Note: Returned fonts might have different style if the requested style is not available or belong to a different font family. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the file path to the current engine executable. + Note: On macOS, if you want to launch another instance of Godot, always use instead of relying on the executable path. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Reads a user input as raw data from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Returns type of the standard input device. + + + + + Returns type of the standard output device. + + + + + Returns type of the standard error device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Kill (terminate) the process identified by the given process ID (), such as the ID returned by in non-blocking mode. See also . + Note: This method can also be used to kill processes that were not spawned by the engine. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Requests the OS to open a resource identified by with the most appropriate program. For example: + - OS.shell_open("C:\\Users\name\Downloads") on Windows opens the file explorer at the user's Downloads folder. + - OS.shell_open("https://godotengine.org") opens the default web browser on the official Godot website. + - OS.shell_open("mailto:example@example.com") opens the default email client with the "To" field set to example@example.com. See RFC 2368 - The mailto URL scheme for a list of fields that can be added. + Use to convert a res:// or user:// project path into a system path for use with this method. + Note: Use String.uri_encode to encode characters within URLs in a URL-safe, portable way. This is especially required for line breaks. Otherwise, may not work correctly in a project exported to the Web platform. + Note: This method is implemented on Android, iOS, Web, Linux, macOS and Windows. + + + + + Requests the OS to open the file manager, navigate to the given and select the target file or folder. + If is and is a valid directory path, the OS will open the file manager and navigate to the target folder without selecting anything. + Use to convert a res:// or user:// project path into a system path to use with this method. + Note: This method is currently only implemented on Windows and macOS. On other platforms, it will fallback to with a directory path of prefixed with file://. + + + + + Returns if the child process ID () is still running or if it has terminated. must be a valid ID generated from . + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns the exit code of a spawned process once it has finished running (see ). + Returns -1 if the is not a PID of a spawned child process, the process is still running, or the method is not implemented for the current platform. + Note: Returns -1 if the is a macOS bundled app process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Returns the number used by the host machine to uniquely identify this application. + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns if the environment variable with the name exists. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the value of the given environment variable, or an empty string if doesn't exist. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + Note: On macOS, applications do not have access to shell environment variables. + + + + + Sets the value of the environment variable to . The environment variable will be set for the Godot process and any process executed with after running . The environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. The name cannot be empty or include the = character. On Windows, there is a 32767 characters limit for the combined length of , , and the = and null terminator characters that will be registered in the environment block. + + + + + Removes the given environment variable from the current environment, if it exists. The name cannot be empty or include the = character. The environment variable will be removed for the Godot process and any process executed with after running . The removal of the environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the name of the host platform. + - On Windows, this is "Windows". + - On macOS, this is "macOS". + - On Linux-based operating systems, this is "Linux". + - On BSD-based operating systems, this is "FreeBSD", "NetBSD", "OpenBSD", or "BSD" as a fallback. + - On Android, this is "Android". + - On iOS, this is "iOS". + - On Web, this is "Web". + Note: Custom builds of the engine may support additional platforms, such as consoles, possibly returning other names. + + switch (OS.GetName()) + { + case "Windows": + GD.Print("Welcome to Windows"); + break; + case "macOS": + GD.Print("Welcome to macOS!"); + break; + case "Linux": + case "FreeBSD": + case "NetBSD": + case "OpenBSD": + case "BSD": + GD.Print("Welcome to Linux/BSD!"); + break; + case "Android": + GD.Print("Welcome to Android!"); + break; + case "iOS": + GD.Print("Welcome to iOS!"); + break; + case "Web": + GD.Print("Welcome to the Web!"); + break; + } + + Note: On Web platforms, it is still possible to determine the host platform's OS with feature tags. See . + + + + + Returns the name of the distribution for Linux and BSD platforms (e.g. "Ubuntu", "Manjaro", "OpenBSD", etc.). + Returns the same value as for stock Android ROMs, but attempts to return the custom ROM name for popular Android derivatives such as "LineageOS". + Returns the same value as for other platforms. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the exact production and build version of the operating system. This is different from the branded version used in marketing. This helps to distinguish between different releases of operating systems, including minor versions, and insider and custom builds. + - For Windows, the major and minor version are returned, as well as the build number. For example, the returned string may look like 10.0.9926 for a build of Windows 10, and it may look like 6.1.7601 for a build of Windows 7 SP1. + - For rolling distributions, such as Arch Linux, an empty string is returned. + - For macOS and iOS, the major and minor version are returned, as well as the patch number. + - For Android, the SDK version and the incremental build number are returned. If it's a custom ROM, it attempts to return its version instead. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the branded version used in marketing, followed by the build number (on Windows) or the version number (on macOS). Examples include 11 (build 22000) and Sequoia (15.0.0). This value can then be appended to to get a full, human-readable operating system name and version combination for the operating system. Windows feature updates such as 24H2 are not contained in the resulting string, but Windows Server is recognized as such (e.g. 2025 (build 26100) for Windows Server 2025). + Note: This method is only supported on Windows and macOS. On other operating systems, it returns the same value as . + + + + + Returns the command-line arguments passed to the engine. + Command-line arguments can be written in any form, including both --key value and --key=value forms so they can be properly parsed, as long as custom command-line arguments do not conflict with engine arguments. + You can also incorporate environment variables using the method. + You can set ProjectSettings.editor/run/main_run_args to define command-line arguments to be passed by the editor when running the project. + Example: Parse command-line arguments into a using the --key=value form for arguments: + + var arguments = new Dictionary<string, string>(); + foreach (var argument in OS.GetCmdlineArgs()) + { + if (argument.Contains('=')) + { + string[] keyValue = argument.Split("="); + arguments[keyValue[0].TrimPrefix("--")] = keyValue[1]; + } + else + { + // Options without an argument will be present in the dictionary, + // with the value set to an empty string. + arguments[argument.TrimPrefix("--")] = ""; + } + } + + Note: Passing custom user arguments directly is not recommended, as the engine may discard or modify them. Instead, pass the standard UNIX double dash (--) and then the custom arguments, which the engine will ignore by design. These can be read via . + + + + + Returns the command-line user arguments passed to the engine. User arguments are ignored by the engine and reserved for the user. They are passed after the double dash -- argument. ++ may be used when -- is intercepted by another program (such as startx). + + # Godot has been executed with the following command: + # godot --fullscreen -- --level=2 --hardcore + + OS.get_cmdline_args() # Returns ["--fullscreen", "--level=2", "--hardcore"] + OS.get_cmdline_user_args() # Returns ["--level=2", "--hardcore"] + + To get all passed arguments, use . + + + + + Returns the video adapter driver name and version for the user's currently active graphics card, as a []. See also . + The first element holds the driver name, such as nvidia, amdgpu, etc. + The second element holds the driver version. For example, on the nvidia driver on a Linux/BSD platform, the version is in the format 510.85.02. For Windows, the driver's format is 31.0.15.1659. + Note: This method is only supported on Linux/BSD and Windows when not running in headless mode. On other platforms, it returns an empty array. + + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + + + + Returns if the project will automatically restart when it exits for any reason, otherwise. See also and . + + + + + Returns the list of command line arguments that will be used when the project automatically restarts using . See also . + + + + + Delays execution of the current thread by microseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with a delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Delays execution of the current thread by milliseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Returns the host OS locale as a of the form language_Script_COUNTRY_VARIANT@extra. Every substring after language is optional and may not exist. + - language - 2 or 3-letter language code, in lower case. + - Script - 4-letter script code, in title case. + - COUNTRY - 2 or 3-letter country code, in upper case. + - VARIANT - language variant, region and sort order. The variant can have any number of underscored keywords. + - extra - semicolon separated list of additional key words. This may include currency, calendar, sort order and numbering system information. + If you want only the language code and not the fully specified locale from the OS, you can use . + + + + + Returns the host OS locale's 2 or 3-letter language code as a string which should be consistent on all platforms. This is equivalent to extracting the language part of the string. + This can be used to narrow down fully specified locale strings to only the "common" language code, when you don't need the additional information about country code or variants. For example, for a French Canadian user with fr_CA locale, this would return fr. + + + + + Returns the model name of the current device. + Note: This method is implemented on Android, iOS, macOS, and Windows. Returns "GenericDevice" on unsupported platforms. + + + + + Returns if the user:// file system is persistent, that is, its state is the same after a player quits and starts the game again. Relevant to the Web platform, where this persistence may be unavailable. + + + + + Returns if the engine was executed with the --verbose or -v command line argument, or if ProjectSettings.debug/settings/stdout/verbose_stdout is . See also @GlobalScope.print_verbose. + + + + + Returns if the Godot binary used to run the project is a debug export template, or when running in the editor. + Returns if the Godot binary used to run the project is a release export template. + Note: To check whether the Godot binary used to run the project is an export template (debug or release), use OS.has_feature("template") instead. + + + + + Returns the amount of static memory being used by the program in bytes. Only works in debug builds. + + + + + Returns the maximum amount of static memory used. Only works in debug builds. + + + + + Returns a containing information about the current memory with the following entries: + - "physical" - total amount of usable physical memory in bytes. This value can be slightly less than the actual physical memory amount, since it does not include memory reserved by the kernel and devices. + - "free" - amount of physical memory, that can be immediately allocated without disk access or other costly operations, in bytes. The process might be able to allocate more physical memory, but this action will require moving inactive pages to disk, which can be expensive. + - "available" - amount of memory that can be allocated without extending the swap file(s), in bytes. This value includes both physical memory and swap. + - "stack" - size of the current thread stack in bytes. + Note: Each entry's value may be -1 if it is unknown. + + + + + Moves the file or directory at the given to the system's recycle bin. See also . + The method takes only global paths, so you may need to use . Do not use it for files in res:// as it will not work in exported projects. + Returns if the file or directory cannot be found, or the system does not support this method. + + var fileToRemove = "user://slot1.save"; + OS.MoveToTrash(ProjectSettings.GlobalizePath(fileToRemove)); + + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: If the user has disabled the recycle bin on their system, the file will be permanently deleted instead. + + + + + Returns the absolute directory path where user data is written (the user:// directory in Godot). The path depends on the project name and ProjectSettings.application/config/use_custom_user_dir. + - On Windows, this is %AppData%\Godot\app_userdata\[project_name], or %AppData%\[custom_name] if use_custom_user_dir is set. %AppData% expands to %UserProfile%\AppData\Roaming. + - On macOS, this is ~/Library/Application Support/Godot/app_userdata/[project_name], or ~/Library/Application Support/[custom_name] if use_custom_user_dir is set. + - On Linux and BSD, this is ~/.local/share/godot/app_userdata/[project_name], or ~/.local/share/[custom_name] if use_custom_user_dir is set. + - On Android and iOS, this is a sandboxed directory in either internal or external storage, depending on the user's configuration. + - On Web, this is a virtual directory managed by the browser. + If the project name is empty, [project_name] falls back to [unnamed project]. + Not to be confused with , which returns the global (non-project-specific) user home directory. + + + + + Returns the path to commonly used folders across different platforms, as defined by . See the constants for available locations. + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: Shared storage is implemented on Android and allows to differentiate between app specific and shared directories, if is . Shared directories have additional restrictions on Android. + + + + + Returns the global user configuration directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CONFIG_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global user data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_DATA_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global cache data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CACHE_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global temporary data directory according to the operating system's standards. + + + + + Returns a string that is unique to the device. + Note: This string may change without notice if the user reinstalls their operating system, upgrades it, or modifies their hardware. This means it should generally not be used to encrypt persistent data, as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by this method for security purposes. + Note: On Web, returns an empty string and generates an error, as this method cannot be implemented for security reasons. + + + + + Returns the given keycode as a . + + GD.Print(OS.GetKeycodeString(Key.C)); // Prints "C" + GD.Print(OS.GetKeycodeString(Key.Escape)); // Prints "Escape" + GD.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift | Key.Tab)); // Prints "Shift+Tab" + + See also , , and . + + + + + Returns if the input keycode corresponds to a Unicode character. For a list of codes, see the constants. + + GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False + GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False + + + + + + Finds the keycode for the given string. The returned values are equivalent to the constants. + + GD.Print(OS.FindKeycodeFromString("C")); // Prints C (Key.C) + GD.Print(OS.FindKeycodeFromString("Escape")); // Prints Escape (Key.Escape) + GD.Print(OS.FindKeycodeFromString("Shift+Tab")); // Prints 37748738 (KeyModifierMask.MaskShift | Key.Tab) + GD.Print(OS.FindKeycodeFromString("Unknown")); // Prints None (Key.None) + + See also . + + + + + If is , when opening a file for writing, a temporary file is used in its place. When closed, it is automatically applied to the target file. + This can useful when files may be opened by other applications, such as antiviruses, text editors, or even the Godot editor itself. + + + + + Assigns the given name to the current thread. Returns if unavailable on the current platform. + + + + + Returns the ID of the current thread. This can be used in logs to ease debugging of multi-threaded applications. + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns the ID of the main thread. See . + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns if the feature for the given feature tag is supported in the currently running instance, depending on the platform, build, etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the Feature Tags documentation for more details. + Note: Tag names are case-sensitive. + Note: On the Web platform, one of the following additional tags is defined to indicate the host platform: web_android, web_ios, web_linuxbsd, web_macos, or web_windows. + + + + + Returns if the application is running in the sandbox. + Note: This method is only implemented on macOS and Linux. + + + + + Requests permission from the OS for the given . Returns if the permission has been successfully granted. + Note: This method is currently only implemented on Android, to specifically request permission for "RECORD_AUDIO" by AudioDriverOpenSL. + + + + + Requests dangerous permissions from the OS. Returns if permissions have been successfully granted. + Note: This method is only implemented on Android. Normal permissions are automatically granted at install time in Android applications. + + + + + On Android devices: Returns the list of dangerous permissions that have been granted. + On macOS: Returns the list of user selected folders accessible to the application (sandboxed applications only). Use the native file dialog to request folder access permission. + + + + + On macOS (sandboxed applications only), this function clears list of user selected folders accessible to the application. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'low_processor_usage_mode' property. + + + + + Cached name for the 'low_processor_usage_mode_sleep_usec' property. + + + + + Cached name for the 'delta_smoothing' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_entropy' method. + + + + + Cached name for the 'get_system_ca_certificates' method. + + + + + Cached name for the 'get_connected_midi_inputs' method. + + + + + Cached name for the 'open_midi_inputs' method. + + + + + Cached name for the 'close_midi_inputs' method. + + + + + Cached name for the 'alert' method. + + + + + Cached name for the 'crash' method. + + + + + Cached name for the 'set_low_processor_usage_mode' method. + + + + + Cached name for the 'is_in_low_processor_usage_mode' method. + + + + + Cached name for the 'set_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'get_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'set_delta_smoothing' method. + + + + + Cached name for the 'is_delta_smoothing_enabled' method. + + + + + Cached name for the 'get_processor_count' method. + + + + + Cached name for the 'get_processor_name' method. + + + + + Cached name for the 'get_system_fonts' method. + + + + + Cached name for the 'get_system_font_path' method. + + + + + Cached name for the 'get_system_font_path_for_text' method. + + + + + Cached name for the 'get_executable_path' method. + + + + + Cached name for the 'read_string_from_stdin' method. + + + + + Cached name for the 'read_buffer_from_stdin' method. + + + + + Cached name for the 'get_stdin_type' method. + + + + + Cached name for the 'get_stdout_type' method. + + + + + Cached name for the 'get_stderr_type' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'execute_with_pipe' method. + + + + + Cached name for the 'create_process' method. + + + + + Cached name for the 'create_instance' method. + + + + + Cached name for the 'kill' method. + + + + + Cached name for the 'shell_open' method. + + + + + Cached name for the 'shell_show_in_file_manager' method. + + + + + Cached name for the 'is_process_running' method. + + + + + Cached name for the 'get_process_exit_code' method. + + + + + Cached name for the 'get_process_id' method. + + + + + Cached name for the 'has_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'unset_environment' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_distribution_name' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'get_version_alias' method. + + + + + Cached name for the 'get_cmdline_args' method. + + + + + Cached name for the 'get_cmdline_user_args' method. + + + + + Cached name for the 'get_video_adapter_driver_info' method. + + + + + Cached name for the 'set_restart_on_exit' method. + + + + + Cached name for the 'is_restart_on_exit_set' method. + + + + + Cached name for the 'get_restart_on_exit_arguments' method. + + + + + Cached name for the 'delay_usec' method. + + + + + Cached name for the 'delay_msec' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_locale_language' method. + + + + + Cached name for the 'get_model_name' method. + + + + + Cached name for the 'is_userfs_persistent' method. + + + + + Cached name for the 'is_stdout_verbose' method. + + + + + Cached name for the 'is_debug_build' method. + + + + + Cached name for the 'get_static_memory_usage' method. + + + + + Cached name for the 'get_static_memory_peak_usage' method. + + + + + Cached name for the 'get_memory_info' method. + + + + + Cached name for the 'move_to_trash' method. + + + + + Cached name for the 'get_user_data_dir' method. + + + + + Cached name for the 'get_system_dir' method. + + + + + Cached name for the 'get_config_dir' method. + + + + + Cached name for the 'get_data_dir' method. + + + + + Cached name for the 'get_cache_dir' method. + + + + + Cached name for the 'get_temp_dir' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'get_keycode_string' method. + + + + + Cached name for the 'is_keycode_unicode' method. + + + + + Cached name for the 'find_keycode_from_string' method. + + + + + Cached name for the 'set_use_file_access_save_and_swap' method. + + + + + Cached name for the 'set_thread_name' method. + + + + + Cached name for the 'get_thread_caller_id' method. + + + + + Cached name for the 'get_main_thread_id' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'is_sandboxed' method. + + + + + Cached name for the 'request_permission' method. + + + + + Cached name for the 'request_permissions' method. + + + + + Cached name for the 'get_granted_permissions' method. + + + + + Cached name for the 'revoke_granted_permissions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class wraps the most common functionalities for communicating with the host operating system, such as the video driver, delays, environment variables, execution of binaries, command line, etc. + Note: In Godot 4, functions related to window management, clipboard, and TTS were moved to the singleton (and the class). Functions related to time were removed and are only available in the class. + + + + + If , the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile. + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode. + + + + + The amount of sleeping between frames when the low-processor usage mode is enabled, in microseconds. Higher values will result in lower CPU usage. See also . + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode_sleep_usec. + + + + + If , the engine filters the time delta measured between each frame, and attempts to compensate for random variation. This only works on systems where V-Sync is active. + Note: On start-up, this is the same as ProjectSettings.application/run/delta_smoothing. + + + + + Generates a [] of cryptographically secure random bytes with given . + Note: Generating large quantities of bytes using this method can result in locking and entropy of lower quality on most platforms. Using is preferred in most cases. + + + + + Returns the list of certification authorities trusted by the operating system as a string of concatenated certificates in PEM format. + + + + + Returns an array of connected MIDI device names, if they exist. Returns an empty array if the system MIDI driver has not previously been initialized with . See also . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Initializes the singleton for the system MIDI driver, allowing Godot to receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Shuts down the system MIDI driver. Godot will no longer receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + + + + + Displays a modal dialog box using the host platform's implementation. The engine execution is blocked until the dialog is closed. + + + + + Crashes the engine (or the editor if called within a @tool script). See also . + Note: This method should only be used for testing the system's crash handler, not for any other purpose. For general error reporting, use (in order of preference) @GDScript.assert, @GlobalScope.push_error, or . + + + + + Returns the number of logical CPU cores available on the host machine. On CPUs with HyperThreading enabled, this number will be greater than the number of physical CPU cores. + + + + + Returns the full name of the CPU model on the host machine (e.g. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz"). + Note: This method is only implemented on Windows, macOS, Linux and iOS. On Android and Web, returns an empty string. + + + + + Returns the list of font family names available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the path to the system font file with and style. Returns an empty string if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Returned font might have different style if the requested style is not available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns an array of the system substitute font file paths, which are similar to the font with and style for the specified text, locale, and script. Returns an empty array if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Depending on OS, it's not guaranteed that any of the returned fonts will be suitable for rendering specified text. Fonts should be loaded and checked in the order they are returned, and the first suitable one used. + Note: Returned fonts might have different style if the requested style is not available or belong to a different font family. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the file path to the current engine executable. + Note: On macOS, if you want to launch another instance of Godot, always use instead of relying on the executable path. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Reads a user input as raw data from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Returns type of the standard input device. + + + + + Returns type of the standard output device. + + + + + Returns type of the standard error device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Kill (terminate) the process identified by the given process ID (), such as the ID returned by in non-blocking mode. See also . + Note: This method can also be used to kill processes that were not spawned by the engine. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Requests the OS to open a resource identified by with the most appropriate program. For example: + - OS.shell_open("C:\\Users\name\Downloads") on Windows opens the file explorer at the user's Downloads folder. + - OS.shell_open("https://godotengine.org") opens the default web browser on the official Godot website. + - OS.shell_open("mailto:example@example.com") opens the default email client with the "To" field set to example@example.com. See RFC 2368 - The mailto URL scheme for a list of fields that can be added. + Use to convert a res:// or user:// project path into a system path for use with this method. + Note: Use String.uri_encode to encode characters within URLs in a URL-safe, portable way. This is especially required for line breaks. Otherwise, may not work correctly in a project exported to the Web platform. + Note: This method is implemented on Android, iOS, Web, Linux, macOS and Windows. + + + + + Requests the OS to open the file manager, navigate to the given and select the target file or folder. + If is and is a valid directory path, the OS will open the file manager and navigate to the target folder without selecting anything. + Use to convert a res:// or user:// project path into a system path to use with this method. + Note: This method is currently only implemented on Windows and macOS. On other platforms, it will fallback to with a directory path of prefixed with file://. + + + + + Returns if the child process ID () is still running or if it has terminated. must be a valid ID generated from . + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns the exit code of a spawned process once it has finished running (see ). + Returns -1 if the is not a PID of a spawned child process, the process is still running, or the method is not implemented for the current platform. + Note: Returns -1 if the is a macOS bundled app process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Returns the number used by the host machine to uniquely identify this application. + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns if the environment variable with the name exists. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the value of the given environment variable, or an empty string if doesn't exist. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + Note: On macOS, applications do not have access to shell environment variables. + + + + + Sets the value of the environment variable to . The environment variable will be set for the Godot process and any process executed with after running . The environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. The name cannot be empty or include the = character. On Windows, there is a 32767 characters limit for the combined length of , , and the = and null terminator characters that will be registered in the environment block. + + + + + Removes the given environment variable from the current environment, if it exists. The name cannot be empty or include the = character. The environment variable will be removed for the Godot process and any process executed with after running . The removal of the environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the name of the host platform. + - On Windows, this is "Windows". + - On macOS, this is "macOS". + - On Linux-based operating systems, this is "Linux". + - On BSD-based operating systems, this is "FreeBSD", "NetBSD", "OpenBSD", or "BSD" as a fallback. + - On Android, this is "Android". + - On iOS, this is "iOS". + - On Web, this is "Web". + Note: Custom builds of the engine may support additional platforms, such as consoles, possibly returning other names. + + switch (OS.GetName()) + { + case "Windows": + GD.Print("Welcome to Windows"); + break; + case "macOS": + GD.Print("Welcome to macOS!"); + break; + case "Linux": + case "FreeBSD": + case "NetBSD": + case "OpenBSD": + case "BSD": + GD.Print("Welcome to Linux/BSD!"); + break; + case "Android": + GD.Print("Welcome to Android!"); + break; + case "iOS": + GD.Print("Welcome to iOS!"); + break; + case "Web": + GD.Print("Welcome to the Web!"); + break; + } + + Note: On Web platforms, it is still possible to determine the host platform's OS with feature tags. See . + + + + + Returns the name of the distribution for Linux and BSD platforms (e.g. "Ubuntu", "Manjaro", "OpenBSD", etc.). + Returns the same value as for stock Android ROMs, but attempts to return the custom ROM name for popular Android derivatives such as "LineageOS". + Returns the same value as for other platforms. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the exact production and build version of the operating system. This is different from the branded version used in marketing. This helps to distinguish between different releases of operating systems, including minor versions, and insider and custom builds. + - For Windows, the major and minor version are returned, as well as the build number. For example, the returned string may look like 10.0.9926 for a build of Windows 10, and it may look like 6.1.7601 for a build of Windows 7 SP1. + - For rolling distributions, such as Arch Linux, an empty string is returned. + - For macOS and iOS, the major and minor version are returned, as well as the patch number. + - For Android, the SDK version and the incremental build number are returned. If it's a custom ROM, it attempts to return its version instead. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the branded version used in marketing, followed by the build number (on Windows) or the version number (on macOS). Examples include 11 (build 22000) and Sequoia (15.0.0). This value can then be appended to to get a full, human-readable operating system name and version combination for the operating system. Windows feature updates such as 24H2 are not contained in the resulting string, but Windows Server is recognized as such (e.g. 2025 (build 26100) for Windows Server 2025). + Note: This method is only supported on Windows and macOS. On other operating systems, it returns the same value as . + + + + + Returns the command-line arguments passed to the engine. + Command-line arguments can be written in any form, including both --key value and --key=value forms so they can be properly parsed, as long as custom command-line arguments do not conflict with engine arguments. + You can also incorporate environment variables using the method. + You can set ProjectSettings.editor/run/main_run_args to define command-line arguments to be passed by the editor when running the project. + Example: Parse command-line arguments into a using the --key=value form for arguments: + + var arguments = new Dictionary<string, string>(); + foreach (var argument in OS.GetCmdlineArgs()) + { + if (argument.Contains('=')) + { + string[] keyValue = argument.Split("="); + arguments[keyValue[0].TrimPrefix("--")] = keyValue[1]; + } + else + { + // Options without an argument will be present in the dictionary, + // with the value set to an empty string. + arguments[argument.TrimPrefix("--")] = ""; + } + } + + Note: Passing custom user arguments directly is not recommended, as the engine may discard or modify them. Instead, pass the standard UNIX double dash (--) and then the custom arguments, which the engine will ignore by design. These can be read via . + + + + + Returns the command-line user arguments passed to the engine. User arguments are ignored by the engine and reserved for the user. They are passed after the double dash -- argument. ++ may be used when -- is intercepted by another program (such as startx). + + # Godot has been executed with the following command: + # godot --fullscreen -- --level=2 --hardcore + + OS.get_cmdline_args() # Returns ["--fullscreen", "--level=2", "--hardcore"] + OS.get_cmdline_user_args() # Returns ["--level=2", "--hardcore"] + + To get all passed arguments, use . + + + + + Returns the video adapter driver name and version for the user's currently active graphics card, as a []. See also . + The first element holds the driver name, such as nvidia, amdgpu, etc. + The second element holds the driver version. For example, on the nvidia driver on a Linux/BSD platform, the version is in the format 510.85.02. For Windows, the driver's format is 31.0.15.1659. + Note: This method is only supported on Linux/BSD and Windows when not running in headless mode. On other platforms, it returns an empty array. + + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + + + + Returns if the project will automatically restart when it exits for any reason, otherwise. See also and . + + + + + Returns the list of command line arguments that will be used when the project automatically restarts using . See also . + + + + + Delays execution of the current thread by microseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with a delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Delays execution of the current thread by milliseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Returns the host OS locale as a of the form language_Script_COUNTRY_VARIANT@extra. Every substring after language is optional and may not exist. + - language - 2 or 3-letter language code, in lower case. + - Script - 4-letter script code, in title case. + - COUNTRY - 2 or 3-letter country code, in upper case. + - VARIANT - language variant, region and sort order. The variant can have any number of underscored keywords. + - extra - semicolon separated list of additional key words. This may include currency, calendar, sort order and numbering system information. + If you want only the language code and not the fully specified locale from the OS, you can use . + + + + + Returns the host OS locale's 2 or 3-letter language code as a string which should be consistent on all platforms. This is equivalent to extracting the language part of the string. + This can be used to narrow down fully specified locale strings to only the "common" language code, when you don't need the additional information about country code or variants. For example, for a French Canadian user with fr_CA locale, this would return fr. + + + + + Returns the model name of the current device. + Note: This method is implemented on Android, iOS, macOS, and Windows. Returns "GenericDevice" on unsupported platforms. + + + + + Returns if the user:// file system is persistent, that is, its state is the same after a player quits and starts the game again. Relevant to the Web platform, where this persistence may be unavailable. + + + + + Returns if the engine was executed with the --verbose or -v command line argument, or if ProjectSettings.debug/settings/stdout/verbose_stdout is . See also @GlobalScope.print_verbose. + + + + + Returns if the Godot binary used to run the project is a debug export template, or when running in the editor. + Returns if the Godot binary used to run the project is a release export template. + Note: To check whether the Godot binary used to run the project is an export template (debug or release), use OS.has_feature("template") instead. + + + + + Returns the amount of static memory being used by the program in bytes. Only works in debug builds. + + + + + Returns the maximum amount of static memory used. Only works in debug builds. + + + + + Returns a containing information about the current memory with the following entries: + - "physical" - total amount of usable physical memory in bytes. This value can be slightly less than the actual physical memory amount, since it does not include memory reserved by the kernel and devices. + - "free" - amount of physical memory, that can be immediately allocated without disk access or other costly operations, in bytes. The process might be able to allocate more physical memory, but this action will require moving inactive pages to disk, which can be expensive. + - "available" - amount of memory that can be allocated without extending the swap file(s), in bytes. This value includes both physical memory and swap. + - "stack" - size of the current thread stack in bytes. + Note: Each entry's value may be -1 if it is unknown. + + + + + Moves the file or directory at the given to the system's recycle bin. See also . + The method takes only global paths, so you may need to use . Do not use it for files in res:// as it will not work in exported projects. + Returns if the file or directory cannot be found, or the system does not support this method. + + var fileToRemove = "user://slot1.save"; + OS.MoveToTrash(ProjectSettings.GlobalizePath(fileToRemove)); + + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: If the user has disabled the recycle bin on their system, the file will be permanently deleted instead. + + + + + Returns the absolute directory path where user data is written (the user:// directory in Godot). The path depends on the project name and ProjectSettings.application/config/use_custom_user_dir. + - On Windows, this is %AppData%\Godot\app_userdata\[project_name], or %AppData%\[custom_name] if use_custom_user_dir is set. %AppData% expands to %UserProfile%\AppData\Roaming. + - On macOS, this is ~/Library/Application Support/Godot/app_userdata/[project_name], or ~/Library/Application Support/[custom_name] if use_custom_user_dir is set. + - On Linux and BSD, this is ~/.local/share/godot/app_userdata/[project_name], or ~/.local/share/[custom_name] if use_custom_user_dir is set. + - On Android and iOS, this is a sandboxed directory in either internal or external storage, depending on the user's configuration. + - On Web, this is a virtual directory managed by the browser. + If the project name is empty, [project_name] falls back to [unnamed project]. + Not to be confused with , which returns the global (non-project-specific) user home directory. + + + + + Returns the path to commonly used folders across different platforms, as defined by . See the constants for available locations. + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: Shared storage is implemented on Android and allows to differentiate between app specific and shared directories, if is . Shared directories have additional restrictions on Android. + + + + + Returns the global user configuration directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CONFIG_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global user data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_DATA_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global cache data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CACHE_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global temporary data directory according to the operating system's standards. + + + + + Returns a string that is unique to the device. + Note: This string may change without notice if the user reinstalls their operating system, upgrades it, or modifies their hardware. This means it should generally not be used to encrypt persistent data, as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by this method for security purposes. + Note: On Web, returns an empty string and generates an error, as this method cannot be implemented for security reasons. + + + + + Returns the given keycode as a . + + GD.Print(OS.GetKeycodeString(Key.C)); // Prints "C" + GD.Print(OS.GetKeycodeString(Key.Escape)); // Prints "Escape" + GD.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift | Key.Tab)); // Prints "Shift+Tab" + + See also , , and . + + + + + Returns if the input keycode corresponds to a Unicode character. For a list of codes, see the constants. + + GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False + GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False + + + + + + Finds the keycode for the given string. The returned values are equivalent to the constants. + + GD.Print(OS.FindKeycodeFromString("C")); // Prints C (Key.C) + GD.Print(OS.FindKeycodeFromString("Escape")); // Prints Escape (Key.Escape) + GD.Print(OS.FindKeycodeFromString("Shift+Tab")); // Prints 37748738 (KeyModifierMask.MaskShift | Key.Tab) + GD.Print(OS.FindKeycodeFromString("Unknown")); // Prints None (Key.None) + + See also . + + + + + If is , when opening a file for writing, a temporary file is used in its place. When closed, it is automatically applied to the target file. + This can useful when files may be opened by other applications, such as antiviruses, text editors, or even the Godot editor itself. + + + + + Assigns the given name to the current thread. Returns if unavailable on the current platform. + + + + + Returns the ID of the current thread. This can be used in logs to ease debugging of multi-threaded applications. + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns the ID of the main thread. See . + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns if the feature for the given feature tag is supported in the currently running instance, depending on the platform, build, etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the Feature Tags documentation for more details. + Note: Tag names are case-sensitive. + Note: On the Web platform, one of the following additional tags is defined to indicate the host platform: web_android, web_ios, web_linuxbsd, web_macos, or web_windows. + + + + + Returns if the application is running in the sandbox. + Note: This method is only implemented on macOS and Linux. + + + + + Requests permission from the OS for the given . Returns if the permission has been successfully granted. + Note: This method is currently only implemented on Android, to specifically request permission for "RECORD_AUDIO" by AudioDriverOpenSL. + + + + + Requests dangerous permissions from the OS. Returns if permissions have been successfully granted. + Note: This method is only implemented on Android. Normal permissions are automatically granted at install time in Android applications. + + + + + On Android devices: Returns the list of dangerous permissions that have been granted. + On macOS: Returns the list of user selected folders accessible to the application (sandboxed applications only). Use the native file dialog to request folder access permission. + + + + + On macOS (sandboxed applications only), this function clears list of user selected folders accessible to the application. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'low_processor_usage_mode' property. + + + + + Cached name for the 'low_processor_usage_mode_sleep_usec' property. + + + + + Cached name for the 'delta_smoothing' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_entropy' method. + + + + + Cached name for the 'get_system_ca_certificates' method. + + + + + Cached name for the 'get_connected_midi_inputs' method. + + + + + Cached name for the 'open_midi_inputs' method. + + + + + Cached name for the 'close_midi_inputs' method. + + + + + Cached name for the 'alert' method. + + + + + Cached name for the 'crash' method. + + + + + Cached name for the 'set_low_processor_usage_mode' method. + + + + + Cached name for the 'is_in_low_processor_usage_mode' method. + + + + + Cached name for the 'set_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'get_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'set_delta_smoothing' method. + + + + + Cached name for the 'is_delta_smoothing_enabled' method. + + + + + Cached name for the 'get_processor_count' method. + + + + + Cached name for the 'get_processor_name' method. + + + + + Cached name for the 'get_system_fonts' method. + + + + + Cached name for the 'get_system_font_path' method. + + + + + Cached name for the 'get_system_font_path_for_text' method. + + + + + Cached name for the 'get_executable_path' method. + + + + + Cached name for the 'read_string_from_stdin' method. + + + + + Cached name for the 'read_buffer_from_stdin' method. + + + + + Cached name for the 'get_stdin_type' method. + + + + + Cached name for the 'get_stdout_type' method. + + + + + Cached name for the 'get_stderr_type' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'execute_with_pipe' method. + + + + + Cached name for the 'create_process' method. + + + + + Cached name for the 'create_instance' method. + + + + + Cached name for the 'kill' method. + + + + + Cached name for the 'shell_open' method. + + + + + Cached name for the 'shell_show_in_file_manager' method. + + + + + Cached name for the 'is_process_running' method. + + + + + Cached name for the 'get_process_exit_code' method. + + + + + Cached name for the 'get_process_id' method. + + + + + Cached name for the 'has_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'unset_environment' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_distribution_name' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'get_version_alias' method. + + + + + Cached name for the 'get_cmdline_args' method. + + + + + Cached name for the 'get_cmdline_user_args' method. + + + + + Cached name for the 'get_video_adapter_driver_info' method. + + + + + Cached name for the 'set_restart_on_exit' method. + + + + + Cached name for the 'is_restart_on_exit_set' method. + + + + + Cached name for the 'get_restart_on_exit_arguments' method. + + + + + Cached name for the 'delay_usec' method. + + + + + Cached name for the 'delay_msec' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_locale_language' method. + + + + + Cached name for the 'get_model_name' method. + + + + + Cached name for the 'is_userfs_persistent' method. + + + + + Cached name for the 'is_stdout_verbose' method. + + + + + Cached name for the 'is_debug_build' method. + + + + + Cached name for the 'get_static_memory_usage' method. + + + + + Cached name for the 'get_static_memory_peak_usage' method. + + + + + Cached name for the 'get_memory_info' method. + + + + + Cached name for the 'move_to_trash' method. + + + + + Cached name for the 'get_user_data_dir' method. + + + + + Cached name for the 'get_system_dir' method. + + + + + Cached name for the 'get_config_dir' method. + + + + + Cached name for the 'get_data_dir' method. + + + + + Cached name for the 'get_cache_dir' method. + + + + + Cached name for the 'get_temp_dir' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'get_keycode_string' method. + + + + + Cached name for the 'is_keycode_unicode' method. + + + + + Cached name for the 'find_keycode_from_string' method. + + + + + Cached name for the 'set_use_file_access_save_and_swap' method. + + + + + Cached name for the 'set_thread_name' method. + + + + + Cached name for the 'get_thread_caller_id' method. + + + + + Cached name for the 'get_main_thread_id' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'is_sandboxed' method. + + + + + Cached name for the 'request_permission' method. + + + + + Cached name for the 'request_permissions' method. + + + + + Cached name for the 'get_granted_permissions' method. + + + + + Cached name for the 'revoke_granted_permissions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores an occluder shape that can be used by the engine's occlusion culling system. + See 's documentation for instructions on setting up occlusion culling. + + + + + Returns the occluder shape's vertex positions. + + + + + Returns the occluder shape's vertex indices. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'get_indices' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. 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 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 Embree, drawing the result to a low-resolution buffer then using this to cull 3D nodes individually. In the 3D editor, you can preview the occlusion culling buffer by choosing Perspective > Display Advanced... > Occlusion Culling Buffer in the top-left corner of the 3D viewport. The occlusion culling buffer quality can be adjusted in the Project Settings. + Baking: Select an node, then use the Bake Occluders button at the top of the 3D editor. Only opaque materials will be taken into account; transparent materials (alpha-blended or alpha-tested) will be ignored by the occluder generation. + Note: Occlusion culling is only effective if ProjectSettings.rendering/occlusion_culling/use_occlusion_culling is . 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 ( and ) compared to occlusion culling. + Note: Due to memory constraints, occlusion culling is not supported by default in Web export templates. It can be enabled by compiling custom Web export templates with module_raycast_enabled=yes. + + + + + The occluder resource for this . You can generate an occluder resource by selecting an node then using the Bake Occluders button at the top of the editor. + You can also draw your own 2D occluder polygon by adding a new resource to the property in the Inspector. + Alternatively, you can select a primitive occluder to use: , or . + + + + + The visual layers to account for when baking for occluders. Only s whose match with this will be included in the generated occluder mesh. By default, all objects with opaque materials are taken into account for the occluder baking. + To improve performance and avoid artifacts, it is recommended to exclude dynamic objects, small objects and fixtures from the baking process by moving them to a separate visual layer and excluding this layer in . + + + + + The simplification distance to use for simplifying the generated occluder polygon (in 3D units). Higher values result in a less detailed occluder mesh, which improves performance but reduces culling accuracy. + The occluder geometry is rendered on the CPU, so it is important to keep its geometry as simple as possible. Since the buffer is rendered at a low resolution, less detailed occluder meshes generally still work well. The default value is fairly aggressive, so you may have to decrease it if you run into false negatives (objects being occluded even though they are visible by the camera). A value of 0.01 will act conservatively, and will keep geometry perceptually unaffected in the occlusion culling buffer. Depending on the scene, a value of 0.01 may still simplify the mesh noticeably compared to disabling simplification entirely. + Setting this to 0.0 disables simplification entirely, but vertices in the exact same position will still be merged. The mesh will also be re-indexed to reduce both the number of vertices and indices. + Note: This uses the meshoptimizer library under the hood, similar to LOD generation. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'occluder' property. + + + + + Cached name for the 'bake_mask' property. + + + + + Cached name for the 'bake_simplification_distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bake_mask' method. + + + + + Cached name for the 'get_bake_mask' method. + + + + + Cached name for the 'set_bake_mask_value' method. + + + + + Cached name for the 'get_bake_mask_value' method. + + + + + Cached name for the 'set_bake_simplification_distance' method. + + + + + Cached name for the 'get_bake_simplification_distance' method. + + + + + Cached name for the 'set_occluder' method. + + + + + Cached name for the 'get_occluder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Editor facility that helps you draw a 2D polygon used as resource for . + + + + + Culling is disabled. See . + + + + + Culling is performed in the clockwise direction. See . + + + + + Culling is performed in the counterclockwise direction. See . + + + + + If , closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction. + + + + + The culling mode to use. + + + + + A array with the index for polygon's vertices positions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'closed' property. + + + + + Cached name for the 'cull_mode' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_closed' method. + + + + + Cached name for the 'is_closed' method. + + + + + Cached name for the 'set_cull_mode' method. + + + + + Cached name for the 'get_cull_mode' method. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the default for the . It mimics the behavior of a server with no peers connected. + This means that the will act as the multiplayer authority by default. Calls to will return , and calls to will return . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A sequence of Ogg packets. + + + + + Contains the raw packets that make up this OggPacketSequence. + + + + + Contains the granule positions for each page in this packet sequence. + + + + + Holds sample rate information about this sequence. Must be set by another class that actually understands the codec. + + + + + The length of this stream, in seconds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'packet_data' property. + + + + + Cached name for the 'granule_positions' property. + + + + + Cached name for the 'sampling_rate' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_packet_data' method. + + + + + Cached name for the 'get_packet_data' method. + + + + + Cached name for the 'set_packet_granule_positions' method. + + + + + Cached name for the 'get_packet_granule_positions' method. + + + + + Cached name for the 'set_sampling_rate' method. + + + + + Cached name for the 'get_sampling_rate' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An Omnidirectional light is a type of that emits light in all directions. The light is attenuated by distance and this attenuation can be configured by changing its energy, radius, and attenuation parameters. + Note: When using the Mobile rendering method, only 8 omni lights can be displayed on each mesh resource. Attempting to display more than 8 omni lights on a single mesh resource will result in omni lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 omni lights can be displayed on each mesh resource by default, but this can be increased by adjusting ProjectSettings.rendering/limits/opengl/max_lights_per_object. + Note: When using the Mobile or Compatibility rendering methods, omni lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the light may not be visible on the mesh. + + + + + Shadows are rendered to a dual-paraboloid texture. Faster than , but lower-quality. + + + + + Shadows are rendered to a cubemap. Slower than , but higher-quality. + + + + + The light's radius. Note that the effectively lit area may appear to be smaller depending on the in use. No matter the in use, the light will never reach anything outside this radius. + Note: is not affected by (the light's scale or its parent's scale). + + + + + Controls the distance attenuation function for omnilights. + A value of 0.0 will maintain a constant brightness through most of the range, but smoothly attenuate the light at the edge of the range. Use a value of 2.0 for physically accurate lights as it results in the proper inverse square attenutation. + Note: Setting attenuation to 2.0 or higher may result in distant objects receiving minimal light, even within range. For example, with a range of 4096, an object at 100 units is attenuated by a factor of 0.0001. With a default brightness of 1, the light would not be visible at that distance. + Note: Using negative or values higher than 10.0 may lead to unexpected results. + + + + + See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'omni_range' property. + + + + + Cached name for the 'omni_attenuation' property. + + + + + Cached name for the 'omni_shadow_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shadow_mode' method. + + + + + Cached name for the 'get_shadow_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + makes OpenXR available for GDExtension. It provides the OpenXR API to GDExtension through the method, and the OpenXR instance through . + It also provides methods for querying the status of OpenXR initialization, and helper methods for ease of use of the API with GDExtension. + + + + + Means that isn't supported at all. + + + + + Means that is really supported. + + + + + Means that is emulated. + + + + + Returns the XrInstance created during the initialization of the OpenXR API. + + + + + Returns the id of the system, which is a XrSystemId cast to an integer. + + + + + Returns the OpenXR session, which is an XrSession cast to an integer. + + + + + Returns if the provided XrResult (cast to an integer) is successful. Otherwise returns and prints the XrResult converted to a string, with the specified additional information. + + + + + Returns if OpenXR is enabled. + + + + + Returns the function pointer of the OpenXR function with the specified name, cast to an integer. If the function with the given name does not exist, the method returns 0. + Note: openxr/util.h contains utility macros for acquiring OpenXR functions, e.g. GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction). + + + + + Returns an error string for the given XrResult. + + + + + Returns the name of the specified swapchain format. + + + + + Set the object name of an OpenXR object, used for debug output. must be a valid OpenXR XrObjectType enum and must be a valid OpenXR object handle. + + + + + Begins a new debug label region, this label will be reported in debug messages for any calls following this until is called. Debug labels can be stacked. + + + + + Marks the end of a debug label region. Removes the latest debug label region added by calling . + + + + + Inserts a debug label, this label is reported in any debug message resulting from the OpenXR calls that follows, until any of , , or is called. + + + + + Returns if OpenXR is initialized. + + + + + Returns if OpenXR is running (xrBeginSession was successfully called and the swapchains were created). + + + + + Returns the play space, which is an XrSpace cast to an integer. + + + + + Returns the predicted display timing for the current frame. + + + + + Returns the predicted display timing for the next frame. + + + + + Returns if OpenXR is initialized for rendering with an XR viewport. + + + + + Returns the corresponding XRHandTrackerEXT handle for the given hand index value. + + + + + Registers the given extension as a composition layer provider. + + + + + Unregisters the given extension as a composition layer provider. + + + + + Registers the given extension as a provider of additional data structures to projections views. + + + + + Unregisters the given extension as a provider of additional data structures to projections views. + + + + + Returns the near boundary value of the camera frustum. + Note: This is only accessible in the render thread. + + + + + Returns the far boundary value of the camera frustum. + Note: This is only accessible in the render thread. + + + + + Sets the render target of the velocity texture. + + + + + Sets the render target of the velocity depth texture. + + + + + Sets the target size of the velocity and velocity depth textures. + + + + + Returns an array of supported swapchain formats. + + + + + Returns a pointer to a new swapchain created using the provided parameters. + + + + + Destroys the provided swapchain and frees it from memory. + + + + + Returns the XrSwapchain handle of the provided swapchain. + + + + + Acquires the image of the provided swapchain. + + + + + Returns the RID of the provided swapchain's image. + + + + + Releases the image of the provided swapchain. + + + + + If set to , an OpenXR extension is loaded which is capable of emulating the blend mode. + + + + + Returns denoting if is really supported, emulated or not supported at all. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_instance' method. + + + + + Cached name for the 'get_system_id' method. + + + + + Cached name for the 'get_session' method. + + + + + Cached name for the 'xr_result' method. + + + + + Cached name for the 'openxr_is_enabled' method. + + + + + Cached name for the 'get_instance_proc_addr' method. + + + + + Cached name for the 'get_error_string' method. + + + + + Cached name for the 'get_swapchain_format_name' method. + + + + + Cached name for the 'set_object_name' method. + + + + + Cached name for the 'begin_debug_label_region' method. + + + + + Cached name for the 'end_debug_label_region' method. + + + + + Cached name for the 'insert_debug_label' method. + + + + + Cached name for the 'is_initialized' method. + + + + + Cached name for the 'is_running' method. + + + + + Cached name for the 'get_play_space' method. + + + + + Cached name for the 'get_predicted_display_time' method. + + + + + Cached name for the 'get_next_frame_time' method. + + + + + Cached name for the 'can_render' method. + + + + + Cached name for the 'get_hand_tracker' method. + + + + + Cached name for the 'register_composition_layer_provider' method. + + + + + Cached name for the 'unregister_composition_layer_provider' method. + + + + + Cached name for the 'register_projection_views_extension' method. + + + + + Cached name for the 'unregister_projection_views_extension' method. + + + + + Cached name for the 'get_render_state_z_near' method. + + + + + Cached name for the 'get_render_state_z_far' method. + + + + + Cached name for the 'set_velocity_texture' method. + + + + + Cached name for the 'set_velocity_depth_texture' method. + + + + + Cached name for the 'set_velocity_target_size' method. + + + + + Cached name for the 'get_supported_swapchain_formats' method. + + + + + Cached name for the 'openxr_swapchain_create' method. + + + + + Cached name for the 'openxr_swapchain_free' method. + + + + + Cached name for the 'openxr_swapchain_get_swapchain' method. + + + + + Cached name for the 'openxr_swapchain_acquire' method. + + + + + Cached name for the 'openxr_swapchain_get_image' method. + + + + + Cached name for the 'openxr_swapchain_release' method. + + + + + Cached name for the 'set_emulate_environment_blend_mode_alpha_blend' method. + + + + + Cached name for the 'is_environment_blend_mode_alpha_supported' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource defines an OpenXR action. Actions can be used both for inputs (buttons, joysticks, triggers, 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 if the trigger is depressed and if pressed fully. + Actions are not directly bound to specific devices, instead OpenXR recognizes a limited number of top level paths that identify devices by usage. We can restrict which devices an action can be bound to by these top level paths. For instance an action that should only be used for hand held controllers can have the top level paths "/user/hand/left" and "/user/hand/right" associated with them. See the reserved path section in the OpenXR specification for more info on the top level paths. + Note that the name of the resource is used to register the action with. + + + + + This action provides a boolean value. + + + + + This action provides a float value between 0.0 and 1.0 for any analog input such as triggers. + + + + + This action provides a value and can be bound to embedded trackpads and joysticks. + + + + + The localized description of this action. + + + + + The type of action. + + + + + A collections of toplevel paths to which this action can be bound. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'localized_name' property. + + + + + Cached name for the 'action_type' property. + + + + + Cached name for the 'toplevel_paths' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_localized_name' method. + + + + + Cached name for the 'get_localized_name' method. + + + + + Cached name for the 'set_action_type' method. + + + + + Cached name for the 'get_action_type' method. + + + + + Cached name for the 'set_toplevel_paths' method. + + + + + Cached name for the 'get_toplevel_paths' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Binding modifier that applies on individual actions related to an interaction profile. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Collection of s that are part of this action map. + + + + + Collection of s that are part of this action map. + + + + + Retrieve the number of actions sets in our action map. + + + + + Retrieve an action set by name. + + + + + Retrieve the action set at this index. + + + + + Add an action set. + + + + + Remove an action set. + + + + + Retrieve the number of interaction profiles in our action map. + + + + + Find an interaction profile by its name (path). + + + + + Get the interaction profile at this index. + + + + + Add an interaction profile. + + + + + Remove an interaction profile. + + + + + Setup this action set with our default actions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action_sets' property. + + + + + Cached name for the 'interaction_profiles' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action_sets' method. + + + + + Cached name for the 'get_action_sets' method. + + + + + Cached name for the 'get_action_set_count' method. + + + + + Cached name for the 'find_action_set' method. + + + + + Cached name for the 'get_action_set' method. + + + + + Cached name for the 'add_action_set' method. + + + + + Cached name for the 'remove_action_set' method. + + + + + Cached name for the 'set_interaction_profiles' method. + + + + + Cached name for the 'get_interaction_profiles' method. + + + + + Cached name for the 'get_interaction_profile_count' method. + + + + + Cached name for the 'find_interaction_profile' method. + + + + + Cached name for the 'get_interaction_profile' method. + + + + + Cached name for the 'add_interaction_profile' method. + + + + + Cached name for the 'remove_interaction_profile' method. + + + + + Cached name for the 'create_default_action_sets' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The localized name of this action set. + + + + + The priority for this action set. + + + + + Collection of actions for this action set. + + + + + Retrieve the number of actions in our action set. + + + + + Add an action to this action set. + + + + + Remove an action from this action set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'localized_name' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'actions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_localized_name' method. + + + + + Cached name for the 'get_localized_name' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'get_action_count' method. + + + + + Cached name for the 'set_actions' method. + + + + + Cached name for the 'get_actions' method. + + + + + Cached name for the 'add_action' method. + + + + + Cached name for the 'remove_action' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The analog threshold binding modifier can modify a float input to a boolean input with specified thresholds. + See XR_VALVE_analog_threshold for in-depth details. + + + + + When our input value is equal or larger than this value, our output becomes true. It stays true until it falls under the value. + + + + + When our input value falls below this, our output becomes false. + + + + + Haptic pulse to emit when the user presses the input. + + + + + Haptic pulse to emit when the user releases the input. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'on_threshold' property. + + + + + Cached name for the 'off_threshold' property. + + + + + Cached name for the 'on_haptic' property. + + + + + Cached name for the 'off_haptic' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_on_threshold' method. + + + + + Cached name for the 'get_on_threshold' method. + + + + + Cached name for the 'set_off_threshold' method. + + + + + Cached name for the 'get_off_threshold' method. + + + + + Cached name for the 'set_on_haptic' method. + + + + + Cached name for the 'get_on_haptic' method. + + + + + Cached name for the 'set_off_haptic' method. + + + + + Cached name for the 'get_off_haptic' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Binding modifier base class. Subclasses implement various modifiers that alter how an OpenXR runtime processes inputs. + + + + + Return the description of this class that is used for the title bar of the binding modifier editor. + + + + + Returns the data that is sent to OpenXR when submitting the suggested interacting bindings this modifier is a part of. + Note: This must be data compatible with a XrBindingModificationBaseHeaderKHR structure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_description' method. + + + + + Cached name for the '_get_ip_modification' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the default binding modifier editor used in the OpenXR action map. + + + + + Returns the currently being edited. + + + + + Setup this editor for the provided and . + + + + + Represents the method that handles the event of a class. + + + + + Signal emitted when the user presses the delete binding modifier button for this modifier. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_binding_modifier' method. + + + + + Cached name for the 'setup' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'binding_modifier_removed' signal. + + + + + Composition layers allow 2D viewports to be displayed inside of the headset by the XR compositor through special projections that retain their quality. This allows for rendering clear text while keeping the layer at a native resolution. + Note: If the OpenXR runtime doesn't support the given composition layer type, a fallback mesh can be generated with a , in order to emulate the composition layer. + + + + + The to render on the composition layer. + + + + + If enabled, an Android surface will be created (with the dimensions from ) which will provide the 2D content for the composition layer, rather than using . + See for information about how to get the surface so that your application can draw to it. + Note: This will only work in Android builds. + + + + + The size of the Android surface to create if is enabled. + + + + + The sort order for this composition layer. Higher numbers will be shown in front of lower numbers. + Note: This will have no effect if a fallback mesh is being used. + + + + + Enables the blending the layer using its alpha channel. + Can be combined with to give the layer a transparent background. + + + + + Enables a technique called "hole punching", which allows putting the composition layer behind the main projection layer (i.e. setting to a negative value) while "punching a hole" through everything rendered by Godot so that the layer is still visible. + This can be used to create the illusion that the composition layer exists in the same 3D space as everything rendered by Godot, allowing objects to appear to pass both behind or in front of the composition layer. + + + + + Returns a representing an android.view.Surface if is enabled and OpenXR has created the surface. Otherwise, this will return . + Note: The surface can only be created during an active OpenXR session. So, if is enabled outside of an OpenXR session, it won't be created until a new session fully starts. + + + + + Returns if the OpenXR runtime natively supports this composition layer type. + Note: This will only return an accurate result after the OpenXR session has started. + + + + + Returns UV coordinates where the given ray intersects with the composition layer. and must be in global space. + Returns Vector2(-1.0, -1.0) if the ray doesn't intersect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'layer_viewport' property. + + + + + Cached name for the 'use_android_surface' property. + + + + + Cached name for the 'android_surface_size' property. + + + + + Cached name for the 'sort_order' property. + + + + + Cached name for the 'alpha_blend' property. + + + + + Cached name for the 'enable_hole_punch' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_layer_viewport' method. + + + + + Cached name for the 'get_layer_viewport' method. + + + + + Cached name for the 'set_use_android_surface' method. + + + + + Cached name for the 'get_use_android_surface' method. + + + + + Cached name for the 'set_android_surface_size' method. + + + + + Cached name for the 'get_android_surface_size' method. + + + + + Cached name for the 'set_enable_hole_punch' method. + + + + + Cached name for the 'get_enable_hole_punch' method. + + + + + Cached name for the 'set_sort_order' method. + + + + + Cached name for the 'get_sort_order' method. + + + + + Cached name for the 'set_alpha_blend' method. + + + + + Cached name for the 'get_alpha_blend' method. + + + + + Cached name for the 'get_android_surface' method. + + + + + Cached name for the 'is_natively_supported' method. + + + + + Cached name for the 'intersects_ray' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An OpenXR composition layer that allows rendering a on an internal slice of a cylinder. + + + + + The radius of the cylinder. + + + + + The aspect ratio of the slice. Used to set the height relative to the width. + + + + + The central angle of the cylinder. Used to set the width. + + + + + The number of segments to use in the fallback mesh. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'aspect_ratio' property. + + + + + Cached name for the 'central_angle' property. + + + + + Cached name for the 'fallback_segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_aspect_ratio' method. + + + + + Cached name for the 'get_aspect_ratio' method. + + + + + Cached name for the 'set_central_angle' method. + + + + + Cached name for the 'get_central_angle' method. + + + + + Cached name for the 'set_fallback_segments' method. + + + + + Cached name for the 'get_fallback_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An OpenXR composition layer that allows rendering a on an internal slice of a sphere. + + + + + The radius of the sphere. + + + + + The central horizontal angle of the sphere. Used to set the width. + + + + + The upper vertical angle of the sphere. Used (together with ) to set the height. + + + + + The lower vertical angle of the sphere. Used (together with ) to set the height. + + + + + The number of segments to use in the fallback mesh. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'central_horizontal_angle' property. + + + + + Cached name for the 'upper_vertical_angle' property. + + + + + Cached name for the 'lower_vertical_angle' property. + + + + + Cached name for the 'fallback_segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_central_horizontal_angle' method. + + + + + Cached name for the 'get_central_horizontal_angle' method. + + + + + Cached name for the 'set_upper_vertical_angle' method. + + + + + Cached name for the 'get_upper_vertical_angle' method. + + + + + Cached name for the 'set_lower_vertical_angle' method. + + + + + Cached name for the 'get_lower_vertical_angle' method. + + + + + Cached name for the 'set_fallback_segments' method. + + + + + Cached name for the 'get_fallback_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An OpenXR composition layer that allows rendering a on a quad. + + + + + The dimensions of the quad. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'quad_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_quad_size' method. + + + + + Cached name for the 'get_quad_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The DPad binding modifier converts an axis input to a dpad output, emulating a DPad. New input paths for each dpad direction will be added to the interaction profile. When bound to actions the DPad emulation will be activated. You should not combine dpad inputs with normal inputs in the same action set for the same control, this will result in an error being returned when suggested bindings are submitted to OpenXR. + See XR_EXT_dpad_binding for in-depth details. + Note: If the DPad binding modifier extension is enabled, all dpad binding paths will be available in the action map. Adding the modifier to an interaction profile allows you to further customize the behavior. + + + + + Action set for which this dpad binding modifier is active. + + + + + Input path for this dpad binding modifier. + + + + + When our input value is equal or larger than this value, our dpad in that direction becomes true. It stays true until it falls under the value. + + + + + When our input value falls below this, our output becomes false. + + + + + Center region in which our center position of our dpad return . + + + + + The angle of each wedge that identifies the 4 directions of the emulated dpad. + + + + + If , when the joystick enters a new dpad zone this becomes true. + If , when the joystick remains in active dpad zone, this remains true even if we overlap with another zone. + + + + + Haptic pulse to emit when the user presses the input. + + + + + Haptic pulse to emit when the user releases the input. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action_set' property. + + + + + Cached name for the 'input_path' property. + + + + + Cached name for the 'threshold' property. + + + + + Cached name for the 'threshold_released' property. + + + + + Cached name for the 'center_region' property. + + + + + Cached name for the 'wedge_angle' property. + + + + + Cached name for the 'is_sticky' property. + + + + + Cached name for the 'on_haptic' property. + + + + + Cached name for the 'off_haptic' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action_set' method. + + + + + Cached name for the 'get_action_set' method. + + + + + Cached name for the 'set_input_path' method. + + + + + Cached name for the 'get_input_path' method. + + + + + Cached name for the 'set_threshold' method. + + + + + Cached name for the 'get_threshold' method. + + + + + Cached name for the 'set_threshold_released' method. + + + + + Cached name for the 'get_threshold_released' method. + + + + + Cached name for the 'set_center_region' method. + + + + + Cached name for the 'get_center_region' method. + + + + + Cached name for the 'set_wedge_angle' method. + + + + + Cached name for the 'get_wedge_angle' method. + + + + + Cached name for the 'set_is_sticky' method. + + + + + Cached name for the 'get_is_sticky' method. + + + + + Cached name for the 'set_on_haptic' method. + + + + + Cached name for the 'get_on_haptic' method. + + + + + Cached name for the 'set_off_haptic' method. + + + + + Cached name for the 'get_off_haptic' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows clients to implement OpenXR extensions with GDExtension. The extension should be registered with . + + + + + Returns a pointer to an XrCompositionLayerBaseHeader struct to provide the given composition layer. + This will only be called if the extension previously registered itself with . + + + + + Returns the number of composition layers this extension wrapper provides via . + This will only be called if the extension previously registered itself with . + + + + + Returns an integer that will be used to sort the given composition layer provided via . Lower numbers will move the layer to the front of the list, and higher numbers to the end. The default projection layer has an order of 0, so layers provided by this method should probably be above or below (but not exactly) 0. + This will only be called if the extension previously registered itself with . + + + + + Returns a of OpenXR extensions related to this extension. The should contain the name of the extension, mapped to a bool * cast to an integer: + - If the bool * is a nullptr this extension is mandatory. + - If the bool * points to a boolean, the boolean will be updated to if the extension is enabled. + + + + + Returns a [] of positional tracker names that are used within the extension wrapper. + + + + + Gets an array of s that represent properties, just like , that will be added to nodes. + + + + + Gets a containing the default values for the properties returned by . + + + + + Called before the OpenXR instance is created. + + + + + Called right after the OpenXR instance is created. + + + + + Called right before the OpenXR instance is destroyed. + + + + + Called right after the main swapchains are (re)created. + + + + + Called right after the given viewport is rendered. + Note: The draw commands might only be queued at this point, not executed. + + + + + Called right before the given viewport is rendered. + + + + + Called right before the XR viewports begin their rendering step. + + + + + 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. + + + + + 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. + + + + + Called right after the OpenXR session is created. + + + + + Called right before the OpenXR session is destroyed. + + + + + Called when the OpenXR session state is changed to exiting. + + + + + Called when the OpenXR session state is changed to focused. This state is the active state when the game runs. + + + + + Called when the OpenXR session state is changed to idle. + + + + + Called when the OpenXR session state is changed to loss pending. + + + + + Called when the OpenXR session state is changed to ready. This means OpenXR is ready to set up the session. + + + + + Called when the OpenXR session state is changed to stopping. + + + + + Called when the OpenXR session state is changed to synchronized. OpenXR also returns to this state when the application loses focus. + + + + + Called when the OpenXR session state is changed to visible. This means OpenXR is now ready to receive frames. + + + + + Returns the created , which can be used to access the OpenXR API. + + + + + Registers the extension. This should happen at core module initialization level. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_composition_layer' method. + + + + + Cached name for the '_get_composition_layer_count' method. + + + + + Cached name for the '_get_composition_layer_order' method. + + + + + Cached name for the '_get_requested_extensions' method. + + + + + Cached name for the '_get_suggested_tracker_names' method. + + + + + Cached name for the '_get_viewport_composition_layer_extension_properties' method. + + + + + Cached name for the '_get_viewport_composition_layer_extension_property_defaults' method. + + + + + Cached name for the '_on_before_instance_created' method. + + + + + Cached name for the '_on_instance_created' method. + + + + + Cached name for the '_on_instance_destroyed' method. + + + + + Cached name for the '_on_main_swapchains_created' method. + + + + + Cached name for the '_on_post_draw_viewport' method. + + + + + Cached name for the '_on_pre_draw_viewport' method. + + + + + Cached name for the '_on_pre_render' method. + + + + + Cached name for the '_on_process' method. + + + + + Cached name for the '_on_register_metadata' method. + + + + + Cached name for the '_on_session_created' method. + + + + + Cached name for the '_on_session_destroyed' method. + + + + + Cached name for the '_on_state_exiting' method. + + + + + Cached name for the '_on_state_focused' method. + + + + + Cached name for the '_on_state_idle' method. + + + + + Cached name for the '_on_state_loss_pending' method. + + + + + Cached name for the '_on_state_ready' method. + + + + + Cached name for the '_on_state_stopping' method. + + + + + Cached name for the '_on_state_synchronized' method. + + + + + Cached name for the '_on_state_visible' method. + + + + + Cached name for the 'get_openxr_api' method. + + + + + Cached name for the 'register_extension_wrapper' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node enables OpenXR's hand tracking functionality. The node should be a child node of an node, tracking will update its position to the player's tracked hand Palm joint location (the center of the middle finger's metacarpal bone). This node also updates the skeleton of a properly skinned hand or avatar model. + If the skeleton is a hand (one of the hand bones is the root node of the skeleton), then the skeleton will be placed relative to the hand palm location and the hand mesh and skeleton should be children of the OpenXRHand node. + If the hand bones are part of a full skeleton, then the root of the hand will keep its location with the assumption that IK is used to position the hand and arm. + By default the skeleton hand bones are repositioned to match the size of the tracked hand. To preserve the modeled bone sizes change to apply rotation only. + + + + + Tracking the player's left hand. + + + + + Tracking the player's right hand. + + + + + Maximum supported hands. + + + + + When player grips, hand skeleton will form a full fist. + + + + + When player grips, hand skeleton conforms to the controller the player is holding. + + + + + Maximum supported motion ranges. + + + + + An OpenXR compliant skeleton. + + + + + A compliant skeleton. + + + + + Maximum supported hands. + + + + + The skeletons bones are fully updated (both position and rotation) to match the tracked bones. + + + + + The skeletons bones are only rotated to align with the tracked bones, preserving bone length. + + + + + Maximum supported bone update mode. + + + + + Specifies whether this node tracks the left or right hand of the player. + + + + + Set the motion range (if supported) limiting the hand motion. + + + + + Set a node for which the pose positions will be updated. + + + + + Set the type of skeleton rig the is compliant with. + + + + + Specify the type of updates to perform on the bone. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hand' property. + + + + + Cached name for the 'motion_range' property. + + + + + Cached name for the 'hand_skeleton' property. + + + + + Cached name for the 'skeleton_rig' property. + + + + + Cached name for the 'bone_update' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hand' method. + + + + + Cached name for the 'get_hand' method. + + + + + Cached name for the 'set_hand_skeleton' method. + + + + + Cached name for the 'get_hand_skeleton' method. + + + + + Cached name for the 'set_motion_range' method. + + + + + Cached name for the 'get_motion_range' method. + + + + + Cached name for the 'set_skeleton_rig' method. + + + + + Cached name for the 'get_skeleton_rig' method. + + + + + Cached name for the 'set_bone_update' method. + + + + + Cached name for the 'get_bone_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a base class for haptic feedback resources. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This haptic feedback resource makes it possible to define a vibration based haptic feedback pulse that can be triggered through actions in the OpenXR action map. + + + + + The duration of the pulse in nanoseconds. Use -1 for a minimum duration pulse for the current XR runtime. + + + + + The frequency of the pulse in Hz. 0.0 will let the XR runtime chose an optimal frequency for the device used. + + + + + The amplitude of the pulse between 0.0 and 1.0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'duration' property. + + + + + Cached name for the 'frequency' property. + + + + + Cached name for the 'amplitude' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_duration' method. + + + + + Cached name for the 'get_duration' method. + + + + + Cached name for the 'set_frequency' method. + + + + + Cached name for the 'get_frequency' method. + + + + + Cached name for the 'set_amplitude' method. + + + + + Cached name for the 'get_amplitude' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This binding resource binds an to an input or output. 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". This would require two binding entries. + + + + + that is bound to . + + + + + Binding path that defines the input or output bound to . + Note: Binding paths are suggestions, an XR runtime may choose to bind the action to a different input or output emulating this input or output. + + + + + Binding modifiers for this binding. + + + + + Paths that define the inputs or outputs bound on the device. + + + + + Get the number of binding modifiers for this binding. + + + + + Get the at this index. + + + + + Get the number of input/output paths in this binding. + + + + + Returns if this input/output path is part of this binding. + + + + + Add an input/output path to this binding. + + + + + Removes this input/output path from this binding. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action' property. + + + + + Cached name for the 'binding_path' property. + + + + + Cached name for the 'binding_modifiers' property. + + + + + Cached name for the 'paths' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action' method. + + + + + Cached name for the 'get_action' method. + + + + + Cached name for the 'set_binding_path' method. + + + + + Cached name for the 'get_binding_path' method. + + + + + Cached name for the 'get_binding_modifier_count' method. + + + + + Cached name for the 'get_binding_modifier' method. + + + + + Cached name for the 'set_binding_modifiers' method. + + + + + Cached name for the 'get_binding_modifiers' method. + + + + + Cached name for the 'set_paths' method. + + + + + Cached name for the 'get_paths' method. + + + + + Cached name for the 'get_path_count' method. + + + + + Cached name for the 'has_path' method. + + + + + Cached name for the 'add_path' method. + + + + + Cached name for the 'remove_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Binding modifier that applies directly on an interaction profile. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object stores suggested bindings for an interaction profile. Interaction profiles define the metadata for a tracked XR device such as an XR controller. + For more information see the interaction profiles info in the OpenXR specification. + + + + + The interaction profile path identifying the XR device. + + + + + Action bindings for this interaction profile. + + + + + Binding modifiers for this interaction profile. + + + + + Get the number of bindings in this interaction profile. + + + + + Retrieve the binding at this index. + + + + + Get the number of binding modifiers in this interaction profile. + + + + + Get the at this index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'interaction_profile_path' property. + + + + + Cached name for the 'bindings' property. + + + + + Cached name for the 'binding_modifiers' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_interaction_profile_path' method. + + + + + Cached name for the 'get_interaction_profile_path' method. + + + + + Cached name for the 'get_binding_count' method. + + + + + Cached name for the 'get_binding' method. + + + + + Cached name for the 'set_bindings' method. + + + + + Cached name for the 'get_bindings' method. + + + + + Cached name for the 'get_binding_modifier_count' method. + + + + + Cached name for the 'get_binding_modifier' method. + + + + + Cached name for the 'set_binding_modifiers' method. + + + + + Cached name for the 'get_binding_modifiers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the default OpenXR interaction profile editor that provides a generic interface for editing any interaction profile for which no custom editor has been defined. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a base class for interaction profile editors used by the OpenXR action map editor. It can be used to create bespoke editors for specific interaction profiles. + + + + + Setup this editor for the provided and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Allows for renaming old interaction profile paths to new paths to maintain backwards compatibility with older action maps. + + + + + Registers a top level path to which profiles can be bound. For instance /user/hand/left refers to the bind point for the player's left hand. Extensions can register additional top level paths, for instance a haptic vest extension might register /user/body/vest. + is the name shown to the user. is the top level path being registered. is optional and ensures the top level path is only used if the specified extension is available/enabled. + When a top level path ends up being bound by OpenXR, a is instantiated to manage the state of the device. + + + + + Registers an interaction profile using its OpenXR designation (e.g. /interaction_profiles/khr/simple_controller is the profile for OpenXR's simple controller profile). + is the description shown to the user. is the interaction profile path being registered. optionally restricts this profile to the given extension being enabled/available. If the extension is not available, the profile and all related entries used in an action map are filtered out. + + + + + Registers an input/output path for the given . The profile should previously have been registered using . is the description shown to the user. specifies the bind path this input/output can be bound to (e.g. /user/hand/left or /user/hand/right). is the action input/output being registered (e.g. /user/hand/left/input/aim/pose). restricts this input/output to an enabled/available extension, this doesn't need to repeat the extension on the profile but relates to overlapping extension (e.g. XR_EXT_palm_pose that introduces …/input/palm_ext/pose input paths). defines the type of input or output provided by OpenXR. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_profile_rename' method. + + + + + Cached name for the 'register_top_level_path' method. + + + + + Cached name for the 'register_interaction_profile' method. + + + + + Cached name for the 'register_io_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Left hand. + + + + + Right hand. + + + + + Maximum value for the hand enum. + + + + + Full hand range, if user closes their hands, we make a full fist. + + + + + Conform to controller, if user closes their hands, the tracked data conforms to the shape of the controller. + + + + + Maximum value for the motion range enum. + + + + + The source of hand tracking data is unknown (the extension is likely unsupported). + + + + + The source of hand tracking is unobstructed, this means that an accurate method of hand tracking is used, e.g. optical hand tracking, data gloves, etc. + + + + + The source of hand tracking is a controller, bone positions are inferred from controller inputs. + + + + + Maximum value for the hand tracked source enum. + + + + + Palm joint. + + + + + Wrist joint. + + + + + Thumb metacarpal joint. + + + + + Thumb proximal joint. + + + + + Thumb distal joint. + + + + + Thumb tip joint. + + + + + Index metacarpal joint. + + + + + Index proximal joint. + + + + + Index intermediate joint. + + + + + Index distal joint. + + + + + Index tip joint. + + + + + Middle metacarpal joint. + + + + + Middle proximal joint. + + + + + Middle intermediate joint. + + + + + Middle distal joint. + + + + + Middle tip joint. + + + + + Ring metacarpal joint. + + + + + Ring proximal joint. + + + + + Ring intermediate joint. + + + + + Ring distal joint. + + + + + Ring tip joint. + + + + + Little metacarpal joint. + + + + + Little proximal joint. + + + + + Little intermediate joint. + + + + + Little distal joint. + + + + + Little tip joint. + + + + + Maximum value for the hand joint enum. + + + + + No flags are set. + + + + + If set, the orientation data is valid, otherwise, the orientation data is unreliable and should not be used. + + + + + If set, the orientation data comes from tracking data, otherwise, the orientation data contains predicted data. + + + + + If set, the positional data is valid, otherwise, the positional data is unreliable and should not be used. + + + + + If set, the positional data comes from tracking data, otherwise, the positional data contains predicted data. + + + + + If set, our linear velocity data is valid, otherwise, the linear velocity data is unreliable and should not be used. + + + + + If set, our angular velocity data is valid, otherwise, the angular velocity data is unreliable and should not be used. + + + + + The display refresh rate for the current HMD. Only functional if this feature is supported by the OpenXR runtime and after the interface has been initialized. + + + + + The render size multiplier for the current HMD. Must be set before the interface has been initialized. + + + + + Set foveation level from 0 (off) to 3 (high), the interface must be initialized before this is accessible. + Note: Only works on compatibility renderer. + + + + + Enable dynamic foveation adjustment, the interface must be initialized before this is accessible. If enabled foveation will automatically adjusted between low and . + Note: Only works on compatibility renderer. + + + + + The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. This improves performance at the cost of quality. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + Returns if OpenXR's foveation extension is supported, the interface must be initialized before this returns a valid value. + Note: This feature is only available on the compatibility renderer and currently only available on some stand alone headsets. For Vulkan set to VRS_XR on desktop. + + + + + Returns if the given action set is active. + + + + + Sets the given action set as active or inactive. + + + + + Returns a list of action sets registered with Godot (loaded from the action map at runtime). + + + + + Returns display refresh rates supported by the current HMD. Only returned if this feature is supported by the OpenXR runtime and after the interface has been initialized. + + + + + If handtracking is enabled and motion range is supported, sets the currently configured motion range for to . + + + + + If handtracking is enabled and motion range is supported, gets the currently configured motion range for . + + + + + If handtracking is enabled and hand tracking source is supported, gets the source of the hand tracking data for . + + + + + If handtracking is enabled, returns flags that inform us of the validity of the tracking data. + + + + + If handtracking is enabled, returns the rotation of a joint () of a hand () as provided by OpenXR. + + + + + If handtracking is enabled, returns the position of a joint () of a hand () as provided by OpenXR. This is relative to without worldscale applied! + + + + + If handtracking is enabled, returns the radius of a joint () of a hand () as provided by OpenXR. This is without worldscale applied! + + + + + If handtracking is enabled, returns the linear velocity of a joint () of a hand () as provided by OpenXR. This is relative to without worldscale applied! + + + + + If handtracking is enabled, returns the angular velocity of a joint () of a hand () as provided by OpenXR. This is relative to ! + + + + + Returns if OpenXR's hand tracking is supported and enabled. + Note: This only returns a valid value after OpenXR has been initialized. + + + + + Returns if OpenXR's hand interaction profile is supported and enabled. + Note: This only returns a valid value after OpenXR has been initialized. + + + + + Returns the capabilities of the eye gaze interaction extension. + Note: This only returns a valid value after OpenXR has been initialized. + + + + + Informs our OpenXR session has been started. + + + + + Informs our OpenXR session is stopping. + + + + + Informs our OpenXR session now has focus. + + + + + Informs our OpenXR session is now visible (output is being sent to the HMD). + + + + + Informs our OpenXR session is in the process of being lost. + + + + + Informs our OpenXR instance is exiting. + + + + + Informs the user queued a recenter of the player position. + + + + + Represents the method that handles the event of a class. + + + + + Informs the user the HMD refresh rate has changed. + Note: Only emitted if XR runtime supports the refresh rate extension. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'display_refresh_rate' property. + + + + + Cached name for the 'render_target_size_multiplier' property. + + + + + Cached name for the 'foveation_level' property. + + + + + Cached name for the 'foveation_dynamic' property. + + + + + Cached name for the 'vrs_min_radius' property. + + + + + Cached name for the 'vrs_strength' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_display_refresh_rate' method. + + + + + Cached name for the 'set_display_refresh_rate' method. + + + + + Cached name for the 'get_render_target_size_multiplier' method. + + + + + Cached name for the 'set_render_target_size_multiplier' method. + + + + + Cached name for the 'is_foveation_supported' method. + + + + + Cached name for the 'get_foveation_level' method. + + + + + Cached name for the 'set_foveation_level' method. + + + + + Cached name for the 'get_foveation_dynamic' method. + + + + + Cached name for the 'set_foveation_dynamic' method. + + + + + Cached name for the 'is_action_set_active' method. + + + + + Cached name for the 'set_action_set_active' method. + + + + + Cached name for the 'get_action_sets' method. + + + + + Cached name for the 'get_available_display_refresh_rates' method. + + + + + Cached name for the 'set_motion_range' method. + + + + + Cached name for the 'get_motion_range' method. + + + + + Cached name for the 'get_hand_tracking_source' method. + + + + + Cached name for the 'get_hand_joint_flags' method. + + + + + Cached name for the 'get_hand_joint_rotation' method. + + + + + Cached name for the 'get_hand_joint_position' method. + + + + + Cached name for the 'get_hand_joint_radius' method. + + + + + Cached name for the 'get_hand_joint_linear_velocity' method. + + + + + Cached name for the 'get_hand_joint_angular_velocity' method. + + + + + Cached name for the 'is_hand_tracking_supported' method. + + + + + Cached name for the 'is_hand_interaction_supported' method. + + + + + Cached name for the 'is_eye_gaze_interaction_supported' method. + + + + + Cached name for the 'get_vrs_min_radius' method. + + + + + Cached name for the 'set_vrs_min_radius' method. + + + + + Cached name for the 'get_vrs_strength' method. + + + + + Cached name for the 'set_vrs_strength' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'session_begun' signal. + + + + + Cached name for the 'session_stopping' signal. + + + + + Cached name for the 'session_focussed' signal. + + + + + Cached name for the 'session_visible' signal. + + + + + Cached name for the 'session_loss_pending' signal. + + + + + Cached name for the 'instance_exiting' signal. + + + + + Cached name for the 'pose_recentered' signal. + + + + + Cached name for the 'refresh_rate_changed' signal. + + + + + The visibility mask allows us to black out the part of the render result that is invisible due to lens distortion. + As this is rendered first, it prevents fragments with expensive lighting calculations to be processed as they are discarded through z-checking. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An optimized translation, used by default for CSV Translations. Uses real-time compressed translations, which results in very small dictionaries. + + + + + Generates and sets an optimized translation from the given resource. + Note: This method is intended to be used in the editor. It does nothing when called from an exported project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'generate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 which contains common properties and methods associated with this node. + Note: The ID values used for items are limited to 32 bits, not full 64 bits of . This has a range of -2^32 to 2^32 - 1, i.e. -2147483648 to 2147483647. + Note: The and properties are set automatically based on the selected item. They shouldn't be changed manually. + + + + + The index of the currently selected item, or -1 if no item is selected. + + + + + If , minimum size will be determined by the longest item's text, instead of the currently selected one's. + Note: For performance reasons, the minimum size doesn't update immediately when adding, removing or modifying items. + + + + + If , the currently selected item can be selected again. + + + + + The number of items to select from. + + + + + Adds an item, with text and (optionally) . If no is passed, the item index will be used as the item's ID. New items are appended at the end. + + + + + Adds an item, with a icon, text and (optionally) . If no is passed, the item index will be used as the item's ID. New items are appended at the end. + + + + + Sets the text of the item at index . + + + + + Sets the icon of the item at index . + + + + + Sets whether the item at index is disabled. + Disabled items are drawn differently in the dropdown and are not selectable by the user. If the current selected item is set as disabled, it will remain selected. + + + + + Sets the ID of the item at index . + + + + + Sets the metadata of an item. Metadata may be of any type and can be used to store extra information about an item, such as an external string ID. + + + + + Sets the tooltip of the item at index . + + + + + Returns the text of the item at index . + + + + + Returns the icon of the item at index . + + + + + Returns the ID of the item at index . + + + + + Returns the index of the item with the given . + + + + + Retrieves the metadata of an item. Metadata may be any type and can be used to store extra information about an item, such as an external string ID. + + + + + Returns the tooltip of the item at index . + + + + + Returns if the item at index is disabled. + + + + + Returns if the item at index is marked as a separator. + + + + + Adds a separator to the list of items. Separators help to group items, and can optionally be given a header. A separator also gets an index assigned, and is appended at the end of the item list. + + + + + Clears all the items in the . + + + + + Selects an item by index and makes it the current item. This will work even if the item is disabled. + Passing -1 as the index deselects any currently selected item. + + + + + Returns the ID of the selected item, or -1 if no item is selected. + + + + + Gets the metadata of the selected item. Metadata for items can be set using . + + + + + Removes the item at index . + + + + + Returns the contained in this button. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adjusts popup position and sizing for the , then shows the . Prefer this over using get_popup().popup(). + + + + + Returns if this button contains at least one item which is not disabled, or marked as a separator. + + + + + Returns the index of the first item which is not disabled, or marked as a separator. If is , the items will be searched in reverse order. + Returns -1 if no item is found. + + + + + If , shortcuts are disabled and cannot be used to trigger the button. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the current item has been changed by the user. The index of the item selected is passed as argument. + must be enabled to reselect an item. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user navigates to an item using the ProjectSettings.input/ui_up or ProjectSettings.input/ui_down input actions. The index of the item selected is passed as argument. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'selected' property. + + + + + Cached name for the 'fit_to_longest_item' property. + + + + + Cached name for the 'allow_reselect' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_id' method. + + + + + Cached name for the 'set_item_metadata' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_id' method. + + + + + Cached name for the 'get_item_index' method. + + + + + Cached name for the 'get_item_metadata' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'is_item_separator' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'get_selected' method. + + + + + Cached name for the 'get_selected_id' method. + + + + + Cached name for the 'get_selected_metadata' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the '_select_int' method. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'show_popup' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'has_selectable_items' method. + + + + + Cached name for the 'get_selectable_item' method. + + + + + Cached name for the 'set_fit_to_longest_item' method. + + + + + Cached name for the 'is_fit_to_longest_item' method. + + + + + Cached name for the 'set_allow_reselect' method. + + + + + Cached name for the 'get_allow_reselect' method. + + + + + Cached name for the 'set_disable_shortcuts' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'item_selected' signal. + + + + + Cached name for the 'item_focused' signal. + + + + + The is used to create packages that can be loaded into a running project using . + + var packer = new PckPacker(); + packer.PckStart("test.pck"); + packer.AddFile("res://text.txt", "text.txt"); + packer.Flush(); + + The above creates package test.pck, then adds a file named text.txt at the root of the package. + Note: PCK is Godot's own pack file format. To create ZIP archives that can be read by any program, use instead. + + + + + Creates a new PCK file at the file path . The .pck file extension isn't added automatically, so it should be part of (even though it's not required). + + + + + Adds the file to the current PCK package at the internal path. The res:// prefix for is optional and stripped internally. + + + + + Registers a file removal of the internal path to the PCK. This is mainly used for patches. If the file at this path has been loaded from a previous PCK, it will be removed. The res:// prefix for is optional and stripped internally. + + + + + Writes the files specified using all calls since the last flush. If is , a list of files added will be printed to the console for easier debugging. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'pck_start' method. + + + + + Cached name for the 'add_file' method. + + + + + Cached name for the 'add_file_removal' method. + + + + + Cached name for the 'flush' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + can be used to efficiently store data from untyped containers. The data is packed into raw bytes and can be saved to file. Only and 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 , the data can be retrieved by key names (/ only). + + var data = { "key": "value", "another_key": 123, "lock": Vector2() } + var packed = PackedDataContainer.new() + packed.pack(data) + ResourceSaver.save(packed, "packed_data.res") + + + var container = load("packed_data.res") + for key in container: + prints(key, container[key]) + + # Prints: + # key value + # lock (0, 0) + # another_key 123 + + Nested containers will be packed recursively. While iterating, they will be returned as . + + + + + Packs the given container into a binary representation. The must be either or , any other type will result in invalid data error. + Note: Subsequent calls to this method will overwrite the existing data. + + + + + Returns the size of the packed container (see Array.size and Dictionary.size). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '__data__' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'pack' method. + + + + + Cached name for the 'size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + When packing nested containers using , they are recursively packed into (only applies to and ). Their data can be retrieved the same way as from . + + 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 + + + + + + Returns the size of the packed container (see Array.size and Dictionary.size). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PacketPeer is an abstraction and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low-level bytes or having to worry about network ordering. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Maximum buffer size allowed when encoding s. Raise this value to support heavier memory allocations. + The method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the . If the is bigger than , the method will error out with . + + + + + Gets a Variant. If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Sends a as a packet. If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Gets a raw packet. + + + + + Sends a raw packet. + + + + + Sends a raw packet. + + + + + Returns the error state of the last packet received (via and ). + + + + + Returns the number of packets currently available in the ring-buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'encode_buffer_max_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_var' method. + + + + + Cached name for the 'put_var' method. + + + + + Cached name for the 'get_packet' method. + + + + + Cached name for the 'put_packet' method. + + + + + Cached name for the 'get_packet_error' method. + + + + + Cached name for the 'get_available_packet_count' method. + + + + + Cached name for the 'get_encode_buffer_max_size' method. + + + + + Cached name for the 'set_encode_buffer_max_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by . + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period. + + + + + A status representing a that is disconnected. + + + + + A status representing a that is currently performing the handshake with a remote peer. + + + + + A status representing a that is connected to a remote peer. + + + + + A status representing a in a generic error state. + + + + + An error status that shows a mismatch in the DTLS certificate domain presented by the host and the domain requested for validation. + + + + + Poll the connection to check for incoming packets. Call this frequently to update the status and keep the connection working. + + + + + Connects a beginning the DTLS handshake using the underlying which must be connected (see ). You can optionally specify the to be used while verifying the TLS connections. See and . + + + + + Returns the status of the connection. See for values. + + + + + Disconnects this peer, terminating the DTLS session. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'connect_to_peer' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'disconnect_from_peer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_available_packet_count' method. + + + + + Cached name for the '_get_max_packet_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PacketStreamPeer provides a wrapper for working using packets over a stream. This allows for using packet based code with StreamPeers. PacketPeerStream implements a custom protocol over the StreamPeer, so the user should not read or write to the wrapped StreamPeer directly. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The wrapped object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'input_buffer_max_size' property. + + + + + Cached name for the 'output_buffer_max_size' property. + + + + + Cached name for the 'stream_peer' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream_peer' method. + + + + + Cached name for the 'get_stream_peer' method. + + + + + Cached name for the 'set_input_buffer_max_size' method. + + + + + Cached name for the 'set_output_buffer_max_size' method. + + + + + Cached name for the 'get_input_buffer_max_size' method. + + + + + Cached name for the 'get_output_buffer_max_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + UDP packet peer. Can be used to send and receive raw UDP packets as well as s. + Example: Send a packet: + + var peer = PacketPeerUDP.new() + + # Optionally, you can select the local port used to send the packet. + peer.bind(4444) + + peer.set_dest_address("1.1.1.1", 4433) + peer.put_packet("hello".to_utf8_buffer()) + + Example: Listen for packets: + + var peer + + func _ready(): + peer = PacketPeerUDP.new() + peer.bind(4433) + + + func _process(_delta): + if peer.get_available_packet_count() > 0: + var array_bytes = peer.get_packet() + var packet_string = array_bytes.get_string_from_ascii() + print("Received message: ", packet_string) + + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Binds this to the specified and with a buffer size , allowing it to receive incoming packets. + If is set to "*" (default), the peer will be bound on all available addresses (both IPv4 and IPv6). + If is set to "0.0.0.0" (for IPv4) or "::" (for IPv6), the peer will be bound to all available addresses matching that IP type. + If is set to any valid address (e.g. "192.168.1.101", "::1", etc.), the peer will only be bound to the interface with that address (or fail if no interface with the given address exists). + + + + + Closes the 's underlying UDP socket. + + + + + Waits for a packet to arrive on the bound address. See . + Note: can't be interrupted once it has been called. This can be worked around by allowing the other party to send a specific "death pill" packet like this: + + var socket = new PacketPeerUdp(); + // Server + socket.SetDestAddress("127.0.0.1", 789); + socket.PutPacket("Time to stop".ToAsciiBuffer()); + + // Client + while (socket.Wait() == OK) + { + string data = socket.GetPacket().GetStringFromASCII(); + if (data == "Time to stop") + { + return; + } + } + + + + + + Returns whether this is bound to an address and can receive packets. + + + + + Calling this method connects this UDP peer to the given / pair. UDP is in reality connectionless, so this option only means that incoming packets from different addresses are automatically discarded, and that outgoing packets are always sent to the connected address (future calls to are not allowed). This method does not send any data to the remote peer, to do that, use or as usual. See also . + Note: Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like TLS or DTLS if you feel like your application is transferring sensitive information. + + + + + Returns if the UDP socket is open and has been connected to a remote address. See . + + + + + Returns the IP of the remote peer that sent the last packet(that was received with or ). + + + + + Returns the port of the remote peer that sent the last packet(that was received with or ). + + + + + Returns the local port to which this peer is bound. + + + + + Sets the destination address and port for sending packets and variables. A hostname will be resolved using DNS if needed. + Note: must be enabled before sending packets to a broadcast address (e.g. 255.255.255.255). + + + + + Enable or disable sending of broadcast packets (e.g. set_dest_address("255.255.255.255", 4343). This option is disabled by default. + Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission and this option to be enabled to receive broadcast packets too. + + + + + Joins the multicast group specified by using the interface identified by . + You can join the same multicast group with multiple interfaces. Use to know which are available. + Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission for multicast to work. + + + + + Removes the interface identified by from the multicast group specified by . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bind' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'wait' method. + + + + + Cached name for the 'is_bound' method. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'is_socket_connected' method. + + + + + Cached name for the 'get_packet_ip' method. + + + + + Cached name for the 'get_packet_port' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'set_dest_address' method. + + + + + Cached name for the 'set_broadcast_enabled' method. + + + + + Cached name for the 'join_multicast_group' method. + + + + + Cached name for the 'leave_multicast_group' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a GUI control that displays a . See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A container that keeps its child controls within the area of a . Useful for giving controls an outline. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource referenced in a that is used to draw a background. functions similar to skyboxes in other engines, except it uses an equirectangular sky map instead of a . + Using an HDR panorama is strongly recommended for accurate, high-quality reflections. Godot supports the Radiance HDR (.hdr) and OpenEXR (.exr) image formats for this purpose. + You can use this tool to convert a cubemap to an equirectangular sky map. + + + + + to be applied to the . + + + + + A boolean value to determine if the background texture should be filtered or not. + + + + + The sky's overall brightness multiplier. Higher values result in a brighter sky. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'panorama' property. + + + + + Cached name for the 'filter' property. + + + + + Cached name for the 'energy_multiplier' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_panorama' method. + + + + + Cached name for the 'get_panorama' method. + + + + + Cached name for the 'set_filtering_enabled' method. + + + + + Cached name for the 'is_filtering_enabled' method. + + + + + Cached name for the 'set_energy_multiplier' method. + + + + + Cached name for the 'get_energy_multiplier' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A is used to create a parallax effect. It can move at a different speed relative to the camera movement using . This creates an illusion of depth in a 2D game. If manual scrolling is desired, the position can be ignored with . + Note: Any changes to this node's position made after it enters the scene tree will be overridden if is or is modified. + + + + + Multiplier to the final 's offset. Can be used to simulate distance from the camera. + For example, a value of 1 scrolls at the same speed as the camera. A value greater than 1 scrolls faster, making objects appear closer. Less than 1 scrolls slower, making objects appear further, and a value of 0 stops the objects completely. + + + + + The 's offset. Similar to and , but will not be overridden. + Note: Values will loop if is set higher than 0. + + + + + Repeats the of each of this node's children and offsets them by this value. When scrolling, the node's position loops, giving the illusion of an infinite scrolling background if the values are larger than the screen size. If an axis is set to 0, the will not be repeated. + + + + + Velocity at which the offset scrolls automatically, in pixels per second. + + + + + Overrides the amount of times the texture repeats. Each texture copy spreads evenly from the original by . Useful for when zooming out with a camera. + + + + + Top-left limits for scrolling to begin. If the camera is outside of this limit, the stops scrolling. Must be lower than minus the viewport size to work. + + + + + Bottom-right limits for scrolling to end. If the camera is outside of this limit, the will stop scrolling. Must be higher than and the viewport size combined to work. + + + + + If , this is offset by the current camera's position. If the is in a separate from the current camera, it may be desired to match the value with . + + + + + If , 's position is not affected by the position of the camera. + + + + + Offset used to scroll this . This value is updated automatically unless is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_scale' property. + + + + + Cached name for the 'scroll_offset' property. + + + + + Cached name for the 'repeat_size' property. + + + + + Cached name for the 'autoscroll' property. + + + + + Cached name for the 'repeat_times' property. + + + + + Cached name for the 'limit_begin' property. + + + + + Cached name for the 'limit_end' property. + + + + + Cached name for the 'follow_viewport' property. + + + + + Cached name for the 'ignore_camera_scroll' property. + + + + + Cached name for the 'screen_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_scroll_scale' method. + + + + + Cached name for the 'get_scroll_scale' method. + + + + + Cached name for the 'set_repeat_size' method. + + + + + Cached name for the 'get_repeat_size' method. + + + + + Cached name for the 'set_repeat_times' method. + + + + + Cached name for the 'get_repeat_times' method. + + + + + Cached name for the 'set_autoscroll' method. + + + + + Cached name for the 'get_autoscroll' method. + + + + + Cached name for the 'set_scroll_offset' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_screen_offset' method. + + + + + Cached name for the 'get_screen_offset' method. + + + + + Cached name for the 'set_limit_begin' method. + + + + + Cached name for the 'get_limit_begin' method. + + + + + Cached name for the 'set_limit_end' method. + + + + + Cached name for the 'get_limit_end' method. + + + + + Cached name for the 'set_follow_viewport' method. + + + + + Cached name for the 'get_follow_viewport' method. + + + + + Cached name for the 'set_ignore_camera_scroll' method. + + + + + Cached name for the 'is_ignore_camera_scroll' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A ParallaxBackground uses one or more child nodes to create a parallax effect. Each can move at a different speed using . This creates an illusion of depth in a 2D game. If not used with a , you must manually calculate the . + Note: Each is drawn on one specific and cannot be shared between multiple s, see . When using multiple s, for example in a split-screen game, you need create an individual for each you want it to be drawn on. + + + + + The ParallaxBackground's scroll value. Calculated automatically when using a , but can be used to manually manage scrolling when no camera is present. + + + + + The base position offset for all children. + + + + + The base motion scale for all children. + + + + + Top-left limits for scrolling to begin. If the camera is outside of this limit, the background will stop scrolling. Must be lower than to work. + + + + + Bottom-right limits for scrolling to end. If the camera is outside of this limit, the background will stop scrolling. Must be higher than to work. + + + + + If , elements in child aren't affected by the zoom level of the camera. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_offset' property. + + + + + Cached name for the 'scroll_base_offset' property. + + + + + Cached name for the 'scroll_base_scale' property. + + + + + Cached name for the 'scroll_limit_begin' property. + + + + + Cached name for the 'scroll_limit_end' property. + + + + + Cached name for the 'scroll_ignore_camera_zoom' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_scroll_offset' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_scroll_base_offset' method. + + + + + Cached name for the 'get_scroll_base_offset' method. + + + + + Cached name for the 'set_scroll_base_scale' method. + + + + + Cached name for the 'get_scroll_base_scale' method. + + + + + Cached name for the 'set_limit_begin' method. + + + + + Cached name for the 'get_limit_begin' method. + + + + + Cached name for the 'set_limit_end' method. + + + + + Cached name for the 'get_limit_end' method. + + + + + Cached name for the 'set_ignore_camera_zoom' method. + + + + + Cached name for the 'is_ignore_camera_zoom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A ParallaxLayer must be the child of a node. Each ParallaxLayer can be set to move at different speeds relative to the camera movement or the value. + This node's children will be affected by its scroll offset. + Note: Any changes to this node's position and scale made after it enters the scene will be ignored. + + + + + Multiplies the ParallaxLayer's motion. If an axis is set to 0, it will not scroll. + + + + + The ParallaxLayer's offset relative to the parent ParallaxBackground's . + + + + + The interval, in pixels, at which the is drawn repeatedly. Useful for creating an infinitely scrolling background. If an axis is set to 0, the will be drawn only once along that direction. + Note: If you want the repetition to pixel-perfect match a displayed by a child node, you should account for any scale applied to the texture when defining this interval. For example, if you use a child scaled to 0.5 to display a 600x600 texture, and want this sprite to be repeated continuously horizontally, you should set the mirroring to Vector2(300, 0). + Note: If the length of the viewport axis is bigger than twice the repeated axis size, it will not repeat infinitely, as the parallax layer only draws 2 instances of the layer at any given time. The visibility window is calculated from the parent 's position, not the layer's own position. So, if you use mirroring, do not change the position relative to its parent. Instead, if you need to adjust the background's position, set the property in the parent . + Note: Despite the name, the layer will not be mirrored, it will only be repeated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_scale' property. + + + + + Cached name for the 'motion_offset' property. + + + + + Cached name for the 'motion_mirroring' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_motion_scale' method. + + + + + Cached name for the 'get_motion_scale' method. + + + + + Cached name for the 'set_motion_offset' method. + + + + + Cached name for the 'get_motion_offset' method. + + + + + Cached name for the 'set_mirroring' method. + + + + + Cached name for the 'get_mirroring' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + defines particle properties and behavior. It is used in the process_material of the and nodes. Some of this material's properties are applied to each particle when emitted, while others can have a or a applied to vary numerical or color values over the lifetime of the particle. + + + + + Use with , , and to set initial velocity properties. + + + + + Use with , , and to set angular velocity properties. + + + + + Use with , , and to set orbital velocity properties. + + + + + Use with , , and to set linear acceleration properties. + + + + + Use with , , and to set radial acceleration properties. + + + + + Use with , , and to set tangential acceleration properties. + + + + + Use with , , and to set damping properties. + + + + + Use with , , and to set angle properties. + + + + + Use with , , and to set scale properties. + + + + + Use with , , and to set hue variation properties. + + + + + Use with , , and to set animation speed properties. + + + + + Use with , , and to set animation offset properties. + + + + + Use with , , and to set radial velocity properties. + + + + + Use with , , and to set directional velocity properties. + + + + + Use with , , and to set scale over velocity properties. + + + + + Represents the size of the enum. + + + + + Use with and to set the turbulence minimum und maximum influence on each particles velocity. + + + + + Use with and to set the turbulence minimum and maximum displacement of the particles spawn position. + + + + + Use with to set the turbulence influence over the particles life time. + + + + + Use with to set . + + + + + Use with to set . + + + + + Use with to set . + + + + + Represents the size of the enum. + + + + + All particles will be emitted from a single point. + + + + + Particles will be emitted in the volume of a sphere. + + + + + Particles will be emitted on the surface of a sphere. + + + + + Particles will be emitted in the volume of a box. + + + + + Particles will be emitted at a position determined by sampling a random point on the . Particle color will be modulated by . + + + + + Particles will be emitted at a position determined by sampling a random point on the . Particle velocity and rotation will be set based on . Particle color will be modulated by . + + + + + Particles will be emitted in a ring or cylinder. + + + + + Represents the size of the enum. + + + + + Represents the size of the enum. + + + + + No collision for particles. Particles will go through nodes. + + + + + -style collision for particles using nodes. + + + + + Hide particles instantly when colliding with a node. This can be combined with a subemitter that uses the collision mode to "replace" the parent particle with the subemitter on impact. + + + + + Represents the size of the enum. + + + + + Particle lifetime randomness ratio. The equation for the lifetime of a particle is lifetime * (1.0 - randf() * lifetime_randomness). For example, a of 0.4 scales the lifetime between 0.6 to 1.0 of its original value. + + + + + Align Y axis of particle with the direction of its velocity. + + + + + If , particles rotate around Y axis by . + + + + + If , particles will not move on the z axis. + + + + + Changes the behavior of the damping properties from a linear deceleration to a deceleration based on speed percentage. + + + + + The offset for the , in local space. + + + + + The scale of the , in local space. + + + + + Particles will be emitted inside this region. Use constants for values. + + + + + The sphere's radius if is set to . + + + + + The box's extents if is set to . + Note: starts from the center point and applies the X, Y, and Z values in both directions. The size is twice the area of the extents. + + + + + Particles will be emitted at positions determined by sampling this texture at a random position. Used with and . Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar. + + + + + Particle velocity and rotation will be set by sampling this texture at the same point as the . Used only in . Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar. + + + + + Particle color will be modulated by color determined by sampling this texture at the same point as the . + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + The number of emission points if is set to or . + + + + + The axis of the ring when using the emitter . + + + + + The height of the ring when using the emitter . + + + + + The radius of the ring when using the emitter . + + + + + The inner radius of the ring when using the emitter . + + + + + The angle of the cone when using the emitter . The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. + Note: Depending on , the angle may be clamped if the ring's end is reached to form a perfect cone. + + + + + Minimum equivalent of . + + + + + Maximum initial rotation applied to each particle, in degrees. + Only applied when or are or the being used to draw the particle is using . + + + + + Each particle's rotation will be animated along this . + + + + + Percentage of the velocity of the respective or inherited by each particle when spawning. + + + + + A pivot point used to calculate radial and orbital velocity of particles. + + + + + Unit vector specifying the particles' emission direction. + + + + + Each particle's initial direction range from +spread to -spread degrees. + + + + + Amount of along the Y axis. + + + + + Minimum equivalent of . + + + + + Maximum initial velocity magnitude for each particle. Direction comes from and . + + + + + Minimum equivalent of . + + + + + Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. + Only applied when or are or the being used to draw the particle is using . + + + + + Each particle's angular velocity (rotation speed) will vary along this over its lifetime. + + + + + Minimum directional velocity value, which is multiplied by . + Note: Animated velocities will not be affected by damping, use instead. + + + + + Maximum directional velocity value, which is multiplied by . + Note: Animated velocities will not be affected by damping, use instead. + + + + + A curve that specifies the velocity along each of the axes of the particle system along its lifetime. + Note: Animated velocities will not be affected by damping, use instead. + + + + + Minimum equivalent of . + Note: Animated velocities will not be affected by damping, use instead. + + + + + Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second. + Note: Animated velocities will not be affected by damping, use instead. + + + + + Each particle's orbital velocity will vary along this . + Note: For 3D orbital velocity, use a . + Note: Animated velocities will not be affected by damping, use instead. + + + + + Minimum radial velocity applied to each particle. Makes particles move away from the , or toward it if negative. + Note: Animated velocities will not be affected by damping, use instead. + + + + + Maximum radial velocity applied to each particle. Makes particles move away from the , or toward it if negative. + Note: Animated velocities will not be affected by damping, use instead. + + + + + A that defines the velocity over the particle's lifetime away (or toward) the . + Note: Animated velocities will not be affected by damping, use instead. + + + + + A that defines the maximum velocity of a particle during its lifetime. + + + + + Gravity applied to every particle. + + + + + Minimum equivalent of . + + + + + Maximum linear acceleration applied to each particle in the direction of motion. + + + + + Each particle's linear acceleration will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative. + + + + + Each particle's radial acceleration will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion. + + + + + Each particle's tangential acceleration will vary along this . + + + + + Minimum equivalent of . + + + + + The maximum rate at which particles lose velocity. For example value of 100 means that the particle will go from 100 velocity to 0 in 1 second. + + + + + Damping will vary along this . + + + + + If , interaction with particle attractors is enabled. In 3D, attraction only occurs within the area defined by the node's . + + + + + Minimum equivalent of . + + + + + Maximum initial scale applied to each particle. + + + + + Each particle's scale will vary along this over its lifetime. If a is supplied instead, the scale will be separated per-axis. + + + + + Minimum velocity value reference for . + will be interpolated between and . + + + + + Maximum velocity value reference for . + will be interpolated between and . + + + + + Either a or a that scales each particle based on its velocity. + + + + + Each particle's initial color. If the 's texture is defined, it will be multiplied by this color. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's color will vary along this over its lifetime (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's initial color will vary along this (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + The alpha value of each particle's color will be multiplied by this over its lifetime. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's color will be multiplied by this over its lifetime. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Minimum equivalent of . + + + + + Maximum initial hue variation applied to each particle. It will shift the particle color's hue. + + + + + Each particle's hue will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum particle animation speed. Animation speed of 1 means that the particles will make full 0 to 1 offset cycle during lifetime, 2 means 2 cycles etc. + With animation speed greater than 1, remember to enable property if you want the animation to repeat. + + + + + Each particle's animation speed will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum animation offset that corresponds to frame index in the texture. 0 is the first frame, 1 is the last one. See . + + + + + Each particle's animation offset will vary along this . + + + + + If , enables turbulence for the particle system. Turbulence can be used to vary particle movement according to its position (based on a 3D noise pattern). In 3D, with can be used as an alternative to turbulence that works in world space and with multiple particle systems reacting in the same way. + Note: Enabling turbulence has a high performance cost on the GPU. Only enable turbulence on a few particle systems at once at most, and consider disabling it when targeting mobile/web platforms. + + + + + The turbulence noise strength. Increasing this will result in a stronger, more contrasting, flow pattern. + + + + + This value controls the overall scale/frequency of the turbulence noise pattern. + A small scale will result in smaller features with more detail while a high scale will result in smoother noise with larger features. + + + + + A scrolling velocity for the turbulence field. This sets a directional trend for the pattern to move in over time. + The default value of Vector3(0, 0, 0) turns off the scrolling. + + + + + The in-place rate of change of the turbulence field. This defines how quickly the noise pattern varies over time. + A value of 0.0 will result in a fixed pattern. + + + + + Minimum turbulence influence on each particle. + The actual amount of turbulence influence on each particle is calculated as a random value between and and multiplied by the amount of turbulence influence from . + + + + + Maximum turbulence influence on each particle. + The actual amount of turbulence influence on each particle is calculated as a random value between and and multiplied by the amount of turbulence influence from . + + + + + Minimum displacement of each particle's spawn position by the turbulence. + The actual amount of displacement will be a factor of the underlying turbulence multiplied by a random value between and . + + + + + Maximum displacement of each particle's spawn position by the turbulence. + The actual amount of displacement will be a factor of the underlying turbulence multiplied by a random value between and . + + + + + Each particle's amount of turbulence will be influenced along this over its life time. + + + + + The particles' collision mode. + Note: 3D Particles can only collide with nodes, not nodes. To make particles collide with various objects, you can add nodes as children of nodes. In 3D, collisions only occur within the area defined by the node's . + Note: 2D Particles can only collide with nodes, not nodes. + + + + + The particles' friction. Values range from 0 (frictionless) to 1 (maximum friction). Only effective if is . + + + + + The particles' bounciness. Values range from 0 (no bounce) to 1 (full bounciness). Only effective if is . + + + + + If , is multiplied by the particle's effective scale (see , , , and ). + + + + + The particle subemitter mode (see and ). + + + + + The frequency at which particles should be emitted from the subemitter node. One particle will be spawned every seconds. + Note: This value shouldn't exceed or defined on the subemitter node (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired. + + + + + The amount of particles to spawn from the subemitter node when the particle expires. + Note: This value shouldn't exceed or defined on the subemitter node (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired. + + + + + The amount of particles to spawn from the subemitter node when a collision occurs. When combined with on the main particles material, this can be used to achieve effects such as raindrops hitting the ground. + Note: This value shouldn't exceed or defined on the subemitter node (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired. + + + + + If , the subemitter inherits the parent particle's velocity when it spawns. + + + + + Sets the minimum and maximum values of the given . + The x component of the argument vector corresponds to minimum and the y component corresponds to maximum. + + + + + Returns the minimum and maximum values of the given as a vector. + The x component of the returned vector corresponds to minimum and the y component corresponds to maximum. + + + + + Sets the minimum value range for the given parameter. + + + + + Returns the minimum value range for the given parameter. + + + + + Sets the maximum value range for the given parameter. + + + + + Returns the maximum value range for the given parameter. + + + + + Sets the for the specified . + + + + + Returns the used by the specified parameter. + + + + + If , enables the specified particle flag. See for options. + + + + + Returns if the specified particle flag is enabled. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'lifetime_randomness' property. + + + + + Cached name for the 'particle_flag_align_y' property. + + + + + Cached name for the 'particle_flag_rotate_y' property. + + + + + Cached name for the 'particle_flag_disable_z' property. + + + + + Cached name for the 'particle_flag_damping_as_friction' property. + + + + + Cached name for the 'emission_shape_offset' property. + + + + + Cached name for the 'emission_shape_scale' property. + + + + + Cached name for the 'emission_shape' property. + + + + + Cached name for the 'emission_sphere_radius' property. + + + + + Cached name for the 'emission_box_extents' property. + + + + + Cached name for the 'emission_point_texture' property. + + + + + Cached name for the 'emission_normal_texture' property. + + + + + Cached name for the 'emission_color_texture' property. + + + + + Cached name for the 'emission_point_count' property. + + + + + Cached name for the 'emission_ring_axis' property. + + + + + Cached name for the 'emission_ring_height' property. + + + + + Cached name for the 'emission_ring_radius' property. + + + + + Cached name for the 'emission_ring_inner_radius' property. + + + + + Cached name for the 'emission_ring_cone_angle' property. + + + + + Cached name for the 'angle' property. + + + + + Cached name for the 'angle_min' property. + + + + + Cached name for the 'angle_max' property. + + + + + Cached name for the 'angle_curve' property. + + + + + Cached name for the 'inherit_velocity_ratio' property. + + + + + Cached name for the 'velocity_pivot' property. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'flatness' property. + + + + + Cached name for the 'initial_velocity' property. + + + + + Cached name for the 'initial_velocity_min' property. + + + + + Cached name for the 'initial_velocity_max' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'angular_velocity_min' property. + + + + + Cached name for the 'angular_velocity_max' property. + + + + + Cached name for the 'angular_velocity_curve' property. + + + + + Cached name for the 'directional_velocity' property. + + + + + Cached name for the 'directional_velocity_min' property. + + + + + Cached name for the 'directional_velocity_max' property. + + + + + Cached name for the 'directional_velocity_curve' property. + + + + + Cached name for the 'orbit_velocity' property. + + + + + Cached name for the 'orbit_velocity_min' property. + + + + + Cached name for the 'orbit_velocity_max' property. + + + + + Cached name for the 'orbit_velocity_curve' property. + + + + + Cached name for the 'radial_velocity' property. + + + + + Cached name for the 'radial_velocity_min' property. + + + + + Cached name for the 'radial_velocity_max' property. + + + + + Cached name for the 'radial_velocity_curve' property. + + + + + Cached name for the 'velocity_limit_curve' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'linear_accel' property. + + + + + Cached name for the 'linear_accel_min' property. + + + + + Cached name for the 'linear_accel_max' property. + + + + + Cached name for the 'linear_accel_curve' property. + + + + + Cached name for the 'radial_accel' property. + + + + + Cached name for the 'radial_accel_min' property. + + + + + Cached name for the 'radial_accel_max' property. + + + + + Cached name for the 'radial_accel_curve' property. + + + + + Cached name for the 'tangential_accel' property. + + + + + Cached name for the 'tangential_accel_min' property. + + + + + Cached name for the 'tangential_accel_max' property. + + + + + Cached name for the 'tangential_accel_curve' property. + + + + + Cached name for the 'damping' property. + + + + + Cached name for the 'damping_min' property. + + + + + Cached name for the 'damping_max' property. + + + + + Cached name for the 'damping_curve' property. + + + + + Cached name for the 'attractor_interaction_enabled' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'scale_min' property. + + + + + Cached name for the 'scale_max' property. + + + + + Cached name for the 'scale_curve' property. + + + + + Cached name for the 'scale_over_velocity' property. + + + + + Cached name for the 'scale_over_velocity_min' property. + + + + + Cached name for the 'scale_over_velocity_max' property. + + + + + Cached name for the 'scale_over_velocity_curve' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'color_initial_ramp' property. + + + + + Cached name for the 'alpha_curve' property. + + + + + Cached name for the 'emission_curve' property. + + + + + Cached name for the 'hue_variation' property. + + + + + Cached name for the 'hue_variation_min' property. + + + + + Cached name for the 'hue_variation_max' property. + + + + + Cached name for the 'hue_variation_curve' property. + + + + + Cached name for the 'anim_speed' property. + + + + + Cached name for the 'anim_speed_min' property. + + + + + Cached name for the 'anim_speed_max' property. + + + + + Cached name for the 'anim_speed_curve' property. + + + + + Cached name for the 'anim_offset' property. + + + + + Cached name for the 'anim_offset_min' property. + + + + + Cached name for the 'anim_offset_max' property. + + + + + Cached name for the 'anim_offset_curve' property. + + + + + Cached name for the 'turbulence_enabled' property. + + + + + Cached name for the 'turbulence_noise_strength' property. + + + + + Cached name for the 'turbulence_noise_scale' property. + + + + + Cached name for the 'turbulence_noise_speed' property. + + + + + Cached name for the 'turbulence_noise_speed_random' property. + + + + + Cached name for the 'turbulence_influence' property. + + + + + Cached name for the 'turbulence_influence_min' property. + + + + + Cached name for the 'turbulence_influence_max' property. + + + + + Cached name for the 'turbulence_initial_displacement' property. + + + + + Cached name for the 'turbulence_initial_displacement_min' property. + + + + + Cached name for the 'turbulence_initial_displacement_max' property. + + + + + Cached name for the 'turbulence_influence_over_life' property. + + + + + Cached name for the 'collision_mode' property. + + + + + Cached name for the 'collision_friction' property. + + + + + Cached name for the 'collision_bounce' property. + + + + + Cached name for the 'collision_use_scale' property. + + + + + Cached name for the 'sub_emitter_mode' property. + + + + + Cached name for the 'sub_emitter_frequency' property. + + + + + Cached name for the 'sub_emitter_amount_at_end' property. + + + + + Cached name for the 'sub_emitter_amount_at_collision' property. + + + + + Cached name for the 'sub_emitter_keep_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_inherit_velocity_ratio' method. + + + + + Cached name for the 'get_inherit_velocity_ratio' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_flatness' method. + + + + + Cached name for the 'get_flatness' method. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached name for the 'set_param_min' method. + + + + + Cached name for the 'get_param_min' method. + + + + + Cached name for the 'set_param_max' method. + + + + + Cached name for the 'get_param_max' method. + + + + + Cached name for the 'set_param_texture' method. + + + + + Cached name for the 'get_param_texture' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_alpha_curve' method. + + + + + Cached name for the 'get_alpha_curve' method. + + + + + Cached name for the 'set_emission_curve' method. + + + + + Cached name for the 'get_emission_curve' method. + + + + + Cached name for the 'set_color_initial_ramp' method. + + + + + Cached name for the 'get_color_initial_ramp' method. + + + + + Cached name for the 'set_velocity_limit_curve' method. + + + + + Cached name for the 'get_velocity_limit_curve' method. + + + + + Cached name for the 'set_particle_flag' method. + + + + + Cached name for the 'get_particle_flag' method. + + + + + Cached name for the 'set_velocity_pivot' method. + + + + + Cached name for the 'get_velocity_pivot' method. + + + + + Cached name for the 'set_emission_shape' method. + + + + + Cached name for the 'get_emission_shape' method. + + + + + Cached name for the 'set_emission_sphere_radius' method. + + + + + Cached name for the 'get_emission_sphere_radius' method. + + + + + Cached name for the 'set_emission_box_extents' method. + + + + + Cached name for the 'get_emission_box_extents' method. + + + + + Cached name for the 'set_emission_point_texture' method. + + + + + Cached name for the 'get_emission_point_texture' method. + + + + + Cached name for the 'set_emission_normal_texture' method. + + + + + Cached name for the 'get_emission_normal_texture' method. + + + + + Cached name for the 'set_emission_color_texture' method. + + + + + Cached name for the 'get_emission_color_texture' method. + + + + + Cached name for the 'set_emission_point_count' method. + + + + + Cached name for the 'get_emission_point_count' method. + + + + + Cached name for the 'set_emission_ring_axis' method. + + + + + Cached name for the 'get_emission_ring_axis' method. + + + + + Cached name for the 'set_emission_ring_height' method. + + + + + Cached name for the 'get_emission_ring_height' method. + + + + + Cached name for the 'set_emission_ring_radius' method. + + + + + Cached name for the 'get_emission_ring_radius' method. + + + + + Cached name for the 'set_emission_ring_inner_radius' method. + + + + + Cached name for the 'get_emission_ring_inner_radius' method. + + + + + Cached name for the 'set_emission_ring_cone_angle' method. + + + + + Cached name for the 'get_emission_ring_cone_angle' method. + + + + + Cached name for the 'set_emission_shape_offset' method. + + + + + Cached name for the 'get_emission_shape_offset' method. + + + + + Cached name for the 'set_emission_shape_scale' method. + + + + + Cached name for the 'get_emission_shape_scale' method. + + + + + Cached name for the 'get_turbulence_enabled' method. + + + + + Cached name for the 'set_turbulence_enabled' method. + + + + + Cached name for the 'get_turbulence_noise_strength' method. + + + + + Cached name for the 'set_turbulence_noise_strength' method. + + + + + Cached name for the 'get_turbulence_noise_scale' method. + + + + + Cached name for the 'set_turbulence_noise_scale' method. + + + + + Cached name for the 'get_turbulence_noise_speed_random' method. + + + + + Cached name for the 'set_turbulence_noise_speed_random' method. + + + + + Cached name for the 'get_turbulence_noise_speed' method. + + + + + Cached name for the 'set_turbulence_noise_speed' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'set_lifetime_randomness' method. + + + + + Cached name for the 'get_lifetime_randomness' method. + + + + + Cached name for the 'get_sub_emitter_mode' method. + + + + + Cached name for the 'set_sub_emitter_mode' method. + + + + + Cached name for the 'get_sub_emitter_frequency' method. + + + + + Cached name for the 'set_sub_emitter_frequency' method. + + + + + Cached name for the 'get_sub_emitter_amount_at_end' method. + + + + + Cached name for the 'set_sub_emitter_amount_at_end' method. + + + + + Cached name for the 'get_sub_emitter_amount_at_collision' method. + + + + + Cached name for the 'set_sub_emitter_amount_at_collision' method. + + + + + Cached name for the 'get_sub_emitter_keep_velocity' method. + + + + + Cached name for the 'set_sub_emitter_keep_velocity' method. + + + + + Cached name for the 'set_attractor_interaction_enabled' method. + + + + + Cached name for the 'is_attractor_interaction_enabled' method. + + + + + Cached name for the 'set_collision_mode' method. + + + + + Cached name for the 'get_collision_mode' method. + + + + + Cached name for the 'set_collision_use_scale' method. + + + + + Cached name for the 'is_collision_using_scale' method. + + + + + Cached name for the 'set_collision_friction' method. + + + + + Cached name for the 'get_collision_friction' method. + + + + + Cached name for the 'set_collision_bounce' method. + + + + + Cached name for the 'get_collision_bounce' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Can have child nodes moving along the . See for more information on usage. + Note: The path is considered as relative to the moved nodes (children of ). As such, the curve should usually start with a zero vector ((0, 0)). + + + + + A describing the path. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Can have child nodes moving along the . See for more information on the usage. + Note that the path is considered as relative to the moved nodes (children of ). As such, the curve should usually start with a zero vector (0, 0, 0). + + + + + A describing the path. + + + + + Emitted when the changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'curve_changed' signal. + + + + + This node takes its parent , 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 in this node. + + + + + The distance along the path, in pixels. Changing this value sets this node's position to a point within the path. + + + + + The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the progress within the path, as the offset supplied is multiplied internally by the path's length. + It can be set or get only if the is the child of a which is part of the scene tree, and that this has a with a non-zero length. Otherwise, trying to set this field will print an error, and getting this field will return 0.0. + + + + + The node's offset along the curve. + + + + + The node's offset perpendicular to the curve. + + + + + If , this node rotates to follow the path, with the +X direction facing forward on the path. + + + + + If , the position between two cached points is interpolated cubically, and linearly otherwise. + The points along the of the are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough. + There are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations. + + + + + If , any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'progress' property. + + + + + Cached name for the 'progress_ratio' property. + + + + + Cached name for the 'h_offset' property. + + + + + Cached name for the 'v_offset' property. + + + + + Cached name for the 'rotates' property. + + + + + Cached name for the 'cubic_interp' property. + + + + + Cached name for the 'loop' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_progress' method. + + + + + Cached name for the 'get_progress' method. + + + + + Cached name for the 'set_h_offset' method. + + + + + Cached name for the 'get_h_offset' method. + + + + + Cached name for the 'set_v_offset' method. + + + + + Cached name for the 'get_v_offset' method. + + + + + Cached name for the 'set_progress_ratio' method. + + + + + Cached name for the 'get_progress_ratio' method. + + + + + Cached name for the 'set_rotates' method. + + + + + Cached name for the 'is_rotating' method. + + + + + Cached name for the 'set_cubic_interpolation' method. + + + + + Cached name for the 'get_cubic_interpolation' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node takes its parent , 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 in this node. + + + + + Forbids the PathFollow3D to rotate. + + + + + Allows the PathFollow3D to rotate in the Y axis only. + + + + + Allows the PathFollow3D to rotate in both the X, and Y axes. + + + + + Allows the PathFollow3D to rotate in any axis. + + + + + Uses the up vector information in a to enforce orientation. This rotation mode requires the 's property to be set to . + + + + + The distance from the first vertex, measured in 3D units along the path. Changing this value sets this node's position to a point within the path. + + + + + The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the progress within the path, as the progress supplied is multiplied internally by the path's length. + It can be set or get only if the is the child of a which is part of the scene tree, and that this has a with a non-zero length. Otherwise, trying to set this field will print an error, and getting this field will return 0.0. + + + + + The node's offset along the curve. + + + + + The node's offset perpendicular to the curve. + + + + + Allows or forbids rotation on one or more axes, depending on the constants being used. + + + + + If , the node moves on the travel path with orienting the +Z axis as forward. See also Vector3.FORWARD and Vector3.MODEL_FRONT. + + + + + If , the position between two cached points is interpolated cubically, and linearly otherwise. + The points along the of the are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough. + There are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations. + + + + + If , any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths. + + + + + If , the tilt property of takes effect. + + + + + Correct the . implicitly specifies how posture (forward, up and sideway direction) is calculated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'progress' property. + + + + + Cached name for the 'progress_ratio' property. + + + + + Cached name for the 'h_offset' property. + + + + + Cached name for the 'v_offset' property. + + + + + Cached name for the 'rotation_mode' property. + + + + + Cached name for the 'use_model_front' property. + + + + + Cached name for the 'cubic_interp' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'tilt_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_progress' method. + + + + + Cached name for the 'get_progress' method. + + + + + Cached name for the 'set_h_offset' method. + + + + + Cached name for the 'get_h_offset' method. + + + + + Cached name for the 'set_v_offset' method. + + + + + Cached name for the 'get_v_offset' method. + + + + + Cached name for the 'set_progress_ratio' method. + + + + + Cached name for the 'get_progress_ratio' method. + + + + + Cached name for the 'set_rotation_mode' method. + + + + + Cached name for the 'get_rotation_mode' method. + + + + + Cached name for the 'set_cubic_interpolation' method. + + + + + Cached name for the 'get_cubic_interpolation' method. + + + + + Cached name for the 'set_use_model_front' method. + + + + + Cached name for the 'is_using_model_front' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_tilt_enabled' method. + + + + + Cached name for the 'is_tilt_enabled' method. + + + + + Cached name for the 'correct_posture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the Monitor tab in the editor's Debugger panel. By using the method of this class, you can access this data from your code. + You can add custom monitors using the method. Custom monitors are available in Monitor tab in the editor's Debugger panel together with built-in monitors. + Note: Some of the built-in monitors are only available in debug mode and will always return 0 when used in a project exported in release mode. + Note: Some of the built-in monitors are not updated in real-time for performance reasons, so there may be a delay of up to 1 second between changes. + Note: Custom monitors do not support negative values. Negative values are clamped to 0. + + + + + The number of frames rendered in the last second. This metric is only updated once per second, even if queried more often. Higher is better. + + + + + Time it took to complete one frame, in seconds. Lower is better. + + + + + Time it took to complete one physics frame, in seconds. Lower is better. + + + + + Time it took to complete one navigation step, in seconds. This includes navigation map updates as well as agent avoidance calculations. Lower is better. + + + + + Static memory currently used, in bytes. Not available in release builds. Lower is better. + + + + + Available static memory. Not available in release builds. Lower is better. + + + + + Largest amount of memory the message queue buffer has used, in bytes. The message queue is used for deferred functions calls and notifications. Lower is better. + + + + + Number of objects currently instantiated (including nodes). Lower is better. + + + + + Number of resources currently used. Lower is better. + + + + + Number of nodes currently instantiated in the scene tree. This also includes the root node. Lower is better. + + + + + Number of orphan nodes, i.e. nodes which are not parented to a node of the scene tree. Lower is better. + + + + + 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). Lower is better. + + + + + 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). Lower is better. + + + + + 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. Lower is better. + + + + + 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 and . Lower is better. + + + + + The amount of texture memory used (in bytes). Lower is better. + + + + + The amount of render buffer memory used (in bytes). Lower is better. + + + + + Number of active nodes in the game. Lower is better. + + + + + Number of collision pairs in the 2D physics engine. Lower is better. + + + + + Number of islands in the 2D physics engine. Lower is better. + + + + + Number of active and nodes in the game. Lower is better. + + + + + Number of collision pairs in the 3D physics engine. Lower is better. + + + + + Number of islands in the 3D physics engine. Lower is better. + + + + + Output latency of the . Equivalent to calling , it is not recommended to call this every frame. + + + + + Number of active navigation maps in the . This also includes the two empty default navigation maps created by World2D and World3D. + + + + + Number of active navigation regions in the . + + + + + Number of active navigation agents processing avoidance in the . + + + + + Number of active navigation links in the . + + + + + Number of navigation mesh polygons in the . + + + + + Number of navigation mesh polygon edges in the . + + + + + Number of navigation mesh polygon edges that were merged due to edge key overlap in the . + + + + + Number of polygon edges that are considered connected by edge proximity . + + + + + Number of navigation mesh polygon edges that could not be merged in the . The edges still may be connected by edge proximity or with links. + + + + + Number of active navigation obstacles in the . + + + + + Number of pipeline compilations that were triggered by the 2D canvas renderer. + + + + + Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading an scene the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever. + + + + + Represents the size of the enum. + + + + + Returns the value of one of the available built-in monitors. You should provide one of the constants as the argument, like this: + + GD.Print(Performance.GetMonitor(Performance.Monitor.TimeFps)); // Prints the FPS to the console. + + See to query custom performance monitors' values. + + + + + Adds a custom monitor with the name . You can specify the category of the monitor using slash delimiters in (for example: "Game/NumberOfNPCs"). If there is more than one slash delimiter, then the default category is used. The default category is "Custom". Prints an error if given is already present. + + public override void _Ready() + { + var monitorValue = new Callable(this, MethodName.GetMonitorValue); + + // Adds monitor with name "MyName" to category "MyCategory". + Performance.AddCustomMonitor("MyCategory/MyMonitor", monitorValue); + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyCategory/MyMonitor" and "MyMonitor" have same name but different ids so the code is valid. + Performance.AddCustomMonitor("MyMonitor", monitorValue); + + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyMonitor" and "Custom/MyMonitor" have same name and same category but different ids so the code is valid. + Performance.AddCustomMonitor("Custom/MyMonitor", monitorValue); + + // Adds monitor with name "MyCategoryOne/MyCategoryTwo/MyMonitor" to category "Custom". + Performance.AddCustomMonitor("MyCategoryOne/MyCategoryTwo/MyMonitor", monitorValue); + } + + public int GetMonitorValue() + { + return GD.Randi() % 25; + } + + The debugger calls the callable to get the value of custom monitor. The callable must return a zero or positive integer or floating-point number. + Callables are called with arguments supplied in argument array. + + + + + Removes the custom monitor with given . Prints an error if the given is already absent. + + + + + Returns if custom monitor with the given is present, otherwise. + + + + + Returns the value of custom monitor with given . The callable is called to get the value of custom monitor. See also . Prints an error if the given is absent. + + + + + Returns the last tick in which custom monitor was added/removed (in microseconds since the engine started). This is set to when the monitor is updated. + + + + + Returns the names of active custom monitors in an . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_monitor' method. + + + + + Cached name for the 'add_custom_monitor' method. + + + + + Cached name for the 'remove_custom_monitor' method. + + + + + Cached name for the 'has_custom_monitor' method. + + + + + Cached name for the 'get_custom_monitor' method. + + + + + Cached name for the 'get_monitor_modification_time' method. + + + + + Cached name for the 'get_custom_monitor_names' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the Monitor tab in the editor's Debugger panel. By using the method of this class, you can access this data from your code. + You can add custom monitors using the method. Custom monitors are available in Monitor tab in the editor's Debugger panel together with built-in monitors. + Note: Some of the built-in monitors are only available in debug mode and will always return 0 when used in a project exported in release mode. + Note: Some of the built-in monitors are not updated in real-time for performance reasons, so there may be a delay of up to 1 second between changes. + Note: Custom monitors do not support negative values. Negative values are clamped to 0. + + + + + Returns the value of one of the available built-in monitors. You should provide one of the constants as the argument, like this: + + GD.Print(Performance.GetMonitor(Performance.Monitor.TimeFps)); // Prints the FPS to the console. + + See to query custom performance monitors' values. + + + + + Adds a custom monitor with the name . You can specify the category of the monitor using slash delimiters in (for example: "Game/NumberOfNPCs"). If there is more than one slash delimiter, then the default category is used. The default category is "Custom". Prints an error if given is already present. + + public override void _Ready() + { + var monitorValue = new Callable(this, MethodName.GetMonitorValue); + + // Adds monitor with name "MyName" to category "MyCategory". + Performance.AddCustomMonitor("MyCategory/MyMonitor", monitorValue); + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyCategory/MyMonitor" and "MyMonitor" have same name but different ids so the code is valid. + Performance.AddCustomMonitor("MyMonitor", monitorValue); + + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyMonitor" and "Custom/MyMonitor" have same name and same category but different ids so the code is valid. + Performance.AddCustomMonitor("Custom/MyMonitor", monitorValue); + + // Adds monitor with name "MyCategoryOne/MyCategoryTwo/MyMonitor" to category "Custom". + Performance.AddCustomMonitor("MyCategoryOne/MyCategoryTwo/MyMonitor", monitorValue); + } + + public int GetMonitorValue() + { + return GD.Randi() % 25; + } + + The debugger calls the callable to get the value of custom monitor. The callable must return a zero or positive integer or floating-point number. + Callables are called with arguments supplied in argument array. + + + + + Removes the custom monitor with given . Prints an error if the given is already absent. + + + + + Returns if custom monitor with the given is present, otherwise. + + + + + Returns the value of custom monitor with given . The callable is called to get the value of custom monitor. See also . Prints an error if the given is absent. + + + + + Returns the last tick in which custom monitor was added/removed (in microseconds since the engine started). This is set to when the monitor is updated. + + + + + Returns the names of active custom monitors in an . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_monitor' method. + + + + + Cached name for the 'add_custom_monitor' method. + + + + + Cached name for the 'remove_custom_monitor' method. + + + + + Cached name for the 'has_custom_monitor' method. + + + + + Cached name for the 'get_custom_monitor' method. + + + + + Cached name for the 'get_monitor_modification_time' method. + + + + + Cached name for the 'get_custom_monitor_names' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is a -based node that can be used to make s in a react to physics. + Note: To make the s visually follow the node, use a modification on the parent. + Note: The node does not automatically create a node to keep nodes together. They must be created manually. For most cases, you want to use a node. The node will automatically configure the node once it's been added as a child node. + + + + + The to the that this should simulate. + + + + + The index of the that this should simulate. + + + + + If , the will automatically configure the first child node. The automatic configuration is limited to setting up the node properties and positioning the . + + + + + If , the will start simulating using physics. If , the will follow the transform of the node. + Note: To have the s visually follow the , use a modification on the node with the nodes. + + + + + If , the will keep the transform of the bone it is bound to when simulating physics. + + + + + Returns the first child node, if one exists. This is mainly a helper function to make it easier to get the that the is autoconfiguring. + + + + + Returns a boolean that indicates whether the is running and simulating using the Godot 2D physics engine. When , the PhysicalBone2D node is using physics. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bone2d_nodepath' property. + + + + + Cached name for the 'bone2d_index' property. + + + + + Cached name for the 'auto_configure_joint' property. + + + + + Cached name for the 'simulate_physics' property. + + + + + Cached name for the 'follow_bone_when_simulating' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_joint' method. + + + + + Cached name for the 'get_auto_configure_joint' method. + + + + + Cached name for the 'set_auto_configure_joint' method. + + + + + Cached name for the 'set_simulate_physics' method. + + + + + Cached name for the 'get_simulate_physics' method. + + + + + Cached name for the 'is_simulating_physics' method. + + + + + Cached name for the 'set_bone2d_nodepath' method. + + + + + Cached name for the 'get_bone2d_nodepath' method. + + + + + Cached name for the 'set_bone2d_index' method. + + + + + Cached name for the 'get_bone2d_index' method. + + + + + Cached name for the 'set_follow_bone_when_simulating' method. + + + + + Cached name for the 'get_follow_bone_when_simulating' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is a physics body that can be used to make bones in a react to physics. + Note: In order to detect physical bones with raycasts, the property of the parent must be and the 's bone must be assigned to correctly; it means that should return a valid id (>= 0). + + + + + In this mode, the body's damping value is added to any value set in areas or the default value. + + + + + In this mode, the body's damping value replaces any value set in areas or the default value. + + + + + No joint is applied to the PhysicsBone3D. + + + + + A pin joint is applied to the PhysicsBone3D. + + + + + A cone joint is applied to the PhysicsBone3D. + + + + + A hinge joint is applied to the PhysicsBone3D. + + + + + A slider joint is applied to the PhysicsBone3D. + + + + + A 6 degrees of freedom joint is applied to the PhysicsBone3D. + + + + + Sets the joint type. See for possible values. + + + + + Sets the joint's transform. + + + + + Sets the joint's rotation in radians. + + + + + Sets the body's transform. + + + + + The body's mass. + + + + + The body's friction, from 0 (frictionless) to 1 (max friction). + + + + + The body's bounciness. Values range from 0 (no bounce) to 1 (full bounciness). + Note: Even with set to 1.0, some energy will be lost over time due to linear and angular damping. To have a that preserves all its energy over time, set to 1.0, to , to 0.0, to , and to 0.0. + + + + + This is multiplied by ProjectSettings.physics/3d/default_gravity to produce this body's gravity. For example, a value of 1.0 will apply normal gravity, 2.0 will apply double the gravity, and 0.5 will apply half the gravity to this body. + + + + + If , the standard force integration (like gravity or damping) will be disabled for this body. Other than collision response, the body will only move as determined by the method, if that virtual method is overridden. + Setting this property will call the method internally. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's movement. By default, the body will use ProjectSettings.physics/3d/default_linear_damp or any value override set by an the body is in. Depending on , may be added to or replace the body's damping value. + See ProjectSettings.physics/3d/default_linear_damp for more details about damping. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's rotation. By default, the body will use the ProjectSettings.physics/3d/default_angular_damp project setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/3d/default_angular_damp for more details about damping. + + + + + The body's linear velocity in units per second. Can be used sporadically, but don't set this every frame, because physics may run in another thread and runs at a different granularity. Use as your process loop for precise control of the body state. + + + + + The PhysicalBone3D's rotational velocity in radians per second. + + + + + If , the body is deactivated when there is no movement, so it will not take part in the simulation until it is awakened by an external force. + + + + + Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it is called before the standard force integration, but the property allows you to disable the standard force integration and do fully custom force integration for a body. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_integrate_forces" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the PhysicsBone3D. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_integrate_forces" functions otherwise). + is the offset from the PhysicsBone3D origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Returns if the PhysicsBone3D is allowed to simulate physics. + + + + + Returns if the PhysicsBone3D is currently simulating physics. + + + + + Returns the unique identifier of the PhysicsBone3D. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'joint_type' property. + + + + + Cached name for the 'joint_offset' property. + + + + + Cached name for the 'joint_rotation' property. + + + + + Cached name for the 'body_offset' property. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'friction' property. + + + + + Cached name for the 'bounce' property. + + + + + Cached name for the 'gravity_scale' property. + + + + + Cached name for the 'custom_integrator' property. + + + + + Cached name for the 'linear_damp_mode' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_damp_mode' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'can_sleep' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'set_joint_type' method. + + + + + Cached name for the 'get_joint_type' method. + + + + + Cached name for the 'set_joint_offset' method. + + + + + Cached name for the 'get_joint_offset' method. + + + + + Cached name for the 'set_joint_rotation' method. + + + + + Cached name for the 'get_joint_rotation' method. + + + + + Cached name for the 'set_body_offset' method. + + + + + Cached name for the 'get_body_offset' method. + + + + + Cached name for the 'get_simulate_physics' method. + + + + + Cached name for the 'is_simulating_physics' method. + + + + + Cached name for the 'get_bone_id' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_friction' method. + + + + + Cached name for the 'get_friction' method. + + + + + Cached name for the 'set_bounce' method. + + + + + Cached name for the 'get_bounce' method. + + + + + Cached name for the 'set_gravity_scale' method. + + + + + Cached name for the 'get_gravity_scale' method. + + + + + Cached name for the 'set_linear_damp_mode' method. + + + + + Cached name for the 'get_linear_damp_mode' method. + + + + + Cached name for the 'set_angular_damp_mode' method. + + + + + Cached name for the 'get_angular_damp_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_use_custom_integrator' method. + + + + + Cached name for the 'is_using_custom_integrator' method. + + + + + Cached name for the 'set_can_sleep' method. + + + + + Cached name for the 'is_able_to_sleep' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node that can be the parent of and can apply the simulation results to . + + + + + Returns a boolean that indicates whether the is running and simulating. + + + + + Tells the nodes in the Skeleton to stop simulating. + + + + + Tells the nodes in the Skeleton to start simulating and reacting to the physics world. + Optionally, a list of bone names can be passed-in, allowing only the passed-in bones to be simulated. + + + + + Adds a collision exception to the physical bone. + Works just like the node. + + + + + Removes a collision exception to the physical bone. + Works just like the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_simulating_physics' method. + + + + + Cached name for the 'physical_bones_stop_simulation' method. + + + + + Cached name for the 'physical_bones_start_simulation' method. + + + + + Cached name for the 'physical_bones_add_collision_exception' method. + + + + + Cached name for the 'physical_bones_remove_collision_exception' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The uses the Preetham analytic daylight model to draw a sky based on physical properties. This results in a substantially more realistic sky than the , but it is slightly slower and less flexible. + The only supports one sun. The color, energy, and direction of the sun are taken from the first in the scene tree. + + + + + Controls the strength of the Rayleigh scattering. Rayleigh scattering results from light colliding with small particles. It is responsible for the blue color of the sky. + + + + + Controls the of the Rayleigh scattering. While not physically accurate, this allows for the creation of alien-looking planets. For example, setting this to a red results in a Mars-looking atmosphere with a corresponding blue sunset. + + + + + Controls the strength of Mie scattering for the sky. Mie scattering results from light colliding with larger particles (like water). On earth, Mie scattering results in a whitish color around the sun and horizon. + + + + + Controls the direction of the Mie scattering. A value of 1 means that when light hits a particle it's passing through straight forward. A value of -1 means that all light is scatter backwards. + + + + + Controls the of the Mie scattering effect. While not physically accurate, this allows for the creation of alien-looking planets. + + + + + Sets the thickness of the atmosphere. High turbidity creates a foggy-looking atmosphere, while a low turbidity results in a clearer atmosphere. + + + + + Sets the size of the sun disk. Default value is based on Sol's perceived size from Earth. + + + + + Modulates the on the bottom half of the sky to represent the ground. + + + + + The sky's overall brightness multiplier. Higher values result in a brighter sky. + + + + + If , enables debanding. Debanding adds a small amount of noise which helps reduce banding that appears from the smooth changes in color in the sky. + + + + + for the night sky. This is added to the sky, so if it is bright enough, it may be visible during the day. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'rayleigh_coefficient' property. + + + + + Cached name for the 'rayleigh_color' property. + + + + + Cached name for the 'mie_coefficient' property. + + + + + Cached name for the 'mie_eccentricity' property. + + + + + Cached name for the 'mie_color' property. + + + + + Cached name for the 'turbidity' property. + + + + + Cached name for the 'sun_disk_scale' property. + + + + + Cached name for the 'ground_color' property. + + + + + Cached name for the 'energy_multiplier' property. + + + + + Cached name for the 'use_debanding' property. + + + + + Cached name for the 'night_sky' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rayleigh_coefficient' method. + + + + + Cached name for the 'get_rayleigh_coefficient' method. + + + + + Cached name for the 'set_rayleigh_color' method. + + + + + Cached name for the 'get_rayleigh_color' method. + + + + + Cached name for the 'set_mie_coefficient' method. + + + + + Cached name for the 'get_mie_coefficient' method. + + + + + Cached name for the 'set_mie_eccentricity' method. + + + + + Cached name for the 'get_mie_eccentricity' method. + + + + + Cached name for the 'set_mie_color' method. + + + + + Cached name for the 'get_mie_color' method. + + + + + Cached name for the 'set_turbidity' method. + + + + + Cached name for the 'get_turbidity' method. + + + + + Cached name for the 'set_sun_disk_scale' method. + + + + + Cached name for the 'get_sun_disk_scale' method. + + + + + Cached name for the 'set_ground_color' method. + + + + + Cached name for the 'get_ground_color' method. + + + + + Cached name for the 'set_energy_multiplier' method. + + + + + Cached name for the 'get_energy_multiplier' method. + + + + + Cached name for the 'set_use_debanding' method. + + + + + Cached name for the 'get_use_debanding' method. + + + + + Cached name for the 'set_night_sky' method. + + + + + Cached name for the 'get_night_sky' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for 2D game objects affected by physics. All 2D physics bodies inherit from it. + + + + + Moves the body along the vector . In order to be frame rate independent in or , should be computed using delta. + Returns a , which contains information about the collision when stopped, or when touching another body along the motion. + If is , the body does not move but the would-be collision information is given. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + + + + + Checks for collisions without moving the body. In order to be frame rate independent in or , should be computed using delta. + Virtually sets the node's position, scale and rotation to that of the given , then tries to move the body along the vector . Returns if a collision would stop the body from moving along the whole path. + is an optional object of type , which contains additional information about the collision when stopped, or when touching another body along the motion. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would touch any other bodies. + + + + + Returns the gravity vector computed from all sources that can affect the body, including all gravity overrides from nodes and the global world gravity. + + + + + Returns an array of nodes that were added as collision exceptions for this body. + + + + + Adds a body to the list of bodies that this body can't collide with. + + + + + Removes a body from the list of bodies that this body can't collide with. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_collide' method. + + + + + Cached name for the 'test_move' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'get_collision_exceptions' method. + + + + + Cached name for the 'add_collision_exception_with' method. + + + + + Cached name for the 'remove_collision_exception_with' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for 3D game objects affected by physics. All 3D physics bodies inherit from it. + Warning: With a non-uniform scale, this node will likely not behave as expected. It is advised to keep its scale the same on all axes and adjust its collision shape(s) instead. + + + + + Lock the body's linear movement in the X axis. + + + + + Lock the body's linear movement in the Y axis. + + + + + Lock the body's linear movement in the Z axis. + + + + + Lock the body's rotation in the X axis. + + + + + Lock the body's rotation in the Y axis. + + + + + Lock the body's rotation in the Z axis. + + + + + Moves the body along the vector . In order to be frame rate independent in or , should be computed using delta. + The body will stop if it collides. Returns a , which contains information about the collision when stopped, or when touching another body along the motion. + If is , the body does not move but the would-be collision information is given. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + allows to retrieve more than one collision result. + + + + + Checks for collisions without moving the body. In order to be frame rate independent in or , should be computed using delta. + Virtually sets the node's position, scale and rotation to that of the given , then tries to move the body along the vector . Returns if a collision would stop the body from moving along the whole path. + is an optional object of type , which contains additional information about the collision when stopped, or when touching another body along the motion. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would touch any other bodies. + allows to retrieve more than one collision result. + + + + + Returns the gravity vector computed from all sources that can affect the body, including all gravity overrides from nodes and the global world gravity. + + + + + Locks or unlocks the specified linear or rotational depending on the value of . + + + + + Returns if the specified linear or rotational is locked. + + + + + Returns an array of nodes that were added as collision exceptions for this body. + + + + + Adds a body to the list of bodies that this body can't collide with. + + + + + Removes a body from the list of bodies that this body can't collide with. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'axis_lock_linear_x' property. + + + + + Cached name for the 'axis_lock_linear_y' property. + + + + + Cached name for the 'axis_lock_linear_z' property. + + + + + Cached name for the 'axis_lock_angular_x' property. + + + + + Cached name for the 'axis_lock_angular_y' property. + + + + + Cached name for the 'axis_lock_angular_z' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_collide' method. + + + + + Cached name for the 'test_move' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_axis_lock' method. + + + + + Cached name for the 'get_axis_lock' method. + + + + + Cached name for the 'get_collision_exceptions' method. + + + + + Cached name for the 'add_collision_exception_with' method. + + + + + Cached name for the 'remove_collision_exception_with' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics body in the , allowing safe changes to physics properties. This object is passed via the direct state callback of , and is intended for changing the direct state of that body. See . + + + + + The timestep (delta) used for the simulation. + + + + + The inverse of the mass of the body. + + + + + The inverse of the inertia of the body. + + + + + The rate at which the body stops rotating, if there are not any other forces moving it. + + + + + The rate at which the body stops moving, if there are not any other forces moving it. + + + + + The total gravity vector being currently applied to this body. + + + + + The body's center of mass position relative to the body's center in the global coordinate system. + + + + + The body's center of mass position in the body's local coordinate system. + + + + + The body's rotational velocity in radians per second. + + + + + The body's linear velocity in pixels per second. + + + + + If , this body is currently sleeping (not active). + + + + + The body's transformation matrix. + + + + + Returns the body's velocity at the given relative position, including both translation and rotation. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = 0. + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the number of contacts this body has with other bodies. + Note: By default, this returns 0 unless bodies are configured to monitor contacts. See . + + + + + Returns the position of the contact point on the body in the global coordinate system. + + + + + Returns the local normal at the contact point. + + + + + Returns the local shape index of the collision. + + + + + Returns the velocity vector at the body's contact point. + + + + + Returns the collider's . + + + + + Returns the position of the contact point on the collider in the global coordinate system. + + + + + Returns the collider's object id. + + + + + Returns the collider object. This depends on how it was created (will return a scene node if such was used to create it). + + + + + Returns the collider's shape index. + + + + + Returns the velocity vector at the collider's contact point. + + + + + Returns the impulse created by the contact. + + + + + Updates the body's linear and angular velocity by applying gravity and damping for the equivalent of one physics tick. + + + + + Returns the current state of the space, useful for queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'inverse_mass' property. + + + + + Cached name for the 'inverse_inertia' property. + + + + + Cached name for the 'total_angular_damp' property. + + + + + Cached name for the 'total_linear_damp' property. + + + + + Cached name for the 'total_gravity' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'center_of_mass_local' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'transform' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_total_gravity' method. + + + + + Cached name for the 'get_total_linear_damp' method. + + + + + Cached name for the 'get_total_angular_damp' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass_local' method. + + + + + Cached name for the 'get_inverse_mass' method. + + + + + Cached name for the 'get_inverse_inertia' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_velocity_at_local_position' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleep_state' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'get_contact_local_position' method. + + + + + Cached name for the 'get_contact_local_normal' method. + + + + + Cached name for the 'get_contact_local_shape' method. + + + + + Cached name for the 'get_contact_local_velocity_at_position' method. + + + + + Cached name for the 'get_contact_collider' method. + + + + + Cached name for the 'get_contact_collider_position' method. + + + + + Cached name for the 'get_contact_collider_id' method. + + + + + Cached name for the 'get_contact_collider_object' method. + + + + + Cached name for the 'get_contact_collider_shape' method. + + + + + Cached name for the 'get_contact_collider_velocity_at_position' method. + + + + + Cached name for the 'get_contact_impulse' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'integrate_forces' method. + + + + + Cached name for the 'get_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective setter. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective setter. + + + + + Implement to override the behavior of and its respective setter. + + + + + Implement to override the behavior of and its respective setter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_constant_central_force' method. + + + + + Cached name for the '_add_constant_force' method. + + + + + Cached name for the '_add_constant_torque' method. + + + + + Cached name for the '_apply_central_force' method. + + + + + Cached name for the '_apply_central_impulse' method. + + + + + Cached name for the '_apply_force' method. + + + + + Cached name for the '_apply_impulse' method. + + + + + Cached name for the '_apply_torque' method. + + + + + Cached name for the '_apply_torque_impulse' method. + + + + + Cached name for the '_get_angular_velocity' method. + + + + + Cached name for the '_get_center_of_mass' method. + + + + + Cached name for the '_get_center_of_mass_local' method. + + + + + Cached name for the '_get_constant_force' method. + + + + + Cached name for the '_get_constant_torque' method. + + + + + Cached name for the '_get_contact_collider' method. + + + + + Cached name for the '_get_contact_collider_id' method. + + + + + Cached name for the '_get_contact_collider_object' method. + + + + + Cached name for the '_get_contact_collider_position' method. + + + + + Cached name for the '_get_contact_collider_shape' method. + + + + + Cached name for the '_get_contact_collider_velocity_at_position' method. + + + + + Cached name for the '_get_contact_count' method. + + + + + Cached name for the '_get_contact_impulse' method. + + + + + Cached name for the '_get_contact_local_normal' method. + + + + + Cached name for the '_get_contact_local_position' method. + + + + + Cached name for the '_get_contact_local_shape' method. + + + + + Cached name for the '_get_contact_local_velocity_at_position' method. + + + + + Cached name for the '_get_inverse_inertia' method. + + + + + Cached name for the '_get_inverse_mass' method. + + + + + Cached name for the '_get_linear_velocity' method. + + + + + Cached name for the '_get_space_state' method. + + + + + Cached name for the '_get_step' method. + + + + + Cached name for the '_get_total_angular_damp' method. + + + + + Cached name for the '_get_total_gravity' method. + + + + + Cached name for the '_get_total_linear_damp' method. + + + + + Cached name for the '_get_transform' method. + + + + + Cached name for the '_get_velocity_at_local_position' method. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the '_is_sleeping' method. + + + + + Cached name for the '_set_angular_velocity' method. + + + + + Cached name for the '_set_constant_force' method. + + + + + Cached name for the '_set_constant_torque' method. + + + + + Cached name for the '_set_linear_velocity' method. + + + + + Cached name for the '_set_sleep_state' method. + + + + + Cached name for the '_set_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics body in the , allowing safe changes to physics properties. This object is passed via the direct state callback of , and is intended for changing the direct state of that body. See . + + + + + The timestep (delta) used for the simulation. + + + + + The inverse of the mass of the body. + + + + + The rate at which the body stops rotating, if there are not any other forces moving it. + + + + + The rate at which the body stops moving, if there are not any other forces moving it. + + + + + The inverse of the inertia of the body. + + + + + The inverse of the inertia tensor of the body. + + + + + The total gravity vector being currently applied to this body. + + + + + The body's center of mass position relative to the body's center in the global coordinate system. + + + + + The body's center of mass position in the body's local coordinate system. + + + + + The body's rotational velocity in radians per second. + + + + + The body's linear velocity in units per second. + + + + + If , this body is currently sleeping (not active). + + + + + The body's transformation matrix. + + + + + Returns the body's velocity at the given relative position, including both translation and rotation. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = Vector3(0, 0, 0). + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the number of contacts this body has with other bodies. + Note: By default, this returns 0 unless bodies are configured to monitor contacts. See . + + + + + Returns the position of the contact point on the body in the global coordinate system. + + + + + Returns the local normal at the contact point. + + + + + Impulse created by the contact. + + + + + Returns the local shape index of the collision. + + + + + Returns the linear velocity vector at the body's contact point. + + + + + Returns the collider's . + + + + + Returns the position of the contact point on the collider in the global coordinate system. + + + + + Returns the collider's object id. + + + + + Returns the collider object. + + + + + Returns the collider's shape index. + + + + + Returns the linear velocity vector at the collider's contact point. + + + + + Updates the body's linear and angular velocity by applying gravity and damping for the equivalent of one physics tick. + + + + + Returns the current state of the space, useful for queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'inverse_mass' property. + + + + + Cached name for the 'total_angular_damp' property. + + + + + Cached name for the 'total_linear_damp' property. + + + + + Cached name for the 'inverse_inertia' property. + + + + + Cached name for the 'inverse_inertia_tensor' property. + + + + + Cached name for the 'total_gravity' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'center_of_mass_local' property. + + + + + Cached name for the 'principal_inertia_axes' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'transform' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_total_gravity' method. + + + + + Cached name for the 'get_total_linear_damp' method. + + + + + Cached name for the 'get_total_angular_damp' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass_local' method. + + + + + Cached name for the 'get_principal_inertia_axes' method. + + + + + Cached name for the 'get_inverse_mass' method. + + + + + Cached name for the 'get_inverse_inertia' method. + + + + + Cached name for the 'get_inverse_inertia_tensor' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_velocity_at_local_position' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleep_state' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'get_contact_local_position' method. + + + + + Cached name for the 'get_contact_local_normal' method. + + + + + Cached name for the 'get_contact_impulse' method. + + + + + Cached name for the 'get_contact_local_shape' method. + + + + + Cached name for the 'get_contact_local_velocity_at_position' method. + + + + + Cached name for the 'get_contact_collider' method. + + + + + Cached name for the 'get_contact_collider_position' method. + + + + + Cached name for the 'get_contact_collider_id' method. + + + + + Cached name for the 'get_contact_collider_object' method. + + + + + Cached name for the 'get_contact_collider_shape' method. + + + + + Cached name for the 'get_contact_collider_velocity_at_position' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'integrate_forces' method. + + + + + Cached name for the 'get_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_constant_central_force' method. + + + + + Cached name for the '_add_constant_force' method. + + + + + Cached name for the '_add_constant_torque' method. + + + + + Cached name for the '_apply_central_force' method. + + + + + Cached name for the '_apply_central_impulse' method. + + + + + Cached name for the '_apply_force' method. + + + + + Cached name for the '_apply_impulse' method. + + + + + Cached name for the '_apply_torque' method. + + + + + Cached name for the '_apply_torque_impulse' method. + + + + + Cached name for the '_get_angular_velocity' method. + + + + + Cached name for the '_get_center_of_mass' method. + + + + + Cached name for the '_get_center_of_mass_local' method. + + + + + Cached name for the '_get_constant_force' method. + + + + + Cached name for the '_get_constant_torque' method. + + + + + Cached name for the '_get_contact_collider' method. + + + + + Cached name for the '_get_contact_collider_id' method. + + + + + Cached name for the '_get_contact_collider_object' method. + + + + + Cached name for the '_get_contact_collider_position' method. + + + + + Cached name for the '_get_contact_collider_shape' method. + + + + + Cached name for the '_get_contact_collider_velocity_at_position' method. + + + + + Cached name for the '_get_contact_count' method. + + + + + Cached name for the '_get_contact_impulse' method. + + + + + Cached name for the '_get_contact_local_normal' method. + + + + + Cached name for the '_get_contact_local_position' method. + + + + + Cached name for the '_get_contact_local_shape' method. + + + + + Cached name for the '_get_contact_local_velocity_at_position' method. + + + + + Cached name for the '_get_inverse_inertia' method. + + + + + Cached name for the '_get_inverse_inertia_tensor' method. + + + + + Cached name for the '_get_inverse_mass' method. + + + + + Cached name for the '_get_linear_velocity' method. + + + + + Cached name for the '_get_principal_inertia_axes' method. + + + + + Cached name for the '_get_space_state' method. + + + + + Cached name for the '_get_step' method. + + + + + Cached name for the '_get_total_angular_damp' method. + + + + + Cached name for the '_get_total_gravity' method. + + + + + Cached name for the '_get_total_linear_damp' method. + + + + + Cached name for the '_get_transform' method. + + + + + Cached name for the '_get_velocity_at_local_position' method. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the '_is_sleeping' method. + + + + + Cached name for the '_set_angular_velocity' method. + + + + + Cached name for the '_set_constant_force' method. + + + + + Cached name for the '_set_constant_torque' method. + + + + + Cached name for the '_set_linear_velocity' method. + + + + + Cached name for the '_set_sleep_state' method. + + + + + Cached name for the '_set_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics space in the . It's used mainly to do queries against objects and areas residing in a given space. + + + + + Checks whether a point is inside any solid shape. Position and other parameters are defined through . The shapes the point is inside of are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + Note: s and s in Segments build mode are not solid shapes. Therefore, they will not be detected. + + + + + Intersects a ray in a given space. Ray position and other parameters are defined through . The returned object is a dictionary with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + normal: The object's surface normal at the intersection point, or Vector2(0, 0) if the ray starts inside the shape and is . + position: The intersection point. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + If the ray did not intersect anything, then an empty dictionary is returned instead. + + + + + Checks the intersections of a shape, given through a object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + + + + + Checks how far a can move without colliding. All the parameters for the query, including the shape and the motion, are supplied through a object. + Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0] will be returned. + Note: Any s that the shape is already colliding with e.g. inside of, will be ignored. Use to determine the s that the shape is already colliding with. + + + + + Checks the intersections of a shape, given through a object, against the space. The resulting array contains a list of points where the shape intersects another. Like with , the number of returned results can be limited to save processing time. + Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in object, second one is in the collided shape from the physics space. + + + + + Checks the intersections of a shape, given through a object, against the space. If it collides with more than one shape, the nearest one is selected. If the shape did not intersect anything, then an empty dictionary is returned instead. + Note: This method does not take into account the motion property of the object. The returned object is a dictionary containing the following fields: + collider_id: The colliding object's ID. + linear_velocity: The colliding object's velocity . If the object is an , the result is (0, 0). + normal: The object's surface normal at the intersection point. + point: The intersection point. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'intersect_point' method. + + + + + Cached name for the 'intersect_ray' method. + + + + + Cached name for the 'intersect_shape' method. + + + + + Cached name for the 'cast_motion' method. + + + + + Cached name for the 'collide_shape' method. + + + + + Cached name for the 'get_rest_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_body_excluded_from_query' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics space in the . It's used mainly to do queries against objects and areas residing in a given space. + + + + + Checks whether a point is inside any solid shape. Position and other parameters are defined through . The shapes the point is inside of are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + + + + + Intersects a ray in a given space. Ray position and other parameters are defined through . The returned object is a dictionary with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + normal: The object's surface normal at the intersection point, or Vector3(0, 0, 0) if the ray starts inside the shape and is . + position: The intersection point. + face_index: The face index at the intersection point. + Note: Returns a valid number only if the intersected shape is a . Otherwise, -1 is returned. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + If the ray did not intersect anything, then an empty dictionary is returned instead. + + + + + Checks the intersections of a shape, given through a object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + Note: This method does not take into account the motion property of the object. + + + + + Checks how far a can move without colliding. All the parameters for the query, including the shape, are supplied through a object. + Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0] will be returned. + Note: Any s that the shape is already colliding with e.g. inside of, will be ignored. Use to determine the s that the shape is already colliding with. + + + + + Checks the intersections of a shape, given through a object, against the space. The resulting array contains a list of points where the shape intersects another. Like with , the number of returned results can be limited to save processing time. + Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in object, second one is in the collided shape from the physics space. + Note: This method does not take into account the motion property of the object. + + + + + Checks the intersections of a shape, given through a object, against the space. If it collides with more than one shape, the nearest one is selected. The returned object is a dictionary containing the following fields: + collider_id: The colliding object's ID. + linear_velocity: The colliding object's velocity . If the object is an , the result is (0, 0, 0). + normal: The object's surface normal at the intersection point. + point: The intersection point. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + If the shape did not intersect anything, then an empty dictionary is returned instead. + Note: This method does not take into account the motion property of the object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'intersect_point' method. + + + + + Cached name for the 'intersect_ray' method. + + + + + Cached name for the 'intersect_shape' method. + + + + + Cached name for the 'cast_motion' method. + + + + + Cached name for the 'collide_shape' method. + + + + + Cached name for the 'get_rest_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_closest_point_to_object_volume' method. + + + + + Cached name for the 'is_body_excluded_from_query' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Holds physics-related properties of a surface, namely its roughness and bounciness. This class is used to apply these properties to a physics body. + + + + + The body's friction. Values range from 0 (frictionless) to 1 (maximum friction). + + + + + If , the physics engine will use the friction of the object marked as "rough" when two objects collide. If , the physics engine will use the lowest friction of all colliding objects instead. If for both colliding objects, the physics engine will use the highest friction. + + + + + The body's bounciness. Values range from 0 (no bounce) to 1 (full bounciness). + Note: Even with set to 1.0, some energy will be lost over time due to linear and angular damping. To have a physics body that preserves all its energy over time, set to 1.0, the body's linear damp mode to Replace (if applicable), its linear damp to 0.0, its angular damp mode to Replace (if applicable), and its angular damp to 0.0. + + + + + If , subtracts the bounciness from the colliding object's bounciness instead of adding it. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'friction' property. + + + + + Cached name for the 'rough' property. + + + + + Cached name for the 'bounce' property. + + + + + Cached name for the 'absorbent' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_friction' method. + + + + + Cached name for the 'get_friction' method. + + + + + Cached name for the 'set_rough' method. + + + + + Cached name for the 'is_rough' method. + + + + + Cached name for the 'set_bounce' method. + + + + + Cached name for the 'get_bounce' method. + + + + + Cached name for the 'set_absorbent' method. + + + + + Cached name for the 'is_absorbent' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the point position, you can configure the parameters for . + + + + + The position being queried for, in global coordinates. + + + + + If different from 0, restricts the query to a specific canvas layer specified by its instance ID. See . + If 0, restricts the query to the Viewport's default canvas layer. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'canvas_instance_id' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_canvas_instance_id' method. + + + + + Cached name for the 'get_canvas_instance_id' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the point position, you can configure the parameters for . + + + + + The position being queried for, in global coordinates. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the ray position, you can configure the parameters for . + + + + + The starting point of the ray being queried for, in global coordinates. + + + + + The ending point of the ray being queried for, in global coordinates. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + If , the query will detect a hit when starting inside shapes. In this case the collision normal will be Vector2(0, 0). Does not affect concave polygon shapes. + + + + + Returns a new, pre-configured object. Use it to quickly create query parameters using the most common options. + + var query = PhysicsRayQueryParameters2D.create(global_position, global_position + Vector2(0, 100)) + var collision = get_world_2d().direct_space_state.intersect_ray(query) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'to' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_to' method. + + + + + Cached name for the 'get_to' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the ray position, you can configure the parameters for . + + + + + The starting point of the ray being queried for, in global coordinates. + + + + + The ending point of the ray being queried for, in global coordinates. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + If , the query will detect a hit when starting inside shapes. In this case the collision normal will be Vector3(0, 0, 0). Does not affect concave polygon shapes or heightmap shapes. + + + + + If , the query will hit back faces with concave polygon shapes with back face enabled or heightmap shapes. + + + + + Returns a new, pre-configured object. Use it to quickly create query parameters using the most common options. + + var query = PhysicsRayQueryParameters3D.create(position, position + Vector3(0, -10, 0)) + var collision = get_world_3d().direct_space_state.intersect_ray(query) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'to' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached name for the 'hit_back_faces' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_to' method. + + + + + Cached name for the 'get_to' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached name for the 'set_hit_back_faces' method. + + + + + Cached name for the 'is_hit_back_faces_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer2D is the server responsible for all 2D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a circle, a rectangle, a capsule, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 2D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + 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 ProjectSettings.physics/2d/solver/contact_recycle_radius. + + + + + 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 ProjectSettings.physics/2d/solver/contact_max_separation. + + + + + 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 ProjectSettings.physics/2d/solver/contact_max_allowed_penetration. + + + + + 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 ProjectSettings.physics/2d/solver/default_contact_bias. + + + + + 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 ProjectSettings.physics/2d/sleep_threshold_linear. + + + + + 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 ProjectSettings.physics/2d/sleep_threshold_angular. + + + + + 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 ProjectSettings.physics/2d/time_before_sleep. + + + + + 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 ProjectSettings.physics/2d/solver/default_constraint_bias. + + + + + 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 ProjectSettings.physics/2d/solver/solver_iterations. + + + + + This is the constant for creating world boundary shapes. A world boundary shape is an infinite line with an origin point, and a normal. Thus, it can be used for front/behind checks. + + + + + 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. + + + + + This is the constant for creating segment shapes. A segment shape is a finite line from a point A to a point B. It can be checked for intersections. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + This constant is used internally by the engine. Any attempt to create this kind of shape results in an error. + + + + + Constant to set/get gravity override mode in an area. See for possible values. The default value of this parameter is . + + + + + Constant to set/get gravity strength in an area. The default value of this parameter is 9.80665. + + + + + Constant to set/get gravity vector/center in an area. The default value of this parameter is Vector2(0, -1). + + + + + 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 . + + + + + Constant to set/get the distance at which the gravity strength is equal to the gravity controlled by . 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 0.0. + + + + + Constant to set/get linear damping override mode in an area. See for possible values. The default value of this parameter is . + + + + + Constant to set/get the linear damping factor of an area. The default value of this parameter is 0.1. + + + + + Constant to set/get angular damping override mode in an area. See for possible values. The default value of this parameter is . + + + + + Constant to set/get the angular damping factor of an area. The default value of this parameter is 1.0. + + + + + Constant to set/get the priority (order of processing) of an area. The default value of this parameter is 0. + + + + + This area does not affect gravity/damp. These are generally areas that exist only to detect collisions, and objects entering or exiting them. + + + + + 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. + + + + + 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. + + + + + This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas. + + + + + This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one. + + + + + 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. + + + + + Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path. + + + + + Constant for rigid bodies. In this mode, a body can be pushed by other bodies and has forces applied. + + + + + Constant for linear rigid bodies. In this mode, a body can not rotate, and only its linear velocity is affected by external forces. + + + + + Constant to set/get a body's bounce factor. The default value of this parameter is 0.0. + + + + + Constant to set/get a body's friction. The default value of this parameter is 1.0. + + + + + Constant to set/get a body's mass. The default value of this parameter is 1.0. If the body's mode is set to , then setting this parameter will have the following additional effects: + - If the parameter has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes. + - If the parameter is set to a value <= 0.0, then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass. + + + + + Constant to set/get a body's inertia. The default value of this parameter is 0.0. If the body's inertia is set to a value <= 0.0, then the inertia will be recalculated based on the body's shapes, mass, and center of mass. + + + + + 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 Vector2(0,0). If this parameter is never set explicitly, then it is recalculated based on the body's shapes when setting the parameter or when calling . + + + + + Constant to set/get a body's gravity multiplier. The default value of this parameter is 1.0. + + + + + Constant to set/get a body's linear damping mode. See for possible values. The default value of this parameter is . + + + + + Constant to set/get a body's angular damping mode. See for possible values. The default value of this parameter is . + + + + + Constant to set/get a body's linear damping factor. The default value of this parameter is 0.0. + + + + + Constant to set/get a body's angular damping factor. The default value of this parameter is 0.0. + + + + + Represents the size of the enum. + + + + + The body's damping value is added to any value set in areas or the default value. + + + + + The body's damping value replaces any value set in areas or the default value. + + + + + Constant to set/get the current transform matrix of the body. + + + + + Constant to set/get the current linear velocity of the body. + + + + + Constant to set/get the current angular velocity of the body. + + + + + Constant to sleep/wake up a body, or to get whether it is sleeping. + + + + + Constant to set/get whether the body can sleep. + + + + + Constant to create pin joints. + + + + + Constant to create groove joints. + + + + + Constant to create damped spring joints. + + + + + Represents the size of the enum. + + + + + 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 0.0. + Note: In Godot Physics, this parameter is only used for pin joints and groove joints. + + + + + Constant to set/get the maximum speed with which the joint can apply corrections. The default value of this parameter is 3.40282e+38. + Note: In Godot Physics, this parameter is only used for groove joints. + + + + + 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 3.40282e+38. + Note: In Godot Physics, this parameter is only used for groove joints. + + + + + Constant to set/get a how much the bond of the pin joint can flex. The default value of this parameter is 0.0. + + + + + The maximum rotation around the pin. + + + + + The minimum rotation around the pin. + + + + + Target speed for the motor. In radians per second. + + + + + If , the pin has a maximum and a minimum rotation. + + + + + If , a motor turns the pin. + + + + + 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. + + + + + 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 20.0. + + + + + 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 1.5. + + + + + Disables continuous collision detection. This is the fastest way to detect body collisions, but it can miss small and/or fast-moving objects. + + + + + Enables continuous collision detection by raycasting. It is faster than shapecasting, but less precise. + + + + + Enables continuous collision detection by shapecasting. It is the slowest CCD method, and the most precise. + + + + + The value of the first parameter and area callback function receives, when an object enters one of its shapes. + + + + + The value of the first parameter and area callback function receives, when an object exits one of its shapes. + + + + + Constant to get the number of objects that are not sleeping. + + + + + Constant to get the number of possible collisions. + + + + + Constant to get the number of space regions where a collision could occur. + + + + + Creates a 2D world boundary shape in the physics server, and returns the that identifies it. Use to set the shape's normal direction and distance properties. + + + + + Creates a 2D separation ray shape in the physics server, and returns the that identifies it. Use to set the shape's length and slide_on_slope properties. + + + + + Creates a 2D segment shape in the physics server, and returns the that identifies it. Use to set the segment's start and end points. + + + + + Creates a 2D circle shape in the physics server, and returns the that identifies it. Use to set the circle's radius. + + + + + Creates a 2D rectangle shape in the physics server, and returns the that identifies it. Use to set the rectangle's half-extents. + + + + + Creates a 2D capsule shape in the physics server, and returns the that identifies it. Use to set the capsule's height and radius. + + + + + Creates a 2D convex polygon shape in the physics server, and returns the that identifies it. Use to set the convex polygon's points. + + + + + Creates a 2D concave polygon shape in the physics server, and returns the that identifies it. Use to set the concave polygon's segments. + + + + + Sets the shape data that defines the configuration of the shape. The to be passed depends on the shape's type (see ): + - : an array of length two containing a normal direction and a distance d, + - : a dictionary containing the key length with a value and the key slide_on_slope with a value, + - : a rect containing the first point of the segment in rect.position and the second point of the segment in rect.size, + - : a radius, + - : a half_extents, + - : an array of length two (or a ) containing a height and a radius, + - : either a [] of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a [] of length divisible by four so that every 4-tuple of s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point, + - : a [] of length divisible by two (each pair of points forms one segment). + Warning: In the case of , this method does not check if the points supplied actually form a convex polygon (unlike the property). + + + + + Returns the shape's type (see ). + + + + + Returns the shape data that defines the configuration of the shape, such as the half-extents of a rectangle or the segments of a concave shape. See for the precise format of this data in each case. + + + + + Creates a 2D space in the physics server, and returns the that identifies it. A space contains bodies and areas, and controls the stepping of the physics simulation of the objects in it. + + + + + Activates or deactivates the space. If is , then the physics server will not do anything with this space in its physics step. + + + + + Returns if the space is active. + + + + + Sets the value of the given space parameter. See for the list of available parameters. + + + + + Returns the value of the given space parameter. See for the list of available parameters. + + + + + Returns the state of a space, a . This object can be used for collision/intersection queries. + + + + + Creates a 2D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Adds the area to the given space, after removing the area from the previously assigned space (if any). + Note: To remove an area from a space without immediately adding it back elsewhere, use PhysicsServer2D.area_set_space(area, RID()). + + + + + Returns the of the space assigned to the area. Returns an empty if no space is assigned. + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of an area are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the area's shape at the given index by another shape, while not affecting the transform and disabled properties at the same index. + + + + + Sets the local transform matrix of the area's shape with the given index. + + + + + Sets the disabled property of the area's shape with the given index. If is , then the shape will not detect any other shapes entering or exiting it. + + + + + Returns the number of shapes added to the area. + + + + + Returns the of the shape with the given index in the area's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the area's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the area's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the area. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Assigns the area to one or many physics layers, via a bitmask. + + + + + Returns the physics layer or layers the area belongs to, as a bitmask. + + + + + Sets which physics layers the area will monitor, via a bitmask. + + + + + Returns the physics layer or layers the area can contact with, as a bitmask. + + + + + Sets the value of the given area parameter. See for the list of available parameters. + + + + + Sets the transform matrix of the area. + + + + + Returns the value of the given area parameter. See for the list of available parameters. + + + + + Returns the transform matrix of the area. + + + + + Attaches the ObjectID of an to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the area. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the area. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets whether the area is monitorable or not. If is , the area monitoring callback of other areas will be called when this area enters or exits them. + + + + + Creates a 2D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Adds the body to the given space, after removing the body from the previously assigned space (if any). If the body's mode is set to , then adding the body to a space will have the following additional effects: + - If the parameter has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes. + - If the parameter is set to a value <= 0.0, then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass. + Note: To remove a body from a space without immediately adding it back elsewhere, use PhysicsServer2D.body_set_space(body, RID()). + + + + + Returns the of the space assigned to the body. Returns an empty if no space is assigned. + + + + + Sets the body's mode. See for the list of available modes. + + + + + Returns the body's mode (see ). + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of a body are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the body's shape at the given index by another shape, while not affecting the transform, disabled, and one-way collision properties at the same index. + + + + + Sets the local transform matrix of the body's shape with the given index. + + + + + Returns the number of shapes added to the body. + + + + + Returns the of the shape with the given index in the body's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the body's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the body's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the body. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Sets the disabled property of the body's shape with the given index. If is , then the shape will be ignored in all collision detection. + + + + + Sets the one-way collision properties of the body's shape with the given index. If is , the one-way collision direction given by the shape's local upward axis body_get_shape_transform(body, shape_idx).y will be used to ignore collisions with the shape in the opposite direction, and to ensure depenetration of kinematic bodies happens in this direction. + + + + + Attaches the ObjectID of an to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the body. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the body. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the continuous collision detection mode using one of the constants. + Continuous collision detection tries to predict where a moving body would collide in between physics updates, instead of moving it and correcting its movement if it collided. + + + + + Returns the body's continuous collision detection mode (see ). + + + + + Sets the physics layer or layers the body belongs to, via a bitmask. + + + + + Returns the physics layer or layers the body belongs to, as a bitmask. + + + + + Sets the physics layer or layers the body can collide with, via a bitmask. + + + + + Returns the physics layer or layers the body can collide with, as a bitmask. + + + + + Sets the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Returns the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Sets the value of the given body parameter. See for the list of available parameters. + + + + + Returns the value of the given body parameter. See for the list of available parameters. + + + + + Restores the default inertia and center of mass of the body based on its shapes. This undoes any custom values previously set using . + + + + + Sets the value of a body's state. See for the list of available states. + Note: The state change doesn't take effect immediately. The state will change on the next physics frame. + + + + + Returns the value of the given state of the body. See for the list of available states. + + + + + Applies a directional impulse to the body, at the body's center of mass. The impulse does not affect rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a rotational impulse to the body. The impulse does not affect position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a positioned impulse to the body. The impulse can affect rotation if is different from the body's center of mass. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a directional force to the body, at the body's center of mass. The force does not affect rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. The force can affect rotation if is different from the body's center of mass. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force to the body. The force does not affect position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force to the body. The force does not affect rotation. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body. The force can affect rotation if is different from the body's center of mass. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force to the body. The force does not affect position. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_torque(body, 0). + + + + + Sets the body's total constant positional force applied during each physics update. + See and . + + + + + Returns the body's total constant positional force applied during each physics update. + See and . + + + + + Sets the body's total constant rotational force applied during each physics update. + See . + + + + + Returns the body's total constant rotational force applied during each physics update. + See . + + + + + Modifies the body's linear velocity so that its projection to the axis axis_velocity.normalized() is exactly axis_velocity.length(). This is useful for jumping behavior. + + + + + Adds to the body's list of collision exceptions, so that collisions with it are ignored. + + + + + Removes from the body's list of collision exceptions, so that collisions with it are no longer ignored. + + + + + Sets the maximum number of contacts that the body can report. If is greater than zero, then the body will keep track of at most this many contacts with other bodies. + + + + + Returns the maximum number of contacts that the body can report. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Returns if a collision would result from moving the body along a motion vector from a given point in space. See for the available motion parameters. Optionally a object can be passed, which will be used to store the information about the resulting collision. + + + + + Returns the of the body. Returns if the body is destroyed or not assigned to a space. + + + + + Creates a 2D joint in the physics server, and returns the that identifies it. To set the joint type, use , or . Use to set generic joint parameters. + + + + + Destroys the joint with the given , creates a new uninitialized joint, and makes the refer to this new joint. + + + + + Sets the value of the given joint parameter. See for the list of available parameters. + + + + + Returns the value of the given joint parameter. See for the list of available parameters. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Makes the joint a pin joint. If is an empty , then is pinned to the point (given in global coordinates); otherwise, is pinned to at the point (given in global coordinates). To set the parameters which are specific to the pin joint, see . + + + + + Makes the joint a groove joint. + + + + + Makes the joint a damped spring joint, attached at the point (given in global coordinates) on the body and at the point (given in global coordinates) on the body . To set the parameters which are specific to the damped spring, see . + + + + + Sets a pin joint flag (see constants). + + + + + Gets a pin joint flag (see constants). + + + + + Sets a pin joint parameter. See for a list of available parameters. + + + + + Returns the value of a pin joint parameter. See for a list of available parameters. + + + + + Sets the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the joint's type (see ). + + + + + Destroys any of the objects created by PhysicsServer2D. If the passed is not one of the objects that can be created by PhysicsServer2D, an error will be printed to the console. + + + + + Activates or deactivates the 2D physics server. If is , then the physics server will not do anything in its physics step. + + + + + Returns information about the current state of the 2D physics engine. See for the list of available states. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'segment_shape_create' method. + + + + + Cached name for the 'circle_shape_create' method. + + + + + Cached name for the 'rectangle_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_attach_canvas_instance_id' method. + + + + + Cached name for the 'area_get_canvas_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_set_shape_as_one_way_collision' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_attach_canvas_instance_id' method. + + + + + Cached name for the 'body_get_canvas_instance_id' method. + + + + + Cached name for the 'body_set_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_get_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_set_param' method. + + + + + Cached name for the 'joint_get_param' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'joint_make_groove' method. + + + + + Cached name for the 'joint_make_damped_spring' method. + + + + + Cached name for the 'pin_joint_set_flag' method. + + + + + Cached name for the 'pin_joint_get_flag' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'damped_spring_joint_set_param' method. + + + + + Cached name for the 'damped_spring_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer2D is the server responsible for all 2D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a circle, a rectangle, a capsule, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 2D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + Creates a 2D world boundary shape in the physics server, and returns the that identifies it. Use to set the shape's normal direction and distance properties. + + + + + Creates a 2D separation ray shape in the physics server, and returns the that identifies it. Use to set the shape's length and slide_on_slope properties. + + + + + Creates a 2D segment shape in the physics server, and returns the that identifies it. Use to set the segment's start and end points. + + + + + Creates a 2D circle shape in the physics server, and returns the that identifies it. Use to set the circle's radius. + + + + + Creates a 2D rectangle shape in the physics server, and returns the that identifies it. Use to set the rectangle's half-extents. + + + + + Creates a 2D capsule shape in the physics server, and returns the that identifies it. Use to set the capsule's height and radius. + + + + + Creates a 2D convex polygon shape in the physics server, and returns the that identifies it. Use to set the convex polygon's points. + + + + + Creates a 2D concave polygon shape in the physics server, and returns the that identifies it. Use to set the concave polygon's segments. + + + + + Sets the shape data that defines the configuration of the shape. The to be passed depends on the shape's type (see ): + - : an array of length two containing a normal direction and a distance d, + - : a dictionary containing the key length with a value and the key slide_on_slope with a value, + - : a rect containing the first point of the segment in rect.position and the second point of the segment in rect.size, + - : a radius, + - : a half_extents, + - : an array of length two (or a ) containing a height and a radius, + - : either a [] of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a [] of length divisible by four so that every 4-tuple of s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point, + - : a [] of length divisible by two (each pair of points forms one segment). + Warning: In the case of , this method does not check if the points supplied actually form a convex polygon (unlike the property). + + + + + Returns the shape's type (see ). + + + + + Returns the shape data that defines the configuration of the shape, such as the half-extents of a rectangle or the segments of a concave shape. See for the precise format of this data in each case. + + + + + Creates a 2D space in the physics server, and returns the that identifies it. A space contains bodies and areas, and controls the stepping of the physics simulation of the objects in it. + + + + + Activates or deactivates the space. If is , then the physics server will not do anything with this space in its physics step. + + + + + Returns if the space is active. + + + + + Sets the value of the given space parameter. See for the list of available parameters. + + + + + Returns the value of the given space parameter. See for the list of available parameters. + + + + + Returns the state of a space, a . This object can be used for collision/intersection queries. + + + + + Creates a 2D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Adds the area to the given space, after removing the area from the previously assigned space (if any). + Note: To remove an area from a space without immediately adding it back elsewhere, use PhysicsServer2D.area_set_space(area, RID()). + + + + + Returns the of the space assigned to the area. Returns an empty if no space is assigned. + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of an area are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the area's shape at the given index by another shape, while not affecting the transform and disabled properties at the same index. + + + + + Sets the local transform matrix of the area's shape with the given index. + + + + + Sets the disabled property of the area's shape with the given index. If is , then the shape will not detect any other shapes entering or exiting it. + + + + + Returns the number of shapes added to the area. + + + + + Returns the of the shape with the given index in the area's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the area's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the area's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the area. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Assigns the area to one or many physics layers, via a bitmask. + + + + + Returns the physics layer or layers the area belongs to, as a bitmask. + + + + + Sets which physics layers the area will monitor, via a bitmask. + + + + + Returns the physics layer or layers the area can contact with, as a bitmask. + + + + + Sets the value of the given area parameter. See for the list of available parameters. + + + + + Sets the transform matrix of the area. + + + + + Returns the value of the given area parameter. See for the list of available parameters. + + + + + Returns the transform matrix of the area. + + + + + Attaches the ObjectID of an to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the area. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the area. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets whether the area is monitorable or not. If is , the area monitoring callback of other areas will be called when this area enters or exits them. + + + + + Creates a 2D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Adds the body to the given space, after removing the body from the previously assigned space (if any). If the body's mode is set to , then adding the body to a space will have the following additional effects: + - If the parameter has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes. + - If the parameter is set to a value <= 0.0, then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass. + Note: To remove a body from a space without immediately adding it back elsewhere, use PhysicsServer2D.body_set_space(body, RID()). + + + + + Returns the of the space assigned to the body. Returns an empty if no space is assigned. + + + + + Sets the body's mode. See for the list of available modes. + + + + + Returns the body's mode (see ). + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of a body are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the body's shape at the given index by another shape, while not affecting the transform, disabled, and one-way collision properties at the same index. + + + + + Sets the local transform matrix of the body's shape with the given index. + + + + + Returns the number of shapes added to the body. + + + + + Returns the of the shape with the given index in the body's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the body's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the body's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the body. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Sets the disabled property of the body's shape with the given index. If is , then the shape will be ignored in all collision detection. + + + + + Sets the one-way collision properties of the body's shape with the given index. If is , the one-way collision direction given by the shape's local upward axis body_get_shape_transform(body, shape_idx).y will be used to ignore collisions with the shape in the opposite direction, and to ensure depenetration of kinematic bodies happens in this direction. + + + + + Attaches the ObjectID of an to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the body. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the body. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the continuous collision detection mode using one of the constants. + Continuous collision detection tries to predict where a moving body would collide in between physics updates, instead of moving it and correcting its movement if it collided. + + + + + Returns the body's continuous collision detection mode (see ). + + + + + Sets the physics layer or layers the body belongs to, via a bitmask. + + + + + Returns the physics layer or layers the body belongs to, as a bitmask. + + + + + Sets the physics layer or layers the body can collide with, via a bitmask. + + + + + Returns the physics layer or layers the body can collide with, as a bitmask. + + + + + Sets the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Returns the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Sets the value of the given body parameter. See for the list of available parameters. + + + + + Returns the value of the given body parameter. See for the list of available parameters. + + + + + Restores the default inertia and center of mass of the body based on its shapes. This undoes any custom values previously set using . + + + + + Sets the value of a body's state. See for the list of available states. + Note: The state change doesn't take effect immediately. The state will change on the next physics frame. + + + + + Returns the value of the given state of the body. See for the list of available states. + + + + + Applies a directional impulse to the body, at the body's center of mass. The impulse does not affect rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a rotational impulse to the body. The impulse does not affect position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a positioned impulse to the body. The impulse can affect rotation if is different from the body's center of mass. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a directional force to the body, at the body's center of mass. The force does not affect rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. The force can affect rotation if is different from the body's center of mass. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force to the body. The force does not affect position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force to the body. The force does not affect rotation. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body. The force can affect rotation if is different from the body's center of mass. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force to the body. The force does not affect position. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_torque(body, 0). + + + + + Sets the body's total constant positional force applied during each physics update. + See and . + + + + + Returns the body's total constant positional force applied during each physics update. + See and . + + + + + Sets the body's total constant rotational force applied during each physics update. + See . + + + + + Returns the body's total constant rotational force applied during each physics update. + See . + + + + + Modifies the body's linear velocity so that its projection to the axis axis_velocity.normalized() is exactly axis_velocity.length(). This is useful for jumping behavior. + + + + + Adds to the body's list of collision exceptions, so that collisions with it are ignored. + + + + + Removes from the body's list of collision exceptions, so that collisions with it are no longer ignored. + + + + + Sets the maximum number of contacts that the body can report. If is greater than zero, then the body will keep track of at most this many contacts with other bodies. + + + + + Returns the maximum number of contacts that the body can report. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Returns if a collision would result from moving the body along a motion vector from a given point in space. See for the available motion parameters. Optionally a object can be passed, which will be used to store the information about the resulting collision. + + + + + Returns the of the body. Returns if the body is destroyed or not assigned to a space. + + + + + Creates a 2D joint in the physics server, and returns the that identifies it. To set the joint type, use , or . Use to set generic joint parameters. + + + + + Destroys the joint with the given , creates a new uninitialized joint, and makes the refer to this new joint. + + + + + Sets the value of the given joint parameter. See for the list of available parameters. + + + + + Returns the value of the given joint parameter. See for the list of available parameters. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Makes the joint a pin joint. If is an empty , then is pinned to the point (given in global coordinates); otherwise, is pinned to at the point (given in global coordinates). To set the parameters which are specific to the pin joint, see . + + + + + Makes the joint a groove joint. + + + + + Makes the joint a damped spring joint, attached at the point (given in global coordinates) on the body and at the point (given in global coordinates) on the body . To set the parameters which are specific to the damped spring, see . + + + + + Sets a pin joint flag (see constants). + + + + + Gets a pin joint flag (see constants). + + + + + Sets a pin joint parameter. See for a list of available parameters. + + + + + Returns the value of a pin joint parameter. See for a list of available parameters. + + + + + Sets the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the joint's type (see ). + + + + + Destroys any of the objects created by PhysicsServer2D. If the passed is not one of the objects that can be created by PhysicsServer2D, an error will be printed to the console. + + + + + Activates or deactivates the 2D physics server. If is , then the physics server will not do anything in its physics step. + + + + + Returns information about the current state of the 2D physics engine. See for the list of available states. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'segment_shape_create' method. + + + + + Cached name for the 'circle_shape_create' method. + + + + + Cached name for the 'rectangle_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_attach_canvas_instance_id' method. + + + + + Cached name for the 'area_get_canvas_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_set_shape_as_one_way_collision' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_attach_canvas_instance_id' method. + + + + + Cached name for the 'body_get_canvas_instance_id' method. + + + + + Cached name for the 'body_set_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_get_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_set_param' method. + + + + + Cached name for the 'joint_get_param' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'joint_make_groove' method. + + + + + Cached name for the 'joint_make_damped_spring' method. + + + + + Cached name for the 'pin_joint_set_flag' method. + + + + + Cached name for the 'pin_joint_get_flag' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'damped_spring_joint_set_param' method. + + + + + Cached name for the 'damped_spring_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + If set to , allows the area with the given to detect mouse inputs when the mouse cursor is hovering on it. + Overridable version of 's internal area_set_pickable method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Returns the s of all bodies added as collision exceptions for the given . See also and . + Overridable version of 's internal body_get_collision_exceptions method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of 's internal body_get_contacts_reported_depth_threshold method. + Note: This method is currently unused by Godot's default physics implementation. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of 's internal body_set_contacts_reported_depth_threshold method. + Note: This method is currently unused by Godot's default physics implementation. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + If set to , allows the body with the given to detect mouse inputs when the mouse cursor is hovering on it. + Overridable version of 's internal body_set_pickable method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Assigns the to call the given during the synchronization phase of the loop, before is called. See also . + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + 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 . + Overridable version of 's internal end_sync method. + + + + + Called when the main loop finalizes to shut down the physics server. See also and . + Overridable version of 's internal finish method. + + + + + Called every physics step before to process all remaining queries. + Overridable version of 's internal flush_queries method. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Called when the main loop is initialized and creates a new instance of this physics server. See also and . + Overridable version of 's internal init method. + + + + + Overridable method that should return when the physics server is processing queries. See also . + Overridable version of 's internal is_flushing_queries method. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Should return the custom solver bias of the given , which defines how much bodies are forced to separate on contact when this shape is involved. + Overridable version of 's internal shape_get_custom_solver_bias method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Should set the custom solver bias for the given . It defines how much bodies are forced to separate on contact. + Overridable version of 's internal shape_get_custom_solver_bias method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Should return how many contacts have occurred during the last physics step in the given . See also and . + Overridable version of 's internal space_get_contact_count method. + + + + + Should return the positions of all contacts that have occurred during the last physics step in the given . See also and . + Overridable version of 's internal space_get_contacts method. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Used internally to allow the given to store contact points, up to . This is automatically set for the main 's space when is , or by checking "Visible Collision Shapes" in the editor. Only works in debug builds. + Overridable version of 's internal space_set_debug_contacts method. + + + + + Overridable version of . + + + + + Called every physics step to process the physics simulation. is the time elapsed since the last physics step, in seconds. It is usually the same as . + Overridable version of 's internal step method. + + + + + Called to indicate that the physics server is synchronizing and cannot access physics states if running on a separate thread. See also . + Overridable version of 's internal sync method. + + + + + Overridable version of . + + + + + Returns if the body with the given is being excluded from _body_test_motion. See also . + + + + + Returns if the object with the given instance ID is being excluded from _body_test_motion. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_area_add_shape' method. + + + + + Cached name for the '_area_attach_canvas_instance_id' method. + + + + + Cached name for the '_area_attach_object_instance_id' method. + + + + + Cached name for the '_area_clear_shapes' method. + + + + + Cached name for the '_area_create' method. + + + + + Cached name for the '_area_get_canvas_instance_id' method. + + + + + Cached name for the '_area_get_collision_layer' method. + + + + + Cached name for the '_area_get_collision_mask' method. + + + + + Cached name for the '_area_get_object_instance_id' method. + + + + + Cached name for the '_area_get_param' method. + + + + + Cached name for the '_area_get_shape' method. + + + + + Cached name for the '_area_get_shape_count' method. + + + + + Cached name for the '_area_get_shape_transform' method. + + + + + Cached name for the '_area_get_space' method. + + + + + Cached name for the '_area_get_transform' method. + + + + + Cached name for the '_area_remove_shape' method. + + + + + Cached name for the '_area_set_area_monitor_callback' method. + + + + + Cached name for the '_area_set_collision_layer' method. + + + + + Cached name for the '_area_set_collision_mask' method. + + + + + Cached name for the '_area_set_monitor_callback' method. + + + + + Cached name for the '_area_set_monitorable' method. + + + + + Cached name for the '_area_set_param' method. + + + + + Cached name for the '_area_set_pickable' method. + + + + + Cached name for the '_area_set_shape' method. + + + + + Cached name for the '_area_set_shape_disabled' method. + + + + + Cached name for the '_area_set_shape_transform' method. + + + + + Cached name for the '_area_set_space' method. + + + + + Cached name for the '_area_set_transform' method. + + + + + Cached name for the '_body_add_collision_exception' method. + + + + + Cached name for the '_body_add_constant_central_force' method. + + + + + Cached name for the '_body_add_constant_force' method. + + + + + Cached name for the '_body_add_constant_torque' method. + + + + + Cached name for the '_body_add_shape' method. + + + + + Cached name for the '_body_apply_central_force' method. + + + + + Cached name for the '_body_apply_central_impulse' method. + + + + + Cached name for the '_body_apply_force' method. + + + + + Cached name for the '_body_apply_impulse' method. + + + + + Cached name for the '_body_apply_torque' method. + + + + + Cached name for the '_body_apply_torque_impulse' method. + + + + + Cached name for the '_body_attach_canvas_instance_id' method. + + + + + Cached name for the '_body_attach_object_instance_id' method. + + + + + Cached name for the '_body_clear_shapes' method. + + + + + Cached name for the '_body_create' method. + + + + + Cached name for the '_body_get_canvas_instance_id' method. + + + + + Cached name for the '_body_get_collision_exceptions' method. + + + + + Cached name for the '_body_get_collision_layer' method. + + + + + Cached name for the '_body_get_collision_mask' method. + + + + + Cached name for the '_body_get_collision_priority' method. + + + + + Cached name for the '_body_get_constant_force' method. + + + + + Cached name for the '_body_get_constant_torque' method. + + + + + Cached name for the '_body_get_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_get_continuous_collision_detection_mode' method. + + + + + Cached name for the '_body_get_direct_state' method. + + + + + Cached name for the '_body_get_max_contacts_reported' method. + + + + + Cached name for the '_body_get_mode' method. + + + + + Cached name for the '_body_get_object_instance_id' method. + + + + + Cached name for the '_body_get_param' method. + + + + + Cached name for the '_body_get_shape' method. + + + + + Cached name for the '_body_get_shape_count' method. + + + + + Cached name for the '_body_get_shape_transform' method. + + + + + Cached name for the '_body_get_space' method. + + + + + Cached name for the '_body_get_state' method. + + + + + Cached name for the '_body_is_omitting_force_integration' method. + + + + + Cached name for the '_body_remove_collision_exception' method. + + + + + Cached name for the '_body_remove_shape' method. + + + + + Cached name for the '_body_reset_mass_properties' method. + + + + + Cached name for the '_body_set_axis_velocity' method. + + + + + Cached name for the '_body_set_collision_layer' method. + + + + + Cached name for the '_body_set_collision_mask' method. + + + + + Cached name for the '_body_set_collision_priority' method. + + + + + Cached name for the '_body_set_constant_force' method. + + + + + Cached name for the '_body_set_constant_torque' method. + + + + + Cached name for the '_body_set_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_set_continuous_collision_detection_mode' method. + + + + + Cached name for the '_body_set_force_integration_callback' method. + + + + + Cached name for the '_body_set_max_contacts_reported' method. + + + + + Cached name for the '_body_set_mode' method. + + + + + Cached name for the '_body_set_omit_force_integration' method. + + + + + Cached name for the '_body_set_param' method. + + + + + Cached name for the '_body_set_pickable' method. + + + + + Cached name for the '_body_set_shape' method. + + + + + Cached name for the '_body_set_shape_as_one_way_collision' method. + + + + + Cached name for the '_body_set_shape_disabled' method. + + + + + Cached name for the '_body_set_shape_transform' method. + + + + + Cached name for the '_body_set_space' method. + + + + + Cached name for the '_body_set_state' method. + + + + + Cached name for the '_body_set_state_sync_callback' method. + + + + + Cached name for the '_capsule_shape_create' method. + + + + + Cached name for the '_circle_shape_create' method. + + + + + Cached name for the '_concave_polygon_shape_create' method. + + + + + Cached name for the '_convex_polygon_shape_create' method. + + + + + Cached name for the '_damped_spring_joint_get_param' method. + + + + + Cached name for the '_damped_spring_joint_set_param' method. + + + + + Cached name for the '_end_sync' method. + + + + + Cached name for the '_finish' method. + + + + + Cached name for the '_flush_queries' method. + + + + + Cached name for the '_free_rid' method. + + + + + Cached name for the '_get_process_info' method. + + + + + Cached name for the '_init' method. + + + + + Cached name for the '_is_flushing_queries' method. + + + + + Cached name for the '_joint_clear' method. + + + + + Cached name for the '_joint_create' method. + + + + + Cached name for the '_joint_disable_collisions_between_bodies' method. + + + + + Cached name for the '_joint_get_param' method. + + + + + Cached name for the '_joint_get_type' method. + + + + + Cached name for the '_joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the '_joint_make_damped_spring' method. + + + + + Cached name for the '_joint_make_groove' method. + + + + + Cached name for the '_joint_make_pin' method. + + + + + Cached name for the '_joint_set_param' method. + + + + + Cached name for the '_pin_joint_get_flag' method. + + + + + Cached name for the '_pin_joint_get_param' method. + + + + + Cached name for the '_pin_joint_set_flag' method. + + + + + Cached name for the '_pin_joint_set_param' method. + + + + + Cached name for the '_rectangle_shape_create' method. + + + + + Cached name for the '_segment_shape_create' method. + + + + + Cached name for the '_separation_ray_shape_create' method. + + + + + Cached name for the '_set_active' method. + + + + + Cached name for the '_shape_get_custom_solver_bias' method. + + + + + Cached name for the '_shape_get_data' method. + + + + + Cached name for the '_shape_get_type' method. + + + + + Cached name for the '_shape_set_custom_solver_bias' method. + + + + + Cached name for the '_shape_set_data' method. + + + + + Cached name for the '_space_create' method. + + + + + Cached name for the '_space_get_contact_count' method. + + + + + Cached name for the '_space_get_contacts' method. + + + + + Cached name for the '_space_get_direct_state' method. + + + + + Cached name for the '_space_get_param' method. + + + + + Cached name for the '_space_is_active' method. + + + + + Cached name for the '_space_set_active' method. + + + + + Cached name for the '_space_set_debug_contacts' method. + + + + + Cached name for the '_space_set_param' method. + + + + + Cached name for the '_step' method. + + + + + Cached name for the '_sync' method. + + + + + Cached name for the '_world_boundary_shape_create' method. + + + + + Cached name for the 'body_test_motion_is_excluding_body' method. + + + + + Cached name for the 'body_test_motion_is_excluding_object' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer3D is the server responsible for all 3D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a sphere, a box, a cylinder, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 3D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + Represents the size of the enum. + + + + + The strength with which the pinned objects try to stay in positional relation to each other. + The higher, the stronger. + + + + + The strength with which the pinned objects try to stay in velocity relation to each other. + The higher, the stronger. + + + + + If above 0, this value is the maximum value for an impulse that this Joint3D puts on its ends. + + + + + The speed with which the two bodies get pulled together when they move in different directions. + + + + + The maximum rotation across the Hinge. + + + + + The minimum rotation across the Hinge. + + + + + The speed with which the rotation across the axis perpendicular to the hinge gets corrected. + + + + + The lower this value, the more the rotation gets slowed down. + + + + + Target speed for the motor. + + + + + Maximum acceleration for the motor. + + + + + If , the Hinge has a maximum and a minimum rotation. + + + + + If , a motor turns the Hinge. + + + + + The maximum difference between the pivot points on their X axis before damping happens. + + + + + The minimum difference between the pivot points on their X axis before damping happens. + + + + + A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement. + + + + + The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost. + + + + + The amount of damping once the slider limits are surpassed. + + + + + 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. + + + + + The amount of restitution inside the slider limits. + + + + + The amount of damping inside the slider limits. + + + + + A factor applied to the movement across axes orthogonal to the slider. + + + + + The amount of restitution when movement is across axes orthogonal to the slider. + + + + + The amount of damping when movement is across axes orthogonal to the slider. + + + + + The upper limit of rotation in the slider. + + + + + The lower limit of rotation in the slider. + + + + + A factor applied to the all rotation once the limit is surpassed. + + + + + The amount of restitution of the rotation when the limit is surpassed. + + + + + The amount of damping of the rotation when the limit is surpassed. + + + + + A factor that gets applied to the all rotation in the limits. + + + + + The amount of restitution of the rotation in the limits. + + + + + The amount of damping of the rotation in the limits. + + + + + A factor that gets applied to the all rotation across axes orthogonal to the slider. + + + + + The amount of restitution of the rotation across axes orthogonal to the slider. + + + + + The amount of damping of the rotation across axes orthogonal to the slider. + + + + + Represents the size of the enum. + + + + + 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 . + If below 0.05, this behavior is locked. + + + + + Twist is the rotation around the twist axis, this value defined how far the joint can twist. + Twist is locked if below 0.05. + + + + + The speed with which the swing or twist will take place. + The higher, the faster. + + + + + The ease with which the Joint3D twists, if it's too low, it takes more force to twist the joint. + + + + + Defines, how fast the swing- and twist-speed-difference on both sides gets synced. + + + + + The minimum difference between the pivot points' axes. + + + + + The maximum difference between the pivot points' axes. + + + + + A factor that gets applied to the movement across the axes. The lower, the slower the movement. + + + + + The amount of restitution on the axes movement. The lower, the more velocity-energy gets lost. + + + + + The amount of damping that happens at the linear motion across the axes. + + + + + The velocity that the joint's linear motor will attempt to reach. + + + + + The maximum force that the linear motor can apply while trying to reach the target velocity. + + + + + The minimum rotation in negative direction to break loose and rotate around the axes. + + + + + The minimum rotation in positive direction to break loose and rotate around the axes. + + + + + A factor that gets multiplied onto all rotations across the axes. + + + + + The amount of rotational damping across the axes. The lower, the more damping occurs. + + + + + The amount of rotational restitution across the axes. The lower, the more restitution occurs. + + + + + The maximum amount of force that can occur, when rotating around the axes. + + + + + 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. + + + + + Target speed for the motor at the axes. + + + + + Maximum acceleration for the motor at the axes. + + + + + Represents the size of the enum. + + + + + If set, linear motion is possible within the given limits. + + + + + If set, rotational motion is possible. + + + + + If set, there is a rotational motor across these axes. + + + + + If set, there is a linear motor on this axis that targets a specific velocity. + + + + + Represents the size of the enum. + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is used internally for a soft body. Any attempt to create this kind of shape results in an error. + + + + + This constant is used internally by the engine. Any attempt to create this kind of shape results in an error. + + + + + Constant to set/get gravity override mode in an area. See for possible values. + + + + + Constant to set/get gravity strength in an area. + + + + + Constant to set/get gravity vector/center in an area. + + + + + Constant to set/get whether the gravity vector of an area is a direction, or a center point. + + + + + Constant to set/get the distance at which the gravity strength is equal to the gravity controlled by . 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. + + + + + Constant to set/get linear damping override mode in an area. See for possible values. + + + + + Constant to set/get the linear damping factor of an area. + + + + + Constant to set/get angular damping override mode in an area. See for possible values. + + + + + Constant to set/get the angular damping factor of an area. + + + + + Constant to set/get the priority (order of processing) of an area. + + + + + Constant to set/get the magnitude of area-specific wind force. This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + Constant to set/get the 3D vector that specifies the origin from which an area-specific wind blows. + + + + + Constant to set/get the 3D vector that specifies the direction in which an area-specific wind blows. + + + + + Constant to set/get the exponential rate at which wind force decreases with distance from its origin. + + + + + This area does not affect gravity/damp. These are generally areas that exist only to detect collisions, and objects entering or exiting them. + + + + + 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. + + + + + 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. + + + + + This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas. + + + + + This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one. + + + + + 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. + + + + + Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path. + + + + + Constant for rigid bodies. In this mode, a body can be pushed by other bodies and has forces applied. + + + + + Constant for linear rigid bodies. In this mode, a body can not rotate, and only its linear velocity is affected by external forces. + + + + + Constant to set/get a body's bounce factor. + + + + + Constant to set/get a body's friction. + + + + + Constant to set/get a body's mass. + + + + + Constant to set/get a body's inertia. + + + + + Constant to set/get a body's center of mass position in the body's local coordinate system. + + + + + Constant to set/get a body's gravity multiplier. + + + + + Constant to set/get a body's linear damping mode. See for possible values. + + + + + Constant to set/get a body's angular damping mode. See for possible values. + + + + + Constant to set/get a body's linear damping factor. + + + + + Constant to set/get a body's angular damping factor. + + + + + Represents the size of the enum. + + + + + The body's damping value is added to any value set in areas or the default value. + + + + + The body's damping value replaces any value set in areas or the default value. + + + + + Constant to set/get the current transform matrix of the body. + + + + + Constant to set/get the current linear velocity of the body. + + + + + Constant to set/get the current angular velocity of the body. + + + + + Constant to sleep/wake up a body, or to get whether it is sleeping. + + + + + Constant to set/get whether the body can sleep. + + + + + The value of the first parameter and area callback function receives, when an object enters one of its shapes. + + + + + The value of the first parameter and area callback function receives, when an object exits one of its shapes. + + + + + Constant to get the number of objects that are not sleeping. + + + + + Constant to get the number of possible collisions. + + + + + Constant to get the number of space regions where a collision could occur. + + + + + Constant to set/get the maximum distance a pair of bodies has to move before their collision status has to be recalculated. + + + + + Constant to set/get the maximum distance a shape can be from another before they are considered separated and the contact is discarded. + + + + + Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created . + + + + + Sets the collision margin for the shape. + Note: This is not used in Godot Physics. + + + + + Returns the type of shape (see constants). + + + + + Returns the shape data. + + + + + Returns the collision margin for the shape. + Note: This is not used in Godot Physics, so will always return 0. + + + + + Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with , or to a body with . + + + + + Marks a space as active. It will not have an effect, unless it is assigned to an area or body. + + + + + Returns whether the space is active. + + + + + Sets the value for a space parameter. A list of available parameters is on the constants. + + + + + Returns the value of a space parameter. + + + + + Returns the state of a space, a . This object can be used to make collision/intersection queries. + + + + + Creates a 3D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Assigns a space to the area. + + + + + Returns the space assigned to the area. + + + + + Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given area shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for an area shape. + + + + + Returns the number of shapes assigned to an area. + + + + + Returns the of the nth shape of an area. + + + + + Returns the transform matrix of a shape within an area. + + + + + Removes a shape from an area. It does not delete the shape, so it can be reassigned later. + + + + + Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later. + + + + + Assigns the area to one or many physics layers. + + + + + Returns the physics layer or layers an area belongs to. + + + + + Sets which physics layers the area will monitor. + + + + + Returns the physics layer or layers an area can contact with. + + + + + Sets the value for an area parameter. A list of available parameters is on the constants. + + + + + Sets the transform matrix for an area. + + + + + Returns an area parameter value. A list of available parameters is on the constants. + + + + + Returns the transform matrix for an area. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets object pickable with rays. + + + + + Creates a 3D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Assigns a space to the body (see ). + + + + + Returns the of the space assigned to a body. + + + + + Sets the body mode, from one of the constants. + + + + + Returns the body mode. + + + + + Sets the physics layer or layers a body belongs to. + + + + + Returns the physics layer or layers a body belongs to. + + + + + Sets the physics layer or layers a body can collide with. + + + + + Returns the physics layer or layers a body can collide with. + + + + + Sets the body's collision priority. + + + + + Returns the body's collision priority. + + + + + Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given body shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for a body shape. + + + + + Returns the number of shapes assigned to a body. + + + + + Returns the of the nth shape of a body. + + + + + Returns the transform matrix of a body shape. + + + + + Removes a shape from a body. The shape is not deleted, so it can be reused afterwards. + + + + + Removes all shapes from a body. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + If , the continuous collision detection mode is enabled. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + If , the continuous collision detection mode is enabled. + + + + + Sets a body parameter. A list of available parameters is on the constants. + + + + + Returns the value of a body parameter. A list of available parameters is on the constants. + + + + + Restores the default inertia and center of mass based on shapes to cancel any custom values previously set using . + + + + + Sets a body state (see constants). + + + + + Returns a body state. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with body_set_constant_torque(body, Vector3(0, 0, 0)). + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Adds a body to the list of bodies exempt from collisions. + + + + + Removes a body from the list of bodies exempt from collisions. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies. This is enabled by setting the maximum number of contacts reported to a number greater than 0. + + + + + Returns the maximum contacts that can be reported. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a , used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Sets the body pickable with rays if is set. + + + + + Returns if a collision would result from moving along a motion vector from a given point in space. is passed to set motion parameters. can be passed to return additional information. + + + + + Returns the of the body. Returns if the body is destroyed or removed from the physics space. + + + + + Creates a new soft body and returns its internal . + + + + + Requests that the physics server updates the rendering server with the latest positions of the given soft body's points through the interface. + + + + + Assigns a space to the given soft body (see ). + + + + + Returns the of the space assigned to the given soft body. + + + + + Sets the mesh of the given soft body. + + + + + Returns the bounds of the given soft body in global coordinates. + + + + + Sets the physics layer or layers the given soft body belongs to. + + + + + Returns the physics layer or layers that the given soft body belongs to. + + + + + Sets the physics layer or layers the given soft body can collide with. + + + + + Returns the physics layer or layers that the given soft body can collide with. + + + + + Adds the given body to the list of bodies exempt from collisions. + + + + + Removes the given body from the list of bodies exempt from collisions. + + + + + Sets the given body state for the given body (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Returns the given soft body state (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Sets the global transform of the given soft body. + + + + + Sets whether the given soft body will be pickable when using object picking. + + + + + Sets the simulation precision of the given soft body. Increasing this value will improve the resulting simulation, but can affect performance. Use with care. + + + + + Returns the simulation precision of the given soft body. + + + + + Sets the total mass for the given soft body. + + + + + Returns the total mass assigned to the given soft body. + + + + + Sets the linear stiffness of the given soft body. Higher values will result in a stiffer body, while lower values will increase the body's ability to bend. The value can be between 0.0 and 1.0 (inclusive). + + + + + Returns the linear stiffness of the given soft body. + + + + + Sets the pressure coefficient of the given soft body. Simulates pressure build-up from inside this body. Higher values increase the strength of this effect. + + + + + Returns the pressure coefficient of the given soft body. + + + + + Sets the damping coefficient of the given soft body. Higher values will slow down the body more noticeably when forces are applied. + + + + + Returns the damping coefficient of the given soft body. + + + + + Sets the drag coefficient of the given soft body. Higher values increase this body's air resistance. + Note: This value is currently unused by Godot's default physics implementation. + + + + + Returns the drag coefficient of the given soft body. + + + + + Moves the given soft body point to a position in global coordinates. + + + + + Returns the current position of the given soft body point in global coordinates. + + + + + Unpins all points of the given soft body. + + + + + Pins or unpins the given soft body point based on the value of . + Note: Pinning a point effectively makes it kinematic, preventing it from being affected by forces, but you can still move it using . + + + + + Returns whether the given soft body point is pinned. + + + + + Sets a pin_joint parameter (see constants). + + + + + Gets a pin_joint parameter (see constants). + + + + + Sets position of the joint in the local space of body a of the joint. + + + + + Returns position of the joint in the local space of body a of the joint. + + + + + Sets position of the joint in the local space of body b of the joint. + + + + + Returns position of the joint in the local space of body b of the joint. + + + + + Sets a hinge_joint parameter (see constants). + + + + + Gets a hinge_joint parameter (see ). + + + + + Sets a hinge_joint flag (see constants). + + + + + Gets a hinge_joint flag (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Sets a cone_twist_joint parameter (see constants). + + + + + Gets a cone_twist_joint parameter (see constants). + + + + + Returns the type of the Joint3D. + + + + + Sets the priority value of the Joint3D. + + + + + Gets the priority value of the Joint3D. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Make the joint a generic six degrees of freedom (6DOF) joint. Use and to set the joint's flags and parameters respectively. + + + + + Sets the value of a given generic 6DOF joint parameter. See for the list of available parameters. + + + + + Returns the value of a generic 6DOF joint parameter. See for the list of available parameters. + + + + + Sets the value of a given generic 6DOF joint flag. See for the list of available flags. + + + + + Returns the value of a generic 6DOF joint flag. See for the list of available flags. + + + + + Destroys any of the objects created by PhysicsServer3D. If the passed is not one of the objects that can be created by PhysicsServer3D, an error will be sent to the console. + + + + + Activates or deactivates the 3D physics engine. + + + + + Returns information about the current state of the 3D physics engine. See for a list of available states. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'sphere_shape_create' method. + + + + + Cached name for the 'box_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'cylinder_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'heightmap_shape_create' method. + + + + + Cached name for the 'custom_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_set_margin' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'shape_get_margin' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'area_set_ray_pickable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_set_enable_continuous_collision_detection' method. + + + + + Cached name for the 'body_is_continuous_collision_detection_enabled' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_set_axis_lock' method. + + + + + Cached name for the 'body_is_axis_locked' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_set_ray_pickable' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'soft_body_create' method. + + + + + Cached name for the 'soft_body_update_rendering_server' method. + + + + + Cached name for the 'soft_body_set_space' method. + + + + + Cached name for the 'soft_body_get_space' method. + + + + + Cached name for the 'soft_body_set_mesh' method. + + + + + Cached name for the 'soft_body_get_bounds' method. + + + + + Cached name for the 'soft_body_set_collision_layer' method. + + + + + Cached name for the 'soft_body_get_collision_layer' method. + + + + + Cached name for the 'soft_body_set_collision_mask' method. + + + + + Cached name for the 'soft_body_get_collision_mask' method. + + + + + Cached name for the 'soft_body_add_collision_exception' method. + + + + + Cached name for the 'soft_body_remove_collision_exception' method. + + + + + Cached name for the 'soft_body_set_state' method. + + + + + Cached name for the 'soft_body_get_state' method. + + + + + Cached name for the 'soft_body_set_transform' method. + + + + + Cached name for the 'soft_body_set_ray_pickable' method. + + + + + Cached name for the 'soft_body_set_simulation_precision' method. + + + + + Cached name for the 'soft_body_get_simulation_precision' method. + + + + + Cached name for the 'soft_body_set_total_mass' method. + + + + + Cached name for the 'soft_body_get_total_mass' method. + + + + + Cached name for the 'soft_body_set_linear_stiffness' method. + + + + + Cached name for the 'soft_body_get_linear_stiffness' method. + + + + + Cached name for the 'soft_body_set_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_get_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_set_damping_coefficient' method. + + + + + Cached name for the 'soft_body_get_damping_coefficient' method. + + + + + Cached name for the 'soft_body_set_drag_coefficient' method. + + + + + Cached name for the 'soft_body_get_drag_coefficient' method. + + + + + Cached name for the 'soft_body_move_point' method. + + + + + Cached name for the 'soft_body_get_point_global_position' method. + + + + + Cached name for the 'soft_body_remove_all_pinned_points' method. + + + + + Cached name for the 'soft_body_pin_point' method. + + + + + Cached name for the 'soft_body_is_point_pinned' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'pin_joint_set_local_a' method. + + + + + Cached name for the 'pin_joint_get_local_a' method. + + + + + Cached name for the 'pin_joint_set_local_b' method. + + + + + Cached name for the 'pin_joint_get_local_b' method. + + + + + Cached name for the 'joint_make_hinge' method. + + + + + Cached name for the 'hinge_joint_set_param' method. + + + + + Cached name for the 'hinge_joint_get_param' method. + + + + + Cached name for the 'hinge_joint_set_flag' method. + + + + + Cached name for the 'hinge_joint_get_flag' method. + + + + + Cached name for the 'joint_make_slider' method. + + + + + Cached name for the 'slider_joint_set_param' method. + + + + + Cached name for the 'slider_joint_get_param' method. + + + + + Cached name for the 'joint_make_cone_twist' method. + + + + + Cached name for the 'cone_twist_joint_set_param' method. + + + + + Cached name for the 'cone_twist_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'joint_set_solver_priority' method. + + + + + Cached name for the 'joint_get_solver_priority' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_generic_6dof' method. + + + + + Cached name for the 'generic_6dof_joint_set_param' method. + + + + + Cached name for the 'generic_6dof_joint_get_param' method. + + + + + Cached name for the 'generic_6dof_joint_set_flag' method. + + + + + Cached name for the 'generic_6dof_joint_get_flag' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer3D is the server responsible for all 3D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a sphere, a box, a cylinder, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 3D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created . + + + + + Sets the collision margin for the shape. + Note: This is not used in Godot Physics. + + + + + Returns the type of shape (see constants). + + + + + Returns the shape data. + + + + + Returns the collision margin for the shape. + Note: This is not used in Godot Physics, so will always return 0. + + + + + Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with , or to a body with . + + + + + Marks a space as active. It will not have an effect, unless it is assigned to an area or body. + + + + + Returns whether the space is active. + + + + + Sets the value for a space parameter. A list of available parameters is on the constants. + + + + + Returns the value of a space parameter. + + + + + Returns the state of a space, a . This object can be used to make collision/intersection queries. + + + + + Creates a 3D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Assigns a space to the area. + + + + + Returns the space assigned to the area. + + + + + Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given area shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for an area shape. + + + + + Returns the number of shapes assigned to an area. + + + + + Returns the of the nth shape of an area. + + + + + Returns the transform matrix of a shape within an area. + + + + + Removes a shape from an area. It does not delete the shape, so it can be reassigned later. + + + + + Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later. + + + + + Assigns the area to one or many physics layers. + + + + + Returns the physics layer or layers an area belongs to. + + + + + Sets which physics layers the area will monitor. + + + + + Returns the physics layer or layers an area can contact with. + + + + + Sets the value for an area parameter. A list of available parameters is on the constants. + + + + + Sets the transform matrix for an area. + + + + + Returns an area parameter value. A list of available parameters is on the constants. + + + + + Returns the transform matrix for an area. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets object pickable with rays. + + + + + Creates a 3D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Assigns a space to the body (see ). + + + + + Returns the of the space assigned to a body. + + + + + Sets the body mode, from one of the constants. + + + + + Returns the body mode. + + + + + Sets the physics layer or layers a body belongs to. + + + + + Returns the physics layer or layers a body belongs to. + + + + + Sets the physics layer or layers a body can collide with. + + + + + Returns the physics layer or layers a body can collide with. + + + + + Sets the body's collision priority. + + + + + Returns the body's collision priority. + + + + + Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given body shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for a body shape. + + + + + Returns the number of shapes assigned to a body. + + + + + Returns the of the nth shape of a body. + + + + + Returns the transform matrix of a body shape. + + + + + Removes a shape from a body. The shape is not deleted, so it can be reused afterwards. + + + + + Removes all shapes from a body. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + If , the continuous collision detection mode is enabled. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + If , the continuous collision detection mode is enabled. + + + + + Sets a body parameter. A list of available parameters is on the constants. + + + + + Returns the value of a body parameter. A list of available parameters is on the constants. + + + + + Restores the default inertia and center of mass based on shapes to cancel any custom values previously set using . + + + + + Sets a body state (see constants). + + + + + Returns a body state. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with body_set_constant_torque(body, Vector3(0, 0, 0)). + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Adds a body to the list of bodies exempt from collisions. + + + + + Removes a body from the list of bodies exempt from collisions. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies. This is enabled by setting the maximum number of contacts reported to a number greater than 0. + + + + + Returns the maximum contacts that can be reported. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a , used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Sets the body pickable with rays if is set. + + + + + Returns if a collision would result from moving along a motion vector from a given point in space. is passed to set motion parameters. can be passed to return additional information. + + + + + Returns the of the body. Returns if the body is destroyed or removed from the physics space. + + + + + Creates a new soft body and returns its internal . + + + + + Requests that the physics server updates the rendering server with the latest positions of the given soft body's points through the interface. + + + + + Assigns a space to the given soft body (see ). + + + + + Returns the of the space assigned to the given soft body. + + + + + Sets the mesh of the given soft body. + + + + + Returns the bounds of the given soft body in global coordinates. + + + + + Sets the physics layer or layers the given soft body belongs to. + + + + + Returns the physics layer or layers that the given soft body belongs to. + + + + + Sets the physics layer or layers the given soft body can collide with. + + + + + Returns the physics layer or layers that the given soft body can collide with. + + + + + Adds the given body to the list of bodies exempt from collisions. + + + + + Removes the given body from the list of bodies exempt from collisions. + + + + + Sets the given body state for the given body (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Returns the given soft body state (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Sets the global transform of the given soft body. + + + + + Sets whether the given soft body will be pickable when using object picking. + + + + + Sets the simulation precision of the given soft body. Increasing this value will improve the resulting simulation, but can affect performance. Use with care. + + + + + Returns the simulation precision of the given soft body. + + + + + Sets the total mass for the given soft body. + + + + + Returns the total mass assigned to the given soft body. + + + + + Sets the linear stiffness of the given soft body. Higher values will result in a stiffer body, while lower values will increase the body's ability to bend. The value can be between 0.0 and 1.0 (inclusive). + + + + + Returns the linear stiffness of the given soft body. + + + + + Sets the pressure coefficient of the given soft body. Simulates pressure build-up from inside this body. Higher values increase the strength of this effect. + + + + + Returns the pressure coefficient of the given soft body. + + + + + Sets the damping coefficient of the given soft body. Higher values will slow down the body more noticeably when forces are applied. + + + + + Returns the damping coefficient of the given soft body. + + + + + Sets the drag coefficient of the given soft body. Higher values increase this body's air resistance. + Note: This value is currently unused by Godot's default physics implementation. + + + + + Returns the drag coefficient of the given soft body. + + + + + Moves the given soft body point to a position in global coordinates. + + + + + Returns the current position of the given soft body point in global coordinates. + + + + + Unpins all points of the given soft body. + + + + + Pins or unpins the given soft body point based on the value of . + Note: Pinning a point effectively makes it kinematic, preventing it from being affected by forces, but you can still move it using . + + + + + Returns whether the given soft body point is pinned. + + + + + Sets a pin_joint parameter (see constants). + + + + + Gets a pin_joint parameter (see constants). + + + + + Sets position of the joint in the local space of body a of the joint. + + + + + Returns position of the joint in the local space of body a of the joint. + + + + + Sets position of the joint in the local space of body b of the joint. + + + + + Returns position of the joint in the local space of body b of the joint. + + + + + Sets a hinge_joint parameter (see constants). + + + + + Gets a hinge_joint parameter (see ). + + + + + Sets a hinge_joint flag (see constants). + + + + + Gets a hinge_joint flag (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Sets a cone_twist_joint parameter (see constants). + + + + + Gets a cone_twist_joint parameter (see constants). + + + + + Returns the type of the Joint3D. + + + + + Sets the priority value of the Joint3D. + + + + + Gets the priority value of the Joint3D. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Make the joint a generic six degrees of freedom (6DOF) joint. Use and to set the joint's flags and parameters respectively. + + + + + Sets the value of a given generic 6DOF joint parameter. See for the list of available parameters. + + + + + Returns the value of a generic 6DOF joint parameter. See for the list of available parameters. + + + + + Sets the value of a given generic 6DOF joint flag. See for the list of available flags. + + + + + Returns the value of a generic 6DOF joint flag. See for the list of available flags. + + + + + Destroys any of the objects created by PhysicsServer3D. If the passed is not one of the objects that can be created by PhysicsServer3D, an error will be sent to the console. + + + + + Activates or deactivates the 3D physics engine. + + + + + Returns information about the current state of the 3D physics engine. See for a list of available states. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'sphere_shape_create' method. + + + + + Cached name for the 'box_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'cylinder_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'heightmap_shape_create' method. + + + + + Cached name for the 'custom_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_set_margin' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'shape_get_margin' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'area_set_ray_pickable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_set_enable_continuous_collision_detection' method. + + + + + Cached name for the 'body_is_continuous_collision_detection_enabled' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_set_axis_lock' method. + + + + + Cached name for the 'body_is_axis_locked' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_set_ray_pickable' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'soft_body_create' method. + + + + + Cached name for the 'soft_body_update_rendering_server' method. + + + + + Cached name for the 'soft_body_set_space' method. + + + + + Cached name for the 'soft_body_get_space' method. + + + + + Cached name for the 'soft_body_set_mesh' method. + + + + + Cached name for the 'soft_body_get_bounds' method. + + + + + Cached name for the 'soft_body_set_collision_layer' method. + + + + + Cached name for the 'soft_body_get_collision_layer' method. + + + + + Cached name for the 'soft_body_set_collision_mask' method. + + + + + Cached name for the 'soft_body_get_collision_mask' method. + + + + + Cached name for the 'soft_body_add_collision_exception' method. + + + + + Cached name for the 'soft_body_remove_collision_exception' method. + + + + + Cached name for the 'soft_body_set_state' method. + + + + + Cached name for the 'soft_body_get_state' method. + + + + + Cached name for the 'soft_body_set_transform' method. + + + + + Cached name for the 'soft_body_set_ray_pickable' method. + + + + + Cached name for the 'soft_body_set_simulation_precision' method. + + + + + Cached name for the 'soft_body_get_simulation_precision' method. + + + + + Cached name for the 'soft_body_set_total_mass' method. + + + + + Cached name for the 'soft_body_get_total_mass' method. + + + + + Cached name for the 'soft_body_set_linear_stiffness' method. + + + + + Cached name for the 'soft_body_get_linear_stiffness' method. + + + + + Cached name for the 'soft_body_set_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_get_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_set_damping_coefficient' method. + + + + + Cached name for the 'soft_body_get_damping_coefficient' method. + + + + + Cached name for the 'soft_body_set_drag_coefficient' method. + + + + + Cached name for the 'soft_body_get_drag_coefficient' method. + + + + + Cached name for the 'soft_body_move_point' method. + + + + + Cached name for the 'soft_body_get_point_global_position' method. + + + + + Cached name for the 'soft_body_remove_all_pinned_points' method. + + + + + Cached name for the 'soft_body_pin_point' method. + + + + + Cached name for the 'soft_body_is_point_pinned' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'pin_joint_set_local_a' method. + + + + + Cached name for the 'pin_joint_get_local_a' method. + + + + + Cached name for the 'pin_joint_set_local_b' method. + + + + + Cached name for the 'pin_joint_get_local_b' method. + + + + + Cached name for the 'joint_make_hinge' method. + + + + + Cached name for the 'hinge_joint_set_param' method. + + + + + Cached name for the 'hinge_joint_get_param' method. + + + + + Cached name for the 'hinge_joint_set_flag' method. + + + + + Cached name for the 'hinge_joint_get_flag' method. + + + + + Cached name for the 'joint_make_slider' method. + + + + + Cached name for the 'slider_joint_set_param' method. + + + + + Cached name for the 'slider_joint_get_param' method. + + + + + Cached name for the 'joint_make_cone_twist' method. + + + + + Cached name for the 'cone_twist_joint_set_param' method. + + + + + Cached name for the 'cone_twist_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'joint_set_solver_priority' method. + + + + + Cached name for the 'joint_get_solver_priority' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_generic_6dof' method. + + + + + Cached name for the 'generic_6dof_joint_set_param' method. + + + + + Cached name for the 'generic_6dof_joint_get_param' method. + + + + + Cached name for the 'generic_6dof_joint_set_flag' method. + + + + + Cached name for the 'generic_6dof_joint_get_flag' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_area_add_shape' method. + + + + + Cached name for the '_area_attach_object_instance_id' method. + + + + + Cached name for the '_area_clear_shapes' method. + + + + + Cached name for the '_area_create' method. + + + + + Cached name for the '_area_get_collision_layer' method. + + + + + Cached name for the '_area_get_collision_mask' method. + + + + + Cached name for the '_area_get_object_instance_id' method. + + + + + Cached name for the '_area_get_param' method. + + + + + Cached name for the '_area_get_shape' method. + + + + + Cached name for the '_area_get_shape_count' method. + + + + + Cached name for the '_area_get_shape_transform' method. + + + + + Cached name for the '_area_get_space' method. + + + + + Cached name for the '_area_get_transform' method. + + + + + Cached name for the '_area_remove_shape' method. + + + + + Cached name for the '_area_set_area_monitor_callback' method. + + + + + Cached name for the '_area_set_collision_layer' method. + + + + + Cached name for the '_area_set_collision_mask' method. + + + + + Cached name for the '_area_set_monitor_callback' method. + + + + + Cached name for the '_area_set_monitorable' method. + + + + + Cached name for the '_area_set_param' method. + + + + + Cached name for the '_area_set_ray_pickable' method. + + + + + Cached name for the '_area_set_shape' method. + + + + + Cached name for the '_area_set_shape_disabled' method. + + + + + Cached name for the '_area_set_shape_transform' method. + + + + + Cached name for the '_area_set_space' method. + + + + + Cached name for the '_area_set_transform' method. + + + + + Cached name for the '_body_add_collision_exception' method. + + + + + Cached name for the '_body_add_constant_central_force' method. + + + + + Cached name for the '_body_add_constant_force' method. + + + + + Cached name for the '_body_add_constant_torque' method. + + + + + Cached name for the '_body_add_shape' method. + + + + + Cached name for the '_body_apply_central_force' method. + + + + + Cached name for the '_body_apply_central_impulse' method. + + + + + Cached name for the '_body_apply_force' method. + + + + + Cached name for the '_body_apply_impulse' method. + + + + + Cached name for the '_body_apply_torque' method. + + + + + Cached name for the '_body_apply_torque_impulse' method. + + + + + Cached name for the '_body_attach_object_instance_id' method. + + + + + Cached name for the '_body_clear_shapes' method. + + + + + Cached name for the '_body_create' method. + + + + + Cached name for the '_body_get_collision_exceptions' method. + + + + + Cached name for the '_body_get_collision_layer' method. + + + + + Cached name for the '_body_get_collision_mask' method. + + + + + Cached name for the '_body_get_collision_priority' method. + + + + + Cached name for the '_body_get_constant_force' method. + + + + + Cached name for the '_body_get_constant_torque' method. + + + + + Cached name for the '_body_get_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_get_direct_state' method. + + + + + Cached name for the '_body_get_max_contacts_reported' method. + + + + + Cached name for the '_body_get_mode' method. + + + + + Cached name for the '_body_get_object_instance_id' method. + + + + + Cached name for the '_body_get_param' method. + + + + + Cached name for the '_body_get_shape' method. + + + + + Cached name for the '_body_get_shape_count' method. + + + + + Cached name for the '_body_get_shape_transform' method. + + + + + Cached name for the '_body_get_space' method. + + + + + Cached name for the '_body_get_state' method. + + + + + Cached name for the '_body_get_user_flags' method. + + + + + Cached name for the '_body_is_axis_locked' method. + + + + + Cached name for the '_body_is_continuous_collision_detection_enabled' method. + + + + + Cached name for the '_body_is_omitting_force_integration' method. + + + + + Cached name for the '_body_remove_collision_exception' method. + + + + + Cached name for the '_body_remove_shape' method. + + + + + Cached name for the '_body_reset_mass_properties' method. + + + + + Cached name for the '_body_set_axis_lock' method. + + + + + Cached name for the '_body_set_axis_velocity' method. + + + + + Cached name for the '_body_set_collision_layer' method. + + + + + Cached name for the '_body_set_collision_mask' method. + + + + + Cached name for the '_body_set_collision_priority' method. + + + + + Cached name for the '_body_set_constant_force' method. + + + + + Cached name for the '_body_set_constant_torque' method. + + + + + Cached name for the '_body_set_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_set_enable_continuous_collision_detection' method. + + + + + Cached name for the '_body_set_force_integration_callback' method. + + + + + Cached name for the '_body_set_max_contacts_reported' method. + + + + + Cached name for the '_body_set_mode' method. + + + + + Cached name for the '_body_set_omit_force_integration' method. + + + + + Cached name for the '_body_set_param' method. + + + + + Cached name for the '_body_set_ray_pickable' method. + + + + + Cached name for the '_body_set_shape' method. + + + + + Cached name for the '_body_set_shape_disabled' method. + + + + + Cached name for the '_body_set_shape_transform' method. + + + + + Cached name for the '_body_set_space' method. + + + + + Cached name for the '_body_set_state' method. + + + + + Cached name for the '_body_set_state_sync_callback' method. + + + + + Cached name for the '_body_set_user_flags' method. + + + + + Cached name for the '_box_shape_create' method. + + + + + Cached name for the '_capsule_shape_create' method. + + + + + Cached name for the '_concave_polygon_shape_create' method. + + + + + Cached name for the '_cone_twist_joint_get_param' method. + + + + + Cached name for the '_cone_twist_joint_set_param' method. + + + + + Cached name for the '_convex_polygon_shape_create' method. + + + + + Cached name for the '_custom_shape_create' method. + + + + + Cached name for the '_cylinder_shape_create' method. + + + + + Cached name for the '_end_sync' method. + + + + + Cached name for the '_finish' method. + + + + + Cached name for the '_flush_queries' method. + + + + + Cached name for the '_free_rid' method. + + + + + Cached name for the '_generic_6dof_joint_get_flag' method. + + + + + Cached name for the '_generic_6dof_joint_get_param' method. + + + + + Cached name for the '_generic_6dof_joint_set_flag' method. + + + + + Cached name for the '_generic_6dof_joint_set_param' method. + + + + + Cached name for the '_get_process_info' method. + + + + + Cached name for the '_heightmap_shape_create' method. + + + + + Cached name for the '_hinge_joint_get_flag' method. + + + + + Cached name for the '_hinge_joint_get_param' method. + + + + + Cached name for the '_hinge_joint_set_flag' method. + + + + + Cached name for the '_hinge_joint_set_param' method. + + + + + Cached name for the '_init' method. + + + + + Cached name for the '_is_flushing_queries' method. + + + + + Cached name for the '_joint_clear' method. + + + + + Cached name for the '_joint_create' method. + + + + + Cached name for the '_joint_disable_collisions_between_bodies' method. + + + + + Cached name for the '_joint_get_solver_priority' method. + + + + + Cached name for the '_joint_get_type' method. + + + + + Cached name for the '_joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the '_joint_make_cone_twist' method. + + + + + Cached name for the '_joint_make_generic_6dof' method. + + + + + Cached name for the '_joint_make_hinge' method. + + + + + Cached name for the '_joint_make_hinge_simple' method. + + + + + Cached name for the '_joint_make_pin' method. + + + + + Cached name for the '_joint_make_slider' method. + + + + + Cached name for the '_joint_set_solver_priority' method. + + + + + Cached name for the '_pin_joint_get_local_a' method. + + + + + Cached name for the '_pin_joint_get_local_b' method. + + + + + Cached name for the '_pin_joint_get_param' method. + + + + + Cached name for the '_pin_joint_set_local_a' method. + + + + + Cached name for the '_pin_joint_set_local_b' method. + + + + + Cached name for the '_pin_joint_set_param' method. + + + + + Cached name for the '_separation_ray_shape_create' method. + + + + + Cached name for the '_set_active' method. + + + + + Cached name for the '_shape_get_custom_solver_bias' method. + + + + + Cached name for the '_shape_get_data' method. + + + + + Cached name for the '_shape_get_margin' method. + + + + + Cached name for the '_shape_get_type' method. + + + + + Cached name for the '_shape_set_custom_solver_bias' method. + + + + + Cached name for the '_shape_set_data' method. + + + + + Cached name for the '_shape_set_margin' method. + + + + + Cached name for the '_slider_joint_get_param' method. + + + + + Cached name for the '_slider_joint_set_param' method. + + + + + Cached name for the '_soft_body_add_collision_exception' method. + + + + + Cached name for the '_soft_body_create' method. + + + + + Cached name for the '_soft_body_get_bounds' method. + + + + + Cached name for the '_soft_body_get_collision_exceptions' method. + + + + + Cached name for the '_soft_body_get_collision_layer' method. + + + + + Cached name for the '_soft_body_get_collision_mask' method. + + + + + Cached name for the '_soft_body_get_damping_coefficient' method. + + + + + Cached name for the '_soft_body_get_drag_coefficient' method. + + + + + Cached name for the '_soft_body_get_linear_stiffness' method. + + + + + Cached name for the '_soft_body_get_point_global_position' method. + + + + + Cached name for the '_soft_body_get_pressure_coefficient' method. + + + + + Cached name for the '_soft_body_get_simulation_precision' method. + + + + + Cached name for the '_soft_body_get_space' method. + + + + + Cached name for the '_soft_body_get_state' method. + + + + + Cached name for the '_soft_body_get_total_mass' method. + + + + + Cached name for the '_soft_body_is_point_pinned' method. + + + + + Cached name for the '_soft_body_move_point' method. + + + + + Cached name for the '_soft_body_pin_point' method. + + + + + Cached name for the '_soft_body_remove_all_pinned_points' method. + + + + + Cached name for the '_soft_body_remove_collision_exception' method. + + + + + Cached name for the '_soft_body_set_collision_layer' method. + + + + + Cached name for the '_soft_body_set_collision_mask' method. + + + + + Cached name for the '_soft_body_set_damping_coefficient' method. + + + + + Cached name for the '_soft_body_set_drag_coefficient' method. + + + + + Cached name for the '_soft_body_set_linear_stiffness' method. + + + + + Cached name for the '_soft_body_set_mesh' method. + + + + + Cached name for the '_soft_body_set_pressure_coefficient' method. + + + + + Cached name for the '_soft_body_set_ray_pickable' method. + + + + + Cached name for the '_soft_body_set_simulation_precision' method. + + + + + Cached name for the '_soft_body_set_space' method. + + + + + Cached name for the '_soft_body_set_state' method. + + + + + Cached name for the '_soft_body_set_total_mass' method. + + + + + Cached name for the '_soft_body_set_transform' method. + + + + + Cached name for the '_soft_body_update_rendering_server' method. + + + + + Cached name for the '_space_create' method. + + + + + Cached name for the '_space_get_contact_count' method. + + + + + Cached name for the '_space_get_contacts' method. + + + + + Cached name for the '_space_get_direct_state' method. + + + + + Cached name for the '_space_get_param' method. + + + + + Cached name for the '_space_is_active' method. + + + + + Cached name for the '_space_set_active' method. + + + + + Cached name for the '_space_set_debug_contacts' method. + + + + + Cached name for the '_space_set_param' method. + + + + + Cached name for the '_sphere_shape_create' method. + + + + + Cached name for the '_step' method. + + + + + Cached name for the '_sync' method. + + + + + Cached name for the '_world_boundary_shape_create' method. + + + + + Cached name for the 'body_test_motion_is_excluding_body' method. + + + + + Cached name for the 'body_test_motion_is_excluding_object' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Called by the to set the bounding box for the . + + + + + Called by the to set the normal for the vertex at the index specified by . + Note: The parameter used to be of type const void* prior to Godot 4.2. + + + + + Called by the to set the position for the vertex at the index specified by . + Note: The parameter used to be of type const void* prior to Godot 4.2. + + + + + Sets the position for the vertex at the index specified by . + + + + + Sets the normal for the vertex at the index specified by . + + + + + Sets the bounding box for the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_aabb' method. + + + + + Cached name for the '_set_normal' method. + + + + + Cached name for the '_set_vertex' method. + + + + + Cached name for the 'set_vertex' method. + + + + + Cached name for the 'set_normal' method. + + + + + Cached name for the 'set_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the shape, you can configure the parameters for . + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + The collision margin for the shape. + + + + + The motion of the shape being queried for. + + + + + The that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over . + + + + + The queried shape's that will be used for collision/intersection queries. Use this over if you want to optimize for performance using the Servers API: + + RID shapeRid = PhysicsServer2D.CircleShapeCreate(); + int radius = 64; + PhysicsServer2D.ShapeSetData(shapeRid, radius); + + var params = new PhysicsShapeQueryParameters2D(); + params.ShapeRid = shapeRid; + + // Execute physics queries here... + + // Release the shape when done with physics queries. + PhysicsServer2D.FreeRid(shapeRid); + + + + + + The queried shape's transform matrix. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'shape_rid' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_shape_rid' method. + + + + + Cached name for the 'get_shape_rid' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the shape, you can configure the parameters for . + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + The collision margin for the shape. + + + + + The motion of the shape being queried for. + + + + + The that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over . + + + + + The queried shape's that will be used for collision/intersection queries. Use this over if you want to optimize for performance using the Servers API: + + RID shapeRid = PhysicsServer3D.ShapeCreate(PhysicsServer3D.ShapeType.Sphere); + float radius = 2.0f; + PhysicsServer3D.ShapeSetData(shapeRid, radius); + + var params = new PhysicsShapeQueryParameters3D(); + params.ShapeRid = shapeRid; + + // Execute physics queries here... + + // Release the shape when done with physics queries. + PhysicsServer3D.FreeRid(shapeRid); + + + + + + The queried shape's transform matrix. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'shape_rid' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_shape_rid' method. + + + + + Cached name for the 'get_shape_rid' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the motion, you can configure the parameters for . + + + + + Transform in global space where the motion should start. Usually set to for the current body's transform. + + + + + Motion vector to define the length and direction of the motion to test. + + + + + Increases the size of the shapes involved in the collision detection. + + + + + If set to , shapes of type are used to detect collisions and can stop the motion. Can be useful when snapping to the ground. + If set to , shapes of type are only used for separation when overlapping with other bodies. That's the main use for separation ray shapes. + + + + + Optional array of body to exclude from collision. Use to get the associated with a -derived node. + + + + + Optional array of object unique instance ID to exclude from collision. See . + + + + + If set to , any depenetration from the recovery phase is reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + If set to , only collisions resulting from the motion are reported, which is generally the desired behavior. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'collide_separation_ray' property. + + + + + Cached name for the 'exclude_bodies' property. + + + + + Cached name for the 'exclude_objects' property. + + + + + Cached name for the 'recovery_as_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'is_collide_separation_ray_enabled' method. + + + + + Cached name for the 'set_collide_separation_ray_enabled' method. + + + + + Cached name for the 'get_exclude_bodies' method. + + + + + Cached name for the 'set_exclude_bodies' method. + + + + + Cached name for the 'get_exclude_objects' method. + + + + + Cached name for the 'set_exclude_objects' method. + + + + + Cached name for the 'is_recovery_as_collision_enabled' method. + + + + + Cached name for the 'set_recovery_as_collision_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the motion, you can configure the parameters for . + + + + + Transform in global space where the motion should start. Usually set to for the current body's transform. + + + + + Motion vector to define the length and direction of the motion to test. + + + + + Increases the size of the shapes involved in the collision detection. + + + + + Maximum number of returned collisions, between 1 and 32. Always returns the deepest detected collisions. + + + + + If set to , shapes of type are used to detect collisions and can stop the motion. Can be useful when snapping to the ground. + If set to , shapes of type are only used for separation when overlapping with other bodies. That's the main use for separation ray shapes. + + + + + Optional array of body to exclude from collision. Use to get the associated with a -derived node. + + + + + Optional array of object unique instance ID to exclude from collision. See . + + + + + If set to , any depenetration from the recovery phase is reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + If set to , only collisions resulting from the motion are reported, which is generally the desired behavior. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'max_collisions' property. + + + + + Cached name for the 'collide_separation_ray' property. + + + + + Cached name for the 'exclude_bodies' property. + + + + + Cached name for the 'exclude_objects' property. + + + + + Cached name for the 'recovery_as_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_max_collisions' method. + + + + + Cached name for the 'set_max_collisions' method. + + + + + Cached name for the 'is_collide_separation_ray_enabled' method. + + + + + Cached name for the 'set_collide_separation_ray_enabled' method. + + + + + Cached name for the 'get_exclude_bodies' method. + + + + + Cached name for the 'set_exclude_bodies' method. + + + + + Cached name for the 'get_exclude_objects' method. + + + + + Cached name for the 'set_exclude_objects' method. + + + + + Cached name for the 'is_recovery_as_collision_enabled' method. + + + + + Cached name for the 'set_recovery_as_collision_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Describes the motion and collision result from . + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the point of collision in global coordinates, if a collision occurred. + + + + + Returns the colliding body's shape's normal at the point of collision, if a collision occurred. + + + + + Returns the colliding body's velocity, if a collision occurred. + + + + + Returns the unique instance ID of the colliding body's attached , if a collision occurred. See . + + + + + Returns the colliding body's used by the , if a collision occurred. + + + + + Returns the colliding body's attached , if a collision occurred. + + + + + Returns the colliding body's shape index, if a collision occurred. See . + + + + + Returns the moving object's colliding shape, if a collision occurred. + + + + + Returns the length of overlap along the collision normal, if a collision occurred. + + + + + Returns the maximum fraction of the motion that can occur without a collision, between 0 and 1. + + + + + Returns the minimum fraction of the motion needed to collide, if a collision occurred, between 0 and 1. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_local_shape' method. + + + + + Cached name for the 'get_collision_depth' method. + + + + + Cached name for the 'get_collision_safe_fraction' method. + + + + + Cached name for the 'get_collision_unsafe_fraction' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Describes the motion and collision result from . + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the maximum fraction of the motion that can occur without a collision, between 0 and 1. + + + + + Returns the minimum fraction of the motion needed to collide, if a collision occurred, between 0 and 1. + + + + + Returns the number of detected collisions. + + + + + Returns the point of collision in global coordinates given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's shape's normal at the point of collision given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's velocity given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the unique instance ID of the colliding body's attached given a collision index (the deepest collision by default), if a collision occurred. See . + + + + + Returns the colliding body's used by the given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's attached given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's shape index given a collision index (the deepest collision by default), if a collision occurred. See . + + + + + Returns the moving object's colliding shape given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the length of overlap along the collision normal given a collision index (the deepest collision by default), if a collision occurred. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_collision_safe_fraction' method. + + + + + Cached name for the 'get_collision_unsafe_fraction' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_local_shape' method. + + + + + Cached name for the 'get_collision_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A physics joint that attaches two 2D physics bodies at a single point, allowing them to freely rotate. For example, a can be attached to a to create a pendulum or a seesaw. + + + + + The higher this value, the more the bond to the pinned partner can flex. + + + + + If , the pin maximum and minimum rotation, defined by and are applied. + + + + + The minimum rotation. Only active if is . + + + + + The maximum rotation. Only active if is . + + + + + When activated, a motor turns the pin. + + + + + Target speed for the motor. In radians per second. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'softness' property. + + + + + Cached name for the 'angular_limit_enabled' property. + + + + + Cached name for the 'angular_limit_lower' property. + + + + + Cached name for the 'angular_limit_upper' property. + + + + + Cached name for the 'motor_enabled' property. + + + + + Cached name for the 'motor_target_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_softness' method. + + + + + Cached name for the 'get_softness' method. + + + + + Cached name for the 'set_angular_limit_lower' method. + + + + + Cached name for the 'get_angular_limit_lower' method. + + + + + Cached name for the 'set_angular_limit_upper' method. + + + + + Cached name for the 'get_angular_limit_upper' method. + + + + + Cached name for the 'set_motor_target_velocity' method. + + + + + Cached name for the 'get_motor_target_velocity' method. + + + + + Cached name for the 'set_motor_enabled' method. + + + + + Cached name for the 'is_motor_enabled' method. + + + + + Cached name for the 'set_angular_limit_enabled' method. + + + + + Cached name for the 'is_angular_limit_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A physics joint that attaches two 3D physics bodies at a single point, allowing them to freely rotate. For example, a can be attached to a to create a pendulum or a seesaw. + + + + + The force with which the pinned objects stay in positional relation to each other. The higher, the stronger. + + + + + The force with which the pinned objects stay in velocity relation to each other. The higher, the stronger. + + + + + If above 0, this value is the maximum value for an impulse that this Joint3D produces. + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class replaces a or a -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 -derived class is missing, for example when using a different engine version. + Note: This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class replaces a or a -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 -derived class is missing, for example when using a different engine version. + Note: This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a 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). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a 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). + + + + + The smallest enclosing this mesh in local space. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'aabb' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + The texture's size (in pixels). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + The texture's size (in pixels). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + The size of each texture layer (in pixels). + + + + + The number of layers in the texture array. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'layers' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_layers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a planar . 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 to . + Note: When using a large textured (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase and until you no longer notice UV jittering. + + + + + will face the positive X-axis. + + + + + will face the positive Y-axis. This matches the behavior of the in Godot 3.x. + + + + + will face the positive Z-axis. This matches the behavior of the QuadMesh in Godot 3.x. + + + + + Size of the generated plane. + + + + + Number of subdivision along the X axis. + + + + + Number of subdivision along the Z axis. + + + + + Offset of the generated plane. Useful for particles. + + + + + Direction that the is facing. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'subdivide_width' property. + + + + + Cached name for the 'subdivide_depth' property. + + + + + Cached name for the 'center_offset' property. + + + + + Cached name for the 'orientation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_subdivide_width' method. + + + + + Cached name for the 'get_subdivide_width' method. + + + + + Cached name for the 'set_subdivide_depth' method. + + + + + Cached name for the 'get_subdivide_depth' method. + + + + + Cached name for the 'set_center_offset' method. + + + + + Cached name for the 'get_center_offset' method. + + + + + Cached name for the 'set_orientation' method. + + + + + Cached name for the 'get_orientation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Casts light in a 2D environment. This light's shape is defined by a (usually grayscale) texture. + + + + + used for the light's appearance. + + + + + The offset of the light's . + + + + + The 's scale factor. + + + + + The height of the light. Used with 2D normal mapping. The units are in pixels, e.g. if the height is 100, then it will illuminate an object 100 pixels away at a 45° angle to the plane. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'texture_scale' property. + + + + + Cached name for the 'height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_offset' method. + + + + + Cached name for the 'get_texture_offset' method. + + + + + Cached name for the 'set_texture_scale' method. + + + + + Cached name for the 'get_texture_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The PointMesh is made from a single point. Instead of relying on triangles, points are rendered as a single rectangle on the screen with a constant size. They are intended to be used with Particle systems, but can be used as a cheap way to render constant size billboarded sprites (for example in a point cloud). + PointMeshes, must be used with a material that has a point size. Point size can be accessed in a shader with POINT_SIZE, or in a by setting and the variable . + When using PointMeshes, properties that normally alter vertices will be ignored, including billboard mode, grow, and cull face. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The polygon's fill color. If is set, it will be multiplied by this color. It will also be the default color for vertices not set in . + + + + + The offset applied to each vertex. + + + + + If , polygon edges will be anti-aliased. + + + + + The polygon's fill texture. Use to set texture coordinates. + + + + + Amount to offset the polygon's . If set to Vector2(0, 0), the texture's origin (its top-left corner) will be placed at the polygon's position. + + + + + Amount to multiply the coordinates when using . Larger values make the texture smaller, and vice versa. + + + + + The texture's rotation in radians. + + + + + Path to a node used for skeleton-based deformations of this polygon. If empty or invalid, skeletal deformations will not be used. + + + + + If , the polygon will be inverted, containing the area outside the defined points and extending to the . + + + + + Added padding applied to the bounding box when is set to . Setting this value too small may result in a "Bad Polygon" error. + + + + + The polygon's list of vertices. The final point will be connected to the first. + + + + + Texture coordinates for each vertex of the polygon. There should be one UV value per polygon vertex. If there are fewer, undefined vertices will use Vector2(0, 0). + + + + + Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use . + + + + + The list of polygons, in case more than one is being represented. Every individual polygon is stored as a [] where each is an index to a point in . If empty, this property will be ignored, and the resulting single polygon will be composed of all points in , using the order they are stored in. + + + + + Number of internal vertices, used for UV mapping. + + + + + Adds a bone with the specified and . + + + + + Adds a bone with the specified and . + + + + + Returns the number of bones in this . + + + + + Returns the path to the node associated with the specified bone. + + + + + Returns the weight values of the specified bone. + + + + + Removes the specified bone from this . + + + + + Removes all bones from this . + + + + + Sets the path to the node associated with the specified bone. + + + + + Sets the weight values for the specified bone. + + + + + Sets the weight values for the specified bone. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'antialiased' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_offset' property. + + + + + Cached name for the 'texture_scale' property. + + + + + Cached name for the 'texture_rotation' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached name for the 'invert_enabled' property. + + + + + Cached name for the 'invert_border' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'uv' property. + + + + + Cached name for the 'vertex_colors' property. + + + + + Cached name for the 'polygons' property. + + + + + Cached name for the 'bones' property. + + + + + Cached name for the 'internal_vertex_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_uv' method. + + + + + Cached name for the 'get_uv' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_polygons' method. + + + + + Cached name for the 'get_polygons' method. + + + + + Cached name for the 'set_vertex_colors' method. + + + + + Cached name for the 'get_vertex_colors' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_offset' method. + + + + + Cached name for the 'get_texture_offset' method. + + + + + Cached name for the 'set_texture_rotation' method. + + + + + Cached name for the 'get_texture_rotation' method. + + + + + Cached name for the 'set_texture_scale' method. + + + + + Cached name for the 'get_texture_scale' method. + + + + + Cached name for the 'set_invert_enabled' method. + + + + + Cached name for the 'get_invert_enabled' method. + + + + + Cached name for the 'set_antialiased' method. + + + + + Cached name for the 'get_antialiased' method. + + + + + Cached name for the 'set_invert_border' method. + + + + + Cached name for the 'get_invert_border' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'add_bone' method. + + + + + Cached name for the 'get_bone_count' method. + + + + + Cached name for the 'get_bone_path' method. + + + + + Cached name for the 'get_bone_weights' method. + + + + + Cached name for the 'erase_bone' method. + + + + + Cached name for the 'clear_bones' method. + + + + + Cached name for the 'set_bone_path' method. + + + + + Cached name for the 'set_bone_weights' method. + + + + + Cached name for the 'set_skeleton' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_internal_vertex_count' method. + + + + + Cached name for the 'get_internal_vertex_count' method. + + + + + Cached name for the '_set_bones' method. + + + + + Cached name for the '_get_bones' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a polygon shape that can be used by the engine's occlusion culling system. When an with a 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 . To use arbitrary 3D shapes as occluders, use or 's baking feature instead. + See 's documentation for instructions on setting up occlusion culling. + + + + + The polygon to use for occlusion culling. The polygon can be convex or concave, but it should have as few points as possible to maximize performance. + The polygon must not have intersecting lines. Otherwise, triangulation will fail (with an error message printed). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'polygon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Sets up with an array of points that define the vertices of the polygon, and an array of indices that determine the edges of the polygon. + The length of must be even, returns an error if odd. + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + + + + + + Sets up with an array of points that define the vertices of the polygon, and an array of indices that determine the edges of the polygon. + The length of must be even, returns an error if odd. + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + + + + + + Returns if falls inside the polygon area. + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // Prints True + GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // Prints False + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached name for the 'find_path' method. + + + + + Cached name for the 'get_intersections' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'is_point_inside' method. + + + + + Cached name for the 'set_point_penalty' method. + + + + + Cached name for the 'get_point_penalty' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a base class for contextual windows and panels with fixed position. It's a modal by default (see ) and provides methods for implementing custom popup behavior. + + + + + Emitted when the popup is hidden. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'popup_hide' signal. + + + + + is a modal window used to display a list of options. Useful for toolbars and context menus. + The size of a can be limited by using . If the height of the list of items is larger than the maximum height of the , a within the popup will allow the user to scroll the contents. If no maximum size is set, or if it is set to 0, the height will be limited by its parent rect. + All set_* methods allow negative item indices, i.e. -1 to access the last item, -2 to select the second-to-last item, and so on. + Incremental search: Like and , supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec. + Note: The ID values used for items are limited to 32 bits, not full 64 bits of . This has a range of -2^32 to 2^32 - 1, i.e. -2147483648 to 2147483647. + + + + + If , hides the when an item is selected. + + + + + If , hides the when a checkbox or radio button is selected. + + + + + If , hides the when a state item is selected. + + + + + Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item. + + + + + If , allows navigating with letter keys. + + + + + If set to one of the values of , this is bound to the special system menu. Only one can be bound to each special menu at a time. + + + + + If , will use native menu when supported. + Note: If is linked to , , or another item it can use native menu regardless of this property, use to check it. + + + + + The number of items currently in the list. + + + + + Checks the provided against the 's shortcuts and accelerators, and activates the first item with matching events. If is , only shortcuts and accelerators with global set to will be called. + Returns if an item was successfully activated. + Note: Certain s, such as , will call this method automatically. + + + + + Returns if the system native menu is supported and currently used by this . + + + + + Adds a new item with text . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: The provided is used only in and signals. It's not related to the index arguments in e.g. . + + + + + Adds a new item with text and icon . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + + + + + Adds a new checkable item with text . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new checkable item with text and icon . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new radio check button with text . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Same as , but uses a radio check button. + + + + + Adds a new multistate item with text . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . The default value is defined by . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + + func _ready(): + add_multistate_item("Item", 3, 0) + + index_pressed.connect(func(index: int): + toggle_item_multistate(index) + match get_item_multistate(index): + 0: + print("First state") + 1: + print("Second state") + 2: + print("Third state") + ) + + Note: Multistate items don't update their state automatically and must be done manually. See , and for more info on how to control it. + + + + + Adds a . + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Adds a new item and assigns the specified and icon to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Adds a new checkable item and assigns the specified to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new checkable item and assigns the specified and icon to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new radio check button and assigns a to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Same as , but uses a radio check button. + + + + + Adds an item that will act as a submenu of the parent node when clicked. The argument must be the name of an existing that has been added as a child to this node. This submenu will be shown when the item is clicked, hovered for long enough, or activated using the ui_select or ui_right input actions. + An can optionally be provided. If no is provided, one will be created from the index. + + + + + Adds an item that will act as a submenu of the parent node when clicked. This submenu will be shown when the item is clicked, hovered for long enough, or activated using the ui_select or ui_right input actions. + must be either child of this or has no parent node (in which case it will be automatically added as a child). If the popup has another parent, this method will fail. + An can optionally be provided. If no is provided, one will be created from the index. + + + + + Sets the text of the item at the given . + + + + + Sets item's text base writing direction. + + + + + Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Replaces the icon of the item at the given . + + + + + Sets the maximum allowed width of the icon for the item at the given . This limit is applied on top of the default size of the icon and on top of icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Sets a modulating of the item's icon at the given . + + + + + Sets the checkstate status of the item at the given . + + + + + Sets the of the item at the given . + The is used in and signals. + + + + + Sets the accelerator of the item at the given . An accelerator is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + + + + + Enables/disables the item at the given . When it is disabled, it can't be selected and its action can't be invoked. + + + + + Sets the submenu of the item at the given . The submenu is the name of a child node that would be shown when the item is clicked. + + + + + Sets the submenu of the item at the given . The submenu is a node that would be shown when the item is clicked. It must either be a child of this or has no parent (in which case it will be automatically added as a child). If the popup has another parent, this method will fail. + + + + + Mark the item at the given as a separator, which means that it would be displayed as a line. If , sets the type of the item to plain text. + + + + + Sets whether the item at the given has a checkbox. If , sets the type of the item to plain text. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. + + + + + Sets the type of the item at the given to radio button. If , sets the type of the item to plain text. + + + + + Sets the tooltip of the item at the given . + + + + + Sets a for the item at the given . + + + + + Sets the horizontal offset of the item at the given . + + + + + Sets the state of a multistate item. See for details. + + + + + Sets the max states of a multistate item. See for details. + + + + + Disables the of the item at the given . + + + + + Toggles the check state of the item at the given . + + + + + Cycle to the next state of a multistate item. See for details. + + + + + Returns the text of the item at the given . + + + + + Returns item's text base writing direction. + + + + + Returns item's text language code. + + + + + Returns the icon of the item at the given . + + + + + Returns the maximum allowed width of the icon for the item at the given . + + + + + Returns a modulating the item's icon at the given . + + + + + Returns if the item at the given is checked. + + + + + Returns the ID of the item at the given . id can be manually assigned, while index can not. + + + + + Returns the index of the item containing the specified . Index is automatically assigned to each item by the engine and can not be set manually. + + + + + Returns the accelerator of the item at the given . An accelerator is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The return value is an integer which is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). If no accelerator is defined for the specified , returns 0 (corresponding to ). + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + + + + + Returns if the item at the given is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + + + + + Returns the submenu name of the item at the given . See for more info on how to add a submenu. + + + + + Returns the submenu of the item at the given , or if no submenu was added. See for more info on how to add a submenu. + + + + + Returns if the item is a separator. If it is, it will be displayed as a line. See for more info on how to add a separator. + + + + + Returns if the item at the given is checkable in some way, i.e. if it has a checkbox or radio button. + Note: Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. + + + + + Returns if the item at the given has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + + + + + Returns if the specified item's shortcut is disabled. + + + + + Returns the tooltip associated with the item at the given . + + + + + Returns the associated with the item at the given . + + + + + Returns the horizontal offset of the item at the given . + + + + + Returns the max states of the item at the given . + + + + + Returns the state of the item at the given . + + + + + Sets the currently focused item as the given . + Passing -1 as the index makes so that no item is focused. + + + + + Returns the index of the currently focused item. Returns -1 if no item is focused. + + + + + Moves the scroll view to make the item at the given visible. + + + + + Removes the item at the given from the menu. + Note: The indices of items after the removed item will be shifted by one. + + + + + Adds a separator between items. Separators also occupy an index, which you can set by using the parameter. + A can optionally be provided, which will appear at the center of the separator. + + + + + Removes all items from the . If is , the submenu nodes are automatically freed. + + + + + Returns if the menu is bound to the special system menu. + + + + + Removes all items from the . If is , the submenu nodes are automatically freed. + + + + + Adds a new item and assigns the specified and icon to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Adds a . + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item of some id is pressed or its accelerator is activated. + Note: If id is negative (either explicitly or due to overflow), this will return the corresponding index instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user navigated to an item of some id using the ProjectSettings.input/ui_up or ProjectSettings.input/ui_down input action. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item of some index is pressed or its accelerator is activated. + + + + + Emitted when any item is added, modified or removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hide_on_item_selection' property. + + + + + Cached name for the 'hide_on_checkable_item_selection' property. + + + + + Cached name for the 'hide_on_state_item_selection' property. + + + + + Cached name for the 'submenu_popup_delay' property. + + + + + Cached name for the 'allow_search' property. + + + + + Cached name for the 'system_menu_id' property. + + + + + Cached name for the 'prefer_native_menu' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'activate_item_by_event' method. + + + + + Cached name for the 'set_prefer_native_menu' method. + + + + + Cached name for the 'is_prefer_native_menu' method. + + + + + Cached name for the 'is_native_menu' method. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'add_check_item' method. + + + + + Cached name for the 'add_icon_check_item' method. + + + + + Cached name for the 'add_radio_check_item' method. + + + + + Cached name for the 'add_icon_radio_check_item' method. + + + + + Cached name for the 'add_multistate_item' method. + + + + + Cached name for the 'add_shortcut' method. + + + + + Cached name for the 'add_icon_shortcut' method. + + + + + Cached name for the 'add_check_shortcut' method. + + + + + Cached name for the 'add_icon_check_shortcut' method. + + + + + Cached name for the 'add_radio_check_shortcut' method. + + + + + Cached name for the 'add_icon_radio_check_shortcut' method. + + + + + Cached name for the 'add_submenu_item' method. + + + + + Cached name for the 'add_submenu_node_item' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_text_direction' method. + + + + + Cached name for the 'set_item_language' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_icon_max_width' method. + + + + + Cached name for the 'set_item_icon_modulate' method. + + + + + Cached name for the 'set_item_checked' method. + + + + + Cached name for the 'set_item_id' method. + + + + + Cached name for the 'set_item_accelerator' method. + + + + + Cached name for the 'set_item_metadata' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_submenu' method. + + + + + Cached name for the 'set_item_submenu_node' method. + + + + + Cached name for the 'set_item_as_separator' method. + + + + + Cached name for the 'set_item_as_checkable' method. + + + + + Cached name for the 'set_item_as_radio_checkable' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'set_item_shortcut' method. + + + + + Cached name for the 'set_item_indent' method. + + + + + Cached name for the 'set_item_multistate' method. + + + + + Cached name for the 'set_item_multistate_max' method. + + + + + Cached name for the 'set_item_shortcut_disabled' method. + + + + + Cached name for the 'toggle_item_checked' method. + + + + + Cached name for the 'toggle_item_multistate' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_text_direction' method. + + + + + Cached name for the 'get_item_language' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_icon_max_width' method. + + + + + Cached name for the 'get_item_icon_modulate' method. + + + + + Cached name for the 'is_item_checked' method. + + + + + Cached name for the 'get_item_id' method. + + + + + Cached name for the 'get_item_index' method. + + + + + Cached name for the 'get_item_accelerator' method. + + + + + Cached name for the 'get_item_metadata' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'get_item_submenu' method. + + + + + Cached name for the 'get_item_submenu_node' method. + + + + + Cached name for the 'is_item_separator' method. + + + + + Cached name for the 'is_item_checkable' method. + + + + + Cached name for the 'is_item_radio_checkable' method. + + + + + Cached name for the 'is_item_shortcut_disabled' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'get_item_shortcut' method. + + + + + Cached name for the 'get_item_indent' method. + + + + + Cached name for the 'get_item_multistate_max' method. + + + + + Cached name for the 'get_item_multistate' method. + + + + + Cached name for the 'set_focused_item' method. + + + + + Cached name for the 'get_focused_item' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'scroll_to_item' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_hide_on_item_selection' method. + + + + + Cached name for the 'is_hide_on_item_selection' method. + + + + + Cached name for the 'set_hide_on_checkable_item_selection' method. + + + + + Cached name for the 'is_hide_on_checkable_item_selection' method. + + + + + Cached name for the 'set_hide_on_state_item_selection' method. + + + + + Cached name for the 'is_hide_on_state_item_selection' method. + + + + + Cached name for the 'set_submenu_popup_delay' method. + + + + + Cached name for the 'get_submenu_popup_delay' method. + + + + + Cached name for the 'set_allow_search' method. + + + + + Cached name for the 'get_allow_search' method. + + + + + Cached name for the 'is_system_menu' method. + + + + + Cached name for the 'set_system_menu' method. + + + + + Cached name for the 'get_system_menu' method. + + + + + Cached name for the 'get_system_menu_root' method. + + + + + Cached name for the 'set_system_menu_root' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'id_pressed' signal. + + + + + Cached name for the 'id_focused' signal. + + + + + Cached name for the 'index_pressed' signal. + + + + + Cached name for the 'menu_changed' signal. + + + + + 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 works). If you are making windows, see . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Allow overriding the texture size (for 2D only). + + + + + When running on the editor, this class will keep the source compressed data in memory. Otherwise, the source compressed data is lost after loading and the resource can't be re saved. + This flag allows to keep the compressed data in memory if you intend it to persist after loading. + + + + + Initializes the compressed texture from a base image. The compression mode must be provided. + is recommended to ensure optimum quality if this image will be used as a normal map. + If lossy compression is requested, the quality setting can optionally be provided. This maps to Lossy WebP compression quality. + + + + + Return the image format used (valid after initialized). + + + + + Return the compression mode used (valid after initialized). + + + + + Overrides the flag globally for all textures of this type. This is used primarily by the editor. + + + + + Return whether the flag is overridden for all textures of this type. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'size_override' property. + + + + + Cached name for the 'keep_compressed_buffer' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_image' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_compression_mode' method. + + + + + Cached name for the 'set_size_override' method. + + + + + Cached name for the 'get_size_override' method. + + + + + Cached name for the 'set_keep_compressed_buffer' method. + + + + + Cached name for the 'is_keeping_compressed_buffer' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'set_keep_all_compressed_buffers' method. + + + + + Cached name for the 'is_keeping_all_compressed_buffers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for all primitive meshes. Handles applying a to a primitive mesh. Examples include , , , , , and . + + + + + The current of the primitive mesh. + + + + + Overrides the with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices. + + + + + If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. + This gives the same result as using in . + + + + + If set, generates UV2 UV coordinates applying a padding using the setting. UV2 is needed for lightmapping. + + + + + If is set, specifies the padding in pixels applied along seams of the mesh. Lower padding values allow making better use of the lightmap texture (resulting in higher texel density), but may introduce visible lightmap bleeding along edges. + If the size of the lightmap texture can't be determined when generating the mesh, UV2 is calculated assuming a texture size of 1024x1024. + + + + + Override this method to customize how this primitive mesh should be generated. Should return an where each element is another Array of values required for the mesh (see the constants). + + + + + Returns the mesh arrays used to make up the surface of this primitive mesh. + Example: Pass the result to to create a new surface: + + var c = new CylinderMesh(); + var arrMesh = new ArrayMesh(); + arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c.GetMeshArrays()); + + + + + + Request an update of this primitive mesh based on its properties. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'material' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'flip_faces' property. + + + + + Cached name for the 'add_uv2' property. + + + + + Cached name for the 'uv2_padding' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_create_mesh_array' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'get_mesh_arrays' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached name for the 'set_flip_faces' method. + + + + + Cached name for the 'get_flip_faces' method. + + + + + Cached name for the 'set_add_uv2' method. + + + + + Cached name for the 'get_add_uv2' method. + + + + + Cached name for the 'set_uv2_padding' method. + + + + + Cached name for the 'get_uv2_padding' method. + + + + + Cached name for the 'request_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a prism-shaped . + + + + + Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge. + + + + + Size of the prism. + + + + + Number of added edge loops along the X axis. + + + + + Number of added edge loops along the Y axis. + + + + + Number of added edge loops along the Z axis. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'left_to_right' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'subdivide_width' property. + + + + + Cached name for the 'subdivide_height' property. + + + + + Cached name for the 'subdivide_depth' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_left_to_right' method. + + + + + Cached name for the 'get_left_to_right' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_subdivide_width' method. + + + + + Cached name for the 'get_subdivide_width' method. + + + + + Cached name for the 'set_subdivide_height' method. + + + + + Cached name for the 'get_subdivide_height' method. + + + + + Cached name for the 'set_subdivide_depth' method. + + + + + Cached name for the 'get_subdivide_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + supports up to 4 suns, using the color, and energy, direction, and angular distance of the first four nodes in the scene. This means that the suns are defined individually by the properties of their corresponding s and globally by and . + 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 . + + + + + Color of the sky at the top. Blends with . + + + + + Color of the sky at the horizon. Blends with . + + + + + How quickly the fades into the . + + + + + Multiplier for sky color. A higher value will make the sky brighter. + + + + + The sky cover texture to use. This texture must use an equirectangular projection (similar to ). The texture's colors will be added to the existing sky color, and will be multiplied by and . This is mainly suited to displaying stars at night, but it can also be used to display clouds at day or night (with a non-physically-accurate look). + + + + + The tint to apply to the texture. This can be used to change the sky cover's colors or opacity independently of the sky energy, which is useful for day/night or weather transitions. Only effective if a texture is defined in . + + + + + Color of the ground at the bottom. Blends with . + + + + + Color of the ground at the horizon. Blends with . + + + + + How quickly the fades into the . + + + + + Multiplier for ground color. A higher value will make the ground brighter. + + + + + Distance from center of sun where it fades out completely. + + + + + How quickly the sun fades away between the edge of the sun disk and . + + + + + If , enables debanding. Debanding adds a small amount of noise which helps reduce banding that appears from the smooth changes in color in the sky. + + + + + The sky's overall brightness multiplier. Higher values result in a brighter sky. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sky_top_color' property. + + + + + Cached name for the 'sky_horizon_color' property. + + + + + Cached name for the 'sky_curve' property. + + + + + Cached name for the 'sky_energy_multiplier' property. + + + + + Cached name for the 'sky_cover' property. + + + + + Cached name for the 'sky_cover_modulate' property. + + + + + Cached name for the 'ground_bottom_color' property. + + + + + Cached name for the 'ground_horizon_color' property. + + + + + Cached name for the 'ground_curve' property. + + + + + Cached name for the 'ground_energy_multiplier' property. + + + + + Cached name for the 'sun_angle_max' property. + + + + + Cached name for the 'sun_curve' property. + + + + + Cached name for the 'use_debanding' property. + + + + + Cached name for the 'energy_multiplier' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sky_top_color' method. + + + + + Cached name for the 'get_sky_top_color' method. + + + + + Cached name for the 'set_sky_horizon_color' method. + + + + + Cached name for the 'get_sky_horizon_color' method. + + + + + Cached name for the 'set_sky_curve' method. + + + + + Cached name for the 'get_sky_curve' method. + + + + + Cached name for the 'set_sky_energy_multiplier' method. + + + + + Cached name for the 'get_sky_energy_multiplier' method. + + + + + Cached name for the 'set_sky_cover' method. + + + + + Cached name for the 'get_sky_cover' method. + + + + + Cached name for the 'set_sky_cover_modulate' method. + + + + + Cached name for the 'get_sky_cover_modulate' method. + + + + + Cached name for the 'set_ground_bottom_color' method. + + + + + Cached name for the 'get_ground_bottom_color' method. + + + + + Cached name for the 'set_ground_horizon_color' method. + + + + + Cached name for the 'get_ground_horizon_color' method. + + + + + Cached name for the 'set_ground_curve' method. + + + + + Cached name for the 'get_ground_curve' method. + + + + + Cached name for the 'set_ground_energy_multiplier' method. + + + + + Cached name for the 'get_ground_energy_multiplier' method. + + + + + Cached name for the 'set_sun_angle_max' method. + + + + + Cached name for the 'get_sun_angle_max' method. + + + + + Cached name for the 'set_sun_curve' method. + + + + + Cached name for the 'get_sun_curve' method. + + + + + Cached name for the 'set_use_debanding' method. + + + + + Cached name for the 'get_use_debanding' method. + + + + + Cached name for the 'set_energy_multiplier' method. + + + + + Cached name for the 'get_energy_multiplier' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control used for visual representation of a percentage. Shows fill percentage from right to left. + + + + + The progress bar fills from begin to end horizontally, according to the language direction. If returns , it fills from left to right, and if it returns , it fills from right to left. + + + + + The progress bar fills from end to begin horizontally, according to the language direction. If returns , it fills from right to left, and if it returns , it fills from left to right. + + + + + The progress fills from top to bottom. + + + + + The progress fills from bottom to top. + + + + + The fill direction. See for possible values. + + + + + If , the fill percentage is displayed on the bar. + + + + + When set to , the progress bar indicates that something is happening with an animation, but does not show the fill percentage or value. + + + + + If , the animation will be paused in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fill_mode' property. + + + + + Cached name for the 'show_percentage' property. + + + + + Cached name for the 'indeterminate' property. + + + + + Cached name for the 'editor_preview_indeterminate' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fill_mode' method. + + + + + Cached name for the 'get_fill_mode' method. + + + + + Cached name for the 'set_show_percentage' method. + + + + + Cached name for the 'is_percentage_shown' method. + + + + + Cached name for the 'set_indeterminate' method. + + + + + Cached name for the 'is_indeterminate' method. + + + + + Cached name for the 'set_editor_preview_indeterminate' method. + + + + + Cached name for the 'is_editor_preview_indeterminate_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores variables that can be accessed from everywhere. Use , or to access them. Variables stored in project.godot are also loaded into , making this object very useful for reading custom game configuration options. + When naming a Project Settings property, use the full path to the setting including the category. For example, "application/config/name" for the project name. Category and property names can be viewed in the Project Settings dialog. + Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags. + Overriding: Any project setting can be overridden by creating a file named override.cfg in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations. + + + + + Returns if a configuration value is present. + + + + + Sets the value of a setting. + + ProjectSettings.SetSetting("application/config/name", "Example"); + + This can also be used to erase custom project settings. To do this change the setting value to . + + + + + Returns the value of the setting identified by . If the setting doesn't exist and is specified, the value of is returned. Otherwise, is returned. + + GD.Print(ProjectSettings.GetSetting("application/config/name")); + GD.Print(ProjectSettings.GetSetting("application/config/custom_description", "No description specified.")); + + Note: This method doesn't take potential feature overrides into account automatically. Use to handle seamlessly. + + + + + Similar to , but applies feature tag overrides if any exists and is valid. + Example: If the setting override "application/config/name.windows" exists, and the following code is executed on a Windows operating system, the overridden setting is printed instead: + + GD.Print(ProjectSettings.GetSettingWithOverride("application/config/name")); + + + + + + Returns an of registered global classes. Each global class is represented as a that contains the following entries: + - base is a name of the base class; + - class is a name of the registered global class; + - icon is a path to a custom icon of the global class, if it has any; + - language is a name of a programming language in which the global class is written; + - path is a path to a file containing the global class. + Note: Both the script and the icon paths are local to the project filesystem, i.e. they start with res://. + + + + + Sets the order of a configuration value (influences when saved to the config file). + + + + + Returns the order of a configuration value (influences when saved to the config file). + + + + + Sets the specified setting's initial value. This is the value the setting reverts to. + + + + + Defines if the specified setting is considered basic or advanced. Basic settings will always be shown in the project settings. Advanced settings will only be shown if the user enables the "Advanced Settings" option. + + + + + Defines if the specified setting is considered internal. An internal setting won't show up in the Project Settings dialog. This is mostly useful for addons that need to store their own internal settings without exposing them directly to the user. + + + + + Adds a custom property info to a property. The dictionary must contain: + - "name": (the property's name) + - "type": (see ) + - optionally "hint": (see ) and "hint_string": + + ProjectSettings.Singleton.Set("category/property_name", 0); + + var propertyInfo = new Godot.Collections.Dictionary + { + {"name", "category/propertyName"}, + {"type", (int)Variant.Type.Int}, + {"hint", (int)PropertyHint.Enum}, + {"hint_string", "one,two,three"}, + }; + + ProjectSettings.AddPropertyInfo(propertyInfo); + + + + + + Sets whether a setting requires restarting the editor to properly take effect. + Note: This is just a hint to display to the user that the editor must be restarted for changes to take effect. Enabling does not delay the setting being set when changed. + + + + + Clears the whole configuration (not recommended, may break things). + + + + + Returns the localized path (starting with res://) corresponding to the absolute, native OS . See also . + + + + + Returns the absolute, native OS path corresponding to the localized (starting with res:// or user://). The returned path will vary depending on the operating system and user preferences. See File paths in Godot projects to see what those paths convert to. See also . + Note: with res:// will not work in an exported project. Instead, prepend the executable's base directory to the path when running from an exported project: + + var path = "" + if OS.has_feature("editor"): + # Running from an editor binary. + # `path` will contain the absolute path to `hello.txt` located in the project root. + path = ProjectSettings.globalize_path("res://hello.txt") + else: + # Running from an exported project. + # `path` will contain the absolute path to `hello.txt` next to the executable. + # This is *not* identical to using `ProjectSettings.globalize_path()` with a `res://` path, + # but is close enough in spirit. + path = OS.get_executable_path().get_base_dir().path_join("hello.txt") + + + + + + Saves the configuration to the project.godot file. + Note: This method is intended to be used by editor plugins, as modified can't be loaded back in the running app. If you want to change project settings in exported projects, use to save override.cfg file. + + + + + Loads the contents of the .pck or .zip file specified by into the resource filesystem (res://). Returns on success. + Note: If a file from shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from unless is set to . + Note: The optional parameter can be used to specify the offset in bytes to the start of the resource pack. This is only supported for .pck files. + + + + + Saves the configuration to a custom file. The file extension must be .godot (to save in text-based format) or .binary (to save in binary format). You can also save override.cfg file, which is also text, but can be used in exported projects unlike other formats. + + + + + Emitted when any setting is changed, up to once per process frame. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_setting' method. + + + + + Cached name for the 'set_setting' method. + + + + + Cached name for the 'get_setting' method. + + + + + Cached name for the 'get_setting_with_override' method. + + + + + Cached name for the 'get_global_class_list' method. + + + + + Cached name for the 'set_order' method. + + + + + Cached name for the 'get_order' method. + + + + + Cached name for the 'set_initial_value' method. + + + + + Cached name for the 'set_as_basic' method. + + + + + Cached name for the 'set_as_internal' method. + + + + + Cached name for the 'add_property_info' method. + + + + + Cached name for the 'set_restart_if_changed' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'localize_path' method. + + + + + Cached name for the 'globalize_path' method. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load_resource_pack' method. + + + + + Cached name for the 'save_custom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'settings_changed' signal. + + + + + Stores variables that can be accessed from everywhere. Use , or to access them. Variables stored in project.godot are also loaded into , making this object very useful for reading custom game configuration options. + When naming a Project Settings property, use the full path to the setting including the category. For example, "application/config/name" for the project name. Category and property names can be viewed in the Project Settings dialog. + Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags. + Overriding: Any project setting can be overridden by creating a file named override.cfg in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations. + + + + + Returns if a configuration value is present. + + + + + Sets the value of a setting. + + ProjectSettings.SetSetting("application/config/name", "Example"); + + This can also be used to erase custom project settings. To do this change the setting value to . + + + + + Returns the value of the setting identified by . If the setting doesn't exist and is specified, the value of is returned. Otherwise, is returned. + + GD.Print(ProjectSettings.GetSetting("application/config/name")); + GD.Print(ProjectSettings.GetSetting("application/config/custom_description", "No description specified.")); + + Note: This method doesn't take potential feature overrides into account automatically. Use to handle seamlessly. + + + + + Similar to , but applies feature tag overrides if any exists and is valid. + Example: If the setting override "application/config/name.windows" exists, and the following code is executed on a Windows operating system, the overridden setting is printed instead: + + GD.Print(ProjectSettings.GetSettingWithOverride("application/config/name")); + + + + + + Returns an of registered global classes. Each global class is represented as a that contains the following entries: + - base is a name of the base class; + - class is a name of the registered global class; + - icon is a path to a custom icon of the global class, if it has any; + - language is a name of a programming language in which the global class is written; + - path is a path to a file containing the global class. + Note: Both the script and the icon paths are local to the project filesystem, i.e. they start with res://. + + + + + Sets the order of a configuration value (influences when saved to the config file). + + + + + Returns the order of a configuration value (influences when saved to the config file). + + + + + Sets the specified setting's initial value. This is the value the setting reverts to. + + + + + Defines if the specified setting is considered basic or advanced. Basic settings will always be shown in the project settings. Advanced settings will only be shown if the user enables the "Advanced Settings" option. + + + + + Defines if the specified setting is considered internal. An internal setting won't show up in the Project Settings dialog. This is mostly useful for addons that need to store their own internal settings without exposing them directly to the user. + + + + + Adds a custom property info to a property. The dictionary must contain: + - "name": (the property's name) + - "type": (see ) + - optionally "hint": (see ) and "hint_string": + + ProjectSettings.Singleton.Set("category/property_name", 0); + + var propertyInfo = new Godot.Collections.Dictionary + { + {"name", "category/propertyName"}, + {"type", (int)Variant.Type.Int}, + {"hint", (int)PropertyHint.Enum}, + {"hint_string", "one,two,three"}, + }; + + ProjectSettings.AddPropertyInfo(propertyInfo); + + + + + + Sets whether a setting requires restarting the editor to properly take effect. + Note: This is just a hint to display to the user that the editor must be restarted for changes to take effect. Enabling does not delay the setting being set when changed. + + + + + Clears the whole configuration (not recommended, may break things). + + + + + Returns the localized path (starting with res://) corresponding to the absolute, native OS . See also . + + + + + Returns the absolute, native OS path corresponding to the localized (starting with res:// or user://). The returned path will vary depending on the operating system and user preferences. See File paths in Godot projects to see what those paths convert to. See also . + Note: with res:// will not work in an exported project. Instead, prepend the executable's base directory to the path when running from an exported project: + + var path = "" + if OS.has_feature("editor"): + # Running from an editor binary. + # `path` will contain the absolute path to `hello.txt` located in the project root. + path = ProjectSettings.globalize_path("res://hello.txt") + else: + # Running from an exported project. + # `path` will contain the absolute path to `hello.txt` next to the executable. + # This is *not* identical to using `ProjectSettings.globalize_path()` with a `res://` path, + # but is close enough in spirit. + path = OS.get_executable_path().get_base_dir().path_join("hello.txt") + + + + + + Saves the configuration to the project.godot file. + Note: This method is intended to be used by editor plugins, as modified can't be loaded back in the running app. If you want to change project settings in exported projects, use to save override.cfg file. + + + + + Loads the contents of the .pck or .zip file specified by into the resource filesystem (res://). Returns on success. + Note: If a file from shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from unless is set to . + Note: The optional parameter can be used to specify the offset in bytes to the start of the resource pack. This is only supported for .pck files. + + + + + Saves the configuration to a custom file. The file extension must be .godot (to save in text-based format) or .binary (to save in binary format). You can also save override.cfg file, which is also text, but can be used in exported projects unlike other formats. + + + + + Emitted when any setting is changed, up to once per process frame. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_setting' method. + + + + + Cached name for the 'set_setting' method. + + + + + Cached name for the 'get_setting' method. + + + + + Cached name for the 'get_setting_with_override' method. + + + + + Cached name for the 'get_global_class_list' method. + + + + + Cached name for the 'set_order' method. + + + + + Cached name for the 'get_order' method. + + + + + Cached name for the 'set_initial_value' method. + + + + + Cached name for the 'set_as_basic' method. + + + + + Cached name for the 'set_as_internal' method. + + + + + Cached name for the 'add_property_info' method. + + + + + Cached name for the 'set_restart_if_changed' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'localize_path' method. + + + + + Cached name for the 'globalize_path' method. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load_resource_pack' method. + + + + + Cached name for the 'save_custom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'settings_changed' signal. + + + + + is used to interpolate a property in an object. See for more usage information. + The tweener will finish automatically if the target object is freed. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Sets a custom initial value to the . + Example: Move the node from position (100, 100) to (200, 100). + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).From(new Vector2(100.0f, 100.0f)); + + + + + + Makes the use the current property value (i.e. at the time of creating this ) as a starting point. This is equivalent of using with the current value. These two calls will do the same: + + tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).From(Position); + tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).FromCurrent(); + + + + + + When called, the final value will be used as a relative value instead. + Example: Move the node by 100 pixels to the right. + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(this, "position", Vector2.Right * 100.0f, 1.0f).AsRelative(); + + + + + + Sets the type of used transition from . If not set, the default transition is used from the that contains this Tweener. + + + + + Sets the type of used easing from . If not set, the default easing is used from the that contains this Tweener. + + + + + Allows interpolating the value with a custom easing function. The provided will be called with a value ranging from 0.0 to 1.0 and is expected to return a value within the same range (values outside the range can be used for overshoot). The return value of the method is then used for interpolation between initial and final value. Note that the parameter passed to the method is still subject to the tweener's own easing. + + [Export] + public Curve Curve { get; set; } + + public override void _Ready() + { + Tween tween = CreateTween(); + // Interpolate the value using a custom curve. + Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve); + tween.TweenProperty(this, "position:x", 300.0f, 1.0f).AsRelative().SetCustomInterpolator(tweenCurveCallable); + } + + private float TweenCurve(float value) + { + return Curve.SampleBaked(value); + } + + + + + + Sets the time in seconds after which the will start interpolating. By default there's no delay. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from' method. + + + + + Cached name for the 'from_current' method. + + + + + Cached name for the 'as_relative' method. + + + + + Cached name for the 'set_trans' method. + + + + + Cached name for the 'set_ease' method. + + + + + Cached name for the 'set_custom_interpolator' method. + + + + + Cached name for the 'set_delay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a square . 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 is equivalent to a except its default is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a flat plane shape that can be used by the engine's occlusion culling system. See also if you need to customize the quad's shape. + See 's documentation for instructions on setting up occlusion culling. + + + + + The quad's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The attachment's data format. + + + + + The number of samples used when sampling the attachment. + + + + + The attachment's usage flags, which determine what can be done with it. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'samples' property. + + + + + Cached name for the 'usage_flags' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_samples' method. + + + + + Cached name for the 'get_samples' method. + + + + + Cached name for the 'set_usage_flags' method. + + + + + Cached name for the 'get_usage_flags' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Attachment is unused. + + + + + Color attachments in order starting from 0. If this attachment is not used by the shader, pass ATTACHMENT_UNUSED to skip. + + + + + Used for multipass framebuffers (more than one render pass). Converts an attachment to an input. Make sure to also supply it properly in the for the uniform set. + + + + + If the color attachments are multisampled, non-multisampled resolve attachments can be provided. + + + + + Attachments to preserve in this pass (otherwise they are erased). + + + + + Depth attachment. ATTACHMENT_UNUSED should be used if no depth buffer is required for this pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color_attachments' property. + + + + + Cached name for the 'input_attachments' property. + + + + + Cached name for the 'resolve_attachments' property. + + + + + Cached name for the 'preserve_attachments' property. + + + + + Cached name for the 'depth_attachment' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color_attachments' method. + + + + + Cached name for the 'get_color_attachments' method. + + + + + Cached name for the 'set_input_attachments' method. + + + + + Cached name for the 'get_input_attachments' method. + + + + + Cached name for the 'set_resolve_attachments' method. + + + + + Cached name for the 'get_resolve_attachments' method. + + + + + Cached name for the 'set_preserve_attachments' method. + + + + + Cached name for the 'get_preserve_attachments' method. + + + + + Cached name for the 'set_depth_attachment' method. + + + + + Cached name for the 'get_depth_attachment' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + If , performs the logic operation defined in . + + + + + The logic operation to perform for blending. Only effective if is . + + + + + The constant color to blend with. See also . + + + + + The attachments that are blended together. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_logic_op' property. + + + + + Cached name for the 'logic_op' property. + + + + + Cached name for the 'blend_constant' property. + + + + + Cached name for the 'attachments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_logic_op' method. + + + + + Cached name for the 'get_enable_logic_op' method. + + + + + Cached name for the 'set_logic_op' method. + + + + + Cached name for the 'get_logic_op' method. + + + + + Cached name for the 'set_blend_constant' method. + + + + + Cached name for the 'get_blend_constant' method. + + + + + Cached name for the 'set_attachments' method. + + + + + Cached name for the 'get_attachments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Controls how blending between source and destination fragments is performed when using . + For reference, this is how common user-facing blend modes are implemented in Godot's 2D renderer: + Mix: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + + Add: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + + Subtract: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT + attachment.color_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + + Multiply: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_DST_COLOR + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_DST_ALPHA + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO + + Pre-multiplied alpha: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + + + + + + If , performs blending between the source and destination according to the factors defined in , , and . The blend modes and are also taken into account, with , , and controlling the output. + + + + + Controls how the blend factor for the color channels is determined based on the source's fragments. + + + + + Controls how the blend factor for the color channels is determined based on the destination's fragments. + + + + + The blend mode to use for the red/green/blue color channels. + + + + + Controls how the blend factor for the alpha channel is determined based on the source's fragments. + + + + + Controls how the blend factor for the alpha channel is determined based on the destination's fragments. + + + + + The blend mode to use for the alpha channel. + + + + + If , writes the new red color channel to the final result. + + + + + If , writes the new green color channel to the final result. + + + + + If , writes the new blue color channel to the final result. + + + + + If , writes the new alpha channel to the final result. + + + + + Convenience method to perform standard mix blending with straight (non-premultiplied) alpha. This sets to , to , to , to and to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_blend' property. + + + + + Cached name for the 'src_color_blend_factor' property. + + + + + Cached name for the 'dst_color_blend_factor' property. + + + + + Cached name for the 'color_blend_op' property. + + + + + Cached name for the 'src_alpha_blend_factor' property. + + + + + Cached name for the 'dst_alpha_blend_factor' property. + + + + + Cached name for the 'alpha_blend_op' property. + + + + + Cached name for the 'write_r' property. + + + + + Cached name for the 'write_g' property. + + + + + Cached name for the 'write_b' property. + + + + + Cached name for the 'write_a' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_as_mix' method. + + + + + Cached name for the 'set_enable_blend' method. + + + + + Cached name for the 'get_enable_blend' method. + + + + + Cached name for the 'set_src_color_blend_factor' method. + + + + + Cached name for the 'get_src_color_blend_factor' method. + + + + + Cached name for the 'set_dst_color_blend_factor' method. + + + + + Cached name for the 'get_dst_color_blend_factor' method. + + + + + Cached name for the 'set_color_blend_op' method. + + + + + Cached name for the 'get_color_blend_op' method. + + + + + Cached name for the 'set_src_alpha_blend_factor' method. + + + + + Cached name for the 'get_src_alpha_blend_factor' method. + + + + + Cached name for the 'set_dst_alpha_blend_factor' method. + + + + + Cached name for the 'get_dst_alpha_blend_factor' method. + + + + + Cached name for the 'set_alpha_blend_op' method. + + + + + Cached name for the 'get_alpha_blend_op' method. + + + + + Cached name for the 'set_write_r' method. + + + + + Cached name for the 'get_write_r' method. + + + + + Cached name for the 'set_write_g' method. + + + + + Cached name for the 'get_write_g' method. + + + + + Cached name for the 'set_write_b' method. + + + + + Cached name for the 'get_write_b' method. + + + + + Cached name for the 'set_write_a' method. + + + + + Cached name for the 'get_write_a' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + controls the way depth and stencil comparisons are performed when sampling those values using . + + + + + If , enables depth testing which allows objects to be automatically occluded by other objects based on their depth. This also allows objects to be partially occluded by other objects. If , objects will appear in the order they were drawn (like in Godot's 2D renderer). + + + + + If , writes to the depth buffer whenever the depth test returns . Only works when enable_depth_test is also . + + + + + The method used for comparing the previous and current depth values. + + + + + If , each depth value will be tested to see if it is between and . If it is outside of these values, it is discarded. + + + + + The minimum depth that returns for . + + + + + The maximum depth that returns for . + + + + + If , enables stencil testing. There are separate stencil buffers for front-facing triangles and back-facing triangles. See properties that begin with "front_op" and properties with "back_op" for each. + + + + + The operation to perform on the stencil buffer for front pixels that fail the stencil test. + + + + + The operation to perform on the stencil buffer for front pixels that pass the stencil test. + + + + + The operation to perform on the stencil buffer for front pixels that pass the stencil test but fail the depth test. + + + + + The method used for comparing the previous front stencil value and . + + + + + Selects which bits from the front stencil value will be compared. + + + + + Selects which bits from the front stencil value will be changed. + + + + + The value the previous front stencil value will be compared to. + + + + + The operation to perform on the stencil buffer for back pixels that fail the stencil test. + + + + + The operation to perform on the stencil buffer for back pixels that pass the stencil test. + + + + + The operation to perform on the stencil buffer for back pixels that pass the stencil test but fail the depth test. + + + + + The method used for comparing the previous back stencil value and . + + + + + Selects which bits from the back stencil value will be compared. + + + + + Selects which bits from the back stencil value will be changed. + + + + + The value the previous back stencil value will be compared to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_depth_test' property. + + + + + Cached name for the 'enable_depth_write' property. + + + + + Cached name for the 'depth_compare_operator' property. + + + + + Cached name for the 'enable_depth_range' property. + + + + + Cached name for the 'depth_range_min' property. + + + + + Cached name for the 'depth_range_max' property. + + + + + Cached name for the 'enable_stencil' property. + + + + + Cached name for the 'front_op_fail' property. + + + + + Cached name for the 'front_op_pass' property. + + + + + Cached name for the 'front_op_depth_fail' property. + + + + + Cached name for the 'front_op_compare' property. + + + + + Cached name for the 'front_op_compare_mask' property. + + + + + Cached name for the 'front_op_write_mask' property. + + + + + Cached name for the 'front_op_reference' property. + + + + + Cached name for the 'back_op_fail' property. + + + + + Cached name for the 'back_op_pass' property. + + + + + Cached name for the 'back_op_depth_fail' property. + + + + + Cached name for the 'back_op_compare' property. + + + + + Cached name for the 'back_op_compare_mask' property. + + + + + Cached name for the 'back_op_write_mask' property. + + + + + Cached name for the 'back_op_reference' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_depth_test' method. + + + + + Cached name for the 'get_enable_depth_test' method. + + + + + Cached name for the 'set_enable_depth_write' method. + + + + + Cached name for the 'get_enable_depth_write' method. + + + + + Cached name for the 'set_depth_compare_operator' method. + + + + + Cached name for the 'get_depth_compare_operator' method. + + + + + Cached name for the 'set_enable_depth_range' method. + + + + + Cached name for the 'get_enable_depth_range' method. + + + + + Cached name for the 'set_depth_range_min' method. + + + + + Cached name for the 'get_depth_range_min' method. + + + + + Cached name for the 'set_depth_range_max' method. + + + + + Cached name for the 'get_depth_range_max' method. + + + + + Cached name for the 'set_enable_stencil' method. + + + + + Cached name for the 'get_enable_stencil' method. + + + + + Cached name for the 'set_front_op_fail' method. + + + + + Cached name for the 'get_front_op_fail' method. + + + + + Cached name for the 'set_front_op_pass' method. + + + + + Cached name for the 'get_front_op_pass' method. + + + + + Cached name for the 'set_front_op_depth_fail' method. + + + + + Cached name for the 'get_front_op_depth_fail' method. + + + + + Cached name for the 'set_front_op_compare' method. + + + + + Cached name for the 'get_front_op_compare' method. + + + + + Cached name for the 'set_front_op_compare_mask' method. + + + + + Cached name for the 'get_front_op_compare_mask' method. + + + + + Cached name for the 'set_front_op_write_mask' method. + + + + + Cached name for the 'get_front_op_write_mask' method. + + + + + Cached name for the 'set_front_op_reference' method. + + + + + Cached name for the 'get_front_op_reference' method. + + + + + Cached name for the 'set_back_op_fail' method. + + + + + Cached name for the 'get_back_op_fail' method. + + + + + Cached name for the 'set_back_op_pass' method. + + + + + Cached name for the 'get_back_op_pass' method. + + + + + Cached name for the 'set_back_op_depth_fail' method. + + + + + Cached name for the 'get_back_op_depth_fail' method. + + + + + Cached name for the 'set_back_op_compare' method. + + + + + Cached name for the 'get_back_op_compare' method. + + + + + Cached name for the 'set_back_op_compare_mask' method. + + + + + Cached name for the 'get_back_op_compare_mask' method. + + + + + Cached name for the 'set_back_op_write_mask' method. + + + + + Cached name for the 'get_back_op_write_mask' method. + + + + + Cached name for the 'set_back_op_reference' method. + + + + + Cached name for the 'get_back_op_reference' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is used to control how multisample or supersample antialiasing is being performed when rendering using . + + + + + The number of MSAA samples (or SSAA samples if is ) to perform. Higher values result in better antialiasing, at the cost of performance. + + + + + If , enables per-sample shading which replaces MSAA by SSAA. This provides higher quality antialiasing that works with transparent (alpha scissor) edges. This has a very high performance cost. See also . See the per-sample shading Vulkan documentation for more details. + + + + + The multiplier of that determines how many samples are performed for each fragment. Must be between 0.0 and 1.0 (inclusive). Only effective if is . If is 1.0, fragment invocation must only read from the coverage index sample. Tile image access must not be used if is not 1.0. + + + + + If , alpha to coverage is enabled. This generates a temporary coverage value based on the alpha component of the fragment's first color output. This allows alpha transparency to make use of multisample antialiasing. + + + + + If , alpha is forced to either 0.0 or 1.0. This allows hardening the edges of antialiased alpha transparencies. Only relevant if is . + + + + + The sample mask array. See the sample mask Vulkan documentation for more details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sample_count' property. + + + + + Cached name for the 'enable_sample_shading' property. + + + + + Cached name for the 'min_sample_shading' property. + + + + + Cached name for the 'enable_alpha_to_coverage' property. + + + + + Cached name for the 'enable_alpha_to_one' property. + + + + + Cached name for the 'sample_masks' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sample_count' method. + + + + + Cached name for the 'get_sample_count' method. + + + + + Cached name for the 'set_enable_sample_shading' method. + + + + + Cached name for the 'get_enable_sample_shading' method. + + + + + Cached name for the 'set_min_sample_shading' method. + + + + + Cached name for the 'get_min_sample_shading' method. + + + + + Cached name for the 'set_enable_alpha_to_coverage' method. + + + + + Cached name for the 'get_enable_alpha_to_coverage' method. + + + + + Cached name for the 'set_enable_alpha_to_one' method. + + + + + Cached name for the 'get_enable_alpha_to_one' method. + + + + + Cached name for the 'set_sample_masks' method. + + + + + Cached name for the 'get_sample_masks' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + If , clamps depth values according to the minimum and maximum depth of the associated viewport. + + + + + If , primitives are discarded immediately before the rasterization stage. + + + + + If , performs wireframe rendering for triangles instead of flat or textured rendering. + + + + + The cull mode to use when drawing polygons, which determines whether front faces or backfaces are hidden. + + + + + The winding order to use to determine which face of a triangle is considered its front face. + + + + + If , each generated depth value will by offset by some amount. The specific amount is generated per polygon based on the values of and . + + + + + A constant offset added to each depth value. Applied after . + + + + + A limit for how much each depth value can be offset. If negative, it serves as a minimum value, but if positive, it serves as a maximum value. + + + + + A constant scale applied to the slope of each polygons' depth. Applied before . + + + + + The line width to use when drawing lines (in pixels). Thick lines may not be supported on all hardware. + + + + + The number of control points to use when drawing a patch with tessellation enabled. Higher values result in higher quality at the cost of performance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_depth_clamp' property. + + + + + Cached name for the 'discard_primitives' property. + + + + + Cached name for the 'wireframe' property. + + + + + Cached name for the 'cull_mode' property. + + + + + Cached name for the 'front_face' property. + + + + + Cached name for the 'depth_bias_enabled' property. + + + + + Cached name for the 'depth_bias_constant_factor' property. + + + + + Cached name for the 'depth_bias_clamp' property. + + + + + Cached name for the 'depth_bias_slope_factor' property. + + + + + Cached name for the 'line_width' property. + + + + + Cached name for the 'patch_control_points' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_depth_clamp' method. + + + + + Cached name for the 'get_enable_depth_clamp' method. + + + + + Cached name for the 'set_discard_primitives' method. + + + + + Cached name for the 'get_discard_primitives' method. + + + + + Cached name for the 'set_wireframe' method. + + + + + Cached name for the 'get_wireframe' method. + + + + + Cached name for the 'set_cull_mode' method. + + + + + Cached name for the 'get_cull_mode' method. + + + + + Cached name for the 'set_front_face' method. + + + + + Cached name for the 'get_front_face' method. + + + + + Cached name for the 'set_depth_bias_enabled' method. + + + + + Cached name for the 'get_depth_bias_enabled' method. + + + + + Cached name for the 'set_depth_bias_constant_factor' method. + + + + + Cached name for the 'get_depth_bias_constant_factor' method. + + + + + Cached name for the 'set_depth_bias_clamp' method. + + + + + Cached name for the 'get_depth_bias_clamp' method. + + + + + Cached name for the 'set_depth_bias_slope_factor' method. + + + + + Cached name for the 'get_depth_bias_slope_factor' method. + + + + + Cached name for the 'set_line_width' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'set_patch_control_points' method. + + + + + Cached name for the 'get_patch_control_points' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A specialization constant is a way to create additional variants of shaders without actually increasing the number of shader versions that are compiled. This allows improving performance by reducing the number of shader versions and reducing if branching, while still allowing shaders to be flexible for different use cases. + This object is used by . + + + + + The specialization constant's value. Only , and types are valid for specialization constants. + + + + + The identifier of the specialization constant. This is a value starting from 0 and that increments for every different specialization constant for a given shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'value' property. + + + + + Cached name for the 'constant_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_value' method. + + + + + Cached name for the 'get_value' method. + + + + + Cached name for the 'set_constant_id' method. + + + + + Cached name for the 'get_constant_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The sampler's magnification filter. It is the filtering method used when sampling texels that appear bigger than on-screen pixels. + + + + + The sampler's minification filter. It is the filtering method used when sampling texels that appear smaller than on-screen pixels. + + + + + The filtering method to use for mipmaps. + + + + + The repeat mode to use along the U axis of UV coordinates. This affects the returned values if sampling outside the UV bounds. + + + + + The repeat mode to use along the V axis of UV coordinates. This affects the returned values if sampling outside the UV bounds. + + + + + The repeat mode to use along the W axis of UV coordinates. This affects the returned values if sampling outside the UV bounds. Only effective for 3D samplers. + + + + + The mipmap LOD bias to use. Positive values will make the sampler blurrier at a given distance, while negative values will make the sampler sharper at a given distance (at the risk of looking grainy). Recommended values are between -0.5 and 0.0. Only effective if the sampler has mipmaps available. + + + + + If , perform anisotropic sampling. See . + + + + + Maximum anisotropy that can be used when sampling. Only effective if is . Higher values result in a sharper sampler at oblique angles, at the cost of performance (due to memory bandwidth). This value may be limited by the graphics hardware in use. Most graphics hardware only supports values up to 16.0. + If is 1.0, forcibly disables anisotropy even if is . + + + + + If , returned values will be based on the comparison operation defined in . This is a hardware-based approach and is therefore faster than performing this manually in a shader. For example, compare operations are used for shadow map rendering by comparing depth values from a shadow sampler. + + + + + The compare operation to use. Only effective if is . + + + + + The minimum mipmap LOD bias to display (highest resolution). Only effective if the sampler has mipmaps available. + + + + + The maximum mipmap LOD bias to display (lowest resolution). Only effective if the sampler has mipmaps available. + + + + + The border color that will be returned when sampling outside the sampler's bounds and the , or modes have repeating disabled. + + + + + If , the texture will be sampled with coordinates ranging from 0 to the texture's resolution. Otherwise, the coordinates will be normalized and range from 0 to 1. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mag_filter' property. + + + + + Cached name for the 'min_filter' property. + + + + + Cached name for the 'mip_filter' property. + + + + + Cached name for the 'repeat_u' property. + + + + + Cached name for the 'repeat_v' property. + + + + + Cached name for the 'repeat_w' property. + + + + + Cached name for the 'lod_bias' property. + + + + + Cached name for the 'use_anisotropy' property. + + + + + Cached name for the 'anisotropy_max' property. + + + + + Cached name for the 'enable_compare' property. + + + + + Cached name for the 'compare_op' property. + + + + + Cached name for the 'min_lod' property. + + + + + Cached name for the 'max_lod' property. + + + + + Cached name for the 'border_color' property. + + + + + Cached name for the 'unnormalized_uvw' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mag_filter' method. + + + + + Cached name for the 'get_mag_filter' method. + + + + + Cached name for the 'set_min_filter' method. + + + + + Cached name for the 'get_min_filter' method. + + + + + Cached name for the 'set_mip_filter' method. + + + + + Cached name for the 'get_mip_filter' method. + + + + + Cached name for the 'set_repeat_u' method. + + + + + Cached name for the 'get_repeat_u' method. + + + + + Cached name for the 'set_repeat_v' method. + + + + + Cached name for the 'get_repeat_v' method. + + + + + Cached name for the 'set_repeat_w' method. + + + + + Cached name for the 'get_repeat_w' method. + + + + + Cached name for the 'set_lod_bias' method. + + + + + Cached name for the 'get_lod_bias' method. + + + + + Cached name for the 'set_use_anisotropy' method. + + + + + Cached name for the 'get_use_anisotropy' method. + + + + + Cached name for the 'set_anisotropy_max' method. + + + + + Cached name for the 'get_anisotropy_max' method. + + + + + Cached name for the 'set_enable_compare' method. + + + + + Cached name for the 'get_enable_compare' method. + + + + + Cached name for the 'set_compare_op' method. + + + + + Cached name for the 'get_compare_op' method. + + + + + Cached name for the 'set_min_lod' method. + + + + + Cached name for the 'get_min_lod' method. + + + + + Cached name for the 'set_max_lod' method. + + + + + Cached name for the 'get_max_lod' method. + + + + + Cached name for the 'set_border_color' method. + + + + + Cached name for the 'get_border_color' method. + + + + + Cached name for the 'set_unnormalized_uvw' method. + + + + + Cached name for the 'get_unnormalized_uvw' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Compiled shader file in SPIR-V form. + See also . is only meant to be used with the API. It should not be confused with Godot's own resource, which is what Godot's various nodes use for high-level shader programming. + + + + + The base compilation error message, which indicates errors not related to a specific shader stage if non-empty. If empty, shader compilation is not necessarily successful (check 's error message members). + + + + + Sets the SPIR-V that will be compiled for the specified . + + + + + Returns the SPIR-V intermediate representation for the specified shader . + + + + + Returns the list of compiled versions for this shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_versions' property. + + + + + Cached name for the 'base_error' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bytecode' method. + + + + + Cached name for the 'get_spirv' method. + + + + + Cached name for the 'get_version_list' method. + + + + + Cached name for the 'set_base_error' method. + + + + + Cached name for the 'get_base_error' method. + + + + + Cached name for the '_set_versions' method. + + + + + Cached name for the '_get_versions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + represents a 's SPIR-V code for various shader stages, as well as possible compilation error messages. SPIR-V is a low-level intermediate shader representation. This intermediate representation is not used directly by GPUs for rendering, but it can be compiled into binary shaders that GPUs can understand. Unlike compiled shaders, SPIR-V is portable across GPU models and driver versions. + This object is used by . + + + + + The SPIR-V bytecode for the vertex shader stage. + + + + + The SPIR-V bytecode for the fragment shader stage. + + + + + The SPIR-V bytecode for the tessellation control shader stage. + + + + + The SPIR-V bytecode for the tessellation evaluation shader stage. + + + + + The SPIR-V bytecode for the compute shader stage. + + + + + The compilation error message for the vertex shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the fragment shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the tessellation control shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the tessellation evaluation shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the compute shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + Sets the SPIR-V for the given shader . Equivalent to setting one of , , , , . + + + + + Sets the SPIR-V for the given shader . Equivalent to setting one of , , , , . + + + + + Equivalent to getting one of , , , , . + + + + + Sets the compilation error message for the given shader to . Equivalent to setting one of , , , , . + + + + + Returns the compilation error message for the given shader . Equivalent to getting one of , , , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bytecode_vertex' property. + + + + + Cached name for the 'bytecode_fragment' property. + + + + + Cached name for the 'bytecode_tesselation_control' property. + + + + + Cached name for the 'bytecode_tesselation_evaluation' property. + + + + + Cached name for the 'bytecode_compute' property. + + + + + Cached name for the 'compile_error_vertex' property. + + + + + Cached name for the 'compile_error_fragment' property. + + + + + Cached name for the 'compile_error_tesselation_control' property. + + + + + Cached name for the 'compile_error_tesselation_evaluation' property. + + + + + Cached name for the 'compile_error_compute' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stage_bytecode' method. + + + + + Cached name for the 'get_stage_bytecode' method. + + + + + Cached name for the 'set_stage_compile_error' method. + + + + + Cached name for the 'get_stage_compile_error' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shader source code in text form. + See also . is only meant to be used with the API. It should not be confused with Godot's own resource, which is what Godot's various nodes use for high-level shader programming. + + + + + Source code for the shader's vertex stage. + + + + + Source code for the shader's fragment stage. + + + + + Source code for the shader's tessellation control stage. + + + + + Source code for the shader's tessellation evaluation stage. + + + + + Source code for the shader's compute stage. + + + + + The language the shader is written in. + + + + + Sets code for the specified shader . Equivalent to setting one of , , , or . + Note: If you set the compute shader source code using this method directly, remember to remove the Godot-specific hint #[compute]. + + + + + Returns source code for the specified shader . Equivalent to getting one of , , , or . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source_vertex' property. + + + + + Cached name for the 'source_fragment' property. + + + + + Cached name for the 'source_tesselation_control' property. + + + + + Cached name for the 'source_tesselation_evaluation' property. + + + + + Cached name for the 'source_compute' property. + + + + + Cached name for the 'language' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stage_source' method. + + + + + Cached name for the 'get_stage_source' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The texture's pixel data format. + + + + + The texture's width (in pixels). + + + + + The texture's height (in pixels). + + + + + The texture's depth (in pixels). This is always 1 for 2D textures. + + + + + The number of layers in the texture. Only relevant for 2D texture arrays. + + + + + The number of mipmaps available in the texture. + + + + + The texture type. + + + + + The number of samples used when sampling the texture. + + + + + The texture's usage bits, which determine what can be done using the texture. + + + + + The texture will be used as the destination of a resolve operation. + + + + + If a texture is discardable, its contents do not need to be preserved between frames. This flag is only relevant when the texture is used as target in a draw list. + This information is used by to figure out if a texture's contents can be discarded, eliminating unnecessary writes to memory and boosting performance. + + + + + Adds as a valid format for the corresponding 's property. If any format is added as shareable, then the main must also be added. + + + + + Removes from the list of valid formats that the corresponding 's property can be set to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'array_layers' property. + + + + + Cached name for the 'mipmaps' property. + + + + + Cached name for the 'texture_type' property. + + + + + Cached name for the 'samples' property. + + + + + Cached name for the 'usage_bits' property. + + + + + Cached name for the 'is_resolve_buffer' property. + + + + + Cached name for the 'is_discardable' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_array_layers' method. + + + + + Cached name for the 'get_array_layers' method. + + + + + Cached name for the 'set_mipmaps' method. + + + + + Cached name for the 'get_mipmaps' method. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached name for the 'set_samples' method. + + + + + Cached name for the 'get_samples' method. + + + + + Cached name for the 'set_usage_bits' method. + + + + + Cached name for the 'get_usage_bits' method. + + + + + Cached name for the 'set_is_resolve_buffer' method. + + + + + Cached name for the 'get_is_resolve_buffer' method. + + + + + Cached name for the 'set_is_discardable' method. + + + + + Cached name for the 'get_is_discardable' method. + + + + + Cached name for the 'add_shareable_format' method. + + + + + Cached name for the 'remove_shareable_format' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + Optional override for the data format to return sampled values in. The corresponding must have had this added as a shareable format. The default value of does not override the format. + + + + + The channel to sample when sampling the red color channel. + + + + + The channel to sample when sampling the green color channel. + + + + + The channel to sample when sampling the blue color channel. + + + + + The channel to sample when sampling the alpha channel. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format_override' property. + + + + + Cached name for the 'swizzle_r' property. + + + + + Cached name for the 'swizzle_g' property. + + + + + Cached name for the 'swizzle_b' property. + + + + + Cached name for the 'swizzle_a' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_format_override' method. + + + + + Cached name for the 'get_format_override' method. + + + + + Cached name for the 'set_swizzle_r' method. + + + + + Cached name for the 'get_swizzle_r' method. + + + + + Cached name for the 'set_swizzle_g' method. + + + + + Cached name for the 'get_swizzle_g' method. + + + + + Cached name for the 'set_swizzle_b' method. + + + + + Cached name for the 'get_swizzle_b' method. + + + + + Cached name for the 'set_swizzle_a' method. + + + + + Cached name for the 'get_swizzle_a' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The uniform's data type. + + + + + The uniform's binding. + + + + + Binds the given id to the uniform. The data associated with the id is then used when the uniform is passed to a shader. + + + + + Unbinds all ids currently bound to the uniform. + + + + + Returns an array of all ids currently bound to the uniform. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'uniform_type' property. + + + + + Cached name for the 'binding' property. + + + + + Cached name for the '_ids' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_uniform_type' method. + + + + + Cached name for the 'get_uniform_type' method. + + + + + Cached name for the 'set_binding' method. + + + + + Cached name for the 'get_binding' method. + + + + + Cached name for the 'add_id' method. + + + + + Cached name for the 'clear_ids' method. + + + + + Cached name for the '_set_ids' method. + + + + + Cached name for the 'get_ids' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The location in the shader that this attribute is bound to. + + + + + The number of bytes between the start of the vertex buffer and the first instance of this attribute. + + + + + The way that this attribute's data is interpreted when sent to a shader. + + + + + The number of bytes between the starts of consecutive instances of this attribute. + + + + + The rate at which this attribute is pulled from its vertex buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'location' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'stride' property. + + + + + Cached name for the 'frequency' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_location' method. + + + + + Cached name for the 'get_location' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_stride' method. + + + + + Cached name for the 'get_stride' method. + + + + + Cached name for the 'set_frequency' method. + + + + + Cached name for the 'get_frequency' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32. + Note: The underlying algorithm is an implementation detail and should not be depended upon. + To generate a random float number (within a given range) based on a time-dependent seed: + + var rng = RandomNumberGenerator.new() + func _ready(): + var my_random_number = rng.randf_range(-10.0, 10.0) + + + + + + Initializes the random number generator state based on the given seed value. A given seed will give a reproducible sequence of pseudo-random numbers. + Note: The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally. + Note: Setting this property produces a side effect of changing the internal , so make sure to initialize the seed before modifying the : + Note: The default value of this property is pseudo-random, and changes when calling . The 0 value documented here is a placeholder, and not the actual default seed. + + var rng = RandomNumberGenerator.new() + rng.seed = hash("Godot") + rng.state = 100 # Restore to some previously saved state. + + + + + + The current state of the random number generator. Save and restore this property to restore the generator to a previous state: + + var rng = RandomNumberGenerator.new() + print(rng.randf()) + var saved_state = rng.state # Store current state. + print(rng.randf()) # Advance internal state. + rng.state = saved_state # Restore the state. + print(rng.randf()) # Prints the same value as in previous. + + Note: Do not set state to arbitrary values, since the random number generator requires the state to have certain qualities to behave properly. It should only be set to values that came from the state property itself. To initialize the random number generator with arbitrary input, use instead. + Note: The default value of this property is pseudo-random, and changes when calling . The 0 value documented here is a placeholder, and not the actual default seed. + + + + + Returns a pseudo-random 32-bit unsigned integer between 0 and 4294967295 (inclusive). + + + + + Returns a pseudo-random float between 0.0 and 1.0 (inclusive). + + + + + Returns a normally-distributed, pseudo-random floating-point number from the specified and a standard . This is also known as a Gaussian distribution. + Note: This method uses the Box-Muller transform algorithm. + + + + + Returns a pseudo-random float between and (inclusive). + + + + + Returns a pseudo-random 32-bit signed integer between and (inclusive). + + + + + Returns a random index with non-uniform weights. Prints an error and returns -1 if the array is empty. + + + + + + Returns a random index with non-uniform weights. Prints an error and returns -1 if the array is empty. + + + + + + Sets up a time-based seed for this instance. Unlike the @GlobalScope random number generation functions, different instances can use different seeds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'seed' property. + + + + + Cached name for the 'state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_seed' method. + + + + + Cached name for the 'get_seed' method. + + + + + Cached name for the 'set_state' method. + + + + + Cached name for the 'get_state' method. + + + + + Cached name for the 'randi' method. + + + + + Cached name for the 'randf' method. + + + + + Cached name for the 'randfn' method. + + + + + Cached name for the 'randf_range' method. + + + + + Cached name for the 'randi_range' method. + + + + + Cached name for the 'rand_weighted' method. + + + + + Cached name for the 'randomize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Range is an abstract base class for controls that represent a number within a range, using a configured and size. See e.g. and for examples of higher-level nodes using Range. + + + + + Minimum value. Range is clamped if is less than . + + + + + Maximum value. Range is clamped if is greater than . + + + + + If greater than 0, will always be rounded to a multiple of this property's value. If is also , will first be rounded to a multiple of this property's value, then rounded to the nearest integer. + + + + + Page size. Used mainly for . A 's grabber length is the 's size multiplied by over the difference between and . + + + + + Range's current value. Changing this property (even via code) will trigger signal. Use if you want to avoid it. + + + + + The value mapped between 0 and 1. + + + + + If , and is greater than 0, will be represented exponentially rather than linearly. + + + + + If , will always be rounded to the nearest integer. + + + + + If , may be greater than . + + + + + If , may be less than . + + + + + Called when the 's value is changed (following the same conditions as ). + + + + + Sets the 's current value to the specified , without emitting the signal. + + + + + Binds two s together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group. + + + + + Stops the from sharing its member variables with any other. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when changes. When used on a , this is called continuously while dragging (potentially every frame). If you are performing an expensive operation in a function connected to , consider using a debouncing to call the function less often. + Note: Unlike signals such as , is also emitted when value is set directly via code. + + + + + Emitted when , , , or change. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'min_value' property. + + + + + Cached name for the 'max_value' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'page' property. + + + + + Cached name for the 'value' property. + + + + + Cached name for the 'ratio' property. + + + + + Cached name for the 'exp_edit' property. + + + + + Cached name for the 'rounded' property. + + + + + Cached name for the 'allow_greater' property. + + + + + Cached name for the 'allow_lesser' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_value_changed' method. + + + + + Cached name for the 'get_value' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'get_page' method. + + + + + Cached name for the 'get_as_ratio' method. + + + + + Cached name for the 'set_value' method. + + + + + Cached name for the 'set_value_no_signal' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'set_page' method. + + + + + Cached name for the 'set_as_ratio' method. + + + + + Cached name for the 'set_use_rounded_values' method. + + + + + Cached name for the 'is_using_rounded_values' method. + + + + + Cached name for the 'set_exp_ratio' method. + + + + + Cached name for the 'is_ratio_exp' method. + + + + + Cached name for the 'set_allow_greater' method. + + + + + Cached name for the 'is_greater_allowed' method. + + + + + Cached name for the 'set_allow_lesser' method. + + + + + Cached name for the 'is_lesser_allowed' method. + + + + + Cached name for the 'share' method. + + + + + Cached name for the 'unshare' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'value_changed' signal. + + + + + Cached name for the 'changed' signal. + + + + + A raycast represents a ray from its origin to its that finds the closest along its path, if it intersects any. + can ignore some objects by adding them to an exception list, by making its detection reporting ignore s () or s (), or by configuring physics layers. + 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 multiple times within the same physics frame, use . + To sweep over a region of 2D space, you can approximate the region with multiple s or use . + + + + + If , collisions will be reported. + + + + + If , the parent node will be excluded from collision detection. + + + + + The ray's destination point, relative to the RayCast's position. + + + + + The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + If , the ray will detect a hit when starting inside shapes. In this case the collision normal will be Vector2(0, 0). Does not affect concave polygon shapes. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + Returns whether any object is intersecting with the ray's vector (considering the vector length). + + + + + Updates the collision information for the ray immediately, without waiting for the next _physics_process call. Use this method, for example, when the ray or its parent has changed state. + Note: does not need to be for this to work. + + + + + Returns the first object that the ray intersects, or if no object is intersecting the ray (i.e. returns ). + + + + + Returns the of the first object that the ray intersects, or an empty if no object is intersecting the ray (i.e. returns ). + + + + + Returns the shape ID of the first object that the ray intersects, or 0 if no object is intersecting the ray (i.e. returns ). + To get the intersected shape node, for a target, use: + + var target = (CollisionObject2D)GetCollider(); // A CollisionObject2D. + var shapeId = GetColliderShape(); // The shape index in the collider. + var ownerId = target.ShapeFindOwner(shapeId); // The owner ID in the collider. + var shape = target.ShapeOwnerGetOwner(ownerId); + + + + + + Returns the collision point at which the ray intersects the closest object, in the global coordinate system. If is and the ray starts inside of a collision shape, this function will return the origin point of the ray. + Note: Check that returns before calling this method to ensure the returned point is valid and up-to-date. + + + + + Returns the normal of the intersecting object's shape at the collision point, or Vector2(0, 0) if the ray starts inside the shape and is . + Note: Check that returns before calling this method to ensure the returned normal is valid and up-to-date. + + + + + Adds a collision exception so the ray does not report collisions with the specified . + + + + + Adds a collision exception so the ray does not report collisions with the specified node. + + + + + Removes a collision exception so the ray does report collisions with the specified . + + + + + Removes a collision exception so the ray does report collisions with the specified node. + + + + + Removes all collision exceptions for this ray. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'force_raycast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A raycast represents a ray from its origin to its that finds the closest along its path, if it intersects any. + can ignore some objects by adding them to an exception list, by making its detection reporting ignore s () or s (), or by configuring physics layers. + 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 multiple times within the same physics frame, use . + To sweep over a region of 3D space, you can approximate the region with multiple s or use . + + + + + If , collisions will be reported. + + + + + If , collisions will be ignored for this RayCast3D's immediate parent. + + + + + The ray's destination point, relative to the RayCast's position. + + + + + The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + If , the ray will detect a hit when starting inside shapes. In this case the collision normal will be Vector3(0, 0, 0). Does not affect shapes with no volume like concave polygon or heightmap. + + + + + If , the ray will hit back faces with concave polygon shapes with back face enabled or heightmap shapes. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + The custom color to use to draw the shape in the editor and at run-time if Visible Collision Shapes is enabled in the Debug menu. This color will be highlighted at run-time if the is colliding with something. + If set to Color(0.0, 0.0, 0.0) (by default), the color set in ProjectSettings.debug/shapes/collision/shape_color is used. + + + + + If set to 1, a line is used as the debug shape. Otherwise, a truncated pyramid is drawn to represent the . Requires Visible Collision Shapes to be enabled in the Debug menu for the debug shape to be visible at run-time. + + + + + Returns whether any object is intersecting with the ray's vector (considering the vector length). + + + + + Updates the collision information for the ray immediately, without waiting for the next _physics_process call. Use this method, for example, when the ray or its parent has changed state. + Note: does not need to be for this to work. + + + + + Returns the first object that the ray intersects, or if no object is intersecting the ray (i.e. returns ). + + + + + Returns the of the first object that the ray intersects, or an empty if no object is intersecting the ray (i.e. returns ). + + + + + Returns the shape ID of the first object that the ray intersects, or 0 if no object is intersecting the ray (i.e. returns ). + To get the intersected shape node, for a target, use: + + var target = (CollisionObject3D)GetCollider(); // A CollisionObject3D. + var shapeId = GetColliderShape(); // The shape index in the collider. + var ownerId = target.ShapeFindOwner(shapeId); // The owner ID in the collider. + var shape = target.ShapeOwnerGetOwner(ownerId); + + + + + + Returns the collision point at which the ray intersects the closest object, in the global coordinate system. If is and the ray starts inside of a collision shape, this function will return the origin point of the ray. + Note: Check that returns before calling this method to ensure the returned point is valid and up-to-date. + + + + + Returns the normal of the intersecting object's shape at the collision point, or Vector3(0, 0, 0) if the ray starts inside the shape and is . + Note: Check that returns before calling this method to ensure the returned normal is valid and up-to-date. + + + + + Returns the collision object's face index at the collision point, or -1 if the shape intersecting the ray is not a . + + + + + Adds a collision exception so the ray does not report collisions with the specified . + + + + + Adds a collision exception so the ray does not report collisions with the specified node. + + + + + Removes a collision exception so the ray does report collisions with the specified . + + + + + Removes a collision exception so the ray does report collisions with the specified node. + + + + + Removes all collision exceptions for this ray. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached name for the 'hit_back_faces' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'debug_shape_custom_color' property. + + + + + Cached name for the 'debug_shape_thickness' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'force_raycast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_collision_face_index' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached name for the 'set_hit_back_faces' method. + + + + + Cached name for the 'is_hit_back_faces_enabled' method. + + + + + Cached name for the 'set_debug_shape_custom_color' method. + + + + + Cached name for the 'get_debug_shape_custom_color' method. + + + + + Cached name for the 'set_debug_shape_thickness' method. + + + + + Cached name for the 'get_debug_shape_thickness' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D rectangle shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than , but slower than . + + + + + The rectangle's width and height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for any object that keeps a reference count. and many other helper objects inherit this class. + Unlike other types, s keep an internal reference counter so that they are automatically released when no longer in use, and only then. s therefore do not need to be freed manually with . + instances caught in a cyclic reference will not be freed automatically. For example, if a node holds a reference to instance A, which directly or indirectly holds a reference back to A, A's reference count will be 2. Destruction of the node will leave A dangling with a reference count of 1, and there will be a memory leak. To prevent this, one of the references in the cycle can be made weak with @GlobalScope.weakref. + In the vast majority of use cases, instantiating and using -derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused. + Note: In C#, reference-counted objects will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free reference-counted objects that are no longer in use. This means that unused ones will remain in memory for a while before being removed. + + + + + Initializes the internal reference counter. Use this only if you really know what you are doing. + Returns whether the initialization was successful. + + + + + Increments the internal reference counter. Use this only if you really know what you are doing. + Returns if the increment was successful, otherwise. + + + + + Decrements the internal reference counter. Use this only if you really know what you are doing. + Returns if the object should be freed after the decrement, otherwise. + + + + + Returns the current reference count. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'init_ref' method. + + + + + Cached name for the 'reference' method. + + + + + Cached name for the 'unreference' method. + + + + + Cached name for the 'get_reference_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A rectangle box that displays only a colored border around its rectangle. It is used to visualize the extents of a . + + + + + Sets the border color of the . + + + + + Sets the border width of the . The border grows both inwards and outwards with respect to the rectangle box. + + + + + If , the will only be visible while in editor. Otherwise, will be visible in the running project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'border_color' property. + + + + + Cached name for the 'border_width' property. + + + + + Cached name for the 'editor_only' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_border_color' method. + + + + + Cached name for the 'set_border_color' method. + + + + + Cached name for the 'get_border_width' method. + + + + + Cached name for the 'set_border_width' method. + + + + + Cached name for the 'get_editor_only' method. + + + + + Cached name for the 'set_editor_only' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Captures its surroundings as a cubemap, and stores versions of it with increasing levels of blur to simulate different material roughnesses. + The is used to create high-quality reflections at a low performance cost (when is ). s can be blended together and with the rest of the scene smoothly. s can also be combined with , SDFGI () and screen-space reflections () to get more accurate reflections in specific areas. s render all objects within their , so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them as-is. + Note: Unlike and SDFGI, s only source their environment from a node. If you specify an resource within a node, it will be ignored by the . This can lead to incorrect lighting within the . + Note: Reflection probes are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 reflection probes can be displayed on each mesh resource. Attempting to display more than 8 reflection probes on a single mesh resource will result in reflection probes flickering in and out as the camera moves. + Note: When using the Mobile rendering method, reflection probes will only correctly affect meshes whose visibility AABB intersects with the reflection probe's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the reflection probe may not be visible on the mesh. + + + + + 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 , 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 update by moving the slightly in any direction. + + + + + 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 at most per scene. For all other use cases, use . + + + + + Do not apply any ambient lighting inside the 's box defined by its . + + + + + Apply automatically-sourced environment lighting inside the 's box defined by its . + + + + + Apply custom ambient lighting inside the 's box defined by its . See and . + + + + + Sets how frequently the is updated. Can be or . + + + + + Defines the reflection intensity. Intensity modulates the strength of the reflection. + + + + + Defines the distance in meters over which a probe blends into the scene. + + + + + The maximum distance away from the an object can be before it is culled. Decrease this to improve performance, especially when using the . + Note: The maximum reflection distance is always at least equal to the probe's extents. This means that decreasing will not always cull objects from reflections, especially if the reflection probe's box defined by its is already large. + + + + + The size of the reflection probe. The larger the size, the more space covered by the probe, which will lower the perceived resolution. It is best to keep the size only as large as you need it. + Note: To better fit areas that are not aligned to the grid, you can rotate the node. + + + + + Sets the origin offset to be used when this is in mode. This can be set to a non-zero value to ensure a reflection fits a rectangle-shaped room, while reducing the number of objects that "get in the way" of the reflection. + + + + + If , enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location. + Note: To better fit rectangle-shaped rooms that are not aligned to the grid, you can rotate the node. + + + + + If , reflections will ignore sky contribution. + + + + + If , computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the . + + + + + Sets the cull mask which determines what objects are drawn by this probe. Every with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost. + This can also be used to prevent an object from reflecting upon itself (for instance, a centered on a vehicle). + + + + + Sets the reflection mask which determines what objects have reflections applied from this probe. Every with a layer included in this reflection mask will have reflections applied from this probe. See also , which can be used to exclude objects from appearing in the reflection while still making them affected by the . + + + + + The automatic LOD bias to use for meshes rendered within the (this is analog to ). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to 0.0, automatic LOD is disabled. Increase to improve performance at the cost of geometry detail, especially when using the . + Note: does not affect visibility ranges (also known as "manual" LOD or hierarchical LOD). + + + + + The ambient color to use within the 's box defined by its . The ambient color will smoothly blend with other s and the rest of the scene (outside the 's box defined by its ). + + + + + The custom ambient color to use within the 's box defined by its . Only effective if is . + + + + + The custom ambient color energy to use within the 's box defined by its . Only effective if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'update_mode' property. + + + + + Cached name for the 'intensity' property. + + + + + Cached name for the 'blend_distance' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'origin_offset' property. + + + + + Cached name for the 'box_projection' property. + + + + + Cached name for the 'interior' property. + + + + + Cached name for the 'enable_shadows' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached name for the 'reflection_mask' property. + + + + + Cached name for the 'mesh_lod_threshold' property. + + + + + Cached name for the 'ambient_mode' property. + + + + + Cached name for the 'ambient_color' property. + + + + + Cached name for the 'ambient_color_energy' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_intensity' method. + + + + + Cached name for the 'get_intensity' method. + + + + + Cached name for the 'set_blend_distance' method. + + + + + Cached name for the 'get_blend_distance' method. + + + + + Cached name for the 'set_ambient_mode' method. + + + + + Cached name for the 'get_ambient_mode' method. + + + + + Cached name for the 'set_ambient_color' method. + + + + + Cached name for the 'get_ambient_color' method. + + + + + Cached name for the 'set_ambient_color_energy' method. + + + + + Cached name for the 'get_ambient_color_energy' method. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached name for the 'set_mesh_lod_threshold' method. + + + + + Cached name for the 'get_mesh_lod_threshold' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_origin_offset' method. + + + + + Cached name for the 'get_origin_offset' method. + + + + + Cached name for the 'set_as_interior' method. + + + + + Cached name for the 'is_set_as_interior' method. + + + + + Cached name for the 'set_enable_box_projection' method. + + + + + Cached name for the 'is_box_projection_enabled' method. + + + + + Cached name for the 'set_enable_shadows' method. + + + + + Cached name for the 'are_shadows_enabled' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_reflection_mask' method. + + + + + Cached name for the 'get_reflection_mask' method. + + + + + Cached name for the 'set_update_mode' method. + + + + + Cached name for the 'get_update_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A regular expression (or regex) is a compact language that can be used to recognize strings that follow a specific pattern, such as URLs, email addresses, complete sentences, etc. For example, a regex of ab[0-9] would find any string that is ab followed by any number from 0 to 9. 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 before it can be used. + + var regex = RegEx.new() + regex.compile("\\w-(\\d+)") + + The search pattern must be escaped first for GDScript before it is escaped for the expression. For example, compile("\\d+") would be read by RegEx as \d+. Similarly, compile("\"(?:\\\\.|[^\"])*\"") would be read as "(?:\\.|[^"])*". In GDScript, you can also use raw string literals (r-strings). For example, compile(r'"(?:\\.|[^"])*"') would be read the same. + Using , you can find the pattern within the given text. If a pattern is found, is returned and you can retrieve details of the results using methods such as and . + + var regex = RegEx.new() + regex.compile("\\w-(\\d+)") + var result = regex.search("abc n-0123") + if result: + print(result.get_string()) # Would print n-0123 + + The results of capturing groups () can be retrieved by passing the group number to the various methods in . Group 0 is the default and will always refer to the entire pattern. In the above example, calling result.get_string(1) would give you 0123. + This version of RegEx also supports named capturing groups, and the names can be used to retrieve the results. If two or more groups have the same name, the name would only refer to the first one with a match. + + var regex = RegEx.new() + regex.compile("d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)") + var result = regex.search("the number is x2f") + if result: + print(result.get_string("digit")) # Would print 2f + + If you need to process multiple results, generates a list of all non-overlapping results. This can be combined with a for loop for convenience. + + for result in regex.search_all("d01, d03, d0c, x3f and x42"): + print(result.get_string("digit")) + # Would print 01 03 0 3f 42 + + Example: Split a string using a RegEx: + + var regex = RegEx.new() + regex.compile("\\S+") # Negated whitespace character class. + var results = [] + for result in regex.search_all("One Two \n\tThree"): + results.push_back(result.get_string()) + # The `results` array now contains "One", "Two", and "Three". + + Note: Godot's regex implementation is based on the PCRE2 library. You can view the full pattern reference here. + Tip: You can use Regexr to test regular expressions online. + + + + + Creates and compiles a new object. See also . + + + + + This method resets the state of the object, as if it was freshly created. Namely, it unassigns the regular expression of this object. + + + + + Compiles and assign the search pattern to use. Returns if the compilation is successful. If compilation fails, returns and when is , details are printed to standard output. + + + + + Searches the text for the compiled pattern. Returns a container of the first matching result if found, otherwise . + The region to search within can be specified with and . This is useful when searching for another match in the same by calling this method again after a previous success. Note that setting these parameters differs from passing over a shortened string. For example, the start anchor ^ is not affected by , and the character before will be checked for the word boundary \b. + + + + + Searches the text for the compiled pattern. Returns an array of containers for each non-overlapping result. If no results were found, an empty array is returned instead. + The region to search within can be specified with and . This is useful when searching for another match in the same by calling this method again after a previous success. Note that setting these parameters differs from passing over a shortened string. For example, the start anchor ^ is not affected by , and the character before will be checked for the word boundary \b. + + + + + Searches the text for the compiled pattern and replaces it with the specified string. Escapes and backreferences such as $1 and $name are expanded and resolved. By default, only the first instance is replaced, but it can be changed for all instances (global replacement). + The region to search within can be specified with and . This is useful when searching for another match in the same by calling this method again after a previous success. Note that setting these parameters differs from passing over a shortened string. For example, the start anchor ^ is not affected by , and the character before will be checked for the word boundary \b. + + + + + Returns whether this object has a valid search pattern assigned. + + + + + Returns the original search pattern that was compiled. + + + + + Returns the number of capturing groups in compiled pattern. + + + + + Returns an array of names of named capturing groups in the compiled pattern. They are ordered by appearance. + + + + + Compiles and assign the search pattern to use. Returns if the compilation is successful. If compilation fails, returns and when is , details are printed to standard output. + + + + + Creates and compiles a new object. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_string' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'compile' method. + + + + + Cached name for the 'search' method. + + + + + Cached name for the 'search_all' method. + + + + + Cached name for the 'sub' method. + + + + + Cached name for the 'is_valid' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'get_group_count' method. + + + + + Cached name for the 'get_names' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains the results of a single match returned by and . 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. + + + + + The source string used with the search pattern to find this matching result. + + + + + A dictionary of named groups and its corresponding group number. Only groups that were matched are included. If multiple groups have the same name, that name would refer to the first matching one. + + + + + An of the match and its capturing groups. + + + + + Returns the number of capturing groups. + + + + + Returns the substring of the match from the source string. Capturing groups can be retrieved by providing its group number as an integer or its string name (if it's a named group). The default value of 0 refers to the whole pattern. + Returns an empty string if the group did not match or doesn't exist. + + If the parameter is null, then the default value is (Variant)(0). + + + + Returns the starting position of the match within the source string. The starting position of capturing groups can be retrieved by providing its group number as an integer or its string name (if it's a named group). The default value of 0 refers to the whole pattern. + Returns -1 if the group did not match or doesn't exist. + + If the parameter is null, then the default value is (Variant)(0). + + + + Returns the end position of the match within the source string. The end position of capturing groups can be retrieved by providing its group number as an integer or its string name (if it's a named group). The default value of 0 refers to the whole pattern. + Returns -1 if the group did not match or doesn't exist. + + If the parameter is null, then the default value is (Variant)(0). + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'subject' property. + + + + + Cached name for the 'names' property. + + + + + Cached name for the 'strings' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_subject' method. + + + + + Cached name for the 'get_group_count' method. + + + + + Cached name for the 'get_names' method. + + + + + Cached name for the 'get_strings' method. + + + + + Cached name for the 'get_string' method. + + + + + Cached name for the 'get_start' method. + + + + + Cached name for the 'get_end' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + RemoteTransform2D pushes its own to another 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. + + + + + The to the remote node, relative to the RemoteTransform2D's position in the scene. + + + + + If , global coordinates are used. If , local coordinates are used. + + + + + If , the remote node's position is updated. + + + + + If , the remote node's rotation is updated. + + + + + If , the remote node's scale is updated. + + + + + caches the remote node. It may not notice if the remote node disappears; forces it to update the cache again. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'remote_path' property. + + + + + Cached name for the 'use_global_coordinates' property. + + + + + Cached name for the 'update_position' property. + + + + + Cached name for the 'update_rotation' property. + + + + + Cached name for the 'update_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_remote_node' method. + + + + + Cached name for the 'get_remote_node' method. + + + + + Cached name for the 'force_update_cache' method. + + + + + Cached name for the 'set_use_global_coordinates' method. + + + + + Cached name for the 'get_use_global_coordinates' method. + + + + + Cached name for the 'set_update_position' method. + + + + + Cached name for the 'get_update_position' method. + + + + + Cached name for the 'set_update_rotation' method. + + + + + Cached name for the 'get_update_rotation' method. + + + + + Cached name for the 'set_update_scale' method. + + + + + Cached name for the 'get_update_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + RemoteTransform3D pushes its own to another 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. + + + + + The to the remote node, relative to the RemoteTransform3D's position in the scene. + + + + + If , global coordinates are used. If , local coordinates are used. + + + + + If , the remote node's position is updated. + + + + + If , the remote node's rotation is updated. + + + + + If , the remote node's scale is updated. + + + + + caches the remote node. It may not notice if the remote node disappears; forces it to update the cache again. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'remote_path' property. + + + + + Cached name for the 'use_global_coordinates' property. + + + + + Cached name for the 'update_position' property. + + + + + Cached name for the 'update_rotation' property. + + + + + Cached name for the 'update_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_remote_node' method. + + + + + Cached name for the 'get_remote_node' method. + + + + + Cached name for the 'force_update_cache' method. + + + + + Cached name for the 'set_use_global_coordinates' method. + + + + + Cached name for the 'get_use_global_coordinates' method. + + + + + Cached name for the 'set_update_position' method. + + + + + Cached name for the 'get_update_position' method. + + + + + Cached name for the 'set_update_rotation' method. + + + + + Cached name for the 'get_update_rotation' method. + + + + + Cached name for the 'set_update_scale' method. + + + + + Cached name for the 'get_update_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract render data object, exists for the duration of rendering a single viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Returns the object managing the scene buffers for rendering this viewport. + + + + + Returns the object managing this frames scene data. + + + + + Returns the of the environment object in the being used to render this viewport. + + + + + Returns the of the camera attributes object in the being used to render this viewport. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_render_scene_buffers' method. + + + + + Cached name for the 'get_render_scene_data' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class allows for a RenderData implementation to be made in GDExtension. + + + + + Implement this in GDExtension to return the for the implementation's camera attributes object. + + + + + Implement this in GDExtension to return the of the implementation's environment object. + + + + + Implement this in GDExtension to return the implementation's object. + + + + + Implement this in GDExtension to return the implementation's object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_camera_attributes' method. + + + + + Cached name for the '_get_environment' method. + + + + + Cached name for the '_get_render_scene_buffers' method. + + + + + Cached name for the '_get_render_scene_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages all render data for the rendering device based renderers. + Note: This is an internal rendering server object only exposed for GDExtension plugins. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract scene buffers object, created for each viewport for which 3D rendering is done. It manages any additional buffers used during rendering and will discard buffers when the viewport is resized. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + This method is called by the rendering server when the associated viewports configuration is changed. It will discard the old buffers and recreate the internal buffers used. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'configure' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This configuration object is created and populated by the render engine on a viewport change and used to (re)configure a object. + + + + + The render target associated with these buffer. + + + + + The size of the 3D render buffer used for rendering. + + + + + The target (upscale) size if scaling is used. + + + + + The number of views we're rendering. + + + + + The requested scaling mode with which we upscale/downscale if and are not equal. + + + + + The MSAA mode we're using for 3D rendering. + + + + + The requested screen space AA applied in post processing. + + + + + FSR Sharpness applicable if FSR upscaling is used. + + + + + Bias applied to mipmaps. + + + + + Level of the anisotropic filter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_target' property. + + + + + Cached name for the 'internal_size' property. + + + + + Cached name for the 'target_size' property. + + + + + Cached name for the 'view_count' property. + + + + + Cached name for the 'scaling_3d_mode' property. + + + + + Cached name for the 'msaa_3d' property. + + + + + Cached name for the 'screen_space_aa' property. + + + + + Cached name for the 'fsr_sharpness' property. + + + + + Cached name for the 'texture_mipmap_bias' property. + + + + + Cached name for the 'anisotropic_filtering_level' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_render_target' method. + + + + + Cached name for the 'set_render_target' method. + + + + + Cached name for the 'get_internal_size' method. + + + + + Cached name for the 'set_internal_size' method. + + + + + Cached name for the 'get_target_size' method. + + + + + Cached name for the 'set_target_size' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'set_view_count' method. + + + + + Cached name for the 'get_scaling_3d_mode' method. + + + + + Cached name for the 'set_scaling_3d_mode' method. + + + + + Cached name for the 'get_msaa_3d' method. + + + + + Cached name for the 'set_msaa_3d' method. + + + + + Cached name for the 'get_screen_space_aa' method. + + + + + Cached name for the 'set_screen_space_aa' method. + + + + + Cached name for the 'get_fsr_sharpness' method. + + + + + Cached name for the 'set_fsr_sharpness' method. + + + + + Cached name for the 'get_texture_mipmap_bias' method. + + + + + Cached name for the 'set_texture_mipmap_bias' method. + + + + + Cached name for the 'get_anisotropic_filtering_level' method. + + + + + Cached name for the 'set_anisotropic_filtering_level' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class allows for a RenderSceneBuffer implementation to be made in GDExtension. + + + + + Implement this in GDExtension to handle the (re)sizing of a viewport. + + + + + Implement this in GDExtension to change the anisotropic filtering level. + + + + + Implement this in GDExtension to record a new FSR sharpness value. + + + + + Implement this in GDExtension to change the texture mipmap bias. + + + + + Implement this in GDExtension to react to the debanding flag changing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_configure' method. + + + + + Cached name for the '_set_anisotropic_filtering_level' method. + + + + + Cached name for the '_set_fsr_sharpness' method. + + + + + Cached name for the '_set_texture_mipmap_bias' method. + + + + + Cached name for the '_set_use_debanding' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages all 3D rendering buffers for the rendering device based renderers. An instance of this object is created for every viewport that has 3D rendering enabled. + All buffers are organized in contexts. The default context is called render_buffers and can contain amongst others the color buffer, depth buffer, velocity buffers, VRS density map and MSAA variants of these buffers. + Buffers are only guaranteed to exist during rendering of the viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Returns if a cached texture exists for this name. + + + + + Create a new texture with the given definition and cache this under the given name. Will return the existing texture if it already exists. + + + + + Create a new texture using the given format and view and cache this under the given name. Will return the existing texture if it already exists. + + + + + Create a new texture view for an existing texture and cache this under the given . Will return the existing texture view if it already exists. Will error if the source texture doesn't exist. + + + + + Returns a cached texture with this name. + + + + + Returns the texture format information with which a cached texture was created. + + + + + Returns a specific slice (layer or mipmap) for a cached texture. + + + + + Returns a specific view of a slice (layer or mipmap) for a cached texture. + + + + + Returns the texture size of a given slice of a cached texture. + + + + + Frees all buffers related to this context. + + + + + Returns the color texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the color texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the depth texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the depth texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the velocity texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is true and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the velocity texture we are rendering 3D content to. + + + + + Returns the render target associated with this buffers object. + + + + + Returns the view count for the associated viewport. + + + + + Returns the internal size of the render buffer (size before upscaling) with which textures are created by default. + + + + + Returns the target size of the render buffer (size after upscaling). + + + + + Returns the scaling mode used for upscaling. + + + + + Returns the FSR sharpness value used while rendering the 3D content (if is an FSR mode). + + + + + Returns the applied 3D MSAA mode for this viewport. + + + + + Returns the number of MSAA samples used. + + + + + Returns the screen-space antialiasing method applied. + + + + + Returns if TAA is enabled. + + + + + Returns if debanding is enabled. + + + + + Create a new texture with the given definition and cache this under the given name. Will return the existing texture if it already exists. + + + + + Returns the specified layer from the velocity texture we are rendering 3D content to. + + + + + Returns the velocity texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is true and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the depth texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the depth texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the color texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the color texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_texture' method. + + + + + Cached name for the 'create_texture' method. + + + + + Cached name for the 'create_texture_from_format' method. + + + + + Cached name for the 'create_texture_view' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'get_texture_format' method. + + + + + Cached name for the 'get_texture_slice' method. + + + + + Cached name for the 'get_texture_slice_view' method. + + + + + Cached name for the 'get_texture_slice_size' method. + + + + + Cached name for the 'clear_context' method. + + + + + Cached name for the 'get_color_texture' method. + + + + + Cached name for the 'get_color_layer' method. + + + + + Cached name for the 'get_depth_texture' method. + + + + + Cached name for the 'get_depth_layer' method. + + + + + Cached name for the 'get_velocity_texture' method. + + + + + Cached name for the 'get_velocity_layer' method. + + + + + Cached name for the 'get_render_target' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'get_internal_size' method. + + + + + Cached name for the 'get_target_size' method. + + + + + Cached name for the 'get_scaling_3d_mode' method. + + + + + Cached name for the 'get_fsr_sharpness' method. + + + + + Cached name for the 'get_msaa_3d' method. + + + + + Cached name for the 'get_texture_samples' method. + + + + + Cached name for the 'get_screen_space_aa' method. + + + + + Cached name for the 'get_use_taa' method. + + + + + Cached name for the 'get_use_debanding' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract scene data object, exists for the duration of rendering a single viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Returns the camera transform used to render this frame. + Note: If more than one view is rendered, this will return a centered transform. + + + + + Returns the camera projection used to render this frame. + Note: If more than one view is rendered, this will return a combined projection. + + + + + Returns the number of views being rendered. + + + + + Returns the eye offset per view used to render this frame. This is the offset between our camera transform and the eye transform. + + + + + Returns the view projection per view used to render this frame. + Note: If a single view is rendered, this returns the camera projection. If more than one view is rendered, this will return a projection for the given view including the eye offset. + + + + + Return the of the uniform buffer containing the scene data as a UBO. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cam_transform' method. + + + + + Cached name for the 'get_cam_projection' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'get_view_eye_offset' method. + + + + + Cached name for the 'get_view_projection' method. + + + + + Cached name for the 'get_uniform_buffer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class allows for a RenderSceneData implementation to be made in GDExtension. + + + + + Implement this in GDExtension to return the camera . + + + + + Implement this in GDExtension to return the camera . + + + + + Implement this in GDExtension to return the of the uniform buffer containing the scene data as a UBO. + + + + + Implement this in GDExtension to return the view count. + + + + + Implement this in GDExtension to return the eye offset for the given . + + + + + Implement this in GDExtension to return the view for the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_cam_projection' method. + + + + + Cached name for the '_get_cam_transform' method. + + + + + Cached name for the '_get_uniform_buffer' method. + + + + + Cached name for the '_get_view_count' method. + + + + + Cached name for the '_get_view_eye_offset' method. + + + + + Cached name for the '_get_view_projection' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Object holds scene data related to rendering a single frame of a viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed. + The rendering server can be used to bypass the scene/ system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized). + Resources are created using the *_create functions. These functions return s which are not references to the objects themselves, but opaque pointers towards these objects. + All objects are drawn to a viewport. You can use the attached to the or you can create one yourself with . When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using or . + Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any node with . Otherwise, a scenario can be created with . + Similarly, in 2D, a canvas is needed to draw all canvas items. + 3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using . The instance must also be attached to the scenario using in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always). + 2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with canvas_*. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + Marks an error that shows that the index array is empty. + + + + + Number of weights/bones per vertex. + + + + + The minimum Z-layer for canvas items. + + + + + The maximum Z-layer for canvas items. + + + + + The maximum number of glow levels that can be used with the glow post-processing effect. + + + + + The maximum number of directional lights that can be rendered at a given time in 2D. + + + + + The maximum number of surfaces a mesh can have. + + + + + The minimum renderpriority of all materials. + + + + + The maximum renderpriority of all materials. + + + + + The number of custom data arrays available (, , , ). + + + + + 2D texture. + + + + + Layered texture. + + + + + 3D texture. + + + + + Array of 2-dimensional textures (see ). + + + + + Cubemap texture (see ). + + + + + Array of cubemap textures (see ). + + + + + Left face of a . + + + + + Right face of a . + + + + + Bottom face of a . + + + + + Top face of a . + + + + + Front face of a . + + + + + Back face of a . + + + + + Shader is a 3D shader. + + + + + Shader is a 2D shader. + + + + + Shader is a particle shader (can be used in both 2D and 3D). + + + + + Shader is a 3D sky shader. + + + + + Shader is a 3D fog shader. + + + + + Represents the size of the enum. + + + + + Array is a vertex position array. + + + + + Array is a normal array. + + + + + Array is a tangent array. + + + + + Array is a vertex color array. + + + + + Array is a UV coordinates array. + + + + + Array is a UV coordinates array for the second set of UV coordinates. + + + + + Array is a custom data array for the first set of custom data. + + + + + Array is a custom data array for the second set of custom data. + + + + + Array is a custom data array for the third set of custom data. + + + + + Array is a custom data array for the fourth set of custom data. + + + + + Array contains bone information. + + + + + Array is weight information. + + + + + Array is an index array. + + + + + Represents the size of the enum. + + + + + Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, unsigned floating-point in the [0.0, 1.0] range. + + + + + Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, signed floating-point in the [-1.0, 1.0] range. + + + + + Custom data array contains 16-bit-per-channel red/green color data. Values are floating-point in half precision. + + + + + Custom data array contains 16-bit-per-channel red/green/blue/alpha color data. Values are floating-point in half precision. + + + + + Custom data array contains 32-bit-per-channel red color data. Values are floating-point in single precision. + + + + + Custom data array contains 32-bit-per-channel red/green color data. Values are floating-point in single precision. + + + + + Custom data array contains 32-bit-per-channel red/green/blue color data. Values are floating-point in single precision. + + + + + Custom data array contains 32-bit-per-channel red/green/blue/alpha color data. Values are floating-point in single precision. + + + + + Represents the size of the enum. + + + + + Flag used to mark a vertex position array. + + + + + Flag used to mark a normal array. + + + + + Flag used to mark a tangent array. + + + + + Flag used to mark a vertex color array. + + + + + Flag used to mark a UV coordinates array. + + + + + Flag used to mark a UV coordinates array for the second UV coordinates. + + + + + Flag used to mark an array of custom per-vertex data for the first set of custom data. + + + + + Flag used to mark an array of custom per-vertex data for the second set of custom data. + + + + + Flag used to mark an array of custom per-vertex data for the third set of custom data. + + + + + Flag used to mark an array of custom per-vertex data for the fourth set of custom data. + + + + + Flag used to mark a bone information array. + + + + + Flag used to mark a weights array. + + + + + Flag used to mark an index array. + + + + + Flag used to mark that the array contains 2D vertices. + + + + + Flag used to mark that the array uses 8 bone weights instead of 4. + + + + + 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. + + + + + 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. + + + + + Flag used to mark the start of the bits used to store the mesh version. + + + + + Flag used to shift a mesh format int to bring the version into the lowest digits. + + + + + Flag used to record the format used by prior mesh versions before the introduction of a version. + + + + + Flag used to record the second iteration of the mesh version flag. The primary difference between this and is that this version supports and in this version vertex positions are de-interleaved from normals and tangents. + + + + + Flag used to record the current version that the engine expects. Currently this is the same as . + + + + + Flag used to isolate the bits used for mesh version after using to shift them into place. + + + + + Primitive to draw consists of points. + + + + + Primitive to draw consists of lines. + + + + + Primitive to draw consists of a line strip from start to end. + + + + + Primitive to draw consists of triangles. + + + + + Primitive to draw consists of a triangle strip (the last 3 vertices are always combined to make a triangle). + + + + + Represents the size of the enum. + + + + + Blend shapes are normalized. + + + + + Blend shapes are relative to base weight. + + + + + Use to store MultiMesh transform. + + + + + Use to store MultiMesh transform. + + + + + MultiMesh physics interpolation favors speed over quality. + + + + + MultiMesh physics interpolation favors quality over speed. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + Directional (sun/moon) light (see ). + + + + + Omni light (see ). + + + + + Spot light (see ). + + + + + The light's energy multiplier. + + + + + The light's indirect energy multiplier (final indirect energy is * ). + + + + + The light's volumetric fog energy multiplier (final volumetric fog energy is * ). + + + + + The light's influence on specularity. + + + + + The light's range. + + + + + The size of the light when using spot light or omni light. The angular size of the light when using directional light. + + + + + The light's attenuation. + + + + + The spotlight's angle. + + + + + The spotlight's attenuation. + + + + + 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). + + + + + Proportion of shadow atlas occupied by the first split. + + + + + Proportion of shadow atlas occupied by the second split. + + + + + Proportion of shadow atlas occupied by the third split. The fourth split occupies the rest. + + + + + Proportion of shadow max distance where the shadow will start to fade out. + + + + + Normal bias used to offset shadow lookup by object normal. Can be used to fix self-shadowing artifacts. + + + + + Bias the shadow lookup to fix self-shadowing artifacts. + + + + + 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 0 turns off the pancaking effect. + + + + + The light's shadow opacity. Values lower than 1.0 make the light appear through shadows. This can be used to fake global illumination at a low performance cost. + + + + + 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. + + + + + Constant representing the intensity of the light, measured in Lumens when dealing with a or , or measured in Lux with a . Only used when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . + + + + + Represents the size of the enum. + + + + + 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. + + + + + Light is taken into account in static baking (, , SDFGI ()). 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. + + + + + Light is taken into account in dynamic baking ( and SDFGI () 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 . This has a greater performance cost compared to . When using SDFGI, the update speed of dynamic lights is affected by ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Use a dual paraboloid shadow map for omni lights. + + + + + Use a cubemap shadow map for omni lights. Slower but better quality than dual paraboloid. + + + + + Use orthogonal shadow projection for directional light. + + + + + Use 2 splits for shadow projection when using directional light. + + + + + Use 4 splits for shadow projection when using directional light. + + + + + Use DirectionalLight3D in both sky rendering and scene lighting. + + + + + Only use DirectionalLight3D in scene lighting. + + + + + Only use DirectionalLight3D in sky rendering. + + + + + Lowest shadow filtering quality (fastest). Soft shadows are not available with this quality setting, which means the property is ignored if and is 0.0. + Note: The variable shadow blur performed by and is still effective when using hard shadow filtering. In this case, is taken into account. However, the results will not be blurred, instead the blur amount is treated as a maximum radius for the penumbra. + + + + + Very low shadow filtering quality (faster). When using this quality setting, is automatically multiplied by 0.75× to avoid introducing too much noise. This division only applies to lights whose or is 0.0). + + + + + Low shadow filtering quality (fast). + + + + + Medium low shadow filtering quality (average). + + + + + High low shadow filtering quality (slow). When using this quality setting, 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 or is 0.0). + + + + + Highest low shadow filtering quality (slowest). When using this quality setting, 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 or is 0.0). + + + + + Represents the size of the enum. + + + + + Reflection probe will update reflections once and then stop. + + + + + Reflection probe will update each frame. This mode is necessary to capture moving objects. + + + + + Do not apply any ambient lighting inside the reflection probe's box defined by its size. + + + + + Apply automatically-sourced environment lighting inside the reflection probe's box defined by its size. + + + + + Apply custom ambient lighting inside the reflection probe's box defined by its size. See and . + + + + + Albedo texture slot in a decal (). + + + + + Normal map texture slot in a decal (). + + + + + Occlusion/Roughness/Metallic texture slot in a decal (). + + + + + Emission texture slot in a decal (). + + + + + Represents the size of the enum. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + Low rendering quality using 4 cones. + + + + + High rendering quality using 6 cones. + + + + + 2D particles. + + + + + 3D particles. + + + + + Draw particles in the order that they appear in the particles array. + + + + + Sort particles based on their lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Sort particles based on the inverse of their lifetime. In other words, the particle with the lowest lifetime is drawn at the front. + + + + + Sort particles based on their distance to the camera. + + + + + Represents the size of the enum. + + + + + will be shaped like an ellipsoid (stretched sphere). + + + + + 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 node to reorient the cone. Non-uniform scaling via size is not supported (scale the node instead). + + + + + will be shaped like an upright cylinder (in local coordinates). Rotate the 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 node instead). + + + + + will be shaped like a box. + + + + + will have no shape, will cover the whole world and will not be culled. + + + + + Represents the size of the enum. + + + + + Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will result in undersampling while values greater than 1.0 will result in supersampling. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR2. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 will use FSR2 at native resolution as a TAA solution. + + + + + Represents the size of the enum. + + + + + Do not update the viewport's render target. + + + + + Update the viewport's render target once, then switch to . + + + + + Update the viewport's render target only when it is visible. This is the default value. + + + + + Update the viewport's render target only when its parent is visible. + + + + + Always update the viewport's render target. + + + + + Always clear the viewport's render target before drawing. + + + + + Never clear the viewport's render target. + + + + + Clear the viewport's render target on the next frame, then switch to . + + + + + Disable rendering of 3D environment over 2D canvas. + + + + + Enable rendering of 3D environment over 2D canvas. + + + + + Inherit enable/disable value from parent. If the topmost parent is also set to , then this has the same behavior as . + + + + + Represents the size of the enum. + + + + + Do not oversize the 2D signed distance field. Occluders may disappear when touching the viewport's edges, and collision may stop working earlier than intended. This has the lowest GPU requirements. + + + + + 2D signed distance field covers 20% of the viewport's size outside the viewport on each side (top, right, bottom, left). + + + + + 2D signed distance field covers 50% of the viewport's size outside the viewport on each side (top, right, bottom, left). + + + + + 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. + + + + + Represents the size of the enum. + + + + + Full resolution 2D signed distance field scale. This has the highest GPU requirements. + + + + + Half resolution 2D signed distance field scale on each axis (25% of the viewport pixel count). + + + + + Quarter resolution 2D signed distance field scale on each axis (6.25% of the viewport pixel count). This has the lowest GPU requirements. + + + + + Represents the size of the enum. + + + + + Multisample antialiasing for 3D is disabled. This is the default value, and also the fastest setting. + + + + + Multisample antialiasing uses 2 samples per pixel for 3D. This has a moderate impact on performance. + + + + + Multisample antialiasing uses 4 samples per pixel for 3D. This has a high impact on performance. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Anisotropic filtering is disabled. + + + + + Use 2× anisotropic filtering. + + + + + Use 4× anisotropic filtering. This is the default value. + + + + + Use 8× anisotropic filtering. + + + + + Use 16× anisotropic filtering. + + + + + Represents the size of the enum. + + + + + Do not perform any antialiasing in the full screen post-process. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Low occlusion culling BVH build quality (as defined by Embree). Results in the lowest CPU usage, but least effective culling. + + + + + Medium occlusion culling BVH build quality (as defined by Embree). + + + + + High occlusion culling BVH build quality (as defined by Embree). Results in the highest CPU usage, but most effective culling. + + + + + Number of objects drawn in a single frame. + + + + + Number of points, lines, or triangles drawn in a single frame. + + + + + Number of draw calls during this frame. + + + + + Represents the size of the enum. + + + + + Visible render pass (excluding shadows). + + + + + 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. + + + + + Canvas item rendering. This includes all 2D rendering. + + + + + Represents the size of the enum. + + + + + Debug draw is disabled. Default setting. + + + + + Objects are displayed without light information. + + + + + Objects are displayed with only light information. + + + + + 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. + Note: When using this debug draw mode, custom shaders will be ignored. This means vertex displacement won't be visible anymore. + + + + + Debug draw draws objects in wireframe. + Note: must be called before loading any meshes for wireframes to be visible when using the Compatibility renderer. + + + + + Normal buffer is drawn instead of regular scene so you can see the per-pixel normals that will be used by post-processing effects. + + + + + Objects are displayed with only the albedo value from s. + + + + + Objects are displayed with only the lighting value from s. + + + + + Objects are displayed with only the emission color from s. + + + + + Draws the shadow atlas that stores shadows from s and s in the upper left quadrant of the . + + + + + Draws the shadow atlas that stores shadows from s in the upper left quadrant of the . + 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 . 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. + + + + + Draws the estimated scene luminance. This is a 1×1 texture that is generated when autoexposure is enabled to control the scene's exposure. + + + + + 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 set in your . + + + + + 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 set in your . + + + + + Colors each PSSM split for the 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. + + + + + Draws the decal atlas that stores decal textures from s. + + + + + Draws SDFGI cascade data. This is the data structure that is used to bounce lighting against and create reflections. + + + + + Draws SDFGI probe data. This is the data structure that is used to give indirect lighting dynamic objects moving within the scene. + + + + + Draws the global illumination buffer ( or SDFGI). + + + + + Disable mesh LOD. All meshes are drawn with full detail, which can be used to compare performance. + + + + + Draws the cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting. + + + + + Draws the cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting. + + + + + Draws the cluster. Clustering determines where decals are positioned in screen-space, which allows the engine to only process these portions of the screen for decals. + + + + + Draws the 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. + + + + + 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. + + + + + Draws the motion vectors buffer. This is used by temporal antialiasing to correct for motion that occurs during gameplay. + + + + + Internal buffer is drawn instead of regular scene so you can see the per-pixel output that will be used by post-processing effects. + + + + + Variable rate shading is disabled. + + + + + Variable rate shading uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view. + + + + + Variable rate shading texture is supplied by the primary . Note that this may override the update mode. + + + + + Represents the size of the enum. + + + + + The input texture for variable rate shading will not be processed. + + + + + The input texture for variable rate shading will be processed once. + + + + + The input texture for variable rate shading will be processed each frame. + + + + + Represents the size of the enum. + + + + + Automatically selects the appropriate process mode based on your sky shader. If your shader uses TIME or POSITION, this will use . If your shader uses any of the LIGHT_* variables or any custom uniforms, this uses . Otherwise, this defaults to . + + + + + Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than 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 ProjectSettings.rendering/reflections/sky_reflections/ggx_samples. + + + + + Uses the same high quality importance sampling to process the radiance map as , but updates over several frames. The number of frames is determined by ProjectSettings.rendering/reflections/sky_reflections/roughness_layers. Use this when you need highest quality radiance maps, but have a sky that updates slowly. + + + + + 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 ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality. + Note: The fast filtering algorithm is limited to 256×256 cubemaps, so must be set to 256. Otherwise, a warning is printed and the overridden radiance size is ignored. + + + + + The rendering effect requires the color buffer to be resolved if MSAA is enabled. + + + + + The rendering effect requires the depth buffer to be resolved if MSAA is enabled. + + + + + The rendering effect requires motion vectors to be produced. + + + + + The rendering effect requires normals and roughness g-buffer to be produced (Forward+ only). + + + + + The rendering effect requires specular data to be separated out (Forward+ only). + + + + + The callback is called before our opaque rendering pass, but after depth prepass (if applicable). + + + + + The callback is called after our opaque rendering pass, but before our sky is rendered. + + + + + The callback is called after our sky is rendered, but before our back buffers are created (and if enabled, before subsurface scattering and/or screen space reflections). + + + + + The callback is called before our transparent rendering pass, but after our sky is rendered and we've created our back buffers. + + + + + The callback is called after our transparent rendering pass, but before any built-in post-processing effects and output to our render target. + + + + + Use the clear color as background. + + + + + Use a specified color as the background. + + + + + Use a sky resource for the background. + + + + + Use a specified canvas layer as the background. This can be useful for instantiating a 2D scene in a 3D world. + + + + + Do not clear the background, use whatever was rendered last frame as the background. + + + + + Displays a camera feed in the background. + + + + + Represents the size of the enum. + + + + + Gather ambient light from whichever source is specified as the background. + + + + + Disable ambient light. + + + + + Specify a specific for ambient light. + + + + + Gather ambient light from the regardless of what the background is. + + + + + Use the background for reflections. + + + + + Disable reflections. + + + + + Use the for reflections regardless of what the background is. + + + + + Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources. + + + + + Screen glow blending mode. Increases brightness, used frequently with bloom. + + + + + Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom). + + + + + 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. + + + + + Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect. + + + + + Use a physically-based fog model defined primarily by fog density. + + + + + Use a simple fog model defined by start and end positions and a custom curve. While not physically accurate, this model can be useful when you need more artistic control. + + + + + Output color as they came in. This can cause bright lighting to look blown out, with noticeable clipping in the output colors. + + + + + Use the Reinhard tonemapper. Performs a variation on rendered pixels' colors by this formula: color = color * (1 + color / (white * white)) / (1 + color). This avoids clipping bright highlights, but the resulting image can look a bit dull. When is left at the default value of 1.0 this is identical to while also being slightly less performant. + + + + + Use the filmic tonemapper. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than . + + + + + 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 and . + Note: This tonemapping operator is called "ACES Fitted" in Godot 3.x. + + + + + 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. + + + + + Low quality of roughness filter for screen-space reflections. + + + + + Medium quality of roughness filter for screen-space reflections. + + + + + High quality of roughness filter for screen-space reflections. This is the slowest option. + + + + + Lowest quality of screen-space ambient occlusion. + + + + + Low quality screen-space ambient occlusion. + + + + + Medium quality screen-space ambient occlusion. + + + + + High quality screen-space ambient occlusion. + + + + + Highest quality screen-space ambient occlusion. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality. + + + + + Lowest quality of screen-space indirect lighting. + + + + + Low quality screen-space indirect lighting. + + + + + High quality screen-space indirect lighting. + + + + + High quality screen-space indirect lighting. + + + + + Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality. + + + + + 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. + + + + + Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales. + + + + + 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. + + + + + Throw 4 rays per frame when converging SDFGI. This has the lowest GPU requirements, but creates the most noisy result. + + + + + Throw 8 rays per frame when converging SDFGI. + + + + + Throw 16 rays per frame when converging SDFGI. + + + + + Throw 32 rays per frame when converging SDFGI. + + + + + Throw 64 rays per frame when converging SDFGI. + + + + + Throw 96 rays per frame when converging SDFGI. This has high GPU requirements. + + + + + Throw 128 rays per frame when converging SDFGI. This has very high GPU requirements, but creates the least noisy result. + + + + + Represents the size of the enum. + + + + + Converge SDFGI over 5 frames. This is the most responsive, but creates the most noisy result with a given ray count. + + + + + Configure SDFGI to fully converge over 10 frames. + + + + + Configure SDFGI to fully converge over 15 frames. + + + + + Configure SDFGI to fully converge over 20 frames. + + + + + Configure SDFGI to fully converge over 25 frames. + + + + + Configure SDFGI to fully converge over 30 frames. This is the least responsive, but creates the least noisy result with a given ray count. + + + + + Represents the size of the enum. + + + + + Update indirect light from dynamic lights in SDFGI over 1 frame. This is the most responsive, but has the highest GPU requirements. + + + + + Update indirect light from dynamic lights in SDFGI over 2 frames. + + + + + Update indirect light from dynamic lights in SDFGI over 4 frames. + + + + + Update indirect light from dynamic lights in SDFGI over 8 frames. + + + + + Update indirect light from dynamic lights in SDFGI over 16 frames. This is the least responsive, but has the lowest GPU requirements. + + + + + Represents the size of the enum. + + + + + Disables subsurface scattering entirely, even on materials that have set to . This has the lowest GPU requirements. + + + + + Low subsurface scattering quality. + + + + + Medium subsurface scattering quality. + + + + + High subsurface scattering quality. This has the highest GPU requirements. + + + + + Calculate the DOF blur using a box filter. The fastest option, but results in obvious lines in blur pattern. + + + + + Calculates DOF blur using a hexagon shaped filter. + + + + + 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). + + + + + Lowest quality DOF blur. This is the fastest setting, but you may be able to see filtering artifacts. + + + + + Low quality DOF blur. + + + + + Medium quality DOF blur. + + + + + Highest quality DOF blur. Results in the smoothest looking blur by taking the most samples, but is also significantly slower. + + + + + The instance does not have a type. + + + + + The instance is a mesh. + + + + + The instance is a multimesh. + + + + + The instance is a particle emitter. + + + + + The instance is a GPUParticles collision shape. + + + + + The instance is a light. + + + + + The instance is a reflection probe. + + + + + The instance is a decal. + + + + + The instance is a VoxelGI. + + + + + The instance is a lightmap. + + + + + The instance is an occlusion culling occluder. + + + + + The instance is a visible on-screen notifier. + + + + + The instance is a fog volume. + + + + + Represents the size of the enum. + + + + + A combination of the flags of geometry instances (mesh, multimesh, immediate and particles). + + + + + Allows the instance to be used in baked lighting. + + + + + Allows the instance to be used with dynamic global illumination. + + + + + When set, manually requests to draw geometry on next frame. + + + + + Always draw, even if the instance would be culled by occlusion culling. Does not affect view frustum culling. + + + + + Represents the size of the enum. + + + + + Disable shadows from this instance. + + + + + Cast shadows from this instance. + + + + + Disable backface culling when rendering the shadow of the object. This is slightly slower but may result in more correct shadows. + + + + + Only render the shadows from the object. The object itself will not be drawn. + + + + + Disable visibility range fading for the given instance. + + + + + Fade-out the given instance when it approaches its visibility range limits. + + + + + Fade-in the given instance's dependencies when reaching its visibility range limits. + + + + + Index of in array of s returned by . Image uses and contains albedo color in the .rgb channels and alpha in the .a channel. + + + + + Index of in array of s returned by . Image uses and contains the per-pixel normal of the object in the .rgb channels and nothing in the .a channel. The per-pixel normal is encoded as normal * 0.5 + 0.5. + + + + + Index of in array of s returned by . Image uses and contains ambient occlusion (from material and decals only) in the .r channel, roughness in the .g channel, metallic in the .b channel and sub surface scattering amount in the .a channel. + + + + + Index of in array of s returned by . Image uses and contains emission color in the .rgb channels and nothing in the .a channel. + + + + + Diffuse canvas texture (). + + + + + Normal map canvas texture (). + + + + + Specular map canvas texture (). + + + + + The nine patch gets stretched where needed. + + + + + The nine patch gets filled with tiles where needed. + + + + + The nine patch gets filled with tiles where needed and stretches them a bit if needed. + + + + + Uses the default filter mode for this . + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + Max value for enum. + + + + + Uses the default repeat mode for this . + + + + + 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. + + + + + 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. + + + + + Flip the texture when repeating so that the edge lines up instead of abruptly changing. + + + + + Max value for enum. + + + + + Child draws over parent and is not clipped. + + + + + Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn. + + + + + Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area. + + + + + 2D point light (see ). + + + + + 2D directional (sun/moon) light (see ). + + + + + Adds light color additive to the canvas. + + + + + Adds light color subtractive to the canvas. + + + + + The light adds color depending on transparency. + + + + + Do not apply a filter to canvas light shadows. + + + + + Use PCF5 filtering to filter canvas light shadows. + + + + + Use PCF13 filtering to filter canvas light shadows. + + + + + Max value of the enum. + + + + + Culling of the canvas occluder is disabled. + + + + + Culling of the canvas occluder is clockwise. + + + + + Culling of the canvas occluder is counterclockwise. + + + + + Boolean global shader parameter (global uniform bool ...). + + + + + 2-dimensional boolean vector global shader parameter (global uniform bvec2 ...). + + + + + 3-dimensional boolean vector global shader parameter (global uniform bvec3 ...). + + + + + 4-dimensional boolean vector global shader parameter (global uniform bvec4 ...). + + + + + Integer global shader parameter (global uniform int ...). + + + + + 2-dimensional integer vector global shader parameter (global uniform ivec2 ...). + + + + + 3-dimensional integer vector global shader parameter (global uniform ivec3 ...). + + + + + 4-dimensional integer vector global shader parameter (global uniform ivec4 ...). + + + + + 2-dimensional integer rectangle global shader parameter (global uniform ivec4 ...). Equivalent to in shader code, but exposed as a in the editor UI. + + + + + Unsigned integer global shader parameter (global uniform uint ...). + + + + + 2-dimensional unsigned integer vector global shader parameter (global uniform uvec2 ...). + + + + + 3-dimensional unsigned integer vector global shader parameter (global uniform uvec3 ...). + + + + + 4-dimensional unsigned integer vector global shader parameter (global uniform uvec4 ...). + + + + + Single-precision floating-point global shader parameter (global uniform float ...). + + + + + 2-dimensional floating-point vector global shader parameter (global uniform vec2 ...). + + + + + 3-dimensional floating-point vector global shader parameter (global uniform vec3 ...). + + + + + 4-dimensional floating-point vector global shader parameter (global uniform vec4 ...). + + + + + Color global shader parameter (global uniform vec4 ...). Equivalent to in shader code, but exposed as a in the editor UI. + + + + + 2-dimensional floating-point rectangle global shader parameter (global uniform vec4 ...). Equivalent to in shader code, but exposed as a in the editor UI. + + + + + 2×2 matrix global shader parameter (global uniform mat2 ...). Exposed as a [] in the editor UI. + + + + + 3×3 matrix global shader parameter (global uniform mat3 ...). Exposed as a in the editor UI. + + + + + 4×4 matrix global shader parameter (global uniform mat4 ...). Exposed as a in the editor UI. + + + + + 2-dimensional transform global shader parameter (global uniform mat2x3 ...). Exposed as a in the editor UI. + + + + + 3-dimensional transform global shader parameter (global uniform mat3x4 ...). Exposed as a in the editor UI. + + + + + 2D sampler global shader parameter (global uniform sampler2D ...). Exposed as a in the editor UI. + + + + + 2D sampler array global shader parameter (global uniform sampler2DArray ...). Exposed as a in the editor UI. + + + + + 3D sampler global shader parameter (global uniform sampler3D ...). Exposed as a in the editor UI. + + + + + Cubemap sampler global shader parameter (global uniform samplerCube ...). Exposed as a in the editor UI. + + + + + External sampler global shader parameter (global uniform samplerExternalOES ...). Exposed as a in the editor UI. + + + + + Represents the size of the enum. + + + + + Number of objects rendered in the current 3D scene. This varies depending on camera position and rotation. + + + + + Number of points, lines, or triangles rendered in the current 3D scene. This varies depending on camera position and rotation. + + + + + Number of draw calls performed to render in the current 3D scene. This varies depending on camera position and rotation. + + + + + Texture memory used (in bytes). + + + + + Buffer memory used (in bytes). This includes vertex data, uniform buffers, and many miscellaneous buffer types used internally. + + + + + Video memory used (in bytes). When using the Forward+ or Mobile renderers, this is always greater than the sum of and , since there is miscellaneous data not accounted for by those two metrics. When using the Compatibility renderer, this is equal to the sum of and . + + + + + Number of pipeline compilations that were triggered by the 2D canvas renderer. + + + + + Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading an scene the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever. + + + + + Pipeline compilation that was triggered by the 2D canvas renderer. + + + + + Pipeline compilation that was triggered by loading a mesh. + + + + + Pipeline compilation that was triggered by building the surface cache before rendering the scene. + + + + + Pipeline compilation that was triggered while drawing the scene. + + + + + Pipeline compilation that was triggered to optimize the current scene. + + + + + Represents the size of the enum. + + + + + If , disables rendering completely, but the engine logic is still being processed. You can call to draw a frame even with rendering disabled. + + + + + Creates a 2-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + Note: Not to be confused with , which creates the graphics API's own texture type as opposed to the Godot-specific resource. + + + + + Creates a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Note: The equivalent resource is . + + + + + This method does nothing and always returns an invalid . + + + + + Creates a texture based on a native handle that was created outside of Godot's renderer. + Note: If using the rendering device renderer, using rather than this method is recommended. It will give you much more control over the texture's format and usage. + + + + + Updates the texture specified by the with the data in . A must also be specified, which should be 0 when updating a single-layer texture (). + Note: The must have the same width, height and format as the current data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height or format, use instead. + + + + + Updates the texture specified by the 's data with the data in . All the texture's layers must be replaced at once. + Note: The must have the same width, height, depth and format as the current texture data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height, depth or format, use instead. + + + + + This method does nothing. + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Note: The equivalent resource is . + + + + + Creates a placeholder for a 3-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_3d_* RenderingServer functions, although it does nothing when used. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Returns an instance from the given . + Example: Get the test texture from and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns an instance from the given and . + + + + + Returns 3D texture data as an array of s for the specified texture . + + + + + Replaces 's texture data by the texture specified by the RID, without changing 's RID. + + + + + Returns the format for the texture. + + + + + Creates a new texture object based on a texture created directly on the . If the texture contains layers, is used to define the layer type. + + + + + Returns a texture that can be used with . + + + + + Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension. + Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan). + + + + + Creates an empty shader and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all shader_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shader's source code (which triggers recompilation after being changed). + + + + + Sets the path hint for the specified shader. This should generally match the resource's . + + + + + Returns a shader's source code as a string. + + + + + Returns the parameters of a shader. + + + + + Returns the default value for the specified shader uniform. This is usually the value written in the shader source code. + + + + + Sets a shader's default texture. Overwrites the texture given by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns a default texture from a shader searched by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Creates an empty material and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all material_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets a shader material's shader. + + + + + Sets a material's parameter. + + + + + Returns the value of a certain material's parameter. + + + + + Sets a material's render priority. + + + + + Sets an object's next material. + + + + + Creates a new mesh and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all mesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the offset of a given attribute by in the start of its respective buffer. + + + + + Returns the stride of the vertex positions for a mesh with given . Note importantly that vertex positions are stored consecutively and are not interleaved with the other attributes in the vertex buffer (normals and tangents). + + + + + Returns the stride of the combined normals and tangents for a mesh with given . Note importantly that, while normals and tangents are in the vertex buffer with vertices, they are only interleaved with each other and so have a different stride than vertex positions. + + + + + Returns the stride of the attribute buffer for a mesh with given . + + + + + Returns the stride of the skin buffer for a mesh with given . + + + + + Returns a mesh's blend shape count. + + + + + Sets a mesh's blend shape mode. + + + + + Returns a mesh's blend shape mode. + + + + + Sets a mesh's surface's material. + + + + + Returns a mesh's surface's material. + + + + + Returns a mesh's surface's buffer arrays. + + + + + Returns a mesh's surface's arrays for blend shapes. + + + + + Returns a mesh's number of surfaces. + + + + + Sets a mesh's custom aabb. + + + + + Returns a mesh's custom aabb. + + + + + Removes all surfaces from a mesh. + + + + + Creates a new multimesh on the RenderingServer and returns an handle. This RID will be used in all multimesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this multimesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the number of instances allocated for this multimesh. + + + + + Sets the mesh to be drawn by the multimesh. Equivalent to . + + + + + Sets the for this instance. Equivalent to . + + + + + Sets the for this instance. For use when multimesh is used in 2D. Equivalent to . + + + + + Sets the color by which this instance will be modulated. Equivalent to . + + + + + Sets the custom data for this instance. Custom data is passed as a , but is interpreted as a vec4 in the shader. Equivalent to . + + + + + Returns the RID of the mesh that will be used in drawing this multimesh. + + + + + Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh. + + + + + Sets the custom AABB for this MultiMesh resource. + + + + + Returns the custom AABB defined for this MultiMesh resource. + + + + + Returns the of the specified instance. + + + + + Returns the of the specified instance. For use when the multimesh is set to use 2D transforms. + + + + + Returns the color by which the specified instance will be modulated. + + + + + Returns the custom data associated with the specified instance. + + + + + Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to . + + + + + Returns the number of visible instances for this multimesh. + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Returns the handle of the , which can be used as any other buffer on the Rendering Device. + + + + + Returns the MultiMesh data (such as instance transforms, colors, etc.). See for details on the returned data. + Note: If the buffer is in the engine's internal cache, it will have to be fetched from GPU memory and possibly decompressed. This means is potentially a slow operation and should be avoided whenever possible. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Turns on and off physics interpolation for this MultiMesh resource. + + + + + Sets the physics interpolation quality for the . + A value of gives fast but low quality interpolation, a value of gives slower but higher quality interpolation. + + + + + Prevents physics interpolation for the specified instance during the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Creates a skeleton and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all skeleton_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Returns the number of bones allocated for this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Creates a directional light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this directional light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a new omni light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this omni light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a spot light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this spot light to an instance using using the returned RID. + + + + + Sets the color of the light. Equivalent to . + + + + + Sets the specified 3D light parameter. See for options. Equivalent to . + + + + + If , light will cast shadows. Equivalent to . + + + + + Sets the projector texture to use for the specified 3D light. Equivalent to . + + + + + If , the 3D light will subtract light instead of adding light. Equivalent to . + + + + + Sets the cull mask for this 3D light. Lights only affect objects in the selected layers. Equivalent to . + + + + + Sets the distance fade for this 3D light. This acts as a form of level of detail (LOD) and can be used to improve performance. Equivalent to , , , and . + + + + + If , reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with . Equivalent to . + + + + + Sets the shadow caster mask for this 3D light. Shadows will only be cast using objects in the selected layers. Equivalent to . + + + + + Sets the bake mode to use for the specified 3D light. Equivalent to . + + + + + Sets the maximum SDFGI cascade in which the 3D light's indirect lighting is rendered. Higher values allow the light to be rendered in SDFGI further away from the camera. + + + + + Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to . + + + + + Sets the shadow mode for this directional light. Equivalent to . See for options. + + + + + If , this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to . + + + + + If , this light will not be used for anything except sky shaders. Use this for lights that impact your sky shader that you may want to hide from affecting the rest of the scene. For example, you may want to enable this when the sun in your sky shader falls below the horizon. + + + + + Sets the texture filter mode to use when rendering light projectors. This parameter is global and cannot be set on a per-light basis. + + + + + Toggles whether a bicubic filter should be used when lightmaps are sampled. This smoothens their appearance at a performance cost. + + + + + Sets the filter quality for omni and spot light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the filter for directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the of the directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/size. This parameter is global and cannot be set on a per-viewport basis. + + + + + Creates a reflection probe and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all reflection_probe_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this reflection probe to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets how often the reflection probe updates. Can either be once or every frame. See for options. + + + + + Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to . + + + + + Sets the distance in meters over which a probe blends into the scene. + + + + + Sets the reflection probe's ambient light mode. Equivalent to . + + + + + Sets the reflection probe's custom ambient light color. Equivalent to . + + + + + Sets the reflection probe's custom ambient light energy. Equivalent to . + + + + + Sets the max distance away from the probe an object can be before it is culled. Equivalent to . + + + + + Sets the size of the area that the reflection probe will capture. Equivalent to . + + + + + Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to . + + + + + If , reflections will ignore sky contribution. Equivalent to . + + + + + If , uses box projection. This can make reflections look more correct in certain situations. Equivalent to . + + + + + If , computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to . + + + + + Sets the render cull mask for this reflection probe. Only instances with a matching layer will be reflected by this probe. Equivalent to . + + + + + Sets the render reflection mask for this reflection probe. Only instances with a matching layer will have reflections applied from this probe. Equivalent to . + + + + + Sets the resolution to use when rendering the specified reflection probe. The is specified for each cubemap face: for instance, specifying 512 will allocate 6 faces of 512×512 each (plus mipmaps for roughness levels). + + + + + Sets the mesh level of detail to use in the reflection probe rendering. Higher values will use less detailed versions of meshes that have LOD variations generated, which can improve performance. Equivalent to . + + + + + Creates a decal and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all decal_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this decal to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets the of the decal specified by the RID. Equivalent to . + + + + + Sets the in the given texture slot for the specified decal. Equivalent to . + + + + + Sets the emission in the decal specified by the RID. Equivalent to . + + + + + Sets the in the decal specified by the RID. Equivalent to . + + + + + Sets the color multiplier in the decal specified by the RID to . Equivalent to . + + + + + Sets the cull in the decal specified by the RID. Equivalent to . + + + + + Sets the distance fade parameters in the decal specified by the RID. Equivalent to , and . + + + + + Sets the upper fade () and lower fade () in the decal specified by the RID. Equivalent to and . + + + + + Sets the normal in the decal specified by the RID. Equivalent to . + + + + + Sets the texture mode to use when rendering decals. This parameter is global and cannot be set on a per-decal basis. + + + + + If is , renders and SDFGI () buffers at halved resolution on each axis (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. rendering is not affected by this setting. Equivalent to ProjectSettings.rendering/global_illumination/gi/use_half_resolution. + + + + + Creates a new voxel-based global illumination object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all voxel_gi_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Used to inform the renderer what exposure normalization value was used while baking the voxel gi. This value will be used and modulated at run time to ensure that the voxel gi maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the ProjectSettings.rendering/global_illumination/voxel_gi/quality value to use when rendering. This parameter is global and cannot be set on a per-VoxelGI basis. + + + + + Creates a new lightmap global illumination instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all lightmap_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Set the textures on the given GI instance to the texture array pointed to by the RID. If the lightmap texture was baked with set to , then must also be . + + + + + Used to inform the renderer what exposure normalization value was used while baking the lightmap. This value will be used and modulated at run time to ensure that the lightmap maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Creates a GPU-based particle system and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all particles_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach these particles to an instance using using the returned RID. + Note: The equivalent nodes are and . + Note: All particles_* methods only apply to GPU-based particles, not CPU-based particles. and do not have equivalent RenderingServer functions available, as these use and under the hood (see multimesh_* methods). + + + + + Sets whether the GPU particles specified by the RID should be rendered in 2D or 3D according to . + + + + + If , particles will emit over time. Setting to does not reset the particles, but only stops their emission. Equivalent to . + + + + + Returns if particles are currently set to emitting. + + + + + Sets the number of particles to be drawn and allocates the memory for them. Equivalent to . + + + + + Sets the amount ratio for particles to be emitted. Equivalent to . + + + + + Sets the lifetime of each particle in the system. Equivalent to . + + + + + If , particles will emit once and then stop. Equivalent to . + + + + + Sets the preprocess time for the particles' animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to . + + + + + Sets the explosiveness ratio. Equivalent to . + + + + + Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to . + + + + + Sets the value that informs a to rush all particles towards the end of their lifetime. + + + + + Sets the velocity of a particle node, that will be used by . + + + + + Sets a custom axis-aligned bounding box for the particle system. Equivalent to . + + + + + Sets the speed scale of the particle system. Equivalent to . + + + + + If , particles use local coordinates. If they use global coordinates. Equivalent to . + + + + + Sets the material for processing the particles. + Note: This is not the material used to draw the materials. Equivalent to . + + + + + Sets the frame rate that the particle system rendering will be fixed to. Equivalent to . + + + + + If , uses fractional delta which smooths the movement of the particles. Equivalent to . + + + + + If is , enables trails for the with the specified in seconds. Equivalent to and . + + + + + Returns if particles are not emitting and particles are set to inactive. + + + + + Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to , , or . + + + + + Reset the particles on the next update. Equivalent to . + + + + + Manually emits particles from the instance. + + + + + Sets the draw order of the particles to one of the named enums from . See for options. Equivalent to . + + + + + Sets the number of draw passes to use. Equivalent to . + + + + + Sets the mesh to be used for the specified draw pass. Equivalent to , , , and . + + + + + Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to . + + + + + Sets the that will be used by the particles when they first emit. + + + + + Creates a new 3D GPU particle collision or attractor and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most particles_collision_* RenderingServer functions. + Note: The equivalent nodes are and . + + + + + Sets the collision or attractor shape for the 3D GPU particles collision or attractor specified by the RID. + + + + + Sets the cull for the 3D GPU particles collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles sphere collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles collision by the RID. Equivalent to , , , or depending on the type. + + + + + Sets the for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the directionality for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the attenuation for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the signed distance field for the 3D GPU particles collision specified by the RID. Equivalent to or depending on the type. + + + + + Requests an update for the 3D GPU particle collision heightfield. This may be automatically called by the 3D GPU particle collision heightfield depending on its . + + + + + Sets the heightmap for the 3D GPU particles heightfield collision specified by the RID. Equivalent to . + + + + + Creates a new fog volume and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all fog_volume_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the shape of the fog volume to either , , , or . + + + + + Sets the size of the fog volume when shape is , , or . + + + + + Sets the of the fog volume. Can be either a or a custom . + + + + + Creates a new 3D visibility notifier object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all visibility_notifier_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates an occluder instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is (not to be confused with the node). + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Creates a 3D camera and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away. + + + + + Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + + + + + Sets camera to use frustum projection. This mode allows adjusting the argument to create "tilted frustum" effects. + + + + + Sets of camera. + + + + + Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to . + + + + + Sets the environment used by this camera. Equivalent to . + + + + + Sets the camera_attributes created with to the given camera. + + + + + Sets the compositor used by this camera. Equivalent to . + + + + + If , preserves the horizontal aspect ratio which is equivalent to . If , preserves the vertical aspect ratio which is equivalent to . + + + + + Creates an empty viewport and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all viewport_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + If , the viewport uses augmented or virtual reality technologies. See . + + + + + Sets the viewport's width and height in pixels. + + + + + If , sets the viewport active, else sets it inactive. + + + + + Sets the viewport's parent to the viewport specified by the RID. + + + + + Copies the viewport to a region of the screen specified by . If is , then the viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to. + For example, you can set the root viewport to not render at all with the following code: + FIXME: The method seems to be non-existent. + + Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For further optimization, see . + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + If , render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the screen_texture. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size. + + + + + Sets the rendering mask associated with this . Only nodes with a matching rendering visibility layer will be rendered by this . + + + + + Sets the 3D resolution scaling mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible. + + + + + Scales the 3D render buffer based on the viewport size uses an image filter specified in to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also for multi-sample antialiasing, which is significantly cheaper but only smoothens the edges of polygons. + When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale. + + + + + Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference. + + + + + Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). To get sharper textures at a distance without introducing too much graininess, set this between -0.75 and 0.0. Enabling temporal antialiasing (ProjectSettings.rendering/anti_aliasing/quality/use_taa) can help reduce the graininess visible when using negative mipmap bias. + Note: When the 3D scaling mode is set to FSR 1.0, this value is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is -log2(1.0 / scale) + mipmap_bias. + + + + + Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled. + The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter. + Note: In 3D, for this setting to have an effect, set to or on materials. + Note: In 2D, for this setting to have an effect, set to or on the node displaying the texture (or in ). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference. + + + + + Sets when the viewport should be updated. See constants for options. + + + + + Returns the viewport's update mode. See constants for options. + Warning: Calling this from any thread other than the rendering thread will be detrimental to performance. + + + + + Sets the clear mode of a viewport. See for options. + + + + + Returns the render target for the viewport. + + + + + Returns the viewport's last rendered frame. + + + + + If , the viewport's 3D elements are not rendered. + + + + + If , the viewport's canvas (i.e. 2D and GUI elements) is not rendered. + + + + + Sets the viewport's environment mode which allows enabling or disabling rendering of 3D environment over 2D canvas. When disabled, 2D will not be affected by the environment. When enabled, 2D will be affected by the environment if the environment background mode is . The default behavior is to inherit the setting from the viewport's parent. If the topmost parent is also set to , then the behavior will be the same as if it was set to . + + + + + Sets a viewport's camera. + + + + + Sets a viewport's scenario. The scenario contains information about environment information, reflection atlas, etc. + + + + + Sets a viewport's canvas. + + + + + Detaches a viewport from a canvas. + + + + + If , canvas item transforms (i.e. origin position) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + If , canvas item vertices (i.e. polygon points) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel. + + + + + Sets the default texture filtering mode for the specified RID. See for options. + + + + + Sets the default texture repeat mode for the specified RID. See for options. + + + + + Sets the transformation of a viewport's canvas. + + + + + Sets the stacking order for a viewport's canvas. + is the actual canvas layer, while specifies the stacking order of the canvas among those in the same layer. + + + + + If , the viewport renders its background as transparent. + + + + + Sets the viewport's global transformation matrix. + + + + + Sets the viewport's 2D signed distance field ProjectSettings.rendering/2d/sdf/oversize and ProjectSettings.rendering/2d/sdf/scale. This is used when sampling the signed distance field in shaders as well as collision. This is not used by SDFGI in 3D rendering. + + + + + Sets the of the shadow atlas's images (used for omni and spot lights) on the viewport specified by the RID. The value is rounded up to the nearest power of 2. If is , use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices. + Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows). + + + + + Sets the number of subdivisions to use in the specified shadow atlas for omni and spot shadows. See also . + + + + + Sets the multisample antialiasing mode for 3D on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_3d or . + + + + + Sets the multisample antialiasing mode for 2D/Canvas on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_2d or . + + + + + If , 2D rendering will use a high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an RGBA16 framebuffer, while when using the Mobile renderer it will be an RGB10_A2 framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen (if the Viewport is attached to the screen). Practically speaking, this means that the end result of the Viewport will not be clamped into the 0-1 range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. This setting has the same effect as . + Note: This setting will have no effect when using the Compatibility renderer, which always renders in low dynamic range for performance reasons. + + + + + Sets the viewport's screen-space antialiasing mode. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa or . + + + + + If , use temporal antialiasing. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_taa or . + + + + + If , enables debanding on the specified viewport. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_debanding or . + + + + + If , enables occlusion culling on the specified viewport. Equivalent to ProjectSettings.rendering/occlusion_culling/use_occlusion_culling. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/bvh_build_quality to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. This is separated into render pass s, each of them having the same s you can query (different passes will return different values). See for a list of render pass types and for a list of information that can be queried. + See also , which returns global information across all viewports. + Note: Viewport rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print( + RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(), + RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE, + RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME) + ) + + + + + + Sets the debug draw mode of a viewport. See for options. + + + + + Sets the measurement for the given RID (obtained using ). Once enabled, and will return values greater than 0.0 when queried with the given . + + + + + Returns the CPU time taken to render the last frame in milliseconds. This only includes time spent in rendering-related operations; scripts' _process functions and other engine subsystems are not included in this readout. To get a complete readout of CPU time spent to render the scene, sum the render times of all viewports that are drawn every frame plus . Unlike , this method will accurately reflect CPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + + + + + Returns the GPU time taken to render the last frame in milliseconds. To get a complete readout of GPU time spent to render the scene, sum the render times of all viewports that are drawn every frame. Unlike , this method accurately reflects GPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + Note: When GPU utilization is low enough during a certain period of time, GPUs will decrease their power state (which in turn decreases core and memory clock speeds). This can cause the reported GPU time to increase if GPU utilization is kept low enough by a framerate cap (compared to what it would be at the GPU's highest power state). Keep this in mind when benchmarking using . This behavior can be overridden in the graphics driver settings at the cost of higher power usage. + + + + + Sets the Variable Rate Shading (VRS) mode for the viewport. If the GPU does not support VRS, this property is ignored. Equivalent to ProjectSettings.rendering/vrs/mode. + + + + + Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored. + If set to , the input texture is copied once and the mode is changed to . + + + + + The texture to use when the VRS mode is set to . Equivalent to ProjectSettings.rendering/vrs/texture. + + + + + Creates an empty sky and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all sky_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the of the sky specified by the RID (in pixels). Equivalent to . + + + + + Sets the process of the sky specified by the RID. Equivalent to . + + + + + Sets the material that the sky uses to render the background, ambient and reflection maps. + + + + + Generates and returns an containing the radiance map for the specified RID. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. values above 1.0 can be used to brighten the resulting image. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Creates a new rendering effect and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Enables/disables this rendering effect. + + + + + Sets the callback type () and callback method() for this rendering effect. + + + + + Sets the flag () for this rendering effect to or (). + + + + + Creates a new compositor and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the compositor effects for the specified compositor RID. should be an array containing RIDs created with . + + + + + Creates an environment and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all environment_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the environment's background mode. Equivalent to . + + + + + Sets the camera ID to be used as environment background. + + + + + Sets the to be used as the environment's background when using BGMode sky. Equivalent to . + + + + + Sets a custom field of view for the background . Equivalent to . + + + + + Sets the rotation of the background expressed as a . Equivalent to , where the rotation vector is used to construct the . + + + + + Color displayed for clear areas of the scene. Only effective if using the background mode. + + + + + Sets the intensity of the background color. + + + + + Sets the maximum layer to use if using Canvas background mode. + + + + + Sets the values to be used for ambient light rendering. See for more details. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Sets the variables to be used with the "tonemap" post-process effect. See for more details. + + + + + Sets the values to be used with the "adjustments" post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space reflections (SSR) post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Configures signed distance field global illumination for the specified environment RID. See sdfgi_* properties in for more information. + + + + + Sets the variables to be used with the volumetric fog post-process effect. See for more details. + + + + + If is , enables bicubic upscaling for glow which improves quality at the cost of performance. Equivalent to ProjectSettings.rendering/environment/glow/upscale_mode. + + + + + Sets the quality level of the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Sets the quality level of the screen-space indirect lighting (SSIL) post-process effect. See for more details. + + + + + Sets the number of rays to throw per frame when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count. + + + + + Sets the number of frames to use for converging signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge. + + + + + Sets the update speed for dynamic lights' indirect lighting when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Sets the resolution of the volumetric fog's froxel buffer. is modified by the screen's aspect ratio and then used to set the width and height of the buffer. While is directly used to set the depth of the buffer. + + + + + Enables filtering of the volumetric fog scattering buffer. This results in much smoother volumes with very few under-sampling artifacts. + + + + + Generates and returns an containing the radiance map for the specified RID's sky. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Sets the screen-space roughness limiter parameters, such as whether it should be enabled and its thresholds. Equivalent to ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabled, ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amount and ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit. + + + + + Sets ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality to use when rendering materials that have subsurface scattering enabled. + + + + + Sets the ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale and ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale to use when rendering materials that have subsurface scattering enabled. + + + + + Creates a camera attributes object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_attributes_ RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the quality level of the DOF blur effect to one of the options in . can be used to jitter samples taken during the blur pass to hide artifacts at the cost of looking more fuzzy. + + + + + Sets the shape of the DOF bokeh pattern. Different shapes may be used to achieve artistic effect, or to meet performance targets. For more detail on available options see . + + + + + Sets the parameters to use with the DOF blur effect. These parameters take on the same meaning as their counterparts in . + + + + + Sets the exposure values that will be used by the renderers. The normalization amount is used to bake a given Exposure Value (EV) into rendering calculations to reduce the dynamic range of the scene. + The normalization factor can be calculated from exposure value (EV100) as follows: + + func get_exposure_normalization(ev100: float): + return 1.0 / (pow(2.0, ev100) * 1.2) + + The exposure value can be calculated from aperture (in f-stops), shutter speed (in seconds), and sensitivity (in ISO) as follows: + + func get_exposure(aperture: float, shutter_speed: float, sensitivity: float): + return log((aperture * aperture) / shutter_speed * (100.0 / sensitivity)) / log(2) + + + + + + Sets the parameters to use with the auto-exposure effect. These parameters take on the same meaning as their counterparts in and . + + + + + Creates a scenario and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all scenario_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + The scenario is the 3D world that all the visual instances exist in. + + + + + Sets the environment that will be used with this scenario. See also . + + + + + Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment. + + + + + Sets the camera attributes () that will be used with this scenario. See also . + + + + + Sets the compositor () that will be used with this scenario. See also . + + + + + Creates a visual instance, adds it to the RenderingServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. This is a shorthand for using and setting the base and scenario manually. + + + + + Creates a visual instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + An instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, reflection probes and decals need to be associated with an instance to be visible in the scenario using . + Note: The equivalent node is . + + + + + Sets the base of the instance. A base can be any of the 3D objects that are created in the RenderingServer that can be displayed. For example, any of the light types, mesh, multimesh, particle system, reflection probe, decal, lightmap, voxel GI and visibility notifiers are all types that can be set as the base of an instance in order to be displayed in the scenario. + + + + + Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in. + + + + + Sets the render layers that this instance will be drawn to. Equivalent to . + + + + + Sets the sorting offset and switches between using the bounding box or instance origin for depth sorting. + + + + + Sets the world space transform of the instance. Equivalent to . + + + + + Turns on and off physics interpolation for the instance. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with , , and . + + + + + Sets the weight for a given blend shape associated with this instance. + + + + + Sets the override material of a specific surface. Equivalent to . + + + + + Sets whether an instance is drawn or not. Equivalent to . + + + + + Sets the transparency for the given geometry instance. Equivalent to . + A transparency of 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting to a value greater than 0.0 (exclusive) will not disable shadow rendering. + In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in. + Note: is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are. + + + + + Sets a custom AABB to use when culling objects from the view frustum. Equivalent to setting . + + + + + Attaches a skeleton to an instance. Removes the previous skeleton from the instance. + + + + + Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you to avoid culling objects that fall outside the view frustum. Equivalent to . + + + + + Sets the visibility parent for the given instance. Equivalent to . + + + + + If , ignores both frustum and occlusion culling on the specified 3D geometry instance. This is not the same as , which only ignores occlusion culling and leaves frustum culling intact. + + + + + Sets the flag for a given . See for more details. + + + + + Sets the shadow casting setting to one of . Equivalent to . + + + + + Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to . + + + + + Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to . + + + + + Sets the visibility range values for the given geometry instance. Equivalent to and related properties. + + + + + Sets the lightmap GI instance to use for the specified 3D geometry instance. The lightmap UV scale for the specified instance (equivalent to ) and lightmap atlas slice must also be specified. + + + + + Sets the level of detail bias to use when rendering the specified 3D geometry instance. Higher values result in higher detail from further away. Equivalent to . + + + + + Sets the per-instance shader uniform on the specified 3D geometry instance. Equivalent to . + + + + + Returns the value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + Note: Per-instance shader parameter names are case-sensitive. + + + + + Returns the default value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + + + + + Returns a dictionary of per-instance shader uniform names of the per-instance shader uniform from the specified 3D geometry instance. The returned dictionary is in PropertyInfo format, with the keys name, class_name, type, hint, hint_string and usage. Equivalent to . + + + + + Returns an array of object IDs intersecting with the provided AABB. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided 3D ray. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided convex shape. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Bakes the material data of the Mesh passed in the parameter with optional to a set of s of size . Returns an array of s containing material properties as specified in . + + + + + Creates a canvas and returns the assigned . It can be accessed with the RID that is returned. This RID will be used in all canvas_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Canvas has no or equivalent. + + + + + A copy of the canvas item will be drawn with a local offset of the . + Note: This is equivalent to calling like canvas_set_item_repeat(item, mirroring, 1), with an additional check ensuring is a parent of . + + + + + A copy of the canvas item will be drawn with a local offset of the by the number of times of the . As the increases, the copies will spread away from the origin texture. + + + + + Modulates all colors in the given canvas. + + + + + Creates a canvas texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_texture_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. See also . + Note: The equivalent resource is and is only meant to be used in 2D rendering, not 3D. + + + + + Sets the 's for the canvas texture specified by the RID. Equivalent to , and . + + + + + Sets the and to use for the canvas texture specified by the RID. Equivalent to and . + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Creates a new CanvasItem instance and returns its . It can be accessed with the RID that is returned. This RID will be used in all canvas_item_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets a parent to the . The item will inherit transform, modulation and visibility from its parent, like nodes in the scene tree. + + + + + Sets the default texture filter mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the default texture repeat mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the visibility of the . + + + + + Sets the light for the canvas item specified by the RID. Equivalent to . + + + + + Sets the rendering visibility layer associated with this . Only nodes with a matching rendering mask will render this . + + + + + Sets the of the canvas item specified by the RID. This affects where and how the item will be drawn. Child canvas items' transforms are multiplied by their parent's transform. Equivalent to . + + + + + If is , makes the canvas item specified by the RID not draw anything outside of its rect's coordinates. This clipping is fast, but works only with axis-aligned rectangles. This means that rotation is ignored by the clipping rectangle. For more advanced clipping shapes, use instead. + Note: The equivalent node functionality is found in , (always enabled) and more. + + + + + If is , enables multichannel signed distance field rendering mode for the canvas item specified by the RID. This is meant to be used for font rendering, or with specially generated images using msdfgen. + + + + + If is , sets the custom visibility rectangle (used for culling) to for the canvas item specified by . Setting a custom visibility rect can reduce CPU load when drawing lots of 2D instances. If is , automatically computes a visibility rectangle based on the canvas item's draw commands. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Multiplies the color of the canvas item specified by the RID, while affecting its children. See also . Equivalent to . + + + + + Multiplies the color of the canvas item specified by the RID, without affecting its children. See also . Equivalent to . + + + + + If is , draws the canvas item specified by the RID behind its parent. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas item. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas item. + This allows transforming a canvas item without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Draws a line on the pointed to by the . See also . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + + + + Draws the specified region of a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a nine-patch rectangle on the pointed to by the . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<int>(). + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + + + + Draws a mesh created with with given , color, and . This is used internally by . + + If the parameter is null, then the default value is Transform2D.Identity. + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D on the pointed to by the . See also . + + + + + Draws particles on the pointed to by the . + + + + + Sets a that will be used to transform subsequent canvas item commands. + + + + + If is , ignore clipping on items drawn with this canvas item until this is called again with set to . + + + + + Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly. + + + + + If is , child nodes with the lowest Y position are drawn before those with a higher Y position. Y-sorting only affects children that inherit from the canvas item specified by the RID, not the canvas item itself. Equivalent to . + + + + + Sets the 's Z index, i.e. its draw order (lower indexes are drawn first). + + + + + If this is enabled, the Z index of the parent will be added to the children's Z index. + + + + + Sets the to copy a rect to the backbuffer. + + + + + Attaches a skeleton to the . Removes the previous skeleton. + + + + + Clears the and removes all commands in it. + + + + + Sets the index for the . + + + + + Sets a new to the canvas item specified by the RID. Equivalent to . + + + + + Sets if the uses its parent's material. + + + + + Sets the given as visibility notifier. defines the area of detecting visibility. is called when the enters the screen, is called when the exits the screen. If is , the item will no longer function as notifier. + This method can be used to manually mimic . + + + + + Sets the canvas group mode used during 2D rendering for the canvas item specified by the RID. For faster but more limited clipping, use instead. + Note: The equivalent node functionality is found in and . + + + + + Returns the bounding rectangle for a canvas item in local space, as calculated by the renderer. This bound is used internally for culling. + Warning: This function is intended for debugging in the editor, and will pass through and return a zero in exported projects. + + + + + Creates a canvas light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches the canvas light to the canvas. Removes it from its previous canvas. + + + + + Enables or disables a canvas light. + + + + + Sets the scale factor of a 's texture. Equivalent to . + + + + + Sets the canvas light's . + + + + + Sets the texture to be used by a . Equivalent to . + + + + + Sets the offset of a 's texture. Equivalent to . + + + + + Sets the color for a light. + + + + + Sets a canvas light's height. + + + + + Sets a canvas light's energy. + + + + + Sets the Z range of objects that will be affected by this light. Equivalent to and . + + + + + The layer range that gets rendered with this light. + + + + + The light mask. See for more information on light masks. + + + + + The binary mask used to determine which layers this canvas light's shadows affects. See for more information on light masks. + + + + + The mode of the light, see constants. + + + + + Enables or disables the canvas light's shadow. + + + + + Sets the canvas light's shadow's filter, see constants. + + + + + Sets the color of the canvas light's shadow. + + + + + Smoothens the shadow. The lower, the smoother. + + + + + Sets the blend mode for the given canvas light. See for options. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas light. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas light. + This allows transforming a light without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a light occluder and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches a light occluder to the canvas. Removes it from its previous canvas. + + + + + Enables or disables light occluder. + + + + + Sets a light occluder's polygon. + + + + + Sets a light occluder's . + + + + + The light mask. See for more information on light masks. + + + + + If is , turns on physics interpolation for the light occluder. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an occluder to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a light occluder. + This allows transforming an occluder without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a new light occluder polygon and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_occluder_polygon_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shape of the occluder polygon. + + + + + Sets the shape of the occluder polygon. + + + + + Sets an occluder polygons cull mode. See constants. + + + + + Sets the ProjectSettings.rendering/2d/shadow_atlas/size to use for shadow rendering (in pixels). The value is rounded up to the nearest power of 2. + + + + + Creates a new global shader uniform. + Note: Global shader parameter names are case-sensitive. + + + + + Removes the global shader uniform specified by . + + + + + Returns the list of global shader uniform names. + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Sets the global shader uniform to . + + + + + Overrides the global shader uniform with . Equivalent to the node. + + + + + Returns the value of the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Returns the type associated to the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Tries to free an object in the RenderingServer. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingServer directly. + + + + + Schedules a callback to the given callable after a frame has been drawn. + + + + + Returns if changes have been made to the RenderingServer's data. is usually called if this happens. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. See for a list of values that can be queried. See also , which returns information specific to a viewport. + Note: Only 3D rendering is currently taken into account by some of these values, such as the number of draw calls. + Note: Rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME)) + + + + + + Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2"). + Note: When running a headless or server binary, this function returns an empty string. + Note: On the web platform, some browsers such as Firefox may report a different, fixed GPU name such as "GeForce GTX 980" (regardless of the user's actual GPU model). This is done to make fingerprinting more difficult. + + + + + Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the type of the video adapter. Since dedicated graphics cards from a given generation will usually be significantly faster than integrated graphics made in the same generation, the device type can be used as a basis for automatic graphics settings adjustment. However, this is not always true, so make sure to provide users with a way to manually override graphics settings. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns the version of the graphics video adapter currently in use (e.g. "1.2.189" for Vulkan, "3.3.0 NVIDIA 510.60.02" for OpenGL). This version may be different from the actual latest version supported by the hardware, as Godot may not always request the latest version. See also . + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the name of the current rendering driver. This can be vulkan, d3d12, metal, opengl3, opengl3_es, or opengl3_angle. See also . + The rendering driver is determined by ProjectSettings.rendering/rendering_device/driver, the --rendering-driver command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns the name of the current rendering method. This can be forward_plus, mobile, or gl_compatibility. See also . + The rendering method is determined by ProjectSettings.rendering/renderer/rendering_method, the --rendering-method command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns a mesh of a sphere with the given number of horizontal subdivisions, vertical subdivisions and radius. See also . + + + + + Returns the RID of the test cube. This mesh will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + + + + + Returns the RID of a 256×256 texture with a testing pattern on it (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the test texture and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns the ID of a 4×4 white texture (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the white texture and apply it to a node: + + var texture_rid = RenderingServer.get_white_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Sets a boot image. The color defines the background color. If is , the image will be scaled to fit the screen size. If is , the image will be scaled with linear interpolation. If is , the image will be scaled with nearest-neighbor interpolation. + + + + + Returns the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Sets the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Returns if the OS supports a certain . Features might be s3tc, etc, and etc2. + + + + + If is , generates debug wireframes for all meshes that are loaded when using the Compatibility renderer. By default, the engine does not generate debug wireframes at runtime, since they slow down loading of assets and take up VRAM. + Note: You must call this method before loading any meshes when using the Compatibility renderer, otherwise wireframes will not be used. + + + + + Returns the time taken to setup rendering on the CPU in milliseconds. This value is shared across all viewports and does not require to be enabled on a viewport to be queried. See also . + + + + + Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost. + + + + + Forces redrawing of all viewports at once. Must be called from the main thread. + + + + + Returns the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Creates a RenderingDevice that can be used to do draw and compute operations on a separate thread. Cannot draw to the screen nor share data with the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns if our code is currently executing on the rendering thread. + + + + + As the RenderingServer actual logic may run on an separate thread, accessing its internals from the main (or any other) thread will result in errors. To make it easier to run code that can safely access the rendering internals (such as and similar RD classes), push a callable via this function so it will be executed on the render thread. + + + + + This method does nothing and always returns . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Emitted at the beginning of the frame, before the RenderingServer updates all the Viewports. + + + + + Emitted at the end of the frame, after the RenderingServer has finished updating all the Viewports. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_loop_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'texture_2d_create' method. + + + + + Cached name for the 'texture_2d_layered_create' method. + + + + + Cached name for the 'texture_3d_create' method. + + + + + Cached name for the 'texture_proxy_create' method. + + + + + Cached name for the 'texture_create_from_native_handle' method. + + + + + Cached name for the 'texture_2d_update' method. + + + + + Cached name for the 'texture_3d_update' method. + + + + + Cached name for the 'texture_proxy_update' method. + + + + + Cached name for the 'texture_2d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_layered_placeholder_create' method. + + + + + Cached name for the 'texture_3d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_get' method. + + + + + Cached name for the 'texture_2d_layer_get' method. + + + + + Cached name for the 'texture_3d_get' method. + + + + + Cached name for the 'texture_replace' method. + + + + + Cached name for the 'texture_set_size_override' method. + + + + + Cached name for the 'texture_set_path' method. + + + + + Cached name for the 'texture_get_path' method. + + + + + Cached name for the 'texture_get_format' method. + + + + + Cached name for the 'texture_set_force_redraw_if_visible' method. + + + + + Cached name for the 'texture_rd_create' method. + + + + + Cached name for the 'texture_get_rd_texture' method. + + + + + Cached name for the 'texture_get_native_handle' method. + + + + + Cached name for the 'shader_create' method. + + + + + Cached name for the 'shader_set_code' method. + + + + + Cached name for the 'shader_set_path_hint' method. + + + + + Cached name for the 'shader_get_code' method. + + + + + Cached name for the 'get_shader_parameter_list' method. + + + + + Cached name for the 'shader_get_parameter_default' method. + + + + + Cached name for the 'shader_set_default_texture_parameter' method. + + + + + Cached name for the 'shader_get_default_texture_parameter' method. + + + + + Cached name for the 'material_create' method. + + + + + Cached name for the 'material_set_shader' method. + + + + + Cached name for the 'material_set_param' method. + + + + + Cached name for the 'material_get_param' method. + + + + + Cached name for the 'material_set_render_priority' method. + + + + + Cached name for the 'material_set_next_pass' method. + + + + + Cached name for the 'mesh_create_from_surfaces' method. + + + + + Cached name for the 'mesh_create' method. + + + + + Cached name for the 'mesh_surface_get_format_offset' method. + + + + + Cached name for the 'mesh_surface_get_format_vertex_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_normal_tangent_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_attribute_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_skin_stride' method. + + + + + Cached name for the 'mesh_add_surface' method. + + + + + Cached name for the 'mesh_add_surface_from_arrays' method. + + + + + Cached name for the 'mesh_get_blend_shape_count' method. + + + + + Cached name for the 'mesh_set_blend_shape_mode' method. + + + + + Cached name for the 'mesh_get_blend_shape_mode' method. + + + + + Cached name for the 'mesh_surface_set_material' method. + + + + + Cached name for the 'mesh_surface_get_material' method. + + + + + Cached name for the 'mesh_get_surface' method. + + + + + Cached name for the 'mesh_surface_get_arrays' method. + + + + + Cached name for the 'mesh_surface_get_blend_shape_arrays' method. + + + + + Cached name for the 'mesh_get_surface_count' method. + + + + + Cached name for the 'mesh_set_custom_aabb' method. + + + + + Cached name for the 'mesh_get_custom_aabb' method. + + + + + Cached name for the 'mesh_clear' method. + + + + + Cached name for the 'mesh_surface_update_vertex_region' method. + + + + + Cached name for the 'mesh_surface_update_attribute_region' method. + + + + + Cached name for the 'mesh_surface_update_skin_region' method. + + + + + Cached name for the 'mesh_set_shadow_mesh' method. + + + + + Cached name for the 'multimesh_create' method. + + + + + Cached name for the 'multimesh_allocate_data' method. + + + + + Cached name for the 'multimesh_get_instance_count' method. + + + + + Cached name for the 'multimesh_set_mesh' method. + + + + + Cached name for the 'multimesh_instance_set_transform' method. + + + + + Cached name for the 'multimesh_instance_set_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_set_color' method. + + + + + Cached name for the 'multimesh_instance_set_custom_data' method. + + + + + Cached name for the 'multimesh_get_mesh' method. + + + + + Cached name for the 'multimesh_get_aabb' method. + + + + + Cached name for the 'multimesh_set_custom_aabb' method. + + + + + Cached name for the 'multimesh_get_custom_aabb' method. + + + + + Cached name for the 'multimesh_instance_get_transform' method. + + + + + Cached name for the 'multimesh_instance_get_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_get_color' method. + + + + + Cached name for the 'multimesh_instance_get_custom_data' method. + + + + + Cached name for the 'multimesh_set_visible_instances' method. + + + + + Cached name for the 'multimesh_get_visible_instances' method. + + + + + Cached name for the 'multimesh_set_buffer' method. + + + + + Cached name for the 'multimesh_get_buffer_rd_rid' method. + + + + + Cached name for the 'multimesh_get_buffer' method. + + + + + Cached name for the 'multimesh_set_buffer_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolation_quality' method. + + + + + Cached name for the 'multimesh_instance_reset_physics_interpolation' method. + + + + + Cached name for the 'skeleton_create' method. + + + + + Cached name for the 'skeleton_allocate_data' method. + + + + + Cached name for the 'skeleton_get_bone_count' method. + + + + + Cached name for the 'skeleton_bone_set_transform' method. + + + + + Cached name for the 'skeleton_bone_get_transform' method. + + + + + Cached name for the 'skeleton_bone_set_transform_2d' method. + + + + + Cached name for the 'skeleton_bone_get_transform_2d' method. + + + + + Cached name for the 'skeleton_set_base_transform_2d' method. + + + + + Cached name for the 'directional_light_create' method. + + + + + Cached name for the 'omni_light_create' method. + + + + + Cached name for the 'spot_light_create' method. + + + + + Cached name for the 'light_set_color' method. + + + + + Cached name for the 'light_set_param' method. + + + + + Cached name for the 'light_set_shadow' method. + + + + + Cached name for the 'light_set_projector' method. + + + + + Cached name for the 'light_set_negative' method. + + + + + Cached name for the 'light_set_cull_mask' method. + + + + + Cached name for the 'light_set_distance_fade' method. + + + + + Cached name for the 'light_set_reverse_cull_face_mode' method. + + + + + Cached name for the 'light_set_shadow_caster_mask' method. + + + + + Cached name for the 'light_set_bake_mode' method. + + + + + Cached name for the 'light_set_max_sdfgi_cascade' method. + + + + + Cached name for the 'light_omni_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_blend_splits' method. + + + + + Cached name for the 'light_directional_set_sky_mode' method. + + + + + Cached name for the 'light_projectors_set_filter' method. + + + + + Cached name for the 'lightmaps_set_bicubic_filter' method. + + + + + Cached name for the 'positional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_shadow_atlas_set_size' method. + + + + + Cached name for the 'reflection_probe_create' method. + + + + + Cached name for the 'reflection_probe_set_update_mode' method. + + + + + Cached name for the 'reflection_probe_set_intensity' method. + + + + + Cached name for the 'reflection_probe_set_blend_distance' method. + + + + + Cached name for the 'reflection_probe_set_ambient_mode' method. + + + + + Cached name for the 'reflection_probe_set_ambient_color' method. + + + + + Cached name for the 'reflection_probe_set_ambient_energy' method. + + + + + Cached name for the 'reflection_probe_set_max_distance' method. + + + + + Cached name for the 'reflection_probe_set_size' method. + + + + + Cached name for the 'reflection_probe_set_origin_offset' method. + + + + + Cached name for the 'reflection_probe_set_as_interior' method. + + + + + Cached name for the 'reflection_probe_set_enable_box_projection' method. + + + + + Cached name for the 'reflection_probe_set_enable_shadows' method. + + + + + Cached name for the 'reflection_probe_set_cull_mask' method. + + + + + Cached name for the 'reflection_probe_set_reflection_mask' method. + + + + + Cached name for the 'reflection_probe_set_resolution' method. + + + + + Cached name for the 'reflection_probe_set_mesh_lod_threshold' method. + + + + + Cached name for the 'decal_create' method. + + + + + Cached name for the 'decal_set_size' method. + + + + + Cached name for the 'decal_set_texture' method. + + + + + Cached name for the 'decal_set_emission_energy' method. + + + + + Cached name for the 'decal_set_albedo_mix' method. + + + + + Cached name for the 'decal_set_modulate' method. + + + + + Cached name for the 'decal_set_cull_mask' method. + + + + + Cached name for the 'decal_set_distance_fade' method. + + + + + Cached name for the 'decal_set_fade' method. + + + + + Cached name for the 'decal_set_normal_fade' method. + + + + + Cached name for the 'decals_set_filter' method. + + + + + Cached name for the 'gi_set_use_half_resolution' method. + + + + + Cached name for the 'voxel_gi_create' method. + + + + + Cached name for the 'voxel_gi_allocate_data' method. + + + + + Cached name for the 'voxel_gi_get_octree_size' method. + + + + + Cached name for the 'voxel_gi_get_octree_cells' method. + + + + + Cached name for the 'voxel_gi_get_data_cells' method. + + + + + Cached name for the 'voxel_gi_get_distance_field' method. + + + + + Cached name for the 'voxel_gi_get_level_counts' method. + + + + + Cached name for the 'voxel_gi_get_to_cell_xform' method. + + + + + Cached name for the 'voxel_gi_set_dynamic_range' method. + + + + + Cached name for the 'voxel_gi_set_propagation' method. + + + + + Cached name for the 'voxel_gi_set_energy' method. + + + + + Cached name for the 'voxel_gi_set_baked_exposure_normalization' method. + + + + + Cached name for the 'voxel_gi_set_bias' method. + + + + + Cached name for the 'voxel_gi_set_normal_bias' method. + + + + + Cached name for the 'voxel_gi_set_interior' method. + + + + + Cached name for the 'voxel_gi_set_use_two_bounces' method. + + + + + Cached name for the 'voxel_gi_set_quality' method. + + + + + Cached name for the 'lightmap_create' method. + + + + + Cached name for the 'lightmap_set_textures' method. + + + + + Cached name for the 'lightmap_set_probe_bounds' method. + + + + + Cached name for the 'lightmap_set_probe_interior' method. + + + + + Cached name for the 'lightmap_set_probe_capture_data' method. + + + + + Cached name for the 'lightmap_get_probe_capture_points' method. + + + + + Cached name for the 'lightmap_get_probe_capture_sh' method. + + + + + Cached name for the 'lightmap_get_probe_capture_tetrahedra' method. + + + + + Cached name for the 'lightmap_get_probe_capture_bsp_tree' method. + + + + + Cached name for the 'lightmap_set_baked_exposure_normalization' method. + + + + + Cached name for the 'lightmap_set_probe_capture_update_speed' method. + + + + + Cached name for the 'particles_create' method. + + + + + Cached name for the 'particles_set_mode' method. + + + + + Cached name for the 'particles_set_emitting' method. + + + + + Cached name for the 'particles_get_emitting' method. + + + + + Cached name for the 'particles_set_amount' method. + + + + + Cached name for the 'particles_set_amount_ratio' method. + + + + + Cached name for the 'particles_set_lifetime' method. + + + + + Cached name for the 'particles_set_one_shot' method. + + + + + Cached name for the 'particles_set_pre_process_time' method. + + + + + Cached name for the 'particles_set_explosiveness_ratio' method. + + + + + Cached name for the 'particles_set_randomness_ratio' method. + + + + + Cached name for the 'particles_set_interp_to_end' method. + + + + + Cached name for the 'particles_set_emitter_velocity' method. + + + + + Cached name for the 'particles_set_custom_aabb' method. + + + + + Cached name for the 'particles_set_speed_scale' method. + + + + + Cached name for the 'particles_set_use_local_coordinates' method. + + + + + Cached name for the 'particles_set_process_material' method. + + + + + Cached name for the 'particles_set_fixed_fps' method. + + + + + Cached name for the 'particles_set_interpolate' method. + + + + + Cached name for the 'particles_set_fractional_delta' method. + + + + + Cached name for the 'particles_set_collision_base_size' method. + + + + + Cached name for the 'particles_set_transform_align' method. + + + + + Cached name for the 'particles_set_trails' method. + + + + + Cached name for the 'particles_set_trail_bind_poses' method. + + + + + Cached name for the 'particles_is_inactive' method. + + + + + Cached name for the 'particles_request_process' method. + + + + + Cached name for the 'particles_restart' method. + + + + + Cached name for the 'particles_set_subemitter' method. + + + + + Cached name for the 'particles_emit' method. + + + + + Cached name for the 'particles_set_draw_order' method. + + + + + Cached name for the 'particles_set_draw_passes' method. + + + + + Cached name for the 'particles_set_draw_pass_mesh' method. + + + + + Cached name for the 'particles_get_current_aabb' method. + + + + + Cached name for the 'particles_set_emission_transform' method. + + + + + Cached name for the 'particles_collision_create' method. + + + + + Cached name for the 'particles_collision_set_collision_type' method. + + + + + Cached name for the 'particles_collision_set_cull_mask' method. + + + + + Cached name for the 'particles_collision_set_sphere_radius' method. + + + + + Cached name for the 'particles_collision_set_box_extents' method. + + + + + Cached name for the 'particles_collision_set_attractor_strength' method. + + + + + Cached name for the 'particles_collision_set_attractor_directionality' method. + + + + + Cached name for the 'particles_collision_set_attractor_attenuation' method. + + + + + Cached name for the 'particles_collision_set_field_texture' method. + + + + + Cached name for the 'particles_collision_height_field_update' method. + + + + + Cached name for the 'particles_collision_set_height_field_resolution' method. + + + + + Cached name for the 'fog_volume_create' method. + + + + + Cached name for the 'fog_volume_set_shape' method. + + + + + Cached name for the 'fog_volume_set_size' method. + + + + + Cached name for the 'fog_volume_set_material' method. + + + + + Cached name for the 'visibility_notifier_create' method. + + + + + Cached name for the 'visibility_notifier_set_aabb' method. + + + + + Cached name for the 'visibility_notifier_set_callbacks' method. + + + + + Cached name for the 'occluder_create' method. + + + + + Cached name for the 'occluder_set_mesh' method. + + + + + Cached name for the 'camera_create' method. + + + + + Cached name for the 'camera_set_perspective' method. + + + + + Cached name for the 'camera_set_orthogonal' method. + + + + + Cached name for the 'camera_set_frustum' method. + + + + + Cached name for the 'camera_set_transform' method. + + + + + Cached name for the 'camera_set_cull_mask' method. + + + + + Cached name for the 'camera_set_environment' method. + + + + + Cached name for the 'camera_set_camera_attributes' method. + + + + + Cached name for the 'camera_set_compositor' method. + + + + + Cached name for the 'camera_set_use_vertical_aspect' method. + + + + + Cached name for the 'viewport_create' method. + + + + + Cached name for the 'viewport_set_use_xr' method. + + + + + Cached name for the 'viewport_set_size' method. + + + + + Cached name for the 'viewport_set_active' method. + + + + + Cached name for the 'viewport_set_parent_viewport' method. + + + + + Cached name for the 'viewport_attach_to_screen' method. + + + + + Cached name for the 'viewport_set_render_direct_to_screen' method. + + + + + Cached name for the 'viewport_set_canvas_cull_mask' method. + + + + + Cached name for the 'viewport_set_scaling_3d_mode' method. + + + + + Cached name for the 'viewport_set_scaling_3d_scale' method. + + + + + Cached name for the 'viewport_set_fsr_sharpness' method. + + + + + Cached name for the 'viewport_set_texture_mipmap_bias' method. + + + + + Cached name for the 'viewport_set_anisotropic_filtering_level' method. + + + + + Cached name for the 'viewport_set_update_mode' method. + + + + + Cached name for the 'viewport_get_update_mode' method. + + + + + Cached name for the 'viewport_set_clear_mode' method. + + + + + Cached name for the 'viewport_get_render_target' method. + + + + + Cached name for the 'viewport_get_texture' method. + + + + + Cached name for the 'viewport_set_disable_3d' method. + + + + + Cached name for the 'viewport_set_disable_2d' method. + + + + + Cached name for the 'viewport_set_environment_mode' method. + + + + + Cached name for the 'viewport_attach_camera' method. + + + + + Cached name for the 'viewport_set_scenario' method. + + + + + Cached name for the 'viewport_attach_canvas' method. + + + + + Cached name for the 'viewport_remove_canvas' method. + + + + + Cached name for the 'viewport_set_snap_2d_transforms_to_pixel' method. + + + + + Cached name for the 'viewport_set_snap_2d_vertices_to_pixel' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'viewport_set_canvas_transform' method. + + + + + Cached name for the 'viewport_set_canvas_stacking' method. + + + + + Cached name for the 'viewport_set_transparent_background' method. + + + + + Cached name for the 'viewport_set_global_canvas_transform' method. + + + + + Cached name for the 'viewport_set_sdf_oversize_and_scale' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_size' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_quadrant_subdivision' method. + + + + + Cached name for the 'viewport_set_msaa_3d' method. + + + + + Cached name for the 'viewport_set_msaa_2d' method. + + + + + Cached name for the 'viewport_set_use_hdr_2d' method. + + + + + Cached name for the 'viewport_set_screen_space_aa' method. + + + + + Cached name for the 'viewport_set_use_taa' method. + + + + + Cached name for the 'viewport_set_use_debanding' method. + + + + + Cached name for the 'viewport_set_use_occlusion_culling' method. + + + + + Cached name for the 'viewport_set_occlusion_rays_per_thread' method. + + + + + Cached name for the 'viewport_set_occlusion_culling_build_quality' method. + + + + + Cached name for the 'viewport_get_render_info' method. + + + + + Cached name for the 'viewport_set_debug_draw' method. + + + + + Cached name for the 'viewport_set_measure_render_time' method. + + + + + Cached name for the 'viewport_get_measured_render_time_cpu' method. + + + + + Cached name for the 'viewport_get_measured_render_time_gpu' method. + + + + + Cached name for the 'viewport_set_vrs_mode' method. + + + + + Cached name for the 'viewport_set_vrs_update_mode' method. + + + + + Cached name for the 'viewport_set_vrs_texture' method. + + + + + Cached name for the 'sky_create' method. + + + + + Cached name for the 'sky_set_radiance_size' method. + + + + + Cached name for the 'sky_set_mode' method. + + + + + Cached name for the 'sky_set_material' method. + + + + + Cached name for the 'sky_bake_panorama' method. + + + + + Cached name for the 'compositor_effect_create' method. + + + + + Cached name for the 'compositor_effect_set_enabled' method. + + + + + Cached name for the 'compositor_effect_set_callback' method. + + + + + Cached name for the 'compositor_effect_set_flag' method. + + + + + Cached name for the 'compositor_create' method. + + + + + Cached name for the 'compositor_set_compositor_effects' method. + + + + + Cached name for the 'environment_create' method. + + + + + Cached name for the 'environment_set_background' method. + + + + + Cached name for the 'environment_set_camera_id' method. + + + + + Cached name for the 'environment_set_sky' method. + + + + + Cached name for the 'environment_set_sky_custom_fov' method. + + + + + Cached name for the 'environment_set_sky_orientation' method. + + + + + Cached name for the 'environment_set_bg_color' method. + + + + + Cached name for the 'environment_set_bg_energy' method. + + + + + Cached name for the 'environment_set_canvas_max_layer' method. + + + + + Cached name for the 'environment_set_ambient_light' method. + + + + + Cached name for the 'environment_set_glow' method. + + + + + Cached name for the 'environment_set_tonemap' method. + + + + + Cached name for the 'environment_set_adjustment' method. + + + + + Cached name for the 'environment_set_ssr' method. + + + + + Cached name for the 'environment_set_ssao' method. + + + + + Cached name for the 'environment_set_fog' method. + + + + + Cached name for the 'environment_set_sdfgi' method. + + + + + Cached name for the 'environment_set_volumetric_fog' method. + + + + + Cached name for the 'environment_glow_set_use_bicubic_upscale' method. + + + + + Cached name for the 'environment_set_ssr_roughness_quality' method. + + + + + Cached name for the 'environment_set_ssao_quality' method. + + + + + Cached name for the 'environment_set_ssil_quality' method. + + + + + Cached name for the 'environment_set_sdfgi_ray_count' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_converge' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_update_light' method. + + + + + Cached name for the 'environment_set_volumetric_fog_volume_size' method. + + + + + Cached name for the 'environment_set_volumetric_fog_filter_active' method. + + + + + Cached name for the 'environment_bake_panorama' method. + + + + + Cached name for the 'screen_space_roughness_limiter_set_active' method. + + + + + Cached name for the 'sub_surface_scattering_set_quality' method. + + + + + Cached name for the 'sub_surface_scattering_set_scale' method. + + + + + Cached name for the 'camera_attributes_create' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_quality' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_bokeh_shape' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur' method. + + + + + Cached name for the 'camera_attributes_set_exposure' method. + + + + + Cached name for the 'camera_attributes_set_auto_exposure' method. + + + + + Cached name for the 'scenario_create' method. + + + + + Cached name for the 'scenario_set_environment' method. + + + + + Cached name for the 'scenario_set_fallback_environment' method. + + + + + Cached name for the 'scenario_set_camera_attributes' method. + + + + + Cached name for the 'scenario_set_compositor' method. + + + + + Cached name for the 'instance_create2' method. + + + + + Cached name for the 'instance_create' method. + + + + + Cached name for the 'instance_set_base' method. + + + + + Cached name for the 'instance_set_scenario' method. + + + + + Cached name for the 'instance_set_layer_mask' method. + + + + + Cached name for the 'instance_set_pivot_data' method. + + + + + Cached name for the 'instance_set_transform' method. + + + + + Cached name for the 'instance_set_interpolated' method. + + + + + Cached name for the 'instance_reset_physics_interpolation' method. + + + + + Cached name for the 'instance_attach_object_instance_id' method. + + + + + Cached name for the 'instance_set_blend_shape_weight' method. + + + + + Cached name for the 'instance_set_surface_override_material' method. + + + + + Cached name for the 'instance_set_visible' method. + + + + + Cached name for the 'instance_geometry_set_transparency' method. + + + + + Cached name for the 'instance_set_custom_aabb' method. + + + + + Cached name for the 'instance_attach_skeleton' method. + + + + + Cached name for the 'instance_set_extra_visibility_margin' method. + + + + + Cached name for the 'instance_set_visibility_parent' method. + + + + + Cached name for the 'instance_set_ignore_culling' method. + + + + + Cached name for the 'instance_geometry_set_flag' method. + + + + + Cached name for the 'instance_geometry_set_cast_shadows_setting' method. + + + + + Cached name for the 'instance_geometry_set_material_override' method. + + + + + Cached name for the 'instance_geometry_set_material_overlay' method. + + + + + Cached name for the 'instance_geometry_set_visibility_range' method. + + + + + Cached name for the 'instance_geometry_set_lightmap' method. + + + + + Cached name for the 'instance_geometry_set_lod_bias' method. + + + + + Cached name for the 'instance_geometry_set_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_default_value' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_list' method. + + + + + Cached name for the 'instances_cull_aabb' method. + + + + + Cached name for the 'instances_cull_ray' method. + + + + + Cached name for the 'instances_cull_convex' method. + + + + + Cached name for the 'bake_render_uv2' method. + + + + + Cached name for the 'canvas_create' method. + + + + + Cached name for the 'canvas_set_item_mirroring' method. + + + + + Cached name for the 'canvas_set_item_repeat' method. + + + + + Cached name for the 'canvas_set_modulate' method. + + + + + Cached name for the 'canvas_set_disable_scale' method. + + + + + Cached name for the 'canvas_texture_create' method. + + + + + Cached name for the 'canvas_texture_set_channel' method. + + + + + Cached name for the 'canvas_texture_set_shading_parameters' method. + + + + + Cached name for the 'canvas_texture_set_texture_filter' method. + + + + + Cached name for the 'canvas_texture_set_texture_repeat' method. + + + + + Cached name for the 'canvas_item_create' method. + + + + + Cached name for the 'canvas_item_set_parent' method. + + + + + Cached name for the 'canvas_item_set_default_texture_filter' method. + + + + + Cached name for the 'canvas_item_set_default_texture_repeat' method. + + + + + Cached name for the 'canvas_item_set_visible' method. + + + + + Cached name for the 'canvas_item_set_light_mask' method. + + + + + Cached name for the 'canvas_item_set_visibility_layer' method. + + + + + Cached name for the 'canvas_item_set_transform' method. + + + + + Cached name for the 'canvas_item_set_clip' method. + + + + + Cached name for the 'canvas_item_set_distance_field_mode' method. + + + + + Cached name for the 'canvas_item_set_custom_rect' method. + + + + + Cached name for the 'canvas_item_set_modulate' method. + + + + + Cached name for the 'canvas_item_set_self_modulate' method. + + + + + Cached name for the 'canvas_item_set_draw_behind_parent' method. + + + + + Cached name for the 'canvas_item_set_interpolated' method. + + + + + Cached name for the 'canvas_item_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_add_line' method. + + + + + Cached name for the 'canvas_item_add_polyline' method. + + + + + Cached name for the 'canvas_item_add_multiline' method. + + + + + Cached name for the 'canvas_item_add_rect' method. + + + + + Cached name for the 'canvas_item_add_circle' method. + + + + + Cached name for the 'canvas_item_add_texture_rect' method. + + + + + Cached name for the 'canvas_item_add_msdf_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_lcd_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_nine_patch' method. + + + + + Cached name for the 'canvas_item_add_primitive' method. + + + + + Cached name for the 'canvas_item_add_polygon' method. + + + + + Cached name for the 'canvas_item_add_triangle_array' method. + + + + + Cached name for the 'canvas_item_add_mesh' method. + + + + + Cached name for the 'canvas_item_add_multimesh' method. + + + + + Cached name for the 'canvas_item_add_particles' method. + + + + + Cached name for the 'canvas_item_add_set_transform' method. + + + + + Cached name for the 'canvas_item_add_clip_ignore' method. + + + + + Cached name for the 'canvas_item_add_animation_slice' method. + + + + + Cached name for the 'canvas_item_set_sort_children_by_y' method. + + + + + Cached name for the 'canvas_item_set_z_index' method. + + + + + Cached name for the 'canvas_item_set_z_as_relative_to_parent' method. + + + + + Cached name for the 'canvas_item_set_copy_to_backbuffer' method. + + + + + Cached name for the 'canvas_item_attach_skeleton' method. + + + + + Cached name for the 'canvas_item_clear' method. + + + + + Cached name for the 'canvas_item_set_draw_index' method. + + + + + Cached name for the 'canvas_item_set_material' method. + + + + + Cached name for the 'canvas_item_set_use_parent_material' method. + + + + + Cached name for the 'canvas_item_set_visibility_notifier' method. + + + + + Cached name for the 'canvas_item_set_canvas_group_mode' method. + + + + + Cached name for the 'debug_canvas_item_get_rect' method. + + + + + Cached name for the 'canvas_light_create' method. + + + + + Cached name for the 'canvas_light_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_set_enabled' method. + + + + + Cached name for the 'canvas_light_set_texture_scale' method. + + + + + Cached name for the 'canvas_light_set_transform' method. + + + + + Cached name for the 'canvas_light_set_texture' method. + + + + + Cached name for the 'canvas_light_set_texture_offset' method. + + + + + Cached name for the 'canvas_light_set_color' method. + + + + + Cached name for the 'canvas_light_set_height' method. + + + + + Cached name for the 'canvas_light_set_energy' method. + + + + + Cached name for the 'canvas_light_set_z_range' method. + + + + + Cached name for the 'canvas_light_set_layer_range' method. + + + + + Cached name for the 'canvas_light_set_item_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_item_shadow_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_mode' method. + + + + + Cached name for the 'canvas_light_set_shadow_enabled' method. + + + + + Cached name for the 'canvas_light_set_shadow_filter' method. + + + + + Cached name for the 'canvas_light_set_shadow_color' method. + + + + + Cached name for the 'canvas_light_set_shadow_smooth' method. + + + + + Cached name for the 'canvas_light_set_blend_mode' method. + + + + + Cached name for the 'canvas_light_set_interpolated' method. + + + + + Cached name for the 'canvas_light_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_create' method. + + + + + Cached name for the 'canvas_light_occluder_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_occluder_set_enabled' method. + + + + + Cached name for the 'canvas_light_occluder_set_polygon' method. + + + + + Cached name for the 'canvas_light_occluder_set_as_sdf_collision' method. + + + + + Cached name for the 'canvas_light_occluder_set_transform' method. + + + + + Cached name for the 'canvas_light_occluder_set_light_mask' method. + + + + + Cached name for the 'canvas_light_occluder_set_interpolated' method. + + + + + Cached name for the 'canvas_light_occluder_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_occluder_polygon_create' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_shape' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_cull_mode' method. + + + + + Cached name for the 'canvas_set_shadow_texture_size' method. + + + + + Cached name for the 'global_shader_parameter_add' method. + + + + + Cached name for the 'global_shader_parameter_remove' method. + + + + + Cached name for the 'global_shader_parameter_get_list' method. + + + + + Cached name for the 'global_shader_parameter_set' method. + + + + + Cached name for the 'global_shader_parameter_set_override' method. + + + + + Cached name for the 'global_shader_parameter_get' method. + + + + + Cached name for the 'global_shader_parameter_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'request_frame_drawn_callback' method. + + + + + Cached name for the 'has_changed' method. + + + + + Cached name for the 'get_rendering_info' method. + + + + + Cached name for the 'get_video_adapter_name' method. + + + + + Cached name for the 'get_video_adapter_vendor' method. + + + + + Cached name for the 'get_video_adapter_type' method. + + + + + Cached name for the 'get_video_adapter_api_version' method. + + + + + Cached name for the 'get_current_rendering_driver_name' method. + + + + + Cached name for the 'get_current_rendering_method' method. + + + + + Cached name for the 'make_sphere_mesh' method. + + + + + Cached name for the 'get_test_cube' method. + + + + + Cached name for the 'get_test_texture' method. + + + + + Cached name for the 'get_white_texture' method. + + + + + Cached name for the 'set_boot_image' method. + + + + + Cached name for the 'get_default_clear_color' method. + + + + + Cached name for the 'set_default_clear_color' method. + + + + + Cached name for the 'has_os_feature' method. + + + + + Cached name for the 'set_debug_generate_wireframes' method. + + + + + Cached name for the 'is_render_loop_enabled' method. + + + + + Cached name for the 'set_render_loop_enabled' method. + + + + + Cached name for the 'get_frame_setup_time_cpu' method. + + + + + Cached name for the 'force_sync' method. + + + + + Cached name for the 'force_draw' method. + + + + + Cached name for the 'get_rendering_device' method. + + + + + Cached name for the 'create_local_rendering_device' method. + + + + + Cached name for the 'is_on_render_thread' method. + + + + + Cached name for the 'call_on_render_thread' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_pre_draw' signal. + + + + + Cached name for the 'frame_post_draw' signal. + + + + + The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed. + The rendering server can be used to bypass the scene/ system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized). + Resources are created using the *_create functions. These functions return s which are not references to the objects themselves, but opaque pointers towards these objects. + All objects are drawn to a viewport. You can use the attached to the or you can create one yourself with . When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using or . + Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any node with . Otherwise, a scenario can be created with . + Similarly, in 2D, a canvas is needed to draw all canvas items. + 3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using . The instance must also be attached to the scenario using in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always). + 2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with canvas_*. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + If , disables rendering completely, but the engine logic is still being processed. You can call to draw a frame even with rendering disabled. + + + + + Creates a 2-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + Note: Not to be confused with , which creates the graphics API's own texture type as opposed to the Godot-specific resource. + + + + + Creates a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Note: The equivalent resource is . + + + + + This method does nothing and always returns an invalid . + + + + + Creates a texture based on a native handle that was created outside of Godot's renderer. + Note: If using the rendering device renderer, using rather than this method is recommended. It will give you much more control over the texture's format and usage. + + + + + Updates the texture specified by the with the data in . A must also be specified, which should be 0 when updating a single-layer texture (). + Note: The must have the same width, height and format as the current data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height or format, use instead. + + + + + Updates the texture specified by the 's data with the data in . All the texture's layers must be replaced at once. + Note: The must have the same width, height, depth and format as the current texture data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height, depth or format, use instead. + + + + + This method does nothing. + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Note: The equivalent resource is . + + + + + Creates a placeholder for a 3-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_3d_* RenderingServer functions, although it does nothing when used. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Returns an instance from the given . + Example: Get the test texture from and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns an instance from the given and . + + + + + Returns 3D texture data as an array of s for the specified texture . + + + + + Replaces 's texture data by the texture specified by the RID, without changing 's RID. + + + + + Returns the format for the texture. + + + + + Creates a new texture object based on a texture created directly on the . If the texture contains layers, is used to define the layer type. + + + + + Returns a texture that can be used with . + + + + + Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension. + Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan). + + + + + Creates an empty shader and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all shader_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shader's source code (which triggers recompilation after being changed). + + + + + Sets the path hint for the specified shader. This should generally match the resource's . + + + + + Returns a shader's source code as a string. + + + + + Returns the parameters of a shader. + + + + + Returns the default value for the specified shader uniform. This is usually the value written in the shader source code. + + + + + Sets a shader's default texture. Overwrites the texture given by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns a default texture from a shader searched by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Creates an empty material and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all material_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets a shader material's shader. + + + + + Sets a material's parameter. + + + + + Returns the value of a certain material's parameter. + + + + + Sets a material's render priority. + + + + + Sets an object's next material. + + + + + Creates a new mesh and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all mesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the offset of a given attribute by in the start of its respective buffer. + + + + + Returns the stride of the vertex positions for a mesh with given . Note importantly that vertex positions are stored consecutively and are not interleaved with the other attributes in the vertex buffer (normals and tangents). + + + + + Returns the stride of the combined normals and tangents for a mesh with given . Note importantly that, while normals and tangents are in the vertex buffer with vertices, they are only interleaved with each other and so have a different stride than vertex positions. + + + + + Returns the stride of the attribute buffer for a mesh with given . + + + + + Returns the stride of the skin buffer for a mesh with given . + + + + + Returns a mesh's blend shape count. + + + + + Sets a mesh's blend shape mode. + + + + + Returns a mesh's blend shape mode. + + + + + Sets a mesh's surface's material. + + + + + Returns a mesh's surface's material. + + + + + Returns a mesh's surface's buffer arrays. + + + + + Returns a mesh's surface's arrays for blend shapes. + + + + + Returns a mesh's number of surfaces. + + + + + Sets a mesh's custom aabb. + + + + + Returns a mesh's custom aabb. + + + + + Removes all surfaces from a mesh. + + + + + Creates a new multimesh on the RenderingServer and returns an handle. This RID will be used in all multimesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this multimesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the number of instances allocated for this multimesh. + + + + + Sets the mesh to be drawn by the multimesh. Equivalent to . + + + + + Sets the for this instance. Equivalent to . + + + + + Sets the for this instance. For use when multimesh is used in 2D. Equivalent to . + + + + + Sets the color by which this instance will be modulated. Equivalent to . + + + + + Sets the custom data for this instance. Custom data is passed as a , but is interpreted as a vec4 in the shader. Equivalent to . + + + + + Returns the RID of the mesh that will be used in drawing this multimesh. + + + + + Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh. + + + + + Sets the custom AABB for this MultiMesh resource. + + + + + Returns the custom AABB defined for this MultiMesh resource. + + + + + Returns the of the specified instance. + + + + + Returns the of the specified instance. For use when the multimesh is set to use 2D transforms. + + + + + Returns the color by which the specified instance will be modulated. + + + + + Returns the custom data associated with the specified instance. + + + + + Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to . + + + + + Returns the number of visible instances for this multimesh. + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Returns the handle of the , which can be used as any other buffer on the Rendering Device. + + + + + Returns the MultiMesh data (such as instance transforms, colors, etc.). See for details on the returned data. + Note: If the buffer is in the engine's internal cache, it will have to be fetched from GPU memory and possibly decompressed. This means is potentially a slow operation and should be avoided whenever possible. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Turns on and off physics interpolation for this MultiMesh resource. + + + + + Sets the physics interpolation quality for the . + A value of gives fast but low quality interpolation, a value of gives slower but higher quality interpolation. + + + + + Prevents physics interpolation for the specified instance during the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Creates a skeleton and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all skeleton_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Returns the number of bones allocated for this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Creates a directional light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this directional light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a new omni light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this omni light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a spot light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this spot light to an instance using using the returned RID. + + + + + Sets the color of the light. Equivalent to . + + + + + Sets the specified 3D light parameter. See for options. Equivalent to . + + + + + If , light will cast shadows. Equivalent to . + + + + + Sets the projector texture to use for the specified 3D light. Equivalent to . + + + + + If , the 3D light will subtract light instead of adding light. Equivalent to . + + + + + Sets the cull mask for this 3D light. Lights only affect objects in the selected layers. Equivalent to . + + + + + Sets the distance fade for this 3D light. This acts as a form of level of detail (LOD) and can be used to improve performance. Equivalent to , , , and . + + + + + If , reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with . Equivalent to . + + + + + Sets the shadow caster mask for this 3D light. Shadows will only be cast using objects in the selected layers. Equivalent to . + + + + + Sets the bake mode to use for the specified 3D light. Equivalent to . + + + + + Sets the maximum SDFGI cascade in which the 3D light's indirect lighting is rendered. Higher values allow the light to be rendered in SDFGI further away from the camera. + + + + + Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to . + + + + + Sets the shadow mode for this directional light. Equivalent to . See for options. + + + + + If , this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to . + + + + + If , this light will not be used for anything except sky shaders. Use this for lights that impact your sky shader that you may want to hide from affecting the rest of the scene. For example, you may want to enable this when the sun in your sky shader falls below the horizon. + + + + + Sets the texture filter mode to use when rendering light projectors. This parameter is global and cannot be set on a per-light basis. + + + + + Toggles whether a bicubic filter should be used when lightmaps are sampled. This smoothens their appearance at a performance cost. + + + + + Sets the filter quality for omni and spot light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the filter for directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the of the directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/size. This parameter is global and cannot be set on a per-viewport basis. + + + + + Creates a reflection probe and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all reflection_probe_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this reflection probe to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets how often the reflection probe updates. Can either be once or every frame. See for options. + + + + + Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to . + + + + + Sets the distance in meters over which a probe blends into the scene. + + + + + Sets the reflection probe's ambient light mode. Equivalent to . + + + + + Sets the reflection probe's custom ambient light color. Equivalent to . + + + + + Sets the reflection probe's custom ambient light energy. Equivalent to . + + + + + Sets the max distance away from the probe an object can be before it is culled. Equivalent to . + + + + + Sets the size of the area that the reflection probe will capture. Equivalent to . + + + + + Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to . + + + + + If , reflections will ignore sky contribution. Equivalent to . + + + + + If , uses box projection. This can make reflections look more correct in certain situations. Equivalent to . + + + + + If , computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to . + + + + + Sets the render cull mask for this reflection probe. Only instances with a matching layer will be reflected by this probe. Equivalent to . + + + + + Sets the render reflection mask for this reflection probe. Only instances with a matching layer will have reflections applied from this probe. Equivalent to . + + + + + Sets the resolution to use when rendering the specified reflection probe. The is specified for each cubemap face: for instance, specifying 512 will allocate 6 faces of 512×512 each (plus mipmaps for roughness levels). + + + + + Sets the mesh level of detail to use in the reflection probe rendering. Higher values will use less detailed versions of meshes that have LOD variations generated, which can improve performance. Equivalent to . + + + + + Creates a decal and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all decal_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this decal to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets the of the decal specified by the RID. Equivalent to . + + + + + Sets the in the given texture slot for the specified decal. Equivalent to . + + + + + Sets the emission in the decal specified by the RID. Equivalent to . + + + + + Sets the in the decal specified by the RID. Equivalent to . + + + + + Sets the color multiplier in the decal specified by the RID to . Equivalent to . + + + + + Sets the cull in the decal specified by the RID. Equivalent to . + + + + + Sets the distance fade parameters in the decal specified by the RID. Equivalent to , and . + + + + + Sets the upper fade () and lower fade () in the decal specified by the RID. Equivalent to and . + + + + + Sets the normal in the decal specified by the RID. Equivalent to . + + + + + Sets the texture mode to use when rendering decals. This parameter is global and cannot be set on a per-decal basis. + + + + + If is , renders and SDFGI () buffers at halved resolution on each axis (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. rendering is not affected by this setting. Equivalent to ProjectSettings.rendering/global_illumination/gi/use_half_resolution. + + + + + Creates a new voxel-based global illumination object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all voxel_gi_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Used to inform the renderer what exposure normalization value was used while baking the voxel gi. This value will be used and modulated at run time to ensure that the voxel gi maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the ProjectSettings.rendering/global_illumination/voxel_gi/quality value to use when rendering. This parameter is global and cannot be set on a per-VoxelGI basis. + + + + + Creates a new lightmap global illumination instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all lightmap_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Set the textures on the given GI instance to the texture array pointed to by the RID. If the lightmap texture was baked with set to , then must also be . + + + + + Used to inform the renderer what exposure normalization value was used while baking the lightmap. This value will be used and modulated at run time to ensure that the lightmap maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Creates a GPU-based particle system and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all particles_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach these particles to an instance using using the returned RID. + Note: The equivalent nodes are and . + Note: All particles_* methods only apply to GPU-based particles, not CPU-based particles. and do not have equivalent RenderingServer functions available, as these use and under the hood (see multimesh_* methods). + + + + + Sets whether the GPU particles specified by the RID should be rendered in 2D or 3D according to . + + + + + If , particles will emit over time. Setting to does not reset the particles, but only stops their emission. Equivalent to . + + + + + Returns if particles are currently set to emitting. + + + + + Sets the number of particles to be drawn and allocates the memory for them. Equivalent to . + + + + + Sets the amount ratio for particles to be emitted. Equivalent to . + + + + + Sets the lifetime of each particle in the system. Equivalent to . + + + + + If , particles will emit once and then stop. Equivalent to . + + + + + Sets the preprocess time for the particles' animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to . + + + + + Sets the explosiveness ratio. Equivalent to . + + + + + Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to . + + + + + Sets the value that informs a to rush all particles towards the end of their lifetime. + + + + + Sets the velocity of a particle node, that will be used by . + + + + + Sets a custom axis-aligned bounding box for the particle system. Equivalent to . + + + + + Sets the speed scale of the particle system. Equivalent to . + + + + + If , particles use local coordinates. If they use global coordinates. Equivalent to . + + + + + Sets the material for processing the particles. + Note: This is not the material used to draw the materials. Equivalent to . + + + + + Sets the frame rate that the particle system rendering will be fixed to. Equivalent to . + + + + + If , uses fractional delta which smooths the movement of the particles. Equivalent to . + + + + + If is , enables trails for the with the specified in seconds. Equivalent to and . + + + + + Returns if particles are not emitting and particles are set to inactive. + + + + + Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to , , or . + + + + + Reset the particles on the next update. Equivalent to . + + + + + Manually emits particles from the instance. + + + + + Sets the draw order of the particles to one of the named enums from . See for options. Equivalent to . + + + + + Sets the number of draw passes to use. Equivalent to . + + + + + Sets the mesh to be used for the specified draw pass. Equivalent to , , , and . + + + + + Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to . + + + + + Sets the that will be used by the particles when they first emit. + + + + + Creates a new 3D GPU particle collision or attractor and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most particles_collision_* RenderingServer functions. + Note: The equivalent nodes are and . + + + + + Sets the collision or attractor shape for the 3D GPU particles collision or attractor specified by the RID. + + + + + Sets the cull for the 3D GPU particles collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles sphere collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles collision by the RID. Equivalent to , , , or depending on the type. + + + + + Sets the for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the directionality for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the attenuation for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the signed distance field for the 3D GPU particles collision specified by the RID. Equivalent to or depending on the type. + + + + + Requests an update for the 3D GPU particle collision heightfield. This may be automatically called by the 3D GPU particle collision heightfield depending on its . + + + + + Sets the heightmap for the 3D GPU particles heightfield collision specified by the RID. Equivalent to . + + + + + Creates a new fog volume and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all fog_volume_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the shape of the fog volume to either , , , or . + + + + + Sets the size of the fog volume when shape is , , or . + + + + + Sets the of the fog volume. Can be either a or a custom . + + + + + Creates a new 3D visibility notifier object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all visibility_notifier_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates an occluder instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is (not to be confused with the node). + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Creates a 3D camera and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away. + + + + + Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + + + + + Sets camera to use frustum projection. This mode allows adjusting the argument to create "tilted frustum" effects. + + + + + Sets of camera. + + + + + Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to . + + + + + Sets the environment used by this camera. Equivalent to . + + + + + Sets the camera_attributes created with to the given camera. + + + + + Sets the compositor used by this camera. Equivalent to . + + + + + If , preserves the horizontal aspect ratio which is equivalent to . If , preserves the vertical aspect ratio which is equivalent to . + + + + + Creates an empty viewport and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all viewport_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + If , the viewport uses augmented or virtual reality technologies. See . + + + + + Sets the viewport's width and height in pixels. + + + + + If , sets the viewport active, else sets it inactive. + + + + + Sets the viewport's parent to the viewport specified by the RID. + + + + + Copies the viewport to a region of the screen specified by . If is , then the viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to. + For example, you can set the root viewport to not render at all with the following code: + FIXME: The method seems to be non-existent. + + Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For further optimization, see . + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + If , render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the screen_texture. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size. + + + + + Sets the rendering mask associated with this . Only nodes with a matching rendering visibility layer will be rendered by this . + + + + + Sets the 3D resolution scaling mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible. + + + + + Scales the 3D render buffer based on the viewport size uses an image filter specified in to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also for multi-sample antialiasing, which is significantly cheaper but only smoothens the edges of polygons. + When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale. + + + + + Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference. + + + + + Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). To get sharper textures at a distance without introducing too much graininess, set this between -0.75 and 0.0. Enabling temporal antialiasing (ProjectSettings.rendering/anti_aliasing/quality/use_taa) can help reduce the graininess visible when using negative mipmap bias. + Note: When the 3D scaling mode is set to FSR 1.0, this value is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is -log2(1.0 / scale) + mipmap_bias. + + + + + Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled. + The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter. + Note: In 3D, for this setting to have an effect, set to or on materials. + Note: In 2D, for this setting to have an effect, set to or on the node displaying the texture (or in ). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference. + + + + + Sets when the viewport should be updated. See constants for options. + + + + + Returns the viewport's update mode. See constants for options. + Warning: Calling this from any thread other than the rendering thread will be detrimental to performance. + + + + + Sets the clear mode of a viewport. See for options. + + + + + Returns the render target for the viewport. + + + + + Returns the viewport's last rendered frame. + + + + + If , the viewport's 3D elements are not rendered. + + + + + If , the viewport's canvas (i.e. 2D and GUI elements) is not rendered. + + + + + Sets the viewport's environment mode which allows enabling or disabling rendering of 3D environment over 2D canvas. When disabled, 2D will not be affected by the environment. When enabled, 2D will be affected by the environment if the environment background mode is . The default behavior is to inherit the setting from the viewport's parent. If the topmost parent is also set to , then the behavior will be the same as if it was set to . + + + + + Sets a viewport's camera. + + + + + Sets a viewport's scenario. The scenario contains information about environment information, reflection atlas, etc. + + + + + Sets a viewport's canvas. + + + + + Detaches a viewport from a canvas. + + + + + If , canvas item transforms (i.e. origin position) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + If , canvas item vertices (i.e. polygon points) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel. + + + + + Sets the default texture filtering mode for the specified RID. See for options. + + + + + Sets the default texture repeat mode for the specified RID. See for options. + + + + + Sets the transformation of a viewport's canvas. + + + + + Sets the stacking order for a viewport's canvas. + is the actual canvas layer, while specifies the stacking order of the canvas among those in the same layer. + + + + + If , the viewport renders its background as transparent. + + + + + Sets the viewport's global transformation matrix. + + + + + Sets the viewport's 2D signed distance field ProjectSettings.rendering/2d/sdf/oversize and ProjectSettings.rendering/2d/sdf/scale. This is used when sampling the signed distance field in shaders as well as collision. This is not used by SDFGI in 3D rendering. + + + + + Sets the of the shadow atlas's images (used for omni and spot lights) on the viewport specified by the RID. The value is rounded up to the nearest power of 2. If is , use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices. + Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows). + + + + + Sets the number of subdivisions to use in the specified shadow atlas for omni and spot shadows. See also . + + + + + Sets the multisample antialiasing mode for 3D on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_3d or . + + + + + Sets the multisample antialiasing mode for 2D/Canvas on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_2d or . + + + + + If , 2D rendering will use a high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an RGBA16 framebuffer, while when using the Mobile renderer it will be an RGB10_A2 framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen (if the Viewport is attached to the screen). Practically speaking, this means that the end result of the Viewport will not be clamped into the 0-1 range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. This setting has the same effect as . + Note: This setting will have no effect when using the Compatibility renderer, which always renders in low dynamic range for performance reasons. + + + + + Sets the viewport's screen-space antialiasing mode. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa or . + + + + + If , use temporal antialiasing. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_taa or . + + + + + If , enables debanding on the specified viewport. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_debanding or . + + + + + If , enables occlusion culling on the specified viewport. Equivalent to ProjectSettings.rendering/occlusion_culling/use_occlusion_culling. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/bvh_build_quality to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. This is separated into render pass s, each of them having the same s you can query (different passes will return different values). See for a list of render pass types and for a list of information that can be queried. + See also , which returns global information across all viewports. + Note: Viewport rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print( + RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(), + RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE, + RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME) + ) + + + + + + Sets the debug draw mode of a viewport. See for options. + + + + + Sets the measurement for the given RID (obtained using ). Once enabled, and will return values greater than 0.0 when queried with the given . + + + + + Returns the CPU time taken to render the last frame in milliseconds. This only includes time spent in rendering-related operations; scripts' _process functions and other engine subsystems are not included in this readout. To get a complete readout of CPU time spent to render the scene, sum the render times of all viewports that are drawn every frame plus . Unlike , this method will accurately reflect CPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + + + + + Returns the GPU time taken to render the last frame in milliseconds. To get a complete readout of GPU time spent to render the scene, sum the render times of all viewports that are drawn every frame. Unlike , this method accurately reflects GPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + Note: When GPU utilization is low enough during a certain period of time, GPUs will decrease their power state (which in turn decreases core and memory clock speeds). This can cause the reported GPU time to increase if GPU utilization is kept low enough by a framerate cap (compared to what it would be at the GPU's highest power state). Keep this in mind when benchmarking using . This behavior can be overridden in the graphics driver settings at the cost of higher power usage. + + + + + Sets the Variable Rate Shading (VRS) mode for the viewport. If the GPU does not support VRS, this property is ignored. Equivalent to ProjectSettings.rendering/vrs/mode. + + + + + Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored. + If set to , the input texture is copied once and the mode is changed to . + + + + + The texture to use when the VRS mode is set to . Equivalent to ProjectSettings.rendering/vrs/texture. + + + + + Creates an empty sky and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all sky_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the of the sky specified by the RID (in pixels). Equivalent to . + + + + + Sets the process of the sky specified by the RID. Equivalent to . + + + + + Sets the material that the sky uses to render the background, ambient and reflection maps. + + + + + Generates and returns an containing the radiance map for the specified RID. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. values above 1.0 can be used to brighten the resulting image. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Creates a new rendering effect and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Enables/disables this rendering effect. + + + + + Sets the callback type () and callback method() for this rendering effect. + + + + + Sets the flag () for this rendering effect to or (). + + + + + Creates a new compositor and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the compositor effects for the specified compositor RID. should be an array containing RIDs created with . + + + + + Creates an environment and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all environment_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the environment's background mode. Equivalent to . + + + + + Sets the camera ID to be used as environment background. + + + + + Sets the to be used as the environment's background when using BGMode sky. Equivalent to . + + + + + Sets a custom field of view for the background . Equivalent to . + + + + + Sets the rotation of the background expressed as a . Equivalent to , where the rotation vector is used to construct the . + + + + + Color displayed for clear areas of the scene. Only effective if using the background mode. + + + + + Sets the intensity of the background color. + + + + + Sets the maximum layer to use if using Canvas background mode. + + + + + Sets the values to be used for ambient light rendering. See for more details. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Sets the variables to be used with the "tonemap" post-process effect. See for more details. + + + + + Sets the values to be used with the "adjustments" post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space reflections (SSR) post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Configures signed distance field global illumination for the specified environment RID. See sdfgi_* properties in for more information. + + + + + Sets the variables to be used with the volumetric fog post-process effect. See for more details. + + + + + If is , enables bicubic upscaling for glow which improves quality at the cost of performance. Equivalent to ProjectSettings.rendering/environment/glow/upscale_mode. + + + + + Sets the quality level of the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Sets the quality level of the screen-space indirect lighting (SSIL) post-process effect. See for more details. + + + + + Sets the number of rays to throw per frame when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count. + + + + + Sets the number of frames to use for converging signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge. + + + + + Sets the update speed for dynamic lights' indirect lighting when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Sets the resolution of the volumetric fog's froxel buffer. is modified by the screen's aspect ratio and then used to set the width and height of the buffer. While is directly used to set the depth of the buffer. + + + + + Enables filtering of the volumetric fog scattering buffer. This results in much smoother volumes with very few under-sampling artifacts. + + + + + Generates and returns an containing the radiance map for the specified RID's sky. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Sets the screen-space roughness limiter parameters, such as whether it should be enabled and its thresholds. Equivalent to ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabled, ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amount and ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit. + + + + + Sets ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality to use when rendering materials that have subsurface scattering enabled. + + + + + Sets the ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale and ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale to use when rendering materials that have subsurface scattering enabled. + + + + + Creates a camera attributes object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_attributes_ RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the quality level of the DOF blur effect to one of the options in . can be used to jitter samples taken during the blur pass to hide artifacts at the cost of looking more fuzzy. + + + + + Sets the shape of the DOF bokeh pattern. Different shapes may be used to achieve artistic effect, or to meet performance targets. For more detail on available options see . + + + + + Sets the parameters to use with the DOF blur effect. These parameters take on the same meaning as their counterparts in . + + + + + Sets the exposure values that will be used by the renderers. The normalization amount is used to bake a given Exposure Value (EV) into rendering calculations to reduce the dynamic range of the scene. + The normalization factor can be calculated from exposure value (EV100) as follows: + + func get_exposure_normalization(ev100: float): + return 1.0 / (pow(2.0, ev100) * 1.2) + + The exposure value can be calculated from aperture (in f-stops), shutter speed (in seconds), and sensitivity (in ISO) as follows: + + func get_exposure(aperture: float, shutter_speed: float, sensitivity: float): + return log((aperture * aperture) / shutter_speed * (100.0 / sensitivity)) / log(2) + + + + + + Sets the parameters to use with the auto-exposure effect. These parameters take on the same meaning as their counterparts in and . + + + + + Creates a scenario and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all scenario_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + The scenario is the 3D world that all the visual instances exist in. + + + + + Sets the environment that will be used with this scenario. See also . + + + + + Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment. + + + + + Sets the camera attributes () that will be used with this scenario. See also . + + + + + Sets the compositor () that will be used with this scenario. See also . + + + + + Creates a visual instance, adds it to the RenderingServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. This is a shorthand for using and setting the base and scenario manually. + + + + + Creates a visual instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + An instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, reflection probes and decals need to be associated with an instance to be visible in the scenario using . + Note: The equivalent node is . + + + + + Sets the base of the instance. A base can be any of the 3D objects that are created in the RenderingServer that can be displayed. For example, any of the light types, mesh, multimesh, particle system, reflection probe, decal, lightmap, voxel GI and visibility notifiers are all types that can be set as the base of an instance in order to be displayed in the scenario. + + + + + Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in. + + + + + Sets the render layers that this instance will be drawn to. Equivalent to . + + + + + Sets the sorting offset and switches between using the bounding box or instance origin for depth sorting. + + + + + Sets the world space transform of the instance. Equivalent to . + + + + + Turns on and off physics interpolation for the instance. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with , , and . + + + + + Sets the weight for a given blend shape associated with this instance. + + + + + Sets the override material of a specific surface. Equivalent to . + + + + + Sets whether an instance is drawn or not. Equivalent to . + + + + + Sets the transparency for the given geometry instance. Equivalent to . + A transparency of 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting to a value greater than 0.0 (exclusive) will not disable shadow rendering. + In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in. + Note: is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are. + + + + + Sets a custom AABB to use when culling objects from the view frustum. Equivalent to setting . + + + + + Attaches a skeleton to an instance. Removes the previous skeleton from the instance. + + + + + Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you to avoid culling objects that fall outside the view frustum. Equivalent to . + + + + + Sets the visibility parent for the given instance. Equivalent to . + + + + + If , ignores both frustum and occlusion culling on the specified 3D geometry instance. This is not the same as , which only ignores occlusion culling and leaves frustum culling intact. + + + + + Sets the flag for a given . See for more details. + + + + + Sets the shadow casting setting to one of . Equivalent to . + + + + + Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to . + + + + + Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to . + + + + + Sets the visibility range values for the given geometry instance. Equivalent to and related properties. + + + + + Sets the lightmap GI instance to use for the specified 3D geometry instance. The lightmap UV scale for the specified instance (equivalent to ) and lightmap atlas slice must also be specified. + + + + + Sets the level of detail bias to use when rendering the specified 3D geometry instance. Higher values result in higher detail from further away. Equivalent to . + + + + + Sets the per-instance shader uniform on the specified 3D geometry instance. Equivalent to . + + + + + Returns the value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + Note: Per-instance shader parameter names are case-sensitive. + + + + + Returns the default value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + + + + + Returns a dictionary of per-instance shader uniform names of the per-instance shader uniform from the specified 3D geometry instance. The returned dictionary is in PropertyInfo format, with the keys name, class_name, type, hint, hint_string and usage. Equivalent to . + + + + + Returns an array of object IDs intersecting with the provided AABB. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided 3D ray. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided convex shape. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Bakes the material data of the Mesh passed in the parameter with optional to a set of s of size . Returns an array of s containing material properties as specified in . + + + + + Creates a canvas and returns the assigned . It can be accessed with the RID that is returned. This RID will be used in all canvas_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Canvas has no or equivalent. + + + + + A copy of the canvas item will be drawn with a local offset of the . + Note: This is equivalent to calling like canvas_set_item_repeat(item, mirroring, 1), with an additional check ensuring is a parent of . + + + + + A copy of the canvas item will be drawn with a local offset of the by the number of times of the . As the increases, the copies will spread away from the origin texture. + + + + + Modulates all colors in the given canvas. + + + + + Creates a canvas texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_texture_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. See also . + Note: The equivalent resource is and is only meant to be used in 2D rendering, not 3D. + + + + + Sets the 's for the canvas texture specified by the RID. Equivalent to , and . + + + + + Sets the and to use for the canvas texture specified by the RID. Equivalent to and . + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Creates a new CanvasItem instance and returns its . It can be accessed with the RID that is returned. This RID will be used in all canvas_item_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets a parent to the . The item will inherit transform, modulation and visibility from its parent, like nodes in the scene tree. + + + + + Sets the default texture filter mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the default texture repeat mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the visibility of the . + + + + + Sets the light for the canvas item specified by the RID. Equivalent to . + + + + + Sets the rendering visibility layer associated with this . Only nodes with a matching rendering mask will render this . + + + + + Sets the of the canvas item specified by the RID. This affects where and how the item will be drawn. Child canvas items' transforms are multiplied by their parent's transform. Equivalent to . + + + + + If is , makes the canvas item specified by the RID not draw anything outside of its rect's coordinates. This clipping is fast, but works only with axis-aligned rectangles. This means that rotation is ignored by the clipping rectangle. For more advanced clipping shapes, use instead. + Note: The equivalent node functionality is found in , (always enabled) and more. + + + + + If is , enables multichannel signed distance field rendering mode for the canvas item specified by the RID. This is meant to be used for font rendering, or with specially generated images using msdfgen. + + + + + If is , sets the custom visibility rectangle (used for culling) to for the canvas item specified by . Setting a custom visibility rect can reduce CPU load when drawing lots of 2D instances. If is , automatically computes a visibility rectangle based on the canvas item's draw commands. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Multiplies the color of the canvas item specified by the RID, while affecting its children. See also . Equivalent to . + + + + + Multiplies the color of the canvas item specified by the RID, without affecting its children. See also . Equivalent to . + + + + + If is , draws the canvas item specified by the RID behind its parent. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas item. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas item. + This allows transforming a canvas item without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Draws a line on the pointed to by the . See also . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + + + + Draws the specified region of a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a nine-patch rectangle on the pointed to by the . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<int>(). + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + + + + Draws a mesh created with with given , color, and . This is used internally by . + + If the parameter is null, then the default value is Transform2D.Identity. + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D on the pointed to by the . See also . + + + + + Draws particles on the pointed to by the . + + + + + Sets a that will be used to transform subsequent canvas item commands. + + + + + If is , ignore clipping on items drawn with this canvas item until this is called again with set to . + + + + + Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly. + + + + + If is , child nodes with the lowest Y position are drawn before those with a higher Y position. Y-sorting only affects children that inherit from the canvas item specified by the RID, not the canvas item itself. Equivalent to . + + + + + Sets the 's Z index, i.e. its draw order (lower indexes are drawn first). + + + + + If this is enabled, the Z index of the parent will be added to the children's Z index. + + + + + Sets the to copy a rect to the backbuffer. + + + + + Attaches a skeleton to the . Removes the previous skeleton. + + + + + Clears the and removes all commands in it. + + + + + Sets the index for the . + + + + + Sets a new to the canvas item specified by the RID. Equivalent to . + + + + + Sets if the uses its parent's material. + + + + + Sets the given as visibility notifier. defines the area of detecting visibility. is called when the enters the screen, is called when the exits the screen. If is , the item will no longer function as notifier. + This method can be used to manually mimic . + + + + + Sets the canvas group mode used during 2D rendering for the canvas item specified by the RID. For faster but more limited clipping, use instead. + Note: The equivalent node functionality is found in and . + + + + + Returns the bounding rectangle for a canvas item in local space, as calculated by the renderer. This bound is used internally for culling. + Warning: This function is intended for debugging in the editor, and will pass through and return a zero in exported projects. + + + + + Creates a canvas light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches the canvas light to the canvas. Removes it from its previous canvas. + + + + + Enables or disables a canvas light. + + + + + Sets the scale factor of a 's texture. Equivalent to . + + + + + Sets the canvas light's . + + + + + Sets the texture to be used by a . Equivalent to . + + + + + Sets the offset of a 's texture. Equivalent to . + + + + + Sets the color for a light. + + + + + Sets a canvas light's height. + + + + + Sets a canvas light's energy. + + + + + Sets the Z range of objects that will be affected by this light. Equivalent to and . + + + + + The layer range that gets rendered with this light. + + + + + The light mask. See for more information on light masks. + + + + + The binary mask used to determine which layers this canvas light's shadows affects. See for more information on light masks. + + + + + The mode of the light, see constants. + + + + + Enables or disables the canvas light's shadow. + + + + + Sets the canvas light's shadow's filter, see constants. + + + + + Sets the color of the canvas light's shadow. + + + + + Smoothens the shadow. The lower, the smoother. + + + + + Sets the blend mode for the given canvas light. See for options. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas light. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas light. + This allows transforming a light without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a light occluder and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches a light occluder to the canvas. Removes it from its previous canvas. + + + + + Enables or disables light occluder. + + + + + Sets a light occluder's polygon. + + + + + Sets a light occluder's . + + + + + The light mask. See for more information on light masks. + + + + + If is , turns on physics interpolation for the light occluder. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an occluder to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a light occluder. + This allows transforming an occluder without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a new light occluder polygon and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_occluder_polygon_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shape of the occluder polygon. + + + + + Sets the shape of the occluder polygon. + + + + + Sets an occluder polygons cull mode. See constants. + + + + + Sets the ProjectSettings.rendering/2d/shadow_atlas/size to use for shadow rendering (in pixels). The value is rounded up to the nearest power of 2. + + + + + Creates a new global shader uniform. + Note: Global shader parameter names are case-sensitive. + + + + + Removes the global shader uniform specified by . + + + + + Returns the list of global shader uniform names. + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Sets the global shader uniform to . + + + + + Overrides the global shader uniform with . Equivalent to the node. + + + + + Returns the value of the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Returns the type associated to the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Tries to free an object in the RenderingServer. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingServer directly. + + + + + Schedules a callback to the given callable after a frame has been drawn. + + + + + Returns if changes have been made to the RenderingServer's data. is usually called if this happens. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. See for a list of values that can be queried. See also , which returns information specific to a viewport. + Note: Only 3D rendering is currently taken into account by some of these values, such as the number of draw calls. + Note: Rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME)) + + + + + + Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2"). + Note: When running a headless or server binary, this function returns an empty string. + Note: On the web platform, some browsers such as Firefox may report a different, fixed GPU name such as "GeForce GTX 980" (regardless of the user's actual GPU model). This is done to make fingerprinting more difficult. + + + + + Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the type of the video adapter. Since dedicated graphics cards from a given generation will usually be significantly faster than integrated graphics made in the same generation, the device type can be used as a basis for automatic graphics settings adjustment. However, this is not always true, so make sure to provide users with a way to manually override graphics settings. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns the version of the graphics video adapter currently in use (e.g. "1.2.189" for Vulkan, "3.3.0 NVIDIA 510.60.02" for OpenGL). This version may be different from the actual latest version supported by the hardware, as Godot may not always request the latest version. See also . + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the name of the current rendering driver. This can be vulkan, d3d12, metal, opengl3, opengl3_es, or opengl3_angle. See also . + The rendering driver is determined by ProjectSettings.rendering/rendering_device/driver, the --rendering-driver command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns the name of the current rendering method. This can be forward_plus, mobile, or gl_compatibility. See also . + The rendering method is determined by ProjectSettings.rendering/renderer/rendering_method, the --rendering-method command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns a mesh of a sphere with the given number of horizontal subdivisions, vertical subdivisions and radius. See also . + + + + + Returns the RID of the test cube. This mesh will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + + + + + Returns the RID of a 256×256 texture with a testing pattern on it (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the test texture and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns the ID of a 4×4 white texture (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the white texture and apply it to a node: + + var texture_rid = RenderingServer.get_white_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Sets a boot image. The color defines the background color. If is , the image will be scaled to fit the screen size. If is , the image will be scaled with linear interpolation. If is , the image will be scaled with nearest-neighbor interpolation. + + + + + Returns the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Sets the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Returns if the OS supports a certain . Features might be s3tc, etc, and etc2. + + + + + If is , generates debug wireframes for all meshes that are loaded when using the Compatibility renderer. By default, the engine does not generate debug wireframes at runtime, since they slow down loading of assets and take up VRAM. + Note: You must call this method before loading any meshes when using the Compatibility renderer, otherwise wireframes will not be used. + + + + + Returns the time taken to setup rendering on the CPU in milliseconds. This value is shared across all viewports and does not require to be enabled on a viewport to be queried. See also . + + + + + Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost. + + + + + Forces redrawing of all viewports at once. Must be called from the main thread. + + + + + Returns the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Creates a RenderingDevice that can be used to do draw and compute operations on a separate thread. Cannot draw to the screen nor share data with the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns if our code is currently executing on the rendering thread. + + + + + As the RenderingServer actual logic may run on an separate thread, accessing its internals from the main (or any other) thread will result in errors. To make it easier to run code that can safely access the rendering internals (such as and similar RD classes), push a callable via this function so it will be executed on the render thread. + + + + + This method does nothing and always returns . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Emitted at the beginning of the frame, before the RenderingServer updates all the Viewports. + + + + + Emitted at the end of the frame, after the RenderingServer has finished updating all the Viewports. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_loop_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'texture_2d_create' method. + + + + + Cached name for the 'texture_2d_layered_create' method. + + + + + Cached name for the 'texture_3d_create' method. + + + + + Cached name for the 'texture_proxy_create' method. + + + + + Cached name for the 'texture_create_from_native_handle' method. + + + + + Cached name for the 'texture_2d_update' method. + + + + + Cached name for the 'texture_3d_update' method. + + + + + Cached name for the 'texture_proxy_update' method. + + + + + Cached name for the 'texture_2d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_layered_placeholder_create' method. + + + + + Cached name for the 'texture_3d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_get' method. + + + + + Cached name for the 'texture_2d_layer_get' method. + + + + + Cached name for the 'texture_3d_get' method. + + + + + Cached name for the 'texture_replace' method. + + + + + Cached name for the 'texture_set_size_override' method. + + + + + Cached name for the 'texture_set_path' method. + + + + + Cached name for the 'texture_get_path' method. + + + + + Cached name for the 'texture_get_format' method. + + + + + Cached name for the 'texture_set_force_redraw_if_visible' method. + + + + + Cached name for the 'texture_rd_create' method. + + + + + Cached name for the 'texture_get_rd_texture' method. + + + + + Cached name for the 'texture_get_native_handle' method. + + + + + Cached name for the 'shader_create' method. + + + + + Cached name for the 'shader_set_code' method. + + + + + Cached name for the 'shader_set_path_hint' method. + + + + + Cached name for the 'shader_get_code' method. + + + + + Cached name for the 'get_shader_parameter_list' method. + + + + + Cached name for the 'shader_get_parameter_default' method. + + + + + Cached name for the 'shader_set_default_texture_parameter' method. + + + + + Cached name for the 'shader_get_default_texture_parameter' method. + + + + + Cached name for the 'material_create' method. + + + + + Cached name for the 'material_set_shader' method. + + + + + Cached name for the 'material_set_param' method. + + + + + Cached name for the 'material_get_param' method. + + + + + Cached name for the 'material_set_render_priority' method. + + + + + Cached name for the 'material_set_next_pass' method. + + + + + Cached name for the 'mesh_create_from_surfaces' method. + + + + + Cached name for the 'mesh_create' method. + + + + + Cached name for the 'mesh_surface_get_format_offset' method. + + + + + Cached name for the 'mesh_surface_get_format_vertex_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_normal_tangent_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_attribute_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_skin_stride' method. + + + + + Cached name for the 'mesh_add_surface' method. + + + + + Cached name for the 'mesh_add_surface_from_arrays' method. + + + + + Cached name for the 'mesh_get_blend_shape_count' method. + + + + + Cached name for the 'mesh_set_blend_shape_mode' method. + + + + + Cached name for the 'mesh_get_blend_shape_mode' method. + + + + + Cached name for the 'mesh_surface_set_material' method. + + + + + Cached name for the 'mesh_surface_get_material' method. + + + + + Cached name for the 'mesh_get_surface' method. + + + + + Cached name for the 'mesh_surface_get_arrays' method. + + + + + Cached name for the 'mesh_surface_get_blend_shape_arrays' method. + + + + + Cached name for the 'mesh_get_surface_count' method. + + + + + Cached name for the 'mesh_set_custom_aabb' method. + + + + + Cached name for the 'mesh_get_custom_aabb' method. + + + + + Cached name for the 'mesh_clear' method. + + + + + Cached name for the 'mesh_surface_update_vertex_region' method. + + + + + Cached name for the 'mesh_surface_update_attribute_region' method. + + + + + Cached name for the 'mesh_surface_update_skin_region' method. + + + + + Cached name for the 'mesh_set_shadow_mesh' method. + + + + + Cached name for the 'multimesh_create' method. + + + + + Cached name for the 'multimesh_allocate_data' method. + + + + + Cached name for the 'multimesh_get_instance_count' method. + + + + + Cached name for the 'multimesh_set_mesh' method. + + + + + Cached name for the 'multimesh_instance_set_transform' method. + + + + + Cached name for the 'multimesh_instance_set_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_set_color' method. + + + + + Cached name for the 'multimesh_instance_set_custom_data' method. + + + + + Cached name for the 'multimesh_get_mesh' method. + + + + + Cached name for the 'multimesh_get_aabb' method. + + + + + Cached name for the 'multimesh_set_custom_aabb' method. + + + + + Cached name for the 'multimesh_get_custom_aabb' method. + + + + + Cached name for the 'multimesh_instance_get_transform' method. + + + + + Cached name for the 'multimesh_instance_get_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_get_color' method. + + + + + Cached name for the 'multimesh_instance_get_custom_data' method. + + + + + Cached name for the 'multimesh_set_visible_instances' method. + + + + + Cached name for the 'multimesh_get_visible_instances' method. + + + + + Cached name for the 'multimesh_set_buffer' method. + + + + + Cached name for the 'multimesh_get_buffer_rd_rid' method. + + + + + Cached name for the 'multimesh_get_buffer' method. + + + + + Cached name for the 'multimesh_set_buffer_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolation_quality' method. + + + + + Cached name for the 'multimesh_instance_reset_physics_interpolation' method. + + + + + Cached name for the 'skeleton_create' method. + + + + + Cached name for the 'skeleton_allocate_data' method. + + + + + Cached name for the 'skeleton_get_bone_count' method. + + + + + Cached name for the 'skeleton_bone_set_transform' method. + + + + + Cached name for the 'skeleton_bone_get_transform' method. + + + + + Cached name for the 'skeleton_bone_set_transform_2d' method. + + + + + Cached name for the 'skeleton_bone_get_transform_2d' method. + + + + + Cached name for the 'skeleton_set_base_transform_2d' method. + + + + + Cached name for the 'directional_light_create' method. + + + + + Cached name for the 'omni_light_create' method. + + + + + Cached name for the 'spot_light_create' method. + + + + + Cached name for the 'light_set_color' method. + + + + + Cached name for the 'light_set_param' method. + + + + + Cached name for the 'light_set_shadow' method. + + + + + Cached name for the 'light_set_projector' method. + + + + + Cached name for the 'light_set_negative' method. + + + + + Cached name for the 'light_set_cull_mask' method. + + + + + Cached name for the 'light_set_distance_fade' method. + + + + + Cached name for the 'light_set_reverse_cull_face_mode' method. + + + + + Cached name for the 'light_set_shadow_caster_mask' method. + + + + + Cached name for the 'light_set_bake_mode' method. + + + + + Cached name for the 'light_set_max_sdfgi_cascade' method. + + + + + Cached name for the 'light_omni_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_blend_splits' method. + + + + + Cached name for the 'light_directional_set_sky_mode' method. + + + + + Cached name for the 'light_projectors_set_filter' method. + + + + + Cached name for the 'lightmaps_set_bicubic_filter' method. + + + + + Cached name for the 'positional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_shadow_atlas_set_size' method. + + + + + Cached name for the 'reflection_probe_create' method. + + + + + Cached name for the 'reflection_probe_set_update_mode' method. + + + + + Cached name for the 'reflection_probe_set_intensity' method. + + + + + Cached name for the 'reflection_probe_set_blend_distance' method. + + + + + Cached name for the 'reflection_probe_set_ambient_mode' method. + + + + + Cached name for the 'reflection_probe_set_ambient_color' method. + + + + + Cached name for the 'reflection_probe_set_ambient_energy' method. + + + + + Cached name for the 'reflection_probe_set_max_distance' method. + + + + + Cached name for the 'reflection_probe_set_size' method. + + + + + Cached name for the 'reflection_probe_set_origin_offset' method. + + + + + Cached name for the 'reflection_probe_set_as_interior' method. + + + + + Cached name for the 'reflection_probe_set_enable_box_projection' method. + + + + + Cached name for the 'reflection_probe_set_enable_shadows' method. + + + + + Cached name for the 'reflection_probe_set_cull_mask' method. + + + + + Cached name for the 'reflection_probe_set_reflection_mask' method. + + + + + Cached name for the 'reflection_probe_set_resolution' method. + + + + + Cached name for the 'reflection_probe_set_mesh_lod_threshold' method. + + + + + Cached name for the 'decal_create' method. + + + + + Cached name for the 'decal_set_size' method. + + + + + Cached name for the 'decal_set_texture' method. + + + + + Cached name for the 'decal_set_emission_energy' method. + + + + + Cached name for the 'decal_set_albedo_mix' method. + + + + + Cached name for the 'decal_set_modulate' method. + + + + + Cached name for the 'decal_set_cull_mask' method. + + + + + Cached name for the 'decal_set_distance_fade' method. + + + + + Cached name for the 'decal_set_fade' method. + + + + + Cached name for the 'decal_set_normal_fade' method. + + + + + Cached name for the 'decals_set_filter' method. + + + + + Cached name for the 'gi_set_use_half_resolution' method. + + + + + Cached name for the 'voxel_gi_create' method. + + + + + Cached name for the 'voxel_gi_allocate_data' method. + + + + + Cached name for the 'voxel_gi_get_octree_size' method. + + + + + Cached name for the 'voxel_gi_get_octree_cells' method. + + + + + Cached name for the 'voxel_gi_get_data_cells' method. + + + + + Cached name for the 'voxel_gi_get_distance_field' method. + + + + + Cached name for the 'voxel_gi_get_level_counts' method. + + + + + Cached name for the 'voxel_gi_get_to_cell_xform' method. + + + + + Cached name for the 'voxel_gi_set_dynamic_range' method. + + + + + Cached name for the 'voxel_gi_set_propagation' method. + + + + + Cached name for the 'voxel_gi_set_energy' method. + + + + + Cached name for the 'voxel_gi_set_baked_exposure_normalization' method. + + + + + Cached name for the 'voxel_gi_set_bias' method. + + + + + Cached name for the 'voxel_gi_set_normal_bias' method. + + + + + Cached name for the 'voxel_gi_set_interior' method. + + + + + Cached name for the 'voxel_gi_set_use_two_bounces' method. + + + + + Cached name for the 'voxel_gi_set_quality' method. + + + + + Cached name for the 'lightmap_create' method. + + + + + Cached name for the 'lightmap_set_textures' method. + + + + + Cached name for the 'lightmap_set_probe_bounds' method. + + + + + Cached name for the 'lightmap_set_probe_interior' method. + + + + + Cached name for the 'lightmap_set_probe_capture_data' method. + + + + + Cached name for the 'lightmap_get_probe_capture_points' method. + + + + + Cached name for the 'lightmap_get_probe_capture_sh' method. + + + + + Cached name for the 'lightmap_get_probe_capture_tetrahedra' method. + + + + + Cached name for the 'lightmap_get_probe_capture_bsp_tree' method. + + + + + Cached name for the 'lightmap_set_baked_exposure_normalization' method. + + + + + Cached name for the 'lightmap_set_probe_capture_update_speed' method. + + + + + Cached name for the 'particles_create' method. + + + + + Cached name for the 'particles_set_mode' method. + + + + + Cached name for the 'particles_set_emitting' method. + + + + + Cached name for the 'particles_get_emitting' method. + + + + + Cached name for the 'particles_set_amount' method. + + + + + Cached name for the 'particles_set_amount_ratio' method. + + + + + Cached name for the 'particles_set_lifetime' method. + + + + + Cached name for the 'particles_set_one_shot' method. + + + + + Cached name for the 'particles_set_pre_process_time' method. + + + + + Cached name for the 'particles_set_explosiveness_ratio' method. + + + + + Cached name for the 'particles_set_randomness_ratio' method. + + + + + Cached name for the 'particles_set_interp_to_end' method. + + + + + Cached name for the 'particles_set_emitter_velocity' method. + + + + + Cached name for the 'particles_set_custom_aabb' method. + + + + + Cached name for the 'particles_set_speed_scale' method. + + + + + Cached name for the 'particles_set_use_local_coordinates' method. + + + + + Cached name for the 'particles_set_process_material' method. + + + + + Cached name for the 'particles_set_fixed_fps' method. + + + + + Cached name for the 'particles_set_interpolate' method. + + + + + Cached name for the 'particles_set_fractional_delta' method. + + + + + Cached name for the 'particles_set_collision_base_size' method. + + + + + Cached name for the 'particles_set_transform_align' method. + + + + + Cached name for the 'particles_set_trails' method. + + + + + Cached name for the 'particles_set_trail_bind_poses' method. + + + + + Cached name for the 'particles_is_inactive' method. + + + + + Cached name for the 'particles_request_process' method. + + + + + Cached name for the 'particles_restart' method. + + + + + Cached name for the 'particles_set_subemitter' method. + + + + + Cached name for the 'particles_emit' method. + + + + + Cached name for the 'particles_set_draw_order' method. + + + + + Cached name for the 'particles_set_draw_passes' method. + + + + + Cached name for the 'particles_set_draw_pass_mesh' method. + + + + + Cached name for the 'particles_get_current_aabb' method. + + + + + Cached name for the 'particles_set_emission_transform' method. + + + + + Cached name for the 'particles_collision_create' method. + + + + + Cached name for the 'particles_collision_set_collision_type' method. + + + + + Cached name for the 'particles_collision_set_cull_mask' method. + + + + + Cached name for the 'particles_collision_set_sphere_radius' method. + + + + + Cached name for the 'particles_collision_set_box_extents' method. + + + + + Cached name for the 'particles_collision_set_attractor_strength' method. + + + + + Cached name for the 'particles_collision_set_attractor_directionality' method. + + + + + Cached name for the 'particles_collision_set_attractor_attenuation' method. + + + + + Cached name for the 'particles_collision_set_field_texture' method. + + + + + Cached name for the 'particles_collision_height_field_update' method. + + + + + Cached name for the 'particles_collision_set_height_field_resolution' method. + + + + + Cached name for the 'fog_volume_create' method. + + + + + Cached name for the 'fog_volume_set_shape' method. + + + + + Cached name for the 'fog_volume_set_size' method. + + + + + Cached name for the 'fog_volume_set_material' method. + + + + + Cached name for the 'visibility_notifier_create' method. + + + + + Cached name for the 'visibility_notifier_set_aabb' method. + + + + + Cached name for the 'visibility_notifier_set_callbacks' method. + + + + + Cached name for the 'occluder_create' method. + + + + + Cached name for the 'occluder_set_mesh' method. + + + + + Cached name for the 'camera_create' method. + + + + + Cached name for the 'camera_set_perspective' method. + + + + + Cached name for the 'camera_set_orthogonal' method. + + + + + Cached name for the 'camera_set_frustum' method. + + + + + Cached name for the 'camera_set_transform' method. + + + + + Cached name for the 'camera_set_cull_mask' method. + + + + + Cached name for the 'camera_set_environment' method. + + + + + Cached name for the 'camera_set_camera_attributes' method. + + + + + Cached name for the 'camera_set_compositor' method. + + + + + Cached name for the 'camera_set_use_vertical_aspect' method. + + + + + Cached name for the 'viewport_create' method. + + + + + Cached name for the 'viewport_set_use_xr' method. + + + + + Cached name for the 'viewport_set_size' method. + + + + + Cached name for the 'viewport_set_active' method. + + + + + Cached name for the 'viewport_set_parent_viewport' method. + + + + + Cached name for the 'viewport_attach_to_screen' method. + + + + + Cached name for the 'viewport_set_render_direct_to_screen' method. + + + + + Cached name for the 'viewport_set_canvas_cull_mask' method. + + + + + Cached name for the 'viewport_set_scaling_3d_mode' method. + + + + + Cached name for the 'viewport_set_scaling_3d_scale' method. + + + + + Cached name for the 'viewport_set_fsr_sharpness' method. + + + + + Cached name for the 'viewport_set_texture_mipmap_bias' method. + + + + + Cached name for the 'viewport_set_anisotropic_filtering_level' method. + + + + + Cached name for the 'viewport_set_update_mode' method. + + + + + Cached name for the 'viewport_get_update_mode' method. + + + + + Cached name for the 'viewport_set_clear_mode' method. + + + + + Cached name for the 'viewport_get_render_target' method. + + + + + Cached name for the 'viewport_get_texture' method. + + + + + Cached name for the 'viewport_set_disable_3d' method. + + + + + Cached name for the 'viewport_set_disable_2d' method. + + + + + Cached name for the 'viewport_set_environment_mode' method. + + + + + Cached name for the 'viewport_attach_camera' method. + + + + + Cached name for the 'viewport_set_scenario' method. + + + + + Cached name for the 'viewport_attach_canvas' method. + + + + + Cached name for the 'viewport_remove_canvas' method. + + + + + Cached name for the 'viewport_set_snap_2d_transforms_to_pixel' method. + + + + + Cached name for the 'viewport_set_snap_2d_vertices_to_pixel' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'viewport_set_canvas_transform' method. + + + + + Cached name for the 'viewport_set_canvas_stacking' method. + + + + + Cached name for the 'viewport_set_transparent_background' method. + + + + + Cached name for the 'viewport_set_global_canvas_transform' method. + + + + + Cached name for the 'viewport_set_sdf_oversize_and_scale' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_size' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_quadrant_subdivision' method. + + + + + Cached name for the 'viewport_set_msaa_3d' method. + + + + + Cached name for the 'viewport_set_msaa_2d' method. + + + + + Cached name for the 'viewport_set_use_hdr_2d' method. + + + + + Cached name for the 'viewport_set_screen_space_aa' method. + + + + + Cached name for the 'viewport_set_use_taa' method. + + + + + Cached name for the 'viewport_set_use_debanding' method. + + + + + Cached name for the 'viewport_set_use_occlusion_culling' method. + + + + + Cached name for the 'viewport_set_occlusion_rays_per_thread' method. + + + + + Cached name for the 'viewport_set_occlusion_culling_build_quality' method. + + + + + Cached name for the 'viewport_get_render_info' method. + + + + + Cached name for the 'viewport_set_debug_draw' method. + + + + + Cached name for the 'viewport_set_measure_render_time' method. + + + + + Cached name for the 'viewport_get_measured_render_time_cpu' method. + + + + + Cached name for the 'viewport_get_measured_render_time_gpu' method. + + + + + Cached name for the 'viewport_set_vrs_mode' method. + + + + + Cached name for the 'viewport_set_vrs_update_mode' method. + + + + + Cached name for the 'viewport_set_vrs_texture' method. + + + + + Cached name for the 'sky_create' method. + + + + + Cached name for the 'sky_set_radiance_size' method. + + + + + Cached name for the 'sky_set_mode' method. + + + + + Cached name for the 'sky_set_material' method. + + + + + Cached name for the 'sky_bake_panorama' method. + + + + + Cached name for the 'compositor_effect_create' method. + + + + + Cached name for the 'compositor_effect_set_enabled' method. + + + + + Cached name for the 'compositor_effect_set_callback' method. + + + + + Cached name for the 'compositor_effect_set_flag' method. + + + + + Cached name for the 'compositor_create' method. + + + + + Cached name for the 'compositor_set_compositor_effects' method. + + + + + Cached name for the 'environment_create' method. + + + + + Cached name for the 'environment_set_background' method. + + + + + Cached name for the 'environment_set_camera_id' method. + + + + + Cached name for the 'environment_set_sky' method. + + + + + Cached name for the 'environment_set_sky_custom_fov' method. + + + + + Cached name for the 'environment_set_sky_orientation' method. + + + + + Cached name for the 'environment_set_bg_color' method. + + + + + Cached name for the 'environment_set_bg_energy' method. + + + + + Cached name for the 'environment_set_canvas_max_layer' method. + + + + + Cached name for the 'environment_set_ambient_light' method. + + + + + Cached name for the 'environment_set_glow' method. + + + + + Cached name for the 'environment_set_tonemap' method. + + + + + Cached name for the 'environment_set_adjustment' method. + + + + + Cached name for the 'environment_set_ssr' method. + + + + + Cached name for the 'environment_set_ssao' method. + + + + + Cached name for the 'environment_set_fog' method. + + + + + Cached name for the 'environment_set_sdfgi' method. + + + + + Cached name for the 'environment_set_volumetric_fog' method. + + + + + Cached name for the 'environment_glow_set_use_bicubic_upscale' method. + + + + + Cached name for the 'environment_set_ssr_roughness_quality' method. + + + + + Cached name for the 'environment_set_ssao_quality' method. + + + + + Cached name for the 'environment_set_ssil_quality' method. + + + + + Cached name for the 'environment_set_sdfgi_ray_count' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_converge' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_update_light' method. + + + + + Cached name for the 'environment_set_volumetric_fog_volume_size' method. + + + + + Cached name for the 'environment_set_volumetric_fog_filter_active' method. + + + + + Cached name for the 'environment_bake_panorama' method. + + + + + Cached name for the 'screen_space_roughness_limiter_set_active' method. + + + + + Cached name for the 'sub_surface_scattering_set_quality' method. + + + + + Cached name for the 'sub_surface_scattering_set_scale' method. + + + + + Cached name for the 'camera_attributes_create' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_quality' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_bokeh_shape' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur' method. + + + + + Cached name for the 'camera_attributes_set_exposure' method. + + + + + Cached name for the 'camera_attributes_set_auto_exposure' method. + + + + + Cached name for the 'scenario_create' method. + + + + + Cached name for the 'scenario_set_environment' method. + + + + + Cached name for the 'scenario_set_fallback_environment' method. + + + + + Cached name for the 'scenario_set_camera_attributes' method. + + + + + Cached name for the 'scenario_set_compositor' method. + + + + + Cached name for the 'instance_create2' method. + + + + + Cached name for the 'instance_create' method. + + + + + Cached name for the 'instance_set_base' method. + + + + + Cached name for the 'instance_set_scenario' method. + + + + + Cached name for the 'instance_set_layer_mask' method. + + + + + Cached name for the 'instance_set_pivot_data' method. + + + + + Cached name for the 'instance_set_transform' method. + + + + + Cached name for the 'instance_set_interpolated' method. + + + + + Cached name for the 'instance_reset_physics_interpolation' method. + + + + + Cached name for the 'instance_attach_object_instance_id' method. + + + + + Cached name for the 'instance_set_blend_shape_weight' method. + + + + + Cached name for the 'instance_set_surface_override_material' method. + + + + + Cached name for the 'instance_set_visible' method. + + + + + Cached name for the 'instance_geometry_set_transparency' method. + + + + + Cached name for the 'instance_set_custom_aabb' method. + + + + + Cached name for the 'instance_attach_skeleton' method. + + + + + Cached name for the 'instance_set_extra_visibility_margin' method. + + + + + Cached name for the 'instance_set_visibility_parent' method. + + + + + Cached name for the 'instance_set_ignore_culling' method. + + + + + Cached name for the 'instance_geometry_set_flag' method. + + + + + Cached name for the 'instance_geometry_set_cast_shadows_setting' method. + + + + + Cached name for the 'instance_geometry_set_material_override' method. + + + + + Cached name for the 'instance_geometry_set_material_overlay' method. + + + + + Cached name for the 'instance_geometry_set_visibility_range' method. + + + + + Cached name for the 'instance_geometry_set_lightmap' method. + + + + + Cached name for the 'instance_geometry_set_lod_bias' method. + + + + + Cached name for the 'instance_geometry_set_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_default_value' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_list' method. + + + + + Cached name for the 'instances_cull_aabb' method. + + + + + Cached name for the 'instances_cull_ray' method. + + + + + Cached name for the 'instances_cull_convex' method. + + + + + Cached name for the 'bake_render_uv2' method. + + + + + Cached name for the 'canvas_create' method. + + + + + Cached name for the 'canvas_set_item_mirroring' method. + + + + + Cached name for the 'canvas_set_item_repeat' method. + + + + + Cached name for the 'canvas_set_modulate' method. + + + + + Cached name for the 'canvas_set_disable_scale' method. + + + + + Cached name for the 'canvas_texture_create' method. + + + + + Cached name for the 'canvas_texture_set_channel' method. + + + + + Cached name for the 'canvas_texture_set_shading_parameters' method. + + + + + Cached name for the 'canvas_texture_set_texture_filter' method. + + + + + Cached name for the 'canvas_texture_set_texture_repeat' method. + + + + + Cached name for the 'canvas_item_create' method. + + + + + Cached name for the 'canvas_item_set_parent' method. + + + + + Cached name for the 'canvas_item_set_default_texture_filter' method. + + + + + Cached name for the 'canvas_item_set_default_texture_repeat' method. + + + + + Cached name for the 'canvas_item_set_visible' method. + + + + + Cached name for the 'canvas_item_set_light_mask' method. + + + + + Cached name for the 'canvas_item_set_visibility_layer' method. + + + + + Cached name for the 'canvas_item_set_transform' method. + + + + + Cached name for the 'canvas_item_set_clip' method. + + + + + Cached name for the 'canvas_item_set_distance_field_mode' method. + + + + + Cached name for the 'canvas_item_set_custom_rect' method. + + + + + Cached name for the 'canvas_item_set_modulate' method. + + + + + Cached name for the 'canvas_item_set_self_modulate' method. + + + + + Cached name for the 'canvas_item_set_draw_behind_parent' method. + + + + + Cached name for the 'canvas_item_set_interpolated' method. + + + + + Cached name for the 'canvas_item_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_add_line' method. + + + + + Cached name for the 'canvas_item_add_polyline' method. + + + + + Cached name for the 'canvas_item_add_multiline' method. + + + + + Cached name for the 'canvas_item_add_rect' method. + + + + + Cached name for the 'canvas_item_add_circle' method. + + + + + Cached name for the 'canvas_item_add_texture_rect' method. + + + + + Cached name for the 'canvas_item_add_msdf_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_lcd_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_nine_patch' method. + + + + + Cached name for the 'canvas_item_add_primitive' method. + + + + + Cached name for the 'canvas_item_add_polygon' method. + + + + + Cached name for the 'canvas_item_add_triangle_array' method. + + + + + Cached name for the 'canvas_item_add_mesh' method. + + + + + Cached name for the 'canvas_item_add_multimesh' method. + + + + + Cached name for the 'canvas_item_add_particles' method. + + + + + Cached name for the 'canvas_item_add_set_transform' method. + + + + + Cached name for the 'canvas_item_add_clip_ignore' method. + + + + + Cached name for the 'canvas_item_add_animation_slice' method. + + + + + Cached name for the 'canvas_item_set_sort_children_by_y' method. + + + + + Cached name for the 'canvas_item_set_z_index' method. + + + + + Cached name for the 'canvas_item_set_z_as_relative_to_parent' method. + + + + + Cached name for the 'canvas_item_set_copy_to_backbuffer' method. + + + + + Cached name for the 'canvas_item_attach_skeleton' method. + + + + + Cached name for the 'canvas_item_clear' method. + + + + + Cached name for the 'canvas_item_set_draw_index' method. + + + + + Cached name for the 'canvas_item_set_material' method. + + + + + Cached name for the 'canvas_item_set_use_parent_material' method. + + + + + Cached name for the 'canvas_item_set_visibility_notifier' method. + + + + + Cached name for the 'canvas_item_set_canvas_group_mode' method. + + + + + Cached name for the 'debug_canvas_item_get_rect' method. + + + + + Cached name for the 'canvas_light_create' method. + + + + + Cached name for the 'canvas_light_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_set_enabled' method. + + + + + Cached name for the 'canvas_light_set_texture_scale' method. + + + + + Cached name for the 'canvas_light_set_transform' method. + + + + + Cached name for the 'canvas_light_set_texture' method. + + + + + Cached name for the 'canvas_light_set_texture_offset' method. + + + + + Cached name for the 'canvas_light_set_color' method. + + + + + Cached name for the 'canvas_light_set_height' method. + + + + + Cached name for the 'canvas_light_set_energy' method. + + + + + Cached name for the 'canvas_light_set_z_range' method. + + + + + Cached name for the 'canvas_light_set_layer_range' method. + + + + + Cached name for the 'canvas_light_set_item_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_item_shadow_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_mode' method. + + + + + Cached name for the 'canvas_light_set_shadow_enabled' method. + + + + + Cached name for the 'canvas_light_set_shadow_filter' method. + + + + + Cached name for the 'canvas_light_set_shadow_color' method. + + + + + Cached name for the 'canvas_light_set_shadow_smooth' method. + + + + + Cached name for the 'canvas_light_set_blend_mode' method. + + + + + Cached name for the 'canvas_light_set_interpolated' method. + + + + + Cached name for the 'canvas_light_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_create' method. + + + + + Cached name for the 'canvas_light_occluder_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_occluder_set_enabled' method. + + + + + Cached name for the 'canvas_light_occluder_set_polygon' method. + + + + + Cached name for the 'canvas_light_occluder_set_as_sdf_collision' method. + + + + + Cached name for the 'canvas_light_occluder_set_transform' method. + + + + + Cached name for the 'canvas_light_occluder_set_light_mask' method. + + + + + Cached name for the 'canvas_light_occluder_set_interpolated' method. + + + + + Cached name for the 'canvas_light_occluder_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_occluder_polygon_create' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_shape' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_cull_mode' method. + + + + + Cached name for the 'canvas_set_shadow_texture_size' method. + + + + + Cached name for the 'global_shader_parameter_add' method. + + + + + Cached name for the 'global_shader_parameter_remove' method. + + + + + Cached name for the 'global_shader_parameter_get_list' method. + + + + + Cached name for the 'global_shader_parameter_set' method. + + + + + Cached name for the 'global_shader_parameter_set_override' method. + + + + + Cached name for the 'global_shader_parameter_get' method. + + + + + Cached name for the 'global_shader_parameter_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'request_frame_drawn_callback' method. + + + + + Cached name for the 'has_changed' method. + + + + + Cached name for the 'get_rendering_info' method. + + + + + Cached name for the 'get_video_adapter_name' method. + + + + + Cached name for the 'get_video_adapter_vendor' method. + + + + + Cached name for the 'get_video_adapter_type' method. + + + + + Cached name for the 'get_video_adapter_api_version' method. + + + + + Cached name for the 'get_current_rendering_driver_name' method. + + + + + Cached name for the 'get_current_rendering_method' method. + + + + + Cached name for the 'make_sphere_mesh' method. + + + + + Cached name for the 'get_test_cube' method. + + + + + Cached name for the 'get_test_texture' method. + + + + + Cached name for the 'get_white_texture' method. + + + + + Cached name for the 'set_boot_image' method. + + + + + Cached name for the 'get_default_clear_color' method. + + + + + Cached name for the 'set_default_clear_color' method. + + + + + Cached name for the 'has_os_feature' method. + + + + + Cached name for the 'set_debug_generate_wireframes' method. + + + + + Cached name for the 'is_render_loop_enabled' method. + + + + + Cached name for the 'set_render_loop_enabled' method. + + + + + Cached name for the 'get_frame_setup_time_cpu' method. + + + + + Cached name for the 'force_sync' method. + + + + + Cached name for the 'force_draw' method. + + + + + Cached name for the 'get_rendering_device' method. + + + + + Cached name for the 'create_local_rendering_device' method. + + + + + Cached name for the 'is_on_render_thread' method. + + + + + Cached name for the 'call_on_render_thread' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_pre_draw' signal. + + + + + Cached name for the 'frame_post_draw' signal. + + + + + Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from , resources are reference-counted and freed when no longer in use. They can also be nested within other resources, and saved on disk. , one of the most common s in a Godot project, is also a resource, uniquely capable of storing and instantiating the s it contains as many times as desired. + In GDScript, resources can loaded from disk by their using @GDScript.load or @GDScript.preload. + The engine keeps a global cache of all loaded resources, referenced by paths (see ). A resource will be cached when loaded for the first time and removed from cache once all references are released. When a resource is cached, subsequent loads using its path will return the cached reference. + Note: In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will remain in memory for a while before being removed. + + + + + If , the resource is duplicated for each instance of all scenes using it. At run-time, the resource can be modified in one scene without affecting other instances (see ). + Note: Changing this property at run-time has no effect on already created duplicate resources. + + + + + The unique path to this resource. If it has been saved to disk, the value will be its filepath. If the resource is exclusively contained within a scene, the value will be the 's filepath, followed by a unique identifier. + Note: Setting this property manually may fail if a resource with the same path has already been previously loaded. If necessary, use . + + + + + An optional name for this resource. When defined, its value is displayed to represent the resource in the Inspector dock. For built-in scripts, the name is displayed as part of the tab name in the script editor. + Note: Some resource formats do not support resource names. You can still set the name in the editor or via code, but it will be lost when the resource is reloaded. For example, only built-in scripts can have a resource name, while scripts stored in separate files cannot. + + + + + An unique identifier relative to the this resource's scene. If left empty, the ID is automatically generated when this resource is saved inside a . If the resource is not inside a scene, this property is empty by default. + Note: When the is saved, if multiple resources in the same scene use the same ID, only the earliest resource in the scene hierarchy keeps the original ID. The other resources are assigned new IDs from . + Note: Setting this property does not emit the signal. + Warning: When setting, the ID must only consist of letters, numbers, and underscores. Otherwise, it will fail and default to a randomly generated ID. + + + + + Override this method to return a custom when is called. + + + + + For resources that use a variable number of properties, either via or , this method should be implemented to correctly clear the resource's state. + + + + + Sets the resource's path to without involving the resource cache. + + + + + Override this method to customize the newly duplicated resource created from , if the original's is set to . + Example: Set a random damage value to every local resource from an instantiated scene: + + extends Resource + + var damage = 0 + + func _setup_local_to_scene(): + damage = randi_range(10, 40) + + + + + + Sets the to , potentially overriding an existing cache entry for this path. Further attempts to load an overridden resource by path will instead return this resource. + + + + + Sets the resource's path to without involving the resource cache. + + + + + Returns the of this resource (or an empty RID). Many resources (such as , , and so on) are high-level abstractions of resources stored in a specialized server (, , etc.), so this function will return the original . + + + + + If is set to and the resource has been loaded from a instantiation, returns the root of the scene where this resource is used. Otherwise, returns . + + + + + Calls . If is set to , this method is automatically called from by the newly duplicated resource within the scene instance. + + + + + For resources that use a variable number of properties, either via or , override to correctly clear the resource's state. + + + + + Sets the unique identifier to for the resource with the given in the resource cache. If the unique identifier is empty, the cache entry using is removed if it exists. + Note: This method is only implemented when running in an editor context. + + + + + Returns the unique identifier for the resource with the given from the resource cache. If the resource is not loaded and cached, an empty string is returned. + Note: This method is only implemented when running in an editor context. At runtime, it returns an empty string. + + + + + Returns if the resource is built-in (from the engine) or if it is user-defined. + + + + + Generates a unique identifier for a resource to be contained inside a , based on the current date, time, and a random value. The returned string is only composed of letters (a to y) and numbers (0 to 8). See also . + + + + + Emits the signal. This method is called automatically for some built-in resources. + Note: For custom resources, it's recommended to call this method whenever a meaningful change occurs, such as a modified property. This ensures that custom s depending on the resource are properly updated. + + var damage: + set(new_value): + if damage != new_value: + damage = new_value + emit_changed() + + + + + + Duplicates this resource, returning a new resource with its exported or properties copied from the original. + If is , a shallow copy is returned; nested resources within subresources are not duplicated and are shared with the original resource (with one exception; see below). If is , a deep copy is returned; nested subresources will be duplicated and are not shared (with two exceptions; see below). + is usually respected, with the following exceptions: + - Subresource properties with the flag are always duplicated. + - Subresource properties with the flag are never duplicated. + - Subresources inside and properties are never duplicated. + Note: For custom resources, this method will fail if has been defined with required parameters. + + + + + Emitted when the resource changes, usually when one of its properties is modified. See also . + Note: This signal is not emitted automatically for properties of custom resources. If necessary, a setter needs to be created to emit the signal. + + + + + Emitted by a newly duplicated resource with set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'resource_local_to_scene' property. + + + + + Cached name for the 'resource_path' property. + + + + + Cached name for the 'resource_name' property. + + + + + Cached name for the 'resource_scene_unique_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_rid' method. + + + + + Cached name for the '_reset_state' method. + + + + + Cached name for the '_set_path_cache' method. + + + + + Cached name for the '_setup_local_to_scene' method. + + + + + Cached name for the 'set_path' method. + + + + + Cached name for the 'take_over_path' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'set_path_cache' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_local_to_scene' method. + + + + + Cached name for the 'is_local_to_scene' method. + + + + + Cached name for the 'get_local_scene' method. + + + + + Cached name for the 'setup_local_to_scene' method. + + + + + Cached name for the 'reset_state' method. + + + + + Cached name for the 'set_id_for_path' method. + + + + + Cached name for the 'get_id_for_path' method. + + + + + Cached name for the 'is_built_in' method. + + + + + Cached name for the 'generate_scene_unique_id' method. + + + + + Cached name for the 'set_scene_unique_id' method. + + + + + Cached name for the 'get_scene_unique_id' method. + + + + + Cached name for the 'emit_changed' method. + + + + + Cached name for the 'duplicate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + Cached name for the 'setup_local_to_scene_requested' signal. + + + + + Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine. + Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with class_name for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a . + Note: You can also extend EditorImportPlugin if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends on if the format is suitable or not for the final exported game. For example, it's better to import .png textures as .ctex () first, so they can be loaded with better efficiency on the graphics card. + + + + + Neither the main resource (the one requested to be loaded) nor any of its subresources are retrieved from cache nor stored into it. Dependencies (external resources) are loaded with . + + + + + The main resource (the one requested to be loaded), its subresources, and its dependencies (external resources) are retrieved from cache if present, instead of loaded. Those not cached are loaded and then stored into the cache. The same rules are propagated recursively down the tree of dependencies (external resources). + + + + + Like , but the cache is checked for the main resource (the one requested to be loaded) as well as for each of its subresources. Those already in the cache, as long as the loaded and cached types match, have their data refreshed from storage into the already existing instances. Otherwise, they are recreated as completely new objects. + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + If implemented, gets the dependencies of a given resource. If is , paths should be appended ::TypeName, where TypeName is the class name of the dependency. + Note: Custom resource types defined by scripts aren't known by the , so you might just return "Resource" for them. + + + + + Gets the list of extensions for files this loader is able to read. + + + + + Returns the script class name associated with the under the given . If the resource has no script or the script isn't a named class, it should return "". + + + + + Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return "". + Note: Custom resource types defined by scripts aren't known by the , so you might just return "Resource" for them. + + + + + Should return the unique ID for the resource associated with the given path. If this method is not overridden, a .uid file is generated along with the resource file, containing the unique ID. + + + + + Tells which resource class this loader can load. + Note: Custom resource types defined by scripts aren't known by the , so you might just handle "Resource" for them. + + + + + Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, will target the source file. Returns a object on success, or an constant in case of failure. + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + + + + + 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 , and if the type is within the ones provided by . + + + + + If implemented, renames dependencies within the given resource and saves it. is a dictionary { String => String } mapping old dependency paths to new paths. + Returns on success, or an constant in case of failure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_exists' method. + + + + + Cached name for the '_get_classes_used' method. + + + + + Cached name for the '_get_dependencies' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_get_resource_script_class' method. + + + + + Cached name for the '_get_resource_type' method. + + + + + Cached name for the '_get_resource_uid' method. + + + + + Cached name for the '_handles_type' method. + + + + + Cached name for the '_load' method. + + + + + Cached name for the '_recognize_path' method. + + + + + Cached name for the '_rename_dependencies' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The engine can save resources when you do it from the editor, or when you use the singleton. This is accomplished thanks to multiple s, each handling its own format and called automatically by the engine. + By default, Godot saves resources as .tres (text-based), .res (binary) or another built-in format, but you can choose to create your own format by extending this class. Be sure to respect the documented return types and values. You should give it a global class name with class_name for it to be registered. Like built-in ResourceFormatSavers, it will be called automatically when saving resources of its recognized type(s). You may also implement a . + + + + + Returns the list of extensions available for saving the resource object, provided it is recognized (see ). + + + + + Returns whether the given resource object can be saved by this saver. + + + + + Returns if this saver handles a given save path and otherwise. + If this method is not implemented, the default behavior returns whether the path's extension is within the ones provided by . + + + + + Saves the given resource object to a file at the target . is a bitmask composed with constants. + Returns on success, or an constant in case of failure. + + + + + Sets a new UID for the resource at the given . Returns on success, or an constant in case of failure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_recognize' method. + + + + + Cached name for the '_recognize_path' method. + + + + + Cached name for the '_save' method. + + + + + Cached name for the '_set_uid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the base class for Godot's resource importers. To implement your own resource importers using editor plugins, see EditorImportPlugin. + + + + + The default import order. + + + + + The import order for scenes, which ensures scenes are imported after all other core resources such as textures. Custom importers should generally have an import order lower than 100 to avoid issues when importing scenes that rely on custom resources. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton used to load resource files from the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine. + Note: You have to import the files into the engine first to load them using . If you want to load s at run-time, you may use . If you want to import audio files, you can use the snippet described in . + Note: Non-resource files such as plain text files cannot be read using . Use for those files instead, and be aware that non-resource files are not exported by default (see notes in the class description for instructions on exporting them). + + + + + Loads the resource using threads. If is , multiple threads will be used to load the resource, which makes loading faster, but may affect the main thread (and thus cause game slowdowns). + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + + + + + Returns the status of a threaded loading operation started with for the resource at . See for possible return values. + An array variable can optionally be passed via , and will return a one-element array containing the ratio of completion of the threaded loading (between 0.0 and 1.0). + Note: The recommended way of using this method is to call it during different frames (e.g., in , instead of a loop). + + + + + Returns the resource loaded by . + If this is called before the loading thread is done (i.e. is not ), the calling thread will be blocked until the resource has finished loading. However, it's recommended to use to known when the load has actually completed. + + + + + Loads a resource at the given , caching the result for further access. + The registered s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + Returns an empty resource if no could handle the file, and prints an error if no file is found at the specified path. + GDScript has a simplified @GDScript.load built-in method which can be used in most situations, leaving the use of for more advanced scenarios. + Note: If ProjectSettings.editor/export/convert_text_resources_to_binary is , @GDScript.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 . + Note: Relative paths will be prefixed with "res://" before loading, to avoid unexpected results make sure your paths are absolute. + + + + + Returns the list of recognized extensions for a resource type. + + + + + Registers a new . The ResourceLoader will use the ResourceFormatLoader as described in . + This method is performed implicitly for ResourceFormatLoaders written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Changes the behavior on missing sub-resources. The default behavior is to abort loading. + + + + + Returns the dependencies for the resource at the given . + Note: The dependencies are returned with slices separated by ::. You can use String.get_slice to get their components. + + for dep in ResourceLoader.get_dependencies(path): + print(dep.get_slice("::", 0)) # Prints UID. + print(dep.get_slice("::", 2)) # Prints path. + + + + + + Returns whether a cached resource is available for the given . + Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the method will use the cached version. The cached resource can be overridden by using on a new resource for that same path. + + + + + Returns the cached resource reference for the given . + Note: If the resource is not cached, the returned will be invalid. + + + + + Returns whether a recognized resource exists for the given . + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + Note: If you use , this method will return for the taken path even if the resource wasn't saved (i.e. exists only in resource cache). + + + + + Returns the ID associated with a given resource path, or -1 when no such ID exists. + + + + + Lists a directory (as example: "res://assets/enemies"), returning all resources contained within. The resource files are the original file names as visible in the editor before exporting. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_threaded_request' method. + + + + + Cached name for the 'load_threaded_get_status' method. + + + + + Cached name for the 'load_threaded_get' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_recognized_extensions_for_type' method. + + + + + Cached name for the 'add_resource_format_loader' method. + + + + + Cached name for the 'remove_resource_format_loader' method. + + + + + Cached name for the 'set_abort_on_missing_resources' method. + + + + + Cached name for the 'get_dependencies' method. + + + + + Cached name for the 'has_cached' method. + + + + + Cached name for the 'get_cached_ref' method. + + + + + Cached name for the 'exists' method. + + + + + Cached name for the 'get_resource_uid' method. + + + + + Cached name for the 'list_directory' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader. You can add the resources using the ResourcePreloader tab when the node is selected. + GDScript has a simplified @GDScript.preload built-in method which can be used in most situations, leaving the use of for more advanced scenarios. + + + + + Adds a resource to the preloader with the given . If a resource with the given already exists, the new resource will be renamed to " N" where N is an incrementing number starting from 2. + + + + + Removes the resource associated to from the preloader. + + + + + Renames a resource inside the preloader from to . + + + + + Returns if the preloader contains a resource associated to . + + + + + Returns the resource associated to . + + + + + Returns the list of resources inside the preloader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'resources' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_resources' method. + + + + + Cached name for the '_get_resources' method. + + + + + Cached name for the 'add_resource' method. + + + + + Cached name for the 'remove_resource' method. + + + + + Cached name for the 'rename_resource' method. + + + + + Cached name for the 'has_resource' method. + + + + + Cached name for the 'get_resource' method. + + + + + Cached name for the 'get_resource_list' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton for saving resource types to the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g. .tres or .tscn) or binary files (e.g. .res or .scn). + + + + + No resource saving option. + + + + + Save the resource with a path relative to the scene which uses it. + + + + + Bundles external resources. + + + + + Changes the of the saved resource to match its new location. + + + + + Do not save editor-specific metadata (identified by their __editor prefix). + + + + + Save as big endian (see ). + + + + + Compress the resource on save using . Only available for binary resource types. + + + + + Take over the paths of the saved subresources (see ). + + + + + Saves a resource to disk to the given path, using a that recognizes the resource object. If is empty, will try to use . + The bitmask can be specified to customize the save behavior using flags. + Returns on success. + Note: When the project is running, any generated UID associated with the resource will not be saved as the required code is only executed in editor mode. + + + + + Returns the list of extensions available for saving a resource of a given type. + + + + + Registers a new . The ResourceSaver will use the ResourceFormatSaver as described in . + This method is performed implicitly for ResourceFormatSavers written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Returns the resource ID for the given path. If is , a new resource ID will be generated if one for the path is not found. If is and the path is not found, is returned. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'get_recognized_extensions' method. + + + + + Cached name for the 'add_resource_format_saver' method. + + + + + Cached name for the 'remove_resource_format_saver' method. + + + + + Cached name for the 'get_resource_id_for_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton for saving resource types to the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g. .tres or .tscn) or binary files (e.g. .res or .scn). + + + + + Saves a resource to disk to the given path, using a that recognizes the resource object. If is empty, will try to use . + The bitmask can be specified to customize the save behavior using flags. + Returns on success. + Note: When the project is running, any generated UID associated with the resource will not be saved as the required code is only executed in editor mode. + + + + + Returns the list of extensions available for saving a resource of a given type. + + + + + Registers a new . The ResourceSaver will use the ResourceFormatSaver as described in . + This method is performed implicitly for ResourceFormatSavers written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Returns the resource ID for the given path. If is , a new resource ID will be generated if one for the path is not found. If is and the path is not found, is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'get_recognized_extensions' method. + + + + + Cached name for the 'add_resource_format_saver' method. + + + + + Cached name for the 'remove_resource_format_saver' method. + + + + + Cached name for the 'get_resource_id_for_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files are renamed or moved. They can be accessed with uid://. + keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations. + + + + + The value to use for an invalid UID, for example if the resource could not be loaded. + Its text representation is uid://<invalid>. + + + + + Converts the given UID to a uid:// string value. + + + + + Extracts the UID value from the given uid:// string. + + + + + Generates a random resource UID which is guaranteed to be unique within the list of currently loaded UIDs. + In order for this UID to be registered, you must call or . + + + + + Returns whether the given UID value is known to the cache. + + + + + Adds a new UID value which is mapped to the given resource path. + Fails with an error if the UID already exists, so be sure to check beforehand, or use instead. + + + + + Updates the resource path of an existing UID. + Fails with an error if the UID does not exist, so be sure to check beforehand, or use instead. + + + + + Returns the path that the given UID value refers to. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Removes a loaded UID value from the cache. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'id_to_text' method. + + + + + Cached name for the 'text_to_id' method. + + + + + Cached name for the 'create_id' method. + + + + + Cached name for the 'has_id' method. + + + + + Cached name for the 'add_id' method. + + + + + Cached name for the 'set_id' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached name for the 'remove_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files are renamed or moved. They can be accessed with uid://. + keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations. + + + + + Converts the given UID to a uid:// string value. + + + + + Extracts the UID value from the given uid:// string. + + + + + Generates a random resource UID which is guaranteed to be unique within the list of currently loaded UIDs. + In order for this UID to be registered, you must call or . + + + + + Returns whether the given UID value is known to the cache. + + + + + Adds a new UID value which is mapped to the given resource path. + Fails with an error if the UID already exists, so be sure to check beforehand, or use instead. + + + + + Updates the resource path of an existing UID. + Fails with an error if the UID does not exist, so be sure to check beforehand, or use instead. + + + + + Returns the path that the given UID value refers to. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Removes a loaded UID value from the cache. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'id_to_text' method. + + + + + Cached name for the 'text_to_id' method. + + + + + Cached name for the 'create_id' method. + + + + + Cached name for the 'has_id' method. + + + + + Cached name for the 'add_id' method. + + + + + Cached name for the 'set_id' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached name for the 'remove_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Retrieves the pose (or global pose) relative to the parent Skeleton's rest in model space and transfers it to the child Skeleton. + This modifier rewrites the pose of the child skeleton directly in the parent skeleton's update process. This means that it overwrites the mapped bone pose set in the normal process on the target skeleton. If you want to set the target skeleton bone pose after retargeting, you will need to add a child to the target skeleton and thereby modify the pose. + Note: When the is enabled, even if it is an unmapped bone, it can cause visual problems because the global pose is applied ignoring the parent bone's pose if it has mapped bone children. See also . + + + + + for retargeting bones with names matching the bone list. + + + + + If , in case the target skeleton has fewer bones than the source skeleton, the source bone parent's transform will be ignored. + Instead, it is possible to retarget between models with different body shapes, and position, rotation, and scale can be retargeted separately. + If , retargeting is performed taking into account global pose. + In case the target skeleton has fewer bones than the source skeleton, the source bone parent's transform is taken into account. However, bone length between skeletons must match exactly, if not, the bones will be forced to expand or shrink. + This is useful for using dummy bone with length 0 to match postures when retargeting between models with different number of bones. + + + + + If , allows to retarget the position. + + + + + If , allows to retarget the rotation. + + + + + If , allows to retarget the scale. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'profile' property. + + + + + Cached name for the 'use_global_pose' property. + + + + + Cached name for the 'position_enabled' property. + + + + + Cached name for the 'rotation_enabled' property. + + + + + Cached name for the 'scale_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_profile' method. + + + + + Cached name for the 'get_profile' method. + + + + + Cached name for the 'set_use_global_pose' method. + + + + + Cached name for the 'is_using_global_pose' method. + + + + + Cached name for the 'set_position_enabled' method. + + + + + Cached name for the 'is_position_enabled' method. + + + + + Cached name for the 'set_rotation_enabled' method. + + + + + Cached name for the 'is_rotation_enabled' method. + + + + + Cached name for the 'set_scale_enabled' method. + + + + + Cached name for the 'is_scale_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and number of . A 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. + + + + + Gives the mesh a single flat face. + + + + + Gives the mesh two perpendicular flat faces, making a cross shape. + + + + + Determines the shape of the ribbon. + + + + + The baseline size of the ribbon. The size of a particular section segment is obtained by multiplying this size by the value of the at the given distance. + + + + + The total number of sections on the ribbon. + + + + + The length of a section of the ribbon. + + + + + The number of segments in a section. The is sampled on each segment to determine its size. Higher values result in a more detailed ribbon at the cost of performance. + + + + + Determines the size of the ribbon along its length. The size of a particular section segment is obtained by multiplying the baseline by the value of this curve at the given distance. For values smaller than 0, the faces will be inverted. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'sections' property. + + + + + Cached name for the 'section_length' property. + + + + + Cached name for the 'section_segments' property. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_sections' method. + + + + + Cached name for the 'get_sections' method. + + + + + Cached name for the 'set_section_length' method. + + + + + Cached name for the 'get_section_length' method. + + + + + Cached name for the 'set_section_segments' method. + + + + + Cached name for the 'get_section_segments' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A custom effect for a , which can be loaded in the inspector or using . + Note: For a to be usable, a BBCode tag must be defined as a member variable called bbcode in the script. + + // The RichTextEffect will be usable like this: `[example]Some text[/example]` + string bbcode = "example"; + + Note: As soon as a contains at least one , it will continuously process the effect unless the project is paused. This may impact battery life negatively. + + + + + Override this method to modify properties in . The method must return if the character could be transformed successfully. If the method returns , it will skip transformation to avoid displaying broken text. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_custom_fx' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , and . By changing various properties of the object, such as , 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 . + Note: Changing the 2D transform or of a very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer as it allows you to directly access the physics state. + + + + + 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. + + + + + Kinematic body freeze mode. Similar to , but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated. + + + + + 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. + + + + + In this mode, the body's center of mass is set through . Defaults to the body's origin position. + + + + + In this mode, the body's damping value is added to any value set in areas or the default value. + + + + + In this mode, the body's damping value replaces any value set in areas or the default value. + + + + + Continuous collision detection disabled. This is the fastest way to detect body collisions, but can miss small, fast-moving objects. + + + + + Continuous collision detection enabled using raycasting. This is faster than shapecasting but less precise. + + + + + Continuous collision detection enabled using shapecasting. This is the slowest CCD method and the most precise. + + + + + The body's mass. + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + Multiplies the gravity applied to the body. The body's gravity is calculated from the ProjectSettings.physics/2d/default_gravity project setting and/or any additional gravity vector applied by s. + + + + + Defines the way the body's center of mass is set. See for possible values. + + + + + The body's custom center of mass, relative to the body's origin position, when is set to . This is the balanced point of the body, where applied forces only cause linear acceleration. Applying forces outside of the center of mass causes angular acceleration. + When is set to (default value), the center of mass is automatically computed. + + + + + The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this property allows you to set a custom value. + If set to 0, inertia is automatically computed (default value). + Note: This value does not change when inertia is automatically computed. Use to get the computed inertia. + + private RigidBody2D _ball; + + public override void _Ready() + { + _ball = GetNode<RigidBody2D>("Ball"); + } + + private float GetBallInertia() + { + return 1.0f / PhysicsServer2D.BodyGetDirectState(_ball.GetRid()).InverseInertia; + } + + + + + + If , the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the or methods. + + + + + If , the body can enter sleep mode when there is no movement. See . + + + + + If , the body cannot rotate. Gravity and forces only apply linear movement. + + + + + If , the body is frozen. Gravity and forces are not applied anymore. + See to set the body's behavior when frozen. + For a body that is always frozen, use or instead. + + + + + The body's freeze mode. Can be used to set the body's behavior when is enabled. See for possible values. + For a body that is always frozen, use or instead. + + + + + If , the standard force integration (like gravity or damping) will be disabled for this body. Other than collision response, the body will only move as determined by the method, if that virtual method is overridden. + Setting this property will call the method internally. + + + + + Continuous collision detection mode. + Continuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See for details. + + + + + If , the RigidBody2D will emit signals when it collides with another body. + Note: By default the maximum contacts reported is set to 0, meaning nothing will be recorded, see . + + + + + The maximum number of contacts that will be recorded. Requires a value greater than 0 and to be set to to start to register contacts. Use to retrieve the count or to retrieve bodies that have been collided with. + Note: The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner). + + + + + The body's linear velocity in pixels per second. Can be used sporadically, but don't set this every frame, because physics may run in another thread and runs at a different granularity. Use as your process loop for precise control of the body state. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's movement. By default, the body will use the ProjectSettings.physics/2d/default_linear_damp setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/2d/default_linear_damp for more details about damping. + + + + + The body's rotational velocity in radians per second. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's rotation. By default, the body will use the ProjectSettings.physics/2d/default_angular_damp setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/2d/default_angular_damp for more details about damping. + + + + + The body's total constant positional forces applied during each physics update. + See and . + + + + + The body's total constant rotational forces applied during each physics update. + See . + + + + + Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it is called before the standard force integration, but the property allows you to disable the standard force integration and do fully custom force integration for a body. + + + + + Returns the number of contacts this body has with other bodies. By default, this returns 0 unless bodies are configured to monitor contacts (see ). + Note: To retrieve the colliding bodies, use . + + + + + Sets the body's velocity on the given axis. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = 0. + + + + + Returns a list of the bodies colliding with this one. Requires to be set to and to be set high enough to detect all the collisions. + Note: The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of this RigidBody2D's s collides with another or 's s. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody2D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision between one of this RigidBody2D's s and another or 's s ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody2D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a collision with another or occurs. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision with another or ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Emitted when the physics engine changes the body's sleeping state. + Note: Changing the value will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or emit_signal("sleeping_state_changed") is used. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'gravity_scale' property. + + + + + Cached name for the 'center_of_mass_mode' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'inertia' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'can_sleep' property. + + + + + Cached name for the 'lock_rotation' property. + + + + + Cached name for the 'freeze' property. + + + + + Cached name for the 'freeze_mode' property. + + + + + Cached name for the 'custom_integrator' property. + + + + + Cached name for the 'continuous_cd' property. + + + + + Cached name for the 'contact_monitor' property. + + + + + Cached name for the 'max_contacts_reported' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'linear_damp_mode' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'angular_damp_mode' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'constant_force' property. + + + + + Cached name for the 'constant_torque' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'get_inertia' method. + + + + + Cached name for the 'set_inertia' method. + + + + + Cached name for the 'set_center_of_mass_mode' method. + + + + + Cached name for the 'get_center_of_mass_mode' method. + + + + + Cached name for the 'set_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached name for the 'set_gravity_scale' method. + + + + + Cached name for the 'get_gravity_scale' method. + + + + + Cached name for the 'set_linear_damp_mode' method. + + + + + Cached name for the 'get_linear_damp_mode' method. + + + + + Cached name for the 'set_angular_damp_mode' method. + + + + + Cached name for the 'get_angular_damp_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_max_contacts_reported' method. + + + + + Cached name for the 'get_max_contacts_reported' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'set_use_custom_integrator' method. + + + + + Cached name for the 'is_using_custom_integrator' method. + + + + + Cached name for the 'set_contact_monitor' method. + + + + + Cached name for the 'is_contact_monitor_enabled' method. + + + + + Cached name for the 'set_continuous_collision_detection_mode' method. + + + + + Cached name for the 'get_continuous_collision_detection_mode' method. + + + + + Cached name for the 'set_axis_velocity' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleeping' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'set_can_sleep' method. + + + + + Cached name for the 'is_able_to_sleep' method. + + + + + Cached name for the 'set_lock_rotation_enabled' method. + + + + + Cached name for the 'is_lock_rotation_enabled' method. + + + + + Cached name for the 'set_freeze_enabled' method. + + + + + Cached name for the 'is_freeze_enabled' method. + + + + + Cached name for the 'set_freeze_mode' method. + + + + + Cached name for the 'get_freeze_mode' method. + + + + + Cached name for the 'get_colliding_bodies' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'sleeping_state_changed' signal. + + + + + 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 , , and . By changing various properties of the object, such as , 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 . + Note: Changing the 3D transform or of a very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer as it allows you to directly access the physics state. + + + + + 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. + + + + + Kinematic body freeze mode. Similar to , but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated. + + + + + 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. + + + + + In this mode, the body's center of mass is set through . Defaults to the body's origin position. + + + + + In this mode, the body's damping value is added to any value set in areas or the default value. + + + + + In this mode, the body's damping value replaces any value set in areas or the default value. + + + + + The body's mass. + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + This is multiplied by ProjectSettings.physics/3d/default_gravity to produce this body's gravity. For example, a value of 1.0 will apply normal gravity, 2.0 will apply double the gravity, and 0.5 will apply half the gravity to this body. + + + + + Defines the way the body's center of mass is set. See for possible values. + + + + + The body's custom center of mass, relative to the body's origin position, when is set to . This is the balanced point of the body, where applied forces only cause linear acceleration. Applying forces outside of the center of mass causes angular acceleration. + When is set to (default value), the center of mass is automatically computed. + + + + + The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body on each axis. The moment of inertia is usually computed automatically from the mass and the shapes, but this property allows you to set a custom value. + If set to Vector3.ZERO, inertia is automatically computed (default value). + Note: This value does not change when inertia is automatically computed. Use to get the computed inertia. + + private RigidBody3D _ball; + + public override void _Ready() + { + _ball = GetNode<RigidBody3D>("Ball"); + } + + private Vector3 GetBallInertia() + { + return PhysicsServer3D.BodyGetDirectState(_ball.GetRid()).InverseInertia.Inverse(); + } + + + + + + If , the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the or methods. + + + + + If , the body can enter sleep mode when there is no movement. See . + + + + + If , the body cannot rotate. Gravity and forces only apply linear movement. + + + + + If , the body is frozen. Gravity and forces are not applied anymore. + See to set the body's behavior when frozen. + For a body that is always frozen, use or instead. + + + + + The body's freeze mode. Can be used to set the body's behavior when is enabled. See for possible values. + For a body that is always frozen, use or instead. + + + + + If , the standard force integration (like gravity or damping) will be disabled for this body. Other than collision response, the body will only move as determined by the method, if that virtual method is overridden. + Setting this property will call the method internally. + + + + + If , continuous collision detection is used. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects. + + + + + If , the RigidBody3D will emit signals when it collides with another body. + Note: By default the maximum contacts reported is set to 0, meaning nothing will be recorded, see . + + + + + The maximum number of contacts that will be recorded. Requires a value greater than 0 and to be set to to start to register contacts. Use to retrieve the count or to retrieve bodies that have been collided with. + Note: The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner). + + + + + The body's linear velocity in units per second. Can be used sporadically, but don't set this every frame, because physics may run in another thread and runs at a different granularity. Use as your process loop for precise control of the body state. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's movement. By default, the body will use the ProjectSettings.physics/3d/default_linear_damp project setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/3d/default_linear_damp for more details about damping. + + + + + The RigidBody3D's rotational velocity in radians per second. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's rotation. By default, the body will use the ProjectSettings.physics/3d/default_angular_damp project setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/3d/default_angular_damp for more details about damping. + + + + + The body's total constant positional forces applied during each physics update. + See and . + + + + + The body's total constant rotational forces applied during each physics update. + See . + + + + + Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it is called before the standard force integration, but the property allows you to disable the standard force integration and do fully custom force integration for a body. + + + + + Returns the inverse inertia tensor basis. This is used to calculate the angular acceleration resulting from a torque applied to the . + + + + + Returns the number of contacts this body has with other bodies. By default, this returns 0 unless bodies are configured to monitor contacts (see ). + Note: To retrieve the colliding bodies, use . + + + + + Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = Vector3(0, 0, 0). + + + + + Returns a list of the bodies colliding with this one. Requires to be set to and to be set high enough to detect all the collisions. + Note: The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of this RigidBody3D's s collides with another or 's s. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody3D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision between one of this RigidBody3D's s and another or 's s ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . s are detected if the Meshes have s. + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody3D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a collision with another or occurs. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision with another or ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Emitted when the physics engine changes the body's sleeping state. + Note: Changing the value will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or emit_signal("sleeping_state_changed") is used. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'gravity_scale' property. + + + + + Cached name for the 'center_of_mass_mode' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'inertia' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'can_sleep' property. + + + + + Cached name for the 'lock_rotation' property. + + + + + Cached name for the 'freeze' property. + + + + + Cached name for the 'freeze_mode' property. + + + + + Cached name for the 'custom_integrator' property. + + + + + Cached name for the 'continuous_cd' property. + + + + + Cached name for the 'contact_monitor' property. + + + + + Cached name for the 'max_contacts_reported' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'linear_damp_mode' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'angular_damp_mode' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'constant_force' property. + + + + + Cached name for the 'constant_torque' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_inertia' method. + + + + + Cached name for the 'get_inertia' method. + + + + + Cached name for the 'set_center_of_mass_mode' method. + + + + + Cached name for the 'get_center_of_mass_mode' method. + + + + + Cached name for the 'set_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'get_inverse_inertia_tensor' method. + + + + + Cached name for the 'set_gravity_scale' method. + + + + + Cached name for the 'get_gravity_scale' method. + + + + + Cached name for the 'set_linear_damp_mode' method. + + + + + Cached name for the 'get_linear_damp_mode' method. + + + + + Cached name for the 'set_angular_damp_mode' method. + + + + + Cached name for the 'get_angular_damp_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_max_contacts_reported' method. + + + + + Cached name for the 'get_max_contacts_reported' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'set_use_custom_integrator' method. + + + + + Cached name for the 'is_using_custom_integrator' method. + + + + + Cached name for the 'set_contact_monitor' method. + + + + + Cached name for the 'is_contact_monitor_enabled' method. + + + + + Cached name for the 'set_use_continuous_collision_detection' method. + + + + + Cached name for the 'is_using_continuous_collision_detection' method. + + + + + Cached name for the 'set_axis_velocity' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleeping' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'set_can_sleep' method. + + + + + Cached name for the 'is_able_to_sleep' method. + + + + + Cached name for the 'set_lock_rotation_enabled' method. + + + + + Cached name for the 'is_lock_rotation_enabled' method. + + + + + Cached name for the 'set_freeze_enabled' method. + + + + + Cached name for the 'is_freeze_enabled' method. + + + + + Cached name for the 'set_freeze_mode' method. + + + + + Cached name for the 'get_freeze_mode' method. + + + + + Cached name for the 'get_colliding_bodies' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'sleeping_state_changed' signal. + + + + + Root motion refers to an animation technique where a mesh's skeleton is used to give impulse to a character. When working with 3D animations, a popular technique is for animators to use the root skeleton bone to give motion to the rest of the skeleton. This allows animating characters in a way where steps actually match the floor below. It also allows precise interaction with objects during cinematics. See also . + Note: is only visible in the editor. It will be hidden automatically in the running project. + + + + + Path to an node to use as a basis for root motion. + + + + + The grid's color. + + + + + The grid's cell size in 3D units. + + + + + The grid's radius in 3D units. The grid's opacity will fade gradually as the distance from the origin increases until this is reached. + + + + + If , the grid's points will all be on the same Y coordinate (local Y = 0). If , the points' original Y coordinate is preserved. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'animation_path' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'zero_y' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_animation_path' method. + + + + + Cached name for the 'get_animation_path' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_zero_y' method. + + + + + Cached name for the 'get_zero_y' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is the default implementation of , used to provide multiplayer functionalities in Godot Engine. + This implementation supports RPCs via and and requires to be passed a (it will fail for other object types). + This implementation additionally provide replication via the and nodes, and the resource. + Note: The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The root path to use for RPCs and replication. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed. + This effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene. + + + + + The callback to execute when receiving authentication data sent via . If the is empty (default), peers will be automatically accepted as soon as they connect. + + + + + If set to a value greater than 0.0, the maximum duration in seconds peers can stay in the authenticating state, after which the authentication will automatically fail. See the and signals. + + + + + If , the MultiplayerAPI will allow encoding and decoding of object during RPCs. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threat such as remote code execution. + + + + + If , the MultiplayerAPI's refuses new incoming connections. + + + + + Enable or disable the server feature that notifies clients of other peers' connection/disconnection, and relays messages between them. When this option is , clients won't be automatically notified of other peers and won't be able to send them packets through the server. + Note: Changing this option while other peers are connected may lead to unexpected behaviors. + Note: Support for this feature may depend on the current configuration. See . + + + + + Maximum size of each synchronization packet. Higher values increase the chance of receiving full updates in a single frame, but also the chance of packet loss. See . + + + + + Maximum size of each delta packet. Higher values increase the chance of receiving full updates in a single frame, but also the chance of causing networking congestion (higher latency, disconnections). See . + + + + + Clears the current SceneMultiplayer network state (you shouldn't call this unless you know what you are doing). + + + + + Disconnects the peer identified by , removing it from the list of connected peers, and closing the underlying connection with it. + + + + + Returns the IDs of the peers currently trying to authenticate with this . + + + + + Sends the specified to the remote peer identified by as part of an authentication message. This can be used to authenticate peers, and control when is emitted (and the remote peer accepted as one of the connected peers). + + + + + Sends the specified to the remote peer identified by as part of an authentication message. This can be used to authenticate peers, and control when is emitted (and the remote peer accepted as one of the connected peers). + + + + + Mark the authentication step as completed for the remote peer identified by . The signal will be emitted for this peer once the remote side also completes the authentication. No further authentication messages are expected to be received from this peer. + If a peer disconnects before completing authentication, either due to a network issue, the expiring, or manually calling , the signal will be emitted instead of . + + + + + Sends the given raw to a specific peer identified by (see ). Default ID is 0, i.e. broadcast to all peers. + + + + + Sends the given raw to a specific peer identified by (see ). Default ID is 0, i.e. broadcast to all peers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's connects to a new peer and a valid is set. In this case, the will not be emitted until is called with given peer id. While in this state, the peer will not be included in the list returned by (but in the one returned by ), and only authentication data will be sent or received. See for sending authentication data. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's disconnects from a peer for which authentication had not yet completed. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's receives a packet with custom data (see ). ID is the peer ID of the peer that sent the packet. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_path' property. + + + + + Cached name for the 'auth_callback' property. + + + + + Cached name for the 'auth_timeout' property. + + + + + Cached name for the 'allow_object_decoding' property. + + + + + Cached name for the 'refuse_new_connections' property. + + + + + Cached name for the 'server_relay' property. + + + + + Cached name for the 'max_sync_packet_size' property. + + + + + Cached name for the 'max_delta_packet_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_path' method. + + + + + Cached name for the 'get_root_path' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'disconnect_peer' method. + + + + + Cached name for the 'get_authenticating_peers' method. + + + + + Cached name for the 'send_auth' method. + + + + + Cached name for the 'complete_auth' method. + + + + + Cached name for the 'set_auth_callback' method. + + + + + Cached name for the 'get_auth_callback' method. + + + + + Cached name for the 'set_auth_timeout' method. + + + + + Cached name for the 'get_auth_timeout' method. + + + + + Cached name for the 'set_refuse_new_connections' method. + + + + + Cached name for the 'is_refusing_new_connections' method. + + + + + Cached name for the 'set_allow_object_decoding' method. + + + + + Cached name for the 'is_object_decoding_allowed' method. + + + + + Cached name for the 'set_server_relay_enabled' method. + + + + + Cached name for the 'is_server_relay_enabled' method. + + + + + Cached name for the 'send_bytes' method. + + + + + Cached name for the 'get_max_sync_packet_size' method. + + + + + Cached name for the 'set_max_sync_packet_size' method. + + + + + Cached name for the 'get_max_delta_packet_size' method. + + + + + Cached name for the 'set_max_delta_packet_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'peer_authenticating' signal. + + + + + Cached name for the 'peer_authentication_failed' signal. + + + + + Cached name for the 'peer_packet' signal. + + + + + Do not keep the given property synchronized. + + + + + Replicate the given property on process by constantly sending updates using unreliable transfer mode. + + + + + Replicate the given property on process by sending updates using reliable transfer mode when its value changes. + + + + + Returns a list of synchronized property s. + + + + + Adds the property identified by the given to the list of the properties being synchronized, optionally passing an . + Note: For details on restrictions and limitations on property synchronization, see . + + + + + Returns if the given is configured for synchronization. + + + + + Removes the property identified by the given from the configuration. + + + + + Finds the index of the given . + + + + + Returns if the property identified by the given is configured to be synchronized on spawn. + + + + + Sets whether the property identified by the given is configured to be synchronized on spawn. + + + + + Returns the replication mode for the property identified by the given . See . + + + + + Sets the synchronization mode for the property identified by the given . See . + + + + + Returns if the property identified by the given is configured to be synchronized on process. + + + + + Sets whether the property identified by the given is configured to be synchronized on process. + + + + + Returns if the property identified by the given is configured to be reliably synchronized when changes are detected on process. + + + + + Sets whether the property identified by the given is configured to be reliably synchronized when changes are detected on process. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_properties' method. + + + + + Cached name for the 'add_property' method. + + + + + Cached name for the 'has_property' method. + + + + + Cached name for the 'remove_property' method. + + + + + Cached name for the 'property_get_index' method. + + + + + Cached name for the 'property_get_spawn' method. + + + + + Cached name for the 'property_set_spawn' method. + + + + + Cached name for the 'property_get_replication_mode' method. + + + + + Cached name for the 'property_set_replication_mode' method. + + + + + Cached name for the 'property_get_sync' method. + + + + + Cached name for the 'property_set_sync' method. + + + + + Cached name for the 'property_get_watch' method. + + + + + Cached name for the 'property_set_watch' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Maintains a list of resources, nodes, exported and overridden properties, and built-in scripts associated with a scene. They cannot be modified from a , only accessed. Useful for peeking into what a contains without instantiating it. + This class cannot be instantiated directly, it is retrieved for a given scene as the result of . + + + + + If passed to , blocks edits to the scene state. + + + + + If passed to , provides inherited scene resources to the local scene. + Note: Only available in editor builds. + + + + + If passed to , provides local scene resources to the local scene. Only the main scene should receive the main edit state. + Note: Only available in editor builds. + + + + + If passed to , it's similar to , but for the case where the scene is being instantiated to be the base of another one. + Note: Only available in editor builds. + + + + + Returns the number of nodes in the scene. + The idx argument used to query node data in other get_node_* methods in the interval [0, get_node_count() - 1]. + + + + + Returns the type of the node at . + + + + + Returns the name of the node at . + + + + + Returns the path to the node at . + If is , returns the path of the node's parent instead. + + + + + Returns the path to the owner of the node at , relative to the root node. + + + + + Returns if the node at is an . + + + + + Returns the path to the represented scene file if the node at is an . + + + + + Returns a for the node at (i.e. the whole branch starting at this node, with its child nodes and resources), or if the node is not an instance. + + + + + Returns the list of group names associated with the node at . + + + + + Returns the node's index, which is its position relative to its siblings. This is only relevant and saved in scenes for cases where new nodes are added to an instantiated or inherited scene among siblings from the base scene. Despite the name, this index is not related to the argument used here and in other methods. + + + + + Returns the number of exported or overridden properties for the node at . + The prop_idx argument used to query node property data in other get_node_property_* methods in the interval [0, get_node_property_count() - 1]. + + + + + Returns the name of the property at for the node at . + + + + + Returns the value of the property at for the node at . + + + + + Returns the number of signal connections in the scene. + The idx argument used to query connection metadata in other get_connection_* methods in the interval [0, get_connection_count() - 1]. + + + + + Returns the path to the node that owns the signal at , relative to the root node. + + + + + Returns the name of the signal at . + + + + + Returns the path to the node that owns the method connected to the signal at , relative to the root node. + + + + + Returns the method connected to the signal at . + + + + + Returns the connection flags for the signal at . See constants. + + + + + Returns the list of bound parameters for the signal at . + + + + + Returns the number of unbound parameters for the signal at . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_node_count' method. + + + + + Cached name for the 'get_node_type' method. + + + + + Cached name for the 'get_node_name' method. + + + + + Cached name for the 'get_node_path' method. + + + + + Cached name for the 'get_node_owner_path' method. + + + + + Cached name for the 'is_node_instance_placeholder' method. + + + + + Cached name for the 'get_node_instance_placeholder' method. + + + + + Cached name for the 'get_node_instance' method. + + + + + Cached name for the 'get_node_groups' method. + + + + + Cached name for the 'get_node_index' method. + + + + + Cached name for the 'get_node_property_count' method. + + + + + Cached name for the 'get_node_property_name' method. + + + + + Cached name for the 'get_node_property_value' method. + + + + + Cached name for the 'get_connection_count' method. + + + + + Cached name for the 'get_connection_source' method. + + + + + Cached name for the 'get_connection_signal' method. + + + + + Cached name for the 'get_connection_target' method. + + + + + Cached name for the 'get_connection_method' method. + + + + + Cached name for the 'get_connection_flags' method. + + + + + Cached name for the 'get_connection_binds' method. + + + + + Cached name for the 'get_connection_unbinds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + As one of the most important classes, the manages the hierarchy of nodes in a scene, as well as scenes themselves. Nodes can be added, fetched 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 to organize your nodes into groups: every node can be added to 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 nodes belonging to any given group. + is the default implementation used by the engine, and is thus in charge of the game loop. + + + + + Call nodes within a group with no special behavior (default). + + + + + Call nodes within a group in reverse tree hierarchy order (all nested children are called before their respective parent nodes). + + + + + Call nodes within a group at the end of the current frame (can be either process or physics frame), similar to . + + + + + Call nodes within a group only once, even if the call is executed many times in the same frame. Must be combined with to work. + Note: Different arguments are not taken into account. Therefore, when the same call is executed with different arguments, only the first call will be performed. + + + + + If , the application automatically accepts quitting requests. + For mobile platforms, see . + + + + + If , the application quits automatically when navigating back (e.g. using the system "Back" button on Android). + To handle 'Go Back' button when this option is disabled, use . + + + + + If , collision shapes will be visible when running the game from the editor for debugging purposes. + Note: This property is not designed to be changed at run-time. Changing the value of while the project is running will not have the desired effect. + + + + + If , curves from and nodes will be visible when running the game from the editor for debugging purposes. + Note: This property is not designed to be changed at run-time. Changing the value of while the project is running will not have the desired effect. + + + + + If , navigation polygons will be visible when running the game from the editor for debugging purposes. + Note: This property is not designed to be changed at run-time. Changing the value of while the project is running will not have the desired effect. + + + + + If , the scene tree is considered paused. This causes the following behavior: + - 2D and 3D physics will be stopped, as well as collision detection and related signals. + - Depending on each node's , their , and callback methods may not called anymore. + + + + + The root of the scene currently being edited in the editor. This is usually a direct child of . + Note: This property does nothing in release builds. + + + + + The root node of the currently loaded main scene, usually as a direct child of . See also , , and . + Warning: Setting this property directly may not work as expected, as it does not add or remove any nodes from this tree. + + + + + The tree's root . This is top-most of the scene tree, and is always present. An absolute always starts from this node. Children of the root node may include the loaded , as well as any AutoLoad configured in the Project Settings. + Warning: Do not delete this node. This will result in unstable behavior, followed by a crash. + + + + + If (default value), enables automatic polling of the for this SceneTree during . + If , you need to manually call to process network packets and deliver RPCs. This allows running RPCs in a different loop (e.g. physics, thread, specific time step) and for manual protection when accessing the from threads. + + + + + If , the renderer will interpolate the transforms of physics objects between the last two transforms, so that smooth motion is seen even when physics ticks do not coincide with rendered frames. + The default value of this property is controlled by ProjectSettings.physics/common/physics_interpolation. + + + + + Returns if a node added to the given group exists in the tree. + + + + + Returns a new . After in seconds have passed, the timer will emit and will be automatically freed. + If is , the timer will be paused when setting to . + If is , the timer will update at the end of the physics frame, instead of the process frame. + If is , the timer will ignore and update with the real, elapsed time. + This method is commonly used to create a one-shot delay timer, as in the following example: + + public async Task SomeFunction() + { + GD.Print("start"); + await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName.Timeout); + GD.Print("end"); + } + + Note: The timer is always updated after all of the nodes in the tree. A node's method would be called before the timer updates (or if is set to ). + + + + + Creates and returns a new processed in this tree. The Tween will start automatically on the next process frame or physics frame (depending on its ). + Note: A created using this method is not bound to any . It may keep working until there is nothing left to animate. If you want the to be automatically killed when the is freed, use or . + + + + + Returns an of currently existing s in the tree, including paused tweens. + + + + + Returns the number of nodes inside this tree. + + + + + Returns how many frames have been processed, since the application started. This is not a measurement of elapsed time. + + + + + Quits the application at the end of the current iteration, with the given . + By convention, an exit code of 0 indicates success, whereas any other exit code indicates an error. For portability reasons, it should be between 0 and 125 (inclusive). + Note: On iOS this method doesn't work. Instead, as recommended by the iOS Human Interface Guidelines, the user is expected to close apps via the Home button. + + + + + Queues the given to be deleted, calling its at the end of the current frame. This method is similar to . + + + + + Calls the given on each node inside this tree added to the given . Use to customize this method's behavior (see ). Additional arguments for can be passed at the end of this method. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. + + # Calls "hide" to all nodes of the "enemies" group, at the end of the frame and in reverse tree order. + get_tree().call_group_flags( + SceneTree.GROUP_CALL_DEFERRED | SceneTree.GROUP_CALL_REVERSE, + "enemies", "hide") + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls the given on each node inside this tree added to the given . Use to customize this method's behavior (see ). Additional arguments for can be passed at the end of this method. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. + + # Calls "hide" to all nodes of the "enemies" group, at the end of the frame and in reverse tree order. + get_tree().call_group_flags( + SceneTree.GROUP_CALL_DEFERRED | SceneTree.GROUP_CALL_REVERSE, + "enemies", "hide") + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls with the given to all nodes inside this tree added to the . Use to customize this method's behavior (see ). + + + + + Sets the given to on all nodes inside this tree added to the given . Nodes that do not have the are ignored. Use to customize this method's behavior (see ). + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Calls on each node inside this tree added to the given . You can pass arguments to by specifying them at the end of this method call. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. See also and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls on each node inside this tree added to the given . You can pass arguments to by specifying them at the end of this method call. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. See also and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls with the given to all nodes inside this tree added to the . See also Godot notifications and and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + + + + + Sets the given to on all nodes inside this tree added to the given . Nodes that do not have the are ignored. See also and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Returns an containing all nodes inside this tree, that have been added to the given , in scene hierarchy order. + + + + + Returns the first found inside the tree, that has been added to the given , in scene hierarchy order. Returns if no match is found. See also . + + + + + Returns the number of nodes assigned to the given group. + + + + + Changes the running scene to the one at the given , after loading it into a and creating a new instance. + Returns on success, if the cannot be loaded into a , or if that scene cannot be instantiated. + Note: See for details on the order of operations. + + + + + Changes the running scene to a new instance of the given (which must be valid). + Returns on success, if the scene cannot be instantiated, or if the scene is invalid. + Note: Operations happen in the following order when is called: + 1. The current scene node is immediately removed from the tree. From that point, called on the current (outgoing) scene will return . will be , too, because the new scene is not available yet. + 2. At the end of the frame, the formerly current scene, already removed from the tree, will be deleted (freed from memory) and then the new scene will be instantiated and added to the tree. and will be back to working as usual. + This ensures that both scenes aren't running at the same time, while still freeing the previous scene in a safe way similar to . + + + + + Reloads the currently active scene, replacing with a new instance of its original . + Returns on success, if no is defined, if cannot be loaded into a , or if the scene cannot be instantiated. + + + + + If a current scene is loaded, calling this method will unload it. + + + + + Sets a custom with the given (controlling also the relative subpaths), or override the default one if is empty. + Note: No must be configured for the subpath containing , nested custom multiplayers are not allowed. I.e. if one is configured for "/root/Foo" setting one for "/root/Foo/Bar" will cause an error. + + + + + Searches for the configured for the given path, if one does not exist it searches the parent paths until one is found. If the path is empty, or none is found, the default one is returned. See . + + + + + Emitted any time the tree's hierarchy changes (nodes being moved, renamed, etc.). + + + + + Emitted when the of any node inside the tree is changed. Only emitted in the editor, to update the visibility of disabled nodes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node enters this tree. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node exits this tree. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node's is changed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node's is called. Only emitted in the editor. + + + + + Emitted immediately before is called on every node in this tree. + + + + + Emitted immediately before is called on every node in this tree. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'auto_accept_quit' property. + + + + + Cached name for the 'quit_on_go_back' property. + + + + + Cached name for the 'debug_collisions_hint' property. + + + + + Cached name for the 'debug_paths_hint' property. + + + + + Cached name for the 'debug_navigation_hint' property. + + + + + Cached name for the 'paused' property. + + + + + Cached name for the 'edited_scene_root' property. + + + + + Cached name for the 'current_scene' property. + + + + + Cached name for the 'root' property. + + + + + Cached name for the 'multiplayer_poll' property. + + + + + Cached name for the 'physics_interpolation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_root' method. + + + + + Cached name for the 'has_group' method. + + + + + Cached name for the 'is_auto_accept_quit' method. + + + + + Cached name for the 'set_auto_accept_quit' method. + + + + + Cached name for the 'is_quit_on_go_back' method. + + + + + Cached name for the 'set_quit_on_go_back' method. + + + + + Cached name for the 'set_debug_collisions_hint' method. + + + + + Cached name for the 'is_debugging_collisions_hint' method. + + + + + Cached name for the 'set_debug_paths_hint' method. + + + + + Cached name for the 'is_debugging_paths_hint' method. + + + + + Cached name for the 'set_debug_navigation_hint' method. + + + + + Cached name for the 'is_debugging_navigation_hint' method. + + + + + Cached name for the 'set_edited_scene_root' method. + + + + + Cached name for the 'get_edited_scene_root' method. + + + + + Cached name for the 'set_pause' method. + + + + + Cached name for the 'is_paused' method. + + + + + Cached name for the 'create_timer' method. + + + + + Cached name for the 'create_tween' method. + + + + + Cached name for the 'get_processed_tweens' method. + + + + + Cached name for the 'get_node_count' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'quit' method. + + + + + Cached name for the 'set_physics_interpolation_enabled' method. + + + + + Cached name for the 'is_physics_interpolation_enabled' method. + + + + + Cached name for the 'queue_delete' method. + + + + + Cached name for the 'call_group_flags' method. + + + + + Cached name for the 'notify_group_flags' method. + + + + + Cached name for the 'set_group_flags' method. + + + + + Cached name for the 'call_group' method. + + + + + Cached name for the 'notify_group' method. + + + + + Cached name for the 'set_group' method. + + + + + Cached name for the 'get_nodes_in_group' method. + + + + + Cached name for the 'get_first_node_in_group' method. + + + + + Cached name for the 'get_node_count_in_group' method. + + + + + Cached name for the 'set_current_scene' method. + + + + + Cached name for the 'get_current_scene' method. + + + + + Cached name for the 'change_scene_to_file' method. + + + + + Cached name for the 'change_scene_to_packed' method. + + + + + Cached name for the 'reload_current_scene' method. + + + + + Cached name for the 'unload_current_scene' method. + + + + + Cached name for the 'set_multiplayer' method. + + + + + Cached name for the 'get_multiplayer' method. + + + + + Cached name for the 'set_multiplayer_poll_enabled' method. + + + + + Cached name for the 'is_multiplayer_poll_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tree_changed' signal. + + + + + Cached name for the 'tree_process_mode_changed' signal. + + + + + Cached name for the 'node_added' signal. + + + + + Cached name for the 'node_removed' signal. + + + + + Cached name for the 'node_renamed' signal. + + + + + Cached name for the 'node_configuration_warning_changed' signal. + + + + + Cached name for the 'process_frame' signal. + + + + + Cached name for the 'physics_frame' signal. + + + + + A one-shot timer managed by the scene tree, which emits on completion. See also . + As opposed to , it does not require the instantiation of a node. Commonly used to create a one-shot delay timer as in the following example: + + public async Task SomeFunction() + { + GD.Print("Timer started."); + await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName.Timeout); + GD.Print("Timer ended."); + } + + The timer will be dereferenced after its time elapses. To preserve the timer, you can keep a reference to it. See . + Note: The timer is processed after all of the nodes in the current frame, i.e. node's method would be called before the timer (or if process_in_physics in has been set to ). + + + + + The time remaining (in seconds). + + + + + Emitted when the timer reaches 0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'time_left' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_time_left' method. + + + + + Cached name for the 'get_time_left' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'timeout' signal. + + + + + A class stored as a resource. A script extends the functionality of all objects that instantiate it. + This is the base class for all scripts and should not be used directly. Trying to create a new script with this class will result in an error. + The new method of a script subclass creates a new instance. extends an existing object, if that object's class matches one of the script's base classes. + + + + + The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically. + + + + + Returns if the script can be instantiated. + + + + + Returns if is an instance of this script. + + + + + Returns if the script contains non-empty source code. + Note: If a script does not have source code, this does not mean that it is invalid or unusable. For example, a that was exported with binary tokenization has no source code, but still behaves as expected and could be instantiated. This can be checked with . + + + + + Reloads the script's class implementation. Returns an error code. + + + + + Returns the script directly inherited by this script. + + + + + Returns the script's base type. + + + + + Returns the class name associated with the script, if there is one. Returns an empty string otherwise. + To give the script a global name, you can use the class_name keyword in GDScript and the [GlobalClass] attribute in C#. + + using Godot; + + [GlobalClass] + public partial class MyNode : Node + { + } + + + + + + Returns if the script, or a base class, defines a signal with the given name. + + + + + Returns the list of properties in this . + + + + + Returns the list of methods in this . + + + + + Returns the list of user signals defined in this . + + + + + Returns a dictionary containing constant names and their values. + + + + + Returns the default value of the specified property. + + + + + Returns if the script is a tool script. A tool script can run in the editor. + + + + + Returns if the script is an abstract script. An abstract script does not have a constructor and cannot be instantiated. + + + + + Returns a mapping method names to their RPC configuration defined by this script. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source_code' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the 'instance_has' method. + + + + + Cached name for the 'has_source_code' method. + + + + + Cached name for the 'get_source_code' method. + + + + + Cached name for the 'set_source_code' method. + + + + + Cached name for the 'reload' method. + + + + + Cached name for the 'get_base_script' method. + + + + + Cached name for the 'get_instance_base_type' method. + + + + + Cached name for the 'get_global_name' method. + + + + + Cached name for the 'has_script_signal' method. + + + + + Cached name for the 'get_script_property_list' method. + + + + + Cached name for the 'get_script_method_list' method. + + + + + Cached name for the 'get_script_signal_list' method. + + + + + Cached name for the 'get_script_constant_map' method. + + + + + Cached name for the 'get_property_default_value' method. + + + + + Cached name for the 'is_tool' method. + + + + + Cached name for the 'is_abstract' method. + + + + + Cached name for the 'get_rpc_config' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Return the expected argument count for the given , or if it can't be determined (which will then fall back to the default behavior). + + + + + Returns if the script is an abstract script. An abstract script does not have a constructor and cannot be instantiated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_instantiate' method. + + + + + Cached name for the '_editor_can_reload_from_file' method. + + + + + Cached name for the '_get_base_script' method. + + + + + Cached name for the '_get_class_icon_path' method. + + + + + Cached name for the '_get_constants' method. + + + + + Cached name for the '_get_doc_class_name' method. + + + + + Cached name for the '_get_documentation' method. + + + + + Cached name for the '_get_global_name' method. + + + + + Cached name for the '_get_instance_base_type' method. + + + + + Cached name for the '_get_language' method. + + + + + Cached name for the '_get_member_line' method. + + + + + Cached name for the '_get_members' method. + + + + + Cached name for the '_get_method_info' method. + + + + + Cached name for the '_get_property_default_value' method. + + + + + Cached name for the '_get_rpc_config' method. + + + + + Cached name for the '_get_script_method_argument_count' method. + + + + + Cached name for the '_get_script_method_list' method. + + + + + Cached name for the '_get_script_property_list' method. + + + + + Cached name for the '_get_script_signal_list' method. + + + + + Cached name for the '_get_source_code' method. + + + + + Cached name for the '_has_method' method. + + + + + Cached name for the '_has_property_default_value' method. + + + + + Cached name for the '_has_script_signal' method. + + + + + Cached name for the '_has_source_code' method. + + + + + Cached name for the '_has_static_method' method. + + + + + Cached name for the '_inherits_script' method. + + + + + Cached name for the '_instance_has' method. + + + + + Cached name for the '_is_abstract' method. + + + + + Cached name for the '_is_placeholder_fallback_enabled' method. + + + + + Cached name for the '_is_tool' method. + + + + + Cached name for the '_is_valid' method. + + + + + Cached name for the '_reload' method. + + + + + Cached name for the '_set_source_code' method. + + + + + Cached name for the '_update_exports' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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). + + + + + 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. + + + + + The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons). + + + + + The option is from other engine code, not covered by the other enum constants - e.g. built-in classes. + + + + + Returns the source associated with a given debug stack position. + + + + + Returns the line where the function is defined in the code, or -1 if the function is not present. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_global_constant' method. + + + + + Cached name for the '_add_named_global_constant' method. + + + + + Cached name for the '_auto_indent_code' method. + + + + + Cached name for the '_can_inherit_from_file' method. + + + + + Cached name for the '_can_make_function' method. + + + + + Cached name for the '_complete_code' method. + + + + + Cached name for the '_create_script' method. + + + + + Cached name for the '_debug_get_current_stack_info' method. + + + + + Cached name for the '_debug_get_error' method. + + + + + Cached name for the '_debug_get_globals' method. + + + + + Cached name for the '_debug_get_stack_level_count' method. + + + + + Cached name for the '_debug_get_stack_level_function' method. + + + + + Cached name for the '_debug_get_stack_level_line' method. + + + + + Cached name for the '_debug_get_stack_level_locals' method. + + + + + Cached name for the '_debug_get_stack_level_members' method. + + + + + Cached name for the '_debug_get_stack_level_source' method. + + + + + Cached name for the '_debug_parse_stack_level_expression' method. + + + + + Cached name for the '_find_function' method. + + + + + Cached name for the '_finish' method. + + + + + Cached name for the '_frame' method. + + + + + Cached name for the '_get_built_in_templates' method. + + + + + Cached name for the '_get_comment_delimiters' method. + + + + + Cached name for the '_get_doc_comment_delimiters' method. + + + + + Cached name for the '_get_extension' method. + + + + + Cached name for the '_get_global_class_name' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_public_annotations' method. + + + + + Cached name for the '_get_public_constants' method. + + + + + Cached name for the '_get_public_functions' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_get_reserved_words' method. + + + + + Cached name for the '_get_string_delimiters' method. + + + + + Cached name for the '_get_type' method. + + + + + Cached name for the '_handles_global_class_type' method. + + + + + Cached name for the '_has_named_classes' method. + + + + + Cached name for the '_init' method. + + + + + Cached name for the '_is_control_flow_keyword' method. + + + + + Cached name for the '_is_using_templates' method. + + + + + Cached name for the '_lookup_code' method. + + + + + Cached name for the '_make_function' method. + + + + + Cached name for the '_make_template' method. + + + + + Cached name for the '_open_in_external_editor' method. + + + + + Cached name for the '_overrides_external_editor' method. + + + + + Cached name for the '_preferred_file_name_casing' method. + + + + + Cached name for the '_profiling_set_save_native_calls' method. + + + + + Cached name for the '_profiling_start' method. + + + + + Cached name for the '_profiling_stop' method. + + + + + Cached name for the '_reload_all_scripts' method. + + + + + Cached name for the '_reload_scripts' method. + + + + + Cached name for the '_reload_tool_script' method. + + + + + Cached name for the '_remove_named_global_constant' method. + + + + + Cached name for the '_supports_builtin_mode' method. + + + + + Cached name for the '_supports_documentation' method. + + + + + Cached name for the '_thread_enter' method. + + + + + Cached name for the '_thread_exit' method. + + + + + Cached name for the '_validate' method. + + + + + Cached name for the '_validate_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for scrollbars, typically used to navigate through content that extends beyond the visible area of a control. Scrollbars are -based controls. + + + + + Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the is focused. + + + + + Emitted when the scrollbar is being scrolled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'custom_step' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_custom_step' method. + + + + + Cached name for the 'get_custom_step' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'scrolling' signal. + + + + + 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 of the Control relative to the ScrollContainer. + + + + + Scrolling disabled, scrollbar will be invisible. + + + + + Scrolling enabled, scrollbar will be visible only if necessary, i.e. container's content is bigger than the container. + + + + + Scrolling enabled, scrollbar will be always visible. + + + + + Scrolling enabled, scrollbar will be hidden. + + + + + Combines and . The scrollbar is only visible if necessary, but the content size is adjusted as if it was always visible. It's useful for ensuring that content size stays the same regardless if the scrollbar is visible. + + + + + If , the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible. + + + + + If , focus is drawn when the ScrollContainer or one of its descendant nodes is focused. + + + + + The current horizontal scroll value. + Note: If you are setting this value in the function or earlier, it needs to be wrapped with , since scroll bar's is not initialized yet. + + func _ready(): + set_deferred("scroll_horizontal", 600) + + + + + + The current vertical scroll value. + Note: Setting it early needs to be deferred, just like in . + + func _ready(): + set_deferred("scroll_vertical", 600) + + + + + + Overrides the used when clicking the internal scroll bar's horizontal increment and decrement buttons or when using arrow keys when the is focused. + + + + + Overrides the used when clicking the internal scroll bar's vertical increment and decrement buttons or when using arrow keys when the is focused. + + + + + Controls whether horizontal scrollbar can be used and when it should be visible. See for options. + + + + + Controls whether vertical scrollbar can be used and when it should be visible. See for options. + + + + + Deadzone for touch scrolling. Lower deadzone makes the scrolling more sensitive. + + + + + Returns the horizontal scrollbar of this . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use . + + + + + Returns the vertical scrollbar of this . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use . + + + + + Ensures the given is visible (must be a direct or indirect child of the ScrollContainer). Used by . + Note: This will not work on a node that was just added during the same frame. If you want to scroll to a newly added child, you must wait until the next frame using : + + add_child(child_node) + await get_tree().process_frame + ensure_control_visible(child_node) + + + + + + Emitted when scrolling starts when dragging the scrollable area with a touch event. This signal is not emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Emitted when scrolling stops when dragging the scrollable area with a touch event. This signal is not emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'follow_focus' property. + + + + + Cached name for the 'draw_focus_border' property. + + + + + Cached name for the 'scroll_horizontal' property. + + + + + Cached name for the 'scroll_vertical' property. + + + + + Cached name for the 'scroll_horizontal_custom_step' property. + + + + + Cached name for the 'scroll_vertical_custom_step' property. + + + + + Cached name for the 'horizontal_scroll_mode' property. + + + + + Cached name for the 'vertical_scroll_mode' property. + + + + + Cached name for the 'scroll_deadzone' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_h_scroll' method. + + + + + Cached name for the 'get_h_scroll' method. + + + + + Cached name for the 'set_v_scroll' method. + + + + + Cached name for the 'get_v_scroll' method. + + + + + Cached name for the 'set_horizontal_custom_step' method. + + + + + Cached name for the 'get_horizontal_custom_step' method. + + + + + Cached name for the 'set_vertical_custom_step' method. + + + + + Cached name for the 'get_vertical_custom_step' method. + + + + + Cached name for the 'set_horizontal_scroll_mode' method. + + + + + Cached name for the 'get_horizontal_scroll_mode' method. + + + + + Cached name for the 'set_vertical_scroll_mode' method. + + + + + Cached name for the 'get_vertical_scroll_mode' method. + + + + + Cached name for the 'set_deadzone' method. + + + + + Cached name for the 'get_deadzone' method. + + + + + Cached name for the 'set_follow_focus' method. + + + + + Cached name for the 'is_following_focus' method. + + + + + Cached name for the 'get_h_scroll_bar' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'ensure_control_visible' method. + + + + + Cached name for the 'set_draw_focus_border' method. + + + + + Cached name for the 'get_draw_focus_border' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_started' signal. + + + + + Cached name for the 'scroll_ended' signal. + + + + + A 2D line segment shape, intended for use in physics. Usually used to provide a shape for a . + + + + + The segment's first point position. + + + + + The segment's second point position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'a' property. + + + + + Cached name for the 'b' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_a' method. + + + + + Cached name for the 'get_a' method. + + + + + Cached name for the 'set_b' method. + + + + + Cached name for the 'get_b' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A synchronization semaphore that can be used to synchronize multiple s. Initialized to zero on creation. For a binary version, see . + Warning: Semaphores must be used carefully to avoid deadlocks. + Warning: To guarantee that the operating system is able to perform proper cleanup (no crashes, no deadlocks), these conditions must be met: + - When a 's reference count reaches zero and it is therefore destroyed, no threads must be waiting on it. + - When a 's reference count reaches zero and it is therefore destroyed, it must not be waiting on any semaphore. + + + + + Waits for the , if its value is zero, blocks until non-zero. + + + + + Like , but won't block, so if the value is zero, fails immediately and returns . If non-zero, it returns to report success. + + + + + Lowers the , allowing one thread in, or more if is specified. + + + + + Lowers the , allowing one thread in, or more if is specified. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'wait' method. + + + + + Cached name for the 'try_wait' method. + + + + + Cached name for the 'post' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D ray shape, intended for use in physics. Usually used to provide a shape for a . When a collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a next to a character can allow it to instantly move up when touching stairs. + + + + + The ray's length. + + + + + If (default), the shape always separates and returns a normal along its own direction. + If , the shape can return the correct normal and separate in any direction, allowing sliding motion on slopes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'slide_on_slope' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_slide_on_slope' method. + + + + + Cached name for the 'get_slide_on_slope' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D ray shape, intended for use in physics. Usually used to provide a shape for a . When a collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a next to a character can allow it to instantly move up when touching stairs. + + + + + The ray's length. + + + + + If (default), the shape always separates and returns a normal along its own direction. + If , the shape can return the correct normal and separate in any direction, allowing sliding motion on slopes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'slide_on_slope' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_slide_on_slope' method. + + + + + Cached name for the 'get_slide_on_slope' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for separators, used for separating other controls. s are purely visual and normally drawn as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A custom shader program implemented in the Godot shading language, saved with the .gdshader extension. + This class is used by a 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. + + + + + Mode used to draw all 3D objects. + + + + + Mode used to draw all 2D objects. + + + + + Mode used to calculate particle information on a per-particle basis. Not used for drawing. + + + + + Mode used for drawing skies. Only works with shaders attached to objects. + + + + + Mode used for setting the color and density of volumetric fog effect. + + + + + Returns the shader's code as the user has written it, not the full generated code used internally. + + + + + Returns the shader mode for the shader. + + + + + Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the . + Note: must match the name of the uniform in the code exactly. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns the texture that is set as default for the specified parameter. + Note: must match the name of the uniform in the code exactly. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns the list of shader uniforms that can be assigned to a , for use with and . The parameters returned are contained in dictionaries in a similar format to the ones returned by . + If argument is , parameter grouping hints are also included in the list. + + + + + Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code. See also . + + + + + Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the . + Note: must match the name of the uniform in the code exactly. + Note: If the sampler array is used use to access the specified texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'code' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_code' method. + + + + + Cached name for the 'get_code' method. + + + + + Cached name for the 'set_default_texture_parameter' method. + + + + + Cached name for the 'get_default_texture_parameter' method. + + + + + Cached name for the 'get_shader_uniform_list' method. + + + + + Cached name for the 'inspect_native_shader_code' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Similar to how a node can be used to override the environment while a specific scene is loaded, 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 global_shader_parameter_* methods for more information. + Note: Only one can be used per scene. If there is more than one node in the scene tree, only the first node (in tree order) will be taken into account. + Note: All nodes are made part of a "shader_overrides_group" group when they are added to the scene tree. The currently active node also has a "shader_overrides_group_active" group added to it. You can use this to check which node is currently active. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A shader include file, saved with the .gdshaderinc extension. This class allows you to define a custom shader snippet that can be included in a by using the preprocessor directive #include, followed by the file path (e.g. #include "res://shader_lib.gdshaderinc"). The snippet doesn't have to be a valid shader on its own. + + + + + Returns the code of the shader include file. The returned text is what the user has written, not the full generated code used internally. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'code' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_code' method. + + + + + Cached name for the 'get_code' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object contains shader fragments from Godot's internal shaders. These can be used when access to internal uniform buffers and/or internal functions is required for instance when composing compositor effects or compute shaders. Only fragments for the current rendering device are loaded. + + + + + Returns a list of built-in include files that are currently registered. + + + + + Returns if an include file with this name exists. + + + + + Returns the code for the built-in shader fragment. You can also access this in your shader code through #include "filename". + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'list_built_in_include_files' method. + + + + + Cached name for the 'has_built_in_include_file' method. + + + + + Cached name for the 'get_built_in_include_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A material that uses a custom program to render visual items (canvas items, meshes, skies, fog), or to process particles. Compared to other materials, gives deeper control over the generated shader code. For more information, see the shaders documentation index below. + Multiple s can use the same shader and configure different values for the shader uniforms. + Note: For performance reasons, the signal is only emitted when the changes. Only in editor, it is also emitted for changes. + + + + + The program used to render this material. + + + + + Changes the value set for this material of a uniform in the shader. + Note: is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector). + Note: Changes to the shader uniform will be effective on all instances using this . To prevent this, use per-instance uniforms with or duplicate the resource using . Per-instance uniforms allow for better shader reuse and are therefore faster, so they should be preferred over duplicating the when possible. + + + + + Returns the current value set for this material of a uniform in the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shader' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shader' method. + + + + + Cached name for the 'get_shader' method. + + + + + Cached name for the 'set_shader_parameter' method. + + + + + Cached name for the 'get_shader_parameter' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all 2D shapes, intended for use in physics. + Performance: Primitive shapes, especially , are fast to check collisions against. is slower, and is the slowest. + + + + + The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved. + When set to 0, the default value from ProjectSettings.physics/2d/solver/default_contact_bias is used. + + + + + Returns if this shape is colliding with another. + This method needs the transformation matrix for this shape (), the shape to check collisions with (), and the transformation matrix of that shape (). + + + + + Returns whether this shape would collide with another, if a given movement was applied. + This method needs the transformation matrix for this shape (), the movement to test on this shape (), the shape to check collisions with (), the transformation matrix of that shape (), and the movement to test onto the other object (). + + + + + Returns a list of contact point pairs where this shape touches another. + If there are no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of . + A collision pair A, B can be used to calculate the collision normal with (B - A).normalized(), and the collision depth with (B - A).length(). This information is typically used to separate shapes, particularly in collision solvers. + This method needs the transformation matrix for this shape (), the shape to check collisions with (), and the transformation matrix of that shape (). + + + + + Returns a list of contact point pairs where this shape would touch another, if a given movement was applied. + If there would be no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of . + A collision pair A, B can be used to calculate the collision normal with (B - A).normalized(), and the collision depth with (B - A).length(). This information is typically used to separate shapes, particularly in collision solvers. + This method needs the transformation matrix for this shape (), the movement to test on this shape (), the shape to check collisions with (), the transformation matrix of that shape (), and the movement to test onto the other object (). + + + + + Draws a solid shape onto a with the API filled with the specified . The exact drawing method is specific for each shape and cannot be configured. + + + + + Returns a representing the shapes boundary. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'custom_solver_bias' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_custom_solver_bias' method. + + + + + Cached name for the 'get_custom_solver_bias' method. + + + + + Cached name for the 'collide' method. + + + + + Cached name for the 'collide_with_motion' method. + + + + + Cached name for the 'collide_and_get_contacts' method. + + + + + Cached name for the 'collide_with_motion_and_get_contacts' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all 3D shapes, intended for use in physics. + Performance: Primitive shapes, especially , are fast to check collisions against. and are slower, and is the slowest. + + + + + The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved. + When set to 0, the default value from ProjectSettings.physics/3d/solver/default_contact_bias is used. + + + + + The collision margin for the shape. This is not used in Godot Physics. + Collision margins allow collision detection to be more efficient by adding an extra shell around shapes. Collision algorithms are more expensive when objects overlap by more than their margin, so a higher value for margins is better for performance, at the cost of accuracy around edges as it makes them less sharp. + + + + + Returns the used to draw the debug collision for this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'custom_solver_bias' property. + + + + + Cached name for the 'margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_custom_solver_bias' method. + + + + + Cached name for the 'get_custom_solver_bias' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'get_debug_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shape casting allows to detect collision objects by sweeping its along the cast direction determined by . This is similar to , but it allows for sweeping a region of space, rather than just a straight line. 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 set to Vector2(0, 0) and by calling within the same physics frame. This helps to overcome some limitations of when used as an instantaneous detection area, as collision information isn't immediately available to it. + Note: Shape casting is more computationally expensive than ray casting. + + + + + If , collisions will be reported. + + + + + The shape to be used for collision queries. + + + + + If , the parent node will be excluded from collision detection. + + + + + The shape's destination point, relative to this node's . + + + + + The collision margin for the shape. A larger margin helps detecting collisions more consistently, at the cost of precision. + + + + + The number of intersections can be limited with this parameter, to reduce the processing time. + + + + + The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + Returns the complete collision information from the collision sweep. The data returned is the same as in the method. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + Returns whether any object is intersecting with the shape's vector (considering the vector length). + + + + + The number of collisions detected at the point of impact. Use this to iterate over multiple collisions as provided by , , , and methods. + + + + + Updates the collision information for the shape immediately, without waiting for the next _physics_process call. Use this method, for example, when the shape or its parent has changed state. + Note: Setting to is not required for this to work. + + + + + Returns the collided of one of the multiple collisions at , or if no object is intersecting the shape (i.e. returns ). + + + + + Returns the of the collided object of one of the multiple collisions at . + + + + + Returns the shape ID of the colliding shape of one of the multiple collisions at , or 0 if no object is intersecting the shape (i.e. returns ). + + + + + Returns the collision point of one of the multiple collisions at where the shape intersects the colliding object. + Note: This point is in the global coordinate system. + + + + + Returns the normal of one of the multiple collisions at of the intersecting object. + + + + + Returns the fraction from this cast's origin to its of how far the shape can move without triggering a collision, as a value between 0.0 and 1.0. + + + + + Returns the fraction from this cast's origin to its of how far the shape must move to trigger a collision, as a value between 0.0 and 1.0. + In ideal conditions this would be the same as , however shape casting is calculated in discrete steps, so the precise point of collision can occur between two calculated positions. + + + + + Adds a collision exception so the shape does not report collisions with the specified . + + + + + Adds a collision exception so the shape does not report collisions with the specified node. + + + + + Removes a collision exception so the shape does report collisions with the specified . + + + + + Removes a collision exception so the shape does report collisions with the specified node. + + + + + Removes all collision exceptions for this shape. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'max_results' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_result' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_max_results' method. + + + + + Cached name for the 'get_max_results' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'force_shapecast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_closest_collision_safe_fraction' method. + + + + + Cached name for the 'get_closest_collision_unsafe_fraction' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'get_collision_result' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shape casting allows to detect collision objects by sweeping its along the cast direction determined by . This is similar to , but it allows for sweeping a region of space, rather than just a straight line. 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 set to Vector3(0, 0, 0) and by calling within the same physics frame. This helps to overcome some limitations of when used as an instantaneous detection area, as collision information isn't immediately available to it. + Note: Shape casting is more computationally expensive than ray casting. + + + + + If , collisions will be reported. + + + + + The shape to be used for collision queries. + + + + + If , the parent node will be excluded from collision detection. + + + + + The shape's destination point, relative to this node's . + + + + + The collision margin for the shape. A larger margin helps detecting collisions more consistently, at the cost of precision. + + + + + The number of intersections can be limited with this parameter, to reduce the processing time. + + + + + The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + Returns the complete collision information from the collision sweep. The data returned is the same as in the method. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + The custom color to use to draw the shape in the editor and at run-time if Visible Collision Shapes is enabled in the Debug menu. This color will be highlighted at run-time if the is colliding with something. + If set to Color(0.0, 0.0, 0.0) (by default), the color set in ProjectSettings.debug/shapes/collision/shape_color is used. + + + + + This method does nothing. + + + + + Returns whether any object is intersecting with the shape's vector (considering the vector length). + + + + + The number of collisions detected at the point of impact. Use this to iterate over multiple collisions as provided by , , , and methods. + + + + + Updates the collision information for the shape immediately, without waiting for the next _physics_process call. Use this method, for example, when the shape or its parent has changed state. + Note: Setting to is not required for this to work. + + + + + Returns the collided of one of the multiple collisions at , or if no object is intersecting the shape (i.e. returns ). + + + + + Returns the of the collided object of one of the multiple collisions at . + + + + + Returns the shape ID of the colliding shape of one of the multiple collisions at , or 0 if no object is intersecting the shape (i.e. returns ). + + + + + Returns the collision point of one of the multiple collisions at where the shape intersects the colliding object. + Note: This point is in the global coordinate system. + + + + + Returns the normal of one of the multiple collisions at of the intersecting object. + + + + + Returns the fraction from this cast's origin to its of how far the shape can move without triggering a collision, as a value between 0.0 and 1.0. + + + + + Returns the fraction from this cast's origin to its of how far the shape must move to trigger a collision, as a value between 0.0 and 1.0. + In ideal conditions this would be the same as , however shape casting is calculated in discrete steps, so the precise point of collision can occur between two calculated positions. + + + + + Adds a collision exception so the shape does not report collisions with the specified . + + + + + Adds a collision exception so the shape does not report collisions with the specified node. + + + + + Removes a collision exception so the shape does report collisions with the specified . + + + + + Removes a collision exception so the shape does report collisions with the specified node. + + + + + Removes all collision exceptions for this shape. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'max_results' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_result' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'debug_shape_custom_color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resource_changed' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_max_results' method. + + + + + Cached name for the 'get_max_results' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'force_shapecast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_closest_collision_safe_fraction' method. + + + + + Cached name for the 'get_closest_collision_unsafe_fraction' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'get_collision_result' method. + + + + + Cached name for the 'set_debug_shape_custom_color' method. + + + + + Cached name for the 'get_debug_shape_custom_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shortcuts are commonly used for interacting with a element from an (also known as hotkeys). + One shortcut can contain multiple s, allowing the possibility of triggering one action with multiple different inputs. + + + + + The shortcut's array. + Generally the used is an , though it can be any , including an . + + + + + Returns whether contains an which is valid. + + + + + Returns whether any in equals . This uses to compare events. + + + + + Returns the shortcut's first valid as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'events' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_events' method. + + + + + Cached name for the 'get_events' method. + + + + + Cached name for the 'has_valid_event' method. + + + + + Cached name for the 'matches_event' method. + + + + + Cached name for the 'get_as_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + parents a hierarchy of nodes. It holds a reference to each '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 should be created. The inverse kinematics be applied by increasing and creating the desired number of modifications. + + + + + Returns the number of nodes in the node hierarchy parented by Skeleton2D. + + + + + Returns a from the node hierarchy parented by Skeleton2D. The object to return is identified by the parameter . Bones are indexed by descending the node hierarchy from top to bottom, adding the children of each branch before moving to the next sibling. + + + + + Returns the of a Skeleton2D instance. + + + + + Sets the attached to this skeleton. + + + + + Returns the attached to this skeleton, if one exists. + + + + + Executes all the modifications on the , if the Skeleton2D has one assigned. + + + + + Sets the local pose transform, , for the bone at . + is the interpolation strength that will be used when applying the pose, and determines if the applied pose will remain. + Note: The pose transform needs to be a local transform relative to the node at ! + + + + + Returns the local pose override transform for . + + + + + Emitted when the setup attached to this skeletons changes. This is primarily used internally within the skeleton. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_bone_count' method. + + + + + Cached name for the 'get_bone' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_modification_stack' method. + + + + + Cached name for the 'get_modification_stack' method. + + + + + Cached name for the 'execute_modifications' method. + + + + + Cached name for the 'set_bone_local_pose_override' method. + + + + + Cached name for the 'get_bone_local_pose_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bone_setup_changed' signal. + + + + + provides an interface for managing a hierarchy of bones, including pose, rest and animation (see ). 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. + + + + + Notification received when this skeleton's pose needs to be updated. In that case, this is called only once per frame in a deferred process. + + + + + Set a flag to process modification during physics frames (see ). + + + + + Set a flag to process modification during process frames (see ). + + + + + Multiplies the 3D position track animation. + Note: Unless this value is 1.0, the key value in animation will not match the actual position value. + + + + + If , forces the bones in their default rest pose, regardless of their values. In the editor, this also prevents the bones from being edited. + + + + + Sets the processing timing for the Modifier. + + + + + If you follow the recommended workflow and explicitly have as a child of , you can control whether it is affected by raycasting without running , by its . + However, for old (deprecated) configurations, has an internal virtual for compatibility. This property controls the internal virtual 's . + + + + + Adds a new bone with the given name. Returns the new bone's index, or -1 if this method fails. + Note: Bone names should be unique, non empty, and cannot include the : and / characters. + + + + + Returns the bone index that matches as its name. Returns -1 if no bone with this name exists. + + + + + Returns the name of the bone at index . + + + + + Sets the bone name, , for the bone at . + + + + + Returns bone metadata for with . + + + + + Returns a list of all metadata keys for . + + + + + Returns whether there exists any bone metadata for with key . + + + + + Sets bone metadata for , will set the meta to . + + + + + Returns all bone names concatenated with commas (,) as a single . + It is useful to set it as a hint for the enum property. + + + + + Returns the bone index which is the parent of the bone at . If -1, then bone has no parent. + Note: The parent bone returned will always be less than . + + + + + Sets the bone index as the parent of the bone at . If -1, then bone has no parent. + Note: must be less than . + + + + + Returns the number of bones in the skeleton. + + + + + Returns the number of times the bone hierarchy has changed within this skeleton, including renames. + The Skeleton version is not serialized: only use within a single instance of Skeleton3D. + Use for invalidating caches in IK solvers and other nodes which process bones. + + + + + Unparents the bone at and sets its rest position to that of its parent prior to being reset. + + + + + Returns an array containing the bone indexes of all the child node of the passed in bone, . + + + + + Returns an array with all of the bones that are parentless. Another way to look at this is that it returns the indexes of all the bones that are not dependent or modified by other bones in the Skeleton. + + + + + Returns the rest transform for a bone . + + + + + Sets the rest transform for bone . + + + + + Returns the global rest transform for . + + + + + Binds the given Skin to the Skeleton. + + + + + Returns all bones in the skeleton to their rest poses. + + + + + Clear all the bones in this skeleton. + + + + + Returns the pose transform of the specified bone. + Note: This is the pose you set to the skeleton in the process, the final pose can get overridden by modifiers in the deferred process, if you want to access the final pose, use . + + + + + Sets the pose transform, , for the bone at . + + + + + Sets the pose position of the bone at to . is a describing a position local to the node. + + + + + Sets the pose rotation of the bone at to . is a describing a rotation in the bone's local coordinate space with respect to the rotation of any parent bones. + + + + + Sets the pose scale of the bone at to . + + + + + Returns the pose position of the bone at . The returned is in the local coordinate space of the node. + + + + + Returns the pose rotation of the bone at . The returned is local to the bone with respect to the rotation of any parent bones. + + + + + Returns the pose scale of the bone at . + + + + + Sets the bone pose to rest for . + + + + + Sets all bone poses to rests. + + + + + Returns whether the bone pose for the bone at is enabled. + + + + + Disables the pose for the bone at if , enables the bone pose if . + + + + + Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone. + Note: This is the global pose you set to the skeleton in the process, the final global pose can get overridden by modifiers in the deferred process, if you want to access the final global pose, use . + + + + + Sets the global pose transform, , for the bone at . + Note: If other bone poses have been changed, this method executes a dirty poses recalculation and will cause performance to deteriorate. If you know that multiple global poses will be applied, consider using with precalculation. + + + + + Force updates the bone transforms/poses for all bones in the skeleton. + + + + + Force updates the bone transform for the bone at and all of its children. + + + + + Removes the global pose override on all bones in the skeleton. + + + + + Sets the global pose transform, , for the bone at . + is the interpolation strength that will be used when applying the pose, and determines if the applied pose will remain. + Note: The pose transform needs to be a global pose! To convert a world transform from a to a global bone pose, multiply the Transform3D.affine_inverse of the node's by the desired world transform. + + + + + Returns the global pose override transform for . + + + + + Returns the overall transform of the specified bone, with respect to the skeleton, but without any global pose overrides. Being relative to the skeleton frame, this is not the actual "global" transform of the bone. + + + + + Tells the nodes in the Skeleton to stop simulating. + + + + + Tells the nodes in the Skeleton to start simulating and reacting to the physics world. + Optionally, a list of bone names can be passed-in, allowing only the passed-in bones to be simulated. + + + + + Adds a collision exception to the physical bone. + Works just like the node. + + + + + Removes a collision exception to the physical bone. + Works just like the node. + + + + + Emitted when the rest is updated. + + + + + Emitted when the pose is updated. + Note: During the update process, this signal is not fired, so modification by is not detected. + + + + + Emitted when the final pose has been calculated will be applied to the skin in the update process. + This means that all processing is complete. In order to detect the completion of the processing of each , use . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the bone at boneIdx is toggled with . Use to check the new value. + + + + + Emitted when the value of changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_scale' property. + + + + + Cached name for the 'show_rest_only' property. + + + + + Cached name for the 'modifier_callback_mode_process' property. + + + + + Cached name for the 'animate_physical_bones' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_bone' method. + + + + + Cached name for the 'find_bone' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_meta' method. + + + + + Cached name for the 'get_bone_meta_list' method. + + + + + Cached name for the 'has_bone_meta' method. + + + + + Cached name for the 'set_bone_meta' method. + + + + + Cached name for the 'get_concatenated_bone_names' method. + + + + + Cached name for the 'get_bone_parent' method. + + + + + Cached name for the 'set_bone_parent' method. + + + + + Cached name for the 'get_bone_count' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'unparent_bone_and_rest' method. + + + + + Cached name for the 'get_bone_children' method. + + + + + Cached name for the 'get_parentless_bones' method. + + + + + Cached name for the 'get_bone_rest' method. + + + + + Cached name for the 'set_bone_rest' method. + + + + + Cached name for the 'get_bone_global_rest' method. + + + + + Cached name for the 'create_skin_from_rest_transforms' method. + + + + + Cached name for the 'register_skin' method. + + + + + Cached name for the 'localize_rests' method. + + + + + Cached name for the 'clear_bones' method. + + + + + Cached name for the 'get_bone_pose' method. + + + + + Cached name for the 'set_bone_pose' method. + + + + + Cached name for the 'set_bone_pose_position' method. + + + + + Cached name for the 'set_bone_pose_rotation' method. + + + + + Cached name for the 'set_bone_pose_scale' method. + + + + + Cached name for the 'get_bone_pose_position' method. + + + + + Cached name for the 'get_bone_pose_rotation' method. + + + + + Cached name for the 'get_bone_pose_scale' method. + + + + + Cached name for the 'reset_bone_pose' method. + + + + + Cached name for the 'reset_bone_poses' method. + + + + + Cached name for the 'is_bone_enabled' method. + + + + + Cached name for the 'set_bone_enabled' method. + + + + + Cached name for the 'get_bone_global_pose' method. + + + + + Cached name for the 'set_bone_global_pose' method. + + + + + Cached name for the 'force_update_all_bone_transforms' method. + + + + + Cached name for the 'force_update_bone_child_transform' method. + + + + + Cached name for the 'set_motion_scale' method. + + + + + Cached name for the 'get_motion_scale' method. + + + + + Cached name for the 'set_show_rest_only' method. + + + + + Cached name for the 'is_show_rest_only' method. + + + + + Cached name for the 'set_modifier_callback_mode_process' method. + + + + + Cached name for the 'get_modifier_callback_mode_process' method. + + + + + Cached name for the 'clear_bones_global_pose_override' method. + + + + + Cached name for the 'set_bone_global_pose_override' method. + + + + + Cached name for the 'get_bone_global_pose_override' method. + + + + + Cached name for the 'get_bone_global_pose_no_override' method. + + + + + Cached name for the 'set_animate_physical_bones' method. + + + + + Cached name for the 'get_animate_physical_bones' method. + + + + + Cached name for the 'physical_bones_stop_simulation' method. + + + + + Cached name for the 'physical_bones_start_simulation' method. + + + + + Cached name for the 'physical_bones_add_collision_exception' method. + + + + + Cached name for the 'physical_bones_remove_collision_exception' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'rest_updated' signal. + + + + + Cached name for the 'pose_updated' signal. + + + + + Cached name for the 'skeleton_updated' signal. + + + + + Cached name for the 'bone_enabled_changed' signal. + + + + + Cached name for the 'bone_list_changed' signal. + + + + + Cached name for the 'show_rest_only_changed' signal. + + + + + SkeletonIK3D is used to rotate all bones of a 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 bones_global_pose_override property for all affected bones in the chain. If fully applied, this overwrites any bone transform from s or bone custom poses set by users. The applied amount can be controlled with the property. + + # Apply IK effect automatically on every new frame (not the current) + skeleton_ik_node.start() + + # Apply IK effect only on the current frame + skeleton_ik_node.start(true) + + # Stop IK effect and reset bones_global_pose_override on Skeleton + skeleton_ik_node.stop() + + # Apply full IK effect + skeleton_ik_node.set_influence(1.0) + + # Apply half IK effect + skeleton_ik_node.set_influence(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_influence(0.0) + + + + + + The name of the current root bone, the first bone in the IK chain. + + + + + The name of the current tip bone, the last bone in the IK chain placed at the transform (or if defined). + + + + + First target of the IK chain where the tip bone is placed and, if is , how the tip bone is rotated. If a path is available the nodes transform is used instead and this property is ignored. + + + + + If overwrites the rotation of the tip bone with the rotation of the (or if defined). + + + + + If , instructs the IK solver to consider the secondary magnet target (pole target) when calculating the bone chain. Use the magnet position (pole target) to control the bending of the IK chain. + + + + + Secondary target position (first is property or ) for the IK chain. Use magnet position (pole target) to control the bending of the IK chain. Only works if the bone chain has more than 2 bones. The middle chain bone position will be linearly interpolated with the magnet position. + + + + + Target node for the IK chain. If available, the node's current is used instead of the property. + + + + + The minimum distance between bone and goal target. If the distance is below this value, the IK solver stops further iterations. + + + + + Number of iteration loops used by the IK solver to produce more accurate (and elegant) bone chain results. + + + + + Interpolation value for how much the IK results are applied to the current skeleton bone chain. A value of 1.0 will overwrite all skeleton bone transforms completely while a value of 0.0 will visually disable the SkeletonIK. + + + + + Returns the parent node that was present when SkeletonIK entered the scene tree. Returns if the parent node was not a node when SkeletonIK3D entered the scene tree. + + + + + Returns if SkeletonIK is applying IK effects on continues frames to the bones. Returns if SkeletonIK is stopped or was used with the one_time parameter set to . + + + + + Starts applying IK effects on each frame to the bones but will only take effect starting on the next frame. If is , this will take effect immediately but also reset on the next frame. + + + + + Stops applying IK effects on each frame to the bones and also calls to remove existing overrides on all bones. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_bone' property. + + + + + Cached name for the 'tip_bone' property. + + + + + Cached name for the 'target' property. + + + + + Cached name for the 'override_tip_basis' property. + + + + + Cached name for the 'use_magnet' property. + + + + + Cached name for the 'magnet' property. + + + + + Cached name for the 'target_node' property. + + + + + Cached name for the 'min_distance' property. + + + + + Cached name for the 'max_iterations' property. + + + + + Cached name for the 'interpolation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_bone' method. + + + + + Cached name for the 'get_root_bone' method. + + + + + Cached name for the 'set_tip_bone' method. + + + + + Cached name for the 'get_tip_bone' method. + + + + + Cached name for the 'set_target_transform' method. + + + + + Cached name for the 'get_target_transform' method. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_override_tip_basis' method. + + + + + Cached name for the 'is_override_tip_basis' method. + + + + + Cached name for the 'set_use_magnet' method. + + + + + Cached name for the 'is_using_magnet' method. + + + + + Cached name for the 'set_magnet_position' method. + + + + + Cached name for the 'get_magnet_position' method. + + + + + Cached name for the 'get_parent_skeleton' method. + + + + + Cached name for the 'is_running' method. + + + + + Cached name for the 'set_min_distance' method. + + + + + Cached name for the 'get_min_distance' method. + + + + + Cached name for the 'set_max_iterations' method. + + + + + Cached name for the 'get_max_iterations' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_interpolation' method. + + + + + Cached name for the 'get_interpolation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource provides an interface that can be expanded so code that operates on nodes in a 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. + + + + + If , the modification's function will be called by the . + + + + + The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only available in certain execution modes. + + + + + Used for drawing editor-only modification gizmos. This function will only be called in the Godot editor and can be overridden to draw custom gizmos. + Note: You will need to use the Skeleton2D from and it's draw functions, as the resource cannot draw on its own. + + + + + Executes the given modification. This is where the modification performs whatever function it is designed to do. + + + + + Called when the modification is setup. This is where the modification performs initialization. + + + + + Returns the that this modification is bound to. Through the modification stack, you can access the Skeleton2D the modification is operating on. + + + + + Manually allows you to set the setup state of the modification. This function should only rarely be used, as the the modification is bound to should handle setting the modification up. + + + + + Returns whether this modification has been successfully setup or not. + + + + + Takes an angle and clamps it so it is within the passed-in and range. will inversely clamp the angle, clamping it to the range outside of the given bounds. + + + + + Sets whether this modification will call in the Godot editor to draw modification-specific gizmos. + + + + + Returns whether this modification will call in the Godot editor to draw modification-specific gizmos. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'execution_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw_editor_gizmo' method. + + + + + Cached name for the '_execute' method. + + + + + Cached name for the '_setup_modification' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'get_enabled' method. + + + + + Cached name for the 'get_modification_stack' method. + + + + + Cached name for the 'set_is_setup' method. + + + + + Cached name for the 'get_is_setup' method. + + + + + Cached name for the 'set_execution_mode' method. + + + + + Cached name for the 'get_execution_mode' method. + + + + + Cached name for the 'clamp_angle' method. + + + + + Cached name for the 'set_editor_draw_gizmo' method. + + + + + Cached name for the 'get_editor_draw_gizmo' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This uses an algorithm called Cyclic Coordinate Descent Inverse Kinematics, or CCDIK, to manipulate a chain of bones in a so it reaches a defined target. + CCDIK works by rotating a set of bones, typically called a "bone chain", on a single axis. Each bone is rotated to face the target from the tip (by default), which over a chain of bones allow it to rotate properly to reach the target. Because the bones only rotate on a single axis, CCDIK can look more robotic than other IK solvers. + Note: The CCDIK modifier has ccdik_joints, which are the data objects that hold the data for each joint in the CCDIK chain. This is different from a bone! CCDIK joints hold the data needed for each bone in the bone chain used by CCDIK. + CCDIK also fully supports angle constraints, allowing for more control over how a solution is met. + + + + + The NodePath to the node that is the target for the CCDIK modification. This node is what the CCDIK chain will attempt to rotate the bone chain to. + + + + + The end position of the CCDIK chain. Typically, this should be a child of a node attached to the final in the CCDIK chain. + + + + + The number of CCDIK joints in the CCDIK modification. + + + + + Sets the node assigned to the CCDIK joint at . + + + + + Returns the node assigned to the CCDIK joint at . + + + + + Sets the bone index, , of the CCDIK joint at . When possible, this will also update the bone2d_node of the CCDIK joint based on data provided by the linked skeleton. + + + + + Returns the index of the node assigned to the CCDIK joint at . + + + + + Sets whether the joint at is set to rotate from the joint, , or to rotate from the tip, . + + + + + Returns whether the joint at is set to rotate from the joint, , or to rotate from the tip, . The default is to rotate from the tip. + + + + + Determines whether angle constraints on the CCDIK joint at are enabled. When , constraints will be enabled and taken into account when solving. + + + + + Returns whether angle constraints on the CCDIK joint at are enabled. + + + + + Sets the minimum angle constraint for the joint at . + + + + + Returns the minimum angle constraint for the joint at . + + + + + Sets the maximum angle constraint for the joint at . + + + + + Returns the maximum angle constraint for the joint at . + + + + + Sets whether the CCDIK joint at uses an inverted joint constraint. + An inverted joint constraint only constraints the CCDIK joint to the angles outside of the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values. + + + + + Returns whether the CCDIK joint at uses an inverted joint constraint. See for details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'tip_nodepath' property. + + + + + Cached name for the 'ccdik_data_chain_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_tip_node' method. + + + + + Cached name for the 'get_tip_node' method. + + + + + Cached name for the 'set_ccdik_data_chain_length' method. + + + + + Cached name for the 'get_ccdik_data_chain_length' method. + + + + + Cached name for the 'set_ccdik_joint_bone2d_node' method. + + + + + Cached name for the 'get_ccdik_joint_bone2d_node' method. + + + + + Cached name for the 'set_ccdik_joint_bone_index' method. + + + + + Cached name for the 'get_ccdik_joint_bone_index' method. + + + + + Cached name for the 'set_ccdik_joint_rotate_from_joint' method. + + + + + Cached name for the 'get_ccdik_joint_rotate_from_joint' method. + + + + + Cached name for the 'set_ccdik_joint_enable_constraint' method. + + + + + Cached name for the 'get_ccdik_joint_enable_constraint' method. + + + + + Cached name for the 'set_ccdik_joint_constraint_angle_min' method. + + + + + Cached name for the 'get_ccdik_joint_constraint_angle_min' method. + + + + + Cached name for the 'set_ccdik_joint_constraint_angle_max' method. + + + + + Cached name for the 'get_ccdik_joint_constraint_angle_max' method. + + + + + Cached name for the 'set_ccdik_joint_constraint_angle_invert' method. + + + + + Cached name for the 'get_ccdik_joint_constraint_angle_invert' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This 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 . FABRIK also supports angle constraints, which are fully taken into account when solving. + Note: The FABRIK modifier has fabrik_joints, which are the data objects that hold the data for each joint in the FABRIK chain. This is different from nodes! FABRIK joints hold the data needed for each 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. + + + + + The NodePath to the node that is the target for the FABRIK modification. This node is what the FABRIK chain will attempt to rotate the bone chain to. + + + + + The number of FABRIK joints in the FABRIK modification. + + + + + Sets the node assigned to the FABRIK joint at . + + + + + Returns the node assigned to the FABRIK joint at . + + + + + Sets the bone index, , of the FABRIK joint at . When possible, this will also update the bone2d_node of the FABRIK joint based on data provided by the linked skeleton. + + + + + Returns the index of the node assigned to the FABRIK joint at . + + + + + Sets the magnet position vector for the joint at . + + + + + Returns the magnet position vector for the joint at . + + + + + Sets whether the joint at will use the target node's rotation rather than letting FABRIK rotate the node. + Note: This option only works for the tip/final joint in the chain. For all other nodes, this option will be ignored. + + + + + Returns whether the joint is using the target's rotation rather than allowing FABRIK to rotate the joint. This option only applies to the tip/final joint in the chain. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'fabrik_data_chain_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_fabrik_data_chain_length' method. + + + + + Cached name for the 'get_fabrik_data_chain_length' method. + + + + + Cached name for the 'set_fabrik_joint_bone2d_node' method. + + + + + Cached name for the 'get_fabrik_joint_bone2d_node' method. + + + + + Cached name for the 'set_fabrik_joint_bone_index' method. + + + + + Cached name for the 'get_fabrik_joint_bone_index' method. + + + + + Cached name for the 'set_fabrik_joint_magnet_position' method. + + + + + Cached name for the 'get_fabrik_joint_magnet_position' method. + + + + + Cached name for the 'set_fabrik_joint_use_target_rotation' method. + + + + + Cached name for the 'get_fabrik_joint_use_target_rotation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This modification moves a series of bones, typically called a bone chain, towards a target. What makes this modification special is that it calculates the velocity and acceleration for each bone in the bone chain, and runs a very light physics-like calculation using the inputted values. This allows the bones to overshoot the target and "jiggle" around. It can be configured to act more like a spring, or sway around like cloth might. + This modification is useful for adding additional motion to things like hair, the edges of clothing, and more. It has several settings to that allow control over how the joint moves when the target moves. + Note: The Jiggle modifier has jiggle_joints, which are the data objects that hold the data for each joint in the Jiggle chain. This is different from than nodes! Jiggle joints hold the data needed for each in the bone chain used by the Jiggle modification. + + + + + The NodePath to the node that is the target for the Jiggle modification. This node is what the Jiggle chain will attempt to rotate the bone chain to. + + + + + The amount of Jiggle joints in the Jiggle modification. + + + + + The default amount of stiffness assigned to the Jiggle joints, if they are not overridden. Higher values act more like springs, quickly moving into the correct position. + + + + + The default amount of mass assigned to the Jiggle joints, if they are not overridden. Higher values lead to faster movements and more overshooting. + + + + + The default amount of damping applied to the Jiggle joints, if they are not overridden. Higher values lead to more of the calculated velocity being applied. + + + + + Whether the gravity vector, , should be applied to the Jiggle joints, assuming they are not overriding the default settings. + + + + + The default amount of gravity applied to the Jiggle joints, if they are not overridden. + + + + + If , the Jiggle modifier will take colliders into account, keeping them from entering into these collision objects. + + + + + Returns whether the jiggle modifier is taking physics colliders into account when solving. + + + + + Sets the collision mask that the Jiggle modifier will use when reacting to colliders, if the Jiggle modifier is set to take colliders into account. + + + + + Returns the collision mask used by the Jiggle modifier when collisions are enabled. + + + + + Sets the node assigned to the Jiggle joint at . + + + + + Returns the node assigned to the Jiggle joint at . + + + + + Sets the bone index, , of the Jiggle joint at . When possible, this will also update the bone2d_node of the Jiggle joint based on data provided by the linked skeleton. + + + + + Returns the index of the node assigned to the Jiggle joint at . + + + + + Sets whether the Jiggle joint at should override the default Jiggle joint settings. Setting this to will make the joint use its own settings rather than the default ones attached to the modification. + + + + + Returns a boolean that indicates whether the joint at is overriding the default Jiggle joint data defined in the modification. + + + + + Sets the of stiffness of the Jiggle joint at . + + + + + Returns the stiffness of the Jiggle joint at . + + + + + Sets the of mass of the Jiggle joint at . + + + + + Returns the amount of mass of the jiggle joint at . + + + + + Sets the amount of damping of the Jiggle joint at . + + + + + Returns the amount of damping of the Jiggle joint at . + + + + + Sets whether the Jiggle joint at should use gravity. + + + + + Returns a boolean that indicates whether the joint at is using gravity or not. + + + + + Sets the gravity vector of the Jiggle joint at . + + + + + Returns a representing the amount of gravity the Jiggle joint at is influenced by. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'jiggle_data_chain_length' property. + + + + + Cached name for the 'stiffness' property. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'damping' property. + + + + + Cached name for the 'use_gravity' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_jiggle_data_chain_length' method. + + + + + Cached name for the 'get_jiggle_data_chain_length' method. + + + + + Cached name for the 'set_stiffness' method. + + + + + Cached name for the 'get_stiffness' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_damping' method. + + + + + Cached name for the 'get_damping' method. + + + + + Cached name for the 'set_use_gravity' method. + + + + + Cached name for the 'get_use_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_use_colliders' method. + + + + + Cached name for the 'get_use_colliders' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_jiggle_joint_bone2d_node' method. + + + + + Cached name for the 'get_jiggle_joint_bone2d_node' method. + + + + + Cached name for the 'set_jiggle_joint_bone_index' method. + + + + + Cached name for the 'get_jiggle_joint_bone_index' method. + + + + + Cached name for the 'set_jiggle_joint_override' method. + + + + + Cached name for the 'get_jiggle_joint_override' method. + + + + + Cached name for the 'set_jiggle_joint_stiffness' method. + + + + + Cached name for the 'get_jiggle_joint_stiffness' method. + + + + + Cached name for the 'set_jiggle_joint_mass' method. + + + + + Cached name for the 'get_jiggle_joint_mass' method. + + + + + Cached name for the 'set_jiggle_joint_damping' method. + + + + + Cached name for the 'get_jiggle_joint_damping' method. + + + + + Cached name for the 'set_jiggle_joint_use_gravity' method. + + + + + Cached name for the 'get_jiggle_joint_use_gravity' method. + + + + + Cached name for the 'set_jiggle_joint_gravity' method. + + + + + Cached name for the 'get_jiggle_joint_gravity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This 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. + + + + + The index of the node that the modification will operate on. + + + + + The node that the modification will operate on. + + + + + The NodePath to the node that is the target for the LookAt modification. This node is what the modification will rotate the to. + + + + + Sets the amount of additional rotation that is to be applied after executing the modification. This allows for offsetting the results by the inputted rotation amount. + + + + + Returns the amount of additional rotation that is applied after the LookAt modification executes. + + + + + Sets whether this modification will use constraints or not. When , constraints will be applied when solving the LookAt modification. + + + + + Returns if the LookAt modification is using constraints. + + + + + Sets the constraint's minimum allowed angle. + + + + + Returns the constraint's minimum allowed angle. + + + + + Sets the constraint's maximum allowed angle. + + + + + Returns the constraint's maximum allowed angle. + + + + + When , the modification will use an inverted joint constraint. + An inverted joint constraint only constraints the to the angles outside of the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values. + + + + + Returns whether the constraints to this modification are inverted or not. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bone_index' property. + + + + + Cached name for the 'bone2d_node' property. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bone2d_node' method. + + + + + Cached name for the 'get_bone2d_node' method. + + + + + Cached name for the 'set_bone_index' method. + + + + + Cached name for the 'get_bone_index' method. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_additional_rotation' method. + + + + + Cached name for the 'get_additional_rotation' method. + + + + + Cached name for the 'set_enable_constraint' method. + + + + + Cached name for the 'get_enable_constraint' method. + + + + + Cached name for the 'set_constraint_angle_min' method. + + + + + Cached name for the 'get_constraint_angle_min' method. + + + + + Cached name for the 'set_constraint_angle_max' method. + + + + + Cached name for the 'get_constraint_angle_max' method. + + + + + Cached name for the 'set_constraint_angle_invert' method. + + + + + Cached name for the 'get_constraint_angle_invert' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This modification takes the transforms of nodes and applies them to nodes. This allows the nodes to react to physics thanks to the linked nodes. + + + + + The number of nodes linked in this modification. + + + + + Sets the node at . + Note: This is just the index used for this modification, not the bone index used in the . + + + + + Returns the node at . + + + + + Empties the list of nodes and populates it with all nodes that are children of the . + + + + + Tell the nodes to start simulating and interacting with the physics world. + Optionally, an array of bone names can be passed to this function, and that will cause only nodes with those names to start simulating. + + + + + Tell the nodes to stop simulating and interacting with the physics world. + Optionally, an array of bone names can be passed to this function, and that will cause only nodes with those names to stop simulating. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'physical_bone_chain_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_physical_bone_chain_length' method. + + + + + Cached name for the 'get_physical_bone_chain_length' method. + + + + + Cached name for the 'set_physical_bone_node' method. + + + + + Cached name for the 'get_physical_bone_node' method. + + + + + Cached name for the 'fetch_physical_bones' method. + + + + + Cached name for the 'start_simulation' method. + + + + + Cached name for the 'stop_simulation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This holds a reference to a , allowing you to use multiple modification stacks on a single . + Note: The modifications in the held will only be executed if their execution mode matches the execution mode of the SkeletonModification2DStackHolder. + + + + + Sets the that this modification is holding. This modification stack will then be executed when this modification is executed. + + + + + Returns the that this modification is holding. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_held_modification_stack' method. + + + + + Cached name for the 'get_held_modification_stack' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This 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 , but gives similar, natural looking results. + + + + + The NodePath to the node that is the target for the TwoBoneIK modification. This node is what the modification will use when bending the nodes. + + + + + The minimum distance the target can be at. If the target is closer than this distance, the modification will solve as if it's at this minimum distance. When set to 0, the modification will solve without distance constraints. + + + + + The maximum distance the target can be at. If the target is farther than this distance, the modification will solve as if it's at this maximum distance. When set to 0, the modification will solve without distance constraints. + + + + + If , the bones in the modification will bend outward as opposed to inwards when contracting. If , the bones will bend inwards when contracting. + + + + + Sets the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Returns the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Sets the index of the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Returns the index of the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Sets the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Returns the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Sets the index of the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Returns the index of the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'target_minimum_distance' property. + + + + + Cached name for the 'target_maximum_distance' property. + + + + + Cached name for the 'flip_bend_direction' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_target_minimum_distance' method. + + + + + Cached name for the 'get_target_minimum_distance' method. + + + + + Cached name for the 'set_target_maximum_distance' method. + + + + + Cached name for the 'get_target_maximum_distance' method. + + + + + Cached name for the 'set_flip_bend_direction' method. + + + + + Cached name for the 'get_flip_bend_direction' method. + + + + + Cached name for the 'set_joint_one_bone2d_node' method. + + + + + Cached name for the 'get_joint_one_bone2d_node' method. + + + + + Cached name for the 'set_joint_one_bone_idx' method. + + + + + Cached name for the 'get_joint_one_bone_idx' method. + + + + + Cached name for the 'set_joint_two_bone2d_node' method. + + + + + Cached name for the 'get_joint_two_bone2d_node' method. + + + + + Cached name for the 'set_joint_two_bone_idx' method. + + + + + Cached name for the 'get_joint_two_bone_idx' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource is used by the Skeleton and holds a stack of 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 before the arms on a humanoid skeleton. + This resource also controls how strongly all of the modifications are applied to the . + + + + + If , the modification's in the stack will be called. This is handled automatically through the node. + + + + + The interpolation strength of the modifications in stack. A value of 0 will make it where the modifications are not applied, a strength of 0.5 will be half applied, and a strength of 1 will allow the modifications to be fully applied and override the poses. + + + + + The number of modifications in the stack. + + + + + Sets up the modification stack so it can execute. This function should be called by and shouldn't be manually called unless you know what you are doing. + + + + + Executes all of the s in the stack that use the same execution mode as the passed-in , starting from index 0 to . + Note: The order of the modifications can matter depending on the modifications. For example, modifications on a spine should operate before modifications on the arms in order to get proper results. + + + + + Enables all s in the stack. + + + + + Returns the at the passed-in index, . + + + + + Adds the passed-in to the stack. + + + + + Deletes the at the index position , if it exists. + + + + + Sets the modification at to the passed-in modification, . + + + + + Returns a boolean that indicates whether the modification stack is setup and can execute. + + + + + Returns the node that the SkeletonModificationStack2D is bound to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'strength' property. + + + + + Cached name for the 'modification_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'enable_all_modifications' method. + + + + + Cached name for the 'get_modification' method. + + + + + Cached name for the 'add_modification' method. + + + + + Cached name for the 'delete_modification' method. + + + + + Cached name for the 'set_modification' method. + + + + + Cached name for the 'set_modification_count' method. + + + + + Cached name for the 'get_modification_count' method. + + + + + Cached name for the 'get_is_setup' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'get_enabled' method. + + + + + Cached name for the 'set_strength' method. + + + + + Cached name for the 'get_strength' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + retrieves a target by having a parent. + If there is , modification always performs after playback process of the . + This node should be used to implement custom IK solvers, constraints, or skeleton physics. + + + + + If , the will be processing. + + + + + Sets the influence of the modification. + Note: This value is used by to blend, so the should always apply only 100% of the result without interpolation. + + + + + Override this virtual method to implement a custom skeleton modifier. You should do things like get the 's current pose and apply the pose here. + must not apply to bone poses because the automatically applies influence to all bone poses set by the modifier. + + + + + Get parent node if found. + + + + + Notifies when the modification have been finished. + Note: If you want to get the modified bone pose by the modifier, you must use or at the moment this signal is fired. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'active' property. + + + + + Cached name for the 'influence' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_modification' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'set_influence' method. + + + + + Cached name for the 'get_influence' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'modification_processed' signal. + + + + + This resource is used in EditorScenePostImport. Some parameters are referring to bones in , , , and some other nodes are rewritten based on the parameters of . + Note: These parameters need to be set only when creating a custom profile. In , they are defined internally as read-only values. + + + + + Direction to the average coordinates of bone children. + + + + + Direction to the coordinates of specified bone child. + + + + + Direction is not calculated. + + + + + A bone name that will be used as the root bone in . This should be the bone of the parent of hips that exists at the world origin. + + + + + A bone name which will use model's height as the coefficient for normalization. For example, defines it as Hips. + + + + + The amount of groups of bones in retargeting section's editor. For example, has 4 groups. + This property exists to separate the bone list into several sections in the editor. + + + + + The amount of bones in retargeting section's editor. For example, has 56 bones. + The size of elements in updates when changing this property in it's assigned . + + + + + Returns the name of the group at that will be the drawing group in the editor. + + + + + Sets the name of the group at that will be the drawing group in the editor. + + + + + Returns the texture of the group at that will be the drawing group background image in the editor. + + + + + Sets the texture of the group at that will be the drawing group background image in the editor. + + + + + Returns the bone index that matches as its name. + + + + + Returns the name of the bone at that will be the key name in the . + In the retargeting process, the returned bone name is the bone name of the target skeleton. + + + + + Sets the name of the bone at that will be the key name in the . + In the retargeting process, the setting bone name is the bone name of the target skeleton. + + + + + Returns the name of the bone which is the parent to the bone at . The result is empty if the bone has no parent. + + + + + Sets the bone with name as the parent of the bone at . If an empty string is passed, then the bone has no parent. + + + + + Returns the tail direction of the bone at . + + + + + Sets the tail direction of the bone at . + Note: This only specifies the method of calculation. The actual coordinates required should be stored in an external skeleton, so the calculation itself needs to be done externally. + + + + + Returns the name of the bone which is the tail of the bone at . + + + + + Sets the bone with name as the tail of the bone at . + + + + + Returns the reference pose transform for bone . + + + + + Sets the reference pose transform for bone . + + + + + Returns the offset of the bone at that will be the button position in the editor. + This is the offset with origin at the top left corner of the square. + + + + + Sets the offset of the bone at that will be the button position in the editor. + This is the offset with origin at the top left corner of the square. + + + + + Returns the group of the bone at . + + + + + Sets the group of the bone at . + + + + + Returns whether the bone at is required for retargeting. + This value is used by the bone map editor. If this method returns , and no bone is assigned, the handle color will be red on the bone map editor. + + + + + Sets the required status for bone to . + + + + + This signal is emitted when change the value in profile. This is used to update key name in the and to redraw the editor. + Note: This signal is not connected directly to editor to simplify the reference, instead it is passed on to editor through the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_bone' property. + + + + + Cached name for the 'scale_base_bone' property. + + + + + Cached name for the 'group_size' property. + + + + + Cached name for the 'bone_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_bone' method. + + + + + Cached name for the 'get_root_bone' method. + + + + + Cached name for the 'set_scale_base_bone' method. + + + + + Cached name for the 'get_scale_base_bone' method. + + + + + Cached name for the 'set_group_size' method. + + + + + Cached name for the 'get_group_size' method. + + + + + Cached name for the 'get_group_name' method. + + + + + Cached name for the 'set_group_name' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'set_bone_size' method. + + + + + Cached name for the 'get_bone_size' method. + + + + + Cached name for the 'find_bone' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_parent' method. + + + + + Cached name for the 'set_bone_parent' method. + + + + + Cached name for the 'get_tail_direction' method. + + + + + Cached name for the 'set_tail_direction' method. + + + + + Cached name for the 'get_bone_tail' method. + + + + + Cached name for the 'set_bone_tail' method. + + + + + Cached name for the 'get_reference_pose' method. + + + + + Cached name for the 'set_reference_pose' method. + + + + + Cached name for the 'get_handle_offset' method. + + + + + Cached name for the 'set_handle_offset' method. + + + + + Cached name for the 'get_group' method. + + + + + Cached name for the 'set_group' method. + + + + + Cached name for the 'is_required' method. + + + + + Cached name for the 'set_required' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'profile_updated' signal. + + + + + A as a preset that is optimized for the human form. This exists for standardization, so all parameters are read-only. + A humanoid skeleton profile contains 54 bones divided in 4 groups: "Body", "Face", "LeftHand", and "RightHand". It is structured as follows: + + Root + └─ Hips + ├─ LeftUpperLeg + │ └─ LeftLowerLeg + │ └─ LeftFoot + │ └─ LeftToes + ├─ RightUpperLeg + │ └─ RightLowerLeg + │ └─ RightFoot + │ └─ RightToes + └─ Spine + └─ Chest + └─ UpperChest + ├─ Neck + │ └─ Head + │ ├─ Jaw + │ ├─ LeftEye + │ └─ RightEye + ├─ LeftShoulder + │ └─ LeftUpperArm + │ └─ LeftLowerArm + │ └─ LeftHand + │ ├─ LeftThumbMetacarpal + │ │ └─ LeftThumbProximal + │ ├─ LeftIndexProximal + │ │ └─ LeftIndexIntermediate + │ │ └─ LeftIndexDistal + │ ├─ LeftMiddleProximal + │ │ └─ LeftMiddleIntermediate + │ │ └─ LeftMiddleDistal + │ ├─ LeftRingProximal + │ │ └─ LeftRingIntermediate + │ │ └─ LeftRingDistal + │ └─ LeftLittleProximal + │ └─ LeftLittleIntermediate + │ └─ LeftLittleDistal + └─ RightShoulder + └─ RightUpperArm + └─ RightLowerArm + └─ RightHand + ├─ RightThumbMetacarpal + │ └─ RightThumbProximal + ├─ RightIndexProximal + │ └─ RightIndexIntermediate + │ └─ RightIndexDistal + ├─ RightMiddleProximal + │ └─ RightMiddleIntermediate + │ └─ RightMiddleDistal + ├─ RightRingProximal + │ └─ RightRingIntermediate + │ └─ RightRingDistal + └─ RightLittleProximal + └─ RightLittleIntermediate + └─ RightLittleDistal + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bind_count' method. + + + + + Cached name for the 'get_bind_count' method. + + + + + Cached name for the 'add_bind' method. + + + + + Cached name for the 'add_named_bind' method. + + + + + Cached name for the 'set_bind_pose' method. + + + + + Cached name for the 'get_bind_pose' method. + + + + + Cached name for the 'set_bind_name' method. + + + + + Cached name for the 'get_bind_name' method. + + + + + Cached name for the 'set_bind_bone' method. + + + + + Cached name for the 'get_bind_bone' method. + + + + + Cached name for the 'clear_binds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An internal object containing a mapping from a used within the context of a particular to refer to the skeleton's in the RenderingServer. + See also and . + Note that despite the similar naming, the skeleton RID used in the does not have a direct one-to-one correspondence to a node. + In particular, a node with no children may be unknown to the . + On the other hand, a with multiple nodes which each have different objects may have multiple SkinReference instances (and hence, multiple skeleton s). + + + + + Returns the owned by this SkinReference, as returned by . + + + + + Returns the connected to this SkinReference. In the case of with no assigned, this will reference an internal default owned by that . + Note that a single may have more than one in the case that it is shared by meshes across multiple nodes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class uses a to render a 3D environment's background and the light it emits by updating the reflection/radiance cubemaps. + + + + + Radiance texture size is 32×32 pixels. + + + + + Radiance texture size is 64×64 pixels. + + + + + Radiance texture size is 128×128 pixels. + + + + + Radiance texture size is 256×256 pixels. + + + + + Radiance texture size is 512×512 pixels. + + + + + Radiance texture size is 1024×1024 pixels. + + + + + Radiance texture size is 2048×2048 pixels. + + + + + Represents the size of the enum. + + + + + Automatically selects the appropriate process mode based on your sky shader. If your shader uses TIME or POSITION, this will use . If your shader uses any of the LIGHT_* variables or any custom uniforms, this uses . Otherwise, this defaults to . + + + + + Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than 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 ProjectSettings.rendering/reflections/sky_reflections/ggx_samples. + + + + + Uses the same high quality importance sampling to process the radiance map as , but updates over several frames. The number of frames is determined by ProjectSettings.rendering/reflections/sky_reflections/roughness_layers. Use this when you need highest quality radiance maps, but have a sky that updates slowly. + + + + + 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 ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality. + Note: The fast filtering algorithm is limited to 256×256 cubemaps, so must be set to . Otherwise, a warning is printed and the overridden radiance size is ignored. + + + + + used to draw the background. Can be , , , or even a if you want to use your own custom shader. + + + + + Sets the method for generating the radiance map from the sky. The radiance map is a cubemap with increasingly blurry versions of the sky corresponding to different levels of roughness. Radiance maps can be expensive to calculate. See for options. + + + + + The 's radiance map size. The higher the radiance map size, the more detailed the lighting from the will be. + See constants for values. + Note: Some hardware will have trouble with higher radiance sizes, especially and above. Only use such high values on high-end hardware. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sky_material' property. + + + + + Cached name for the 'process_mode' property. + + + + + Cached name for the 'radiance_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radiance_size' method. + + + + + Cached name for the 'get_radiance_size' method. + + + + + Cached name for the 'set_process_mode' method. + + + + + Cached name for the 'get_process_mode' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for sliders, used to adjust a value by moving a grabber along a horizontal or vertical axis. Sliders are -based controls. + + + + + If , the slider can be interacted with. If , the value can be changed only by code. + + + + + If , the value can be changed using the mouse wheel. + + + + + Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers. + + + + + If , the slider will display ticks for minimum and maximum values. + + + + + Emitted when the grabber starts being dragged. This is emitted before the corresponding signal. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the grabber stops being dragged. If valueChanged is , is different from the value when the dragging was started. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'scrollable' property. + + + + + Cached name for the 'tick_count' property. + + + + + Cached name for the 'ticks_on_borders' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ticks' method. + + + + + Cached name for the 'get_ticks' method. + + + + + Cached name for the 'get_ticks_on_borders' method. + + + + + Cached name for the 'set_ticks_on_borders' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_scrollable' method. + + + + + Cached name for the 'is_scrollable' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'drag_started' signal. + + + + + Cached name for the 'drag_ended' signal. + + + + + 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 representing a piston base, while Body B could be a representing the piston head, moving up and down. + + + + + Constant for accessing linear_limit/upper_distance. The maximum difference between the pivot points on their X axis before damping happens. + + + + + Constant for accessing linear_limit/lower_distance. The minimum difference between the pivot points on their X axis before damping happens. + + + + + Constant for accessing linear_limit/softness. A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement. + + + + + Constant for accessing linear_limit/restitution. The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost. + + + + + Constant for accessing linear_limit/damping. The amount of damping once the slider limits are surpassed. + + + + + Constant for accessing linear_motion/softness. 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. + + + + + Constant for accessing linear_motion/restitution. The amount of restitution inside the slider limits. + + + + + Constant for accessing linear_motion/damping. The amount of damping inside the slider limits. + + + + + Constant for accessing linear_ortho/softness. A factor applied to the movement across axes orthogonal to the slider. + + + + + Constant for accessing linear_motion/restitution. The amount of restitution when movement is across axes orthogonal to the slider. + + + + + Constant for accessing linear_motion/damping. The amount of damping when movement is across axes orthogonal to the slider. + + + + + Constant for accessing angular_limit/upper_angle. The upper limit of rotation in the slider. + + + + + Constant for accessing angular_limit/lower_angle. The lower limit of rotation in the slider. + + + + + Constant for accessing angular_limit/softness. A factor applied to the all rotation once the limit is surpassed. + + + + + Constant for accessing angular_limit/restitution. The amount of restitution of the rotation when the limit is surpassed. + + + + + Constant for accessing angular_limit/damping. The amount of damping of the rotation when the limit is surpassed. + + + + + Constant for accessing angular_motion/softness. A factor applied to the all rotation in the limits. + + + + + Constant for accessing angular_motion/restitution. The amount of restitution of the rotation in the limits. + + + + + Constant for accessing angular_motion/damping. The amount of damping of the rotation in the limits. + + + + + Constant for accessing angular_ortho/softness. A factor applied to the all rotation across axes orthogonal to the slider. + + + + + Constant for accessing angular_ortho/restitution. The amount of restitution of the rotation across axes orthogonal to the slider. + + + + + Constant for accessing angular_ortho/damping. The amount of damping of the rotation across axes orthogonal to the slider. + + + + + Represents the size of the enum. + + + + + Assigns to the given parameter (see constants). + + + + + Returns the value of the given parameter (see constants). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A deformable 3D physics mesh. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials. + Additionally, is subject to wind forces defined in (see , , and ). + Note: There are many known bugs in . Therefore, it's not recommended to use them for things that can affect gameplay (such as trampolines). + + + + + When is set to , remove from the physics simulation to stop all physics interactions with this . + Automatically re-added to the physics simulation when the is processed again. + + + + + When is set to , do not affect the physics simulation. + + + + + The physics layers this SoftBody3D is in. Collision objects can exist in one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this SoftBody3D scans. Collision objects can scan one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + to a this SoftBody3D should avoid clipping. + + + + + Increasing this value will improve the resulting simulation, but can affect performance. Use with care. + + + + + The SoftBody3D's mass. + + + + + Higher values will result in a stiffer body, while lower values will increase the body's ability to bend. The value can be between 0.0 and 1.0 (inclusive). + + + + + The pressure coefficient of this soft body. Simulate pressure build-up from inside this body. Higher values increase the strength of this effect. + + + + + The body's damping coefficient. Higher values will slow down the body more noticeably when forces are applied. + + + + + The body's drag coefficient. Higher values increase this body's air resistance. + Note: This value is currently unused by Godot's default physics implementation. + + + + + If , the will respond to s. + + + + + Defines the behavior in physics when is set to . See for more details about the different modes. + + + + + Returns the internal used by the for this body. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Returns an array of nodes that were added as collision exceptions for this body. + + + + + Adds a body to the list of bodies that this body can't collide with. + + + + + Removes a body from the list of bodies that this body can't collide with. + + + + + Returns local translation of a vertex in the surface array. + + + + + Sets the pinned state of a surface vertex. When set to , the optional can define a the pinned vertex will be attached to. + + + + + Returns if vertex is set to pinned. + + + + + Sets the pinned state of a surface vertex. When set to , the optional can define a the pinned vertex will be attached to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'parent_collision_ignore' property. + + + + + Cached name for the 'simulation_precision' property. + + + + + Cached name for the 'total_mass' property. + + + + + Cached name for the 'linear_stiffness' property. + + + + + Cached name for the 'pressure_coefficient' property. + + + + + Cached name for the 'damping_coefficient' property. + + + + + Cached name for the 'drag_coefficient' property. + + + + + Cached name for the 'ray_pickable' property. + + + + + Cached name for the 'disable_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_physics_rid' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_parent_collision_ignore' method. + + + + + Cached name for the 'get_parent_collision_ignore' method. + + + + + Cached name for the 'set_disable_mode' method. + + + + + Cached name for the 'get_disable_mode' method. + + + + + Cached name for the 'get_collision_exceptions' method. + + + + + Cached name for the 'add_collision_exception_with' method. + + + + + Cached name for the 'remove_collision_exception_with' method. + + + + + Cached name for the 'set_simulation_precision' method. + + + + + Cached name for the 'get_simulation_precision' method. + + + + + Cached name for the 'set_total_mass' method. + + + + + Cached name for the 'get_total_mass' method. + + + + + Cached name for the 'set_linear_stiffness' method. + + + + + Cached name for the 'get_linear_stiffness' method. + + + + + Cached name for the 'set_pressure_coefficient' method. + + + + + Cached name for the 'get_pressure_coefficient' method. + + + + + Cached name for the 'set_damping_coefficient' method. + + + + + Cached name for the 'get_damping_coefficient' method. + + + + + Cached name for the 'set_drag_coefficient' method. + + + + + Cached name for the 'get_drag_coefficient' method. + + + + + Cached name for the 'get_point_transform' method. + + + + + Cached name for the 'set_point_pinned' method. + + + + + Cached name for the 'is_point_pinned' method. + + + + + Cached name for the 'set_ray_pickable' method. + + + + + Cached name for the 'is_ray_pickable' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a spherical . + + + + + Radius of sphere. + + + + + Full height of the sphere. + + + + + Number of radial segments on the sphere. + + + + + Number of segments along the height of the sphere. + + + + + If , a hemisphere is created rather than a full sphere. + Note: To get a regular hemisphere, the height and radius of the sphere must be equal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'is_hemisphere' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_is_hemisphere' method. + + + + + Cached name for the 'get_is_hemisphere' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a sphere shape that can be used by the engine's occlusion culling system. + See 's documentation for instructions on setting up occlusion culling. + + + + + The sphere's radius in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D sphere shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than , , and . + + + + + The sphere's radius. The shape's diameter is double the radius. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a numerical input text field. It allows entering integers and floating-point numbers. + Example: Create a , disable its context menu and set its text alignment to right. + + var spinBox = new SpinBox(); + AddChild(spinBox); + var lineEdit = spinBox.GetLineEdit(); + lineEdit.ContextMenuEnabled = false; + spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right; + + See class for more options over the . + Note: With the 's context menu disabled, you can right-click the bottom half of the spinbox to set the value to its minimum, while right-clicking the top half sets the value to its maximum. + Note: relies on an underlying node. To theme a 's background, add theme items for and customize them. The has the SpinBoxInnerLineEdit theme variation, so that you can give it a distinct appearance from regular s. + Note: If you want to implement drag and drop for the underlying , you can use on the node returned by . + + + + + Changes the alignment of the underlying . + + + + + If , the will be editable. Otherwise, it will be read only. + + + + + Sets the value of the for this when the text is changed instead of submitted. See and . + + + + + Adds the specified prefix string before the numerical value of the . + + + + + Adds the specified suffix string after the numerical value of the . + + + + + If not 0, will always be rounded to a multiple of when interacting with the arrow buttons of the . + + + + + If , the will select the whole text when the gains focus. Clicking the up and down arrows won't trigger this behavior. + + + + + Applies the current value of this . + + + + + Returns the instance from this . You can use it to access properties and methods of . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'update_on_text_changed' property. + + + + + Cached name for the 'prefix' property. + + + + + Cached name for the 'suffix' property. + + + + + Cached name for the 'custom_arrow_step' property. + + + + + Cached name for the 'select_all_on_focus' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_suffix' method. + + + + + Cached name for the 'get_suffix' method. + + + + + Cached name for the 'set_prefix' method. + + + + + Cached name for the 'get_prefix' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'set_custom_arrow_step' method. + + + + + Cached name for the 'get_custom_arrow_step' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_update_on_text_changed' method. + + + + + Cached name for the 'get_update_on_text_changed' method. + + + + + Cached name for the 'set_select_all_on_focus' method. + + + + + Cached name for the 'is_select_all_on_focus' method. + + + + + Cached name for the 'apply' method. + + + + + Cached name for the 'get_line_edit' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The split dragger icon is always visible when autohide is , otherwise visible only when the cursor hovers it. + The size of the grabber icon determines the minimum separation. + The dragger icon is automatically hidden if the length of the grabber icon is longer than the split bar. + + + + + The split dragger icon is never visible regardless of the value of autohide. + The size of the grabber icon determines the minimum separation. + + + + + The split dragger icon is not visible, and the split bar is collapsed to zero thickness. + + + + + The initial offset of the splitting between the two s, with 0 being at the end of the first . + + + + + If , the dragger will be disabled and the children will be sized as if the was 0. + + + + + Enables or disables split dragging. + + + + + Determines the dragger's visibility. See for details. This property does not determine whether dragging is enabled or not. Use for that. + + + + + If , the will arrange its children vertically, rather than horizontally. + Can't be changed when using and . + + + + + Reduces the size of the drag area and split bar split_bar_background at the beginning of the container. + + + + + Reduces the size of the drag area and split bar split_bar_background at the end of the container. + + + + + Shifts the drag area in the axis of the container to prevent the drag area from overlapping the or other selectable of a child node. + + + + + Highlights the drag area so you can see where it is during development. The drag area is gold if is , and red if . + + + + + Clamps the value to not go outside the currently possible minimal and maximum values. + + + + + Returns the drag area . For example, you can move a pre-configured button into the drag area so that it rides along with the split bar. Try setting the anchors to center prior to the reparent() call. + + $BarnacleButton.reparent($SplitContainer.get_drag_area_control()) + + Note: The drag area is drawn over the 's children, so draw objects called from the and children added to the will also appear over the 's children. Try setting of custom children to to prevent blocking the mouse from dragging if desired. + Warning: This is a required internal node, removing and freeing it may cause a crash. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the dragger is dragged by user. + + + + + Emitted when the user starts dragging. + + + + + Emitted when the user ends dragging. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'split_offset' property. + + + + + Cached name for the 'collapsed' property. + + + + + Cached name for the 'dragging_enabled' property. + + + + + Cached name for the 'dragger_visibility' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached name for the 'drag_area_margin_begin' property. + + + + + Cached name for the 'drag_area_margin_end' property. + + + + + Cached name for the 'drag_area_offset' property. + + + + + Cached name for the 'drag_area_highlight_in_editor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_split_offset' method. + + + + + Cached name for the 'get_split_offset' method. + + + + + Cached name for the 'clamp_split_offset' method. + + + + + Cached name for the 'set_collapsed' method. + + + + + Cached name for the 'is_collapsed' method. + + + + + Cached name for the 'set_dragger_visibility' method. + + + + + Cached name for the 'get_dragger_visibility' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached name for the 'set_dragging_enabled' method. + + + + + Cached name for the 'is_dragging_enabled' method. + + + + + Cached name for the 'set_drag_area_margin_begin' method. + + + + + Cached name for the 'get_drag_area_margin_begin' method. + + + + + Cached name for the 'set_drag_area_margin_end' method. + + + + + Cached name for the 'get_drag_area_margin_end' method. + + + + + Cached name for the 'set_drag_area_offset' method. + + + + + Cached name for the 'get_drag_area_offset' method. + + + + + Cached name for the 'set_drag_area_highlight_in_editor' method. + + + + + Cached name for the 'is_drag_area_highlight_in_editor_enabled' method. + + + + + Cached name for the 'get_drag_area_control' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'dragged' signal. + + + + + Cached name for the 'drag_started' signal. + + + + + Cached name for the 'drag_ended' signal. + + + + + A Spotlight is a type of 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 . + Note: When using the Mobile rendering method, only 8 spot lights can be displayed on each mesh resource. Attempting to display more than 8 spot lights on a single mesh resource will result in spot lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 spot lights can be displayed on each mesh resource by default, but this can be increased by adjusting ProjectSettings.rendering/limits/opengl/max_lights_per_object. + Note: When using the Mobile or Compatibility rendering methods, spot lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the light may not be visible on the mesh. + + + + + The maximal range that can be reached by the spotlight. Note that the effectively lit area may appear to be smaller depending on the in use. No matter the in use, the light will never reach anything outside this range. + Note: is not affected by (the light's scale or its parent's scale). + + + + + Controls the distance attenuation function for spotlights. + A value of 0.0 will maintain a constant brightness through most of the range, but smoothly attenuate the light at the edge of the range. Use a value of 2.0 for physically accurate lights as it results in the proper inverse square attenutation. + Note: Setting attenuation to 2.0 or higher may result in distant objects receiving minimal light, even within range. For example, with a range of 4096, an object at 100 units is attenuated by a factor of 0.0001. With a default brightness of 1, the light would not be visible at that distance. + Note: Using negative or values higher than 10.0 may lead to unexpected results. + + + + + The spotlight's angle in degrees. + Note: is not affected by (the light's scale or its parent's scale). + + + + + The spotlight's angular attenuation curve. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'spot_range' property. + + + + + Cached name for the 'spot_attenuation' property. + + + + + Cached name for the 'spot_angle' property. + + + + + Cached name for the 'spot_angle_attenuation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 's collision check). + + + + + The layers against which the collision check shall be done. See Collision layers and masks in the documentation for more information. + + + + + The to use for the SpringArm3D. + When the shape is set, the SpringArm3D will cast the on its z axis instead of performing a ray cast. + + + + + The maximum extent of the SpringArm3D. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm3D's child nodes. + To know more about how to perform a shape cast or a ray cast, please consult the documentation. + + + + + When the collision check is made, a candidate length for the SpringArm3D is given. + The margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm3D. + This margin is useful for when the SpringArm3D has a as a child node: without the margin, the would be placed on the exact point of collision, while with the margin the would be placed close to the point of collision. + + + + + Returns the spring arm's current length. + + + + + Adds the object with the given to the list of objects excluded from the collision check. + + + + + Removes the given from the list of objects excluded from the collision check. + + + + + Clears the list of objects excluded from the collision check. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'spring_length' property. + + + + + Cached name for the 'margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_hit_length' method. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'add_excluded_object' method. + + + + + Cached name for the 'remove_excluded_object' method. + + + + + Cached name for the 'clear_excluded_objects' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + object to draw. + + + + + If , texture is centered. + Note: For games with a pixel art aesthetic, textures may appear deformed when centered. This is caused by their position being between pixels. To prevent this, set this property to , or consider enabling ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel and ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + The texture's drawing offset. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + The number of columns in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + The number of rows in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + Current frame to display from sprite sheet. or must be greater than 1. This property is automatically adjusted when or are changed to keep pointing to the same visual frame (same column and row). If that's impossible, this value is reset to 0. + + + + + Coordinates of the frame to display from sprite sheet. This is as an alias for the property. or must be greater than 1. + + + + + If , texture is cut from a larger atlas texture. See . + + + + + The region of the atlas texture to display. must be . + + + + + If , the area outside of the is clipped to avoid bleeding of the surrounding texture pixels. must be . + + + + + Returns , if the pixel at the given position is opaque and in other case. The position is in local coordinates. + Note: It also returns , if the sprite's texture is or if the given position is invalid. + + + + + Returns a representing the Sprite2D's boundary in local coordinates. + Example: Detect if the Sprite2D was clicked: + + public override void _Input(InputEvent @event) + { + if (@event is InputEventMouseButton inputEventMouse) + { + if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left) + { + if (GetRect().HasPoint(ToLocal(inputEventMouse.Position))) + { + GD.Print("A click!"); + } + } + } + } + + + + + + Emitted when the changes. + + + + + Emitted when the changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'centered' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached name for the 'hframes' property. + + + + + Cached name for the 'vframes' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_coords' property. + + + + + Cached name for the 'region_enabled' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached name for the 'region_filter_clip_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_centered' method. + + + + + Cached name for the 'is_centered' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_region_enabled' method. + + + + + Cached name for the 'is_region_enabled' method. + + + + + Cached name for the 'is_pixel_opaque' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_region_filter_clip_enabled' method. + + + + + Cached name for the 'is_region_filter_clip_enabled' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_coords' method. + + + + + Cached name for the 'get_frame_coords' method. + + + + + Cached name for the 'set_vframes' method. + + + + + Cached name for the 'get_vframes' method. + + + + + Cached name for the 'set_hframes' method. + + + + + Cached name for the 'get_hframes' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'texture_changed' signal. + + + + + 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 where properties such as the billboard mode are defined. + + + + + object to draw. If is used, this will be overridden. The size information is still used. + + + + + The number of columns in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + The number of rows in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + Current frame to display from sprite sheet. or must be greater than 1. This property is automatically adjusted when or are changed to keep pointing to the same visual frame (same column and row). If that's impossible, this value is reset to 0. + + + + + Coordinates of the frame to display from sprite sheet. This is as an alias for the property. or must be greater than 1. + + + + + If , the sprite will use and display only the specified part of its texture. + + + + + The region of the atlas texture to display. must be . + + + + + Emitted when the changes. + + + + + Emitted when the changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'hframes' property. + + + + + Cached name for the 'vframes' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_coords' property. + + + + + Cached name for the 'region_enabled' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_region_enabled' method. + + + + + Cached name for the 'is_region_enabled' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_coords' method. + + + + + Cached name for the 'get_frame_coords' method. + + + + + Cached name for the 'set_vframes' method. + + + + + Cached name for the 'get_vframes' method. + + + + + Cached name for the 'set_hframes' method. + + + + + Cached name for the 'get_hframes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'texture_changed' signal. + + + + + A node that displays 2D texture information in a 3D environment. See also where many other properties are defined. + + + + + If set, the texture's transparency and the opacity are used to make those parts of the sprite invisible. + + + + + If set, lights in the environment affect the sprite. + + + + + If set, texture can be seen from the back as well. If not, the texture is invisible when looking at it from behind. + + + + + 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. + + + + + Label is scaled by depth so that it always appears the same size on screen. + + + + + Represents the size of the enum. + + + + + This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping. + + + + + 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 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 alpha testing or 1-bit transparency. + + + + + This mode draws fully opaque pixels in the depth prepass. This is slower than or , but it allows displaying translucent areas and smooth edges while using proper sorting. + + + + + This mode draws cuts off all values below a spatially-deterministic threshold, the rest will remain opaque. + + + + + If , texture will be centered. + + + + + The texture's drawing offset. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + A color value used to multiply the texture's colors. Can be used for mood-coloring or to simulate the color of ambient light. + Note: Unlike for 2D, colors with values above 1.0 (overbright) are not supported. + Note: If a is defined on the , the material override must be configured to take vertex colors into account for albedo. Otherwise, the color defined in will be ignored. For a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. + + + + + The size of one pixel's width on the sprite to scale it in 3D. + + + + + The direction in which the front of the texture faces. + + + + + The billboard mode to use for the sprite. See for possible values. + Note: When billboarding is enabled and the material also casts shadows, billboards will face the camera in the scene when rendering shadows. In scenes with multiple cameras, the intended shadow cannot be determined and this will result in undefined behavior. See GitHub Pull Request #72638 for details. + + + + + If , the texture's transparency and the opacity are used to make those parts of the sprite invisible. + + + + + If , the in the has effects on the sprite. + + + + + If , texture can be seen from the back as well, if , it is invisible when looking at it from behind. + + + + + If , depth testing is disabled and the object will be drawn in render order. + + + + + If , the label is rendered at the same size regardless of distance. + + + + + The alpha cutting mode to use for the sprite. See for possible values. + + + + + Threshold at which the alpha scissor will discard values. + + + + + The hashing scale for Alpha Hash. Recommended values between 0 and 2. + + + + + The type of alpha antialiasing to apply. See . + + + + + Threshold at which antialiasing will be applied on the alpha channel. + + + + + Filter flags for the texture. See for options. + Note: Linear filtering may cause artifacts around the edges, which are especially noticeable on opaque textures. To prevent this, use textures with transparent or identical colors around the edges. + + + + + Sets the render priority for the sprite. Higher priority objects will be sorted in front of lower priority objects. + Note: This only applies if is set to (default value). + Note: This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority). + + + + + If , the specified flag will be enabled. See for a list of flags. + + + + + Returns the value of the specified flag. + + + + + Returns the rectangle representing this sprite. + + + + + Returns a with the sprite's vertices following its current configuration (such as its and ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'centered' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'pixel_size' property. + + + + + Cached name for the 'axis' property. + + + + + Cached name for the 'billboard' property. + + + + + Cached name for the 'transparent' property. + + + + + Cached name for the 'shaded' property. + + + + + Cached name for the 'double_sided' property. + + + + + Cached name for the 'no_depth_test' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'alpha_cut' property. + + + + + Cached name for the 'alpha_scissor_threshold' property. + + + + + Cached name for the 'alpha_hash_scale' property. + + + + + Cached name for the 'alpha_antialiasing_mode' property. + + + + + Cached name for the 'alpha_antialiasing_edge' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'render_priority' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_centered' method. + + + + + Cached name for the 'is_centered' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_render_priority' method. + + + + + Cached name for the 'get_render_priority' method. + + + + + Cached name for the 'set_pixel_size' method. + + + + + Cached name for the 'get_pixel_size' method. + + + + + Cached name for the 'set_axis' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'set_draw_flag' method. + + + + + Cached name for the 'get_draw_flag' method. + + + + + Cached name for the 'set_alpha_cut_mode' method. + + + + + Cached name for the 'get_alpha_cut_mode' method. + + + + + Cached name for the 'set_alpha_scissor_threshold' method. + + + + + Cached name for the 'get_alpha_scissor_threshold' method. + + + + + Cached name for the 'set_alpha_hash_scale' method. + + + + + Cached name for the 'get_alpha_hash_scale' method. + + + + + Cached name for the 'set_alpha_antialiasing' method. + + + + + Cached name for the 'get_alpha_antialiasing' method. + + + + + Cached name for the 'set_alpha_antialiasing_edge' method. + + + + + Cached name for the 'get_alpha_antialiasing_edge' method. + + + + + Cached name for the 'set_billboard_mode' method. + + + + + Cached name for the 'get_billboard_mode' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'get_item_rect' method. + + + + + Cached name for the 'generate_triangle_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Sprite frame library for an or node. Contains frames and animation data for playback. + + + + + Adds a new animation to the library. + + + + + Returns if the animation exists. + + + + + Duplicates the animation to a new animation named . Fails if already exists, or if does not exist. + + + + + Removes the animation. + + + + + Changes the animation's name to . + + + + + Returns an array containing the names associated to each animation. Values are placed in alphabetical order. + + + + + Sets the speed for the animation in frames per second. + + + + + Returns the speed in frames per second for the animation. + + + + + If is , the animation will loop when it reaches the end, or the start if it is played in reverse. + + + + + Returns if the given animation is configured to loop when it finishes playing. Otherwise, returns . + + + + + Adds a frame to the animation. If is -1, the frame will be added to the end of the animation. specifies the relative duration, see for details. + + + + + Sets the and the of the frame in the animation. specifies the relative duration, see for details. + + + + + Removes the animation's frame . + + + + + Returns the number of frames for the animation. + + + + + Returns the texture of the frame in the animation. + + + + + Returns a relative duration of the frame in the animation (defaults to 1.0). For example, a frame with a duration of 2.0 is displayed twice as long as a frame with a duration of 1.0. You can calculate the absolute duration (in seconds) of a frame using the following formula: + + absolute_duration = relative_duration / (animation_fps * abs(playing_speed)) + + In this example, playing_speed refers to either or . + + + + + Removes all frames from the animation. + + + + + Removes all animations. An empty default animation will be created. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'animations' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_animation' method. + + + + + Cached name for the 'has_animation' method. + + + + + Cached name for the 'duplicate_animation' method. + + + + + Cached name for the 'remove_animation' method. + + + + + Cached name for the 'rename_animation' method. + + + + + Cached name for the 'get_animation_names' method. + + + + + Cached name for the 'set_animation_speed' method. + + + + + Cached name for the 'get_animation_speed' method. + + + + + Cached name for the 'set_animation_loop' method. + + + + + Cached name for the 'get_animation_loop' method. + + + + + Cached name for the 'add_frame' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'remove_frame' method. + + + + + Cached name for the 'get_frame_count' method. + + + + + Cached name for the 'get_frame_texture' method. + + + + + Cached name for the 'get_frame_duration' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'clear_all' method. + + + + + Cached name for the '_set_animations' method. + + + + + Cached name for the '_get_animations' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 's properties are inherited from . uses separate textures for ambient occlusion, roughness and metallic maps. To use a single ORM map for all 3 textures, use an instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, s (with set to ), and . + When is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use instead. + is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using and ). + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + The body's constant linear velocity. This does not move the body, but affects touching bodies, as if it were moving. + + + + + The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'constant_linear_velocity' property. + + + + + Cached name for the 'constant_angular_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant_linear_velocity' method. + + + + + Cached name for the 'set_constant_angular_velocity' method. + + + + + Cached name for the 'get_constant_linear_velocity' method. + + + + + Cached name for the 'get_constant_angular_velocity' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, s (with set to ), and . + When is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use instead. + is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using and ). + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + The body's constant linear velocity. This does not move the body, but affects touching bodies, as if it were moving. + + + + + The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'constant_linear_velocity' property. + + + + + Cached name for the 'constant_angular_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant_linear_velocity' method. + + + + + Cached name for the 'set_constant_angular_velocity' method. + + + + + Cached name for the 'get_constant_linear_velocity' method. + + + + + Cached name for the 'get_constant_angular_velocity' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Status indicator tooltip. + + + + + Status indicator icon. + + + + + Status indicator native popup menu. If this is set, the signal is not emitted. + Note: Native popup is only supported if supports feature. + + + + + If , the status indicator is visible. + + + + + Returns the status indicator rectangle in screen coordinates. If this status indicator is not visible, returns an empty . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the status indicator is pressed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tooltip' property. + + + + + Cached name for the 'icon' property. + + + + + Cached name for the 'menu' property. + + + + + Cached name for the 'visible' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tooltip' method. + + + + + Cached name for the 'get_tooltip' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'get_icon' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'set_menu' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + StreamPeer is an abstract base class mostly used for stream-based protocols (such as TCP). It provides an API for sending and receiving data through streams as raw data or strings. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + If , this will using big-endian format for encoding and decoding. + + + + + Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an code. + + + + + Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an code. + + + + + Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an code and an integer, describing how much data was actually sent. + + + + + Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an code and an integer, describing how much data was actually sent. + + + + + Returns a chunk data with the received bytes. The number of bytes to be received can be requested in the argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an code and a data array. + + + + + Returns a chunk data with the received bytes. The number of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an code, and a data array. + + + + + Returns the number of bytes this has available. + + + + + Puts a signed byte into the stream. + + + + + Puts an unsigned byte into the stream. + + + + + Puts a signed 16-bit value into the stream. + + + + + Puts an unsigned 16-bit value into the stream. + + + + + Puts a signed 32-bit value into the stream. + + + + + Puts an unsigned 32-bit value into the stream. + + + + + Puts a signed 64-bit value into the stream. + + + + + Puts an unsigned 64-bit value into the stream. + + + + + Puts a half-precision float into the stream. + + + + + Puts a single-precision float into the stream. + + + + + Puts a double-precision float into the stream. + + + + + Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size. + Note: To put an ASCII string without prepending its size, you can use : + + PutData("Hello World".ToAsciiBuffer()); + + + + + + Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size. + Note: To put a UTF-8 string without prepending its size, you can use : + + PutData("Hello World".ToUtf8Buffer()); + + + + + + Puts a Variant into the stream. If is encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Gets a signed byte from the stream. + + + + + Gets an unsigned byte from the stream. + + + + + Gets a signed 16-bit value from the stream. + + + + + Gets an unsigned 16-bit value from the stream. + + + + + Gets a signed 32-bit value from the stream. + + + + + Gets an unsigned 32-bit value from the stream. + + + + + Gets a signed 64-bit value from the stream. + + + + + Gets an unsigned 64-bit value from the stream. + + + + + Gets a half-precision float from the stream. + + + + + Gets a single-precision float from the stream. + + + + + Gets a double-precision float from the stream. + + + + + Gets an ASCII string with byte-length from the stream. If is negative (default) the length will be read from the stream using the reverse process of . + + + + + Gets a UTF-8 string with byte-length from the stream (this decodes the string sent as UTF-8). If is negative (default) the length will be read from the stream using the reverse process of . + + + + + Gets a Variant from the stream. If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'big_endian' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'put_data' method. + + + + + Cached name for the 'put_partial_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'get_partial_data' method. + + + + + Cached name for the 'get_available_bytes' method. + + + + + Cached name for the 'set_big_endian' method. + + + + + Cached name for the 'is_big_endian_enabled' method. + + + + + Cached name for the 'put_8' method. + + + + + Cached name for the 'put_u8' method. + + + + + Cached name for the 'put_16' method. + + + + + Cached name for the 'put_u16' method. + + + + + Cached name for the 'put_32' method. + + + + + Cached name for the 'put_u32' method. + + + + + Cached name for the 'put_64' method. + + + + + Cached name for the 'put_u64' method. + + + + + Cached name for the 'put_half' method. + + + + + Cached name for the 'put_float' method. + + + + + Cached name for the 'put_double' method. + + + + + Cached name for the 'put_string' method. + + + + + Cached name for the 'put_utf8_string' method. + + + + + Cached name for the 'put_var' method. + + + + + Cached name for the 'get_8' method. + + + + + Cached name for the 'get_u8' method. + + + + + Cached name for the 'get_16' method. + + + + + Cached name for the 'get_u16' method. + + + + + Cached name for the 'get_32' method. + + + + + Cached name for the 'get_u32' method. + + + + + Cached name for the 'get_64' method. + + + + + Cached name for the 'get_u64' method. + + + + + Cached name for the 'get_half' method. + + + + + Cached name for the 'get_float' method. + + + + + Cached name for the 'get_double' method. + + + + + Cached name for the 'get_string' method. + + + + + Cached name for the 'get_utf8_string' method. + + + + + Cached name for the 'get_var' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, can be used directly. + A 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. + + + + + The underlying data buffer. Setting this value resets the cursor. + + + + + Moves the cursor to the specified position. must be a valid index of . + + + + + Returns the size of . + + + + + Returns the current cursor position. + + + + + Resizes the . This doesn't update the cursor. + + + + + Clears the and resets the cursor. + + + + + Returns a new with the same content. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data_array' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the 'set_data_array' method. + + + + + Cached name for the 'get_data_array' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'duplicate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_available_bytes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 (or ), calling on this stream will compress (or decompress) the data, writing it to the internal buffer. Calling will return the pending bytes in the internal buffer, and will retrieve the compressed (or decompressed) bytes from it. When the stream is over, you must call to ensure the internal buffer is properly flushed (make sure to call on last time to check if more data needs to be read after that). + + + + + Start the stream in compression mode with the given , if is uses deflate instead of GZIP. + + + + + Start the stream in decompression mode with the given , if is uses deflate instead of GZIP. + + + + + Finalizes the stream, compressing or decompressing any buffered chunk left. + + + + + Clears this stream, resetting the internal state. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start_compression' method. + + + + + Cached name for the 'start_decompression' method. + + + + + Cached name for the 'finish' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A stream peer that handles TCP connections. This object can be used to connect to TCP servers, or also is returned by a TCP server. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The initial status of the . This is also the status after disconnecting. + + + + + A status representing a that is connecting to a host. + + + + + A status representing a that is connected to a host. + + + + + A status representing a in error state. + + + + + Opens the TCP socket, and binds it to the specified local address. + This method is generally not needed, and only used to force the subsequent call to to use the specified and as source address. This can be desired in some NAT punchthrough techniques, or when forcing the source network interface. + + + + + Connects to the specified host:port pair. A hostname will be resolved if valid. Returns on success. + + + + + Poll the socket, updating its state. See . + + + + + Returns the status of the connection, see . + + + + + Returns the IP of this peer. + + + + + Returns the port of this peer. + + + + + Returns the local port to which this peer is bound. + + + + + Disconnects from host. + + + + + If is , packets will be sent immediately. If is (the default), packet transfers will be delayed and combined using Nagle's algorithm. + Note: It's recommended to leave this disabled for applications that send large packets or need to transfer a lot of data, as enabling this can decrease the total available bandwidth. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bind' method. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'get_connected_host' method. + + + + + Cached name for the 'get_connected_port' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'disconnect_from_host' method. + + + + + Cached name for the 'set_no_delay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A stream peer that handles TLS connections. This object can be used to connect to a TLS server or accept a single TLS client connection. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + A status representing a that is disconnected. + + + + + A status representing a during handshaking. + + + + + A status representing a that is connected to a host. + + + + + A status representing a in error state. + + + + + An error status that shows a mismatch in the TLS certificate domain presented by the host and the domain requested for validation. + + + + + Poll the connection to check for incoming bytes. Call this right before for it to work properly. + + + + + Accepts a peer connection as a server using the given . See . + + + + + Connects to a peer using an underlying and verifying the remote certificate is correctly signed for the given . You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + + + + + Returns the status of the connection. See for values. + + + + + Returns the underlying connection, used in or . + + + + + Disconnects from host. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'accept_stream' method. + + + + + Cached name for the 'connect_to_stream' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'disconnect_from_stream' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for drawing stylized boxes for UI elements. It is used for panels, buttons, backgrounds, backgrounds, etc. and also for testing a transparency mask for pointer signals. If mask test fails on a assigned as mask to a control, clicks and motion signals will go through it to the one below. + Note: For control nodes that have Theme Properties, the focus is displayed over the normal, hover or pressed . This makes the focus more reusable across different nodes. + + + + + The left margin for the contents of this style box. Increasing this value reduces the space available to the contents from the left. + Refer to for extra considerations. + + + + + The top margin for the contents of this style box. Increasing this value reduces the space available to the contents from the top. + Refer to for extra considerations. + + + + + The right margin for the contents of this style box. Increasing this value reduces the space available to the contents from the right. + Refer to for extra considerations. + + + + + The bottom margin for the contents of this style box. Increasing this value reduces the space available to the contents from the bottom. + If this value is negative, it is ignored and a child-specific margin is used instead. For example, for , the border thickness (if any) is used instead. + It is up to the code using this style box to decide what these contents are: for example, a respects this content margin for the textual contents of the button. + should be used to fetch this value as consumer instead of reading these properties directly. This is because it correctly respects negative values and the fallback mentioned above. + + + + + Virtual method to be implemented by the user. Returns a custom minimum size that the stylebox must respect when drawing. By default 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. + + + + + Returns the minimum size that this stylebox can be shrunk to. + + + + + Sets the default value of the specified to pixels. + + + + + Sets the default margin to pixels for all sides. + + + + + Returns the default margin of the specified . + + + + + Returns the content margin offset for the specified . + Positive values reduce size inwards, unlike 's margin values. + + + + + Returns the "offset" of a stylebox. This helper function returns a value equivalent to Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP)). + + + + + Draws this stylebox using a canvas item identified by the given . + The value can either be the result of called on an existing -derived node, or directly from creating a canvas item in the with . + + + + + Returns the that handles its or callback at this moment. + + + + + Test a position in a rectangle, return whether it passes the mask test. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'content_margin_left' property. + + + + + Cached name for the 'content_margin_top' property. + + + + + Cached name for the 'content_margin_right' property. + + + + + Cached name for the 'content_margin_bottom' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw' method. + + + + + Cached name for the '_get_draw_rect' method. + + + + + Cached name for the '_get_minimum_size' method. + + + + + Cached name for the '_test_mask' method. + + + + + Cached name for the 'get_minimum_size' method. + + + + + Cached name for the 'set_content_margin' method. + + + + + Cached name for the 'set_content_margin_all' method. + + + + + Cached name for the 'get_content_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'get_current_item_drawn' method. + + + + + Cached name for the 'test_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An empty that can be used to display nothing instead of the default style (e.g. it can "disable" focus styles). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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: + + height = 30 + corner_radius_top_left = 50 + corner_radius_bottom_left = 100 + + The relative system now would take the 1:2 ratio of the two left corners to calculate the actual corner width. Both corners added will never be more than the height. Result: + + corner_radius_top_left: 10 + corner_radius_bottom_left: 20 + + + + + + The background color of the stylebox. + + + + + Toggles drawing of the inner part of the stylebox. + + + + + If set to a non-zero value on either axis, distorts the StyleBox horizontally and/or vertically. This can be used for "futuristic"-style UIs. Positive values skew the StyleBox towards the right (X axis) and upwards (Y axis), while negative values skew the StyleBox towards the left (X axis) and downwards (Y axis). + Note: To ensure text does not touch the StyleBox's edges, consider increasing the 's content margin (see ). It is preferable to increase the content margin instead of the expand margin (see ), as increasing the expand margin does not increase the size of the clickable area for s. + + + + + Border width for the left border. + + + + + Border width for the top border. + + + + + Border width for the right border. + + + + + Border width for the bottom border. + + + + + Sets the color of the border. + + + + + If , the border will fade into the background color. + + + + + The top-left corner's radius. If 0, the corner is not rounded. + + + + + The top-right corner's radius. If 0, the corner is not rounded. + + + + + The bottom-right corner's radius. If 0, the corner is not rounded. + + + + + The bottom-left corner's radius. If 0, the corner is not rounded. + + + + + This sets the number of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius () into account. + For corner radii less than 10, 4 or 5 should be enough. For corner radii less than 30, values between 8 and 12 should be enough. + A corner detail of 1 will result in chamfered corners instead of rounded corners, which is useful for some artistic effects. + + + + + Expands the stylebox outside of the control rect on the left edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + Expands the stylebox outside of the control rect on the top edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + Expands the stylebox outside of the control rect on the right edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + Expands the stylebox outside of the control rect on the bottom edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + The color of the shadow. This has no effect if is lower than 1. + + + + + The shadow size in pixels. + + + + + The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox. + + + + + Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners or . + Note: When using beveled corners with 45-degree angles ( = 1), it is recommended to set to to ensure crisp visuals and avoid possible visual glitches. + + + + + This changes the size of the antialiasing effect. 1.0 is recommended for an optimal result at 100% scale, identical to how rounded rectangles are rendered in web browsers and most vector drawing software. + Note: Higher values may produce a blur effect but can also create undesired artifacts on small boxes with large-radius corners. + + + + + Sets the border width to pixels for all sides. + + + + + Returns the smallest border width out of all four borders. + + + + + Sets the specified 's border width to pixels. + + + + + Returns the specified 's border width. + + + + + Sets the corner radius to pixels for all corners. + + + + + Sets the corner radius to pixels for the given . See for possible values. + + + + + Returns the given 's radius. See for possible values. + + + + + Sets the expand margin to pixels for the specified . + + + + + Sets the expand margin to pixels for all sides. + + + + + Returns the size of the specified 's expand margin. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bg_color' property. + + + + + Cached name for the 'draw_center' property. + + + + + Cached name for the 'skew' property. + + + + + Cached name for the 'border_width_left' property. + + + + + Cached name for the 'border_width_top' property. + + + + + Cached name for the 'border_width_right' property. + + + + + Cached name for the 'border_width_bottom' property. + + + + + Cached name for the 'border_color' property. + + + + + Cached name for the 'border_blend' property. + + + + + Cached name for the 'corner_radius_top_left' property. + + + + + Cached name for the 'corner_radius_top_right' property. + + + + + Cached name for the 'corner_radius_bottom_right' property. + + + + + Cached name for the 'corner_radius_bottom_left' property. + + + + + Cached name for the 'corner_detail' property. + + + + + Cached name for the 'expand_margin_left' property. + + + + + Cached name for the 'expand_margin_top' property. + + + + + Cached name for the 'expand_margin_right' property. + + + + + Cached name for the 'expand_margin_bottom' property. + + + + + Cached name for the 'shadow_color' property. + + + + + Cached name for the 'shadow_size' property. + + + + + Cached name for the 'shadow_offset' property. + + + + + Cached name for the 'anti_aliasing' property. + + + + + Cached name for the 'anti_aliasing_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bg_color' method. + + + + + Cached name for the 'get_bg_color' method. + + + + + Cached name for the 'set_border_color' method. + + + + + Cached name for the 'get_border_color' method. + + + + + Cached name for the 'set_border_width_all' method. + + + + + Cached name for the 'get_border_width_min' method. + + + + + Cached name for the 'set_border_width' method. + + + + + Cached name for the 'get_border_width' method. + + + + + Cached name for the 'set_border_blend' method. + + + + + Cached name for the 'get_border_blend' method. + + + + + Cached name for the 'set_corner_radius_all' method. + + + + + Cached name for the 'set_corner_radius' method. + + + + + Cached name for the 'get_corner_radius' method. + + + + + Cached name for the 'set_expand_margin' method. + + + + + Cached name for the 'set_expand_margin_all' method. + + + + + Cached name for the 'get_expand_margin' method. + + + + + Cached name for the 'set_draw_center' method. + + + + + Cached name for the 'is_draw_center_enabled' method. + + + + + Cached name for the 'set_skew' method. + + + + + Cached name for the 'get_skew' method. + + + + + Cached name for the 'set_shadow_color' method. + + + + + Cached name for the 'get_shadow_color' method. + + + + + Cached name for the 'set_shadow_size' method. + + + + + Cached name for the 'get_shadow_size' method. + + + + + Cached name for the 'set_shadow_offset' method. + + + + + Cached name for the 'get_shadow_offset' method. + + + + + Cached name for the 'set_anti_aliased' method. + + + + + Cached name for the 'is_anti_aliased' method. + + + + + Cached name for the 'set_aa_size' method. + + + + + Cached name for the 'get_aa_size' method. + + + + + Cached name for the 'set_corner_detail' method. + + + + + Cached name for the 'get_corner_detail' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A that displays a single line of a given color and thickness. The line can be either horizontal or vertical. Useful for separators. + + + + + The line's color. + + + + + The number of pixels the line will extend before the 's bounds. If set to a negative value, the line will begin inside the 's bounds. + + + + + The number of pixels the line will extend past the 's bounds. If set to a negative value, the line will end inside the 's bounds. + + + + + The line's thickness in pixels. + + + + + If , the line will be vertical. If , the line will be horizontal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'grow_begin' property. + + + + + Cached name for the 'grow_end' property. + + + + + Cached name for the 'thickness' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_thickness' method. + + + + + Cached name for the 'get_thickness' method. + + + + + Cached name for the 'set_grow_begin' method. + + + + + Cached name for the 'get_grow_begin' method. + + + + + Cached name for the 'set_grow_end' method. + + + + + Cached name for the 'get_grow_end' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture-based nine-patch , in a way similar to . 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. + + + + + Stretch the stylebox's texture. This results in visible distortion unless the texture size matches the stylebox's size perfectly. + + + + + Repeats the stylebox's texture to match the stylebox's size according to the nine-patch system. + + + + + Repeats the stylebox's texture to match the stylebox's size according to the nine-patch system. Unlike , the texture may be slightly stretched to make the nine-patch texture tile seamlessly. + + + + + The texture to use when drawing this style box. + + + + + Increases the left margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the left border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Increases the top margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the top border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Increases the right margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the right border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Increases the bottom margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the bottom border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Expands the left margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Expands the top margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Expands the right margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Expands the bottom margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Controls how the stylebox's texture will be stretched or tiled horizontally. See for possible values. + + + + + Controls how the stylebox's texture will be stretched or tiled vertically. See for possible values. + + + + + The region to use from the . + This is equivalent to first wrapping the in an with the same region. + If empty (Rect2(0, 0, 0, 0)), the whole is used. + + + + + Modulates the color of the texture when this style box is drawn. + + + + + If , the nine-patch texture's center tile will be drawn. + + + + + Sets the margin to pixels for the specified . + + + + + Sets the margin to pixels for all sides. + + + + + Returns the margin size of the specified . + + + + + Sets the expand margin to pixels for the specified . + + + + + Sets the expand margin to pixels for all sides. + + + + + Returns the expand margin size of the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_margin_left' property. + + + + + Cached name for the 'texture_margin_top' property. + + + + + Cached name for the 'texture_margin_right' property. + + + + + Cached name for the 'texture_margin_bottom' property. + + + + + Cached name for the 'expand_margin_left' property. + + + + + Cached name for the 'expand_margin_top' property. + + + + + Cached name for the 'expand_margin_right' property. + + + + + Cached name for the 'expand_margin_bottom' property. + + + + + Cached name for the 'axis_stretch_horizontal' property. + + + + + Cached name for the 'axis_stretch_vertical' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached name for the 'modulate_color' property. + + + + + Cached name for the 'draw_center' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_margin' method. + + + + + Cached name for the 'set_texture_margin_all' method. + + + + + Cached name for the 'get_texture_margin' method. + + + + + Cached name for the 'set_expand_margin' method. + + + + + Cached name for the 'set_expand_margin_all' method. + + + + + Cached name for the 'get_expand_margin' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_draw_center' method. + + + + + Cached name for the 'is_draw_center_enabled' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_h_axis_stretch_mode' method. + + + + + Cached name for the 'get_h_axis_stretch_mode' method. + + + + + Cached name for the 'set_v_axis_stretch_mode' method. + + + + + Cached name for the 'get_v_axis_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Isolates a rectangular region of a scene to be displayed independently. This can be used, for example, to display UI in 3D space. + Note: is a that isn't a , i.e. it doesn't draw anything by itself. To display anything, must have a non-zero size and be either put inside a or assigned to a . + + + + + Always clear the render target before drawing. + + + + + Never clear the render target. + + + + + Clear the render target on the next frame, then switch to . + + + + + Do not update the render target. + + + + + Update the render target once, then switch to . + + + + + Update the render target only when it is visible. This is the default value. + + + + + Update the render target only when its parent is visible. + + + + + Always update the render target. + + + + + The width and height of the sub-viewport. Must be set to a value greater than or equal to 2 pixels on both dimensions. Otherwise, nothing will be displayed. + Note: If the parent node is a and its is , the viewport size cannot be changed manually. + + + + + The 2D size override of the sub-viewport. If either the width or height is 0, the override is disabled. + + + + + If , the 2D size override affects stretch as well. + + + + + The clear mode when the sub-viewport is used as a render target. + Note: This property is intended for 2D usage. + + + + + The update mode when the sub-viewport is used as a render target. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'size_2d_override' property. + + + + + Cached name for the 'size_2d_override_stretch' property. + + + + + Cached name for the 'render_target_clear_mode' property. + + + + + Cached name for the 'render_target_update_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_size_2d_override' method. + + + + + Cached name for the 'get_size_2d_override' method. + + + + + Cached name for the 'set_size_2d_override_stretch' method. + + + + + Cached name for the 'is_size_2d_override_stretch_enabled' method. + + + + + Cached name for the 'set_update_mode' method. + + + + + Cached name for the 'get_update_mode' method. + + + + + Cached name for the 'set_clear_mode' method. + + + + + Cached name for the 'get_clear_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A container that displays the contents of underlying child nodes. It uses the combined size of the s as minimum size, unless is enabled. + Note: Changing a 's will cause its contents to appear distorted. To change its visual size without causing distortion, adjust the node's margins instead (if it's not already in a container). + Note: The forwards mouse-enter and mouse-exit notifications to its sub-viewports. + + + + + If , the sub-viewport will be automatically resized to the control's size. + Note: If , this will prohibit changing of its children manually. + + + + + Divides the sub-viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering. + For example, a 1280×720 sub-viewport with set to 2 will be rendered at 640×360 while occupying the same size in the container. + Note: must be for this property to work. + + + + + Configure, if either the or alternatively the nodes of its children should be available as targets of mouse-related functionalities, like identifying the drop target in drag-and-drop operations or cursor shape of hovered node. + If , the nodes inside its children are considered as targets. + If , the itself will be considered as a target. + + + + + Virtual method to be implemented by the user. If it returns , the is propagated to children. Propagation doesn't happen if it returns . If the function is not implemented, all events are propagated to SubViewports. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stretch' property. + + + + + Cached name for the 'stretch_shrink' property. + + + + + Cached name for the 'mouse_target' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_propagate_input_event' method. + + + + + Cached name for the 'set_stretch' method. + + + + + Cached name for the 'is_stretch_enabled' method. + + + + + Cached name for the 'set_stretch_shrink' method. + + + + + Cached name for the 'get_stretch_shrink' method. + + + + + Cached name for the 'set_mouse_target' method. + + + + + Cached name for the 'is_mouse_target_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for syntax highlighters. Provides syntax highlighting data to a . The associated will call into the on an as-needed basis. + Note: A instance should not be used across multiple nodes. + + + + + Virtual method which can be overridden to clear any local caches. + + + + + Virtual method which can be overridden to return syntax highlighting data. + See for more details. + + + + + Virtual method which can be overridden to update any local caches. + + + + + Returns the syntax highlighting data for the line at index . If the line is not cached, calls first to calculate the data. + Each entry is a column number containing a nested . The column number denotes the start of a region, the region will end if another region is found, or at the end of the line. The nested contains the data for that region. Currently only the key "color" is supported. + Example: Possible return value. This means columns 0 to 4 should be red, and columns 5 to the end of the line should be green: + + { + 0: { + "color": Color(1, 0, 0) + }, + 5: { + "color": Color(0, 1, 0) + } + } + + + + + + Clears then updates the caches. Override for a callback. + Note: This is called automatically when the associated node, updates its own cache. + + + + + Clears all cached syntax highlighting data. + Then calls overridable method . + + + + + Returns the associated node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_clear_highlighting_cache' method. + + + + + Cached name for the '_get_line_syntax_highlighting' method. + + + + + Cached name for the '_update_cache' method. + + + + + Cached name for the 'get_line_syntax_highlighting' method. + + + + + Cached name for the 'update_cache' method. + + + + + Cached name for the 'clear_highlighting_cache' method. + + + + + Cached name for the 'get_text_edit' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + loads a font from a system font with the first matching name from . + 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 of the system font for precise control over its features. + Note: This class is implemented on iOS, Linux, macOS and Windows, on other platforms it will fallback to default theme font. + + + + + Array of font family names to search, first matching font found is used. + + + + + If set to , italic or oblique font is preferred. + + + + + Preferred weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Preferred font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Font anti-aliasing mode. + + + + + If set to , generate mipmaps for the font textures. + + + + + If set to , embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). + + + + + If set to , system fonts can be automatically used as fallbacks. + + + + + If set to , auto-hinting is supported and preferred over font built-in hinting. + + + + + Font hinting mode. + + + + + Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of memory usage and font rasterization speed. Use to automatically enable it based on the font size. + + + + + If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + If set to , glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + + + + + The width of the range around the shape between the minimum and maximum representable signed distance. If using font outlines, must be set to at least twice the size of the largest font outline. The default value of 16 allows outline sizes up to 8 to look correct. + + + + + Source font size used to generate MSDF textures. Higher values allow for more precision, but are slower to render and require more memory. Only increase this value if you notice a visible lack of precision in glyph rendering. + + + + + Font oversampling factor, if set to 0.0 global oversampling factor is used instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'font_names' property. + + + + + Cached name for the 'font_italic' property. + + + + + Cached name for the 'font_weight' property. + + + + + Cached name for the 'font_stretch' property. + + + + + Cached name for the 'antialiasing' property. + + + + + Cached name for the 'generate_mipmaps' property. + + + + + Cached name for the 'disable_embedded_bitmaps' property. + + + + + Cached name for the 'allow_system_fallback' property. + + + + + Cached name for the 'force_autohinter' property. + + + + + Cached name for the 'hinting' property. + + + + + Cached name for the 'subpixel_positioning' property. + + + + + Cached name for the 'keep_rounding_remainders' property. + + + + + Cached name for the 'multichannel_signed_distance_field' property. + + + + + Cached name for the 'msdf_pixel_range' property. + + + + + Cached name for the 'msdf_size' property. + + + + + Cached name for the 'oversampling' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_antialiasing' method. + + + + + Cached name for the 'get_antialiasing' method. + + + + + Cached name for the 'set_disable_embedded_bitmaps' method. + + + + + Cached name for the 'get_disable_embedded_bitmaps' method. + + + + + Cached name for the 'set_generate_mipmaps' method. + + + + + Cached name for the 'get_generate_mipmaps' method. + + + + + Cached name for the 'set_allow_system_fallback' method. + + + + + Cached name for the 'is_allow_system_fallback' method. + + + + + Cached name for the 'set_force_autohinter' method. + + + + + Cached name for the 'is_force_autohinter' method. + + + + + Cached name for the 'set_hinting' method. + + + + + Cached name for the 'get_hinting' method. + + + + + Cached name for the 'set_subpixel_positioning' method. + + + + + Cached name for the 'get_subpixel_positioning' method. + + + + + Cached name for the 'set_keep_rounding_remainders' method. + + + + + Cached name for the 'get_keep_rounding_remainders' method. + + + + + Cached name for the 'set_multichannel_signed_distance_field' method. + + + + + Cached name for the 'is_multichannel_signed_distance_field' method. + + + + + Cached name for the 'set_msdf_pixel_range' method. + + + + + Cached name for the 'get_msdf_pixel_range' method. + + + + + Cached name for the 'set_msdf_size' method. + + + + + Cached name for the 'get_msdf_size' method. + + + + + Cached name for the 'set_oversampling' method. + + + + + Cached name for the 'get_oversampling' method. + + + + + Cached name for the 'get_font_names' method. + + + + + Cached name for the 'set_font_names' method. + + + + + Cached name for the 'get_font_italic' method. + + + + + Cached name for the 'set_font_italic' method. + + + + + Cached name for the 'set_font_weight' method. + + + + + Cached name for the 'set_font_stretch' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A TCP server. Listens to connections on a port and returns a when it gets an incoming connection. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Listen on the binding to . + If is set as "*" (default), the server will listen on all available addresses (both IPv4 and IPv6). + If is set as "0.0.0.0" (for IPv4) or "::" (for IPv6), the server will listen on all available addresses matching that IP type. + If is set to any valid address (e.g. "192.168.1.101", "::1", etc.), the server will only listen on the interface with that address (or fail if no interface with the given address exists). + + + + + Returns if a connection is available for taking. + + + + + Returns if the server is currently listening for connections. + + + + + Returns the local port this server is listening to. + + + + + If a connection is available, returns a StreamPeerTCP with the connection. + + + + + Stops listening. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'listen' method. + + + + + Cached name for the 'is_connection_available' method. + + + + + Cached name for the 'is_listening' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'take_connection' method. + + + + + Cached name for the 'stop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + TLSOptions abstracts the configuration options for the and classes. + Objects of this class cannot be instantiated directly, and one of the static methods , , or should be used instead. + + + + + + Creates a TLS client configuration which validates certificates and their common names (fully qualified domain names). + You can specify a custom of certification authorities (the default CA list will be used if ), and optionally provide a if you expect the certificate to have a common name other than the server FQDN. + Note: On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature. + + + + + Creates an unsafe TLS client configuration where certificate validation is optional. You can optionally provide a valid , but the common name of the certificates will never be checked. Using this configuration for purposes other than testing is not recommended. + Note: On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature. + + + + + Creates a TLS server configuration using the provided and . + Note: The should include the full certificate chain up to the signing CA (certificates file can be concatenated using a general purpose text editor). + + + + + Returns if created with , otherwise. + + + + + Returns if created with , otherwise. + + + + + Returns the common name (domain name) override specified when creating with . + + + + + Returns the CA chain specified when creating with or . + + + + + Returns the specified when creating with . + + + + + Returns the specified when creating with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'client' method. + + + + + Cached name for the 'client_unsafe' method. + + + + + Cached name for the 'server' method. + + + + + Cached name for the 'is_server' method. + + + + + Cached name for the 'is_unsafe_client' method. + + + + + Cached name for the 'get_common_name_override' method. + + + + + Cached name for the 'get_trusted_ca_chain' method. + + + + + Cached name for the 'get_private_key' method. + + + + + Cached name for the 'get_own_certificate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control that provides a horizontal bar with tabs. Similar to but is only in charge of drawing tabs, not interacting with children. + + + + + Places tabs to the left. + + + + + Places tabs in the middle. + + + + + Places tabs to the right. + + + + + Represents the size of the enum. + + + + + Never show the close buttons. + + + + + Only show the close button on the currently active tab. + + + + + Show the close button on all tabs. + + + + + Represents the size of the enum. + + + + + The index of the current selected tab. A value of -1 means that no tab is selected and can only be set when is or if all tabs are hidden or disabled. + + + + + Sets the position at which tabs will be placed. See for details. + + + + + If , tabs overflowing this node's width will be hidden, displaying two navigation buttons instead. Otherwise, this node's minimum size is updated so that all tabs are visible. + + + + + Sets when the close button will appear on the tabs. See for details. + + + + + Sets the maximum width which all tabs should be limited to. Unlimited if set to 0. + + + + + if , the mouse's scroll wheel can be used to navigate the scroll view. + + + + + If , tabs can be rearranged with mouse drag. + + + + + s with the same rearrange group ID will allow dragging the tabs between them. Enable drag with . + Setting this to -1 will disable rearranging between s. + + + + + If , the tab offset will be changed to keep the currently selected tab visible. + + + + + If , enables selecting a tab with the right mouse button. + + + + + If , all tabs can be deselected so that no tab is selected. Click on the current tab to deselect it. + + + + + The number of tabs currently in the bar. + + + + + Returns the previously active tab index. + + + + + Selects the first available tab with lower index than the currently selected. Returns if tab selection changed. + + + + + Selects the first available tab with greater index than the currently selected. Returns if tab selection changed. + + + + + Sets a for the tab at index . + + + + + Returns the title of the tab at index . + + + + + Sets a for tab at index . + Note: By default, if the is empty and the tab text is truncated (not all characters fit into the tab), the title will be displayed as a tooltip. To hide the tooltip, assign " " as the text. + + + + + Returns the tooltip text of the tab at index . + + + + + Sets tab title base writing direction. + + + + + Returns tab title text base writing direction. + + + + + Sets language code of tab title used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns tab title language code. + + + + + Sets an for the tab at index . + + + + + Returns the icon for the tab at index or if the tab has no icon. + + + + + Sets the maximum allowed width of the icon for the tab at index . This limit is applied on top of the default size of the icon and on top of icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Returns the maximum allowed width of the icon for the tab at index . + + + + + Sets an for the button of the tab at index (located to the right, before the close button), making it visible and clickable (See ). Giving it a value will hide the button. + + + + + Returns the icon for the right button of the tab at index or if the right button has no icon. + + + + + If is , disables the tab at index , making it non-interactable. + + + + + Returns if the tab at index is disabled. + + + + + If is , hides the tab at index , making it disappear from the tab area. + + + + + Returns if the tab at index is hidden. + + + + + Sets the metadata value for the tab at index , which can be retrieved later using . + + + + + Returns the metadata value set to the tab at index using . If no metadata was previously set, returns by default. + + + + + Removes the tab at index . + + + + + Adds a new tab. + + + + + Returns the index of the tab at local coordinates . Returns -1 if the point is outside the control boundaries or if there's no tab at the queried position. + + + + + Returns the number of hidden tabs offsetted to the left. + + + + + Returns if the offset buttons (the ones that appear when there's not enough space for all tabs) are visible. + + + + + Moves the scroll view to make the tab visible. + + + + + Returns tab with local position and size. + + + + + Moves a tab from to . + + + + + Clears all tabs. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is selected via click, directional input, or script, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when switching to another tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is clicked, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is right-clicked. must be enabled. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab's close button is pressed. + Note: Tabs are not removed automatically once the close button is pressed, this behavior needs to be programmed manually. For example: + + GetNode<TabBar>("TabBar").TabClosePressed += GetNode<TabBar>("TabBar").RemoveTab; + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab's right button is pressed. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is hovered by the mouse. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the active tab is rearranged via mouse drag. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'current_tab' property. + + + + + Cached name for the 'tab_alignment' property. + + + + + Cached name for the 'clip_tabs' property. + + + + + Cached name for the 'tab_close_display_policy' property. + + + + + Cached name for the 'max_tab_width' property. + + + + + Cached name for the 'scrolling_enabled' property. + + + + + Cached name for the 'drag_to_rearrange_enabled' property. + + + + + Cached name for the 'tabs_rearrange_group' property. + + + + + Cached name for the 'scroll_to_selected' property. + + + + + Cached name for the 'select_with_rmb' property. + + + + + Cached name for the 'deselect_enabled' property. + + + + + Cached name for the 'tab_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tab_count' method. + + + + + Cached name for the 'get_tab_count' method. + + + + + Cached name for the 'set_current_tab' method. + + + + + Cached name for the 'get_current_tab' method. + + + + + Cached name for the 'get_previous_tab' method. + + + + + Cached name for the 'select_previous_available' method. + + + + + Cached name for the 'select_next_available' method. + + + + + Cached name for the 'set_tab_title' method. + + + + + Cached name for the 'get_tab_title' method. + + + + + Cached name for the 'set_tab_tooltip' method. + + + + + Cached name for the 'get_tab_tooltip' method. + + + + + Cached name for the 'set_tab_text_direction' method. + + + + + Cached name for the 'get_tab_text_direction' method. + + + + + Cached name for the 'set_tab_language' method. + + + + + Cached name for the 'get_tab_language' method. + + + + + Cached name for the 'set_tab_icon' method. + + + + + Cached name for the 'get_tab_icon' method. + + + + + Cached name for the 'set_tab_icon_max_width' method. + + + + + Cached name for the 'get_tab_icon_max_width' method. + + + + + Cached name for the 'set_tab_button_icon' method. + + + + + Cached name for the 'get_tab_button_icon' method. + + + + + Cached name for the 'set_tab_disabled' method. + + + + + Cached name for the 'is_tab_disabled' method. + + + + + Cached name for the 'set_tab_hidden' method. + + + + + Cached name for the 'is_tab_hidden' method. + + + + + Cached name for the 'set_tab_metadata' method. + + + + + Cached name for the 'get_tab_metadata' method. + + + + + Cached name for the 'remove_tab' method. + + + + + Cached name for the 'add_tab' method. + + + + + Cached name for the 'get_tab_idx_at_point' method. + + + + + Cached name for the 'set_tab_alignment' method. + + + + + Cached name for the 'get_tab_alignment' method. + + + + + Cached name for the 'set_clip_tabs' method. + + + + + Cached name for the 'get_clip_tabs' method. + + + + + Cached name for the 'get_tab_offset' method. + + + + + Cached name for the 'get_offset_buttons_visible' method. + + + + + Cached name for the 'ensure_tab_visible' method. + + + + + Cached name for the 'get_tab_rect' method. + + + + + Cached name for the 'move_tab' method. + + + + + Cached name for the 'set_tab_close_display_policy' method. + + + + + Cached name for the 'get_tab_close_display_policy' method. + + + + + Cached name for the 'set_max_tab_width' method. + + + + + Cached name for the 'get_max_tab_width' method. + + + + + Cached name for the 'set_scrolling_enabled' method. + + + + + Cached name for the 'get_scrolling_enabled' method. + + + + + Cached name for the 'set_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'get_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'set_tabs_rearrange_group' method. + + + + + Cached name for the 'get_tabs_rearrange_group' method. + + + + + Cached name for the 'set_scroll_to_selected' method. + + + + + Cached name for the 'get_scroll_to_selected' method. + + + + + Cached name for the 'set_select_with_rmb' method. + + + + + Cached name for the 'get_select_with_rmb' method. + + + + + Cached name for the 'set_deselect_enabled' method. + + + + + Cached name for the 'get_deselect_enabled' method. + + + + + Cached name for the 'clear_tabs' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tab_selected' signal. + + + + + Cached name for the 'tab_changed' signal. + + + + + Cached name for the 'tab_clicked' signal. + + + + + Cached name for the 'tab_rmb_clicked' signal. + + + + + Cached name for the 'tab_close_pressed' signal. + + + + + Cached name for the 'tab_button_pressed' signal. + + + + + Cached name for the 'tab_hovered' signal. + + + + + Cached name for the 'active_tab_rearranged' signal. + + + + + Arranges child controls into a tabbed view, creating a tab for each one. The active tab's corresponding control is made visible, while all other child controls are hidden. Ignores non-control children. + Note: The drawing of the clickable tabs is handled by this node; is not needed. + + + + + Places the tab bar at the top. + + + + + Places the tab bar at the bottom. The tab bar's will be flipped vertically. + + + + + Represents the size of the enum. + + + + + Sets the position at which tabs will be placed. See for details. + + + + + The current tab index. When set, this index's node's visible property is set to and all others are set to . + A value of -1 means that no tab is selected. + + + + + Sets the position of the tab bar. See for details. + + + + + If , tabs overflowing this node's width will be hidden, displaying two navigation buttons instead. Otherwise, this node's minimum size is updated so that all tabs are visible. + + + + + If , tabs are visible. If , tabs' content and titles are hidden. + + + + + If , all tabs are drawn in front of the panel. If , inactive tabs are drawn behind the panel. + + + + + If , tabs can be rearranged with mouse drag. + + + + + s with the same rearrange group ID will allow dragging the tabs between them. Enable drag with . + Setting this to -1 will disable rearranging between s. + + + + + If , child nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one. + + + + + The focus access mode for the internal node. + + + + + If , all tabs can be deselected so that no tab is selected. Click on the to deselect it. + Only the tab header will be shown if no tabs are selected. + + + + + Returns the number of tabs. + + + + + Returns the previously active tab index. + + + + + Selects the first available tab with lower index than the currently selected. Returns if tab selection changed. + + + + + Selects the first available tab with greater index than the currently selected. Returns if tab selection changed. + + + + + Returns the child node located at the active tab index. + + + + + Returns the contained in this container. + Warning: This is a required internal node, removing and freeing it or editing its tabs may cause a crash. If you wish to edit the tabs, use the methods provided in . + + + + + Returns the node from the tab at index . + + + + + Sets a custom title for the tab at index (tab titles default to the name of the indexed child node). Set it back to the child's name to make the tab default to it again. + + + + + Returns the title of the tab at index . Tab titles default to the name of the indexed child node, but this can be overridden with . + + + + + Sets a custom tooltip text for tab at index . + Note: By default, if the is empty and the tab text is truncated (not all characters fit into the tab), the title will be displayed as a tooltip. To hide the tooltip, assign " " as the text. + + + + + Returns the tooltip text of the tab at index . + + + + + Sets an icon for the tab at index . + + + + + Returns the for the tab at index or if the tab has no . + + + + + Sets the maximum allowed width of the icon for the tab at index . This limit is applied on top of the default size of the icon and on top of icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Returns the maximum allowed width of the icon for the tab at index . + + + + + If is , disables the tab at index , making it non-interactable. + + + + + Returns if the tab at index is disabled. + + + + + If is , hides the tab at index , making it disappear from the tab area. + + + + + Returns if the tab at index is hidden. + + + + + Sets the metadata value for the tab at index , which can be retrieved later using . + + + + + Returns the metadata value set to the tab at index using . If no metadata was previously set, returns by default. + + + + + Sets the button icon from the tab at index . + + + + + Returns the button icon from the tab at index . + + + + + Returns the index of the tab at local coordinates . Returns -1 if the point is outside the control boundaries or if there's no tab at the queried position. + + + + + Returns the index of the tab tied to the given . The control must be a child of the . + + + + + If set on a node instance, a popup menu icon appears in the top-right corner of the (setting it to will make it go away). Clicking it will expand the node. + + + + + Returns the node instance if one has been set already with . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the active tab is rearranged via mouse drag. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when switching to another tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is clicked, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is hovered by the mouse. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is selected via click, directional input, or script, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user clicks on the button icon on this tab. + + + + + Emitted when the 's button is clicked. See for details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tab_alignment' property. + + + + + Cached name for the 'current_tab' property. + + + + + Cached name for the 'tabs_position' property. + + + + + Cached name for the 'clip_tabs' property. + + + + + Cached name for the 'tabs_visible' property. + + + + + Cached name for the 'all_tabs_in_front' property. + + + + + Cached name for the 'drag_to_rearrange_enabled' property. + + + + + Cached name for the 'tabs_rearrange_group' property. + + + + + Cached name for the 'use_hidden_tabs_for_min_size' property. + + + + + Cached name for the 'tab_focus_mode' property. + + + + + Cached name for the 'deselect_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tab_count' method. + + + + + Cached name for the 'set_current_tab' method. + + + + + Cached name for the 'get_current_tab' method. + + + + + Cached name for the 'get_previous_tab' method. + + + + + Cached name for the 'select_previous_available' method. + + + + + Cached name for the 'select_next_available' method. + + + + + Cached name for the 'get_current_tab_control' method. + + + + + Cached name for the 'get_tab_bar' method. + + + + + Cached name for the 'get_tab_control' method. + + + + + Cached name for the 'set_tab_alignment' method. + + + + + Cached name for the 'get_tab_alignment' method. + + + + + Cached name for the 'set_tabs_position' method. + + + + + Cached name for the 'get_tabs_position' method. + + + + + Cached name for the 'set_clip_tabs' method. + + + + + Cached name for the 'get_clip_tabs' method. + + + + + Cached name for the 'set_tabs_visible' method. + + + + + Cached name for the 'are_tabs_visible' method. + + + + + Cached name for the 'set_all_tabs_in_front' method. + + + + + Cached name for the 'is_all_tabs_in_front' method. + + + + + Cached name for the 'set_tab_title' method. + + + + + Cached name for the 'get_tab_title' method. + + + + + Cached name for the 'set_tab_tooltip' method. + + + + + Cached name for the 'get_tab_tooltip' method. + + + + + Cached name for the 'set_tab_icon' method. + + + + + Cached name for the 'get_tab_icon' method. + + + + + Cached name for the 'set_tab_icon_max_width' method. + + + + + Cached name for the 'get_tab_icon_max_width' method. + + + + + Cached name for the 'set_tab_disabled' method. + + + + + Cached name for the 'is_tab_disabled' method. + + + + + Cached name for the 'set_tab_hidden' method. + + + + + Cached name for the 'is_tab_hidden' method. + + + + + Cached name for the 'set_tab_metadata' method. + + + + + Cached name for the 'get_tab_metadata' method. + + + + + Cached name for the 'set_tab_button_icon' method. + + + + + Cached name for the 'get_tab_button_icon' method. + + + + + Cached name for the 'get_tab_idx_at_point' method. + + + + + Cached name for the 'get_tab_idx_from_control' method. + + + + + Cached name for the 'set_popup' method. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'set_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'get_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'set_tabs_rearrange_group' method. + + + + + Cached name for the 'get_tabs_rearrange_group' method. + + + + + Cached name for the 'set_use_hidden_tabs_for_min_size' method. + + + + + Cached name for the 'get_use_hidden_tabs_for_min_size' method. + + + + + Cached name for the 'set_tab_focus_mode' method. + + + + + Cached name for the 'get_tab_focus_mode' method. + + + + + Cached name for the 'set_deselect_enabled' method. + + + + + Cached name for the 'get_deselect_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'active_tab_rearranged' signal. + + + + + Cached name for the 'tab_changed' signal. + + + + + Cached name for the 'tab_clicked' signal. + + + + + Cached name for the 'tab_hovered' signal. + + + + + Cached name for the 'tab_selected' signal. + + + + + Cached name for the 'tab_button_pressed' signal. + + + + + Cached name for the 'pre_popup_pressed' signal. + + + + + 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 . + Note: Most viewport, caret, and edit methods contain a caret_index argument for support. The argument should be one of the following: -1 for all carets, 0 for the main caret, or greater than 0 for secondary carets in the order they were created. + Note: When holding down Alt, the vertical scroll wheel will scroll 5 times as fast as it would normally do. This also works in the Godot script editor. + + + + + Cuts (copies and clears) the selected text. + + + + + Copies the selected text. + + + + + Pastes the clipboard text over the selected text (or at the cursor's position). + + + + + Erases the whole text. + + + + + Selects the whole text. + + + + + Undoes the previous action. + + + + + Redoes the previous action. + + + + + ID of "Text Writing Direction" submenu. + + + + + Sets text direction to inherited. + + + + + Sets text direction to automatic. + + + + + Sets text direction to left-to-right. + + + + + Sets text direction to right-to-left. + + + + + Toggles control character display. + + + + + ID of "Insert Control Character" submenu. + + + + + Inserts left-to-right mark (LRM) character. + + + + + Inserts right-to-left mark (RLM) character. + + + + + Inserts start of left-to-right embedding (LRE) character. + + + + + Inserts start of right-to-left embedding (RLE) character. + + + + + Inserts start of left-to-right override (LRO) character. + + + + + Inserts start of right-to-left override (RLO) character. + + + + + Inserts pop direction formatting (PDF) character. + + + + + Inserts Arabic letter mark (ALM) character. + + + + + Inserts left-to-right isolate (LRI) character. + + + + + Inserts right-to-left isolate (RLI) character. + + + + + Inserts first strong isolate (FSI) character. + + + + + Inserts pop direction isolate (PDI) character. + + + + + Inserts zero width joiner (ZWJ) character. + + + + + Inserts zero width non-joiner (ZWNJ) character. + + + + + Inserts word joiner (WJ) character. + + + + + Inserts soft hyphen (SHY) character. + + + + + Represents the size of the enum. + + + + + No current action. + + + + + A typing action. + + + + + A backwards delete action. + + + + + A forward delete action. + + + + + Match case when searching. + + + + + Match whole words when searching. + + + + + Search from end to beginning. + + + + + Vertical line caret. + + + + + Block caret. + + + + + Not selecting. + + + + + Select as if shift is pressed. + + + + + Select single characters as if the user single clicked. + + + + + Select whole words as if the user double clicked. + + + + + Select whole lines as if the user triple clicked. + + + + + Line wrapping is disabled. + + + + + Line wrapping occurs at the control boundary, beyond what would normally be visible. + + + + + When a gutter is set to string using , it is used to contain text set via the method. + + + + + When a gutter is set to icon using , it is used to contain an icon set via the method. + + + + + When a gutter is set to custom using , it is used to contain custom visuals controlled by a callback method set via the method. + + + + + String value of the . + + + + + Text shown when the is empty. It is not the 's default value (see ). + + + + + If , existing text cannot be modified and new text cannot be added. + + + + + If , a right-click displays the context menu. + + + + + If , shortcut keys for context menu items are enabled, even if the context menu is disabled. + + + + + If , text can be selected. + If , text can not be selected by the user or by the or methods. + + + + + If , the selected text will be deselected when focus is lost. + + + + + If , allow drag and drop of selected text. Text can still be dropped from other sources. + + + + + If , the native virtual keyboard is shown when focused on platforms that support it. + + + + + If , using middle mouse button to paste clipboard will be disabled. + Note: This method is only implemented on Linux. + + + + + If , copying or cutting without a selection is performed on all lines with a caret. Otherwise, copy and cut require a selection. + + + + + Sets the line wrapping mode to use. + + + + + If is set to , sets text wrapping mode. To see how each mode behaves, see . + + + + + If , all wrapped lines are indented to the same amount as the unwrapped line. + + + + + Scroll smoothly over the text rather than jumping to the next location. + + + + + Sets the scroll speed with the minimap or when is enabled. + + + + + Allow scrolling past the last line into "virtual" space. + + + + + If there is a vertical scrollbar, this determines the current vertical scroll value in line numbers, starting at 0 for the top line. + + + + + If there is a horizontal scrollbar, this determines the current horizontal scroll value in pixels. + + + + + If , will disable vertical scroll and fit minimum height to the number of visible lines. When both this property and are , no scrollbars will be displayed. + + + + + If , will disable horizontal scroll and fit minimum width to the widest line in the text. When both this property and are , no scrollbars will be displayed. + + + + + If , a minimap is shown, providing an outline of your source code. The minimap uses a fixed-width text size. + + + + + The width, in pixels, of the minimap. + + + + + Set the type of caret to draw. + + + + + If , makes the caret blink. + + + + + The interval at which the caret blinks (in seconds). + + + + + If , caret will be visible when is disabled. + + + + + If , a right-click moves the caret at the mouse position before displaying the context menu. + If , the context menu ignores mouse location. + + + + + Allow moving caret, selecting and removing the individual composite character components. + Note: Backspace is always removing individual composite character components. + + + + + If , multiple carets are allowed. Left-clicking with Alt adds a new caret. See and . + + + + + If , using Ctrl + Left or Ctrl + Right (Cmd + Left or Cmd + Right on macOS) bindings will stop moving caret only if a space or punctuation is detected. If , it will also stop the caret if a character is part of !"#$%&'()*+,-./:;<=>?@[\]^`{|}~, the Unicode General Punctuation table, or the Unicode CJK Punctuation table. Useful for subword moving. This behavior also will be applied to the behavior of text selection. + + + + + If , using Ctrl + Left or Ctrl + Right (Cmd + Left or Cmd + Right on macOS) bindings will use the behavior of . If , it will also stop the caret if a character within is detected. Useful for subword moving. This behavior also will be applied to the behavior of text selection. + + + + + The characters to consider as word delimiters if is . The characters should be defined without separation, for example #_!. + + + + + The syntax highlighter to use. + Note: A instance should not be used across multiple nodes. + + + + + If , all occurrences of the selected text will be highlighted. + + + + + If , the line containing the cursor is highlighted. + + + + + If , control characters are displayed. + + + + + If , the "tab" character will have a visible representation. + + + + + If , the "space" character will have a visible representation. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Override this method to define what happens when the user presses the backspace key. + + + + + Override this method to define what happens when the user performs a copy operation. + + + + + Override this method to define what happens when the user performs a cut operation. + + + + + Override this method to define what happens when the user types in the provided key . + + + + + Override this method to define what happens when the user performs a paste operation. + + + + + Override this method to define what happens when the user performs a paste operation with middle mouse button. + Note: This method is only implemented on Linux. + + + + + Returns if the user has text in the Input Method Editor (IME). + + + + + Closes the Input Method Editor (IME) if it is open. Any text in the IME will be lost. + + + + + Applies text from the Input Method Editor (IME) to each caret and closes the IME if it is open. + + + + + Sets the tab size for the to use. + + + + + Returns the 's' tab size. + + + + + If , enables overtype mode. In this mode, typing overrides existing text instead of inserting text. The ProjectSettings.input/ui_text_toggle_insert_mode action toggles overtype mode. See . + + + + + Returns if overtype mode is enabled. See . + + + + + Performs a full reset of , including undo history. + + + + + Returns the number of lines in the text. + + + + + Sets the text for a specific . + Carets on the line will attempt to keep their visual x position. + + + + + Returns the text of a specific line. + + + + + Returns the width in pixels of the on . + + + + + Returns the maximum value of the line height among all lines. + Note: The return value is influenced by line_spacing and font_size. And it will not be less than 1. + + + + + Returns the indent level of the given line. This is the number of spaces and tabs at the beginning of the line, with the tabs taking the tab size into account (see ). + + + + + Returns the first column containing a non-whitespace character on the given line. If there is only whitespace, returns the number of characters. + + + + + Swaps the two lines. Carets will be swapped with the lines. + + + + + Inserts a new line with at . + + + + + Removes the line of text at . Carets on this line will attempt to match their previous visual x position. + If is carets will move to the next line down, otherwise carets will move up. + + + + + Insert the specified text at the caret position. + + + + + Inserts the at and . + If is , carets and selections that begin at and will moved to the end of the inserted text, along with all carets after it. + If is , selections that end at and will be extended to the end of the inserted text. These parameters can be used to insert text inside of or outside of selections. + + + + + Removes text between the given positions. + + + + + Returns the last unhidden line in the entire . + + + + + Returns the count to the next visible line from to line + visible_amount. Can also count backwards. For example if a has 5 lines with lines 2 and 3 hidden, calling this with line = 1, visible_amount = 1 would return 3. + + + + + Similar to , but takes into account the line wrap indexes. In the returned vector, x is the line, y is the wrap index. + + + + + Called when the user presses the backspace key. Can be overridden with . + + + + + Cut's the current selection. Can be overridden with . + + + + + Copies the current text selection. Can be overridden with . + + + + + Paste at the current location. Can be overridden with . + + + + + Pastes the primary clipboard. + + + + + Starts an action, will end the current action if is different. + An action will also end after a call to , after ProjectSettings.gui/timers/text_edit_idle_detect_sec is triggered or a new undoable step outside the and calls. + + + + + Marks the end of steps in the current action started with . + + + + + Starts a multipart edit. All edits will be treated as one action until is called. + + + + + Ends a multipart edit, started with . If called outside a complex operation, the current operation is pushed onto the undo/redo stack. + + + + + Returns if an "undo" action is available. + + + + + Returns if a "redo" action is available. + + + + + Perform undo operation. + + + + + Perform redo operation. + + + + + Clears the undo history. + + + + + Tag the current version as saved. + + + + + Returns the current version of the . The version is a count of recorded operations by the undo/redo history. + + + + + Returns the last tagged saved version from . + + + + + Sets the search text. See . + + + + + Sets the search . This is used with to highlight occurrences of the searched text. Search flags can be specified from the enum. + + + + + Perform a search inside the text. Search flags can be specified in the enum. + In the returned vector, x is the column, y is the line. If no results are found, both are equal to -1. + + Vector2I result = Search("print", (uint)TextEdit.SearchFlags.WholeWords, 0, 0); + if (result.X != -1) + { + // Result found. + int lineNumber = result.Y; + int columnNumber = result.X; + } + + + + + + Provide custom tooltip text. The callback method must take the following args: hovered_word: String. + + + + + Returns the local mouse position adjusted for the text direction. + + + + + Returns the word at . + + + + + Returns the line and column at the given position. In the returned vector, x is the column, y is the line. If is and the position is not over the text, both vector values will be set to -1. + + + + + Returns the local position for the given and . If x or y of the returned vector equal -1, the position is outside of the viewable area of the control. + Note: The Y position corresponds to the bottom side of the line. Use to get the top side position. + + + + + Returns the local position and size for the grapheme at the given and . If x or y position of the returned rect equal -1, the position is outside of the viewable area of the control. + Note: The Y position of the returned rect corresponds to the top side of the line, unlike which returns the bottom side. + + + + + Returns the equivalent minimap line at . + + + + + Returns if the user is dragging their mouse for scrolling, selecting, or text dragging. + + + + + Returns if the mouse is over a selection. If is , the edges are considered part of the selection. + + + + + Adds a new caret at the given location. Returns the index of the new caret, or -1 if the location is invalid. + + + + + Removes the given caret index. + Note: This can result in adjustment of all other caret indices. + + + + + Removes all additional carets. + + + + + Returns the number of carets in this . + + + + + Adds an additional caret above or below every caret. If is the new caret will be added below and above otherwise. + + + + + Returns the carets sorted by selection beginning from lowest line and column to highest (from top to bottom of text). + If is , carets from will be ignored. + + + + + Collapse all carets in the given range to the and position. + applies to both ends. + If is , carets that are collapsed will be for . + will be called if any carets were collapsed. + + + + + Merges any overlapping carets. Will favor the newest caret, or the caret with a selection. + If is , the merge will be queued to happen at the end of the multicaret edit. See and . + Note: This is not called when a caret changes position but after certain actions, so it is possible to get into a state where carets overlap. + + + + + Starts an edit for multiple carets. The edit must be ended with . Multicaret edits can be used to edit text at multiple carets and delay merging the carets until the end, so the caret indexes aren't affected immediately. and can be nested, and the merge will happen at the last . + + begin_complex_operation() + begin_multicaret_edit() + for i in range(get_caret_count()): + if multicaret_edit_ignore_caret(i): + continue + # Logic here. + end_multicaret_edit() + end_complex_operation() + + + + + + Ends an edit for multiple carets, that was started with . If this was the last and was called, carets will be merged. + + + + + Returns if a has been called and has not yet been called. + + + + + Returns if the given should be ignored as part of a multicaret edit. See and . Carets that should be ignored are ones that were part of removed text and will likely be merged at the end of the edit, or carets that were added during the edit. + It is recommended to continue within a loop iterating on multiple carets if a caret should be ignored. + + + + + Returns if the caret is visible, otherwise. A caret will be considered hidden if it is outside the scrollable area when scrolling is enabled. + Note: does not account for a caret being off-screen if it is still within the scrollable area. It will return even if the caret is off-screen as long as it meets 's own conditions for being visible. This includes uses of and that cause the to expand beyond the viewport's bounds. + + + + + Returns the caret pixel draw position. + + + + + Moves the caret to the specified index. The caret column will be moved to the same visual position it was at the last time was called, or clamped to the end of the line. + If is , the viewport will center at the caret position after the move occurs. + If is , the specified can be hidden. + If is -1, the caret column will be clamped to the 's length. If is greater than -1, the column will be moved to attempt to match the visual x position on the line's to the position from the last time was called. + Note: If supporting multiple carets this will not check for any overlap. See . + + + + + Returns the line the editing caret is on. + + + + + Moves the caret to the specified index. + If is , the viewport will center at the caret position after the move occurs. + Note: If supporting multiple carets this will not check for any overlap. See . + + + + + Returns the column the editing caret is at. + + + + + Returns the wrap index the editing caret is on. + + + + + Returns a text with the word under the caret's location. + + + + + Sets the current selection mode. + + + + + Returns the current selection mode. + + + + + Select all the text. + If is , no selection will occur. + + + + + Selects the word under the caret. + + + + + Adds a selection and a caret for the next occurrence of the current selection. If there is no active selection, selects word under caret. + + + + + Moves a selection and a caret for the next occurrence of the current selection. If there is no active selection, moves to the next occurrence of the word under caret. + + + + + Selects text from and to and for the given . This moves the selection origin and the caret. If the positions are the same, the selection will be deselected. + If is , no selection will occur. + Note: If supporting multiple carets this will not check for any overlap. See . + + + + + Returns if the user has selected text. + + + + + Returns the text inside the selection of a caret, or all the carets if is its default value -1. + + + + + Returns the caret index of the selection at the given and , or -1 if there is none. + If is , the position must be inside the selection and not at either end. If is , carets without a selection will also be considered. + + + + + Returns an of line ranges where x is the first line and y is the last line. All lines within these ranges will have a caret on them or be part of a selection. Each line will only be part of one line range, even if it has multiple carets on it. + If a selection's end column () is at column 0, that line will not be included. If a selection begins on the line after another selection ends and is , or they begin and end on the same line, one line range will include both selections. + + + + + Returns the origin line of the selection. This is the opposite end from the caret. + + + + + Returns the origin column of the selection. This is the opposite end from the caret. + + + + + Sets the selection origin line to the for the given . If the selection origin is moved to the caret position, the selection will deselect. + If is , The line will be set to the nearest unhidden line below or above. + If is -1, the selection origin column will be clamped to the 's length. If is greater than -1, the column will be moved to attempt to match the visual x position on the line's to the position from the last time or was called. + + + + + Sets the selection origin column to the for the given . If the selection origin is moved to the caret position, the selection will deselect. + + + + + Returns the selection begin line. Returns the caret line if there is no selection. + + + + + Returns the selection begin column. Returns the caret column if there is no selection. + + + + + Returns the selection end line. Returns the caret line if there is no selection. + + + + + Returns the selection end column. Returns the caret column if there is no selection. + + + + + Returns if the caret of the selection is after the selection origin. This can be used to determine the direction of the selection. + + + + + Deselects the current selection. + + + + + Deletes the selected text. + + + + + Returns if the given line is wrapped. + + + + + Returns the number of times the given line is wrapped. + + + + + Returns the wrap index of the given column on the given line. This ranges from 0 to . + + + + + Returns an array of s representing each wrapped index. + + + + + Returns the of the . + + + + + Returns the used by . + + + + + Returns the scroll position for of . + + + + + Positions the of at the top of the viewport. + + + + + Returns the first visible line. + + + + + Positions the of at the center of the viewport. + + + + + Positions the of at the bottom of the viewport. + + + + + Returns the last visible line. Use for the wrap index. + + + + + Returns the last visible wrap index of the last visible line. + + + + + Returns the number of lines that can visually fit, rounded down, based on this control's height. + + + + + Returns the total number of lines between and (inclusive) in the text. This includes wrapped lines and excludes folded lines. If the range covers all lines it is equivalent to . + + + + + Returns the total number of lines in the text. This includes wrapped lines and excludes folded lines. If is set to and no lines are folded (see ) then this is equivalent to . See for a limited range of lines. + + + + + Adjust the viewport so the caret is visible. + + + + + Centers the viewport on the line the editing caret is at. This also resets the value to 0. + + + + + Returns the number of lines that may be drawn on the minimap. + + + + + Register a new gutter to this . Use to have a specific gutter order. A value of -1 appends the gutter to the right. + + + + + Removes the gutter at the given index. + + + + + Returns the number of gutters registered. + + + + + Sets the name of the gutter at the given index. + + + + + Returns the name of the gutter at the given index. + + + + + Sets the type of gutter at the given index. Gutters can contain icons, text, or custom visuals. See for options. + + + + + Returns the type of the gutter at the given index. Gutters can contain icons, text, or custom visuals. See for options. + + + + + Set the width of the gutter at the given index. + + + + + Returns the width of the gutter at the given index. + + + + + If , the gutter at the given index is drawn. The gutter type () determines how it is drawn. See . + + + + + Returns if the gutter at the given index is currently drawn. See . + + + + + If , the mouse cursor will change to a pointing hand () when hovering over the gutter at the given index. See and . + + + + + Returns if the gutter at the given index is clickable. See . + + + + + If , the line data of the gutter at the given index can be overridden when using . See . + + + + + Returns if the gutter at the given index is overwritable. See . + + + + + Merge the gutters from into . Only overwritable gutters will be copied. See . + + + + + Set a custom draw callback for the gutter at the given index. must take the following arguments: A line index , a gutter index , and an area . This callback only works when the gutter type is (see ). + + + + + Returns the total width of all gutters and internal padding. + + + + + Sets the metadata for on to . + + + + + Returns the metadata currently in at . + + + + + Sets the text for on to . This only works when the gutter type is (see ). + + + + + Returns the text currently in at . This only works when the gutter type is (see ). + + + + + Sets the icon for on to . This only works when the gutter type is (see ). + + + + + Returns the icon currently in at . This only works when the gutter type is (see ). + + + + + Sets the color for on to . + + + + + Returns the color currently in at . + + + + + If is , makes the on the given clickable. This is like , but for a single line. If is , this will not have any effect. See and . + + + + + Returns if the gutter at the given index on the given line is clickable. See . + + + + + Sets the custom background color of the given line. If transparent, this color is applied on top of the default background color (See background_color). If set to Color(0, 0, 0, 0), no additional color is applied. + + + + + Returns the custom background color of the given line. If no color is set, returns Color(0, 0, 0, 0). + + + + + Returns the of this . By default, this menu is displayed when right-clicking on the . + You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see ). For example: + + public override void _Ready() + { + var menu = GetMenu(); + // Remove all items after "Redo". + menu.ItemCount = menu.GetItemIndex(TextEdit.MenuItems.Redo) + 1; + // Add custom items. + menu.AddSeparator(); + menu.AddItem("Insert Date", TextEdit.MenuItems.Max + 1); + // Add event handler. + menu.IdPressed += OnItemPressed; + } + + public void OnItemPressed(int id) + { + if (id == TextEdit.MenuItems.Max + 1) + { + InsertTextAtCaret(Time.GetDateStringFromSystem()); + } + } + + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns if the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided). See . + + + + + Executes a given action as defined in the enum. + + + + + This method does nothing. + + + + + Returns a list of caret indexes in their edit order, this done from bottom to top. Edit order refers to the way actions such as are applied. + + + + + Returns the original start line of the selection. + + + + + Returns the original start column of the selection. + + + + + Sets the current selection mode. + + + + + Emitted when is called or is set. + + + + + Emitted when the text changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted immediately when the text changes. + When text is added fromLine will be less than toLine. On a remove toLine will be less than fromLine. + + + + + Emitted when any caret changes position. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a gutter is clicked. + + + + + Emitted when a gutter is added. + + + + + Emitted when a gutter is removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'placeholder_text' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'context_menu_enabled' property. + + + + + Cached name for the 'shortcut_keys_enabled' property. + + + + + Cached name for the 'selecting_enabled' property. + + + + + Cached name for the 'deselect_on_focus_loss_enabled' property. + + + + + Cached name for the 'drag_and_drop_selection_enabled' property. + + + + + Cached name for the 'virtual_keyboard_enabled' property. + + + + + Cached name for the 'middle_mouse_paste_enabled' property. + + + + + Cached name for the 'empty_selection_clipboard_enabled' property. + + + + + Cached name for the 'wrap_mode' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'indent_wrapped_lines' property. + + + + + Cached name for the 'scroll_smooth' property. + + + + + Cached name for the 'scroll_v_scroll_speed' property. + + + + + Cached name for the 'scroll_past_end_of_file' property. + + + + + Cached name for the 'scroll_vertical' property. + + + + + Cached name for the 'scroll_horizontal' property. + + + + + Cached name for the 'scroll_fit_content_height' property. + + + + + Cached name for the 'scroll_fit_content_width' property. + + + + + Cached name for the 'minimap_draw' property. + + + + + Cached name for the 'minimap_width' property. + + + + + Cached name for the 'caret_type' property. + + + + + Cached name for the 'caret_blink' property. + + + + + Cached name for the 'caret_blink_interval' property. + + + + + Cached name for the 'caret_draw_when_editable_disabled' property. + + + + + Cached name for the 'caret_move_on_right_click' property. + + + + + Cached name for the 'caret_mid_grapheme' property. + + + + + Cached name for the 'caret_multiple' property. + + + + + Cached name for the 'use_default_word_separators' property. + + + + + Cached name for the 'use_custom_word_separators' property. + + + + + Cached name for the 'custom_word_separators' property. + + + + + Cached name for the 'syntax_highlighter' property. + + + + + Cached name for the 'highlight_all_occurrences' property. + + + + + Cached name for the 'highlight_current_line' property. + + + + + Cached name for the 'draw_control_chars' property. + + + + + Cached name for the 'draw_tabs' property. + + + + + Cached name for the 'draw_spaces' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_backspace' method. + + + + + Cached name for the '_copy' method. + + + + + Cached name for the '_cut' method. + + + + + Cached name for the '_handle_unicode_input' method. + + + + + Cached name for the '_paste' method. + + + + + Cached name for the '_paste_primary_clipboard' method. + + + + + Cached name for the 'has_ime_text' method. + + + + + Cached name for the 'cancel_ime' method. + + + + + Cached name for the 'apply_ime' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_tab_size' method. + + + + + Cached name for the 'get_tab_size' method. + + + + + Cached name for the 'set_indent_wrapped_lines' method. + + + + + Cached name for the 'is_indent_wrapped_lines' method. + + + + + Cached name for the 'set_overtype_mode_enabled' method. + + + + + Cached name for the 'is_overtype_mode_enabled' method. + + + + + Cached name for the 'set_context_menu_enabled' method. + + + + + Cached name for the 'is_context_menu_enabled' method. + + + + + Cached name for the 'set_shortcut_keys_enabled' method. + + + + + Cached name for the 'is_shortcut_keys_enabled' method. + + + + + Cached name for the 'set_virtual_keyboard_enabled' method. + + + + + Cached name for the 'is_virtual_keyboard_enabled' method. + + + + + Cached name for the 'set_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'is_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'set_empty_selection_clipboard_enabled' method. + + + + + Cached name for the 'is_empty_selection_clipboard_enabled' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'set_placeholder' method. + + + + + Cached name for the 'get_placeholder' method. + + + + + Cached name for the 'set_line' method. + + + + + Cached name for the 'get_line' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'get_line_height' method. + + + + + Cached name for the 'get_indent_level' method. + + + + + Cached name for the 'get_first_non_whitespace_column' method. + + + + + Cached name for the 'swap_lines' method. + + + + + Cached name for the 'insert_line_at' method. + + + + + Cached name for the 'remove_line_at' method. + + + + + Cached name for the 'insert_text_at_caret' method. + + + + + Cached name for the 'insert_text' method. + + + + + Cached name for the 'remove_text' method. + + + + + Cached name for the 'get_last_unhidden_line' method. + + + + + Cached name for the 'get_next_visible_line_offset_from' method. + + + + + Cached name for the 'get_next_visible_line_index_offset_from' method. + + + + + Cached name for the 'backspace' method. + + + + + Cached name for the 'cut' method. + + + + + Cached name for the 'copy' method. + + + + + Cached name for the 'paste' method. + + + + + Cached name for the 'paste_primary_clipboard' method. + + + + + Cached name for the 'start_action' method. + + + + + Cached name for the 'end_action' method. + + + + + Cached name for the 'begin_complex_operation' method. + + + + + Cached name for the 'end_complex_operation' method. + + + + + Cached name for the 'has_undo' method. + + + + + Cached name for the 'has_redo' method. + + + + + Cached name for the 'undo' method. + + + + + Cached name for the 'redo' method. + + + + + Cached name for the 'clear_undo_history' method. + + + + + Cached name for the 'tag_saved_version' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'get_saved_version' method. + + + + + Cached name for the 'set_search_text' method. + + + + + Cached name for the 'set_search_flags' method. + + + + + Cached name for the 'search' method. + + + + + Cached name for the 'set_tooltip_request_func' method. + + + + + Cached name for the 'get_local_mouse_pos' method. + + + + + Cached name for the 'get_word_at_pos' method. + + + + + Cached name for the 'get_line_column_at_pos' method. + + + + + Cached name for the 'get_pos_at_line_column' method. + + + + + Cached name for the 'get_rect_at_line_column' method. + + + + + Cached name for the 'get_minimap_line_at_pos' method. + + + + + Cached name for the 'is_dragging_cursor' method. + + + + + Cached name for the 'is_mouse_over_selection' method. + + + + + Cached name for the 'set_caret_type' method. + + + + + Cached name for the 'get_caret_type' method. + + + + + Cached name for the 'set_caret_blink_enabled' method. + + + + + Cached name for the 'is_caret_blink_enabled' method. + + + + + Cached name for the 'set_caret_blink_interval' method. + + + + + Cached name for the 'get_caret_blink_interval' method. + + + + + Cached name for the 'set_draw_caret_when_editable_disabled' method. + + + + + Cached name for the 'is_drawing_caret_when_editable_disabled' method. + + + + + Cached name for the 'set_move_caret_on_right_click_enabled' method. + + + + + Cached name for the 'is_move_caret_on_right_click_enabled' method. + + + + + Cached name for the 'set_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'is_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'set_multiple_carets_enabled' method. + + + + + Cached name for the 'is_multiple_carets_enabled' method. + + + + + Cached name for the 'add_caret' method. + + + + + Cached name for the 'remove_caret' method. + + + + + Cached name for the 'remove_secondary_carets' method. + + + + + Cached name for the 'get_caret_count' method. + + + + + Cached name for the 'add_caret_at_carets' method. + + + + + Cached name for the 'get_sorted_carets' method. + + + + + Cached name for the 'collapse_carets' method. + + + + + Cached name for the 'merge_overlapping_carets' method. + + + + + Cached name for the 'begin_multicaret_edit' method. + + + + + Cached name for the 'end_multicaret_edit' method. + + + + + Cached name for the 'is_in_mulitcaret_edit' method. + + + + + Cached name for the 'multicaret_edit_ignore_caret' method. + + + + + Cached name for the 'is_caret_visible' method. + + + + + Cached name for the 'get_caret_draw_pos' method. + + + + + Cached name for the 'set_caret_line' method. + + + + + Cached name for the 'get_caret_line' method. + + + + + Cached name for the 'set_caret_column' method. + + + + + Cached name for the 'get_caret_column' method. + + + + + Cached name for the 'get_caret_wrap_index' method. + + + + + Cached name for the 'get_word_under_caret' method. + + + + + Cached name for the 'set_use_default_word_separators' method. + + + + + Cached name for the 'is_default_word_separators_enabled' method. + + + + + Cached name for the 'set_use_custom_word_separators' method. + + + + + Cached name for the 'is_custom_word_separators_enabled' method. + + + + + Cached name for the 'set_custom_word_separators' method. + + + + + Cached name for the 'get_custom_word_separators' method. + + + + + Cached name for the 'set_selecting_enabled' method. + + + + + Cached name for the 'is_selecting_enabled' method. + + + + + Cached name for the 'set_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'is_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'set_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'is_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'set_selection_mode' method. + + + + + Cached name for the 'get_selection_mode' method. + + + + + Cached name for the 'select_all' method. + + + + + Cached name for the 'select_word_under_caret' method. + + + + + Cached name for the 'add_selection_for_next_occurrence' method. + + + + + Cached name for the 'skip_selection_for_next_occurrence' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'has_selection' method. + + + + + Cached name for the 'get_selected_text' method. + + + + + Cached name for the 'get_selection_at_line_column' method. + + + + + Cached name for the 'get_line_ranges_from_carets' method. + + + + + Cached name for the 'get_selection_origin_line' method. + + + + + Cached name for the 'get_selection_origin_column' method. + + + + + Cached name for the 'set_selection_origin_line' method. + + + + + Cached name for the 'set_selection_origin_column' method. + + + + + Cached name for the 'get_selection_from_line' method. + + + + + Cached name for the 'get_selection_from_column' method. + + + + + Cached name for the 'get_selection_to_line' method. + + + + + Cached name for the 'get_selection_to_column' method. + + + + + Cached name for the 'is_caret_after_selection_origin' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'delete_selection' method. + + + + + Cached name for the 'set_line_wrapping_mode' method. + + + + + Cached name for the 'get_line_wrapping_mode' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'is_line_wrapped' method. + + + + + Cached name for the 'get_line_wrap_count' method. + + + + + Cached name for the 'get_line_wrap_index_at_column' method. + + + + + Cached name for the 'get_line_wrapped_text' method. + + + + + Cached name for the 'set_smooth_scroll_enabled' method. + + + + + Cached name for the 'is_smooth_scroll_enabled' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'get_h_scroll_bar' method. + + + + + Cached name for the 'set_v_scroll' method. + + + + + Cached name for the 'get_v_scroll' method. + + + + + Cached name for the 'set_h_scroll' method. + + + + + Cached name for the 'get_h_scroll' method. + + + + + Cached name for the 'set_scroll_past_end_of_file_enabled' method. + + + + + Cached name for the 'is_scroll_past_end_of_file_enabled' method. + + + + + Cached name for the 'set_v_scroll_speed' method. + + + + + Cached name for the 'get_v_scroll_speed' method. + + + + + Cached name for the 'set_fit_content_height_enabled' method. + + + + + Cached name for the 'is_fit_content_height_enabled' method. + + + + + Cached name for the 'set_fit_content_width_enabled' method. + + + + + Cached name for the 'is_fit_content_width_enabled' method. + + + + + Cached name for the 'get_scroll_pos_for_line' method. + + + + + Cached name for the 'set_line_as_first_visible' method. + + + + + Cached name for the 'get_first_visible_line' method. + + + + + Cached name for the 'set_line_as_center_visible' method. + + + + + Cached name for the 'set_line_as_last_visible' method. + + + + + Cached name for the 'get_last_full_visible_line' method. + + + + + Cached name for the 'get_last_full_visible_line_wrap_index' method. + + + + + Cached name for the 'get_visible_line_count' method. + + + + + Cached name for the 'get_visible_line_count_in_range' method. + + + + + Cached name for the 'get_total_visible_line_count' method. + + + + + Cached name for the 'adjust_viewport_to_caret' method. + + + + + Cached name for the 'center_viewport_to_caret' method. + + + + + Cached name for the 'set_draw_minimap' method. + + + + + Cached name for the 'is_drawing_minimap' method. + + + + + Cached name for the 'set_minimap_width' method. + + + + + Cached name for the 'get_minimap_width' method. + + + + + Cached name for the 'get_minimap_visible_lines' method. + + + + + Cached name for the 'add_gutter' method. + + + + + Cached name for the 'remove_gutter' method. + + + + + Cached name for the 'get_gutter_count' method. + + + + + Cached name for the 'set_gutter_name' method. + + + + + Cached name for the 'get_gutter_name' method. + + + + + Cached name for the 'set_gutter_type' method. + + + + + Cached name for the 'get_gutter_type' method. + + + + + Cached name for the 'set_gutter_width' method. + + + + + Cached name for the 'get_gutter_width' method. + + + + + Cached name for the 'set_gutter_draw' method. + + + + + Cached name for the 'is_gutter_drawn' method. + + + + + Cached name for the 'set_gutter_clickable' method. + + + + + Cached name for the 'is_gutter_clickable' method. + + + + + Cached name for the 'set_gutter_overwritable' method. + + + + + Cached name for the 'is_gutter_overwritable' method. + + + + + Cached name for the 'merge_gutters' method. + + + + + Cached name for the 'set_gutter_custom_draw' method. + + + + + Cached name for the 'get_total_gutter_width' method. + + + + + Cached name for the 'set_line_gutter_metadata' method. + + + + + Cached name for the 'get_line_gutter_metadata' method. + + + + + Cached name for the 'set_line_gutter_text' method. + + + + + Cached name for the 'get_line_gutter_text' method. + + + + + Cached name for the 'set_line_gutter_icon' method. + + + + + Cached name for the 'get_line_gutter_icon' method. + + + + + Cached name for the 'set_line_gutter_item_color' method. + + + + + Cached name for the 'get_line_gutter_item_color' method. + + + + + Cached name for the 'set_line_gutter_clickable' method. + + + + + Cached name for the 'is_line_gutter_clickable' method. + + + + + Cached name for the 'set_line_background_color' method. + + + + + Cached name for the 'get_line_background_color' method. + + + + + Cached name for the 'set_syntax_highlighter' method. + + + + + Cached name for the 'get_syntax_highlighter' method. + + + + + Cached name for the 'set_highlight_current_line' method. + + + + + Cached name for the 'is_highlight_current_line_enabled' method. + + + + + Cached name for the 'set_highlight_all_occurrences' method. + + + + + Cached name for the 'is_highlight_all_occurrences_enabled' method. + + + + + Cached name for the 'get_draw_control_chars' method. + + + + + Cached name for the 'set_draw_control_chars' method. + + + + + Cached name for the 'set_draw_tabs' method. + + + + + Cached name for the 'is_drawing_tabs' method. + + + + + Cached name for the 'set_draw_spaces' method. + + + + + Cached name for the 'is_drawing_spaces' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'is_menu_visible' method. + + + + + Cached name for the 'menu_option' method. + + + + + Cached name for the 'adjust_carets_after_edit' method. + + + + + Cached name for the 'get_caret_index_edit_order' method. + + + + + Cached name for the 'get_selection_line' method. + + + + + Cached name for the 'get_selection_column' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'text_set' signal. + + + + + Cached name for the 'text_changed' signal. + + + + + Cached name for the 'lines_edited_from' signal. + + + + + Cached name for the 'caret_changed' signal. + + + + + Cached name for the 'gutter_clicked' signal. + + + + + Cached name for the 'gutter_added' signal. + + + + + Cached name for the 'gutter_removed' signal. + + + + + Abstraction over for handling a single line of text. + + + + + Text writing direction. + + + + + Text orientation. + + + + + If set to text will display invalid characters. + + + + + If set to text will display control characters. + + + + + Text line width. + + + + + Sets text alignment within the line as if the line was horizontal. + + + + + Line alignment rules. For more info see . + + + + + Sets the clipping behavior when the text exceeds the text line's set width. See for a description of all modes. + + + + + Ellipsis character used for text clipping. + + + + + Clears text line (removes text and inline objects). + + + + + Overrides BiDi for the structured text. + Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately. + + + + + Adds text span and font to draw it. + + + + + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Sets new size and alignment of embedded object. + + + + + Aligns text to the given tab-stops. + + + + + Aligns text to the given tab-stops. + + + + + Returns array of inline objects. + + + + + Returns bounding rectangle of the inline object. + + + + + Returns size of the bounding box of the text. + + + + + Returns TextServer buffer RID. + + + + + Returns the text ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + + + + + Returns the text descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + + + + + Returns width (for horizontal layout) or height (for vertical) of the text. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Returns thickness of the underline. + + + + + Draw text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns caret character offset at the specified pixel offset at the baseline. This function always returns a valid position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'orientation' property. + + + + + Cached name for the 'preserve_invalid' property. + + + + + Cached name for the 'preserve_control' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'flags' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'ellipsis_char' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_orientation' method. + + + + + Cached name for the 'get_orientation' method. + + + + + Cached name for the 'set_preserve_invalid' method. + + + + + Cached name for the 'get_preserve_invalid' method. + + + + + Cached name for the 'set_preserve_control' method. + + + + + Cached name for the 'get_preserve_control' method. + + + + + Cached name for the 'set_bidi_override' method. + + + + + Cached name for the 'add_string' method. + + + + + Cached name for the 'add_object' method. + + + + + Cached name for the 'resize_object' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'tab_align' method. + + + + + Cached name for the 'set_flags' method. + + + + + Cached name for the 'get_flags' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_ellipsis_char' method. + + + + + Cached name for the 'get_ellipsis_char' method. + + + + + Cached name for the 'get_objects' method. + + + + + Cached name for the 'get_object_rect' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'get_line_ascent' method. + + + + + Cached name for the 'get_line_descent' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'get_line_underline_position' method. + + + + + Cached name for the 'get_line_underline_thickness' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'draw_outline' method. + + + + + Cached name for the 'hit_test' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generate an 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. + + + + + The text to generate mesh from. + Note: Due to being a , it doesn't follow the rules of . If disabling translation is desired, it should be done manually with . + + + + + Font configuration used to display text. + + + + + Font size of the 's text. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom. Set it to one of the constants. + + + + + If , all the text displays as UPPERCASE. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see . + + + + + Line fill alignment rules. See for more information. + + + + + The size of one pixel's width on the text to scale it in 3D. + + + + + Step (in pixels) used to approximate Bézier curves. + + + + + Depths of the mesh, if set to 0.0 only front surface, is generated, and UV layout is changed to use full texture for the front face only. + + + + + Text width (in pixels), used for fill alignment. + + + + + The text drawing offset (in pixels). + + + + + Base text writing direction. + + + + + Language code used for text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'font' property. + + + + + Cached name for the 'font_size' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'uppercase' property. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'pixel_size' property. + + + + + Cached name for the 'curve_step' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_pixel_size' method. + + + + + Cached name for the 'get_pixel_size' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_curve_step' method. + + + + + Cached name for the 'get_curve_step' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_uppercase' method. + + + + + Cached name for the 'is_uppercase' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstraction over for handling a single paragraph of text. + + + + + Text writing direction. + + + + + Custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Text orientation. + + + + + If set to text will display invalid characters. + + + + + If set to text will display control characters. + + + + + Paragraph horizontal alignment. + + + + + Line breaking rules. For more info see . + + + + + Line fill alignment rules. See for more information. + + + + + Sets the clipping behavior when the text exceeds the paragraph's set width. See for a description of all modes. + + + + + Ellipsis character used for text clipping. + + + + + Paragraph width. + + + + + Limits the lines of text shown. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + Clears text paragraph (removes text and inline objects). + + + + + Overrides BiDi for the structured text. + Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately. + + + + + Sets drop cap, overrides previously set drop cap. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Removes dropcap. + + + + + Adds text span and font to draw it. + + + + + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Sets new size and alignment of embedded object. + + + + + Aligns paragraph to the given tab-stops. + + + + + Aligns paragraph to the given tab-stops. + + + + + Returns the size of the bounding box of the paragraph, without line breaks. + + + + + Returns the size of the bounding box of the paragraph. + + + + + Returns TextServer full string buffer RID. + + + + + Returns TextServer line buffer RID. + + + + + Returns drop cap text buffer RID. + + + + + Returns number of lines in the paragraph. + + + + + Returns array of inline objects in the line. + + + + + Returns bounding rectangle of the inline object. + + + + + Returns size of the bounding box of the line of text. Returned size is rounded up. + + + + + Returns character range of the line. + + + + + Returns the text line ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + + + + + Returns the text line descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + + + + + Returns width (for horizontal layout) or height (for vertical) of the line of text. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Returns thickness of the underline. + + + + + Returns drop cap bounding box size. + + + + + Returns number of lines used by dropcap. + + + + + Draw all lines of the text and drop cap into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw outlines of all lines of the text and drop cap into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw single line of text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw outline of the single line of text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw drop cap into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw drop cap outline into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns caret character offset at the specified coordinates. This function always returns a valid position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'custom_punctuation' property. + + + + + Cached name for the 'orientation' property. + + + + + Cached name for the 'preserve_invalid' property. + + + + + Cached name for the 'preserve_control' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'break_flags' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'ellipsis_char' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'max_lines_visible' property. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_custom_punctuation' method. + + + + + Cached name for the 'get_custom_punctuation' method. + + + + + Cached name for the 'set_orientation' method. + + + + + Cached name for the 'get_orientation' method. + + + + + Cached name for the 'set_preserve_invalid' method. + + + + + Cached name for the 'get_preserve_invalid' method. + + + + + Cached name for the 'set_preserve_control' method. + + + + + Cached name for the 'get_preserve_control' method. + + + + + Cached name for the 'set_bidi_override' method. + + + + + Cached name for the 'set_dropcap' method. + + + + + Cached name for the 'clear_dropcap' method. + + + + + Cached name for the 'add_string' method. + + + + + Cached name for the 'add_object' method. + + + + + Cached name for the 'resize_object' method. + + + + + Cached name for the 'set_alignment' method. + + + + + Cached name for the 'get_alignment' method. + + + + + Cached name for the 'tab_align' method. + + + + + Cached name for the 'set_break_flags' method. + + + + + Cached name for the 'get_break_flags' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_ellipsis_char' method. + + + + + Cached name for the 'get_ellipsis_char' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_non_wrapped_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'get_line_rid' method. + + + + + Cached name for the 'get_dropcap_rid' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'set_max_lines_visible' method. + + + + + Cached name for the 'get_max_lines_visible' method. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'get_line_objects' method. + + + + + Cached name for the 'get_line_object_rect' method. + + + + + Cached name for the 'get_line_size' method. + + + + + Cached name for the 'get_line_range' method. + + + + + Cached name for the 'get_line_ascent' method. + + + + + Cached name for the 'get_line_descent' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'get_line_underline_position' method. + + + + + Cached name for the 'get_line_underline_thickness' method. + + + + + Cached name for the 'get_dropcap_size' method. + + + + + Cached name for the 'get_dropcap_lines' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'draw_outline' method. + + + + + Cached name for the 'draw_line' method. + + + + + Cached name for the 'draw_line_outline' method. + + + + + Cached name for the 'draw_dropcap' method. + + + + + Cached name for the 'draw_dropcap_outline' method. + + + + + Cached name for the 'hit_test' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API backend for managing fonts and rendering text. + Note: This is a low-level API, consider using , , and classes instead. + This is an abstract class, so to get the currently active instance, use the following code: + + var ts = TextServerManager.GetPrimaryInterface(); + + + + + + Font glyphs are rasterized as 1-bit bitmaps. + + + + + Font glyphs are rasterized as 8-bit grayscale anti-aliased bitmaps. + + + + + Font glyphs are rasterized for LCD screens. + LCD subpixel layout is determined by the value of gui/theme/lcd_subpixel_layout project settings. + LCD subpixel anti-aliasing mode is suitable only for rendering horizontal, unscaled text in 2D. + + + + + Unknown or unsupported subpixel layout, LCD subpixel antialiasing is disabled. + + + + + Horizontal RGB subpixel layout. + + + + + Horizontal BGR subpixel layout. + + + + + Vertical RGB subpixel layout. + + + + + Vertical BGR subpixel layout. + + + + + Represents the size of the enum. + + + + + Text direction is determined based on contents and current locale. + + + + + Text is written from left to right. + + + + + Text is written from right to left. + + + + + Text writing direction is the same as base string writing direction. Used for BiDi override only. + + + + + Text is written horizontally. + + + + + Left to right text is written vertically from top to bottom. + Right to left text is written vertically from bottom to top. + + + + + Do not justify text. + + + + + Justify text by adding and removing kashidas. + + + + + Justify text by changing width of the spaces between the words. + + + + + Remove trailing and leading spaces from the justified text. + + + + + Only apply justification to the part of the text after the last tab. + + + + + Apply justification to the trimmed line with ellipsis. + + + + + Do not apply justification to the last line of the paragraph. + + + + + Do not apply justification to the last line of the paragraph with visible characters (takes precedence over ). + + + + + Always apply justification to the paragraphs with a single line ( and are ignored). + + + + + Autowrap is disabled. + + + + + 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. + + + + + Wraps the text inside the node's bounding rectangle by soft-breaking between words. + + + + + Behaves similarly to , but force-breaks a word if that single word does not fit in one line. + + + + + Do not break the line. + + + + + Break the line at the line mandatory break characters (e.g. "\n"). + + + + + Break the line between the words. + + + + + Break the line between any unconnected graphemes. + + + + + Should be used only in conjunction with , break the line between any unconnected graphemes, if it's impossible to break it between the words. + + + + + Remove edge spaces from the broken line segments. + + + + + Subtract first line indentation width from all lines after the first one. + + + + + Trims text before the shaping. e.g, increasing or value is visually identical to typing the text. + Note: In this mode, trimmed text is not processed at all. It is not accounted for in line breaking and size calculations. + + + + + Displays glyphs that are mapped to the first or characters from the beginning of the text. + + + + + Displays or glyphs, starting from the left or from the right, depending on value. + + + + + Displays or glyphs, starting from the left. + + + + + Displays or glyphs, starting from the right. + + + + + No text trimming is performed. + + + + + Trims the text per character. + + + + + Trims the text per word. + + + + + Trims the text per character and adds an ellipsis to indicate that parts are hidden. + + + + + Trims the text per word and adds an ellipsis to indicate that parts are hidden. + + + + + No trimming is performed. + + + + + Trims the text when it exceeds the given width. + + + + + Trims the text per word instead of per grapheme. + + + + + Determines whether an ellipsis should be added at the end of the text. + + + + + Determines whether the ellipsis at the end of the text is enforced and may not be hidden. + + + + + Accounts for the text being justified before attempting to trim it (see ). + + + + + Grapheme is supported by the font, and can be drawn. + + + + + Grapheme is part of right-to-left or bottom-to-top run. + + + + + Grapheme is not part of source text, it was added by justification process. + + + + + Grapheme is whitespace. + + + + + Grapheme is mandatory break point (e.g. "\n"). + + + + + Grapheme is optional break point (e.g. space). + + + + + Grapheme is the tabulation character. + + + + + Grapheme is kashida. + + + + + Grapheme is punctuation character. + + + + + Grapheme is underscore character. + + + + + Grapheme is connected to the previous grapheme. Breaking line before this grapheme is not safe. + + + + + It is safe to insert a U+0640 before this grapheme for elongation. + + + + + Grapheme is an object replacement character for the embedded object. + + + + + Grapheme is a soft hyphen. + + + + + Disables font hinting (smoother but less crisp). + + + + + Use the light font hinting mode. + + + + + Use the default font hinting mode (crisper but less smooth). + Note: This hinting mode changes both horizontal and vertical glyph metrics. If applied to monospace font, some glyphs might have different width. + + + + + Glyph horizontal position is rounded to the whole pixel size, each glyph is rasterized once. + + + + + Glyph horizontal position is rounded based on font size. + - To one quarter of the pixel size if font size is smaller or equal to . + - To one half of the pixel size if font size is smaller or equal to . + - To the whole pixel size for larger fonts. + + + + + Glyph horizontal position is rounded to one half of the pixel size, each glyph is rasterized up to two times. + + + + + Glyph horizontal position is rounded to one quarter of the pixel size, each glyph is rasterized up to four times. + + + + + Maximum font size which will use one half of the pixel subpixel positioning in mode. + + + + + Maximum font size which will use one quarter of the pixel subpixel positioning in mode. + + + + + TextServer supports simple text layouts. + + + + + TextServer supports bidirectional text layouts. + + + + + TextServer supports vertical layouts. + + + + + TextServer supports complex text shaping. + + + + + TextServer supports justification using kashidas. + + + + + TextServer supports complex line/word breaking rules (e.g. dictionary based). + + + + + TextServer supports loading bitmap fonts. + + + + + TextServer supports loading dynamic (TrueType, OpeType, etc.) fonts. + + + + + TextServer supports multichannel signed distance field dynamic font rendering. + + + + + TextServer supports loading system fonts. + + + + + TextServer supports variable fonts. + + + + + TextServer supports locale dependent and context sensitive case conversion. + + + + + TextServer require external data file for some features, see . + + + + + TextServer supports UAX #31 identifier validation, see . + + + + + TextServer supports Unicode Technical Report #36 and Unicode Technical Standard #39 based spoof detection features. + + + + + Contour point is on the curve. + + + + + Contour point isn't on the curve, but serves as a control point for a conic (quadratic) Bézier arc. + + + + + Contour point isn't on the curve, but serves as a control point for a cubic Bézier arc. + + + + + Spacing for each glyph. + + + + + Spacing for the space character. + + + + + Spacing at the top of the line. + + + + + Spacing at the bottom of the line. + + + + + Represents the size of the enum. + + + + + Font is bold. + + + + + Font is italic or oblique. + + + + + Font have fixed-width characters. + + + + + Use default Unicode BiDi algorithm. + + + + + BiDi override for URI. + + + + + BiDi override for file path. + + + + + BiDi override for email. + + + + + BiDi override for lists. Structured text options: list separator . + + + + + BiDi override for GDScript. + + + + + User defined structured text BiDi override function. + + + + + Bitmap font is not scaled. + + + + + Bitmap font is scaled to the closest integer multiple of the font's fixed size. This is the recommended option for pixel art fonts. + + + + + Bitmap font is scaled to an arbitrary (fractional) size. This is the recommended option for non-pixel art fonts. + + + + + Returns if the server supports a feature. + + + + + Returns the name of the server interface. + + + + + Returns text server features, see . + + + + + Loads optional TextServer database (e.g. ICU break iterators and dictionaries). + Note: This function should be called before any other TextServer functions used, otherwise it won't have any effect. + + + + + Returns default TextServer database (e.g. ICU break iterators and dictionaries) filename. + + + + + Returns TextServer database (e.g. ICU break iterators and dictionaries) description. + + + + + Saves optional TextServer database (e.g. ICU break iterators and dictionaries) to the file. + Note: This function is used by during project export, to include TextServer database. + + + + + Returns default TextServer database (e.g. ICU break iterators and dictionaries). + + + + + Returns if locale is right-to-left. + + + + + Converts readable feature, variation, script, or language name to OpenType tag. + + + + + Converts OpenType tag to readable feature, variation, script, or language name. + + + + + Returns if is valid resource owned by this text server. + + + + + Frees an object created by this . + + + + + Creates a new, empty font cache entry resource. To free the resulting resource, use the method. + + + + + Creates a new variation existing font which is reusing the same glyph cache and font data. To free the resulting resource, use the method. + + + + + Sets font source data, e.g contents of the dynamic font source file. + + + + + Sets font source data, e.g contents of the dynamic font source file. + + + + + Sets an active face index in the TrueType / OpenType collection. + + + + + Returns an active face index in the TrueType / OpenType collection. + + + + + Returns number of faces in the TrueType / OpenType collection. + + + + + Sets the font style flags, see . + Note: This value is used for font matching only and will not affect font rendering. Use , , , or instead. + + + + + Returns font style flags, see . + + + + + Sets the font family name. + + + + + Returns font family name. + + + + + Returns with OpenType font name strings (localized font names, version, description, license information, sample text, etc.). + + + + + Sets the font style name. + + + + + Returns font style name. + + + + + Sets weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + Note: This value is used for font matching only and will not affect font rendering. Use , , or instead. + + + + + Returns weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Sets font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + Note: This value is used for font matching only and will not affect font rendering. Use , , or instead. + + + + + Returns font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Sets font anti-aliasing mode. + + + + + Returns font anti-aliasing mode. + + + + + If set to , embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). + + + + + Returns whether the font's embedded bitmap loading is disabled. + + + + + If set to font texture mipmap generation is enabled. + + + + + Returns if font texture mipmap generation is enabled. + + + + + If set to , glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + Note: MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts. + + + + + Returns if glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + + + + + Sets the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Returns the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Sets source font size used to generate MSDF textures. + + + + + Returns source font size used to generate MSDF textures. + + + + + Sets bitmap font fixed size. If set to value greater than zero, same cache entry will be used for all font sizes. + + + + + Returns bitmap font fixed size. + + + + + Sets bitmap font scaling mode. This property is used only if fixed_size is greater than zero. + + + + + Returns bitmap font scaling mode. + + + + + If set to , system fonts can be automatically used as fallbacks. + + + + + Returns if system fonts can be automatically used as fallbacks. + + + + + If set to auto-hinting is preferred over font built-in hinting. + + + + + Returns if auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only. + + + + + Sets font hinting mode. Used by dynamic fonts only. + + + + + Returns the font hinting mode. Used by dynamic fonts only. + + + + + Sets font subpixel glyph positioning mode. + + + + + Returns font subpixel glyph positioning mode. + + + + + Sets glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Returns glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Sets font embolden strength. If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Returns font embolden strength. + + + + + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Returns the spacing for (see ) in pixels (not relative to the font size). + + + + + Sets extra baseline offset (as a fraction of font height). + + + + + Returns extra baseline offset (as a fraction of font height). + + + + + Sets 2D transform, applied to the font outlines, can be used for slanting, flipping, and rotating glyphs. + For example, to simulate italic typeface by slanting, apply the following transform Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0). + + + + + Returns 2D transform applied to the font outlines. + + + + + Sets variation coordinates for the specified font cache entry. See for more info. + + + + + Returns variation coordinates for the specified font cache entry. See for more info. + + + + + Sets font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Returns font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Returns list of the font sizes in the cache. Each size is with font size and outline size. + + + + + Removes all font sizes from the cache entry. + + + + + Removes specified font size from the cache entry. + + + + + Sets the font ascent (number of pixels above the baseline). + + + + + Returns the font ascent (number of pixels above the baseline). + + + + + Sets the font descent (number of pixels below the baseline). + + + + + Returns the font descent (number of pixels below the baseline). + + + + + Sets pixel offset of the underline below the baseline. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Sets thickness of the underline in pixels. + + + + + Returns thickness of the underline in pixels. + + + + + Sets scaling factor of the color bitmap font. + + + + + Returns scaling factor of the color bitmap font. + + + + + Returns number of textures used by font cache entry. + + + + + Removes all textures from font cache entry. + Note: This function will not remove glyphs associated with the texture, use to remove them manually. + + + + + Removes specified texture from the cache entry. + Note: This function will not remove glyphs associated with the texture, remove them manually, using . + + + + + Sets font cache texture image data. + + + + + Returns font cache texture image data. + + + + + Sets array containing glyph packing data. + + + + + Sets array containing glyph packing data. + + + + + Returns array containing glyph packing data. + + + + + Returns list of rendered glyphs in the cache entry. + + + + + Removes all rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Removes specified rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Returns glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Sets glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Returns glyph offset from the baseline. + + + + + Sets glyph offset from the baseline. + + + + + Returns size of the glyph. + + + + + Sets size of the glyph. + + + + + Returns rectangle in the cache texture containing the glyph. + + + + + Sets rectangle in the cache texture containing the glyph. + + + + + Returns index of the cache texture containing the glyph. + + + + + Sets index of the cache texture containing the glyph. + + + + + Returns resource ID of the cache texture containing the glyph. + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + + + + Returns size of the cache texture containing the glyph. + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + + + + Returns outline contours of the glyph as a with the following contents: + points - [], containing outline points. x and y are point coordinates. z is the type of the point, using the values. + contours - [], containing indices the end points of each contour. + orientation - , contour orientation. If , clockwise contours must be filled. + - Two successive points indicate a line segment. + - One point between two points indicates a single conic (quadratic) Bézier arc. + - Two points between two points indicate a single cubic Bézier arc. + - Two successive points indicate two successive conic (quadratic) Bézier arcs with a virtual point at their middle. + - Each contour is closed. The last point of a contour uses the first point of a contour as its next point, and vice versa. The first point can be point. + + + + + Returns list of the kerning overrides. + + + + + Removes all kerning overrides. + + + + + Removes kerning override for the pair of glyphs. + + + + + Sets kerning for the pair of glyphs. + + + + + Returns kerning for the pair of glyphs. + + + + + Returns the glyph index of a , optionally modified by the . See . + + + + + Returns character code associated with , or 0 if is invalid. See . + + + + + Returns if a Unicode is available in the font. + + + + + Returns a string containing all the characters available in the font. + + + + + Returns an array containing all glyph indices in the font. + + + + + Renders the range of characters to the font cache texture. + + + + + Renders specified glyph to the font cache texture. + + + + + Draws single glyph into a canvas item at the position, using at the size . + Note: Glyph index is specific to the font, use glyphs indices returned by or . + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws single glyph outline of size into a canvas item at the position, using at the size . + Note: Glyph index is specific to the font, use glyphs indices returned by or . + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns , if font supports given language (ISO 639 code). + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Remove language support override. + + + + + Returns list of language support overrides. + + + + + Returns , if font supports given script (ISO 15924 code). + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Removes script support override. + + + + + Returns list of script support overrides. + + + + + Sets font OpenType feature set override. + + + + + Returns font OpenType feature set override. + + + + + Returns the dictionary of the supported OpenType features. + + + + + Returns the dictionary of the supported OpenType variation coordinates. + + + + + Returns the font oversampling factor, shared by all fonts in the TextServer. + + + + + Sets oversampling factor, shared by all font in the TextServer. + Note: This value can be automatically changed by display server. + + + + + Returns size of the replacement character (box with character hexadecimal code that is drawn in place of invalid characters). + + + + + Draws box displaying character hexadecimal code. Used for replacing missing characters. + + + + + Creates a new buffer for complex text layout, with the given and . To free the resulting buffer, use method. + Note: Direction is ignored if server does not support feature (supported by ). + Note: Orientation is ignored if server does not support feature (supported by ). + + + + + Clears text buffer (removes text and inline objects). + + + + + Sets desired text direction. If set to , direction will be detected based on the buffer contents and current locale. + Note: Direction is ignored if server does not support feature (supported by ). + + + + + Returns direction of the text. + + + + + Returns direction of the text, inferred by the BiDi algorithm. + + + + + Overrides BiDi for the structured text. + Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately. + + + + + Sets custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Returns custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Sets ellipsis character used for text clipping. + + + + + Returns ellipsis character used for text clipping. + + + + + Sets desired text orientation. + Note: Orientation is ignored if server does not support feature (supported by ). + + + + + Returns text orientation. + + + + + If set to text buffer will display invalid characters as hexadecimal codes, otherwise nothing is displayed. + + + + + Returns if text buffer is configured to display hexadecimal codes in place of invalid characters. + Note: If set to , nothing is displayed in place of invalid characters. + + + + + If set to text buffer will display control characters. + + + + + Returns if text buffer is configured to display control characters. + + + + + Sets extra spacing added between glyphs or lines in pixels. + + + + + Returns extra spacing added between glyphs or lines in pixels. + + + + + Adds text span and font to draw it to the text buffer. + + + + + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Sets new size and alignment of embedded object. + + + + + Returns number of text spans added using or . + + + + + Returns text span metadata. + + + + + Changes text span font, font size, and OpenType features, without changing the text. + + + + + Returns text buffer for the substring of the text in the text buffer (including inline objects). + + + + + Returns the parent buffer from which the substring originates. + + + + + Adjusts text width to fit to specified width, returns new text width. + + + + + Aligns shaped text to the given tab-stops. + + + + + Aligns shaped text to the given tab-stops. + + + + + Shapes buffer if it's not shaped. Returns if the string is shaped successfully. + Note: It is not necessary to call this function manually, buffer will be shaped automatically as soon as any of its output data is requested. + + + + + Returns if buffer is successfully shaped. + + + + + Returns if text buffer contains any visible characters. + + + + + Returns an array of glyphs in the visual order. + + + + + Returns text glyphs in the logical order. + + + + + Returns number of glyphs in the buffer. + + + + + Returns substring buffer character range in the parent buffer. + + + + + Breaks text to the lines and columns. Returns character ranges for each segment. + + + + + Breaks text to the lines and columns. Returns character ranges for each segment. + + + + + Breaks text to the lines and returns character ranges for each line. + + + + + Breaks text into words and returns array of character ranges. Use to set what characters are used for breaking (see ). + + + + + Returns the position of the overrun trim. + + + + + Returns position of the ellipsis. + + + + + Returns array of the glyphs in the ellipsis. + + + + + Returns number of glyphs in the ellipsis. + + + + + Trims text if it exceeds the given width. + + + + + Returns array of inline objects. + + + + + Returns bounding rectangle of the inline object. + + + + + Returns the character range of the inline object. + + + + + Returns the glyph index of the inline object. + + + + + Returns size of the text. + + + + + Returns the text ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + Note: Overall ascent can be higher than font ascent, if some glyphs are displaced from the baseline. + + + + + Returns the text descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + Note: Overall descent can be higher than font descent, if some glyphs are displaced from the baseline. + + + + + Returns width (for horizontal layout) or height (for vertical) of the text. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Returns thickness of the underline. + + + + + Returns shapes of the carets corresponding to the character offset in the text. Returned caret shape is 1 pixel wide rectangle. + + + + + Returns selection rectangles for the specified character range. + + + + + Returns grapheme index at the specified pixel offset at the baseline, or -1 if none is found. + + + + + Returns caret character offset at the specified pixel offset at the baseline. This function always returns a valid position. + + + + + Returns composite character's bounds as offsets from the start of the line. + + + + + Returns grapheme end position closest to the . + + + + + Returns grapheme start position closest to the . + + + + + Returns array of the composite character boundaries. + + + + + Returns composite character end position closest to the . + + + + + Returns composite character start position closest to the . + + + + + Returns composite character position closest to the . + + + + + Draw shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw the outline of the shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns dominant direction of in the range of text. + + + + + Converts a number from the Western Arabic (0..9) to the numeral systems used in . + If is omitted, the active locale will be used. + + + + + Converts from the numeral systems used in to Western Arabic (0..9). + + + + + Returns percent sign used in the . + + + + + Returns an array of the word break boundaries. Elements in the returned array are the offsets of the start and end of words. Therefore the length of the array is always even. + When is greater than zero, line break boundaries are returned instead. + + var ts = TextServerManager.get_primary_interface() + print(ts.string_get_word_breaks("The Godot Engine, 4")) # Prints [0, 3, 4, 9, 10, 16, 18, 19], which corresponds to the following substrings: "The", "Godot", "Engine", "4" + print(ts.string_get_word_breaks("The Godot Engine, 4", "en", 5)) # Prints [0, 3, 4, 9, 10, 15, 15, 19], which corresponds to the following substrings: "The", "Godot", "Engin", "e, 4" + print(ts.string_get_word_breaks("The Godot Engine, 4", "en", 10)) # Prints [0, 9, 10, 19], which corresponds to the following substrings: "The Godot", "Engine, 4" + + + + + + Returns array of the composite character boundaries. + + var ts = TextServerManager.get_primary_interface() + print(ts.string_get_character_breaks("Test ❤️‍🔥 Test")) # Prints [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14] + + + + + + Returns index of the first string in which is visually confusable with the , or -1 if none is found. + Note: This method doesn't detect invisible characters, for spoof detection use it in combination with . + Note: Always returns -1 if the server does not support the feature. + + + + + Returns index of the first string in which is visually confusable with the , or -1 if none is found. + Note: This method doesn't detect invisible characters, for spoof detection use it in combination with . + Note: Always returns -1 if the server does not support the feature. + + + + + Returns if is likely to be an attempt at confusing the reader. + Note: Always returns if the server does not support the feature. + + + + + Strips diacritics from the string. + Note: The result may be longer or shorter than the original. + + + + + Returns if is a valid identifier. + If the text server supports the feature, a valid identifier must: + - Conform to normalization form C. + - Begin with a Unicode character of class XID_Start or "_". + - May contain Unicode characters of class XID_Continue in the other positions. + - Use UAX #31 recommended scripts only (mixed scripts are allowed). + If the feature is not supported, a valid identifier must: + - Begin with a Unicode character of class XID_Start or "_". + - May contain Unicode characters of class XID_Continue in the other positions. + + + + + Returns if the given code point is a valid letter, i.e. it belongs to the Unicode category "L". + + + + + Returns the string converted to uppercase. + Note: Casing is locale dependent and context sensitive if server support feature (supported by ). + Note: The result may be longer or shorter than the original. + + + + + Returns the string converted to lowercase. + Note: Casing is locale dependent and context sensitive if server support feature (supported by ). + Note: The result may be longer or shorter than the original. + + + + + Returns the string converted to title case. + Note: Casing is locale dependent and context sensitive if server support feature (supported by ). + Note: The result may be longer or shorter than the original. + + + + + Default implementation of the BiDi algorithm override function. See for more info. + + + + + Breaks text into words and returns array of character ranges. Use to set what characters are used for breaking (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_features' method. + + + + + Cached name for the 'load_support_data' method. + + + + + Cached name for the 'get_support_data_filename' method. + + + + + Cached name for the 'get_support_data_info' method. + + + + + Cached name for the 'save_support_data' method. + + + + + Cached name for the 'get_support_data' method. + + + + + Cached name for the 'is_locale_right_to_left' method. + + + + + Cached name for the 'name_to_tag' method. + + + + + Cached name for the 'tag_to_name' method. + + + + + Cached name for the 'has' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'create_font' method. + + + + + Cached name for the 'create_font_linked_variation' method. + + + + + Cached name for the 'font_set_data' method. + + + + + Cached name for the 'font_set_face_index' method. + + + + + Cached name for the 'font_get_face_index' method. + + + + + Cached name for the 'font_get_face_count' method. + + + + + Cached name for the 'font_set_style' method. + + + + + Cached name for the 'font_get_style' method. + + + + + Cached name for the 'font_set_name' method. + + + + + Cached name for the 'font_get_name' method. + + + + + Cached name for the 'font_get_ot_name_strings' method. + + + + + Cached name for the 'font_set_style_name' method. + + + + + Cached name for the 'font_get_style_name' method. + + + + + Cached name for the 'font_set_weight' method. + + + + + Cached name for the 'font_get_weight' method. + + + + + Cached name for the 'font_set_stretch' method. + + + + + Cached name for the 'font_get_stretch' method. + + + + + Cached name for the 'font_set_antialiasing' method. + + + + + Cached name for the 'font_get_antialiasing' method. + + + + + Cached name for the 'font_set_disable_embedded_bitmaps' method. + + + + + Cached name for the 'font_get_disable_embedded_bitmaps' method. + + + + + Cached name for the 'font_set_generate_mipmaps' method. + + + + + Cached name for the 'font_get_generate_mipmaps' method. + + + + + Cached name for the 'font_set_multichannel_signed_distance_field' method. + + + + + Cached name for the 'font_is_multichannel_signed_distance_field' method. + + + + + Cached name for the 'font_set_msdf_pixel_range' method. + + + + + Cached name for the 'font_get_msdf_pixel_range' method. + + + + + Cached name for the 'font_set_msdf_size' method. + + + + + Cached name for the 'font_get_msdf_size' method. + + + + + Cached name for the 'font_set_fixed_size' method. + + + + + Cached name for the 'font_get_fixed_size' method. + + + + + Cached name for the 'font_set_fixed_size_scale_mode' method. + + + + + Cached name for the 'font_get_fixed_size_scale_mode' method. + + + + + Cached name for the 'font_set_allow_system_fallback' method. + + + + + Cached name for the 'font_is_allow_system_fallback' method. + + + + + Cached name for the 'font_set_force_autohinter' method. + + + + + Cached name for the 'font_is_force_autohinter' method. + + + + + Cached name for the 'font_set_hinting' method. + + + + + Cached name for the 'font_get_hinting' method. + + + + + Cached name for the 'font_set_subpixel_positioning' method. + + + + + Cached name for the 'font_get_subpixel_positioning' method. + + + + + Cached name for the 'font_set_keep_rounding_remainders' method. + + + + + Cached name for the 'font_get_keep_rounding_remainders' method. + + + + + Cached name for the 'font_set_embolden' method. + + + + + Cached name for the 'font_get_embolden' method. + + + + + Cached name for the 'font_set_spacing' method. + + + + + Cached name for the 'font_get_spacing' method. + + + + + Cached name for the 'font_set_baseline_offset' method. + + + + + Cached name for the 'font_get_baseline_offset' method. + + + + + Cached name for the 'font_set_transform' method. + + + + + Cached name for the 'font_get_transform' method. + + + + + Cached name for the 'font_set_variation_coordinates' method. + + + + + Cached name for the 'font_get_variation_coordinates' method. + + + + + Cached name for the 'font_set_oversampling' method. + + + + + Cached name for the 'font_get_oversampling' method. + + + + + Cached name for the 'font_get_size_cache_list' method. + + + + + Cached name for the 'font_clear_size_cache' method. + + + + + Cached name for the 'font_remove_size_cache' method. + + + + + Cached name for the 'font_set_ascent' method. + + + + + Cached name for the 'font_get_ascent' method. + + + + + Cached name for the 'font_set_descent' method. + + + + + Cached name for the 'font_get_descent' method. + + + + + Cached name for the 'font_set_underline_position' method. + + + + + Cached name for the 'font_get_underline_position' method. + + + + + Cached name for the 'font_set_underline_thickness' method. + + + + + Cached name for the 'font_get_underline_thickness' method. + + + + + Cached name for the 'font_set_scale' method. + + + + + Cached name for the 'font_get_scale' method. + + + + + Cached name for the 'font_get_texture_count' method. + + + + + Cached name for the 'font_clear_textures' method. + + + + + Cached name for the 'font_remove_texture' method. + + + + + Cached name for the 'font_set_texture_image' method. + + + + + Cached name for the 'font_get_texture_image' method. + + + + + Cached name for the 'font_set_texture_offsets' method. + + + + + Cached name for the 'font_get_texture_offsets' method. + + + + + Cached name for the 'font_get_glyph_list' method. + + + + + Cached name for the 'font_clear_glyphs' method. + + + + + Cached name for the 'font_remove_glyph' method. + + + + + Cached name for the 'font_get_glyph_advance' method. + + + + + Cached name for the 'font_set_glyph_advance' method. + + + + + Cached name for the 'font_get_glyph_offset' method. + + + + + Cached name for the 'font_set_glyph_offset' method. + + + + + Cached name for the 'font_get_glyph_size' method. + + + + + Cached name for the 'font_set_glyph_size' method. + + + + + Cached name for the 'font_get_glyph_uv_rect' method. + + + + + Cached name for the 'font_set_glyph_uv_rect' method. + + + + + Cached name for the 'font_get_glyph_texture_idx' method. + + + + + Cached name for the 'font_set_glyph_texture_idx' method. + + + + + Cached name for the 'font_get_glyph_texture_rid' method. + + + + + Cached name for the 'font_get_glyph_texture_size' method. + + + + + Cached name for the 'font_get_glyph_contours' method. + + + + + Cached name for the 'font_get_kerning_list' method. + + + + + Cached name for the 'font_clear_kerning_map' method. + + + + + Cached name for the 'font_remove_kerning' method. + + + + + Cached name for the 'font_set_kerning' method. + + + + + Cached name for the 'font_get_kerning' method. + + + + + Cached name for the 'font_get_glyph_index' method. + + + + + Cached name for the 'font_get_char_from_glyph_index' method. + + + + + Cached name for the 'font_has_char' method. + + + + + Cached name for the 'font_get_supported_chars' method. + + + + + Cached name for the 'font_get_supported_glyphs' method. + + + + + Cached name for the 'font_render_range' method. + + + + + Cached name for the 'font_render_glyph' method. + + + + + Cached name for the 'font_draw_glyph' method. + + + + + Cached name for the 'font_draw_glyph_outline' method. + + + + + Cached name for the 'font_is_language_supported' method. + + + + + Cached name for the 'font_set_language_support_override' method. + + + + + Cached name for the 'font_get_language_support_override' method. + + + + + Cached name for the 'font_remove_language_support_override' method. + + + + + Cached name for the 'font_get_language_support_overrides' method. + + + + + Cached name for the 'font_is_script_supported' method. + + + + + Cached name for the 'font_set_script_support_override' method. + + + + + Cached name for the 'font_get_script_support_override' method. + + + + + Cached name for the 'font_remove_script_support_override' method. + + + + + Cached name for the 'font_get_script_support_overrides' method. + + + + + Cached name for the 'font_set_opentype_feature_overrides' method. + + + + + Cached name for the 'font_get_opentype_feature_overrides' method. + + + + + Cached name for the 'font_supported_feature_list' method. + + + + + Cached name for the 'font_supported_variation_list' method. + + + + + Cached name for the 'font_get_global_oversampling' method. + + + + + Cached name for the 'font_set_global_oversampling' method. + + + + + Cached name for the 'get_hex_code_box_size' method. + + + + + Cached name for the 'draw_hex_code_box' method. + + + + + Cached name for the 'create_shaped_text' method. + + + + + Cached name for the 'shaped_text_clear' method. + + + + + Cached name for the 'shaped_text_set_direction' method. + + + + + Cached name for the 'shaped_text_get_direction' method. + + + + + Cached name for the 'shaped_text_get_inferred_direction' method. + + + + + Cached name for the 'shaped_text_set_bidi_override' method. + + + + + Cached name for the 'shaped_text_set_custom_punctuation' method. + + + + + Cached name for the 'shaped_text_get_custom_punctuation' method. + + + + + Cached name for the 'shaped_text_set_custom_ellipsis' method. + + + + + Cached name for the 'shaped_text_get_custom_ellipsis' method. + + + + + Cached name for the 'shaped_text_set_orientation' method. + + + + + Cached name for the 'shaped_text_get_orientation' method. + + + + + Cached name for the 'shaped_text_set_preserve_invalid' method. + + + + + Cached name for the 'shaped_text_get_preserve_invalid' method. + + + + + Cached name for the 'shaped_text_set_preserve_control' method. + + + + + Cached name for the 'shaped_text_get_preserve_control' method. + + + + + Cached name for the 'shaped_text_set_spacing' method. + + + + + Cached name for the 'shaped_text_get_spacing' method. + + + + + Cached name for the 'shaped_text_add_string' method. + + + + + Cached name for the 'shaped_text_add_object' method. + + + + + Cached name for the 'shaped_text_resize_object' method. + + + + + Cached name for the 'shaped_get_span_count' method. + + + + + Cached name for the 'shaped_get_span_meta' method. + + + + + Cached name for the 'shaped_set_span_update_font' method. + + + + + Cached name for the 'shaped_text_substr' method. + + + + + Cached name for the 'shaped_text_get_parent' method. + + + + + Cached name for the 'shaped_text_fit_to_width' method. + + + + + Cached name for the 'shaped_text_tab_align' method. + + + + + Cached name for the 'shaped_text_shape' method. + + + + + Cached name for the 'shaped_text_is_ready' method. + + + + + Cached name for the 'shaped_text_has_visible_chars' method. + + + + + Cached name for the 'shaped_text_get_glyphs' method. + + + + + Cached name for the 'shaped_text_sort_logical' method. + + + + + Cached name for the 'shaped_text_get_glyph_count' method. + + + + + Cached name for the 'shaped_text_get_range' method. + + + + + Cached name for the 'shaped_text_get_line_breaks_adv' method. + + + + + Cached name for the 'shaped_text_get_line_breaks' method. + + + + + Cached name for the 'shaped_text_get_word_breaks' method. + + + + + Cached name for the 'shaped_text_get_trim_pos' method. + + + + + Cached name for the 'shaped_text_get_ellipsis_pos' method. + + + + + Cached name for the 'shaped_text_get_ellipsis_glyphs' method. + + + + + Cached name for the 'shaped_text_get_ellipsis_glyph_count' method. + + + + + Cached name for the 'shaped_text_overrun_trim_to_width' method. + + + + + Cached name for the 'shaped_text_get_objects' method. + + + + + Cached name for the 'shaped_text_get_object_rect' method. + + + + + Cached name for the 'shaped_text_get_object_range' method. + + + + + Cached name for the 'shaped_text_get_object_glyph' method. + + + + + Cached name for the 'shaped_text_get_size' method. + + + + + Cached name for the 'shaped_text_get_ascent' method. + + + + + Cached name for the 'shaped_text_get_descent' method. + + + + + Cached name for the 'shaped_text_get_width' method. + + + + + Cached name for the 'shaped_text_get_underline_position' method. + + + + + Cached name for the 'shaped_text_get_underline_thickness' method. + + + + + Cached name for the 'shaped_text_get_carets' method. + + + + + Cached name for the 'shaped_text_get_selection' method. + + + + + Cached name for the 'shaped_text_hit_test_grapheme' method. + + + + + Cached name for the 'shaped_text_hit_test_position' method. + + + + + Cached name for the 'shaped_text_get_grapheme_bounds' method. + + + + + Cached name for the 'shaped_text_next_grapheme_pos' method. + + + + + Cached name for the 'shaped_text_prev_grapheme_pos' method. + + + + + Cached name for the 'shaped_text_get_character_breaks' method. + + + + + Cached name for the 'shaped_text_next_character_pos' method. + + + + + Cached name for the 'shaped_text_prev_character_pos' method. + + + + + Cached name for the 'shaped_text_closest_character_pos' method. + + + + + Cached name for the 'shaped_text_draw' method. + + + + + Cached name for the 'shaped_text_draw_outline' method. + + + + + Cached name for the 'shaped_text_get_dominant_direction_in_range' method. + + + + + Cached name for the 'format_number' method. + + + + + Cached name for the 'parse_number' method. + + + + + Cached name for the 'percent_sign' method. + + + + + Cached name for the 'string_get_word_breaks' method. + + + + + Cached name for the 'string_get_character_breaks' method. + + + + + Cached name for the 'is_confusable' method. + + + + + Cached name for the 'spoof_check' method. + + + + + Cached name for the 'strip_diacritics' method. + + + + + Cached name for the 'is_valid_identifier' method. + + + + + Cached name for the 'is_valid_letter' method. + + + + + Cached name for the 'string_to_upper' method. + + + + + Cached name for the 'string_to_lower' method. + + + + + Cached name for the 'string_to_title' method. + + + + + Cached name for the 'parse_structured_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An implementation of that uses HarfBuzz, ICU and SIL Graphite to support BiDi, complex text layouts and contextual OpenType features. This is Godot's default primary interface. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A dummy interface that doesn't do anything. Useful for freeing up memory when rendering text is not needed, as text servers are resource-intensive. It can also be used for performance comparisons in complex GUIs to check the impact of text rendering. + A dummy text server is always available at the start of a project. Here's how to access it: + + var dummy_text_server = TextServerManager.find_interface("Dummy") + if dummy_text_server != null: + TextServerManager.set_primary_interface(dummy_text_server) + # If the other text servers are unneeded, they can be removed: + for i in TextServerManager.get_interface_count(): + var text_server = TextServerManager.get_interface(i) + if text_server != dummy_text_server: + TextServerManager.remove_interface(text_server) + + The command line argument --text-driver Dummy (case-sensitive) can be used to force the "Dummy" on any project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + External implementations should inherit from this class. + + + + + Optional. + This method is called before text server is unregistered. + + + + + Required. + Creates a new, empty font cache entry resource. + + + + + Optional, implement if font supports extra spacing or baseline offset. + Creates a new variation existing font which is reusing the same glyph cache and font data. + + + + + Required. + Creates a new buffer for complex text layout, with the given and . + + + + + Optional. + Draws box displaying character hexadecimal code. + + + + + Required. + Removes all rendered glyph information from the cache entry. + + + + + Optional. + Removes all kerning overrides. + + + + + Required. + Removes all font sizes from the cache entry. + + + + + Required. + Removes all textures from font cache entry. + + + + + Required. + Draws single glyph into a canvas item at the position, using at the size . + + + + + Required. + Draws single glyph outline of size into a canvas item at the position, using at the size . + + + + + Optional. + Returns font anti-aliasing mode. + + + + + Required. + Returns the font ascent (number of pixels above the baseline). + + + + + Optional. + Returns extra baseline offset (as a fraction of font height). + + + + + Required. + Returns character code associated with , or 0 if is invalid. + + + + + Required. + Returns the font descent (number of pixels below the baseline). + + + + + Optional. + Returns whether the font's embedded bitmap loading is disabled. + + + + + Optional. + Returns font embolden strength. + + + + + Optional. + Returns number of faces in the TrueType / OpenType collection. + + + + + Optional. + Returns an active face index in the TrueType / OpenType collection. + + + + + Required. + Returns bitmap font fixed size. + + + + + Required. + Returns bitmap font scaling mode. + + + + + Optional. + Returns if font texture mipmap generation is enabled. + + + + + Optional. + Returns the font oversampling factor, shared by all fonts in the TextServer. + + + + + Required. + Returns glyph advance (offset of the next glyph). + + + + + Optional. + Returns outline contours of the glyph. + + + + + Required. + Returns the glyph index of a , optionally modified by the . + + + + + Required. + Returns list of rendered glyphs in the cache entry. + + + + + Required. + Returns glyph offset from the baseline. + + + + + Required. + Returns size of the glyph. + + + + + Required. + Returns index of the cache texture containing the glyph. + + + + + Required. + Returns resource ID of the cache texture containing the glyph. + + + + + Required. + Returns size of the cache texture containing the glyph. + + + + + Required. + Returns rectangle in the cache texture containing the glyph. + + + + + Optional. + Returns the font hinting mode. Used by dynamic fonts only. + + + + + Optional. + Returns glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Optional. + Returns kerning for the pair of glyphs. + + + + + Optional. + Returns list of the kerning overrides. + + + + + Optional. + Returns if support override is enabled for the . + + + + + Optional. + Returns list of language support overrides. + + + + + Optional. + Returns the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Optional. + Returns source font size used to generate MSDF textures. + + + + + Optional. + Returns font family name. + + + + + Optional. + Returns font OpenType feature set override. + + + + + Optional. + Returns with OpenType font name strings (localized font names, version, description, license information, sample text, etc.). + + + + + Optional. + Returns font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Required. + Returns scaling factor of the color bitmap font. + + + + + Optional. + Returns if support override is enabled for the . + + + + + Optional. + Returns list of script support overrides. + + + + + Required. + Returns list of the font sizes in the cache. Each size is with font size and outline size. + + + + + Optional. + Returns the spacing for (see ) in pixels (not relative to the font size). + + + + + Optional. + Returns font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Optional. + Returns font style flags, see . + + + + + Optional. + Returns font style name. + + + + + Optional. + Returns font subpixel glyph positioning mode. + + + + + Required. + Returns a string containing all the characters available in the font. + + + + + Required. + Returns an array containing all glyph indices in the font. + + + + + Required. + Returns number of textures used by font cache entry. + + + + + Required. + Returns font cache texture image data. + + + + + Optional. + Returns array containing glyph packing data. + + + + + Optional. + Returns 2D transform applied to the font outlines. + + + + + Required. + Returns pixel offset of the underline below the baseline. + + + + + Required. + Returns thickness of the underline in pixels. + + + + + Optional. + Returns variation coordinates for the specified font cache entry. + + + + + Optional. + Returns weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Required. + Returns if a Unicode is available in the font. + + + + + Optional. + Returns if system fonts can be automatically used as fallbacks. + + + + + Optional. + Returns if auto-hinting is supported and preferred over font built-in hinting. + + + + + Optional. + Returns , if font supports given language (ISO 639 code). + + + + + Optional. + Returns if glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + + + + + Optional. + Returns , if font supports given script (ISO 15924 code). + + + + + Required. + Removes specified rendered glyph information from the cache entry. + + + + + Optional. + Removes kerning override for the pair of glyphs. + + + + + Optional. + Remove language support override. + + + + + Optional. + Removes script support override. + + + + + Required. + Removes specified font size from the cache entry. + + + + + Required. + Removes specified texture from the cache entry. + + + + + Optional. + Renders specified glyph to the font cache texture. + + + + + Optional. + Renders the range of characters to the font cache texture. + + + + + Optional. + If set to , system fonts can be automatically used as fallbacks. + + + + + Optional. + Sets font anti-aliasing mode. + + + + + Required. + Sets the font ascent (number of pixels above the baseline). + + + + + Optional. + Sets extra baseline offset (as a fraction of font height). + + + + + Optional. + Sets font source data, e.g contents of the dynamic font source file. + + + + + Required. + Sets the font descent (number of pixels below the baseline). + + + + + Optional. + If set to , embedded font bitmap loading is disabled. + + + + + Sets font embolden strength. If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Optional. + Sets an active face index in the TrueType / OpenType collection. + + + + + Required. + Sets bitmap font fixed size. If set to value greater than zero, same cache entry will be used for all font sizes. + + + + + Required. + Sets bitmap font scaling mode. This property is used only if fixed_size is greater than zero. + + + + + Optional. + If set to auto-hinting is preferred over font built-in hinting. + + + + + Optional. + If set to font texture mipmap generation is enabled. + + + + + Optional. + Sets oversampling factor, shared by all font in the TextServer. + + + + + Required. + Sets glyph advance (offset of the next glyph). + + + + + Required. + Sets glyph offset from the baseline. + + + + + Required. + Sets size of the glyph. + + + + + Required. + Sets index of the cache texture containing the glyph. + + + + + Required. + Sets rectangle in the cache texture containing the glyph. + + + + + Optional. + Sets font hinting mode. Used by dynamic fonts only. + + + + + Optional. + Sets glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Optional. + Sets kerning for the pair of glyphs. + + + + + Optional. + Adds override for . + + + + + Optional. + Sets the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Optional. + Sets source font size used to generate MSDF textures. + + + + + Optional. + If set to , glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + + + + + Optional. + Sets the font family name. + + + + + Optional. + Sets font OpenType feature set override. + + + + + Optional. + Sets font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Required. + Sets scaling factor of the color bitmap font. + + + + + Optional. + Adds override for . + + + + + Optional. + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Optional. + Sets font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Optional. + Sets the font style flags, see . + + + + + Optional. + Sets the font style name. + + + + + Optional. + Sets font subpixel glyph positioning mode. + + + + + Required. + Sets font cache texture image data. + + + + + Optional. + Sets array containing glyph packing data. + + + + + Optional. + Sets 2D transform, applied to the font outlines, can be used for slanting, flipping, and rotating glyphs. + + + + + Required. + Sets pixel offset of the underline below the baseline. + + + + + Required. + Sets thickness of the underline in pixels. + + + + + Optional. + Sets variation coordinates for the specified font cache entry. + + + + + Optional. + Sets weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Optional. + Returns the dictionary of the supported OpenType features. + + + + + Optional. + Returns the dictionary of the supported OpenType variation coordinates. + + + + + Optional. + Converts a number from the Western Arabic (0..9) to the numeral systems used in . + + + + + Required. + Frees an object created by this . + + + + + Required. + Returns text server features, see . + + + + + Optional. + Returns size of the replacement character (box with character hexadecimal code that is drawn in place of invalid characters). + + + + + Required. + Returns the name of the server interface. + + + + + Optional. + Returns default TextServer database (e.g. ICU break iterators and dictionaries). + + + + + Optional. + Returns default TextServer database (e.g. ICU break iterators and dictionaries) filename. + + + + + Optional. + Returns TextServer database (e.g. ICU break iterators and dictionaries) description. + + + + + Required. + Returns if is valid resource owned by this text server. + + + + + Required. + Returns if the server supports a feature. + + + + + Optional. + Returns index of the first string in which is visually confusable with the , or -1 if none is found. + + + + + Required. + Returns if locale is right-to-left. + + + + + Optional. + Returns if is a valid identifier. + + + + + Optional. + Loads optional TextServer database (e.g. ICU break iterators and dictionaries). + + + + + Optional. + Converts readable feature, variation, script, or language name to OpenType tag. + + + + + Optional. + Converts from the numeral systems used in to Western Arabic (0..9). + + + + + Optional. + Default implementation of the BiDi algorithm override function. See for more info. + + + + + Optional. + Returns percent sign used in the . + + + + + Optional. + Saves optional TextServer database (e.g. ICU break iterators and dictionaries) to the file. + + + + + Required. + Returns number of text spans added using or . + + + + + Required. + Returns text span metadata. + + + + + Required. + Changes text span font, font size, and OpenType features, without changing the text. + + + + + Required. + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Required. + Adds text span and font to draw it to the text buffer. + + + + + Required. + Clears text buffer (removes text and inline objects). + + + + + Optional. + Returns composite character position closest to the . + + + + + Optional. + Draw shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + + + + Optional. + Draw the outline of the shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + + + + Optional. + Adjusts text width to fit to specified width, returns new text width. + + + + + Required. + Returns the text ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + + + + + Optional. + Returns array of the composite character boundaries. + + + + + Optional. + Returns ellipsis character used for text clipping. + + + + + Optional. + Returns custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Required. + Returns the text descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + + + + + Optional. + Returns direction of the text. + + + + + Optional. + Returns dominant direction of in the range of text. + + + + + Required. + Returns number of glyphs in the ellipsis. + + + + + Required. + Returns position of the ellipsis. + + + + + Required. + Returns number of glyphs in the buffer. + + + + + Optional. + Returns composite character's bounds as offsets from the start of the line. + + + + + Optional. + Returns direction of the text, inferred by the BiDi algorithm. + + + + + Optional. + Breaks text to the lines and returns character ranges for each line. + + + + + Optional. + Breaks text to the lines and columns. Returns character ranges for each segment. + + + + + Required. + Returns the glyph index of the inline object. + + + + + Required. + Returns the character range of the inline object. + + + + + Required. + Returns bounding rectangle of the inline object. + + + + + Required. + Returns array of inline objects. + + + + + Optional. + Returns text orientation. + + + + + Required. + Returns the parent buffer from which the substring originates. + + + + + Optional. + Returns if text buffer is configured to display control characters. + + + + + Optional. + Returns if text buffer is configured to display hexadecimal codes in place of invalid characters. + + + + + Required. + Returns substring buffer character range in the parent buffer. + + + + + Optional. + Returns selection rectangles for the specified character range. + + + + + Required. + Returns size of the text. + + + + + Optional. + Returns extra spacing added between glyphs or lines in pixels. + + + + + Required. + Returns the position of the overrun trim. + + + + + Required. + Returns pixel offset of the underline below the baseline. + + + + + Required. + Returns thickness of the underline. + + + + + Required. + Returns width (for horizontal layout) or height (for vertical) of the text. + + + + + Optional. + Breaks text into words and returns array of character ranges. Use to set what characters are used for breaking (see ). + + + + + Optional. + Returns grapheme index at the specified pixel offset at the baseline, or -1 if none is found. + + + + + Optional. + Returns caret character offset at the specified pixel offset at the baseline. This function always returns a valid position. + + + + + Required. + Returns if buffer is successfully shaped. + + + + + Optional. + Returns composite character end position closest to the . + + + + + Optional. + Returns grapheme end position closest to the . + + + + + Optional. + Trims text if it exceeds the given width. + + + + + Optional. + Returns composite character start position closest to the . + + + + + Optional. + Returns grapheme start position closest to the . + + + + + Required. + Sets new size and alignment of embedded object. + + + + + Optional. + Overrides BiDi for the structured text. + + + + + Optional. + Sets ellipsis character used for text clipping. + + + + + Optional. + Sets custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Optional. + Sets desired text direction. If set to , direction will be detected based on the buffer contents and current locale. + + + + + Optional. + Sets desired text orientation. + + + + + Optional. + If set to text buffer will display control characters. + + + + + Optional. + If set to text buffer will display invalid characters as hexadecimal codes, otherwise nothing is displayed. + + + + + Optional. + Sets extra spacing added between glyphs or lines in pixels. + + + + + Required. + Shapes buffer if it's not shaped. Returns if the string is shaped successfully. + + + + + Required. + Returns text buffer for the substring of the text in the text buffer (including inline objects). + + + + + Optional. + Aligns shaped text to the given tab-stops. + + + + + Optional. + Updates break points in the shaped text. This method is called by default implementation of text breaking functions. + + + + + Optional. + Updates justification points in the shaped text. This method is called by default implementation of text justification functions. + + + + + Optional. + Returns if is likely to be an attempt at confusing the reader. + + + + + Optional. + Returns array of the composite character boundaries. + + + + + Optional. + Returns an array of the word break boundaries. Elements in the returned array are the offsets of the start and end of words. Therefore the length of the array is always even. + + + + + Optional. + Returns the string converted to lowercase. + + + + + Optional. + Returns the string converted to title case. + + + + + Optional. + Returns the string converted to uppercase. + + + + + Optional. + Strips diacritics from the string. + + + + + Optional. + Converts OpenType tag to readable feature, variation, script, or language name. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_cleanup' method. + + + + + Cached name for the '_create_font' method. + + + + + Cached name for the '_create_font_linked_variation' method. + + + + + Cached name for the '_create_shaped_text' method. + + + + + Cached name for the '_draw_hex_code_box' method. + + + + + Cached name for the '_font_clear_glyphs' method. + + + + + Cached name for the '_font_clear_kerning_map' method. + + + + + Cached name for the '_font_clear_size_cache' method. + + + + + Cached name for the '_font_clear_textures' method. + + + + + Cached name for the '_font_draw_glyph' method. + + + + + Cached name for the '_font_draw_glyph_outline' method. + + + + + Cached name for the '_font_get_antialiasing' method. + + + + + Cached name for the '_font_get_ascent' method. + + + + + Cached name for the '_font_get_baseline_offset' method. + + + + + Cached name for the '_font_get_char_from_glyph_index' method. + + + + + Cached name for the '_font_get_descent' method. + + + + + Cached name for the '_font_get_disable_embedded_bitmaps' method. + + + + + Cached name for the '_font_get_embolden' method. + + + + + Cached name for the '_font_get_face_count' method. + + + + + Cached name for the '_font_get_face_index' method. + + + + + Cached name for the '_font_get_fixed_size' method. + + + + + Cached name for the '_font_get_fixed_size_scale_mode' method. + + + + + Cached name for the '_font_get_generate_mipmaps' method. + + + + + Cached name for the '_font_get_global_oversampling' method. + + + + + Cached name for the '_font_get_glyph_advance' method. + + + + + Cached name for the '_font_get_glyph_contours' method. + + + + + Cached name for the '_font_get_glyph_index' method. + + + + + Cached name for the '_font_get_glyph_list' method. + + + + + Cached name for the '_font_get_glyph_offset' method. + + + + + Cached name for the '_font_get_glyph_size' method. + + + + + Cached name for the '_font_get_glyph_texture_idx' method. + + + + + Cached name for the '_font_get_glyph_texture_rid' method. + + + + + Cached name for the '_font_get_glyph_texture_size' method. + + + + + Cached name for the '_font_get_glyph_uv_rect' method. + + + + + Cached name for the '_font_get_hinting' method. + + + + + Cached name for the '_font_get_keep_rounding_remainders' method. + + + + + Cached name for the '_font_get_kerning' method. + + + + + Cached name for the '_font_get_kerning_list' method. + + + + + Cached name for the '_font_get_language_support_override' method. + + + + + Cached name for the '_font_get_language_support_overrides' method. + + + + + Cached name for the '_font_get_msdf_pixel_range' method. + + + + + Cached name for the '_font_get_msdf_size' method. + + + + + Cached name for the '_font_get_name' method. + + + + + Cached name for the '_font_get_opentype_feature_overrides' method. + + + + + Cached name for the '_font_get_ot_name_strings' method. + + + + + Cached name for the '_font_get_oversampling' method. + + + + + Cached name for the '_font_get_scale' method. + + + + + Cached name for the '_font_get_script_support_override' method. + + + + + Cached name for the '_font_get_script_support_overrides' method. + + + + + Cached name for the '_font_get_size_cache_list' method. + + + + + Cached name for the '_font_get_spacing' method. + + + + + Cached name for the '_font_get_stretch' method. + + + + + Cached name for the '_font_get_style' method. + + + + + Cached name for the '_font_get_style_name' method. + + + + + Cached name for the '_font_get_subpixel_positioning' method. + + + + + Cached name for the '_font_get_supported_chars' method. + + + + + Cached name for the '_font_get_supported_glyphs' method. + + + + + Cached name for the '_font_get_texture_count' method. + + + + + Cached name for the '_font_get_texture_image' method. + + + + + Cached name for the '_font_get_texture_offsets' method. + + + + + Cached name for the '_font_get_transform' method. + + + + + Cached name for the '_font_get_underline_position' method. + + + + + Cached name for the '_font_get_underline_thickness' method. + + + + + Cached name for the '_font_get_variation_coordinates' method. + + + + + Cached name for the '_font_get_weight' method. + + + + + Cached name for the '_font_has_char' method. + + + + + Cached name for the '_font_is_allow_system_fallback' method. + + + + + Cached name for the '_font_is_force_autohinter' method. + + + + + Cached name for the '_font_is_language_supported' method. + + + + + Cached name for the '_font_is_multichannel_signed_distance_field' method. + + + + + Cached name for the '_font_is_script_supported' method. + + + + + Cached name for the '_font_remove_glyph' method. + + + + + Cached name for the '_font_remove_kerning' method. + + + + + Cached name for the '_font_remove_language_support_override' method. + + + + + Cached name for the '_font_remove_script_support_override' method. + + + + + Cached name for the '_font_remove_size_cache' method. + + + + + Cached name for the '_font_remove_texture' method. + + + + + Cached name for the '_font_render_glyph' method. + + + + + Cached name for the '_font_render_range' method. + + + + + Cached name for the '_font_set_allow_system_fallback' method. + + + + + Cached name for the '_font_set_antialiasing' method. + + + + + Cached name for the '_font_set_ascent' method. + + + + + Cached name for the '_font_set_baseline_offset' method. + + + + + Cached name for the '_font_set_data' method. + + + + + Cached name for the '_font_set_descent' method. + + + + + Cached name for the '_font_set_disable_embedded_bitmaps' method. + + + + + Cached name for the '_font_set_embolden' method. + + + + + Cached name for the '_font_set_face_index' method. + + + + + Cached name for the '_font_set_fixed_size' method. + + + + + Cached name for the '_font_set_fixed_size_scale_mode' method. + + + + + Cached name for the '_font_set_force_autohinter' method. + + + + + Cached name for the '_font_set_generate_mipmaps' method. + + + + + Cached name for the '_font_set_global_oversampling' method. + + + + + Cached name for the '_font_set_glyph_advance' method. + + + + + Cached name for the '_font_set_glyph_offset' method. + + + + + Cached name for the '_font_set_glyph_size' method. + + + + + Cached name for the '_font_set_glyph_texture_idx' method. + + + + + Cached name for the '_font_set_glyph_uv_rect' method. + + + + + Cached name for the '_font_set_hinting' method. + + + + + Cached name for the '_font_set_keep_rounding_remainders' method. + + + + + Cached name for the '_font_set_kerning' method. + + + + + Cached name for the '_font_set_language_support_override' method. + + + + + Cached name for the '_font_set_msdf_pixel_range' method. + + + + + Cached name for the '_font_set_msdf_size' method. + + + + + Cached name for the '_font_set_multichannel_signed_distance_field' method. + + + + + Cached name for the '_font_set_name' method. + + + + + Cached name for the '_font_set_opentype_feature_overrides' method. + + + + + Cached name for the '_font_set_oversampling' method. + + + + + Cached name for the '_font_set_scale' method. + + + + + Cached name for the '_font_set_script_support_override' method. + + + + + Cached name for the '_font_set_spacing' method. + + + + + Cached name for the '_font_set_stretch' method. + + + + + Cached name for the '_font_set_style' method. + + + + + Cached name for the '_font_set_style_name' method. + + + + + Cached name for the '_font_set_subpixel_positioning' method. + + + + + Cached name for the '_font_set_texture_image' method. + + + + + Cached name for the '_font_set_texture_offsets' method. + + + + + Cached name for the '_font_set_transform' method. + + + + + Cached name for the '_font_set_underline_position' method. + + + + + Cached name for the '_font_set_underline_thickness' method. + + + + + Cached name for the '_font_set_variation_coordinates' method. + + + + + Cached name for the '_font_set_weight' method. + + + + + Cached name for the '_font_supported_feature_list' method. + + + + + Cached name for the '_font_supported_variation_list' method. + + + + + Cached name for the '_format_number' method. + + + + + Cached name for the '_free_rid' method. + + + + + Cached name for the '_get_features' method. + + + + + Cached name for the '_get_hex_code_box_size' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_support_data' method. + + + + + Cached name for the '_get_support_data_filename' method. + + + + + Cached name for the '_get_support_data_info' method. + + + + + Cached name for the '_has' method. + + + + + Cached name for the '_has_feature' method. + + + + + Cached name for the '_is_confusable' method. + + + + + Cached name for the '_is_locale_right_to_left' method. + + + + + Cached name for the '_is_valid_identifier' method. + + + + + Cached name for the '_is_valid_letter' method. + + + + + Cached name for the '_load_support_data' method. + + + + + Cached name for the '_name_to_tag' method. + + + + + Cached name for the '_parse_number' method. + + + + + Cached name for the '_parse_structured_text' method. + + + + + Cached name for the '_percent_sign' method. + + + + + Cached name for the '_save_support_data' method. + + + + + Cached name for the '_shaped_get_span_count' method. + + + + + Cached name for the '_shaped_get_span_meta' method. + + + + + Cached name for the '_shaped_set_span_update_font' method. + + + + + Cached name for the '_shaped_text_add_object' method. + + + + + Cached name for the '_shaped_text_add_string' method. + + + + + Cached name for the '_shaped_text_clear' method. + + + + + Cached name for the '_shaped_text_closest_character_pos' method. + + + + + Cached name for the '_shaped_text_draw' method. + + + + + Cached name for the '_shaped_text_draw_outline' method. + + + + + Cached name for the '_shaped_text_fit_to_width' method. + + + + + Cached name for the '_shaped_text_get_ascent' method. + + + + + Cached name for the '_shaped_text_get_character_breaks' method. + + + + + Cached name for the '_shaped_text_get_custom_ellipsis' method. + + + + + Cached name for the '_shaped_text_get_custom_punctuation' method. + + + + + Cached name for the '_shaped_text_get_descent' method. + + + + + Cached name for the '_shaped_text_get_direction' method. + + + + + Cached name for the '_shaped_text_get_dominant_direction_in_range' method. + + + + + Cached name for the '_shaped_text_get_ellipsis_glyph_count' method. + + + + + Cached name for the '_shaped_text_get_ellipsis_pos' method. + + + + + Cached name for the '_shaped_text_get_glyph_count' method. + + + + + Cached name for the '_shaped_text_get_grapheme_bounds' method. + + + + + Cached name for the '_shaped_text_get_inferred_direction' method. + + + + + Cached name for the '_shaped_text_get_line_breaks' method. + + + + + Cached name for the '_shaped_text_get_line_breaks_adv' method. + + + + + Cached name for the '_shaped_text_get_object_glyph' method. + + + + + Cached name for the '_shaped_text_get_object_range' method. + + + + + Cached name for the '_shaped_text_get_object_rect' method. + + + + + Cached name for the '_shaped_text_get_objects' method. + + + + + Cached name for the '_shaped_text_get_orientation' method. + + + + + Cached name for the '_shaped_text_get_parent' method. + + + + + Cached name for the '_shaped_text_get_preserve_control' method. + + + + + Cached name for the '_shaped_text_get_preserve_invalid' method. + + + + + Cached name for the '_shaped_text_get_range' method. + + + + + Cached name for the '_shaped_text_get_selection' method. + + + + + Cached name for the '_shaped_text_get_size' method. + + + + + Cached name for the '_shaped_text_get_spacing' method. + + + + + Cached name for the '_shaped_text_get_trim_pos' method. + + + + + Cached name for the '_shaped_text_get_underline_position' method. + + + + + Cached name for the '_shaped_text_get_underline_thickness' method. + + + + + Cached name for the '_shaped_text_get_width' method. + + + + + Cached name for the '_shaped_text_get_word_breaks' method. + + + + + Cached name for the '_shaped_text_hit_test_grapheme' method. + + + + + Cached name for the '_shaped_text_hit_test_position' method. + + + + + Cached name for the '_shaped_text_is_ready' method. + + + + + Cached name for the '_shaped_text_next_character_pos' method. + + + + + Cached name for the '_shaped_text_next_grapheme_pos' method. + + + + + Cached name for the '_shaped_text_overrun_trim_to_width' method. + + + + + Cached name for the '_shaped_text_prev_character_pos' method. + + + + + Cached name for the '_shaped_text_prev_grapheme_pos' method. + + + + + Cached name for the '_shaped_text_resize_object' method. + + + + + Cached name for the '_shaped_text_set_bidi_override' method. + + + + + Cached name for the '_shaped_text_set_custom_ellipsis' method. + + + + + Cached name for the '_shaped_text_set_custom_punctuation' method. + + + + + Cached name for the '_shaped_text_set_direction' method. + + + + + Cached name for the '_shaped_text_set_orientation' method. + + + + + Cached name for the '_shaped_text_set_preserve_control' method. + + + + + Cached name for the '_shaped_text_set_preserve_invalid' method. + + + + + Cached name for the '_shaped_text_set_spacing' method. + + + + + Cached name for the '_shaped_text_shape' method. + + + + + Cached name for the '_shaped_text_substr' method. + + + + + Cached name for the '_shaped_text_tab_align' method. + + + + + Cached name for the '_shaped_text_update_breaks' method. + + + + + Cached name for the '_shaped_text_update_justification_ops' method. + + + + + Cached name for the '_spoof_check' method. + + + + + Cached name for the '_string_get_character_breaks' method. + + + + + Cached name for the '_string_get_word_breaks' method. + + + + + Cached name for the '_string_to_lower' method. + + + + + Cached name for the '_string_to_title' method. + + + + + Cached name for the '_string_to_upper' method. + + + + + Cached name for the '_strip_diacritics' method. + + + + + Cached name for the '_tag_to_name' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API backend for loading, enumerating, and switching s. + Note: Switching text server at runtime is possible, but will invalidate all fonts and text buffers. Make sure to unload all controls, fonts, and themes before doing so. + + + + + Registers a interface. + + + + + Returns the number of interfaces currently registered. + + + + + Removes an interface. All fonts and shaped text caches should be freed before removing an interface. + + + + + Returns the interface registered at a given index. + + + + + Returns a list of available interfaces, with the index and name of each interface. + + + + + Finds an interface by its . + + + + + Sets the primary interface. + + + + + Returns the primary interface currently in use. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + is the API backend for loading, enumerating, and switching s. + Note: Switching text server at runtime is possible, but will invalidate all fonts and text buffers. Make sure to unload all controls, fonts, and themes before doing so. + + + + + Registers a interface. + + + + + Returns the number of interfaces currently registered. + + + + + Removes an interface. All fonts and shaped text caches should be freed before removing an interface. + + + + + Returns the interface registered at a given index. + + + + + Returns a list of available interfaces, with the index and name of each interface. + + + + + Finds an interface by its . + + + + + Sets the primary interface. + + + + + Returns the primary interface currently in use. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + is the base class for all texture types. Common texture types are and . See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture works by registering an image in the video hardware, which then can be used in 3D models or 2D or GUI . + Textures are often created by loading them from a file. See @GDScript.load. + is a base for other resources. It cannot be used directly. + Note: The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. Larger textures may fail to import. + + + + + Called when the entire is requested to be drawn over a , with the top-left offset specified in . specifies a multiplier for the colors being drawn, while specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation). + Note: This is only used in 2D rendering, not 3D. + + + + + Called when the is requested to be drawn onto 's specified . specifies a multiplier for the colors being drawn, while specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation). + Note: This is only used in 2D rendering, not 3D. + + + + + Called when a part of the specified by 's coordinates is requested to be drawn onto 's specified . specifies a multiplier for the colors being drawn, while specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation). + Note: This is only used in 2D rendering, not 3D. + + + + + Called when the 's height is queried. + + + + + Called when the 's width is queried. + + + + + Called when the presence of an alpha channel in the is queried. + + + + + Called when a pixel's opaque state in the is queried at the specified (x, y) position. + + + + + Returns the texture width in pixels. + + + + + Returns the texture height in pixels. + + + + + Returns the texture size in pixels. + + + + + Returns if this has an alpha channel. + + + + + Draws the texture using a with the API at the specified . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws the texture using a with the API. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a part of the texture using a with the API. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns an that is a copy of data from this (a new is created each time). s can be accessed and manipulated directly. + Note: This will return if this is invalid. + Note: This will fetch the texture data from the GPU, which might cause performance problems when overused. Avoid calling every frame, especially on large textures. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw' method. + + + + + Cached name for the '_draw_rect' method. + + + + + Cached name for the '_draw_rect_region' method. + + + + + Cached name for the '_get_height' method. + + + + + Cached name for the '_get_width' method. + + + + + Cached name for the '_has_alpha' method. + + + + + Cached name for the '_is_pixel_opaque' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'has_alpha' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'draw_rect' method. + + + + + Cached name for the 'draw_rect_region' method. + + + + + Cached name for the 'get_image' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A Texture2DArray is different from a Texture3D: The Texture2DArray does not support trilinear interpolation between the s, i.e. no blending. See also and , which are texture arrays with specialized cubemap functions. + A Texture2DArray is also different from an : 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. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture array class allows you to use a 2D array texture created directly on the as a texture for materials, meshes, etc. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a 2D texture created directly on the as a texture for materials, meshes, etc. + + + + + The RID of the texture object created on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_rd_rid' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_rd_rid' method. + + + + + Cached name for the 'get_texture_rd_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. is the base class for all 3-dimensional texture types. See also . + 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. + + + + + Called when the 's data is queried. + + + + + Called when the 's depth is queried. + + + + + Called when the 's format is queried. + + + + + Called when the 's height is queried. + + + + + Called when the 's width is queried. + + + + + Called when the presence of mipmaps in the is queried. + + + + + Returns the current format being used by this texture. See for details. + + + + + Returns the 's width in pixels. Width is typically represented by the X axis. + + + + + Returns the 's height in pixels. Width is typically represented by the Y axis. + + + + + Returns the 's depth in pixels. Depth is typically represented by the Z axis (a dimension not present in ). + + + + + Returns if the has generated mipmaps. + + + + + Returns the 's data as an array of s. Each represents a slice of the , with different slices mapping to different depth (Z axis) levels. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_get_depth' method. + + + + + Cached name for the '_get_format' method. + + + + + Cached name for the '_get_height' method. + + + + + Cached name for the '_get_width' method. + + + + + Cached name for the '_has_mipmaps' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'has_mipmaps' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a 3D texture created directly on the as a texture for materials, meshes, etc. + + + + + The RID of the texture object created on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_rd_rid' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_rd_rid' method. + + + + + Cached name for the 'get_texture_rd_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + has the same functionality as , except it uses sprites instead of Godot's resource. It is faster to create, but it doesn't support localization like more complex s. + See also which contains common properties and methods associated with this node. + Note: Setting a texture for the "normal" state () is recommended. If is not set, the will still receive input events and be clickable, but the user will not be able to see it unless they activate another one of its states with a texture assigned (e.g., hover over it to show ). + + + + + Scale to fit the node's bounding rectangle. + + + + + Tile inside the node's bounding rectangle. + + + + + The texture keeps its original size and stays in the bounding rectangle's top-left corner. + + + + + The texture keeps its original size and stays centered in the node's bounding rectangle. + + + + + Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio. + + + + + Scale the texture to fit the node's bounding rectangle, center it, and maintain its aspect ratio. + + + + + Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits. + + + + + Texture to display by default, when the node is not in the disabled, hover or pressed state. This texture is still displayed in the focused state, with drawn on top. + + + + + Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the key. If not assigned, the displays instead when pressed. + + + + + Texture to display when the mouse hovers over the node. If not assigned, the displays instead when hovered over. + + + + + Texture to display when the node is disabled. See . If not assigned, the displays instead. + + + + + Texture to overlay on the base texture when the node has mouse or keyboard focus. Because is displayed on top of the base texture, a partially transparent texture should be used to ensure the base texture remains visible. A texture that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a fully transparent texture of any size. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons. + + + + + Pure black and white image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes. + + + + + If , the size of the texture won't be considered for minimum size calculation, so the can be shrunk down past the texture size. + + + + + Controls the texture's behavior when you resize the node's bounding rectangle. See the constants for available options. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_normal' property. + + + + + Cached name for the 'texture_pressed' property. + + + + + Cached name for the 'texture_hover' property. + + + + + Cached name for the 'texture_disabled' property. + + + + + Cached name for the 'texture_focused' property. + + + + + Cached name for the 'texture_click_mask' property. + + + + + Cached name for the 'ignore_texture_size' property. + + + + + Cached name for the 'stretch_mode' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_normal' method. + + + + + Cached name for the 'set_texture_pressed' method. + + + + + Cached name for the 'set_texture_hover' method. + + + + + Cached name for the 'set_texture_disabled' method. + + + + + Cached name for the 'set_texture_focused' method. + + + + + Cached name for the 'set_click_mask' method. + + + + + Cached name for the 'set_ignore_texture_size' method. + + + + + Cached name for the 'set_stretch_mode' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'get_texture_normal' method. + + + + + Cached name for the 'get_texture_pressed' method. + + + + + Cached name for the 'get_texture_hover' method. + + + + + Cached name for the 'get_texture_disabled' method. + + + + + Cached name for the 'get_texture_focused' method. + + + + + Cached name for the 'get_click_mask' method. + + + + + Cached name for the 'get_ignore_texture_size' method. + + + + + Cached name for the 'get_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a cubemap array texture created directly on the as a texture for materials, meshes, etc. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a cubemap texture created directly on the as a texture for materials, meshes, etc. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also . + Data is set on a per-layer basis. For s, the layer specifies the array layer. + All images need to have the same width, height and number of mipmap levels. + A can be loaded with . + Internally, Godot maps these files to their respective counterparts in the target rendering driver (Vulkan, OpenGL3). + + + + + Texture is a generic . + + + + + Texture is a , with each side in its own layer (6 in total). + + + + + Texture is a , with each cubemap being made of 6 layers. + + + + + Called when the 's format is queried. + + + + + Called when the 's height is queried. + + + + + Called when the data for a layer in the is queried. + + + + + Called when the layers' type in the is queried. + + + + + Called when the number of layers in the is queried. + + + + + Called when the 's width queried. + + + + + Called when the presence of mipmaps in the is queried. + + + + + Returns the current format being used by this texture. See for details. + + + + + Returns the 's type. The type determines how the data is accessed, with cubemaps having special types. + + + + + Returns the width of the texture in pixels. Width is typically represented by the X axis. + + + + + Returns the height of the texture in pixels. Height is typically represented by the Y axis. + + + + + Returns the number of referenced s. + + + + + Returns if the layers have generated mipmaps. + + + + + Returns an resource with the data from specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_format' method. + + + + + Cached name for the '_get_height' method. + + + + + Cached name for the '_get_layer_data' method. + + + + + Cached name for the '_get_layered_type' method. + + + + + Cached name for the '_get_layers' method. + + + + + Cached name for the '_get_width' method. + + + + + Cached name for the '_has_mipmaps' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_layered_type' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_layers' method. + + + + + Cached name for the 'has_mipmaps' method. + + + + + Cached name for the 'get_layer_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for , and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. + + + + + The RID of the texture object created on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_rd_rid' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_rd_rid' method. + + + + + Cached name for the 'get_texture_rd_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + TextureProgressBar works like , but uses up to 3 textures instead of Godot's resource. It can be used to create horizontal, vertical and radial progress bars. + + + + + The fills from left to right. + + + + + The fills from right to left. + + + + + The fills from top to bottom. + + + + + The fills from bottom to top. + + + + + Turns the node into a radial bar. The fills clockwise. See , and to control the way the bar fills up. + + + + + Turns the node into a radial bar. The fills counterclockwise. See , and to control the way the bar fills up. + + + + + The fills from the center, expanding both towards the left and the right. + + + + + The fills from the center, expanding both towards the top and the bottom. + + + + + Turns the node into a radial bar. The fills radially from the center, expanding both clockwise and counterclockwise. See , and to control the way the bar fills up. + + + + + The fill direction. See for possible values. + + + + + Starting angle for the fill of if is , , or . When the node's value is equal to its min_value, the texture doesn't show up at all. When the value increases, the texture fills and tends towards . + Note: is wrapped between 0 and 360 degrees (inclusive). + + + + + Upper limit for the fill of if is , , or . When the node's value is equal to its max_value, the texture fills up to this angle. + See , . + + + + + Offsets if is , , or . + Note: The effective radial center always stays within the bounds. If you need to move it outside the texture's bounds, modify the to contain additional empty space where needed. + + + + + If , Godot treats the bar's textures like in . Use the stretch_margin_* properties like to set up the nine patch's 3×3 grid. When using a radial , this setting will enable stretching. + + + + + The width of the 9-patch's left column. Only effective if is . + + + + + The height of the 9-patch's top row. Only effective if is . + + + + + The width of the 9-patch's right column. Only effective if is . + + + + + The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. Only effective if is . + + + + + that draws under the progress bar. The bar's background. + + + + + that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of . + + + + + that clips based on the node's value and . As value increased, the texture fills up. It shows entirely when value reaches max_value. It doesn't show at all if value is equal to min_value. + The value property comes from . See , , . + + + + + The offset of . Useful for and with fancy borders, to avoid transparent margins in your progress texture. + + + + + Multiplies the color of the bar's texture. + + + + + Multiplies the color of the bar's texture. The effect is similar to , except it only affects this specific texture instead of the entire node. + + + + + Multiplies the color of the bar's texture. + + + + + Sets the stretch margin with the specified index. See and related properties. + + + + + Returns the stretch margin with the specified index. See and related properties. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fill_mode' property. + + + + + Cached name for the 'radial_initial_angle' property. + + + + + Cached name for the 'radial_fill_degrees' property. + + + + + Cached name for the 'radial_center_offset' property. + + + + + Cached name for the 'nine_patch_stretch' property. + + + + + Cached name for the 'stretch_margin_left' property. + + + + + Cached name for the 'stretch_margin_top' property. + + + + + Cached name for the 'stretch_margin_right' property. + + + + + Cached name for the 'stretch_margin_bottom' property. + + + + + Cached name for the 'texture_under' property. + + + + + Cached name for the 'texture_over' property. + + + + + Cached name for the 'texture_progress' property. + + + + + Cached name for the 'texture_progress_offset' property. + + + + + Cached name for the 'tint_under' property. + + + + + Cached name for the 'tint_over' property. + + + + + Cached name for the 'tint_progress' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_under_texture' method. + + + + + Cached name for the 'get_under_texture' method. + + + + + Cached name for the 'set_progress_texture' method. + + + + + Cached name for the 'get_progress_texture' method. + + + + + Cached name for the 'set_over_texture' method. + + + + + Cached name for the 'get_over_texture' method. + + + + + Cached name for the 'set_fill_mode' method. + + + + + Cached name for the 'get_fill_mode' method. + + + + + Cached name for the 'set_tint_under' method. + + + + + Cached name for the 'get_tint_under' method. + + + + + Cached name for the 'set_tint_progress' method. + + + + + Cached name for the 'get_tint_progress' method. + + + + + Cached name for the 'set_tint_over' method. + + + + + Cached name for the 'get_tint_over' method. + + + + + Cached name for the 'set_texture_progress_offset' method. + + + + + Cached name for the 'get_texture_progress_offset' method. + + + + + Cached name for the 'set_radial_initial_angle' method. + + + + + Cached name for the 'get_radial_initial_angle' method. + + + + + Cached name for the 'set_radial_center_offset' method. + + + + + Cached name for the 'get_radial_center_offset' method. + + + + + Cached name for the 'set_fill_degrees' method. + + + + + Cached name for the 'get_fill_degrees' method. + + + + + Cached name for the 'set_stretch_margin' method. + + + + + Cached name for the 'get_stretch_margin' method. + + + + + Cached name for the 'set_nine_patch_stretch' method. + + + + + Cached name for the 'get_nine_patch_stretch' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control that displays a texture, for example an icon inside a GUI. The texture's placement can be controlled with the property. It can scale, tile, or stay centered inside its bounding rectangle. + + + + + The minimum size will be equal to texture size, i.e. can't be smaller than the texture. + + + + + The size of the texture won't be considered for minimum size calculation, so the can be shrunk down past the texture size. + + + + + The height of the texture will be ignored. Minimum width will be equal to the current height. Useful for horizontal layouts, e.g. inside . + + + + + Same as , but keeps texture's aspect ratio. + + + + + The width of the texture will be ignored. Minimum height will be equal to the current width. Useful for vertical layouts, e.g. inside . + + + + + Same as , but keeps texture's aspect ratio. + + + + + Scale to fit the node's bounding rectangle. + + + + + Tile inside the node's bounding rectangle. + + + + + The texture keeps its original size and stays in the bounding rectangle's top-left corner. + + + + + The texture keeps its original size and stays centered in the node's bounding rectangle. + + + + + Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio. + + + + + Scale the texture to fit the node's bounding rectangle, center it and maintain its aspect ratio. + + + + + Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits. + + + + + The node's resource. + + + + + Defines how minimum size is determined based on the texture's size. See for options. + + + + + Controls the texture's behavior when resizing the node's bounding rectangle. See . + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'expand_mode' property. + + + + + Cached name for the 'stretch_mode' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_expand_mode' method. + + + + + Cached name for the 'get_expand_mode' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_stretch_mode' method. + + + + + Cached name for the 'get_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource used for styling/skinning and nodes. While individual controls can be styled using their local theme overrides (see ), theme resources allow you to store and apply the same settings across all controls sharing the same type (e.g. style all 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 ProjectSettings.gui/theme/custom to set up a project-scope theme that will be available to every control in your project. + Use of any control node to set up a theme that will be available to that control and all of its direct and indirect children. + + + + + Theme's item type. + + + + + Theme's constant item type. + + + + + Theme's item type. + + + + + Theme's font size item type. + + + + + Theme's icon item type. + + + + + Theme's item type. + + + + + Maximum value for the DataType enum. + + + + + The default base scale factor of this theme resource. Used by some controls to scale their visual properties based on the global scale factor. If this value is set to 0.0, the global scale factor is used (see ). + Use to check if this value is valid. + + + + + The default font of this theme resource. Used as the default value when trying to fetch a font resource that doesn't exist in this theme or is in invalid state. If the default font is also missing or invalid, the engine fallback value is used (see ). + Use to check if this value is valid. + + + + + The default font size of this theme resource. Used as the default value when trying to fetch a font size value that doesn't exist in this theme or is in invalid state. If the default font size is also missing or invalid, the engine fallback value is used (see ). + Values below 1 are invalid and can be used to unset the property. Use to check if this value is valid. + + + + + Creates or changes the value of the icon property defined by and . Use to remove the property. + + + + + Returns the icon property defined by and , if it exists. + Returns the engine fallback icon value if the property doesn't exist (see ). Use to check for existence. + + + + + Returns if the icon property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the icon property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the icon property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for icon properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for icon properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the property defined by and . Use to remove the property. + + + + + Returns the property defined by and , if it exists. + Returns the engine fallback stylebox value if the property doesn't exist (see ). Use to check for existence. + + + + + Returns if the property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the property defined by and . Use to remove the property. + + + + + Returns the property defined by and , if it exists. + Returns the default theme font if the property doesn't exist and the default theme font is set up (see ). Use to check for existence of the property and to check for existence of the default theme font. + Returns the engine fallback font value, if neither exist (see ). + + + + + Returns if the property defined by and exists, or if the default theme font is set up (see ). + Returns if neither exist. Use to define the property. + + + + + Renames the property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the font size property defined by and . Use to remove the property. + + + + + Returns the font size property defined by and , if it exists. + Returns the default theme font size if the property doesn't exist and the default theme font size is set up (see ). Use to check for existence of the property and to check for existence of the default theme font. + Returns the engine fallback font size value, if neither exist (see ). + + + + + Returns if the font size property defined by and exists, or if the default theme font size is set up (see ). + Returns if neither exist. Use to define the property. + + + + + Renames the font size property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the font size property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for font size properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for font size properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the property defined by and . Use to remove the property. + + + + + Returns the property defined by and , if it exists. + Returns the default color value if the property doesn't exist. Use to check for existence. + + + + + Returns if the property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the constant property defined by and . Use to remove the property. + + + + + Returns the constant property defined by and , if it exists. + Returns 0 if the property doesn't exist. Use to check for existence. + + + + + Returns if the constant property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the constant property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the constant property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for constant properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for constant properties. Use to get a list of all unique theme types. + + + + + Returns if has a valid value. + Returns if it doesn't. The value must be greater than 0.0 to be considered valid. + + + + + Returns if has a valid value. + Returns if it doesn't. + + + + + Returns if has a valid value. + Returns if it doesn't. The value must be greater than 0 to be considered valid. + + + + + Creates or changes the value of the theme property of defined by and . Use to remove the property. + Fails if the type is not accepted by . + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns the theme property of defined by and , if it exists. + Returns the engine fallback value if the property doesn't exist (see ). Use to check for existence. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns if the theme property of defined by and exists. + Returns if it doesn't exist. Use to define it. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Renames the theme property of defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Removes the theme property of defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns a list of names for properties of defined with . Use to get a list of possible theme type names. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Marks as a variation of . + This adds as a suggested option for on a that is of the class. + Variations can also be nested, i.e. can be another variation. If a chain of variations ends with a matching the class of the , the whole chain is going to be suggested as options. + Note: Suggestions only show up if this theme resource is set as the project default theme. See ProjectSettings.gui/theme/custom. + + + + + Returns if is marked as a variation of . + + + + + Unmarks as being a variation of another theme type. See . + + + + + Returns the name of the base theme type if is a valid variation type. Returns an empty string otherwise. + + + + + Returns a list of all type variations for the given . + + + + + Adds an empty theme type for every valid data type. + Note: Empty types are not saved with the theme. This method only exists to perform in-memory changes to the resource. Use available set_* methods to add theme items. + + + + + Removes the theme type, gracefully discarding defined theme items. If the type is a variation, this information is also erased. If the type is a base for type variations, those variations lose their base. + + + + + Returns a list of all unique theme type names. Use the appropriate get_*_type_list method to get a list of unique theme types for a single data type. + + + + + Adds missing and overrides existing definitions with values from the theme resource. + Note: This modifies the current theme. If you want to merge two themes together without modifying either one, create a new empty theme and merge the other two into it one after another. + + + + + Removes all the theme properties defined on the theme resource. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_base_scale' property. + + + + + Cached name for the 'default_font' property. + + + + + Cached name for the 'default_font_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'get_icon' method. + + + + + Cached name for the 'has_icon' method. + + + + + Cached name for the 'rename_icon' method. + + + + + Cached name for the 'clear_icon' method. + + + + + Cached name for the 'get_icon_list' method. + + + + + Cached name for the 'get_icon_type_list' method. + + + + + Cached name for the 'set_stylebox' method. + + + + + Cached name for the 'get_stylebox' method. + + + + + Cached name for the 'has_stylebox' method. + + + + + Cached name for the 'rename_stylebox' method. + + + + + Cached name for the 'clear_stylebox' method. + + + + + Cached name for the 'get_stylebox_list' method. + + + + + Cached name for the 'get_stylebox_type_list' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'has_font' method. + + + + + Cached name for the 'rename_font' method. + + + + + Cached name for the 'clear_font' method. + + + + + Cached name for the 'get_font_list' method. + + + + + Cached name for the 'get_font_type_list' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'has_font_size' method. + + + + + Cached name for the 'rename_font_size' method. + + + + + Cached name for the 'clear_font_size' method. + + + + + Cached name for the 'get_font_size_list' method. + + + + + Cached name for the 'get_font_size_type_list' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'has_color' method. + + + + + Cached name for the 'rename_color' method. + + + + + Cached name for the 'clear_color' method. + + + + + Cached name for the 'get_color_list' method. + + + + + Cached name for the 'get_color_type_list' method. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached name for the 'has_constant' method. + + + + + Cached name for the 'rename_constant' method. + + + + + Cached name for the 'clear_constant' method. + + + + + Cached name for the 'get_constant_list' method. + + + + + Cached name for the 'get_constant_type_list' method. + + + + + Cached name for the 'set_default_base_scale' method. + + + + + Cached name for the 'get_default_base_scale' method. + + + + + Cached name for the 'has_default_base_scale' method. + + + + + Cached name for the 'set_default_font' method. + + + + + Cached name for the 'get_default_font' method. + + + + + Cached name for the 'has_default_font' method. + + + + + Cached name for the 'set_default_font_size' method. + + + + + Cached name for the 'get_default_font_size' method. + + + + + Cached name for the 'has_default_font_size' method. + + + + + Cached name for the 'set_theme_item' method. + + + + + Cached name for the 'get_theme_item' method. + + + + + Cached name for the 'has_theme_item' method. + + + + + Cached name for the 'rename_theme_item' method. + + + + + Cached name for the 'clear_theme_item' method. + + + + + Cached name for the 'get_theme_item_list' method. + + + + + Cached name for the 'get_theme_item_type_list' method. + + + + + Cached name for the 'set_type_variation' method. + + + + + Cached name for the 'is_type_variation' method. + + + + + Cached name for the 'clear_type_variation' method. + + + + + Cached name for the 'get_type_variation_base' method. + + + + + Cached name for the 'get_type_variation_list' method. + + + + + Cached name for the 'add_type' method. + + + + + Cached name for the 'remove_type' method. + + + + + Cached name for the 'get_type_list' method. + + + + + Cached name for the 'merge_with' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This singleton provides access to static information about resources used by the engine and by your projects. You can fetch the default engine theme, as well as your project configured theme. + also contains fallback values for theme properties. + + + + + The fallback base scale factor of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font size of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback icon of every node and resource. Used when no other value is available to the control. + + + + + The fallback stylebox of every node and resource. Used when no other value is available to the control. + + + + + Returns a reference to the default engine . This theme resource is responsible for the out-of-the-box look of nodes and cannot be overridden. + + + + + Returns a reference to the custom project . This theme resources allows to override the default engine theme for every control node in the project. + To set the project theme, see ProjectSettings.gui/theme/custom. + + + + + Emitted when one of the fallback values had been changed. Use it to refresh the look of controls that may rely on the fallback theme items. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_base_scale' property. + + + + + Cached name for the 'fallback_font' property. + + + + + Cached name for the 'fallback_font_size' property. + + + + + Cached name for the 'fallback_icon' property. + + + + + Cached name for the 'fallback_stylebox' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_default_theme' method. + + + + + Cached name for the 'get_project_theme' method. + + + + + Cached name for the 'set_fallback_base_scale' method. + + + + + Cached name for the 'get_fallback_base_scale' method. + + + + + Cached name for the 'set_fallback_font' method. + + + + + Cached name for the 'get_fallback_font' method. + + + + + Cached name for the 'set_fallback_font_size' method. + + + + + Cached name for the 'get_fallback_font_size' method. + + + + + Cached name for the 'set_fallback_icon' method. + + + + + Cached name for the 'get_fallback_icon' method. + + + + + Cached name for the 'set_fallback_stylebox' method. + + + + + Cached name for the 'get_fallback_stylebox' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_changed' signal. + + + + + This singleton provides access to static information about resources used by the engine and by your projects. You can fetch the default engine theme, as well as your project configured theme. + also contains fallback values for theme properties. + + + + + The fallback base scale factor of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font size of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback icon of every node and resource. Used when no other value is available to the control. + + + + + The fallback stylebox of every node and resource. Used when no other value is available to the control. + + + + + Returns a reference to the default engine . This theme resource is responsible for the out-of-the-box look of nodes and cannot be overridden. + + + + + Returns a reference to the custom project . This theme resources allows to override the default engine theme for every control node in the project. + To set the project theme, see ProjectSettings.gui/theme/custom. + + + + + Emitted when one of the fallback values had been changed. Use it to refresh the look of controls that may rely on the fallback theme items. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_base_scale' property. + + + + + Cached name for the 'fallback_font' property. + + + + + Cached name for the 'fallback_font_size' property. + + + + + Cached name for the 'fallback_icon' property. + + + + + Cached name for the 'fallback_stylebox' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_default_theme' method. + + + + + Cached name for the 'get_project_theme' method. + + + + + Cached name for the 'set_fallback_base_scale' method. + + + + + Cached name for the 'get_fallback_base_scale' method. + + + + + Cached name for the 'set_fallback_font' method. + + + + + Cached name for the 'get_fallback_font' method. + + + + + Cached name for the 'set_fallback_font_size' method. + + + + + Cached name for the 'get_fallback_font_size' method. + + + + + Cached name for the 'set_fallback_icon' method. + + + + + Cached name for the 'get_fallback_icon' method. + + + + + Cached name for the 'set_fallback_stylebox' method. + + + + + Cached name for the 'get_fallback_stylebox' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_changed' signal. + + + + + A unit of execution in a process. Can run methods on s simultaneously. The use of synchronization via or is advised if working with shared objects. + Warning: + To ensure proper cleanup without crashes or deadlocks, when a 's reference count reaches zero and it is therefore destroyed, the following conditions must be met: + - It must not have any objects locked. + - It must not be waiting on any objects. + - should have been called on it. + + + + + A thread running with lower priority than normally. + + + + + A thread with a standard priority. + + + + + A thread running with higher priority than normally. + + + + + Starts a new that calls . + If the method takes some arguments, you can pass them using Callable.bind. + The of the can be changed by passing a value from the enum. + Returns on success, or on failure. + + + + + Returns the current 's ID, uniquely identifying it among all threads. If the has not started running or if has been called, this returns an empty string. + + + + + Returns if this has been started. Once started, this will return until it is joined using . For checking if a is still executing its task, use . + + + + + Returns if this is currently running the provided function. This is useful for determining if can be called without blocking the calling thread. + To check if a is joinable, use . + + + + + Joins the and waits for it to finish. Returns the output of the passed to . + Should either be used when you want to retrieve the value returned from the method called by the or before freeing the instance that contains the . + To determine if this can be called without blocking the calling thread, check if is . + + + + + Sets whether the thread safety checks the engine normally performs in methods of certain classes (e.g., ) should happen on the current thread. + The default, for every thread, is that they are enabled (as if called with being ). + Those checks are conservative. That means that they will only succeed in considering a call thread-safe (and therefore allow it to happen) if the engine can guarantee such safety. + Because of that, there may be cases where the user may want to disable them ( being ) to make certain operations allowed again. By doing so, it becomes the user's responsibility to ensure thread safety (e.g., by using ) for those objects that are otherwise protected by the engine. + Note: This is an advanced usage of the engine. You are advised to use it only if you know what you are doing and there is no safer way. + Note: This is useful for scripts running on either arbitrary objects or tasks submitted to the . It doesn't apply to code running during group processing, where the checks will be always performed. + Note: Even in the case of having disabled the checks in a task, there's no need to re-enable them at the end. The engine will do so. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'get_id' method. + + + + + Cached name for the 'is_started' method. + + + + + Cached name for the 'is_alive' method. + + + + + Cached name for the 'wait_to_finish' method. + + + + + Cached name for the 'set_thread_safety_checks_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + object represents a single tile in a . It is usually edited using the tileset editor, but it can be modified at runtime using . + + + + + If , the tile will have its texture flipped horizontally. + + + + + If , the tile will have its texture flipped vertically. + + + + + If , the tile will display transposed, i.e. with horizontal and vertical texture UVs swapped. + + + + + Offsets the position of where the tile is drawn. + + + + + Color modulation of the tile. + + + + + The to use for this . This can be a to use the default shader, or a to use a custom shader. + + + + + Ordering index of this tile, relative to . + + + + + Vertical point of the tile used for determining y-sorted order. + + + + + ID of the terrain set that the tile uses. + + + + + ID of the terrain from the terrain set that the tile uses. + + + + + Relative probability of this tile being selected when drawing a pattern of random tiles. + + + + + Sets the occluder polygon count in the TileSet occlusion layer with index . + + + + + Returns the number of occluder polygons of the tile in the TileSet occlusion layer with index . + + + + + Adds an occlusion polygon to the tile on the TileSet occlusion layer with index . + + + + + Removes the polygon at index for TileSet occlusion layer with index . + + + + + Sets the occluder for polygon with index in the TileSet occlusion layer with index . + + + + + Returns the occluder polygon at index from the TileSet occlusion layer with index . + The , , and parameters can be to transform the returned polygon. + + + + + Sets the occluder for the TileSet occlusion layer with index . + + + + + Returns the occluder polygon of the tile for the TileSet occlusion layer with index . + , , and allow transforming the returned polygon. + + + + + Sets the constant linear velocity. This does not move the tile. This linear velocity is applied to objects colliding with this tile. This is useful to create conveyor belts. + + + + + Returns the constant linear velocity applied to objects colliding with this tile. + + + + + Sets the constant angular velocity. This does not rotate the tile. This angular velocity is applied to objects colliding with this tile. + + + + + Returns the constant angular velocity applied to objects colliding with this tile. + + + + + Sets the polygons count for TileSet physics layer with index . + + + + + Returns how many polygons the tile has for TileSet physics layer with index . + + + + + Adds a collision polygon to the tile on the given TileSet physics layer. + + + + + Removes the polygon at index for TileSet physics layer with index . + + + + + Sets the points of the polygon at index for TileSet physics layer with index . + + + + + Sets the points of the polygon at index for TileSet physics layer with index . + + + + + Returns the points of the polygon at index for TileSet physics layer with index . + + + + + Enables/disables one-way collisions on the polygon at index for TileSet physics layer with index . + + + + + Returns whether one-way collisions are enabled for the polygon at index for TileSet physics layer with index . + + + + + Sets the one-way margin (for one-way platforms) of the polygon at index for TileSet physics layer with index . + + + + + Returns the one-way margin (for one-way platforms) of the polygon at index for TileSet physics layer with index . + + + + + Sets the tile's terrain bit for the given direction. To check that a direction is valid, use . + + + + + Returns the tile's terrain bit for the given direction. To check that a direction is valid, use . + + + + + Returns whether the given direction is valid for this tile. + + + + + Sets the navigation polygon for the TileSet navigation layer with index . + + + + + Returns the navigation polygon of the tile for the TileSet navigation layer with index . + , , and allow transforming the returned polygon. + + + + + Sets the tile's custom data value for the TileSet custom data layer with name . + + + + + Returns the custom data value for custom data layer named . + + + + + Sets the tile's custom data value for the TileSet custom data layer with index . + + + + + Returns the custom data value for custom data layer with index . + + + + + Returns the occluder polygon of the tile for the TileSet occlusion layer with index . + , , and allow transforming the returned polygon. + + + + + Returns the navigation polygon of the tile for the TileSet navigation layer with index . + , , and allow transforming the returned polygon. + + + + + Emitted when any of the properties are changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached name for the 'transpose' property. + + + + + Cached name for the 'texture_origin' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'material' property. + + + + + Cached name for the 'z_index' property. + + + + + Cached name for the 'y_sort_origin' property. + + + + + Cached name for the 'terrain_set' property. + + + + + Cached name for the 'terrain' property. + + + + + Cached name for the 'probability' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'get_flip_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'get_flip_v' method. + + + + + Cached name for the 'set_transpose' method. + + + + + Cached name for the 'get_transpose' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_texture_origin' method. + + + + + Cached name for the 'get_texture_origin' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_z_index' method. + + + + + Cached name for the 'get_z_index' method. + + + + + Cached name for the 'set_y_sort_origin' method. + + + + + Cached name for the 'get_y_sort_origin' method. + + + + + Cached name for the 'set_occluder_polygons_count' method. + + + + + Cached name for the 'get_occluder_polygons_count' method. + + + + + Cached name for the 'add_occluder_polygon' method. + + + + + Cached name for the 'remove_occluder_polygon' method. + + + + + Cached name for the 'set_occluder_polygon' method. + + + + + Cached name for the 'get_occluder_polygon' method. + + + + + Cached name for the 'set_occluder' method. + + + + + Cached name for the 'get_occluder' method. + + + + + Cached name for the 'set_constant_linear_velocity' method. + + + + + Cached name for the 'get_constant_linear_velocity' method. + + + + + Cached name for the 'set_constant_angular_velocity' method. + + + + + Cached name for the 'get_constant_angular_velocity' method. + + + + + Cached name for the 'set_collision_polygons_count' method. + + + + + Cached name for the 'get_collision_polygons_count' method. + + + + + Cached name for the 'add_collision_polygon' method. + + + + + Cached name for the 'remove_collision_polygon' method. + + + + + Cached name for the 'set_collision_polygon_points' method. + + + + + Cached name for the 'get_collision_polygon_points' method. + + + + + Cached name for the 'set_collision_polygon_one_way' method. + + + + + Cached name for the 'is_collision_polygon_one_way' method. + + + + + Cached name for the 'set_collision_polygon_one_way_margin' method. + + + + + Cached name for the 'get_collision_polygon_one_way_margin' method. + + + + + Cached name for the 'set_terrain_set' method. + + + + + Cached name for the 'get_terrain_set' method. + + + + + Cached name for the 'set_terrain' method. + + + + + Cached name for the 'get_terrain' method. + + + + + Cached name for the 'set_terrain_peering_bit' method. + + + + + Cached name for the 'get_terrain_peering_bit' method. + + + + + Cached name for the 'is_valid_terrain_peering_bit' method. + + + + + Cached name for the 'set_navigation_polygon' method. + + + + + Cached name for the 'get_navigation_polygon' method. + + + + + Cached name for the 'set_probability' method. + + + + + Cached name for the 'get_probability' method. + + + + + Cached name for the 'set_custom_data' method. + + + + + Cached name for the 'get_custom_data' method. + + + + + Cached name for the 'set_custom_data_by_layer_id' method. + + + + + Cached name for the 'get_custom_data_by_layer_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + Node for 2D tile-based maps. A uses a which contain a list of tiles which are used to create grid-based maps. Unlike the node, which is deprecated, has only one layer of tiles. You can use several to achieve the same result as a node. + For performance reasons, all TileMap updates are batched at the end of a frame. Notably, this means that scene tiles from a may be initialized after their parent. This is only queued when inside the scene tree. + To force an update earlier on, call . + + + + + Hide the collisions or navigation debug shapes in the editor, and use the debug settings to determine their visibility in game (i.e. or ). + + + + + Always hide the collisions or navigation debug shapes. + + + + + Always show the collisions or navigation debug shapes. + + + + + The raw tile map data as a byte array. + + + + + If , disables this completely (rendering, collision, navigation, scene tiles, etc.) + + + + + The used by this layer. The textures, collisions, and additional behavior of all available tiles are stored here. + + + + + Enable or disable light occlusion. + + + + + This Y-sort origin value is added to each tile's Y-sort origin value. This allows, for example, to fake a different height level. This can be useful for top-down view games. + + + + + If is enabled, setting this to will reverse the order the tiles are drawn on the X-axis. + + + + + The 's quadrant size. A quadrant is a group of tiles to be drawn together on a single canvas item, for optimization purposes. defines the length of a square's side, in the map's coordinate system, that forms the quadrant. Thus, the default quadrant size groups together 16 * 16 = 256 tiles. + The quadrant size does not apply on a Y-sorted , as tiles are grouped by Y position instead in that case. + Note: As quadrants are created according to the map's coordinate system, the quadrant's "square shape" might not look like square in the 's local coordinate system. + + + + + Enable or disable collisions. + + + + + If , this collision shapes will be instantiated as kinematic bodies. This can be needed for moving nodes (i.e. moving platforms). + + + + + Show or hide the 's collision shapes. If set to , this depends on the show collision debug settings. + + + + + If , navigation regions are enabled. + + + + + Show or hide the 's navigation meshes. If set to , this depends on the show navigation debug settings. + + + + + Called with a object about to be used internally by the , allowing its modification at runtime. + This method is only called if is implemented and returns for the given tile . + Warning: The 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. + Note: If the properties of object should change over time, use to notify the it needs an update. + + + + + Called when this 's cells need an internal update. This update may be caused from individual cells being modified or by a change in the (causing all cells to be queued for an update). The first call to this function is always for initializing all the 's cells. contains the coordinates of all modified cells, roughly in the order they were modified. is when the 's internals should be fully cleaned up. This is the case when: + - The layer is disabled; + - The layer is not visible; + - is set to ; + - The node is removed from the tree; + - The node is freed. + Note that any internal update happening while one of these conditions is verified is considered to be a "cleanup". See also . + Warning: Implementing this method may degrade the 's performance. + + + + + Should return if the tile at coordinates requires a runtime update. + Warning: Make sure this function only returns when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty. + Note: If the result of this function should change, use to notify the it needs an update. + + + + + Sets the tile identifiers for the cell at coordinates . Each tile of the is identified using three parts: + - The source identifier identifies a identifier. See , + - The atlas coordinate identifier identifies a tile coordinates in the atlas (if the source is a ). For it should always be Vector2i(0, 0), + - The alternative tile identifier identifies a tile alternative in the atlas (if the source is a ), and the scene for a . + If is set to -1, to Vector2i(-1, -1), or to -1, the cell will be erased. An erased cell gets all its identifiers automatically set to their respective invalid values, namely -1, Vector2i(-1, -1) and -1. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Erases the cell at coordinates . + + + + + Clears cells containing tiles that do not exist in the . + + + + + Clears all cells. + + + + + Returns the tile source ID of the cell at coordinates . Returns -1 if the cell does not exist. + + + + + Returns the tile atlas coordinates ID of the cell at coordinates . Returns Vector2i(-1, -1) if the cell does not exist. + + + + + Returns the tile alternative ID of the cell at coordinates . + + + + + Returns the object associated with the given cell, or if the cell does not exist or is not a . + + func get_clicked_tile_power(): + var clicked_cell = tile_map_layer.local_to_map(tile_map_layer.get_local_mouse_position()) + var data = tile_map_layer.get_cell_tile_data(clicked_cell) + if data: + return data.get_custom_data("power") + else: + return 0 + + + + + + Returns if the cell at coordinates is flipped horizontally. The result is valid only for atlas sources. + + + + + Returns if the cell at coordinates is flipped vertically. The result is valid only for atlas sources. + + + + + Returns if the cell at coordinates is transposed. The result is valid only for atlas sources. + + + + + Returns a array with the positions of all cells containing a tile. A cell is considered empty if its source identifier equals -1, its atlas coordinate identifier is Vector2(-1, -1) and its alternative identifier is -1. + + + + + Returns a array with the positions of all cells containing a tile. Tiles may be filtered according to their source (), their atlas coordinates (), or alternative id (). + If a parameter has its value set to the default one, this parameter is not used to filter a cell. Thus, if all parameters have their respective default values, this method returns the same result as . + A cell is considered empty if its source identifier equals -1, its atlas coordinate identifier is Vector2(-1, -1) and its alternative identifier is -1. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns a rectangle enclosing the used (non-empty) tiles of the map. + + + + + Creates and returns a new from the given array of cells. See also . + + + + + Pastes the at the given in the tile map. See also . + + + + + Update all the cells in the coordinates array so that they use the given for the given . If an updated cell has the same terrain as one of its neighboring cells, this function tries to join the two. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + Note: To work correctly, this method requires the 's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Update all the cells in the coordinates array so that they use the given for the given . The function will also connect two successive cell in the path with the same terrain. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + Note: To work correctly, this method requires the 's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Returns whether the provided belongs to one of this 's cells. + + + + + Returns the coordinates of the tile for given physics body . Such an can be retrieved from , when colliding with a tile. + + + + + Triggers a direct update of the . Usually, calling this function is not needed, as node updates automatically when one of its properties or cells is modified. + However, for performance reasons, those updates are batched and delayed to the end of the frame. Calling this function will force the to update right away instead. + Warning: Updating the is computationally expensive and may impact performance. Try to limit the number of updates and how many tiles they impact. + + + + + Notifies the node that calls to or will lead to different results. This will thus trigger a update. + Warning: Updating the is computationally expensive and may impact performance. Try to limit the number of calls to this function to avoid unnecessary update. + Note: This does not trigger a direct update of the , the update will be done at the end of the frame as usual (unless you call ). + + + + + Returns for the given coordinates in a the corresponding cell coordinates if the pattern was pasted at the coordinates (see ). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating position_in_tile_map + coords_in_pattern. + + + + + Returns the list of all neighboring cells to the one at . Any neighboring cell is one that is touching edges, so for a square cell 4 cells would be returned, for a hexagon 6 cells are returned. + + + + + Returns the neighboring cell to the one at coordinates , identified by the direction. This method takes into account the different layouts a TileMap can take. + + + + + Returns the centered position of a cell in the 's local coordinate space. To convert the returned value into global coordinates, use . See also . + Note: This may not correspond to the visual position of the tile, i.e. it ignores the property of individual tiles. + + + + + Returns the map coordinates of the cell containing the given . If is in global coordinates, consider using before passing it to this method. See also . + + + + + Sets a custom as a navigation map. If not set, uses the default navigation map instead. + + + + + Returns the of the navigation used by this . + By default this returns the default navigation map, unless a custom map was provided using . + + + + + Emitted when this 's properties changes. This includes modified cells, properties, or changes made to its assigned . + Note: This signal may be emitted very often when batch-modifying a . Avoid executing complex processing in a connected function, and consider delaying it to the end of the frame instead (i.e. calling ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tile_map_data' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'tile_set' property. + + + + + Cached name for the 'occlusion_enabled' property. + + + + + Cached name for the 'y_sort_origin' property. + + + + + Cached name for the 'x_draw_order_reversed' property. + + + + + Cached name for the 'rendering_quadrant_size' property. + + + + + Cached name for the 'collision_enabled' property. + + + + + Cached name for the 'use_kinematic_bodies' property. + + + + + Cached name for the 'collision_visibility_mode' property. + + + + + Cached name for the 'navigation_enabled' property. + + + + + Cached name for the 'navigation_visibility_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_tile_data_runtime_update' method. + + + + + Cached name for the '_update_cells' method. + + + + + Cached name for the '_use_tile_data_runtime_update' method. + + + + + Cached name for the 'set_cell' method. + + + + + Cached name for the 'erase_cell' method. + + + + + Cached name for the 'fix_invalid_tiles' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_cell_source_id' method. + + + + + Cached name for the 'get_cell_atlas_coords' method. + + + + + Cached name for the 'get_cell_alternative_tile' method. + + + + + Cached name for the 'get_cell_tile_data' method. + + + + + Cached name for the 'is_cell_flipped_h' method. + + + + + Cached name for the 'is_cell_flipped_v' method. + + + + + Cached name for the 'is_cell_transposed' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_used_cells_by_id' method. + + + + + Cached name for the 'get_used_rect' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'set_pattern' method. + + + + + Cached name for the 'set_cells_terrain_connect' method. + + + + + Cached name for the 'set_cells_terrain_path' method. + + + + + Cached name for the 'has_body_rid' method. + + + + + Cached name for the 'get_coords_for_body_rid' method. + + + + + Cached name for the 'update_internals' method. + + + + + Cached name for the 'notify_runtime_tile_data_update' method. + + + + + Cached name for the 'map_pattern' method. + + + + + Cached name for the 'get_surrounding_cells' method. + + + + + Cached name for the 'get_neighbor_cell' method. + + + + + Cached name for the 'map_to_local' method. + + + + + Cached name for the 'local_to_map' method. + + + + + Cached name for the 'set_tile_map_data_from_array' method. + + + + + Cached name for the 'get_tile_map_data_as_array' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_tile_set' method. + + + + + Cached name for the 'get_tile_set' method. + + + + + Cached name for the 'set_y_sort_origin' method. + + + + + Cached name for the 'get_y_sort_origin' method. + + + + + Cached name for the 'set_x_draw_order_reversed' method. + + + + + Cached name for the 'is_x_draw_order_reversed' method. + + + + + Cached name for the 'set_rendering_quadrant_size' method. + + + + + Cached name for the 'get_rendering_quadrant_size' method. + + + + + Cached name for the 'set_collision_enabled' method. + + + + + Cached name for the 'is_collision_enabled' method. + + + + + Cached name for the 'set_use_kinematic_bodies' method. + + + + + Cached name for the 'is_using_kinematic_bodies' method. + + + + + Cached name for the 'set_collision_visibility_mode' method. + + + + + Cached name for the 'get_collision_visibility_mode' method. + + + + + Cached name for the 'set_occlusion_enabled' method. + + + + + Cached name for the 'is_occlusion_enabled' method. + + + + + Cached name for the 'set_navigation_enabled' method. + + + + + Cached name for the 'is_navigation_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_navigation_visibility_mode' method. + + + + + Cached name for the 'get_navigation_visibility_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + This resource holds a set of cells to help bulk manipulations of . + A pattern always start at the (0,0) coordinates and cannot have cells with negative coordinates. + + + + + Sets the tile identifiers for the cell at coordinates . See . + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns whether the pattern has a tile at the given coordinates. + + + + + Remove the cell at the given coordinates. + + + + + Returns the tile source ID of the cell at . + + + + + Returns the tile atlas coordinates ID of the cell at . + + + + + Returns the tile alternative ID of the cell at . + + + + + Returns the list of used cell coordinates in the pattern. + + + + + Returns the size, in cells, of the pattern. + + + + + Sets the size of the pattern. + + + + + Returns whether the pattern is empty or not. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cell' method. + + + + + Cached name for the 'has_cell' method. + + + + + Cached name for the 'remove_cell' method. + + + + + Cached name for the 'get_cell_source_id' method. + + + + + Cached name for the 'get_cell_atlas_coords' method. + + + + + Cached name for the 'get_cell_alternative_tile' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'is_empty' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A TileSet is a library of tiles for a . A TileSet handles a list of , each of them storing a set of tiles. + Tiles can either be from a , which renders tiles out of a texture with support for physics, navigation, etc., or from a , 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. + + + + + Rectangular tile shape. + + + + + Diamond tile shape (for isometric look). + Note: Isometric works best if and all its layers have Y-sort enabled. + + + + + Rectangular tile shape with one row/column out of two offset by half a tile. + + + + + Hexagonal tile shape. + + + + + Tile coordinates layout where both axis stay consistent with their respective local horizontal and vertical axis. + + + + + Same as , but the first half-offset is negative instead of positive. + + + + + Tile coordinates layout where the horizontal axis stay horizontal, and the vertical one goes down-right. + + + + + Tile coordinates layout where the vertical axis stay vertical, and the horizontal one goes down-right. + + + + + Tile coordinates layout where the horizontal axis goes up-right, and the vertical one goes down-right. + + + + + Tile coordinates layout where the horizontal axis goes down-right, and the vertical one goes down-left. + + + + + Horizontal half-offset. + + + + + Vertical half-offset. + + + + + Neighbor on the right side. + + + + + Neighbor in the right corner. + + + + + Neighbor on the bottom right side. + + + + + Neighbor in the bottom right corner. + + + + + Neighbor on the bottom side. + + + + + Neighbor in the bottom corner. + + + + + Neighbor on the bottom left side. + + + + + Neighbor in the bottom left corner. + + + + + Neighbor on the left side. + + + + + Neighbor in the left corner. + + + + + Neighbor on the top left side. + + + + + Neighbor in the top left corner. + + + + + Neighbor on the top side. + + + + + Neighbor in the top corner. + + + + + Neighbor on the top right side. + + + + + Neighbor in the top right corner. + + + + + Requires both corners and side to match with neighboring tiles' terrains. + + + + + Requires corners to match with neighboring tiles' terrains. + + + + + Requires sides to match with neighboring tiles' terrains. + + + + + The tile shape. + + + + + For all half-offset shapes (Isometric, Hexagonal and Half-Offset square), changes the way tiles are indexed in the TileMap grid. + + + + + For all half-offset shapes (Isometric, Hexagonal and Half-Offset square), determines the offset axis. + + + + + The tile size, in pixels. For all tile shapes, this size corresponds to the encompassing rectangle of the tile shape. This is thus the minimal cell size required in an atlas. + + + + + Enables/Disable uv clipping when rendering the tiles. + + + + + Returns a new unused source ID. This generated ID is the same that a call to would return. + + + + + Adds a to the TileSet. If is not -1, also set its source ID. Otherwise, a unique identifier is automatically generated. + The function returns the added source ID or -1 if the source could not be added. + Warning: A source cannot belong to two TileSets at the same time. If the added source was attached to another , it will be removed from that one. + + + + + Removes the source with the given source ID. + + + + + Changes a source's ID. + + + + + Returns the number of in this TileSet. + + + + + Returns the source ID for source with index . + + + + + Returns if this TileSet has a source for the given source ID. + + + + + Returns the with ID . + + + + + Returns the occlusion layers count. + + + + + Adds an occlusion layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Occlusion layers allow assigning occlusion polygons to atlas tiles. + + + + + Moves the occlusion layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the occlusion layer at index . Also updates the atlas tiles accordingly. + + + + + Sets the occlusion layer (as in the rendering server) for occluders in the given TileSet occlusion layer. + + + + + Returns the light mask of the occlusion layer. + + + + + Enables or disables SDF collision for occluders in the given TileSet occlusion layer. + + + + + Returns if the occluders from this layer use sdf_collision. + + + + + Returns the physics layers count. + + + + + Adds a physics layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Physics layers allow assigning collision polygons to atlas tiles. + + + + + Moves the physics layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the physics layer at index . Also updates the atlas tiles accordingly. + + + + + Sets the collision layer (as in the physics server) for bodies in the given TileSet physics layer. + + + + + Returns the collision layer (as in the physics server) bodies on the given TileSet's physics layer are in. + + + + + Sets the collision mask for bodies in the given TileSet physics layer. + + + + + Returns the collision mask of bodies on the given TileSet's physics layer. + + + + + Sets the collision priority for bodies in the given TileSet physics layer. + + + + + Returns the collision priority of bodies on the given TileSet's physics layer. + + + + + Sets the physics material for bodies in the given TileSet physics layer. + + + + + Returns the physics material of bodies on the given TileSet's physics layer. + + + + + Returns the terrain sets count. + + + + + Adds a new terrain set at the given position in the array. If is -1, adds it at the end of the array. + + + + + Moves the terrain set at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the terrain set at index . Also updates the atlas tiles accordingly. + + + + + Sets a terrain mode. Each mode determines which bits of a tile shape is used to match the neighboring tiles' terrains. + + + + + Returns a terrain set mode. + + + + + Returns the number of terrains in the given terrain set. + + + + + Adds a new terrain to the given terrain set at the given position in the array. If is -1, adds it at the end of the array. + + + + + Moves the terrain at index for terrain set to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the terrain at index in the given terrain set . Also updates the atlas tiles accordingly. + + + + + Sets a terrain's name. + + + + + Returns a terrain's name. + + + + + Sets a terrain's color. This color is used for identifying the different terrains in the TileSet editor. + + + + + Returns a terrain's color. + + + + + Returns the navigation layers count. + + + + + Adds a navigation layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Navigation layers allow assigning a navigable area to atlas tiles. + + + + + Moves the navigation layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the navigation layer at index . Also updates the atlas tiles accordingly. + + + + + Sets the navigation layers (as in the navigation server) for navigation regions in the given TileSet navigation layer. + + + + + Returns the navigation layers (as in the Navigation server) of the given TileSet navigation layer. + + + + + Based on , enables or disables the specified navigation layer of the TileSet navigation data layer identified by the given , given a navigation_layers between 1 and 32. + + + + + Returns whether or not the specified navigation layer of the TileSet navigation data layer identified by the given is enabled, given a navigation_layers between 1 and 32. + + + + + Returns the custom data layers count. + + + + + Adds a custom data layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Custom data layers allow assigning custom properties to atlas tiles. + + + + + Moves the custom data layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the custom data layer at index . Also updates the atlas tiles accordingly. + + + + + Returns the index of the custom data layer identified by the given name. + + + + + Sets the name of the custom data layer identified by the given index. Names are identifiers of the layer therefore if the name is already taken it will fail and raise an error. + + + + + Returns the name of the custom data layer identified by the given index. + + + + + Sets the type of the custom data layer identified by the given index. + + + + + Returns the type of the custom data layer identified by the given index. + + + + + Creates a source-level proxy for the given source ID. A proxy will map set of tile identifiers to another set of identifiers. Both the atlas coordinates ID and the alternative tile ID are kept the same when using source-level proxies. + This can be used to replace a source in all TileMaps using this TileSet, as TileMap nodes will find and use the proxy's target source when one is available. + Proxied tiles can be automatically replaced in TileMap nodes using the editor. + + + + + Returns the source-level proxy for the given source identifier. + If the TileSet has no proxy for the given identifier, returns -1. + + + + + Returns if there is a source-level proxy for the given source ID. + + + + + Removes a source-level tile proxy. + + + + + Creates a coordinates-level proxy for the given identifiers. A proxy will map set of tile identifiers to another set of identifiers. The alternative tile ID is kept the same when using coordinates-level proxies. + This can be used to replace a tile in all TileMaps using this TileSet, as TileMap nodes will find and use the proxy's target tile when one is available. + Proxied tiles can be automatically replaced in TileMap nodes using the editor. + + + + + Returns the coordinate-level proxy for the given identifiers. The returned array contains the two target identifiers of the proxy (source ID and atlas coordinates ID). + If the TileSet has no proxy for the given identifiers, returns an empty Array. + + + + + Returns if there is a coodinates-level proxy for the given identifiers. + + + + + Removes a coordinates-level proxy for the given identifiers. + + + + + Create an alternative-level proxy for the given identifiers. A proxy will map set of tile identifiers to another set of identifiers. + This can be used to replace a tile in all TileMaps using this TileSet, as TileMap nodes will find and use the proxy's target tile when one is available. + Proxied tiles can be automatically replaced in TileMap nodes using the editor. + + + + + Returns the alternative-level proxy for the given identifiers. The returned array contains the three proxie's target identifiers (source ID, atlas coords ID and alternative tile ID). + If the TileSet has no proxy for the given identifiers, returns an empty Array. + + + + + Returns if there is an alternative-level proxy for the given identifiers. + + + + + Removes an alternative-level proxy for the given identifiers. + + + + + According to the configured proxies, maps the provided identifiers to a new set of identifiers. The source ID, atlas coordinates ID and alternative tile ID are returned as a 3 elements Array. + This function first look for matching alternative-level proxies, then coordinates-level proxies, then source-level proxies. + If no proxy corresponding to provided identifiers are found, returns the same values the ones used as arguments. + + + + + Clears tile proxies pointing to invalid tiles. + + + + + Clears all tile proxies. + + + + + Adds a to be stored in the TileSet resource. If provided, insert it at the given . + + + + + Returns the at the given . + + + + + Remove the at the given index. + + + + + Returns the number of this tile set handles. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tile_shape' property. + + + + + Cached name for the 'tile_layout' property. + + + + + Cached name for the 'tile_offset_axis' property. + + + + + Cached name for the 'tile_size' property. + + + + + Cached name for the 'uv_clipping' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_next_source_id' method. + + + + + Cached name for the 'add_source' method. + + + + + Cached name for the 'remove_source' method. + + + + + Cached name for the 'set_source_id' method. + + + + + Cached name for the 'get_source_count' method. + + + + + Cached name for the 'get_source_id' method. + + + + + Cached name for the 'has_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached name for the 'set_tile_shape' method. + + + + + Cached name for the 'get_tile_shape' method. + + + + + Cached name for the 'set_tile_layout' method. + + + + + Cached name for the 'get_tile_layout' method. + + + + + Cached name for the 'set_tile_offset_axis' method. + + + + + Cached name for the 'get_tile_offset_axis' method. + + + + + Cached name for the 'set_tile_size' method. + + + + + Cached name for the 'get_tile_size' method. + + + + + Cached name for the 'set_uv_clipping' method. + + + + + Cached name for the 'is_uv_clipping' method. + + + + + Cached name for the 'get_occlusion_layers_count' method. + + + + + Cached name for the 'add_occlusion_layer' method. + + + + + Cached name for the 'move_occlusion_layer' method. + + + + + Cached name for the 'remove_occlusion_layer' method. + + + + + Cached name for the 'set_occlusion_layer_light_mask' method. + + + + + Cached name for the 'get_occlusion_layer_light_mask' method. + + + + + Cached name for the 'set_occlusion_layer_sdf_collision' method. + + + + + Cached name for the 'get_occlusion_layer_sdf_collision' method. + + + + + Cached name for the 'get_physics_layers_count' method. + + + + + Cached name for the 'add_physics_layer' method. + + + + + Cached name for the 'move_physics_layer' method. + + + + + Cached name for the 'remove_physics_layer' method. + + + + + Cached name for the 'set_physics_layer_collision_layer' method. + + + + + Cached name for the 'get_physics_layer_collision_layer' method. + + + + + Cached name for the 'set_physics_layer_collision_mask' method. + + + + + Cached name for the 'get_physics_layer_collision_mask' method. + + + + + Cached name for the 'set_physics_layer_collision_priority' method. + + + + + Cached name for the 'get_physics_layer_collision_priority' method. + + + + + Cached name for the 'set_physics_layer_physics_material' method. + + + + + Cached name for the 'get_physics_layer_physics_material' method. + + + + + Cached name for the 'get_terrain_sets_count' method. + + + + + Cached name for the 'add_terrain_set' method. + + + + + Cached name for the 'move_terrain_set' method. + + + + + Cached name for the 'remove_terrain_set' method. + + + + + Cached name for the 'set_terrain_set_mode' method. + + + + + Cached name for the 'get_terrain_set_mode' method. + + + + + Cached name for the 'get_terrains_count' method. + + + + + Cached name for the 'add_terrain' method. + + + + + Cached name for the 'move_terrain' method. + + + + + Cached name for the 'remove_terrain' method. + + + + + Cached name for the 'set_terrain_name' method. + + + + + Cached name for the 'get_terrain_name' method. + + + + + Cached name for the 'set_terrain_color' method. + + + + + Cached name for the 'get_terrain_color' method. + + + + + Cached name for the 'get_navigation_layers_count' method. + + + + + Cached name for the 'add_navigation_layer' method. + + + + + Cached name for the 'move_navigation_layer' method. + + + + + Cached name for the 'remove_navigation_layer' method. + + + + + Cached name for the 'set_navigation_layer_layers' method. + + + + + Cached name for the 'get_navigation_layer_layers' method. + + + + + Cached name for the 'set_navigation_layer_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_layer_value' method. + + + + + Cached name for the 'get_custom_data_layers_count' method. + + + + + Cached name for the 'add_custom_data_layer' method. + + + + + Cached name for the 'move_custom_data_layer' method. + + + + + Cached name for the 'remove_custom_data_layer' method. + + + + + Cached name for the 'get_custom_data_layer_by_name' method. + + + + + Cached name for the 'set_custom_data_layer_name' method. + + + + + Cached name for the 'get_custom_data_layer_name' method. + + + + + Cached name for the 'set_custom_data_layer_type' method. + + + + + Cached name for the 'get_custom_data_layer_type' method. + + + + + Cached name for the 'set_source_level_tile_proxy' method. + + + + + Cached name for the 'get_source_level_tile_proxy' method. + + + + + Cached name for the 'has_source_level_tile_proxy' method. + + + + + Cached name for the 'remove_source_level_tile_proxy' method. + + + + + Cached name for the 'set_coords_level_tile_proxy' method. + + + + + Cached name for the 'get_coords_level_tile_proxy' method. + + + + + Cached name for the 'has_coords_level_tile_proxy' method. + + + + + Cached name for the 'remove_coords_level_tile_proxy' method. + + + + + Cached name for the 'set_alternative_level_tile_proxy' method. + + + + + Cached name for the 'get_alternative_level_tile_proxy' method. + + + + + Cached name for the 'has_alternative_level_tile_proxy' method. + + + + + Cached name for the 'remove_alternative_level_tile_proxy' method. + + + + + Cached name for the 'map_tile_proxy' method. + + + + + Cached name for the 'cleanup_invalid_tile_proxies' method. + + + + + Cached name for the 'clear_tile_proxies' method. + + + + + Cached name for the 'add_pattern' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'remove_pattern' method. + + + + + Cached name for the 'get_patterns_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An atlas is a grid of tiles laid out on a texture. Each tile in the grid must be exposed using . 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 , 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 layers. Those properties are stored in a TileData object that can be accessed and modified using . + As TileData properties are stored directly in the TileSetAtlasSource resource, their properties might also be set using TileSetAtlasSource.set("<coords_x>:<coords_y>/<alternative_id>/<tile_data_property>"). + + + + + Represents cell's horizontal flip flag. Should be used directly with to flip placed tiles by altering their alternative IDs. + + var alternate_id = $TileMap.get_cell_alternative_tile(0, Vector2i(2, 2)) + if not alternate_id & TileSetAtlasSource.TRANSFORM_FLIP_H: + # If tile is not already flipped, flip it. + $TileMap.set_cell(0, Vector2i(2, 2), source_id, atlas_coords, alternate_id | TileSetAtlasSource.TRANSFORM_FLIP_H) + + Note: These transformations can be combined to do the equivalent of 0, 90, 180, and 270 degree rotations, as shown below: + + enum TileTransform { + ROTATE_0 = 0, + ROTATE_90 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource.TRANSFORM_FLIP_H, + ROTATE_180 = TileSetAtlasSource.TRANSFORM_FLIP_H | TileSetAtlasSource.TRANSFORM_FLIP_V, + ROTATE_270 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource.TRANSFORM_FLIP_V, + } + + + + + + Represents cell's vertical flip flag. See for usage. + + + + + Represents cell's transposed flag. See for usage. + + + + + Tile animations start at same time, looking identical. + + + + + Tile animations start at random times, looking varied. + + + + + Represents the size of the enum. + + + + + The atlas texture. + + + + + Margins, in pixels, to offset the origin of the grid in the texture. + + + + + Separation, in pixels, between each tile texture region of the grid. + + + + + The base tile size in the texture (in pixel). This size must be bigger than or equal to the TileSet's tile_size value. + + + + + If , generates an internal texture with an additional one pixel padding around each tile. Texture padding avoids a common artifact where lines appear between tiles. + Disabling this setting might lead a small performance improvement, as generating the internal texture requires both memory and processing time when the TileSetAtlasSource resource is modified. + + + + + Creates a new tile at coordinates with the given . + + If the parameter is null, then the default value is new Vector2I(1, 1). + + + + Remove a tile and its alternative at coordinates . + + + + + Move the tile and its alternatives at the coordinates to the coordinates with the size. This functions will fail if a tile is already present in the given area. + If is Vector2i(-1, -1), keeps the tile's coordinates. If is Vector2i(-1, -1), keeps the tile's size. + To avoid an error, first check if a move is possible using . + + If the parameter is null, then the default value is new Vector2I(-1, -1). + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns the size of the tile (in the grid coordinates system) at coordinates . + + + + + Returns whether there is enough room in an atlas to create/modify a tile with the given properties. If is provided, act as is the given tile was not present in the atlas. This may be used when you want to modify a tile's properties. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns an array of tiles coordinates ID that will be automatically removed when modifying one or several of those properties: , , or . This can be used to undo changes that would have caused tiles data loss. + + + + + If there is a tile covering the coordinates, returns the top-left coordinates of the tile (thus its coordinate ID). Returns Vector2i(-1, -1) otherwise. + + + + + Checks if the source has any tiles that don't fit the texture area (either partially or completely). + + + + + Removes all tiles that don't fit the available texture area. This method iterates over all the source's tiles, so it's advised to use beforehand. + + + + + Sets the number of columns in the animation layout of the tile at coordinates . If set to 0, then the different frames of the animation are laid out as a single horizontal line in the atlas. + + + + + Returns how many columns the tile at has in its animation layout. + + + + + Sets the margin (in grid tiles) between each tile in the animation layout of the tile at coordinates has. + + + + + Returns the separation (as in the atlas grid) between each frame of an animated tile at coordinates . + + + + + Sets the animation speed of the tile at coordinates has. + + + + + Returns the animation speed of the tile at coordinates . + + + + + Sets the tile animation mode of the tile at to . See also . + + + + + Returns the tile animation mode of the tile at . See also . + + + + + Sets how many animation frames the tile at coordinates has. + + + + + Returns how many animation frames has the tile at coordinates . + + + + + Sets the animation frame of frame for the tile at coordinates . + + + + + Returns the animation frame duration of frame for the tile at coordinates . + + + + + Returns the sum of the sum of the frame durations of the tile at coordinates . This value needs to be divided by the animation speed to get the actual animation loop duration. + + + + + Creates an alternative tile for the tile at coordinates . If is -1, give it an automatically generated unique ID, or assigns it the given ID otherwise. + Returns the new alternative identifier, or -1 if the alternative could not be created with a provided . + + + + + Remove a tile's alternative with alternative ID . + Calling this function with equals to 0 will fail, as the base tile alternative cannot be removed. + + + + + Change a tile's alternative ID from to . + Calling this function with of 0 will fail, as the base tile alternative cannot be moved. + + + + + Returns the alternative ID a following call to would return. + + + + + Returns the object for the given atlas coordinates and alternative ID. + + + + + Returns the atlas grid size, which depends on how many tiles can fit in the texture. It thus depends on the 's size, the atlas , and the tiles' . + + + + + Returns a tile's texture region in the atlas texture. For animated tiles, a argument might be provided for the different frames of the animation. + + + + + If is , returns . Otherwise, returns and internal created that includes the padding. + + + + + Returns the region of the tile at coordinates for the given inside the texture returned by . + Note: If is , returns the same as . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'margins' property. + + + + + Cached name for the 'separation' property. + + + + + Cached name for the 'texture_region_size' property. + + + + + Cached name for the 'use_texture_padding' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_margins' method. + + + + + Cached name for the 'get_margins' method. + + + + + Cached name for the 'set_separation' method. + + + + + Cached name for the 'get_separation' method. + + + + + Cached name for the 'set_texture_region_size' method. + + + + + Cached name for the 'get_texture_region_size' method. + + + + + Cached name for the 'set_use_texture_padding' method. + + + + + Cached name for the 'get_use_texture_padding' method. + + + + + Cached name for the 'create_tile' method. + + + + + Cached name for the 'remove_tile' method. + + + + + Cached name for the 'move_tile_in_atlas' method. + + + + + Cached name for the 'get_tile_size_in_atlas' method. + + + + + Cached name for the 'has_room_for_tile' method. + + + + + Cached name for the 'get_tiles_to_be_removed_on_change' method. + + + + + Cached name for the 'get_tile_at_coords' method. + + + + + Cached name for the 'has_tiles_outside_texture' method. + + + + + Cached name for the 'clear_tiles_outside_texture' method. + + + + + Cached name for the 'set_tile_animation_columns' method. + + + + + Cached name for the 'get_tile_animation_columns' method. + + + + + Cached name for the 'set_tile_animation_separation' method. + + + + + Cached name for the 'get_tile_animation_separation' method. + + + + + Cached name for the 'set_tile_animation_speed' method. + + + + + Cached name for the 'get_tile_animation_speed' method. + + + + + Cached name for the 'set_tile_animation_mode' method. + + + + + Cached name for the 'get_tile_animation_mode' method. + + + + + Cached name for the 'set_tile_animation_frames_count' method. + + + + + Cached name for the 'get_tile_animation_frames_count' method. + + + + + Cached name for the 'set_tile_animation_frame_duration' method. + + + + + Cached name for the 'get_tile_animation_frame_duration' method. + + + + + Cached name for the 'get_tile_animation_total_duration' method. + + + + + Cached name for the 'create_alternative_tile' method. + + + + + Cached name for the 'remove_alternative_tile' method. + + + + + Cached name for the 'set_alternative_tile_id' method. + + + + + Cached name for the 'get_next_alternative_tile_id' method. + + + + + Cached name for the 'get_tile_data' method. + + + + + Cached name for the 'get_atlas_grid_size' method. + + + + + Cached name for the 'get_tile_texture_region' method. + + + + + Cached name for the 'get_runtime_texture' method. + + + + + Cached name for the 'get_runtime_tile_texture_region' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + When placed on a , tiles from will automatically instantiate an associated scene at the cell's position in the TileMap. + Scenes are instantiated as children of the when it enters the tree. If you add/remove a scene tile in the that is already inside the tree, the will automatically instantiate/free the scene accordingly. + Note: Scene tiles all occupy one tile slot and instead use alternate tile ID to identify scene index. will always return 1. Use to get a number of scenes in a . + Use this code if you want to find the scene path at a given tile in : + + int sourceId = tileMapLayer.GetCellSourceId(new Vector2I(x, y)); + if (sourceId > -1) + { + TileSetSource source = tileMapLayer.TileSet.GetSource(sourceId); + if (source is TileSetScenesCollectionSource sceneSource) + { + int altId = tileMapLayer.GetCellAlternativeTile(new Vector2I(x, y)); + // The assigned PackedScene. + PackedScene scene = sceneSource.GetSceneTileScene(altId); + } + } + + + + + + Returns the number or scene tiles this TileSet source has. + + + + + Returns the scene tile ID of the scene tile at . + + + + + Returns whether this TileSet source has a scene tile with . + + + + + Creates a scene-based tile out of the given scene. + Returns a newly generated unique ID. + + + + + Changes a scene tile's ID from to . This will fail if there is already a tile with an ID equal to . + + + + + Assigns a resource to the scene tile with . This will fail if the scene does not extend CanvasItem, as positioning properties are needed to place the scene on the TileMap. + + + + + Returns the resource of scene tile with . + + + + + Sets whether or not the scene tile with should display a placeholder in the editor. This might be useful for scenes that are not visible. + + + + + Returns whether the scene tile with displays a placeholder in the editor. + + + + + Remove the scene tile with . + + + + + Returns the scene ID a following call to would return. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_scene_tiles_count' method. + + + + + Cached name for the 'get_scene_tile_id' method. + + + + + Cached name for the 'has_scene_tile_id' method. + + + + + Cached name for the 'create_scene_tile' method. + + + + + Cached name for the 'set_scene_tile_id' method. + + + + + Cached name for the 'set_scene_tile_scene' method. + + + + + Cached name for the 'get_scene_tile_scene' method. + + + + + Cached name for the 'set_scene_tile_display_placeholder' method. + + + + + Cached name for the 'get_scene_tile_display_placeholder' method. + + + + + Cached name for the 'remove_scene_tile' method. + + + + + Cached name for the 'get_next_scene_tile_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Exposes a set of tiles for a 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 class. + Depending on the TileSet source type, those IDs might have restrictions on their values, this is why the base class only exposes getters for them. + You can iterate over all tiles exposed by a TileSetSource by first iterating over coordinates IDs using and , then over alternative IDs using and . + Warning: can only be added to one TileSet at the same time. Calling on a second will remove the source from the first one. + + + + + Returns how many tiles this atlas source defines (not including alternative tiles). + + + + + Returns the tile coordinates ID of the tile with index . + + + + + Returns if this atlas has a tile with coordinates ID . + + + + + Returns the number of alternatives tiles for the coordinates ID . + For , this always return at least 1, as the base tile with ID 0 is always part of the alternatives list. + Returns -1 if there is not tile at the given coords. + + + + + Returns the alternative ID for the tile with coordinates ID at index . + + + + + Returns if the base tile at coordinates has an alternative with ID . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tiles_count' method. + + + + + Cached name for the 'get_tile_id' method. + + + + + Cached name for the 'has_tile' method. + + + + + Cached name for the 'get_alternative_tiles_count' method. + + + + + Cached name for the 'get_alternative_tile_id' method. + + + + + Cached name for the 'has_alternative_tile' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The Time singleton allows converting time between various formats and also getting time information from the system. + This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before 1582-10-15 is 1582-10-14, not 1582-10-04. The year before 1 AD (aka 1 BC) is number 0, with the year before that (2 BC) being -1, etc. + Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually. + When getting time information from the system, the time can either be in the local timezone or UTC depending on the utc parameter. However, the method always uses UTC as it returns the seconds passed since the Unix epoch. + Important: The _from_system methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always use or for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease). + + + + + The month of January, represented numerically as 01. + + + + + The month of February, represented numerically as 02. + + + + + The month of March, represented numerically as 03. + + + + + The month of April, represented numerically as 04. + + + + + The month of May, represented numerically as 05. + + + + + The month of June, represented numerically as 06. + + + + + The month of July, represented numerically as 07. + + + + + The month of August, represented numerically as 08. + + + + + The month of September, represented numerically as 09. + + + + + The month of October, represented numerically as 10. + + + + + The month of November, represented numerically as 11. + + + + + The month of December, represented numerically as 12. + + + + + The day of the week Sunday, represented numerically as 0. + + + + + The day of the week Monday, represented numerically as 1. + + + + + The day of the week Tuesday, represented numerically as 2. + + + + + The day of the week Wednesday, represented numerically as 3. + + + + + The day of the week Thursday, represented numerically as 4. + + + + + The day of the week Friday, represented numerically as 5. + + + + + The day of the week Saturday, represented numerically as 6. + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + The returned Dictionary's values will be the same as the if the Unix timestamp is the current time, with the exception of Daylight Savings Time as it cannot be determined from the epoch. + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, and weekday. + + + + + Converts the given time to a dictionary of keys: hour, minute, and second. + + + + + Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD). + + + + + Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS). + + + + + Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + If is , then the weekday entry is excluded (the calculation is relatively expensive). + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given dictionary of keys to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts a dictionary of time values to a Unix timestamp. + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + You can pass the output from directly into this function and get the same as what was put in. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime dictionary. + + + + + Converts the given ISO 8601 date and/or time string to a Unix timestamp. The string can contain a date only, a time only, or both. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime string. + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given timezone offset in minutes to a timezone offset string. For example, -480 returns "-08:00", 345 returns "+05:45", and 0 returns "+00:00". + + + + + Returns the current date as a dictionary of keys: year, month, day, weekday, hour, minute, second, and dst (Daylight Savings Time). + + + + + Returns the current date as a dictionary of keys: year, month, day, and weekday. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as a dictionary of keys: hour, minute, and second. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current date and time as an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Returns the current date as an ISO 8601 date string (YYYY-MM-DD). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as an ISO 8601 time string (HH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time zone as a dictionary of keys: bias and name. + - bias is the offset from UTC in minutes, since not all time zones are multiples of an hour from UTC. + - name is the localized name of the time zone, according to the OS locale settings of the current user. + + + + + Returns the current Unix timestamp in seconds based on the system time in UTC. This method is implemented by the operating system and always returns the time in UTC. The Unix timestamp is the number of seconds passed since 1970-01-01 at 00:00:00, the Unix epoch. + Note: Unlike other methods that use integer timestamps, this method returns the timestamp as a for sub-second precision. + + + + + Returns the amount of time passed in milliseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly 500 million years). + + + + + Returns the amount of time passed in microseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly half a million years). + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_datetime_dict_from_unix_time' method. + + + + + Cached name for the 'get_date_dict_from_unix_time' method. + + + + + Cached name for the 'get_time_dict_from_unix_time' method. + + + + + Cached name for the 'get_datetime_string_from_unix_time' method. + + + + + Cached name for the 'get_date_string_from_unix_time' method. + + + + + Cached name for the 'get_time_string_from_unix_time' method. + + + + + Cached name for the 'get_datetime_dict_from_datetime_string' method. + + + + + Cached name for the 'get_datetime_string_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_string' method. + + + + + Cached name for the 'get_offset_string_from_offset_minutes' method. + + + + + Cached name for the 'get_datetime_dict_from_system' method. + + + + + Cached name for the 'get_date_dict_from_system' method. + + + + + Cached name for the 'get_time_dict_from_system' method. + + + + + Cached name for the 'get_datetime_string_from_system' method. + + + + + Cached name for the 'get_date_string_from_system' method. + + + + + Cached name for the 'get_time_string_from_system' method. + + + + + Cached name for the 'get_time_zone_from_system' method. + + + + + Cached name for the 'get_unix_time_from_system' method. + + + + + Cached name for the 'get_ticks_msec' method. + + + + + Cached name for the 'get_ticks_usec' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The Time singleton allows converting time between various formats and also getting time information from the system. + This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before 1582-10-15 is 1582-10-14, not 1582-10-04. The year before 1 AD (aka 1 BC) is number 0, with the year before that (2 BC) being -1, etc. + Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually. + When getting time information from the system, the time can either be in the local timezone or UTC depending on the utc parameter. However, the method always uses UTC as it returns the seconds passed since the Unix epoch. + Important: The _from_system methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always use or for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease). + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + The returned Dictionary's values will be the same as the if the Unix timestamp is the current time, with the exception of Daylight Savings Time as it cannot be determined from the epoch. + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, and weekday. + + + + + Converts the given time to a dictionary of keys: hour, minute, and second. + + + + + Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD). + + + + + Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS). + + + + + Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + If is , then the weekday entry is excluded (the calculation is relatively expensive). + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given dictionary of keys to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts a dictionary of time values to a Unix timestamp. + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + You can pass the output from directly into this function and get the same as what was put in. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime dictionary. + + + + + Converts the given ISO 8601 date and/or time string to a Unix timestamp. The string can contain a date only, a time only, or both. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime string. + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given timezone offset in minutes to a timezone offset string. For example, -480 returns "-08:00", 345 returns "+05:45", and 0 returns "+00:00". + + + + + Returns the current date as a dictionary of keys: year, month, day, weekday, hour, minute, second, and dst (Daylight Savings Time). + + + + + Returns the current date as a dictionary of keys: year, month, day, and weekday. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as a dictionary of keys: hour, minute, and second. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current date and time as an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Returns the current date as an ISO 8601 date string (YYYY-MM-DD). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as an ISO 8601 time string (HH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time zone as a dictionary of keys: bias and name. + - bias is the offset from UTC in minutes, since not all time zones are multiples of an hour from UTC. + - name is the localized name of the time zone, according to the OS locale settings of the current user. + + + + + Returns the current Unix timestamp in seconds based on the system time in UTC. This method is implemented by the operating system and always returns the time in UTC. The Unix timestamp is the number of seconds passed since 1970-01-01 at 00:00:00, the Unix epoch. + Note: Unlike other methods that use integer timestamps, this method returns the timestamp as a for sub-second precision. + + + + + Returns the amount of time passed in milliseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly 500 million years). + + + + + Returns the amount of time passed in microseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly half a million years). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_datetime_dict_from_unix_time' method. + + + + + Cached name for the 'get_date_dict_from_unix_time' method. + + + + + Cached name for the 'get_time_dict_from_unix_time' method. + + + + + Cached name for the 'get_datetime_string_from_unix_time' method. + + + + + Cached name for the 'get_date_string_from_unix_time' method. + + + + + Cached name for the 'get_time_string_from_unix_time' method. + + + + + Cached name for the 'get_datetime_dict_from_datetime_string' method. + + + + + Cached name for the 'get_datetime_string_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_string' method. + + + + + Cached name for the 'get_offset_string_from_offset_minutes' method. + + + + + Cached name for the 'get_datetime_dict_from_system' method. + + + + + Cached name for the 'get_date_dict_from_system' method. + + + + + Cached name for the 'get_time_dict_from_system' method. + + + + + Cached name for the 'get_datetime_string_from_system' method. + + + + + Cached name for the 'get_date_string_from_system' method. + + + + + Cached name for the 'get_time_string_from_system' method. + + + + + Cached name for the 'get_time_zone_from_system' method. + + + + + Cached name for the 'get_unix_time_from_system' method. + + + + + Cached name for the 'get_ticks_msec' method. + + + + + Cached name for the 'get_ticks_usec' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is a countdown timer and is the simplest way to handle time-based logic in the engine. When a timer reaches the end of its , it will emit the signal. + After a timer enters the tree, it can be manually started with . A timer node is also started automatically if is . + Without requiring much code, a timer node can be added and configured in the editor. The signal it emits can also be connected through the Node dock in the editor: + + func _on_timer_timeout(): + print("Time to attack!") + + Note: To create a one-shot timer without instantiating a node, use . + Note: Timers are affected by . The higher the time scale, the sooner timers will end. How often a timer processes may depend on the framerate or . + + + + + Update the timer every physics process frame (see ). + + + + + Update the timer every process (rendered) frame (see ). + + + + + Specifies when the timer is updated during the main loop (see ). + + + + + The time required for the timer to end, in seconds. This property can also be set every time is called. + Note: Timers can only process once per physics or process frame (depending on the ). An unstable framerate may cause the timer to end inconsistently, which is especially noticeable if the wait time is lower than roughly 0.05 seconds. For very short timers, it is recommended to write your own code instead of using a node. Timers are also affected by . + + + + + If , the timer will stop after reaching the end. Otherwise, as by default, the timer will automatically restart. + + + + + If , the timer will start immediately when it enters the scene tree. + Note: After the timer enters the tree, this property is automatically set to . + Note: This property does nothing when the timer is running in the editor. + + + + + If , the timer is paused. A paused timer does not process until this property is set back to , even when is called. + + + + + The timer's remaining time in seconds. This is always 0 if the timer is stopped. + Note: This property is read-only and cannot be modified. It is based on . + + + + + Starts the timer, or resets the timer if it was started already. Fails if the timer is not inside the tree. If is greater than 0, this value is used for the . + Note: This method does not resume a paused timer. See . + + + + + Stops the timer. + + + + + Returns if the timer is stopped or has not started. + + + + + Emitted when the timer reaches the end. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'process_callback' property. + + + + + Cached name for the 'wait_time' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'autostart' property. + + + + + Cached name for the 'paused' property. + + + + + Cached name for the 'time_left' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_wait_time' method. + + + + + Cached name for the 'get_wait_time' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'is_one_shot' method. + + + + + Cached name for the 'set_autostart' method. + + + + + Cached name for the 'has_autostart' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_paused' method. + + + + + Cached name for the 'is_paused' method. + + + + + Cached name for the 'is_stopped' method. + + + + + Cached name for the 'get_time_left' method. + + + + + Cached name for the 'set_timer_process_callback' method. + + + + + Cached name for the 'get_timer_process_callback' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'timeout' signal. + + + + + Class representing a torus . + + + + + The inner radius of the torus. + + + + + The outer radius of the torus. + + + + + The number of slices the torus is constructed of. + + + + + The number of edges each ring of the torus is constructed of. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'inner_radius' property. + + + + + Cached name for the 'outer_radius' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'ring_segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_inner_radius' method. + + + + + Cached name for the 'get_inner_radius' method. + + + + + Cached name for the 'set_outer_radius' method. + + + + + Cached name for the 'get_outer_radius' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_ring_segments' method. + + + + + Cached name for the 'get_ring_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , TouchScreenButton supports multitouch out of the box. Several TouchScreenButtons can be pressed at the same time with touch input. + This node inherits from . Unlike with nodes, you cannot set anchors on it. If you want to create menus or user interfaces, you may want to use nodes instead. To make button nodes react to touch events, you can enable ProjectSettings.input_devices/pointing/emulate_mouse_from_touch 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. + + + + + Always visible. + + + + + Visible on touch screens only. + + + + + The button's texture for the normal state. + + + + + The button's texture for the pressed state. + + + + + The button's bitmask. + + + + + The button's shape. + + + + + If , the button's shape is centered in the provided texture. If no texture is used, this property has no effect. + + + + + If , the button's shape is visible in the editor. + + + + + If , the and signals are emitted whenever a pressed finger goes in and out of the button, even if the pressure started outside the active area of the button. + Note: This is a "pass-by" (not "bypass") press mode. + + + + + The button's action. Actions can be handled with . + + + + + The button's visibility mode. See for possible values. + + + + + Returns if this button is currently pressed. + + + + + Emitted when the button is pressed (down). + + + + + Emitted when the button is released (up). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_normal' property. + + + + + Cached name for the 'texture_pressed' property. + + + + + Cached name for the 'bitmask' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'shape_centered' property. + + + + + Cached name for the 'shape_visible' property. + + + + + Cached name for the 'passby_press' property. + + + + + Cached name for the 'action' property. + + + + + Cached name for the 'visibility_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_normal' method. + + + + + Cached name for the 'get_texture_normal' method. + + + + + Cached name for the 'set_texture_pressed' method. + + + + + Cached name for the 'get_texture_pressed' method. + + + + + Cached name for the 'set_bitmask' method. + + + + + Cached name for the 'get_bitmask' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_shape_centered' method. + + + + + Cached name for the 'is_shape_centered' method. + + + + + Cached name for the 'set_shape_visible' method. + + + + + Cached name for the 'is_shape_visible' method. + + + + + Cached name for the 'set_action' method. + + + + + Cached name for the 'get_action' method. + + + + + Cached name for the 'set_visibility_mode' method. + + + + + Cached name for the 'get_visibility_mode' method. + + + + + Cached name for the 'set_passby_press' method. + + + + + Cached name for the 'is_passby_press_enabled' method. + + + + + Cached name for the 'is_pressed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + Cached name for the 'released' signal. + + + + + 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. + + + + + The locale of the translation. + + + + + Virtual method to override . + + + + + Virtual method to override . + + + + + Adds a message if nonexistent, followed by its translation. + An additional context could be used to specify the translation context or differentiate polysemic words. + + + + + Adds a message involving plural translation if nonexistent, followed by its translation. + An additional context could be used to specify the translation context or differentiate polysemic words. + + + + + Adds a message involving plural translation if nonexistent, followed by its translation. + An additional context could be used to specify the translation context or differentiate polysemic words. + + + + + Returns a message's translation. + + + + + Returns a message's translation involving plurals. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + + + + + Erases a message. + + + + + Returns all the messages (keys). + + + + + Returns all the messages (translated text). + + + + + Returns the number of existing messages. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'messages' property. + + + + + Cached name for the 'locale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_message' method. + + + + + Cached name for the '_get_plural_message' method. + + + + + Cached name for the 'set_locale' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'add_message' method. + + + + + Cached name for the 'add_plural_message' method. + + + + + Cached name for the 'get_message' method. + + + + + Cached name for the 'get_plural_message' method. + + + + + Cached name for the 'erase_message' method. + + + + + Cached name for the 'get_message_list' method. + + + + + Cached name for the 'get_translated_message_list' method. + + + + + Cached name for the 'get_message_count' method. + + + + + Cached name for the '_set_messages' method. + + + + + Cached name for the '_get_messages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a self-contained collection of resources. Translations can be added to or removed from it. + If you're working with the main translation domain, it is more convenient to use the wrap methods on . + + + + + If , enables pseudolocalization for the project. This can be used to spot untranslatable strings or layout issues that may occur once the project is localized to languages that have longer strings than the source language. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Replace all characters with their accented variants during pseudolocalization. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Double vowels in strings during pseudolocalization to simulate the lengthening of text due to localization. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + If , emulate bidirectional (right-to-left) text when pseudolocalization is enabled. This can be used to spot issues with RTL layout and UI mirroring that will crop up if the project is localized to RTL languages such as Arabic or Hebrew. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Replace all characters in the string with *. Useful for finding non-localizable strings. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Skip placeholders for string formatting like %s or %f during pseudolocalization. Useful to identify strings which need additional control characters to display correctly. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + The expansion ratio to use during pseudolocalization. A value of 0.3 is sufficient for most practical purposes, and will increase the length of each string by 30%. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Prefix that will be prepended to the pseudolocalized string. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Suffix that will be appended to the pseudolocalized string. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Returns the instance that best matches . Returns if there are no matches. + + + + + Adds a translation. + + + + + Removes the given translation. + + + + + Removes all translations. + + + + + Returns the current locale's translation for the given message and context. + + + + + Returns the current locale's translation for the given message, plural message and context. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + + + + + Returns the pseudolocalized string based on the passed in. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pseudolocalization_enabled' property. + + + + + Cached name for the 'pseudolocalization_accents_enabled' property. + + + + + Cached name for the 'pseudolocalization_double_vowels_enabled' property. + + + + + Cached name for the 'pseudolocalization_fake_bidi_enabled' property. + + + + + Cached name for the 'pseudolocalization_override_enabled' property. + + + + + Cached name for the 'pseudolocalization_skip_placeholders_enabled' property. + + + + + Cached name for the 'pseudolocalization_expansion_ratio' property. + + + + + Cached name for the 'pseudolocalization_prefix' property. + + + + + Cached name for the 'pseudolocalization_suffix' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_translation_object' method. + + + + + Cached name for the 'add_translation' method. + + + + + Cached name for the 'remove_translation' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'translate_plural' method. + + + + + Cached name for the 'is_pseudolocalization_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_accents_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_accents_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_double_vowels_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_double_vowels_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_fake_bidi_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_fake_bidi_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_override_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_override_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_skip_placeholders_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_skip_placeholders_enabled' method. + + + + + Cached name for the 'get_pseudolocalization_expansion_ratio' method. + + + + + Cached name for the 'set_pseudolocalization_expansion_ratio' method. + + + + + Cached name for the 'get_pseudolocalization_prefix' method. + + + + + Cached name for the 'set_pseudolocalization_prefix' method. + + + + + Cached name for the 'get_pseudolocalization_suffix' method. + + + + + Cached name for the 'set_pseudolocalization_suffix' method. + + + + + Cached name for the 'pseudolocalize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The translation server is the API backend that manages all language translations. + Translations are stored in s, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty . The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with godot. are reserved for engine internals. + + + + + If , enables the use of pseudolocalization on the main translation domain. See ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization for details. + + + + + Sets the locale of the project. The string will be standardized to match known locales (e.g. en-US would be matched to en_US). + If translations have been loaded beforehand for the new locale, they will be applied. + + + + + Returns the current locale of the project. + See also and to query the locale of the user system. + + + + + Returns the current locale of the editor. + Note: When called from an exported project returns the same value as . + + + + + Compares two locales and returns a similarity score between 0 (no match) and 10 (full match). + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Returns array of known language codes. + + + + + Returns a readable language name for the code. + + + + + Returns an array of known script codes. + + + + + Returns a readable script name for the code. + + + + + Returns an array of known country codes. + + + + + Returns a readable country name for the code. + + + + + Returns a locale's language and its variant (e.g. "en_US" would return "English (United States)"). + + + + + Returns the current locale's translation for the given message and context. + Note: This method always uses the main translation domain. + + + + + Returns the current locale's translation for the given message, plural message and context. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + Note: This method always uses the main translation domain. + + + + + Adds a translation to the main translation domain. + + + + + Removes the given translation from the main translation domain. + + + + + Returns the instance that best matches in the main translation domain. Returns if there are no matches. + + + + + Returns if a translation domain with the specified name exists. + + + + + Returns the translation domain with the specified name. An empty translation domain will be created and added if it does not exist. + + + + + Removes the translation domain with the specified name. + Note: Trying to remove the main translation domain is an error. + + + + + Removes all translations from the main translation domain. + + + + + Returns an array of all loaded locales of the project. + + + + + Reparses the pseudolocalization options and reloads the translation for the main translation domain. + + + + + Returns the pseudolocalized string based on the passed in. + Note: This method always uses the main translation domain. + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pseudolocalization_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_locale' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_tool_locale' method. + + + + + Cached name for the 'compare_locales' method. + + + + + Cached name for the 'standardize_locale' method. + + + + + Cached name for the 'get_all_languages' method. + + + + + Cached name for the 'get_language_name' method. + + + + + Cached name for the 'get_all_scripts' method. + + + + + Cached name for the 'get_script_name' method. + + + + + Cached name for the 'get_all_countries' method. + + + + + Cached name for the 'get_country_name' method. + + + + + Cached name for the 'get_locale_name' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'translate_plural' method. + + + + + Cached name for the 'add_translation' method. + + + + + Cached name for the 'remove_translation' method. + + + + + Cached name for the 'get_translation_object' method. + + + + + Cached name for the 'has_domain' method. + + + + + Cached name for the 'get_or_add_domain' method. + + + + + Cached name for the 'remove_domain' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_loaded_locales' method. + + + + + Cached name for the 'is_pseudolocalization_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_enabled' method. + + + + + Cached name for the 'reload_pseudolocalization' method. + + + + + Cached name for the 'pseudolocalize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The translation server is the API backend that manages all language translations. + Translations are stored in s, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty . The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with godot. are reserved for engine internals. + + + + + If , enables the use of pseudolocalization on the main translation domain. See ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization for details. + + + + + Sets the locale of the project. The string will be standardized to match known locales (e.g. en-US would be matched to en_US). + If translations have been loaded beforehand for the new locale, they will be applied. + + + + + Returns the current locale of the project. + See also and to query the locale of the user system. + + + + + Returns the current locale of the editor. + Note: When called from an exported project returns the same value as . + + + + + Compares two locales and returns a similarity score between 0 (no match) and 10 (full match). + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Returns array of known language codes. + + + + + Returns a readable language name for the code. + + + + + Returns an array of known script codes. + + + + + Returns a readable script name for the code. + + + + + Returns an array of known country codes. + + + + + Returns a readable country name for the code. + + + + + Returns a locale's language and its variant (e.g. "en_US" would return "English (United States)"). + + + + + Returns the current locale's translation for the given message and context. + Note: This method always uses the main translation domain. + + + + + Returns the current locale's translation for the given message, plural message and context. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + Note: This method always uses the main translation domain. + + + + + Adds a translation to the main translation domain. + + + + + Removes the given translation from the main translation domain. + + + + + Returns the instance that best matches in the main translation domain. Returns if there are no matches. + + + + + Returns if a translation domain with the specified name exists. + + + + + Returns the translation domain with the specified name. An empty translation domain will be created and added if it does not exist. + + + + + Removes the translation domain with the specified name. + Note: Trying to remove the main translation domain is an error. + + + + + Removes all translations from the main translation domain. + + + + + Returns an array of all loaded locales of the project. + + + + + Reparses the pseudolocalization options and reloads the translation for the main translation domain. + + + + + Returns the pseudolocalized string based on the passed in. + Note: This method always uses the main translation domain. + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pseudolocalization_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_locale' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_tool_locale' method. + + + + + Cached name for the 'compare_locales' method. + + + + + Cached name for the 'standardize_locale' method. + + + + + Cached name for the 'get_all_languages' method. + + + + + Cached name for the 'get_language_name' method. + + + + + Cached name for the 'get_all_scripts' method. + + + + + Cached name for the 'get_script_name' method. + + + + + Cached name for the 'get_all_countries' method. + + + + + Cached name for the 'get_country_name' method. + + + + + Cached name for the 'get_locale_name' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'translate_plural' method. + + + + + Cached name for the 'add_translation' method. + + + + + Cached name for the 'remove_translation' method. + + + + + Cached name for the 'get_translation_object' method. + + + + + Cached name for the 'has_domain' method. + + + + + Cached name for the 'get_or_add_domain' method. + + + + + Cached name for the 'remove_domain' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_loaded_locales' method. + + + + + Cached name for the 'is_pseudolocalization_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_enabled' method. + + + + + Cached name for the 'reload_pseudolocalization' method. + + + + + Cached name for the 'pseudolocalize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A single item of a control. It can contain other s as children, which allows it to create a hierarchy. It can also contain text and buttons. is not a , it is internal to the . + To create a , use or . To remove a , use . + Note: The ID values used for buttons are 32-bit, unlike which is always 64-bit. They go from -2147483648 to 2147483647. + + + + + Cell shows a string label, optionally with an icon. When editable, the text can be edited using a , or a popup if is used. + + + + + Cell shows a checkbox, optionally with text and an icon. The checkbox can be pressed, released, or indeterminate (via ). The checkbox can't be clicked unless the cell is editable. + + + + + Cell shows a numeric range. When editable, it can be edited using a range slider. Use to set the value and to configure the range. + This cell can also be used in a text dropdown mode when you assign a text with . Separate options with a comma, e.g. "Option1,Option2,Option3". + + + + + Cell shows an icon. It can't be edited nor display text. The icon is always centered within the cell. + + + + + Cell shows as a clickable button. It will display an arrow similar to , but doesn't feature a dropdown (for that you can use ). Clicking the button emits the signal. The button is flat by default, you can use to display it with a . + This mode also supports custom drawing using . + + + + + If , the TreeItem is collapsed. + + + + + If , the is visible (default). + Note that if a is set to not be visible, none of its children will be visible either. + + + + + If , folding is disabled for this TreeItem. + + + + + The custom minimum height. + + + + + Sets the given column's cell mode to . This determines how the cell is displayed and edited. See constants for details. + + + + + Returns the column's cell mode. + + + + + Sets the given column's auto translate mode to . + All columns use by default, which uses the same auto translate mode as the itself. + + + + + Returns the column's auto translate mode. + + + + + If is , the given is multiline editable. + Note: This option only affects the type of control ( or ) that appears when editing the column. You can set multiline values with even if the column is not multiline editable. + + + + + Returns if the given is multiline editable. + + + + + If is , the given is checked. Clears column's indeterminate status. + + + + + If is , the given is marked indeterminate. + Note: If set from , then column is cleared of checked status. + + + + + Returns if the given is checked. + + + + + Returns if the given is indeterminate. + + + + + Propagates this item's checked status to its children and parents for the given . It is possible to process the items affected by this method call by connecting to . The order that the items affected will be processed is as follows: the item invoking this method, children of that item, and finally parents of that item. If is , then will not be emitted. + + + + + Sets the given column's text value. + + + + + Returns the given column's text. + + + + + Sets item's text base writing direction. + + + + + Returns item's text base writing direction. + + + + + Sets the autowrap mode in the given . If set to something other than , the text gets wrapped inside the cell's bounding rectangle. + + + + + Returns the text autowrap mode in the given . By default it is . + + + + + Sets the clipping behavior when the text exceeds the item's bounding rectangle in the given . + + + + + Returns the clipping behavior when the text exceeds the item's bounding rectangle in the given . By default it is . + + + + + Set BiDi algorithm override for the structured text. Has effect for cells that display text. + + + + + Returns the BiDi algorithm override set for this cell. + + + + + Set additional options for BiDi override. Has effect for cells that display text. + + + + + Returns the additional BiDi options set for this cell. + + + + + Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns item's text language code. + + + + + Sets a string to be shown after a column's value (for example, a unit abbreviation). + + + + + Gets the suffix string shown after the column value. + + + + + Sets the given cell's icon . If the cell is in mode, the icon is displayed in the center of the cell. Otherwise, the icon is displayed before the cell's text. does not display an icon. + + + + + Returns the given column's icon . Error if no icon is set. + + + + + Sets the given cell's icon overlay . The cell has to be in mode, and icon has to be set. Overlay is drawn on top of icon, in the bottom left corner. + + + + + Returns the given column's icon overlay . + + + + + Sets the given column's icon's texture region. + + + + + Returns the icon region as . + + + + + Sets the maximum allowed width of the icon in the given . This limit is applied on top of the default size of the icon and on top of Tree.icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Returns the maximum allowed width of the icon in the given . + + + + + Modulates the given column's icon with . + + + + + Returns the modulating the column's icon. + + + + + Sets the value of a column. + + + + + Returns the value of a column. + + + + + Sets the range of accepted values for a column. The column must be in the mode. + If is , the edit mode slider will use an exponential scale as with . + + + + + Returns a dictionary containing the range parameters for a given column. The keys are "min", "max", "step", and "expr". + + + + + Sets the metadata value for the given column, which can be retrieved later using . This can be used, for example, to store a reference to the original data. + + + + + Returns the metadata value that was set for the given column using . + + + + + Sets the given column's custom draw callback to the method on . + The method named should accept two arguments: the that is drawn and its position and size as a . + + + + + Sets the given column's custom draw callback. Use an empty (Callable()) to clear the custom callback. The cell has to be in to use this feature. + The should accept two arguments: the that is drawn and its position and size as a . + + + + + Returns the custom callback of column . + + + + + Collapses or uncollapses this and all the descendants of this item. + + + + + Returns if this , or any of its descendants, is collapsed. + If is it ignores non-visible s. + + + + + Returns if is and all its ancestors are also visible. + + + + + Uncollapses all s necessary to reveal this , i.e. all ancestor s. + + + + + If is , the given is selectable. + + + + + Returns if the given is selectable. + + + + + Returns if the given is selected. + + + + + Selects the given . + + + + + Deselects the given column. + + + + + If is , the given is editable. + + + + + Returns if the given is editable. + + + + + Sets the given column's custom color. + + + + + Returns the custom color of column . + + + + + Resets the color for the given column to default. + + + + + Sets custom font used to draw text in the given . + + + + + Returns custom font used to draw text in the column . + + + + + Sets custom font size used to draw text in the given . + + + + + Returns custom font size used to draw text in the column . + + + + + Sets the given column's custom background color and whether to just use it as an outline. + + + + + Resets the background color for the given column to default. + + + + + Returns the custom background color of column . + + + + + Makes a cell with display as a non-flat button with a . + + + + + Returns if the cell was made into a button with . + + + + + Removes all buttons from all columns of this item. + + + + + Adds a button with to the end of the cell at column . The is used to identify the button in the according signal and can be different from the buttons index. If not specified, the next available index is used, which may be retrieved by calling immediately before this method. Optionally, the button can be and have a . + + + + + Returns the number of buttons in column . + + + + + Returns the tooltip text for the button at index in column . + + + + + Returns the ID for the button at index in column . + + + + + Returns the button index if there is a button with ID in column , otherwise returns -1. + + + + + Returns the color of the button with ID in column . If the specified button does not exist, returns Color.BLACK. + + + + + Returns the of the button at index in column . + + + + + Sets the tooltip text for the button at index in the given . + + + + + Sets the given column's button at index to . + + + + + Removes the button at index in column . + + + + + If , disables the button at index in the given . + + + + + Sets the given column's button color at index to . + + + + + Returns if the button at index for the given is disabled. + + + + + Sets the given column's tooltip text. + + + + + Returns the given column's tooltip text. + + + + + Sets the given column's text alignment. See for possible values. + + + + + Returns the given column's text alignment. + + + + + If is , the given is expanded to the right. + + + + + Returns if expand_right is set. + + + + + Creates an item and adds it as a child. + The new item will be inserted as position (the default value -1 means the last position), or it will be the last child if is higher than the child count. + + + + + Adds a previously unparented as a direct child of this one. The item must not be a part of any or parented to any . See also . + + + + + Removes the given child and all its children from the . Note that it doesn't free the item from memory, so it can be reused later (see ). To completely remove a use . + Note: If you want to move a child from one to another, then instead of removing and adding it manually you can use or . + + + + + Returns the that owns this TreeItem. + + + + + Returns the next sibling TreeItem in the tree or a object if there is none. + + + + + Returns the previous sibling TreeItem in the tree or a object if there is none. + + + + + Returns the parent TreeItem or a object if there is none. + + + + + Returns the TreeItem's first child. + + + + + Returns the next TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the first element in the tree when called on the last element, otherwise it returns . + + + + + Returns the previous TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the last element in the tree when called on the first visible element, otherwise it returns . + + + + + Returns the next visible TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns . + + + + + Returns the previous visible sibling TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns . + + + + + Returns a child item by its (see ). This method is often used for iterating all children of an item. + Negative indices access the children from the last one. + + + + + Returns the number of child items. + + + + + Returns an array of references to the item's children. + + + + + Returns the node's order in the tree. For example, if called on the first child item the position is 0. + + + + + Moves this TreeItem right before the given . + Note: You can't move to the root or move the root. + + + + + Moves this TreeItem right after the given . + Note: You can't move to the root or move the root. + + + + + Calls the on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. + + + + + Calls the on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collapsed' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'disable_folding' property. + + + + + Cached name for the 'custom_minimum_height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cell_mode' method. + + + + + Cached name for the 'get_cell_mode' method. + + + + + Cached name for the 'set_auto_translate_mode' method. + + + + + Cached name for the 'get_auto_translate_mode' method. + + + + + Cached name for the 'set_edit_multiline' method. + + + + + Cached name for the 'is_edit_multiline' method. + + + + + Cached name for the 'set_checked' method. + + + + + Cached name for the 'set_indeterminate' method. + + + + + Cached name for the 'is_checked' method. + + + + + Cached name for the 'is_indeterminate' method. + + + + + Cached name for the 'propagate_check' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_suffix' method. + + + + + Cached name for the 'get_suffix' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'get_icon' method. + + + + + Cached name for the 'set_icon_overlay' method. + + + + + Cached name for the 'get_icon_overlay' method. + + + + + Cached name for the 'set_icon_region' method. + + + + + Cached name for the 'get_icon_region' method. + + + + + Cached name for the 'set_icon_max_width' method. + + + + + Cached name for the 'get_icon_max_width' method. + + + + + Cached name for the 'set_icon_modulate' method. + + + + + Cached name for the 'get_icon_modulate' method. + + + + + Cached name for the 'set_range' method. + + + + + Cached name for the 'get_range' method. + + + + + Cached name for the 'set_range_config' method. + + + + + Cached name for the 'get_range_config' method. + + + + + Cached name for the 'set_metadata' method. + + + + + Cached name for the 'get_metadata' method. + + + + + Cached name for the 'set_custom_draw' method. + + + + + Cached name for the 'set_custom_draw_callback' method. + + + + + Cached name for the 'get_custom_draw_callback' method. + + + + + Cached name for the 'set_collapsed' method. + + + + + Cached name for the 'is_collapsed' method. + + + + + Cached name for the 'set_collapsed_recursive' method. + + + + + Cached name for the 'is_any_collapsed' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'is_visible_in_tree' method. + + + + + Cached name for the 'uncollapse_tree' method. + + + + + Cached name for the 'set_custom_minimum_height' method. + + + + + Cached name for the 'get_custom_minimum_height' method. + + + + + Cached name for the 'set_selectable' method. + + + + + Cached name for the 'is_selectable' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_custom_color' method. + + + + + Cached name for the 'get_custom_color' method. + + + + + Cached name for the 'clear_custom_color' method. + + + + + Cached name for the 'set_custom_font' method. + + + + + Cached name for the 'get_custom_font' method. + + + + + Cached name for the 'set_custom_font_size' method. + + + + + Cached name for the 'get_custom_font_size' method. + + + + + Cached name for the 'set_custom_bg_color' method. + + + + + Cached name for the 'clear_custom_bg_color' method. + + + + + Cached name for the 'get_custom_bg_color' method. + + + + + Cached name for the 'set_custom_as_button' method. + + + + + Cached name for the 'is_custom_set_as_button' method. + + + + + Cached name for the 'clear_buttons' method. + + + + + Cached name for the 'add_button' method. + + + + + Cached name for the 'get_button_count' method. + + + + + Cached name for the 'get_button_tooltip_text' method. + + + + + Cached name for the 'get_button_id' method. + + + + + Cached name for the 'get_button_by_id' method. + + + + + Cached name for the 'get_button_color' method. + + + + + Cached name for the 'get_button' method. + + + + + Cached name for the 'set_button_tooltip_text' method. + + + + + Cached name for the 'set_button' method. + + + + + Cached name for the 'erase_button' method. + + + + + Cached name for the 'set_button_disabled' method. + + + + + Cached name for the 'set_button_color' method. + + + + + Cached name for the 'is_button_disabled' method. + + + + + Cached name for the 'set_tooltip_text' method. + + + + + Cached name for the 'get_tooltip_text' method. + + + + + Cached name for the 'set_text_alignment' method. + + + + + Cached name for the 'get_text_alignment' method. + + + + + Cached name for the 'set_expand_right' method. + + + + + Cached name for the 'get_expand_right' method. + + + + + Cached name for the 'set_disable_folding' method. + + + + + Cached name for the 'is_folding_disabled' method. + + + + + Cached name for the 'create_child' method. + + + + + Cached name for the 'add_child' method. + + + + + Cached name for the 'remove_child' method. + + + + + Cached name for the 'get_tree' method. + + + + + Cached name for the 'get_next' method. + + + + + Cached name for the 'get_prev' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'get_first_child' method. + + + + + Cached name for the 'get_next_in_tree' method. + + + + + Cached name for the 'get_prev_in_tree' method. + + + + + Cached name for the 'get_next_visible' method. + + + + + Cached name for the 'get_prev_visible' method. + + + + + Cached name for the 'get_child' method. + + + + + Cached name for the 'get_child_count' method. + + + + + Cached name for the 'get_children' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'move_before' method. + + + + + Cached name for the 'move_after' method. + + + + + Cached name for the 'call_recursive' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Mesh type used internally for collision calculations. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + represents a straight tube-shaped mesh with variable width. The tube is composed of a number of cylindrical sections, each with the same and number of . A 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. + + + + + The baseline radius of the tube. The radius of a particular section ring is obtained by multiplying this radius by the value of the at the given distance. + + + + + The number of sides on the tube. For example, a value of 5 means the tube will be pentagonal. Higher values result in a more detailed tube at the cost of performance. + + + + + The total number of sections on the tube. + + + + + The length of a section of the tube. + + + + + The number of rings in a section. The is sampled on each ring to determine its radius. Higher values result in a more detailed tube at the cost of performance. + + + + + If , generates a cap at the top of the tube. This can be set to to speed up generation and rendering when the cap is never seen by the camera. + + + + + If , generates a cap at the bottom of the tube. This can be set to to speed up generation and rendering when the cap is never seen by the camera. + + + + + Determines the radius of the tube along its length. The radius of a particular section ring is obtained by multiplying the baseline by the value of this curve at the given distance. For values smaller than 0, the faces will be inverted. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'radial_steps' property. + + + + + Cached name for the 'sections' property. + + + + + Cached name for the 'section_length' property. + + + + + Cached name for the 'section_rings' property. + + + + + Cached name for the 'cap_top' property. + + + + + Cached name for the 'cap_bottom' property. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_radial_steps' method. + + + + + Cached name for the 'get_radial_steps' method. + + + + + Cached name for the 'set_sections' method. + + + + + Cached name for the 'get_sections' method. + + + + + Cached name for the 'set_section_length' method. + + + + + Cached name for the 'get_section_length' method. + + + + + Cached name for the 'set_section_rings' method. + + + + + Cached name for the 'get_section_rings' method. + + + + + Cached name for the 'set_cap_top' method. + + + + + Cached name for the 'is_cap_top' method. + + + + + Cached name for the 'set_cap_bottom' method. + + + + + Cached name for the 'is_cap_bottom' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Tweens are mostly useful for animations requiring a numerical property to be interpolated over a range of values. The name tween comes from in-betweening, an animation technique where you specify keyframes and the computer interpolates the frames that appear between them. Animating something with a is called tweening. + is more suited than 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 ; it would be difficult to do the same thing with an node. Tweens are also more light-weight than , 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 with a delay. + A can be created by using either or . s created manually (i.e. by using Tween.new()) are invalid and can't be used for tweening values. + A tween animation is created by adding s to the object, using , , or : + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f); + tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f); + tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree)); + + This sequence will make the $Sprite node turn red, then shrink, before finally calling to free the sprite. s are executed one after another by default. This behavior can be changed using and . + When a is created with one of the tween_* methods, a chained method call can be used to tweak the properties of this . For example, if you want to set a different transition type in the above example, you can use : + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f).SetTrans(Tween.TransitionType.Sine); + tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f).SetTrans(Tween.TransitionType.Bounce); + tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree)); + + Most of the methods can be chained this way too. In the following example the is bound to the running script's node and a default transition is set for its s: + + var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween.TransitionType.Elastic); + tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f); + tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f); + tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree)); + + Another interesting use for s is animating arbitrary sets of objects: + + Tween tween = CreateTween(); + foreach (Node sprite in GetChildren()) + tween.TweenProperty(sprite, "position", Vector2.Zero, 1.0f); + + In the example above, all children of a node are moved one after another to position (0, 0). + You should avoid using more than one 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 to a variable: + + private Tween _tween; + + public void Animate() + { + if (_tween != null) + _tween.Kill(); // Abort the previous animation + _tween = CreateTween(); + } + + Some s use transitions and eases. The first accepts a constant, and refers to the way the timing of the animation is handled (see easings.net for some examples). The second accepts an constant, and controls where the trans_type is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different constants with , and use the one that looks best. + Tween easing and transition types cheatsheet + Note: Tweens are not designed to be reused and trying to do so results in an undefined behavior. Create a new Tween for each animation and every time you replay an animation from start. Keep in mind that Tweens start immediately, so only create a Tween when you want to start animating. + Note: The tween is processed after all of the nodes in the current frame, i.e. node's method would be called before the tween (or depending on the value passed to ). + + + + + The updates after each physics frame (see ). + + + + + The updates after each process frame (see ). + + + + + If the has a bound node, it will process when that node can process (see ). Otherwise it's the same as . + + + + + If is paused, the will also pause. + + + + + The will process regardless of whether is paused. + + + + + The animation is interpolated linearly. + + + + + The animation is interpolated using a sine function. + + + + + The animation is interpolated with a quintic (to the power of 5) function. + + + + + The animation is interpolated with a quartic (to the power of 4) function. + + + + + The animation is interpolated with a quadratic (to the power of 2) function. + + + + + The animation is interpolated with an exponential (to the power of x) function. + + + + + The animation is interpolated with elasticity, wiggling around the edges. + + + + + The animation is interpolated with a cubic (to the power of 3) function. + + + + + The animation is interpolated with a function using square roots. + + + + + The animation is interpolated by bouncing at the end. + + + + + The animation is interpolated backing out at ends. + + + + + The animation is interpolated like a spring towards the end. + + + + + The interpolation starts slowly and speeds up towards the end. + + + + + The interpolation starts quickly and slows down towards the end. + + + + + A combination of and . The interpolation is slowest at both ends. + + + + + A combination of and . The interpolation is fastest at both ends. + + + + + Creates and appends a . This method tweens a of an between an initial value and in a span of time equal to , in seconds. The initial value by default is the property's value at the time the tweening of the starts. + + Tween tween = CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "position", new Vector2(100.0f, 200.0f), 1.0f); + tween.TweenProperty(GetNode("Sprite"), "position", new Vector2(200.0f, 300.0f), 1.0f); + + will move the sprite to position (100, 200) and then to (200, 300). If you use or , the starting position will be overwritten by the given value instead. See other methods in to see how the tweening can be tweaked further. + Note: You can find the correct property name by hovering over the property in the Inspector. You can also provide the components of a property directly by using "property:component" (eg. position:x), where it would only apply to that particular component. + Example: Moving an object twice from the same position, with different transition types: + + Tween tween = CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "position", Vector2.Right * 300.0f, 1.0f).AsRelative().SetTrans(Tween.TransitionType.Sine); + tween.TweenProperty(GetNode("Sprite"), "position", Vector2.Right * 300.0f, 1.0f).AsRelative().FromCurrent().SetTrans(Tween.TransitionType.Expo); + + + + + + Creates and appends an . This method can be used to create delays in the tween animation, as an alternative to using the delay in other s, or when there's no animation (in which case the acts as a timer). is the length of the interval, in seconds. + Example: Creating an interval in code execution: + + // ... some code + await ToSignal(CreateTween().TweenInterval(2.0f), Tween.SignalName.Finished); + // ... more code + + Example: Creating an object that moves back and forth and jumps every few seconds: + + Tween tween = CreateTween().SetLoops(); + tween.TweenProperty(GetNode("Sprite"), "position:x", 200.0f, 1.0f).AsRelative(); + tween.TweenCallback(Callable.From(Jump)); + tween.TweenInterval(2.0f); + tween.TweenProperty(GetNode("Sprite"), "position:x", -200.0f, 1.0f).AsRelative(); + tween.TweenCallback(Callable.From(Jump)); + tween.TweenInterval(2.0f); + + + + + + Creates and appends a . This method can be used to call an arbitrary method in any object. Use Callable.bind to bind additional arguments for the call. + Example: Object that keeps shooting every 1 second: + + Tween tween = GetTree().CreateTween().SetLoops(); + tween.TweenCallback(Callable.From(Shoot)).SetDelay(1.0f); + + Example: Turning a sprite red and then blue, with 2 second delay: + + Tween tween = GetTree().CreateTween(); + Sprite2D sprite = GetNode<Sprite2D>("Sprite"); + tween.TweenCallback(Callable.From(() => sprite.Modulate = Colors.Red)).SetDelay(2.0f); + tween.TweenCallback(Callable.From(() => sprite.Modulate = Colors.Blue)).SetDelay(2.0f); + + + + + + Creates and appends a . This method is similar to a combination of and . It calls a method over time with a tweened value provided as an argument. The value is tweened between and over the time specified by , in seconds. Use Callable.bind to bind additional arguments for the call. You can use and to tweak the easing and transition of the value or to delay the tweening. + Example: Making a 3D object look from one point to another point: + + Tween tween = CreateTween(); + tween.TweenMethod(Callable.From((Vector3 target) => LookAt(target, Vector3.Up)), new Vector3(-1.0f, 0.0f, -1.0f), new Vector3(1.0f, 0.0f, -1.0f), 1.0f); // Use lambdas to bind additional arguments for the call. + + Example: Setting the text of a , using an intermediate method and after a delay: + + public override void _Ready() + { + base._Ready(); + + Tween tween = CreateTween(); + tween.TweenMethod(Callable.From<int>(SetLabelText), 0.0f, 10.0f, 1.0f).SetDelay(1.0f); + } + + private void SetLabelText(int value) + { + GetNode<Label>("Label").Text = $"Counting {value}"; + } + + + + + + Processes the by the given value, in seconds. This is mostly useful for manual control when the is paused. It can also be used to end the animation immediately, by setting longer than the whole duration of the animation. + Returns if the still has s that haven't finished. + + + + + Stops the tweening and resets the to its initial state. This will not remove any appended s. + Note: This does not reset targets of s to their values when the first started. + + var tween = create_tween() + + # Will move from 0 to 500 over 1 second. + position.x = 0.0 + tween.tween_property(self, "position:x", 500, 1.0) + + # Will be at (about) 250 when the timer finishes. + await get_tree().create_timer(0.5).timeout + + # Will now move from (about) 250 to 500 over 1 second, + # thus at half the speed as before. + tween.stop() + tween.play() + + Note: If a Tween is stopped and not bound to any node, it will exist indefinitely until manually started or invalidated. If you lose a reference to such Tween, you can retrieve it using . + + + + + Pauses the tweening. The animation can be resumed by using . + Note: If a Tween is paused and not bound to any node, it will exist indefinitely until manually started or invalidated. If you lose a reference to such Tween, you can retrieve it using . + + + + + Resumes a paused or stopped . + + + + + Aborts all tweening operations and invalidates the . + + + + + Returns the total time in seconds the has been animating (i.e. the time since it started, not counting pauses etc.). The time is affected by , and will reset it to 0. + Note: As it results from accumulating frame deltas, the time returned after the has finished animating will be slightly greater than the actual duration. + + + + + Returns whether the is currently running, i.e. it wasn't paused and it's not finished. + + + + + Returns whether the is valid. A valid is a contained by the scene tree (i.e. the array from will contain this ). A might become invalid when it has finished tweening, is killed, or when created with Tween.new(). Invalid s can't have s appended. + + + + + Binds this with the given . s are processed directly by the , so they run independently of the animated nodes. When you bind a with the , the will halt the animation when the object is not inside tree and the will be automatically killed when the bound object is freed. Also will make the pausing behavior dependent on the bound node. + For a shorter way to create and bind a , you can use . + + + + + Determines whether the should run after process frames (see ) or physics frames (see ). + Default value is . + + + + + Determines the behavior of the when the is paused. Check for options. + Default value is . + + + + + If is , the s appended after this method will by default run simultaneously, as opposed to sequentially. + Note: Just like with , the tweener added right before this method will also be part of the parallel step. + + tween.tween_property(self, "position", Vector2(300, 0), 0.5) + tween.set_parallel() + tween.tween_property(self, "modulate", Color.GREEN, 0.5) # Runs together with the position tweener. + + + + + + Sets the number of times the tweening sequence will be repeated, i.e. set_loops(2) will run the animation twice. + Calling this method without arguments will make the run infinitely, until either it is killed with , the 's bound node is freed, or all the animated objects have been freed (which makes further animation impossible). + Warning: Make sure to always add some duration/delay when using infinite loops. To prevent the game freezing, 0-duration looped animations (e.g. a single with no delay) are stopped after a small number of loops, which may produce unexpected results. If a 's lifetime depends on some node, always use . + + + + + Returns the number of remaining loops for this (see ). A return value of -1 indicates an infinitely looping , and a return value of 0 indicates that the has already finished. + + + + + Scales the speed of tweening. This affects all s and their delays. + + + + + Sets the default transition type for s and s appended after this method. + Before this method is called, the default transition type is . + + var tween = create_tween() + tween.tween_property(self, "position", Vector2(300, 0), 0.5) # Uses TRANS_LINEAR. + tween.set_trans(Tween.TRANS_SINE) + tween.tween_property(self, "rotation_degrees", 45.0, 0.5) # Uses TRANS_SINE. + + + + + + Sets the default ease type for s and s appended after this method. + Before this method is called, the default ease type is . + + var tween = create_tween() + tween.tween_property(self, "position", Vector2(300, 0), 0.5) # Uses EASE_IN_OUT. + tween.set_ease(Tween.EASE_IN) + tween.tween_property(self, "rotation_degrees", 45.0, 0.5) # Uses EASE_IN. + + + + + + Makes the next run parallelly to the previous one. + + Tween tween = CreateTween(); + tween.TweenProperty(...); + tween.Parallel().TweenProperty(...); + tween.Parallel().TweenProperty(...); + + All s in the example will run at the same time. + You can make the parallel by default by using . + + + + + Used to chain two s after is called with . + + Tween tween = CreateTween().SetParallel(true); + tween.TweenProperty(...); + tween.TweenProperty(...); // Will run parallelly with above. + tween.Chain().TweenProperty(...); // Will run after two above are finished. + + + + + + This method can be used for manual interpolation of a value, when you don't want to do animating for you. It's similar to @GlobalScope.lerp, but with support for custom transition and easing. + is the starting value of the interpolation. + is the change of the value in the interpolation, i.e. it's equal to final_value - initial_value. + is the time in seconds that passed after the interpolation started and it's used to control the position of the interpolation. E.g. when it's equal to half of the , the interpolated value will be halfway between initial and final values. This value can also be greater than or lower than 0, which will extrapolate the value. + is the total time of the interpolation. + Note: If is equal to 0, the method will always return the final value, regardless of provided. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one step of the is complete, providing the step index. One step is either a single or a group of s running in parallel. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a full loop is complete (see ), providing the loop index. This signal is not emitted after the final loop, use instead for this case. + + + + + Emitted when the has finished all tweening. Never emitted when the is set to infinite looping (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'tween_property' method. + + + + + Cached name for the 'tween_interval' method. + + + + + Cached name for the 'tween_callback' method. + + + + + Cached name for the 'tween_method' method. + + + + + Cached name for the 'custom_step' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'kill' method. + + + + + Cached name for the 'get_total_elapsed_time' method. + + + + + Cached name for the 'is_running' method. + + + + + Cached name for the 'is_valid' method. + + + + + Cached name for the 'bind_node' method. + + + + + Cached name for the 'set_process_mode' method. + + + + + Cached name for the 'set_pause_mode' method. + + + + + Cached name for the 'set_parallel' method. + + + + + Cached name for the 'set_loops' method. + + + + + Cached name for the 'get_loops_left' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'set_trans' method. + + + + + Cached name for the 'set_ease' method. + + + + + Cached name for the 'parallel' method. + + + + + Cached name for the 'chain' method. + + + + + Cached name for the 'interpolate_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'step_finished' signal. + + + + + Cached name for the 'loop_finished' signal. + + + + + Cached name for the 'finished' signal. + + + + + Tweeners are objects that perform a specific animating task, e.g. interpolating a property or calling a method at a given time. A can't be created manually, you need to use a dedicated method from . + + + + + Emitted when the has just finished its job or became invalid (e.g. due to a freed object). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + A simple server that opens a UDP socket and returns connected upon receiving new packets. See also . + After starting the server (), you will need to it at regular intervals (e.g. inside ) for it to process new packets, delivering them to the appropriate , and taking new connections. + Below a small example of how it can be used: + + // ServerNode.cs + using Godot; + using System.Collections.Generic; + + public partial class ServerNode : Node + { + private UdpServer _server = new UdpServer(); + private List<PacketPeerUdp> _peers = new List<PacketPeerUdp>(); + + public override void _Ready() + { + _server.Listen(4242); + } + + public override void _Process(double delta) + { + _server.Poll(); // Important! + if (_server.IsConnectionAvailable()) + { + PacketPeerUdp peer = _server.TakeConnection(); + byte[] packet = peer.GetPacket(); + GD.Print($"Accepted Peer: {peer.GetPacketIP()}:{peer.GetPacketPort()}"); + GD.Print($"Received Data: {packet.GetStringFromUtf8()}"); + // Reply so it knows we received the message. + peer.PutPacket(packet); + // Keep a reference so we can keep contacting the remote peer. + _peers.Add(peer); + } + foreach (var peer in _peers) + { + // Do something with the peers. + } + } + } + + + // ClientNode.cs + using Godot; + + public partial class ClientNode : Node + { + private PacketPeerUdp _udp = new PacketPeerUdp(); + private bool _connected = false; + + public override void _Ready() + { + _udp.ConnectToHost("127.0.0.1", 4242); + } + + public override void _Process(double delta) + { + if (!_connected) + { + // Try to contact server + _udp.PutPacket("The Answer Is..42!".ToUtf8Buffer()); + } + if (_udp.GetAvailablePacketCount() > 0) + { + GD.Print($"Connected: {_udp.GetPacket().GetStringFromUtf8()}"); + _connected = true; + } + } + } + + + + + + Define the maximum number of pending connections, during , any new pending connection exceeding that value will be automatically dropped. Setting this value to 0 effectively prevents any new pending connection to be accepted (e.g. when all your players have connected). + + + + + Starts the server by opening a UDP socket listening on the given . You can optionally specify a to only listen for packets sent to that address. See also . + + + + + Call this method at regular intervals (e.g. inside ) to process new packets. And packet from known address/port pair will be delivered to the appropriate , any packet received from an unknown address/port pair will be added as a pending connection (see , ). The maximum number of pending connection is defined via . + + + + + Returns if a packet with a new address/port combination was received on the socket. + + + + + Returns the local port this server is listening to. + + + + + Returns if the socket is open and listening on a port. + + + + + Returns the first pending connection (connected to the appropriate address/port). Will return if no new connection is available. See also , . + + + + + Stops the server, closing the UDP socket if open. Will close all connected accepted via (remote peers will not be notified). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'max_pending_connections' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'listen' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'is_connection_available' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'is_listening' method. + + + + + Cached name for the 'take_connection' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_max_pending_connections' method. + + + + + Cached name for the 'get_max_pending_connections' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class can be used to discover compatible 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 7777, note both and can return errors that should be checked): + + var upnp = UPNP.new() + upnp.discover() + upnp.add_port_mapping(7777) + + To close a specific port (e.g. after you have finished using it): + + upnp.delete_port_mapping(port) + + Note: UPnP discovery blocks the current thread. To perform discovery without blocking the main thread, use s like this: + + # Emitted when UPnP port mapping setup is completed (regardless of success or failure). + signal upnp_completed(error) + + # Replace this with your own server port number between 1024 and 65535. + const SERVER_PORT = 3928 + var thread = null + + func _upnp_setup(server_port): + # UPNP queries take some time. + var upnp = UPNP.new() + var err = upnp.discover() + + if err != OK: + push_error(str(err)) + upnp_completed.emit(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") + upnp_completed.emit(OK) + + func _ready(): + thread = Thread.new() + thread.start(_upnp_setup.bind(SERVER_PORT)) + + func _exit_tree(): + # Wait for thread finish here to handle game exit while the thread is running. + thread.wait_to_finish() + + Terminology: In the context of UPnP networking, "gateway" (or "internet gateway device", short IGD) refers to network devices that allow computers in the local network to access the internet ("wide area network", WAN). These gateways are often also called "routers". + Pitfalls: + - As explained above, these calls are blocking and shouldn't be run on the main thread, especially as they can block for multiple seconds at a time. Use threading! + - Networking is physical and messy. Packets get lost in transit or get filtered, addresses, free ports and assigned mappings change, and devices may leave or join the network at any time. Be mindful of this, be diligent when checking and handling errors, and handle these gracefully if you can: add clear error UI, timeouts and re-try handling. + - Port mappings may change (and be removed) at any time, and the remote/external IP address of the gateway can change likewise. You should consider re-querying the external IP and try to update/refresh the port mapping periodically (for example, every 5 minutes and on networking failures). + - Not all devices support UPnP, and some users disable UPnP support. You need to handle this (e.g. documenting and requiring the user to manually forward ports, or adding alternative methods of NAT traversal, like a relay/mirror server, or NAT hole punching, STUN/TURN, etc.). + - Consider what happens on mapping conflicts. Maybe multiple users on the same network would like to play your game at the same time, or maybe another application uses the same port. Make the port configurable, and optimally choose a port automatically (re-trying with a different port on failure). + Further reading: If you want to know more about UPnP (and the Internet Gateway Device (IGD) and Port Control Protocol (PCP) specifically), Wikipedia is a good first stop, the specification can be found at the Open Connectivity Foundation and Godot's implementation is based on the MiniUPnP client. + + + + + UPNP command or discovery was successful. + + + + + Not authorized to use the command on the . May be returned when the user disabled UPNP on their router. + + + + + No port mapping was found for the given port, protocol combination on the given . + + + + + Inconsistent parameters. + + + + + No such entry in array. May be returned if a given port, protocol combination is not found on an . + + + + + The action failed. + + + + + The does not allow wildcard values for the source IP address. + + + + + The does not allow wildcard values for the external port. + + + + + The does not allow wildcard values for the internal port. + + + + + The remote host value must be a wildcard. + + + + + The external port value must be a wildcard. + + + + + No port maps are available. May also be returned if port mapping functionality is not available. + + + + + Conflict with other mechanism. May be returned instead of if a port mapping conflicts with an existing one. + + + + + Conflict with an existing port mapping. + + + + + External and internal port values must be the same. + + + + + Only permanent leases are supported. Do not use the duration parameter when adding port mappings. + + + + + Invalid gateway. + + + + + Invalid port. + + + + + Invalid protocol. + + + + + Invalid duration. + + + + + Invalid arguments. + + + + + Invalid response. + + + + + Invalid parameter. + + + + + HTTP error. + + + + + Socket error. + + + + + Error allocating memory. + + + + + No gateway available. You may need to call first, or discovery didn't detect any valid IGDs (InternetGatewayDevices). + + + + + No devices available. You may need to call first, or discovery didn't detect any valid s. + + + + + Unknown error. + + + + + Multicast interface to use for discovery. Uses the default multicast interface if empty. + + + + + If 0, the local port to use for discovery is chosen automatically by the system. If 1, discovery will be done from the source port 1900 (same as destination port). Otherwise, the value will be used as the port. + + + + + If , IPv6 is used for discovery. + + + + + Returns the number of discovered s. + + + + + Returns the at the given . + + + + + Adds the given to the list of discovered devices. + + + + + Sets the device at from the list of discovered devices to . + + + + + Removes the device at from the list of discovered devices. + + + + + Clears the list of discovered devices. + + + + + Returns the default gateway. That is the first discovered that is also a valid IGD (InternetGatewayDevice). + + + + + Discovers local s. Clears the list of previously discovered devices. + Filters for IGD (InternetGatewayDevice) type devices by default, as those manage port forwarding. is the time to wait for responses in milliseconds. is the time-to-live; only touch this if you know what you're doing. + See for possible return values. + + + + + Returns the external address of the default gateway (see ) as string. Returns an empty string on error. + + + + + Adds a mapping to forward the external (between 1 and 65535, although recommended to use port 1024 or above) on the default gateway (see ) to the on the local machine for the given protocol (either "TCP" or "UDP", with UDP being the default). If a port mapping for the given port and protocol combination already exists on that gateway device, this method tries to overwrite it. If that is not desired, you can retrieve the gateway manually with and call on it, if any. Note that forwarding a well-known port (below 1024) with UPnP may fail depending on the device. + Depending on the gateway device, if a mapping for that port already exists, it will either be updated or it will refuse this command due to that conflict, especially if the existing mapping for that port wasn't created via UPnP or points to a different network address (or device) than this one. + If is 0 (the default), the same port number is used for both the external and the internal port (the value). + The description () is shown in some routers management UIs and can be used to point out which application added the mapping. + The mapping's lease can be limited by specifying a duration in seconds. The default of 0 means no duration, i.e. a permanent lease and notably some devices only support these permanent leases. Note that whether permanent or not, this is only a request and the gateway may still decide at any point to remove the mapping (which usually happens on a reboot of the gateway, when its external IP address changes, or on some models when it detects a port mapping has become inactive, i.e. had no traffic for multiple minutes). If not 0 (permanent), the allowed range according to spec is between 120 (2 minutes) and 86400 seconds (24 hours). + See for possible return values. + + + + + Deletes the port mapping for the given port and protocol combination on the default gateway (see ) if one exists. must be a valid port between 1 and 65535, can be either "TCP" or "UDP". May be refused for mappings pointing to addresses other than this one, for well-known ports (below 1024), or for mappings not added via UPnP. See for possible return values. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'discover_multicast_if' property. + + + + + Cached name for the 'discover_local_port' property. + + + + + Cached name for the 'discover_ipv6' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_device_count' method. + + + + + Cached name for the 'get_device' method. + + + + + Cached name for the 'add_device' method. + + + + + Cached name for the 'set_device' method. + + + + + Cached name for the 'remove_device' method. + + + + + Cached name for the 'clear_devices' method. + + + + + Cached name for the 'get_gateway' method. + + + + + Cached name for the 'discover' method. + + + + + Cached name for the 'query_external_address' method. + + + + + Cached name for the 'add_port_mapping' method. + + + + + Cached name for the 'delete_port_mapping' method. + + + + + Cached name for the 'set_discover_multicast_if' method. + + + + + Cached name for the 'get_discover_multicast_if' method. + + + + + Cached name for the 'set_discover_local_port' method. + + + + + Cached name for the 'get_discover_local_port' method. + + + + + Cached name for the 'set_discover_ipv6' method. + + + + + Cached name for the 'is_discover_ipv6' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Universal Plug and Play (UPnP) device. See 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. + + + + + OK. + + + + + HTTP error. + + + + + Empty HTTP response. + + + + + Returned response contained no URLs. + + + + + Not a valid IGD. + + + + + Disconnected. + + + + + Unknown device. + + + + + Invalid control. + + + + + Memory allocation error. + + + + + Unknown error. + + + + + URL to the device description. + + + + + Service type. + + + + + IDG control URL. + + + + + IGD service type. + + + + + Address of the local machine in the network connecting it to this . + + + + + IGD status. See . + + + + + Returns if this is a valid IGD (InternetGatewayDevice) which potentially supports port forwarding. + + + + + Returns the external IP address of this or an empty string. + + + + + Adds a port mapping to forward the given external port on this for the given protocol to the local machine. See . + + + + + Deletes the port mapping identified by the given port and protocol combination on this device. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'description_url' property. + + + + + Cached name for the 'service_type' property. + + + + + Cached name for the 'igd_control_url' property. + + + + + Cached name for the 'igd_service_type' property. + + + + + Cached name for the 'igd_our_addr' property. + + + + + Cached name for the 'igd_status' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_valid_gateway' method. + + + + + Cached name for the 'query_external_address' method. + + + + + Cached name for the 'add_port_mapping' method. + + + + + Cached name for the 'delete_port_mapping' method. + + + + + Cached name for the 'set_description_url' method. + + + + + Cached name for the 'get_description_url' method. + + + + + Cached name for the 'set_service_type' method. + + + + + Cached name for the 'get_service_type' method. + + + + + Cached name for the 'set_igd_control_url' method. + + + + + Cached name for the 'get_igd_control_url' method. + + + + + Cached name for the 'set_igd_service_type' method. + + + + + Cached name for the 'get_igd_service_type' method. + + + + + Cached name for the 'set_igd_our_addr' method. + + + + + Cached name for the 'get_igd_our_addr' method. + + + + + Cached name for the 'set_igd_status' method. + + + + + Cached name for the 'get_igd_status' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uniform set cache manager for Rendering Device based renderers. Provides a way to create a uniform set and reuse it in subsequent calls for as long as the uniform set exists. Uniform set will automatically be cleaned up when dependent objects are freed. + + + + + Creates/returns a cached uniform set based on the provided uniforms for a given shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cache' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of that can only arrange its child controls vertically. Child controls are rearranged automatically when their minimum size changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A vertical scrollbar, typically used to navigate through content that extends beyond the visible height of a control. It is a -based control and goes from top (min) to bottom (max). Note that this direction is the opposite of 's. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A vertical separator used for separating other controls that are arranged horizontally. is purely visual and normally drawn as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A vertical slider, used to adjust a value by moving a grabber along a vertical axis. It is a -based control and goes from bottom (min) to top (max). Note that this direction is the opposite of 's. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 for the main body of the vehicle, you must also add a node for each wheel. You should also add a 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 , , and properties. The position or orientation of this node shouldn't be changed directly. + Note: The origin point of your VehicleBody3D will determine the center of gravity of your vehicle. To make the vehicle more grounded, the origin point is usually kept low, moving the and upwards. + Note: This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you may have to write your own physics integration using or . + + + + + Accelerates the vehicle by applying an engine force. The vehicle is only sped up if the wheels that have set to and are in contact with a surface. The of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. + Note: The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears. + A negative value will result in the vehicle reversing. + + + + + Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking. + + + + + The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have set to will automatically be rotated. + Note: This property is edited in the inspector in degrees. In code the property is set in radians. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'engine_force' property. + + + + + Cached name for the 'brake' property. + + + + + Cached name for the 'steering' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_engine_force' method. + + + + + Cached name for the 'get_engine_force' method. + + + + + Cached name for the 'set_brake' method. + + + + + Cached name for the 'get_brake' method. + + + + + Cached name for the 'set_steering' method. + + + + + Cached name for the 'get_steering' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node used as a child of a parent to simulate the behavior of one of its wheels. This node also acts as a collider to detect if the wheel is touching a surface. + Note: This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you may need to write your own physics integration using another class. + + + + + Accelerates the wheel by applying an engine force. The wheel is only sped up if it is in contact with a surface. The of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. + Note: The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears. + A negative value will result in the wheel reversing. + + + + + Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking. + + + + + The steering angle for the wheel, in radians. Setting this to a non-zero value will result in the vehicle turning when it's moving. + + + + + If , this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with and ignored if you are using the per-wheel value instead. + + + + + If , this wheel will be turned when the car steers. This value is used in conjunction with and ignored if you are using the per-wheel value instead. + + + + + This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will resist body roll, while a value of 0.0 will be prone to rolling over. + + + + + The radius of the wheel in meters. + + + + + This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest. + + + + + This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear. + It's best to set this to 1.0 when starting out. + + + + + This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car. + + + + + The stiffness of the suspension, measured in Newtons per millimeter (N/mm), or megagrams per second squared (Mg/s²). Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car. + + + + + The maximum force the spring can resist. This value should be higher than a quarter of the of the or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number. + + + + + The damping applied to the suspension spring when being compressed, meaning when the wheel is moving up relative to the vehicle. It is measured in Newton-seconds per millimeter (N⋅s/mm), or megagrams per second (Mg/s). This value should be between 0.0 (no damping) and 1.0, but may be more. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car. + + + + + The damping applied to the suspension spring when rebounding or extending, meaning when the wheel is moving down relative to the vehicle. It is measured in Newton-seconds per millimeter (N⋅s/mm), or megagrams per second (Mg/s). This value should be between 0.0 (no damping) and 1.0, but may be more. This value should always be slightly higher than the property. For a value of 0.3, try a relaxation value of 0.5. + + + + + Returns if this wheel is in contact with a surface. + + + + + Returns the contacting body node if valid in the tree, as . At the moment, is not supported so the node will be always of type . + Returns if the wheel is not in contact with a surface, or the contact body is not a . + + + + + Returns the point of the suspension's collision in world space if the wheel is in contact. If the wheel isn't in contact with anything, returns the maximum point of the wheel's ray cast in world space, which is defined by wheel_rest_length + wheel_radius. + + + + + Returns the normal of the suspension's collision in world space if the wheel is in contact. If the wheel isn't in contact with anything, returns a vector pointing directly along the suspension axis toward the vehicle in world space. + + + + + Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road). + + + + + Returns the rotational speed of the wheel in revolutions per minute. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'engine_force' property. + + + + + Cached name for the 'brake' property. + + + + + Cached name for the 'steering' property. + + + + + Cached name for the 'use_as_traction' property. + + + + + Cached name for the 'use_as_steering' property. + + + + + Cached name for the 'wheel_roll_influence' property. + + + + + Cached name for the 'wheel_radius' property. + + + + + Cached name for the 'wheel_rest_length' property. + + + + + Cached name for the 'wheel_friction_slip' property. + + + + + Cached name for the 'suspension_travel' property. + + + + + Cached name for the 'suspension_stiffness' property. + + + + + Cached name for the 'suspension_max_force' property. + + + + + Cached name for the 'damping_compression' property. + + + + + Cached name for the 'damping_relaxation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_suspension_rest_length' method. + + + + + Cached name for the 'get_suspension_rest_length' method. + + + + + Cached name for the 'set_suspension_travel' method. + + + + + Cached name for the 'get_suspension_travel' method. + + + + + Cached name for the 'set_suspension_stiffness' method. + + + + + Cached name for the 'get_suspension_stiffness' method. + + + + + Cached name for the 'set_suspension_max_force' method. + + + + + Cached name for the 'get_suspension_max_force' method. + + + + + Cached name for the 'set_damping_compression' method. + + + + + Cached name for the 'get_damping_compression' method. + + + + + Cached name for the 'set_damping_relaxation' method. + + + + + Cached name for the 'get_damping_relaxation' method. + + + + + Cached name for the 'set_use_as_traction' method. + + + + + Cached name for the 'is_used_as_traction' method. + + + + + Cached name for the 'set_use_as_steering' method. + + + + + Cached name for the 'is_used_as_steering' method. + + + + + Cached name for the 'set_friction_slip' method. + + + + + Cached name for the 'get_friction_slip' method. + + + + + Cached name for the 'is_in_contact' method. + + + + + Cached name for the 'get_contact_body' method. + + + + + Cached name for the 'get_contact_point' method. + + + + + Cached name for the 'get_contact_normal' method. + + + + + Cached name for the 'set_roll_influence' method. + + + + + Cached name for the 'get_roll_influence' method. + + + + + Cached name for the 'get_skidinfo' method. + + + + + Cached name for the 'get_rpm' method. + + + + + Cached name for the 'set_engine_force' method. + + + + + Cached name for the 'get_engine_force' method. + + + + + Cached name for the 'set_brake' method. + + + + + Cached name for the 'get_brake' method. + + + + + Cached name for the 'set_steering' method. + + + + + Cached name for the 'get_steering' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base resource type for all video streams. Classes that derive from can all be used as resource types to play back videos in . + + + + + The video file path or URI that this resource handles. + For , this filename should be an Ogg Theora video file with the .ogv extension. + + + + + Called when the video starts playing, to initialize and return a subclass of . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'file' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_instantiate_playback' method. + + + + + Cached name for the 'set_file' method. + + + + + Cached name for the 'get_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is intended to be overridden by video decoder extensions with custom implementations of . + + + + + Returns the number of audio channels. + + + + + Returns the video duration in seconds, if known, or 0 if unknown. + + + + + Returns the audio sample rate used for mixing. + + + + + Return the current playback timestamp. Called in response to the getter. + + + + + Allocates a in which decoded video frames will be drawn. + + + + + Returns the paused status, as set by . + + + + + Returns the playback state, as determined by calls to and . + + + + + Called in response to or . Note that manual playback may also invoke multiple times before this method is called. should return once playing. + + + + + Seeks to seconds. Called in response to the setter. + + + + + Select the audio track . Called when playback starts, and in response to the setter. + + + + + Set the paused status of video playback. must return . Called in response to the setter. + + + + + Stops playback. May be called multiple times before , or in response to . should return once stopped. + + + + + Ticks video playback for seconds. Called every frame as long as both and return . + + + + + Render audio frames (of floats each) from , starting from index in the array. Returns the number of audio frames rendered, or -1 on error. + + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Render audio frames (of floats each) from , starting from index in the array. Returns the number of audio frames rendered, or -1 on error. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_channels' method. + + + + + Cached name for the '_get_length' method. + + + + + Cached name for the '_get_mix_rate' method. + + + + + Cached name for the '_get_playback_position' method. + + + + + Cached name for the '_get_texture' method. + + + + + Cached name for the '_is_paused' method. + + + + + Cached name for the '_is_playing' method. + + + + + Cached name for the '_play' method. + + + + + Cached name for the '_seek' method. + + + + + Cached name for the '_set_audio_track' method. + + + + + Cached name for the '_set_paused' method. + + + + + Cached name for the '_stop' method. + + + + + Cached name for the '_update' method. + + + + + Cached name for the 'mix_audio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control used for playback of resources. + Supported video formats are Ogg Theora (.ogv, ) and any format exposed via a GDExtension plugin. + Warning: On Web, video playback will perform poorly due to missing architecture-specific assembly optimizations. + + + + + The embedded audio track to play. + + + + + The assigned video stream. See description for supported formats. + + + + + Audio volume in dB. + + + + + Audio volume as a linear value. + + + + + If , playback starts when the scene loads. + + + + + If , the video is paused. + + + + + If , the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions. + + + + + If , the video restarts when it reaches its end. + + + + + Amount of time in milliseconds to store in buffer while playing. + + + + + The current position of the stream, in seconds. + Note: Changing this value won't have any effect as seeking is not implemented yet, except in video formats implemented by a GDExtension add-on. + + + + + Audio bus to use for sound playback. + + + + + Starts the video playback from the beginning. If the video is paused, this will not unpause the video. + + + + + Stops the video playback and sets the stream position to 0. + Note: Although the stream position will be set to 0, the first frame of the video stream won't become the current frame. + + + + + Returns if the video is playing. + Note: The video is still considered playing if paused during playback. + + + + + Returns the video stream's name, or "<No Stream>" if no video stream is assigned. + + + + + The length of the current stream, in seconds. + Note: For streams (the built-in format supported by Godot), this value will always be zero, as getting the stream length is not implemented yet. The feature may be supported by video formats implemented by a GDExtension add-on. + + + + + Returns the current frame as a . + + + + + Emitted when playback is finished. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'audio_track' property. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'volume' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'paused' property. + + + + + Cached name for the 'expand' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'buffering_msec' property. + + + + + Cached name for the 'stream_position' property. + + + + + Cached name for the 'bus' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'set_paused' method. + + + + + Cached name for the 'is_paused' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_volume' method. + + + + + Cached name for the 'get_volume' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_audio_track' method. + + + + + Cached name for the 'get_audio_track' method. + + + + + Cached name for the 'get_stream_name' method. + + + + + Cached name for the 'get_stream_length' method. + + + + + Cached name for the 'set_stream_position' method. + + + + + Cached name for the 'get_stream_position' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'has_autoplay' method. + + + + + Cached name for the 'set_expand' method. + + + + + Cached name for the 'has_expand' method. + + + + + Cached name for the 'set_buffering_msec' method. + + + + + Cached name for the 'get_buffering_msec' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'get_video_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + resource handling the Ogg Theora video format with .ogv extension. The Theora codec is decoded on the CPU. + Note: While Ogg Theora videos can also have an .ogg extension, you will have to rename the extension to .ogv to use those videos within Godot. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 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. + + + + + This quadrant will not be used. + + + + + This quadrant will only be used by one shadow map. + + + + + This quadrant will be split in 4 and used by up to 4 shadow maps. + + + + + This quadrant will be split 16 ways and used by up to 16 shadow maps. + + + + + This quadrant will be split 64 ways and used by up to 64 shadow maps. + + + + + This quadrant will be split 256 ways and used by up to 256 shadow maps. Unless the is very high, the shadows in this quadrant will be very low resolution. + + + + + This quadrant will be split 1024 ways and used by up to 1024 shadow maps. Unless the is very high, the shadows in this quadrant will be very low resolution. + + + + + Represents the size of the enum. + + + + + Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will result in undersampling while values greater than 1.0 will result in supersampling. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR2. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 will use FSR2 at native resolution as a TAA solution. + + + + + Represents the size of the enum. + + + + + Multisample antialiasing mode disabled. This is the default value, and is also the fastest setting. + + + + + Use 2× Multisample Antialiasing. This has a moderate performance cost. It helps reduce aliasing noticeably, but 4× MSAA still looks substantially better. + + + + + Use 4× Multisample Antialiasing. This has a significant performance cost, and is generally a good compromise between performance and quality. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Anisotropic filtering is disabled. + + + + + Use 2× anisotropic filtering. + + + + + Use 4× anisotropic filtering. This is the default value. + + + + + Use 8× anisotropic filtering. + + + + + Use 16× anisotropic filtering. + + + + + Represents the size of the enum. + + + + + Do not perform any antialiasing in the full screen post-process. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Amount of objects in frame. + + + + + Amount of vertices in frame. + + + + + Amount of draw calls in frame. + + + + + Represents the size of the enum. + + + + + Visible render pass (excluding shadows). + + + + + 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. + + + + + Canvas item rendering. This includes all 2D rendering. + + + + + Represents the size of the enum. + + + + + Objects are displayed normally. + + + + + Objects are displayed without light information. + + + + + Objects are displayed without textures and only with lighting information. + + + + + 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. + + + + + Objects are displayed as wireframe models. + Note: must be called before loading any meshes for wireframes to be visible when using the Compatibility renderer. + + + + + Objects are displayed without lighting information and their textures replaced by normal mapping. + + + + + Objects are displayed with only the albedo value from s. + + + + + Objects are displayed with only the lighting value from s. + + + + + Objects are displayed with only the emission color from s. + + + + + Draws the shadow atlas that stores shadows from s and s in the upper left quadrant of the . + + + + + Draws the shadow atlas that stores shadows from s in the upper left quadrant of the . + + + + + Draws the scene luminance buffer (if available) in the upper left quadrant of the . + + + + + 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 set in your . + + + + + 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 set in your . + + + + + Colors each PSSM split for the 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. + + + + + Draws the decal atlas used by s and light projector textures in the upper left quadrant of the . + + + + + Draws the cascades used to render signed distance field global illumination (SDFGI). + Does nothing if the current environment's is or SDFGI is not supported on the platform. + + + + + Draws the probes used for signed distance field global illumination (SDFGI). + Does nothing if the current environment's is or SDFGI is not supported on the platform. + + + + + Draws the buffer used for global illumination (GI). + + + + + Draws all of the objects at their highest polycount, without low level of detail (LOD). + + + + + Draws the cluster used by nodes to optimize light rendering. + + + + + Draws the cluster used by nodes to optimize light rendering. + + + + + Draws the cluster used by nodes to optimize decal rendering. + + + + + Draws the cluster used by nodes to optimize decal rendering. + + + + + Draws the buffer used for occlusion culling. + + + + + Draws vector lines over the viewport to indicate the movement of pixels between frames. + + + + + Draws the internal resolution buffer of the scene before post-processing is applied. + + + + + 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). + + + + + 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). + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + Represents the size of the enum. + + + + + 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. + + + + + 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. + + + + + Flip the texture when repeating so that the edge lines up instead of abruptly changing. + + + + + Represents the size of the enum. + + + + + The signed distance field only covers the viewport's own rectangle. + + + + + The signed distance field is expanded to cover 20% of the viewport's size around the borders. + + + + + The signed distance field is expanded to cover 50% of the viewport's size around the borders. + + + + + The signed distance field is expanded to cover 100% (double) of the viewport's size around the borders. + + + + + Represents the size of the enum. + + + + + The signed distance field is rendered at full resolution. + + + + + The signed distance field is rendered at half the resolution of this viewport. + + + + + The signed distance field is rendered at a quarter the resolution of this viewport. + + + + + Represents the size of the enum. + + + + + Variable Rate Shading is disabled. + + + + + Variable Rate Shading uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view. + + + + + Variable Rate Shading's texture is supplied by the primary . + + + + + Represents the size of the enum. + + + + + The input texture for variable rate shading will not be processed. + + + + + The input texture for variable rate shading will be processed once. + + + + + The input texture for variable rate shading will be processed each frame. + + + + + Represents the size of the enum. + + + + + Disable 3D rendering (but keep 2D rendering). + + + + + If , the viewport will use the primary XR interface to render XR output. When applicable this can result in a stereoscopic image and the resulting render being output to a headset. + + + + + If , the viewport will use a unique copy of the defined in . + + + + + The custom which can be used as 3D environment source. + + + + + The custom which can be used as 2D environment source. + + + + + If , the viewport should render its background as transparent. + + + + + If , this viewport will mark incoming input events as handled by itself. If , this is instead done by the first parent viewport that is set to handle input locally. + A will automatically set this property to for the contained inside of it. + See also and . + + + + + If , nodes will internally snap to full pixels. Their position can still be sub-pixel, but the decimals will not have effect. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. + + + + + If , vertices of nodes will snap to full pixels. Only affects the final vertex positions, not the transforms. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. + + + + + The multisample antialiasing mode for 2D/Canvas rendering. A higher number results in smoother edges at the cost of significantly worse performance. A value of or is best unless targeting very high-end systems. This has no effect on shader-induced aliasing or texture aliasing. + See also ProjectSettings.rendering/anti_aliasing/quality/msaa_2d and . + + + + + The multisample antialiasing mode for 3D rendering. A higher number results in smoother edges at the cost of significantly worse performance. A value of or is best unless targeting very high-end systems. See also bilinear scaling 3D for supersampling, which provides higher quality but is much more expensive. This has no effect on shader-induced aliasing or texture aliasing. + See also ProjectSettings.rendering/anti_aliasing/quality/msaa_3d and . + + + + + Sets the screen-space antialiasing method used. Screen-space antialiasing works by selectively blurring edges in a post-process shader. It differs from MSAA which takes multiple coverage samples while rendering objects. Screen-space AA methods are typically faster than MSAA and will smooth out specular aliasing, but tend to make scenes appear blurry. + See also ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa and . + + + + + Enables temporal antialiasing for this viewport. TAA works by jittering the camera and accumulating the images of the last rendered frames, motion vector rendering is used to account for camera and object motion. + Note: The implementation is not complete yet, some visual instances such as particles and skinned meshes may show artifacts. + See also ProjectSettings.rendering/anti_aliasing/quality/use_taa and . + + + + + If , uses a fast post-processing filter to make banding significantly less visible in 3D. 2D rendering is not affected by debanding unless the is . + In some cases, debanding may introduce a slightly noticeable dithering pattern. It's recommended to enable debanding only when actually needed since the dithering pattern will make lossless-compressed screenshots larger. + See also ProjectSettings.rendering/anti_aliasing/quality/use_debanding and . + + + + + If , nodes will be usable for occlusion culling in 3D for this viewport. For the root viewport, ProjectSettings.rendering/occlusion_culling/use_occlusion_culling must be set to instead. + Note: Enabling occlusion culling has a cost on the CPU. Only enable occlusion culling if you actually plan to use it, and think whether your scene can actually benefit from occlusion culling. 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 ( and ) compared to occlusion culling. + Note: Due to memory constraints, occlusion culling is not supported by default in Web export templates. It can be enabled by compiling custom Web export templates with module_raycast_enabled=yes. + + + + + The automatic LOD bias to use for meshes rendered within the (this is analogous to ). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to 0.0, automatic LOD is disabled. Increase to improve performance at the cost of geometry detail. + To control this property on the root viewport, set the ProjectSettings.rendering/mesh_lod/lod_change/threshold_pixels project setting. + Note: does not affect visibility ranges (also known as "manual" LOD or hierarchical LOD). + + + + + The overlay mode for test rendered geometry in debug purposes. + + + + + If , 2D rendering will use an high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an RGBA16 framebuffer, while when using the Mobile renderer it will be an RGB10_A2 framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen (if the Viewport is attached to the screen). Practically speaking, this means that the end result of the Viewport will not be clamped into the 0-1 range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. + Note: This setting will have no effect when using the Compatibility renderer, which always renders in low dynamic range for performance reasons. + + + + + Sets scaling 3D mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible. + To control this property on the root viewport, set the ProjectSettings.rendering/scaling_3d/mode project setting. + + + + + Scales the 3D render buffer based on the viewport size uses an image filter specified in ProjectSettings.rendering/scaling_3d/mode to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also ProjectSettings.rendering/anti_aliasing/quality/msaa_3d for multi-sample antialiasing, which is significantly cheaper but only smooths the edges of polygons. + When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale. + To control this property on the root viewport, set the ProjectSettings.rendering/scaling_3d/scale project setting. + + + + + Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). + Enabling temporal antialiasing () will automatically apply a -0.5 offset to this value, while enabling FXAA () will automatically apply a -0.25 offset to this value. If both TAA and FXAA are enabled at the same time, an offset of -0.75 is applied to this value. + Note: If is lower than 1.0 (exclusive), is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is log2(scaling_3d_scale) + mipmap_bias. + To control this property on the root viewport, set the ProjectSettings.rendering/textures/default_filters/texture_mipmap_bias project setting. + + + + + Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled. + The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter. + Note: In 3D, for this setting to have an effect, set to or on materials. + Note: In 2D, for this setting to have an effect, set to or on the node displaying the texture (or in ). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference. + + + + + Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference. + To control this property on the root viewport, set the ProjectSettings.rendering/scaling_3d/fsr_sharpness project setting. + + + + + The Variable Rate Shading (VRS) mode that is used for this viewport. Note, if hardware does not support VRS this property is ignored. + + + + + Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored. + + + + + Texture to use when is set to . + The texture must use a lossless compression format so that colors can be matched precisely. The following VRS densities are mapped to various colors, with brighter colors representing a lower level of shading precision: + + - 1×1 = rgb(0, 0, 0) - #000000 + - 1×2 = rgb(0, 85, 0) - #005500 + - 2×1 = rgb(85, 0, 0) - #550000 + - 2×2 = rgb(85, 85, 0) - #555500 + - 2×4 = rgb(85, 170, 0) - #55aa00 + - 4×2 = rgb(170, 85, 0) - #aa5500 + - 4×4 = rgb(170, 170, 0) - #aaaa00 + - 4×8 = rgb(170, 255, 0) - #aaff00 - Not supported on most hardware + - 8×4 = rgb(255, 170, 0) - #ffaa00 - Not supported on most hardware + - 8×8 = rgb(255, 255, 0) - #ffff00 - Not supported on most hardware + + + + + + Sets the default filter mode used by s in this Viewport. See for options. + + + + + Sets the default repeat mode used by s in this Viewport. See for options. + + + + + If , the viewport will process 2D audio streams. + + + + + If , the viewport will process 3D audio streams. + + + + + If , the objects rendered by viewport become subjects of mouse picking process. + Note: The number of simultaneously pickable objects is limited to 64 and they are selected in a non-deterministic order, which can be different in each picking process. + + + + + If , objects receive mouse picking events sorted primarily by their and secondarily by their position in the scene tree. If , the order is undetermined. + Note: This setting is disabled by default because of its potential expensive computational cost. + Note: Sorting happens after selecting the pickable objects. Because of the limitation of 64 simultaneously pickable objects, it is not guaranteed that the object with the highest receives the picking event. + + + + + If , the input_event signal will only be sent to one physics object in the mouse picking process. If you want to get the top object only, you must also enable . + If , an input_event signal will be sent to all physics objects in the mouse picking process. + This applies to 2D CanvasItem object picking only. + + + + + If , the viewport will not receive input events. + + + + + If , the GUI controls on the viewport will lay pixel perfectly. + + + + + If , sub-windows (popups and dialogs) will be embedded inside application window as control-like nodes. If , they will appear as separate windows handled by the operating system. + + + + + Controls how much of the original viewport's size should be covered by the 2D signed distance field. This SDF can be sampled in shaders and is also used for collision. Higher values allow portions of occluders located outside the viewport to still be taken into account in the generated signed distance field, at the cost of performance. If you notice particles falling through s as the occluders leave the viewport, increase this setting. + The percentage is added on each axis and on both sides. For example, with the default , the signed distance field will cover 20% of the viewport's size outside the viewport on each side (top, right, bottom, left). + + + + + The resolution scale to use for the 2D signed distance field. Higher values lead to a more precise and more stable signed distance field as the camera moves, at the cost of performance. + + + + + The shadow atlas' resolution (used for omni and spot lights). The value is rounded up to the nearest power of 2. + Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows). + + + + + Use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices. + + + + + The subdivision amount of the first quadrant on the shadow atlas. + + + + + The subdivision amount of the second quadrant on the shadow atlas. + + + + + The subdivision amount of the third quadrant on the shadow atlas. + + + + + The subdivision amount of the fourth quadrant on the shadow atlas. + + + + + The canvas transform of the viewport, useful for changing the on-screen positions of all child s. This is relative to the global canvas transform of the viewport. + + + + + The global canvas transform of the viewport. The canvas transform is relative to this. + + + + + The rendering layers in which this renders nodes. + + + + + Returns the first valid for this viewport, searching the property of itself and any Viewport ancestor. + + + + + Returns the automatically computed 2D stretch transform, taking the 's stretch settings into account. The final value is multiplied by , but only for the root viewport. If this method is called on a (e.g., in a scene tree with and ), the scale factor of the root window will not be applied. Using Transform2D.get_scale on the returned value, this can be used to compensate for scaling when zooming a node, or to scale down a to be pixel-perfect regardless of the automatically computed scale factor. + Note: Due to how pixel scaling works, the transform's X scale value may differ slightly from the Y scale, even when is set to a mode that preserves pixel aspect ratio. If is , the X value may differ significantly from Y due to differences between the original aspect ratio and the window aspect ratio. + + + + + Returns the transform from the viewport's coordinate system to the embedder's coordinate system. + + + + + Returns the transform from the Viewport's coordinates to the screen coordinates of the containing window manager window. + + + + + Returns the visible rectangle in global screen coordinates. + + + + + Returns rendering statistics of the given type. See and for options. + + + + + Returns the viewport's texture. + Note: When trying to store the current texture (e.g. in a file), it might be completely black or outdated if used too early, especially when used in e.g. . To make sure the texture you get is correct, you can await signal. + + func _ready(): + await RenderingServer.frame_post_draw + $Viewport.get_texture().get_image().save_png("user://Screenshot.png") + + Note: When is the returned texture will be an HDR image encoded in linear space. + + + + + Returns the viewport's RID from the . + + + + + Helper method which calls the set_text() method on the currently focused , provided that it is defined (e.g. if the focused Control is or ). + + + + + Triggers the given in this . This can be used to pass an between viewports, or to locally apply inputs that were sent over the network or saved to a file. + If is , the event's position is in the embedder's coordinates and will be converted to viewport coordinates. If is , the event's position is in viewport coordinates. + While this method serves a similar purpose as , it does not remap the specified based on project settings like ProjectSettings.input_devices/pointing/emulate_touch_from_mouse. + Calling this method will propagate calls to child nodes for following methods in the given order: + - + - for nodes + - + - + - + If an earlier method marks the input as handled via , any later method in this list will not be called. + If none of the methods handle the event and is , the event is used for physics object picking. + + + + + Triggers the given in this . This can be used to pass an between viewports, or to locally apply inputs that were sent over the network or saved to a file. + If is , the event's position is in the embedder's coordinates and will be converted to viewport coordinates. If is , the event's position is in viewport coordinates. + Calling this method will propagate calls to child nodes for following methods in the given order: + - + - + - + If an earlier method marks the input as handled via , any later method in this list will not be called. + If none of the methods handle the event and is , the event is used for physics object picking. + Note: This method doesn't propagate input events to embedded s or s. + + + + + Returns the mouse's position in this using the coordinate system of this . + + + + + Moves the mouse pointer to the specified position in this using the coordinate system of this . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + Force instantly updating the display based on the current mouse cursor position. This includes updating the mouse cursor shape and sending necessary , , and signals and their respective mouse_exited counterparts. + + + + + Cancels the drag operation that was previously started through or forced with . + + + + + Returns the drag data from the GUI, that was previously returned by . + + + + + Returns if a drag operation is currently ongoing and where the drop action could happen in this viewport. + Alternative to and when you prefer polling the value. + + + + + Returns if the drag operation is successful. + + + + + Removes the focus from the currently focused within this viewport. If no has the focus, does nothing. + + + + + Returns the currently focused within this viewport. If no is focused, returns . + + + + + Returns the that the mouse is currently hovering over in this viewport. If no has the cursor, returns . + Typically the leaf node or deepest level of the subtree which claims hover. This is very useful when used together with to find if the mouse is within a control tree. + + + + + Sets the number of subdivisions to use in the specified quadrant. A higher number of subdivisions allows you to have more shadows in the scene at once, but reduces the quality of the shadows. A good practice is to have quadrants with a varying number of subdivisions and to have as few subdivisions as possible. + + + + + Returns the positional shadow atlas quadrant subdivision of the specified quadrant. + + + + + Stops the input from propagating further down the . + Note: This does not affect the methods in , only the way events are propagated. + + + + + Returns whether the current has been handled. Input events are not handled until has been called during the lifetime of an . + This is usually done as part of input handling methods like , or others, as well as in corresponding signal handlers. + If is set to , this method will try finding the first parent viewport that is set to handle input locally, and return its value for instead. + + + + + Returns a list of the visible embedded s inside the viewport. + Note: s inside other viewports will not be listed. + + + + + Set/clear individual bits on the rendering layer mask. This simplifies editing this 's layers. + + + + + Returns an individual bit on the rendering layer mask. + + + + + Returns the currently active 2D audio listener. Returns if there are no active 2D audio listeners, in which case the active 2D camera will be treated as listener. + + + + + Returns the currently active 2D camera. Returns if there are no active cameras. + + + + + Returns the first valid for this viewport, searching the property of itself and any Viewport ancestor. + + + + + Returns the currently active 3D audio listener. Returns if there are no active 3D audio listeners, in which case the active 3D camera will be treated as listener. + + + + + Returns the currently active 3D camera. + + + + + Emitted when the size of the viewport is changed, whether by resizing of window, or some other means. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a Control node grabs keyboard focus. + Note: A Control node losing focus doesn't cause this signal to be emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disable_3d' property. + + + + + Cached name for the 'use_xr' property. + + + + + Cached name for the 'own_world_3d' property. + + + + + Cached name for the 'world_3d' property. + + + + + Cached name for the 'world_2d' property. + + + + + Cached name for the 'transparent_bg' property. + + + + + Cached name for the 'handle_input_locally' property. + + + + + Cached name for the 'snap_2d_transforms_to_pixel' property. + + + + + Cached name for the 'snap_2d_vertices_to_pixel' property. + + + + + Cached name for the 'msaa_2d' property. + + + + + Cached name for the 'msaa_3d' property. + + + + + Cached name for the 'screen_space_aa' property. + + + + + Cached name for the 'use_taa' property. + + + + + Cached name for the 'use_debanding' property. + + + + + Cached name for the 'use_occlusion_culling' property. + + + + + Cached name for the 'mesh_lod_threshold' property. + + + + + Cached name for the 'debug_draw' property. + + + + + Cached name for the 'use_hdr_2d' property. + + + + + Cached name for the 'scaling_3d_mode' property. + + + + + Cached name for the 'scaling_3d_scale' property. + + + + + Cached name for the 'texture_mipmap_bias' property. + + + + + Cached name for the 'anisotropic_filtering_level' property. + + + + + Cached name for the 'fsr_sharpness' property. + + + + + Cached name for the 'vrs_mode' property. + + + + + Cached name for the 'vrs_update_mode' property. + + + + + Cached name for the 'vrs_texture' property. + + + + + Cached name for the 'canvas_item_default_texture_filter' property. + + + + + Cached name for the 'canvas_item_default_texture_repeat' property. + + + + + Cached name for the 'audio_listener_enable_2d' property. + + + + + Cached name for the 'audio_listener_enable_3d' property. + + + + + Cached name for the 'physics_object_picking' property. + + + + + Cached name for the 'physics_object_picking_sort' property. + + + + + Cached name for the 'physics_object_picking_first_only' property. + + + + + Cached name for the 'gui_disable_input' property. + + + + + Cached name for the 'gui_snap_controls_to_pixels' property. + + + + + Cached name for the 'gui_embed_subwindows' property. + + + + + Cached name for the 'sdf_oversize' property. + + + + + Cached name for the 'sdf_scale' property. + + + + + Cached name for the 'positional_shadow_atlas_size' property. + + + + + Cached name for the 'positional_shadow_atlas_16_bits' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_0' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_1' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_2' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_3' property. + + + + + Cached name for the 'canvas_transform' property. + + + + + Cached name for the 'global_canvas_transform' property. + + + + + Cached name for the 'canvas_cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_world_2d' method. + + + + + Cached name for the 'get_world_2d' method. + + + + + Cached name for the 'find_world_2d' method. + + + + + Cached name for the 'set_canvas_transform' method. + + + + + Cached name for the 'get_canvas_transform' method. + + + + + Cached name for the 'set_global_canvas_transform' method. + + + + + Cached name for the 'get_global_canvas_transform' method. + + + + + Cached name for the 'get_stretch_transform' method. + + + + + Cached name for the 'get_final_transform' method. + + + + + Cached name for the 'get_screen_transform' method. + + + + + Cached name for the 'get_visible_rect' method. + + + + + Cached name for the 'set_transparent_background' method. + + + + + Cached name for the 'has_transparent_background' method. + + + + + Cached name for the 'set_use_hdr_2d' method. + + + + + Cached name for the 'is_using_hdr_2d' method. + + + + + Cached name for the 'set_msaa_2d' method. + + + + + Cached name for the 'get_msaa_2d' method. + + + + + Cached name for the 'set_msaa_3d' method. + + + + + Cached name for the 'get_msaa_3d' method. + + + + + Cached name for the 'set_screen_space_aa' method. + + + + + Cached name for the 'get_screen_space_aa' method. + + + + + Cached name for the 'set_use_taa' method. + + + + + Cached name for the 'is_using_taa' method. + + + + + Cached name for the 'set_use_debanding' method. + + + + + Cached name for the 'is_using_debanding' method. + + + + + Cached name for the 'set_use_occlusion_culling' method. + + + + + Cached name for the 'is_using_occlusion_culling' method. + + + + + Cached name for the 'set_debug_draw' method. + + + + + Cached name for the 'get_debug_draw' method. + + + + + Cached name for the 'get_render_info' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_physics_object_picking' method. + + + + + Cached name for the 'get_physics_object_picking' method. + + + + + Cached name for the 'set_physics_object_picking_sort' method. + + + + + Cached name for the 'get_physics_object_picking_sort' method. + + + + + Cached name for the 'set_physics_object_picking_first_only' method. + + + + + Cached name for the 'get_physics_object_picking_first_only' method. + + + + + Cached name for the 'get_viewport_rid' method. + + + + + Cached name for the 'push_text_input' method. + + + + + Cached name for the 'push_input' method. + + + + + Cached name for the 'push_unhandled_input' method. + + + + + Cached name for the 'get_mouse_position' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'update_mouse_cursor_state' method. + + + + + Cached name for the 'gui_cancel_drag' method. + + + + + Cached name for the 'gui_get_drag_data' method. + + + + + Cached name for the 'gui_is_dragging' method. + + + + + Cached name for the 'gui_is_drag_successful' method. + + + + + Cached name for the 'gui_release_focus' method. + + + + + Cached name for the 'gui_get_focus_owner' method. + + + + + Cached name for the 'gui_get_hovered_control' method. + + + + + Cached name for the 'set_disable_input' method. + + + + + Cached name for the 'is_input_disabled' method. + + + + + Cached name for the 'set_positional_shadow_atlas_size' method. + + + + + Cached name for the 'get_positional_shadow_atlas_size' method. + + + + + Cached name for the 'set_positional_shadow_atlas_16_bits' method. + + + + + Cached name for the 'get_positional_shadow_atlas_16_bits' method. + + + + + Cached name for the 'set_snap_controls_to_pixels' method. + + + + + Cached name for the 'is_snap_controls_to_pixels_enabled' method. + + + + + Cached name for the 'set_snap_2d_transforms_to_pixel' method. + + + + + Cached name for the 'is_snap_2d_transforms_to_pixel_enabled' method. + + + + + Cached name for the 'set_snap_2d_vertices_to_pixel' method. + + + + + Cached name for the 'is_snap_2d_vertices_to_pixel_enabled' method. + + + + + Cached name for the 'set_positional_shadow_atlas_quadrant_subdiv' method. + + + + + Cached name for the 'get_positional_shadow_atlas_quadrant_subdiv' method. + + + + + Cached name for the 'set_input_as_handled' method. + + + + + Cached name for the 'is_input_handled' method. + + + + + Cached name for the 'set_handle_input_locally' method. + + + + + Cached name for the 'is_handling_input_locally' method. + + + + + Cached name for the 'set_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'get_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'set_embedding_subwindows' method. + + + + + Cached name for the 'is_embedding_subwindows' method. + + + + + Cached name for the 'get_embedded_subwindows' method. + + + + + Cached name for the 'set_canvas_cull_mask' method. + + + + + Cached name for the 'get_canvas_cull_mask' method. + + + + + Cached name for the 'set_canvas_cull_mask_bit' method. + + + + + Cached name for the 'get_canvas_cull_mask_bit' method. + + + + + Cached name for the 'set_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'get_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'set_sdf_oversize' method. + + + + + Cached name for the 'get_sdf_oversize' method. + + + + + Cached name for the 'set_sdf_scale' method. + + + + + Cached name for the 'get_sdf_scale' method. + + + + + Cached name for the 'set_mesh_lod_threshold' method. + + + + + Cached name for the 'get_mesh_lod_threshold' method. + + + + + Cached name for the 'set_as_audio_listener_2d' method. + + + + + Cached name for the 'is_audio_listener_2d' method. + + + + + Cached name for the 'get_audio_listener_2d' method. + + + + + Cached name for the 'get_camera_2d' method. + + + + + Cached name for the 'set_world_3d' method. + + + + + Cached name for the 'get_world_3d' method. + + + + + Cached name for the 'find_world_3d' method. + + + + + Cached name for the 'set_use_own_world_3d' method. + + + + + Cached name for the 'is_using_own_world_3d' method. + + + + + Cached name for the 'get_audio_listener_3d' method. + + + + + Cached name for the 'get_camera_3d' method. + + + + + Cached name for the 'set_as_audio_listener_3d' method. + + + + + Cached name for the 'is_audio_listener_3d' method. + + + + + Cached name for the 'set_disable_3d' method. + + + + + Cached name for the 'is_3d_disabled' method. + + + + + Cached name for the 'set_use_xr' method. + + + + + Cached name for the 'is_using_xr' method. + + + + + Cached name for the 'set_scaling_3d_mode' method. + + + + + Cached name for the 'get_scaling_3d_mode' method. + + + + + Cached name for the 'set_scaling_3d_scale' method. + + + + + Cached name for the 'get_scaling_3d_scale' method. + + + + + Cached name for the 'set_fsr_sharpness' method. + + + + + Cached name for the 'get_fsr_sharpness' method. + + + + + Cached name for the 'set_texture_mipmap_bias' method. + + + + + Cached name for the 'get_texture_mipmap_bias' method. + + + + + Cached name for the 'set_anisotropic_filtering_level' method. + + + + + Cached name for the 'get_anisotropic_filtering_level' method. + + + + + Cached name for the 'set_vrs_mode' method. + + + + + Cached name for the 'get_vrs_mode' method. + + + + + Cached name for the 'set_vrs_update_mode' method. + + + + + Cached name for the 'get_vrs_update_mode' method. + + + + + Cached name for the 'set_vrs_texture' method. + + + + + Cached name for the 'get_vrs_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'size_changed' signal. + + + + + Cached name for the 'gui_focus_changed' signal. + + + + + A provides the content of a as a dynamic . This can be used to combine the rendering of , and nodes. For example, you can use this texture to display a 3D scene inside a , or a 2D overlay in a . + To get a in code, use the method on the target viewport. + Note: A is always local to its scene (see ). If the scene root is not ready, it may return incorrect data (see ). + Note: Instantiating scenes containing a high-resolution may cause noticeable stutter. + Note: When using a with set to , the returned texture will be an HDR image encoded in linear space. This may look darker than normal when displayed directly on screen. To convert to gamma space, you can do the following: + + img.convert(Image.FORMAT_RGBA8) + imb.linear_to_srgb() + + Note: Some nodes such as , , and do not support using directly. To use texture data from a in these nodes, you need to create an by calling on the and passing the result to . This conversion is a slow operation, so it should not be performed every frame. + + + + + The path to the node to display. This is relative to the local scene root (see ), not to the nodes that use this texture. + Note: In the editor, this path is automatically updated when the target viewport or one of its ancestors is renamed or moved. At runtime, this path may not automatically update if the scene root cannot be found. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'viewport_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_viewport_path_in_scene' method. + + + + + Cached name for the 'get_viewport_path_in_scene' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains a rectangular region of 2D space and a target node. The target node will be automatically enabled (via its 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 if you only want to be notified when the region is visible on screen. + Note: uses the render culling code to determine whether it's visible on screen, so it won't function unless is set to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Determines how the target node is enabled. Corresponds to . When the node is disabled, it always uses . + + + + + The path to the target node, relative to the . The target node is cached; it's only assigned when setting this property (if the is inside the scene tree) and every time the enters the scene tree. If the path is empty, no node will be affected. If the path is invalid, an error is also generated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_mode' property. + + + + + Cached name for the 'enable_node_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_mode' method. + + + + + Cached name for the 'get_enable_mode' method. + + + + + Cached name for the 'set_enable_node_path' method. + + + + + Cached name for the 'get_enable_node_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains a box-shaped region of 3D space and a target node. The target node will be automatically enabled (via its 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 if you only want to be notified when the region is visible on screen. + Note: 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 is set to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Determines how the target node is enabled. Corresponds to . When the node is disabled, it always uses . + + + + + The path to the target node, relative to the . The target node is cached; it's only assigned when setting this property (if the is inside the scene tree) and every time the enters the scene tree. If the path is empty, no node will be affected. If the path is invalid, an error is also generated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_mode' property. + + + + + Cached name for the 'enable_node_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_mode' method. + + + + + Cached name for the 'get_enable_mode' method. + + + + + Cached name for the 'set_enable_node_path' method. + + + + + Cached name for the 'get_enable_node_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, and likewise it will emit a 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 . + Note: uses the render culling code to determine whether it's visible on screen, so it won't function unless is set to . + + + + + The VisibleOnScreenNotifier2D's bounding rectangle. + + + + + If , the bounding rectangle is on the screen. + Note: It takes one frame for the 's visibility to be determined once added to the scene tree, so this method will always return right after it is instantiated, before the draw pass. + + + + + Emitted when the VisibleOnScreenNotifier2D enters the screen. + + + + + Emitted when the VisibleOnScreenNotifier2D exits the screen. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'rect' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rect' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached name for the 'is_on_screen' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'screen_entered' signal. + + + + + Cached name for the 'screen_exited' signal. + + + + + represents a box-shaped region of 3D space. When any part of this region becomes visible on screen or in a 's view, it will emit a signal, and likewise it will emit a 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 . + Note: 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 is set to . + + + + + The 's bounding box. + + + + + Returns if the bounding box is on the screen. + Note: It takes one frame for the 's visibility to be assessed once added to the scene tree, so this method will always return right after it is instantiated. + + + + + Emitted when the enters the screen. + + + + + Emitted when the exits the screen. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'aabb' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_aabb' method. + + + + + Cached name for the 'is_on_screen' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'screen_entered' signal. + + + + + Cached name for the 'screen_exited' signal. + + + + + The is used to connect a resource to a visual representation. All visual 3D nodes inherit from the . In general, you should not access the properties directly as they are accessed and managed by the nodes that inherit from . is the node representation of the instance. + + + + + The render layer(s) this is drawn on. + This object will only be visible for s whose cull mask includes any of the render layers this is set to. + For s, this can be used to control which s are affected by a specific light. For , this can be used to control which particles are effected by a specific attractor. For s, this can be used to control which s are affected by a specific decal. + To adjust more easily using a script, use and . + Note: , SDFGI and will always take all layers into account to determine what contributes to global illumination. If this is an issue, set to for meshes and to for lights to exclude them from global illumination. + + + + + The amount by which the depth of this will be adjusted when sorting by depth. Uses the same units as the engine (which are typically meters). Adjusting it to a higher value will make the reliably draw on top of other s that are otherwise positioned at the same spot. To ensure it always draws on top of other objects around it (not positioned at the same spot), set the value to be greater than the distance between this and the other nearby s. + + + + + If , the object is sorted based on the center. The object will be sorted based on the global position otherwise. + The center based sorting is generally more accurate for 3D models. The position based sorting instead allows to better control the drawing order when working with and . + + + + + Sets the resource that is instantiated by this , which changes how the engine handles the under the hood. Equivalent to . + + + + + Returns the RID of the resource associated with this . For example, if the Node is a , this will return the RID of the associated . + + + + + Returns the RID of this instance. This RID is the same as the RID returned by . This RID is needed if you want to call functions directly on this . + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 20. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 20. + + + + + Returns the (also known as the bounding box) for this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'layers' property. + + + + + Cached name for the 'sorting_offset' property. + + + + + Cached name for the 'sorting_use_aabb_center' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_aabb' method. + + + + + Cached name for the 'set_base' method. + + + + + Cached name for the 'get_base' method. + + + + + Cached name for the 'get_instance' method. + + + + + Cached name for the 'set_layer_mask' method. + + + + + Cached name for the 'get_layer_mask' method. + + + + + Cached name for the 'set_layer_mask_value' method. + + + + + Cached name for the 'get_layer_mask_value' method. + + + + + Cached name for the 'set_sorting_offset' method. + + + + + Cached name for the 'get_sorting_offset' method. + + + + + Cached name for the 'set_sorting_use_aabb_center' method. + + + + + Cached name for the 'is_sorting_use_aabb_center' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class provides a graph-like visual editor for creating a . Although s do not require coding, they share the same logic with script shaders. They use 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. + + + + + Indicates an invalid node. + + + + + Indicates an output node of . + + + + + A vertex shader, operating on vertices. + + + + + A fragment shader, operating on fragments (pixels). + + + + + A shader for light calculations. + + + + + A function for the "start" stage of particle shader. + + + + + A function for the "process" stage of particle shader. + + + + + A function for the "collide" stage (particle collision handler) of particle shader. + + + + + A function for the "start" stage of particle shader, with customized output. + + + + + A function for the "process" stage of particle shader, with customized output. + + + + + A shader for 3D environment's sky. + + + + + A compute shader that runs for each froxel of the volumetric fog map. + + + + + Represents the size of the enum. + + + + + Varying is passed from Vertex function to Fragment and Light functions. + + + + + Varying is passed from Fragment function to Light function. + + + + + Represents the size of the enum. + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type unsigned . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Represents the size of the enum. + + + + + The offset vector of the whole graph. + + + + + Sets the mode of this shader. + + + + + Adds the specified to the shader. + + + + + Returns the shader node instance with specified and . + + + + + Sets the position of the specified node. + + + + + Returns the position of the specified node within the shader graph. + + + + + Returns the list of all nodes in the shader with the specified type. + + + + + Returns next valid node ID that can be added to the shader graph. + + + + + Removes the specified node from the shader. + + + + + Replaces the specified node with a node of new class type. + + + + + Returns if the specified node and port connection exist. + + + + + Returns if the specified nodes and ports can be connected together. + + + + + Connects the specified nodes and ports. + + + + + Connects the specified nodes and ports. + + + + + Connects the specified nodes and ports, even if they can't be connected. Such connection is invalid and will not function properly. + + + + + Returns the list of connected nodes with the specified type. + + + + + Attaches the given node to the given frame. + + + + + Detaches the given node from the frame it is attached to. + + + + + Adds a new varying value node to the shader. + + + + + Removes a varying value node with the given . Prints an error if a node with this name is not found. + + + + + Returns if the shader has a varying with the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'graph_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'set_node_position' method. + + + + + Cached name for the 'get_node_position' method. + + + + + Cached name for the 'get_node_list' method. + + + + + Cached name for the 'get_valid_node_id' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'replace_node' method. + + + + + Cached name for the 'is_node_connection' method. + + + + + Cached name for the 'can_connect_nodes' method. + + + + + Cached name for the 'connect_nodes' method. + + + + + Cached name for the 'disconnect_nodes' method. + + + + + Cached name for the 'connect_nodes_forced' method. + + + + + Cached name for the 'get_node_connections' method. + + + + + Cached name for the 'set_graph_offset' method. + + + + + Cached name for the 'get_graph_offset' method. + + + + + Cached name for the 'attach_node_to_frame' method. + + + + + Cached name for the 'detach_node_from_frame' method. + + + + + Cached name for the 'add_varying' method. + + + + + Cached name for the 'remove_varying' method. + + + + + Cached name for the 'has_varying' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Floating-point scalar. Translated to float type in shader code. + + + + + Integer scalar. Translated to int type in shader code. + + + + + Unsigned integer scalar. Translated to uint type in shader code. + + + + + 2D vector of floating-point values. Translated to vec2 type in shader code. + + + + + 3D vector of floating-point values. Translated to vec3 type in shader code. + + + + + 4D vector of floating-point values. Translated to vec4 type in shader code. + + + + + Boolean type. Translated to bool type in shader code. + + + + + Transform type. Translated to mat4 type in shader code. + + + + + Sampler type. Translated to reference of sampler uniform in shader code. Can only be used for input ports in non-uniform nodes. + + + + + Represents the size of the enum. + + + + + Sets the output port index which will be showed for preview. If set to -1 no port will be open for preview. + + + + + Represents the index of the frame this node is linked to. If set to -1 the node is not linked to any frame. + + + + + Returns 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. + + + + + Sets the default for the selected input . + + + + + Returns the default value of the input . + + + + + Removes the default value of the input . + + + + + Clears the default input ports value. + + + + + Sets the default input ports values using an of the form [index0, value0, index1, value1, ...]. For example: [0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)]. + + + + + Returns an containing default values for all of the input ports of the node in the form [index0, value0, index1, value1, ...]. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'output_port_for_preview' property. + + + + + Cached name for the 'default_input_values' property. + + + + + Cached name for the 'expanded_output_ports' property. + + + + + Cached name for the 'linked_parent_graph_frame' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_default_input_port' method. + + + + + Cached name for the 'set_output_port_for_preview' method. + + + + + Cached name for the 'get_output_port_for_preview' method. + + + + + Cached name for the '_set_output_ports_expanded' method. + + + + + Cached name for the '_get_output_ports_expanded' method. + + + + + Cached name for the 'set_input_port_default_value' method. + + + + + Cached name for the 'get_input_port_default_value' method. + + + + + Cached name for the 'remove_input_port_default_value' method. + + + + + Cached name for the 'clear_default_input_values' method. + + + + + Cached name for the 'set_default_input_values' method. + + + + + Cached name for the 'get_default_input_values' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The output port of this node needs to be connected to Model View Matrix port of . + + + + + Billboarding is disabled and the node does nothing. + + + + + A standard billboarding algorithm is enabled. + + + + + A billboarding algorithm to rotate around Y-axis is enabled. + + + + + A billboarding algorithm designed to use on particles is enabled. + + + + + Represents the size of the enum. + + + + + Controls how the object faces the camera. See . + + + + + If , the shader will keep the scale set for the mesh. Otherwise, the scale is lost when billboarding. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'billboard_type' property. + + + + + Cached name for the 'keep_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_billboard_type' method. + + + + + Cached name for the 'get_billboard_type' method. + + + + + Cached name for the 'set_keep_scale_enabled' method. + + + + + Cached name for the 'is_keep_scale_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Has only one output port and no inputs. + Translated to bool in the shader language. + + + + + A boolean constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform bool in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Constrains a value to lie between min and max values. + + + + + A floating-point scalar. + + + + + An integer scalar. + + + + + An unsigned integer scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Has two output ports representing RGB and alpha channels of . + Translated to vec3 rgb and float alpha in the shader language. + + + + + A constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept a to the input port and transform it according to . + + + + + Converts the color to grayscale using the following formula: + + 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); + + + + + + Converts HSV vector to RGB equivalent. + + + + + Converts RGB vector to HSV equivalent. + + + + + Applies sepia tone effect using the following formula: + + 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); + + + + + + Converts color from linear color space to sRGB color space using the following formula: + + vec3 c = clamp(c, vec3(0.0), vec3(1.0)); + const vec3 a = vec3(0.055f); + return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c.rgb, lessThan(c.rgb, vec3(0.0031308f))); + + The Compatibility renderer uses a simpler formula: + + vec3 c = input; + return max(vec3(1.055) * pow(c, vec3(0.416666667)) - vec3(0.055), vec3(0.0)); + + + + + + Converts color from sRGB color space to linear color space using the following formula: + + vec3 c = input; + return mix(pow((c.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), c.rgb * (1.0 / 12.92), lessThan(c.rgb, vec3(0.04045))); + + The Compatibility renderer uses a simpler formula: + + vec3 c = input; + return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878); + + + + + + Represents the size of the enum. + + + + + A function to be applied to the input color. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two color inputs. + + + + + Produce a screen effect with the following formula: + + result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b); + + + + + + Produce a difference effect with the following formula: + + result = abs(a - b); + + + + + + Produce a darken effect with the following formula: + + result = min(a, b); + + + + + + Produce a lighten effect with the following formula: + + result = max(a, b); + + + + + + Produce an overlay effect with the following formula: + + 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); + } + } + + + + + + Produce a dodge effect with the following formula: + + result = a / (vec3(1.0) - b); + + + + + + Produce a burn effect with the following formula: + + result = vec3(1.0) - (vec3(1.0) - a) / b; + + + + + + Produce a soft light effect with the following formula: + + 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)); + } + } + + + + + + Produce a hard light effect with the following formula: + + 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)); + } + } + + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec4 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node was replaced by and only exists to preserve compatibility. In the editor it behaves exactly like . + + + + + This property only exists to preserve data authored in earlier versions of Godot. It has currently no function. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'description' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_description' method. + + + + + Cached name for the 'get_description' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Compares a and b of by . Returns a boolean scalar. Translates to if instruction in shader code. + + + + + A floating-point scalar. + + + + + An integer scalar. + + + + + An unsigned integer scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + A boolean type. + + + + + A transform (mat4) type. + + + + + Represents the size of the enum. + + + + + Comparison for equality (a == b). + + + + + Comparison for inequality (a != b). + + + + + Comparison for greater than (a > b). Cannot be used if set to or . + + + + + Comparison for greater than or equal (a >= b). Cannot be used if set to or . + + + + + Comparison for less than (a < b). Cannot be used if set to or . + + + + + Comparison for less than or equal (a <= b). Cannot be used if set to or . + + + + + Represents the size of the enum. + + + + + The result will be if all components in the vector satisfy the comparison condition. + + + + + The result will be if any component in the vector satisfies the comparison condition. + + + + + Represents the size of the enum. + + + + + The type to be used in the comparison. See for options. + + + + + A comparison function. See for options. + + + + + Extra condition which is applied if is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'type' property. + + + + + Cached name for the 'function' property. + + + + + Cached name for the 'condition' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_comparison_type' method. + + + + + Cached name for the 'get_comparison_type' method. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached name for the 'set_condition' method. + + + + + Cached name for the 'get_condition' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is an abstract class. See the derived types for descriptions of the possible values. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to texture(cubemap, vec3) in the shader language. Returns a color vector and alpha channel as scalar. + + + + + Use the set via . If this is set to , the samplerCube port is ignored. + + + + + Use the sampler reference passed via the samplerCube port. If this is set to , the texture is ignored. + + + + + Represents the size of the enum. + + + + + No hints are added to the uniform declaration. + + + + + Adds source_color as hint to the uniform declaration for proper sRGB to linear conversion. + + + + + Adds hint_normal as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. + + + + + Represents the size of the enum. + + + + + Defines which source should be used for the sampling. See for options. + + + + + The texture to sample when using as . + + + + + Defines the type of data provided by the source texture. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source' property. + + + + + Cached name for the 'cube_map' property. + + + + + Cached name for the 'texture_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached name for the 'set_cube_map' method. + + + + + Cached name for the 'get_cube_map' method. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform samplerCube in the shader language. The output value can be used as port for . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Comes with a built-in editor for texture's curves. + + + + + The source texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Comes with a built-in editor for texture's curves. + + + + + The source texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By inheriting this class you can create a custom script addon which will be automatically added to the Visual Shader Editor. The 's behavior is defined by overriding the provided virtual methods. + In order for the node to be registered as an editor addon, you must use the @tool annotation and provide a class_name for your custom script. For example: + + @tool + extends VisualShaderNodeCustom + class_name VisualShaderNodeNoise + + + + + + 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 "MyGame/MyFunctions/Noise". + Defining this method is optional. If not overridden, the node will be filed under the "Addons" category. + + + + + 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 """ multiline string construct can be used for convenience). + The and arrays contain the string names of the various input and output variables, as defined by _get_input_* and _get_output_* virtual methods in this class. + The output ports can be assigned values in the shader code. For example, return output_vars[0] + " = " + input_vars[0] + ";". + You can customize the generated code based on the shader (see ) and/or (see ). + Defining this method is required. + + + + + 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 optional. If not overridden, the connection will be created to the first valid port. + + + + + Override this method to define the description of the associated custom node in the Visual Shader Editor's members dialog. + Defining this method is optional. + + + + + 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 """ 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 (see ) and/or (see ). + Defining this method is optional. + + + + + 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 """ 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 (see ). + Defining this method is optional. + + + + + Override this method to define the number of input ports of the associated custom node. + Defining this method is required. If not overridden, the node has no input ports. + + + + + Override this method to define the default value for the specified input port. Prefer use this over . + Defining this method is required. If not overridden, the node has no default values for their input ports. + + + + + 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 input_vars array in . + Defining this method is optional, but recommended. If not overridden, input ports are named as "in" + str(port). + + + + + Override this method to define the returned type of each input port of the associated custom node (see for possible types). + Defining this method is optional, but recommended. If not overridden, input ports will return the type. + + + + + 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 optional, but recommended. If not overridden, the node will be named as "Unnamed". + + + + + Override this method to define the number of output ports of the associated custom node. + Defining this method is required. If not overridden, the node has no output ports. + + + + + 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 output_vars array in . + Defining this method is optional, but recommended. If not overridden, output ports are named as "out" + str(port). + + + + + Override this method to define the returned type of each output port of the associated custom node (see for possible types). + Defining this method is optional, but recommended. If not overridden, output ports will return the type. + + + + + Override this method to define the number of the properties. + Defining this method is optional. + + + + + Override this method to define the default index of the property of the associated custom node. + Defining this method is optional. + + + + + Override this method to define the names of the property of the associated custom node. + Defining this method is optional. + + + + + Override this method to define the options inside the drop-down list property of the associated custom node. + Defining this method is optional. + + + + + 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 optional. If not overridden, no return icon is shown. + + + + + Override this method to prevent the node to be visible in the member dialog for the certain (see ) and/or (see ). + Defining this method is optional. If not overridden, it's . + + + + + Override this method to enable high-end mark in the Visual Shader Editor's members dialog. + Defining this method is optional. If not overridden, it's . + + + + + Returns the selected index of the drop-down list option within a graph. You may use this function to define the specific behavior in the or . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'initialized' property. + + + + + Cached name for the 'properties' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_category' method. + + + + + Cached name for the '_get_code' method. + + + + + Cached name for the '_get_default_input_port' method. + + + + + Cached name for the '_get_description' method. + + + + + Cached name for the '_get_func_code' method. + + + + + Cached name for the '_get_global_code' method. + + + + + Cached name for the '_get_input_port_count' method. + + + + + Cached name for the '_get_input_port_default_value' method. + + + + + Cached name for the '_get_input_port_name' method. + + + + + Cached name for the '_get_input_port_type' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_output_port_count' method. + + + + + Cached name for the '_get_output_port_name' method. + + + + + Cached name for the '_get_output_port_type' method. + + + + + Cached name for the '_get_property_count' method. + + + + + Cached name for the '_get_property_default_index' method. + + + + + Cached name for the '_get_property_name' method. + + + + + Cached name for the '_get_property_options' method. + + + + + Cached name for the '_get_return_icon_type' method. + + + + + Cached name for the '_is_available' method. + + + + + Cached name for the '_is_highend' method. + + + + + Cached name for the '_set_initialized' method. + + + + + Cached name for the '_is_initialized' method. + + + + + Cached name for the '_set_properties' method. + + + + + Cached name for the '_get_properties' method. + + + + + Cached name for the 'get_option_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node is only available in Fragment and Light visual shaders. + + + + + A floating-point scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + Sum of absolute derivative in x and y. + + + + + Derivative in x using local differencing. + + + + + Derivative in y using local differencing. + + + + + Represents the size of the enum. + + + + + 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 dFdx() or dFdy() in text shaders. + + + + + 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 , but may not be suitable when more precision is needed. This is equivalent to using dFdxCoarse() or dFdyCoarse() in text shaders. + + + + + The derivative will be calculated using the current fragment and its immediate neighbors. This tends to be slower than using , but may be necessary when more precision is needed. This is equivalent to using dFdxFine() or dFdyFine() in text shaders. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. See for options. + + + + + A derivative function type. See for options. + + + + + Sets the level of precision to use for the derivative function. See for options. When using the Compatibility renderer, this setting has no effect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached name for the 'function' property. + + + + + Cached name for the 'precision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached name for the 'set_precision' method. + + + + + Cached name for the 'get_precision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to determinant(x) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The distance fade effect fades out each pixel based on its distance to another object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to dot(a, b) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Custom Godot Shading Language expression, with a custom number of input and output ports. + The provided code is directly injected into the graph's matching shader function (vertex, fragment, or light), so it cannot be used to declare functions, varyings, uniforms, or global constants. See for such global definitions. + + + + + An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function (vertex, fragment, or light), and thus cannot be used to declare functions, varyings, uniforms, or global constants. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'expression' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_expression' method. + + + + + Cached name for the 'get_expression' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to faceforward(N, I, Nref) in the shader language. The function has three vector parameters: N, the vector to orient, I, the incident vector, and Nref, the reference vector. If the dot product of I and Nref is smaller than zero the return value is N. Otherwise, -N is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to float in the shader language. + + + + + A floating-point constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept a floating-point scalar (x) to the input port and transform it according to . + + + + + Returns the sine of the parameter. Translates to sin(x) in the Godot Shader Language. + + + + + Returns the cosine of the parameter. Translates to cos(x) in the Godot Shader Language. + + + + + Returns the tangent of the parameter. Translates to tan(x) in the Godot Shader Language. + + + + + Returns the arc-sine of the parameter. Translates to asin(x) in the Godot Shader Language. + + + + + Returns the arc-cosine of the parameter. Translates to acos(x) in the Godot Shader Language. + + + + + Returns the arc-tangent of the parameter. Translates to atan(x) in the Godot Shader Language. + + + + + Returns the hyperbolic sine of the parameter. Translates to sinh(x) in the Godot Shader Language. + + + + + Returns the hyperbolic cosine of the parameter. Translates to cosh(x) in the Godot Shader Language. + + + + + Returns the hyperbolic tangent of the parameter. Translates to tanh(x) in the Godot Shader Language. + + + + + Returns the natural logarithm of the parameter. Translates to log(x) in the Godot Shader Language. + + + + + Returns the natural exponentiation of the parameter. Translates to exp(x) in the Godot Shader Language. + + + + + Returns the square root of the parameter. Translates to sqrt(x) in the Godot Shader Language. + + + + + Returns the absolute value of the parameter. Translates to abs(x) in the Godot Shader Language. + + + + + Extracts the sign of the parameter. Translates to sign(x) in the Godot Shader Language. + + + + + Finds the nearest integer less than or equal to the parameter. Translates to floor(x) in the Godot Shader Language. + + + + + Finds the nearest integer to the parameter. Translates to round(x) in the Godot Shader Language. + + + + + Finds the nearest integer that is greater than or equal to the parameter. Translates to ceil(x) in the Godot Shader Language. + + + + + Computes the fractional part of the argument. Translates to fract(x) in the Godot Shader Language. + + + + + Clamps the value between 0.0 and 1.0 using min(max(x, 0.0), 1.0). + + + + + Negates the x using -(x). + + + + + Returns the arc-hyperbolic-cosine of the parameter. Translates to acosh(x) in the Godot Shader Language. + + + + + Returns the arc-hyperbolic-sine of the parameter. Translates to asinh(x) in the Godot Shader Language. + + + + + Returns the arc-hyperbolic-tangent of the parameter. Translates to atanh(x) in the Godot Shader Language. + + + + + Convert a quantity in radians to degrees. Translates to degrees(x) in the Godot Shader Language. + + + + + Returns 2 raised by the power of the parameter. Translates to exp2(x) in the Godot Shader Language. + + + + + Returns the inverse of the square root of the parameter. Translates to inversesqrt(x) in the Godot Shader Language. + + + + + Returns the base 2 logarithm of the parameter. Translates to log2(x) in the Godot Shader Language. + + + + + Convert a quantity in degrees to radians. Translates to radians(x) in the Godot Shader Language. + + + + + Finds reciprocal value of dividing 1 by x (i.e. 1 / x). + + + + + Finds the nearest even integer to the parameter. Translates to roundEven(x) in the Godot Shader Language. + + + + + Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. Translates to trunc(x) in the Godot Shader Language. + + + + + Subtracts scalar x from 1 (i.e. 1 - x). + + + + + Represents the size of the enum. + + + + + A function to be applied to the scalar. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two floating-point inputs: a and b. + + + + + Sums two numbers using a + b. + + + + + Subtracts two numbers using a - b. + + + + + Multiplies two numbers using a * b. + + + + + Divides two numbers using a / b. + + + + + Calculates the remainder of two numbers. Translates to mod(a, b) in the Godot Shader Language. + + + + + Raises the a to the power of b. Translates to pow(a, b) in the Godot Shader Language. + + + + + Returns the greater of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the lesser of two numbers. Translates to min(a, b) in the Godot Shader Language. + + + + + Returns the arc-tangent of the parameters. Translates to atan(a, b) in the Godot Shader Language. + + + + + Generates a step function by comparing b(x) to a(edge). Returns 0.0 if x is smaller than edge and otherwise 1.0. Translates to step(a, b) in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform float in the shader language. + + + + + No hint used. + + + + + A range hint for scalar value, which limits possible input values between and . Translated to hint_range(min, max) in shader code. + + + + + A range hint for scalar value with step, which limits possible input values between and , with a step (increment) of ). Translated to hint_range(min, max, step) in shader code. + + + + + Represents the size of the enum. + + + + + A hint applied to the uniform, which controls the values it can take when set through the Inspector. + + + + + Maximum value for range hints. Used if is set to or . + + + + + Minimum value for range hints. Used if is set to or . + + + + + Step (increment) value for the range hint with step. Used if is set to . + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hint' property. + + + + + Cached name for the 'min' property. + + + + + Cached name for the 'max' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hint' method. + + + + + Cached name for the 'get_hint' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A rectangular frame that can be used to group visual shader nodes together to improve organization. + Nodes attached to the frame will move with it when it is dragged and it can automatically resize to enclose all attached nodes. + Its title, description and color can be customized. + + + + + The title of the node. + + + + + If , the frame will be tinted with the color specified in . + + + + + The color of the frame when is . + + + + + If , the frame will automatically resize to enclose all attached nodes. + + + + + The list of nodes attached to the frame. + + + + + Adds a node to the list of nodes attached to the frame. Should not be called directly, use the method instead. + + + + + Removes a node from the list of nodes attached to the frame. Should not be called directly, use the method instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'tint_color_enabled' property. + + + + + Cached name for the 'tint_color' property. + + + + + Cached name for the 'autoshrink' property. + + + + + Cached name for the 'attached_nodes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'set_tint_color_enabled' method. + + + + + Cached name for the 'is_tint_color_enabled' method. + + + + + Cached name for the 'set_tint_color' method. + + + + + Cached name for the 'get_tint_color' method. + + + + + Cached name for the 'set_autoshrink_enabled' method. + + + + + Cached name for the 'is_autoshrink_enabled' method. + + + + + Cached name for the 'add_attached_node' method. + + + + + Cached name for the 'remove_attached_node' method. + + + + + Cached name for the 'set_attached_nodes' method. + + + + + Cached name for the 'get_attached_nodes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 s (which are injected in the main shader functions). You can also declare varyings, uniforms and global constants. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Currently, has no direct usage, use the derived classes instead. + + + + + Defines all input ports using a formatted as a colon-separated list: id,type,name; (see ). + + + + + Returns a description of the input ports as a colon-separated list using the format id,type,name; (see ). + + + + + Defines all output ports using a formatted as a colon-separated list: id,type,name; (see ). + + + + + Returns a description of the output ports as a colon-separated list using the format id,type,name; (see ). + + + + + Returns if the specified port name does not override an existed port name and is valid within the shader. + + + + + Adds an input port with the specified (see ) and . + + + + + Removes the specified input port. + + + + + Returns the number of input ports in use. Alternative for . + + + + + Returns if the specified input port exists. + + + + + Removes all previously specified input ports. + + + + + Adds an output port with the specified (see ) and . + + + + + Removes the specified output port. + + + + + Returns the number of output ports in use. Alternative for . + + + + + Returns if the specified output port exists. + + + + + Removes all previously specified output ports. + + + + + Renames the specified input port. + + + + + Sets the specified input port's type (see ). + + + + + Renames the specified output port. + + + + + Sets the specified output port's type (see ). + + + + + Returns a free input port ID which can be used in . + + + + + Returns a free output port ID which can be used in . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_inputs' method. + + + + + Cached name for the 'get_inputs' method. + + + + + Cached name for the 'set_outputs' method. + + + + + Cached name for the 'get_outputs' method. + + + + + Cached name for the 'is_valid_port_name' method. + + + + + Cached name for the 'add_input_port' method. + + + + + Cached name for the 'remove_input_port' method. + + + + + Cached name for the 'get_input_port_count' method. + + + + + Cached name for the 'has_input_port' method. + + + + + Cached name for the 'clear_input_ports' method. + + + + + Cached name for the 'add_output_port' method. + + + + + Cached name for the 'remove_output_port' method. + + + + + Cached name for the 'get_output_port_count' method. + + + + + Cached name for the 'has_output_port' method. + + + + + Cached name for the 'clear_output_ports' method. + + + + + Cached name for the 'set_input_port_name' method. + + + + + Cached name for the 'set_input_port_type' method. + + + + + Cached name for the 'set_output_port_name' method. + + + + + Cached name for the 'set_output_port_type' method. + + + + + Cached name for the 'get_free_input_port_id' method. + + + + + Cached name for the 'get_free_output_port_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This visual shader node has six input ports: + - Port 1 and 2 provide the two floating-point numbers a and b that will be compared. + - Port 3 is the tolerance, which allows similar floating-point numbers to be considered equal. + - Ports 4, 5, and 6 are the possible outputs, returned if a == b, a > b, or a < b respectively. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Gives access to input variables (built-ins) available for the shader. See the shading reference for the list of available built-ins for each shader type (check Tutorials section for link). + + + + + One of the several input constants in lower-case style like: "vertex" (VERTEX) or "point_size" (POINT_SIZE). + + + + + Returns a translated name of the current constant in the Godot Shader Language. E.g. "ALBEDO" if the equal to "albedo". + + + + + Emitted when input is changed via . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'input_name' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_input_name' method. + + + + + Cached name for the 'get_input_name' method. + + + + + Cached name for the 'get_input_real_name' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'input_type_changed' signal. + + + + + Translated to int in the shader language. + + + + + An integer constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept an integer scalar (x) to the input port and transform it according to . + + + + + Returns the absolute value of the parameter. Translates to abs(x) in the Godot Shader Language. + + + + + Negates the x using -(x). + + + + + Extracts the sign of the parameter. Translates to sign(x) in the Godot Shader Language. + + + + + Returns the result of bitwise NOT operation on the integer. Translates to ~a in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + A function to be applied to the scalar. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two integer inputs: a and b. + + + + + Sums two numbers using a + b. + + + + + Subtracts two numbers using a - b. + + + + + Multiplies two numbers using a * b. + + + + + Divides two numbers using a / b. + + + + + Calculates the remainder of two numbers using a % b. + + + + + Returns the greater of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the lesser of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the result of bitwise AND operation on the integer. Translates to a & b in the Godot Shader Language. + + + + + Returns the result of bitwise OR operation for two integers. Translates to a | b in the Godot Shader Language. + + + + + Returns the result of bitwise XOR operation for two integers. Translates to a ^ b in the Godot Shader Language. + + + + + Returns the result of bitwise left shift operation on the integer. Translates to a << b in the Godot Shader Language. + + + + + Returns the result of bitwise right shift operation on the integer. Translates to a >> b in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A of type . Offers additional customization for range of accepted values. + + + + + The parameter will not constrain its value. + + + + + The parameter's value must be within the specified / range. + + + + + The parameter's value must be within the specified range, with the given between values. + + + + + The parameter uses an enum to associate preset values to names in the editor. + + + + + Represents the size of the enum. + + + + + Range hint of this node. Use it to customize valid parameter range. + + + + + The minimum value this parameter can take. must be either or for this to take effect. + + + + + The maximum value this parameter can take. must be either or for this to take effect. + + + + + The step between parameter's values. Forces the parameter to be a multiple of the given value. must be for this to take effect. + + + + + The names used for the enum select in the editor. must be for this to take effect. + + + + + If , the node will have a custom default value. + + + + + Default value of this parameter, which will be used if not set externally. must be enabled; defaults to 0 otherwise. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hint' property. + + + + + Cached name for the 'min' property. + + + + + Cached name for the 'max' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'enum_names' property. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hint' method. + + + + + Cached name for the 'get_hint' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'set_enum_names' method. + + + + + Cached name for the 'get_enum_names' method. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns the boolean result of the comparison between INF or NaN and a scalar parameter. + + + + + Comparison with INF (Infinity). + + + + + Comparison with NaN (Not a Number; indicates invalid numeric results, such as division by zero). + + + + + Represents the size of the enum. + + + + + The comparison function. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node can be used in fragment shaders. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to mix(a, b, weight) in the shader language. + + + + + A floating-point scalar. + + + + + A 2D vector type. + + + + + The a and b ports use a 2D vector type. The weight port uses a scalar type. + + + + + A 3D vector type. + + + + + The a and b ports use a 3D vector type. The weight port uses a scalar type. + + + + + A 4D vector type. + + + + + The a and b ports use a 4D vector type. The weight port uses a scalar type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uses three operands to compute (a * b + c) expression. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + OuterProduct treats the first parameter c as a column vector (matrix with one column) and the second parameter r as a row vector (matrix with one row) and does a linear algebraic matrix multiply c * r, yielding a matrix whose number of rows is the number of components in c and whose number of columns is the number of components in r. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This visual shader node is present in all shader graphs in form of "Output" block with multiple output value ports. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A parameter represents a variable in the shader which is set externally, i.e. from the . Parameters are exposed as properties in the and can be assigned from the Inspector or from a script. + + + + + The parameter will be tied to the using this shader. + + + + + The parameter will use a global value, defined in Project Settings. + + + + + The parameter will be tied to the node with attached using this shader. + + + + + Represents the size of the enum. + + + + + Name of the parameter, by which it can be accessed through the properties. + + + + + Defines the scope of the parameter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'parameter_name' property. + + + + + Cached name for the 'qualifier' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_parameter_name' method. + + + + + Cached name for the 'get_parameter_name' method. + + + + + Cached name for the 'set_qualifier' method. + + + + + Cached name for the 'get_qualifier' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Creating a reference to a allows you to reuse this parameter in different shaders or shader stages easily. + + + + + The name of the parameter which this reference points to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'parameter_name' property. + + + + + Cached name for the 'param_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_parameter_name' method. + + + + + Cached name for the 'get_parameter_name' method. + + + + + Cached name for the '_set_parameter_type' method. + + + + + Cached name for the '_get_parameter_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Particle accelerator can be used in "process" step of particle shader. It will accelerate the particles. Connect it to the Velocity output port. + + + + + The particles will be accelerated based on their velocity. + + + + + The particles will be accelerated towards or away from the center. + + + + + The particles will be accelerated tangentially to the radius vector from center to their position. + + + + + Represents the size of the enum. + + + + + Defines in what manner the particles will be accelerated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in box shape with the specified extents. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node internally calls emit_subparticle shader method. It will emit a particle from the configured sub-emitter and also allows to customize how its emitted. Requires a sub-emitter assigned to the particles node with this shader. + + + + + If enabled, the particle starts with the position defined by this node. + + + + + If enabled, the particle starts with the rotation and scale defined by this node. + + + + + If enabled,the particle starts with the velocity defined by this node. + + + + + If enabled, the particle starts with the color defined by this node. + + + + + If enabled, the particle starts with the CUSTOM data defined by this node. + + + + + Flags used to override the properties defined in the sub-emitter's process material. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flags' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_flags' method. + + + + + Cached name for the 'get_flags' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + If , the result of this emitter is projected to 2D space. By default it is and meant for use in 3D space. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode_2d' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode_2d' method. + + + + + Cached name for the 'is_mode_2d' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in a shape of the assigned . It will emit from the mesh's surfaces, either all or only the specified one. + + + + + The that defines emission shape. + + + + + If , the particles will emit from all surfaces of the mesh. + + + + + Index of the surface that emits particles. must be for this to take effect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'use_all_surfaces' property. + + + + + Cached name for the 'surface_index' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_use_all_surfaces' method. + + + + + Cached name for the 'is_use_all_surfaces' method. + + + + + Cached name for the 'set_surface_index' method. + + + + + Cached name for the 'get_surface_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node helps to multiply a position input vector by rotation using specific axis. Intended to work with emitters. + + + + + If , the angle will be interpreted in degrees instead of radians. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'degrees_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_degrees_mode' method. + + + + + Cached name for the 'is_degrees_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Randomness node will output pseudo-random values of the given type based on the specified minimum and maximum values. + + + + + A floating-point scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in ring shape with the specified inner and outer radii and height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in sphere shape with the specified inner and outer radii. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The proximity fade effect fades out each pixel based on its distance to another object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Remap will transform the input range into output range, e.g. you can change a 0..1 value to -2..2 etc. See @GlobalScope.remap for more details. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + The value port uses a 2D vector type, while the input min, input max, output min, and output max ports use a floating-point scalar type. + + + + + A 3D vector type. + + + + + The value port uses a 3D vector type, while the input min, input max, output min, and output max ports use a floating-point scalar type. + + + + + A 4D vector type. + + + + + The value port uses a 4D vector type, while the input min, input max, output min, and output max ports use a floating-point scalar type. + + + + + Represents the size of the enum. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Automatically adapts its port type to the type of the incoming connection and ensures valid connections. + + + + + Returns the port type of the reroute node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'port_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_port_type' method. + + + + + Cached name for the 'get_port_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resizable nodes have a handle that allows the user to adjust their size as needed. + + + + + The size of the node in the visual shader graph. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Casts a ray against the screen SDF (signed-distance field) and returns the distance travelled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to sdf_to_screen_uv(sdf_pos) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A virtual class, use the descendants instead. + + + + + Creates internal uniform and provides a way to assign it within node. + + + + + Use the uniform texture from sampler port. + + + + + Represents the size of the enum. + + + + + An input source type. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The ScreenNormalWorldSpace node allows to create outline effects. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to screen_uv_to_sdf(uv) in the shader language. If the UV port isn't connected, SCREEN_UV is used instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to smoothstep(edge0, edge1, x) in the shader language. + Returns 0.0 if x is smaller than edge0 and 1.0 if x is larger than edge1. Otherwise, the return value is interpolated between 0.0 and 1.0 using Hermite polynomials. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + The x port uses a 2D vector type. The first two ports use a floating-point scalar type. + + + + + A 3D vector type. + + + + + The x port uses a 3D vector type. The first two ports use a floating-point scalar type. + + + + + A 4D vector type. + + + + + The a and b ports use a 4D vector type. The weight port uses a scalar type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to step(edge, x) in the shader language. + Returns 0.0 if x is smaller than edge and 1.0 otherwise. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + The x port uses a 2D vector type, while the edge port uses a floating-point scalar type. + + + + + A 3D vector type. + + + + + The x port uses a 3D vector type, while the edge port uses a floating-point scalar type. + + + + + A 4D vector type. + + + + + The a and b ports use a 4D vector type. The weight port uses a scalar type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns an associated value of the type if the provided boolean value is or . + + + + + A floating-point scalar. + + + + + An integer scalar. + + + + + An unsigned integer scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + A boolean type. + + + + + A transform type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from. + + + + + Use the texture given as an argument for this function. + + + + + Use the current viewport's texture as the source. + + + + + Use the texture from this shader's texture built-in (e.g. a texture of a ). + + + + + Use the texture from this shader's normal map built-in. + + + + + 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). + + + + + Use the texture provided in the input port for this function. + + + + + 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). + + + + + 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). + + + + + Represents the size of the enum. + + + + + No hints are added to the uniform declaration. + + + + + Adds source_color as hint to the uniform declaration for proper sRGB to linear conversion. + + + + + Adds hint_normal as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. + + + + + Represents the size of the enum. + + + + + Determines the source for the lookup. See for options. + + + + + The source texture, if needed for the selected . + + + + + Specifies the type of the texture if is set to . See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform sampler2DArray in the shader language. + + + + + A source texture array. Used if is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_array' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_array' method. + + + + + Cached name for the 'get_texture_array' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This parameter allows to provide a collection of textures for the shader. You can use to extract the textures from array. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform sampler2D in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from. + + + + + A source texture. Used if is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform sampler3D in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the texture provided as a uniform for the shader. + + + + + No hints are added to the uniform declaration. + + + + + Adds source_color as hint to the uniform declaration for proper sRGB to linear conversion. + + + + + Adds hint_normal as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. + + + + + Adds hint_anisotropy as hint to the uniform declaration to use for a flowmap. + + + + + Represents the size of the enum. + + + + + Defaults to fully opaque white color. + + + + + Defaults to fully opaque black color. + + + + + Defaults to fully transparent black color. + + + + + Represents the size of the enum. + + + + + Sample the texture using the filter determined by the node this shader is attached to. + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + Represents the size of the enum. + + + + + Sample the texture using the repeat mode determined by the node this shader is attached to. + + + + + Texture will repeat normally. + + + + + Texture will not repeat. + + + + + Represents the size of the enum. + + + + + The texture source is not specified in the shader. + + + + + The texture source is the screen texture which captures all opaque objects drawn this frame. + + + + + The texture source is the depth texture from the depth prepass. + + + + + The texture source is the normal-roughness buffer from the depth prepass. + + + + + Represents the size of the enum. + + + + + Defines the type of data provided by the source texture. See for options. + + + + + Sets the default color if no texture is assigned to the uniform. + + + + + Sets the texture filtering mode. See for options. + + + + + Sets the texture repeating mode. See for options. + + + + + Sets the texture source mode. Used for reading from the screen, depth, or normal_roughness texture. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_type' property. + + + + + Cached name for the 'color_default' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached name for the 'texture_source' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached name for the 'set_color_default' method. + + + + + Cached name for the 'get_color_default' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_texture_repeat' method. + + + + + Cached name for the 'get_texture_repeat' method. + + + + + Cached name for the 'set_texture_source' method. + + + + + Cached name for the 'get_texture_source' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the texture provided as a uniform for the shader, with support for triplanar mapping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to texture_sdf(sdf_pos) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to texture_sdf_normal(sdf_pos) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Creates a 4×4 transform matrix using four vectors of type vec3. Each vector is one row in the matrix and the last column is a vec4(0, 0, 0, 1). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant , which can be used as an input node. + + + + + A constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Takes a 4×4 transform matrix and decomposes it into four vec3 values, one from each row of the matrix. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Computes an inverse or transpose function on the provided . + + + + + Perform the inverse operation on the matrix. + + + + + Perform the transpose operation on the matrix. + + + + + Represents the size of the enum. + + + + + The function to be computed. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two transform (4×4 matrices) inputs. + + + + + Multiplies transform a by the transform b. + + + + + Multiplies transform b by the transform a. + + + + + Performs a component-wise multiplication of transform a by the transform b. + + + + + Performs a component-wise multiplication of transform b by the transform a. + + + + + Adds two transforms. + + + + + Subtracts the transform a from the transform b. + + + + + Subtracts the transform b from the transform a. + + + + + Divides the transform a by the transform b. + + + + + Divides the transform b by the transform a. + + + + + Represents the size of the enum. + + + + + The type of the operation to be performed on the transforms. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform mat4 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A multiplication operation on a transform (4×4 matrix) and a vector, with support for different multiplication operators. + + + + + Multiplies transform a by the vector b. + + + + + Multiplies vector b by the transform a. + + + + + Multiplies transform a by the vector b, skipping the last row and column of the transform. + + + + + Multiplies vector b by the transform a, skipping the last row and column of the transform. + + + + + Represents the size of the enum. + + + + + The multiplication type to be performed. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uint in the shader language. + + + + + An unsigned integer constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept an unsigned integer scalar (x) to the input port and transform it according to . + + + + + Negates the x using -(x). + + + + + Returns the result of bitwise NOT operation on the integer. Translates to ~a in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + A function to be applied to the scalar. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two unsigned integer inputs: a and b. + + + + + Sums two numbers using a + b. + + + + + Subtracts two numbers using a - b. + + + + + Multiplies two numbers using a * b. + + + + + Divides two numbers using a / b. + + + + + Calculates the remainder of two numbers using a % b. + + + + + Returns the greater of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the lesser of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the result of bitwise AND operation on the integer. Translates to a & b in the Godot Shader Language. + + + + + Returns the result of bitwise OR operation for two integers. Translates to a | b in the Godot Shader Language. + + + + + Returns the result of bitwise XOR operation for two integers. Translates to a ^ b in the Godot Shader Language. + + + + + Returns the result of bitwise left shift operation on the integer. Translates to a << b in the Godot Shader Language. + + + + + Returns the result of bitwise right shift operation on the integer. Translates to a >> b in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A of type unsigned . Offers additional customization for range of accepted values. + + + + + If , the node will have a custom default value. + + + + + Default value of this parameter, which will be used if not set externally. must be enabled; defaults to 0 otherwise. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + UV functions are similar to functions, but the input port of this node uses the shader's UV value by default. + + + + + Translates uv by using scale and offset values using the following formula: uv = uv + offset * scale. uv port is connected to UV built-in by default. + + + + + Scales uv by using scale and pivot values using the following formula: uv = (uv - pivot) * scale + pivot. uv port is connected to UV built-in by default. + + + + + Represents the size of the enum. + + + + + A function to be applied to the texture coordinates. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Varying values are shader variables that can be passed between shader functions, e.g. from Vertex shader to Fragment shader. + + + + + Name of the variable. Must be unique. + + + + + Type of the variable. Determines where the variable can be accessed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'varying_name' property. + + + + + Cached name for the 'varying_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_varying_name' method. + + + + + Cached name for the 'get_varying_name' method. + + + + + Cached name for the 'set_varying_type' method. + + + + + Cached name for the 'get_varying_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant , which can be used as an input node. + + + + + A constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec2 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant , which can be used as an input node. + + + + + A constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec3 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant 4D vector, which can be used as an input node. + + + + + A 4D vector (represented as a ) constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec4 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is an abstract class. See the derived types for descriptions of the possible operations. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A vector type that this operation is performed on. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Creates a vec2, vec3 or vec4 using scalar values that can be provided from separate inputs. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Takes a vec2, vec3 or vec4 and decomposes it into scalar values that can be used as separate outputs. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Calculates distance from point represented by vector p0 to vector p1. + Translated to distance(p0, p1) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A visual shader node able to perform different functions using vectors. + + + + + Normalizes the vector so that it has a length of 1 but points in the same direction. + + + + + Clamps the value between 0.0 and 1.0. + + + + + Returns the opposite value of the parameter. + + + + + Returns 1/vector. + + + + + Returns the absolute value of the parameter. + + + + + Returns the arc-cosine of the parameter. + + + + + Returns the inverse hyperbolic cosine of the parameter. + + + + + Returns the arc-sine of the parameter. + + + + + Returns the inverse hyperbolic sine of the parameter. + + + + + Returns the arc-tangent of the parameter. + + + + + Returns the inverse hyperbolic tangent of the parameter. + + + + + Finds the nearest integer that is greater than or equal to the parameter. + + + + + Returns the cosine of the parameter. + + + + + Returns the hyperbolic cosine of the parameter. + + + + + Converts a quantity in radians to degrees. + + + + + Base-e Exponential. + + + + + Base-2 Exponential. + + + + + Finds the nearest integer less than or equal to the parameter. + + + + + Computes the fractional part of the argument. + + + + + Returns the inverse of the square root of the parameter. + + + + + Natural logarithm. + + + + + Base-2 logarithm. + + + + + Converts a quantity in degrees to radians. + + + + + Finds the nearest integer to the parameter. + + + + + Finds the nearest even integer to the parameter. + + + + + Extracts the sign of the parameter, i.e. returns -1 if the parameter is negative, 1 if it's positive and 0 otherwise. + + + + + Returns the sine of the parameter. + + + + + Returns the hyperbolic sine of the parameter. + + + + + Returns the square root of the parameter. + + + + + Returns the tangent of the parameter. + + + + + Returns the hyperbolic tangent of the parameter. + + + + + Returns a value equal to the nearest integer to the parameter whose absolute value is not larger than the absolute value of the parameter. + + + + + Returns 1.0 - vector. + + + + + Represents the size of the enum. + + + + + The function to be performed. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to length(p0) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A visual shader node for use of vector operators. Operates on vector a and vector b. + + + + + Adds two vectors. + + + + + Subtracts a vector from a vector. + + + + + Multiplies two vectors. + + + + + Divides vector by vector. + + + + + Returns the remainder of the two vectors. + + + + + Returns the value of the first parameter raised to the power of the second, for each component of the vectors. + + + + + Returns the greater of two values, for each component of the vectors. + + + + + Returns the lesser of two values, for each component of the vectors. + + + + + Calculates the cross product of two vectors. + + + + + Returns the arc-tangent of the parameters. + + + + + Returns the vector that points in the direction of reflection. a is incident vector and b is the normal vector. + + + + + Vector step operator. Returns 0.0 if a is smaller than b and 1.0 otherwise. + + + + + Represents the size of the enum. + + + + + The operator to be used. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to refract(I, N, eta) in the shader language, where I is the incident vector, N is the normal vector and eta is the ratio of the indices of the refraction. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. 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. + Note: is only supported in the Forward+ rendering method, not Mobile or Compatibility. + Procedural generation: 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 ). + Performance: is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider instead). To improve performance, adjust ProjectSettings.rendering/global_illumination/voxel_gi/quality and enable 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 in your project's options menus. A node can be disabled by hiding it. + Note: Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. To further prevent light leaks, you can also strategically place temporary nodes with their set to . These temporary nodes can then be hidden after baking the node. + + + + + 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. + + + + + Use 128 subdivisions. This is the default quality setting. + + + + + Use 256 subdivisions. + + + + + Use 512 subdivisions. This is the highest quality setting, but the slowest. On lower-end hardware, this could cause the GPU to stall. + + + + + Represents the size of the enum. + + + + + Number of times to subdivide the grid that the operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance. + + + + + The size of the area covered by the . If you make the size larger without increasing the subdivisions with , the size of each cell will increase and result in lower detailed lighting. + Note: Size is clamped to 1.0 unit or more on each axis. + + + + + The resource that specifies exposure levels to bake at. Auto-exposure and non exposure properties will be ignored. Exposure settings should be used to reduce the dynamic range present when baking. If exposure is too high, the will have banding artifacts or may have over-exposure artifacts. + + + + + The resource that holds the data for this . + + + + + Bakes the effect from all s marked with and s marked with either or . If is , after baking the light, this will generate a that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the 's data and debug any issues that may be occurring. + Note: works from the editor and in exported projects. This makes it suitable for procedurally generated or user-built levels. Baking a node generally takes from 5 to 20 seconds in most scenes. Reducing can speed up baking. + Note: s and s must be fully ready before is called. If you are procedurally creating those and some meshes or lights are missing from your baked , use call_deferred("bake") instead of calling directly. + + + + + Calls with create_visual_debug enabled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'subdiv' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_probe_data' method. + + + + + Cached name for the 'get_probe_data' method. + + + + + Cached name for the 'set_subdiv' method. + + + + + Cached name for the 'get_subdiv' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'debug_bake' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains baked voxel global illumination for use in a node. 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 node again. + Note: To prevent text-based scene files (.tscn) from growing too much and becoming slow to load and save, always save to an external binary resource file (.res) instead of embedding it within the scene. This can be done by clicking the dropdown arrow next to the resource, choosing Edit, clicking the floppy disk icon at the top of the Inspector then choosing Save As.... + + + + + The dynamic range to use (1.0 represents a low dynamic range scene brightness). Higher values can be used to provide brighter indirect lighting, at the cost of more visible color banding in dark areas (both in indirect lighting and reflections). To avoid color banding, it's recommended to use the lowest value that does not result in visible light clipping. + + + + + The energy of the indirect lighting and reflections produced by the node. Higher values result in brighter indirect lighting. If indirect lighting looks too flat, try decreasing while increasing at the same time. See also which influences the indirect lighting's effective brightness. + + + + + The normal bias to use for indirect lighting and reflections. Higher values reduce self-reflections visible in non-rough materials, at the cost of more visible light leaking and flatter-looking indirect lighting. To prioritize hiding self-reflections over lighting quality, set to 0.0 and to a value between 1.0 and 2.0. + + + + + The normal bias to use for indirect lighting and reflections. Higher values reduce self-reflections visible in non-rough materials, at the cost of more visible light leaking and flatter-looking indirect lighting. See also . To prioritize hiding self-reflections over lighting quality, set to 0.0 and to a value between 1.0 and 2.0. + + + + + The multiplier to use when light bounces off a surface. Higher values result in brighter indirect lighting. If indirect lighting looks too flat, try decreasing while increasing at the same time. See also which influences the indirect lighting's effective brightness. + + + + + If , performs two bounces of indirect lighting instead of one. This makes indirect lighting look more natural and brighter at a small performance cost. The second bounce is also visible in reflections. If the scene appears too bright after enabling , adjust and . + + + + + If , lighting is ignored by the node. If , lighting is taken into account by the node. lighting updates in real-time, which means it can be changed without having to bake the node again. + + + + + Returns the bounds of the baked voxel data as an , which should match after being baked (which only contains the size as a ). + Note: If the size was modified without baking the VoxelGI data, then the value of and will not match. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'dynamic_range' property. + + + + + Cached name for the 'energy' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'normal_bias' property. + + + + + Cached name for the 'propagation' property. + + + + + Cached name for the 'use_two_bounces' property. + + + + + Cached name for the 'interior' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'allocate' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached name for the 'get_octree_size' method. + + + + + Cached name for the 'get_to_cell_xform' method. + + + + + Cached name for the 'get_octree_cells' method. + + + + + Cached name for the 'get_data_cells' method. + + + + + Cached name for the 'get_level_counts' method. + + + + + Cached name for the 'set_dynamic_range' method. + + + + + Cached name for the 'get_dynamic_range' method. + + + + + Cached name for the 'set_energy' method. + + + + + Cached name for the 'get_energy' method. + + + + + Cached name for the 'set_bias' method. + + + + + Cached name for the 'get_bias' method. + + + + + Cached name for the 'set_normal_bias' method. + + + + + Cached name for the 'get_normal_bias' method. + + + + + Cached name for the 'set_propagation' method. + + + + + Cached name for the 'get_propagation' method. + + + + + Cached name for the 'set_interior' method. + + + + + Cached name for the 'is_interior' method. + + + + + Cached name for the 'set_use_two_bounces' method. + + + + + Cached name for the 'is_using_two_bounces' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A weakref can hold a without contributing to the reference counter. A weakref can be created from an using @GlobalScope.weakref. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released. + + + + + Returns the this weakref is referring to. Returns if that object no longer exists. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_ref' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Tells the channel to send data over this channel as text. An external peer (non-Godot) would receive this as a string. + + + + + Tells the channel to send data over this channel as binary. An external peer (non-Godot) would receive this as array buffer or blob. + + + + + The channel was created, but it's still trying to connect. + + + + + The channel is currently open, and data can flow over it. + + + + + The channel is being closed, no new messages will be accepted, but those already in queue will be flushed. + + + + + The channel was closed, or connection failed. + + + + + The transfer mode to use when sending outgoing packet. Either text or binary. + + + + + Reserved, but not used for now. + + + + + Closes this data channel, notifying the other peer. + + + + + Returns if the last received packet was transferred as text. See . + + + + + Returns the current state of this channel, see . + + + + + Returns the label assigned to this channel during creation. + + + + + Returns if this channel was created with ordering enabled (default). + + + + + Returns the ID assigned to this channel during creation (or auto-assigned during negotiation). + If the channel is not negotiated out-of-band the ID will only be available after the connection is established (will return 65535 until then). + + + + + Returns the maxPacketLifeTime value assigned to this channel during creation. + Will be 65535 if not specified. + + + + + Returns the maxRetransmits value assigned to this channel during creation. + Will be 65535 if not specified. + + + + + Returns the sub-protocol assigned to this channel during creation. An empty string if not specified. + + + + + Returns if this channel was created with out-of-band configuration. + + + + + Returns the number of bytes currently queued to be sent over this channel. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'write_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'was_string_packet' method. + + + + + Cached name for the 'set_write_mode' method. + + + + + Cached name for the 'get_write_mode' method. + + + + + Cached name for the 'get_ready_state' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'is_ordered' method. + + + + + Cached name for the 'get_id' method. + + + + + Cached name for the 'get_max_packet_life_time' method. + + + + + Cached name for the 'get_max_retransmits' method. + + + + + Cached name for the 'get_protocol' method. + + + + + Cached name for the 'is_negotiated' method. + + + + + Cached name for the 'get_buffered_amount' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_close' method. + + + + + Cached name for the '_get_available_packet_count' method. + + + + + Cached name for the '_get_buffered_amount' method. + + + + + Cached name for the '_get_id' method. + + + + + Cached name for the '_get_label' method. + + + + + Cached name for the '_get_max_packet_life_time' method. + + + + + Cached name for the '_get_max_packet_size' method. + + + + + Cached name for the '_get_max_retransmits' method. + + + + + Cached name for the '_get_protocol' method. + + + + + Cached name for the '_get_ready_state' method. + + + + + Cached name for the '_get_write_mode' method. + + + + + Cached name for the '_is_negotiated' method. + + + + + Cached name for the '_is_ordered' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_set_write_mode' method. + + + + + Cached name for the '_was_string_packet' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class constructs a full mesh of (one connection for each peer) that can be used as a . + You can add each via or remove them via . Peers must be added in 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 or the method will return enabling peer exchange and packet relaying when supported by the implementation. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Initialize the multiplayer peer as a server (with unique ID of 1). This mode enables , allowing the upper layer to perform peer exchange and packet relaying. + You can optionally specify a array of which will be used to create extra channels (WebRTC only supports one transfer mode per channel). + + + + + Initialize the multiplayer peer as a client with the given (must be between 2 and 2147483647). In this mode, you should only call once and with of 1. This mode enables , allowing the upper layer to perform peer exchange and packet relaying. + You can optionally specify a array of which will be used to create extra channels (WebRTC only supports one transfer mode per channel). + + + + + Initialize the multiplayer peer as a mesh (i.e. all peers connect to each other) with the given (must be between 1 and 2147483647). + + + + + Add a new peer to the mesh with the given . The must be in state . + Three channels will be created for reliable, unreliable, and ordered transport. The value of will be passed to the "maxPacketLifetime" option when creating unreliable and ordered channels (see ). + + + + + Remove the peer with given from the mesh. If the peer was connected, and was emitted for it, then will be emitted. + + + + + Returns if the given is in the peers map (it might not be connected though). + + + + + Returns a dictionary representation of the peer with given with three keys. "connection" containing the to this peer, "channels" an array of three , and "connected" a boolean representing if the peer connection is currently connected (all three channels are open). + + + + + Returns a dictionary which keys are the peer ids and values the peer representation as in . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_server' method. + + + + + Cached name for the 'create_client' method. + + + + + Cached name for the 'create_mesh' method. + + + + + Cached name for the 'add_peer' method. + + + + + Cached name for the 'remove_peer' method. + + + + + Cached name for the 'has_peer' method. + + + + + Cached name for the 'get_peer' method. + + + + + Cached name for the 'get_peers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A WebRTC connection between the local computer and a remote peer. Provides an interface to connect, maintain and monitor the connection. + Setting up a WebRTC connection between two peers may not seem a trivial task, but it can be broken down into 3 main steps: + - The peer that wants to initiate the connection (A from now on) creates an offer and send it to the other peer (B from now on). + - B receives the offer, generate and answer, and sends it to A). + - A and B 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. + + + + + The connection is new, data channels and an offer can be created in this state. + + + + + The peer is connecting, ICE is in progress, none of the transports has failed. + + + + + The peer is connected, all ICE transports are connected. + + + + + At least one ICE transport is disconnected. + + + + + One or more of the ICE transports failed. + + + + + The peer connection is closed (after calling for example). + + + + + The peer connection was just created and hasn't done any networking yet. + + + + + The ICE agent is in the process of gathering candidates for the connection. + + + + + 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. + + + + + There is no ongoing exchange of offer and answer underway. This may mean that the is new () or that negotiation is complete and a connection has been established (). + + + + + The local peer has called , passing in SDP representing an offer (usually created by calling ), and the offer has been applied successfully. + + + + + 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 . + + + + + The offer sent by the remote peer has been applied and an answer has been created and applied by calling . 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. + + + + + A provisional answer has been received and successfully applied in response to an offer previously sent and established by calling . + + + + + The has been closed. + + + + + Sets the as the default returned when creating a new . + + + + + Re-initialize this peer connection, closing any previously active connection, and going back to state . A dictionary of options can be passed to configure the peer connection. + Valid options are: + + { + "iceServers": [ + { + "urls": [ "stun:stun.example.com:3478" ], # One or more STUN servers. + }, + { + "urls": [ "turn:turn.example.com:3478" ], # One or more TURN servers. + "username": "a_username", # Optional username for the TURN server. + "credential": "a_password", # Optional password for the TURN server. + } + ] + } + + + + + + Returns a new (or on failure) with given and optionally configured via the dictionary. This method can only be called when the connection is in state . + There are two ways to create a working data channel: either call on only one of the peer and listen to on the other, or call on both peers, with the same values, and the "negotiated" option set to . + Valid are: + + { + "negotiated": true, # When set to true (default off), means the channel is negotiated out of band. "id" must be set too. "data_channel_received" will not be called. + "id": 1, # When "negotiated" is true this value must also be set to the same value on both peer. + + # Only one of maxRetransmits and maxPacketLifeTime can be specified, not both. They make the channel unreliable (but also better at real time). + "maxRetransmits": 1, # Specify the maximum number of attempt the peer will make to retransmits packets if they are not acknowledged. + "maxPacketLifeTime": 100, # Specify the maximum amount of time before giving up retransmitions of unacknowledged packets (in milliseconds). + "ordered": true, # When in unreliable mode (i.e. either "maxRetransmits" or "maxPacketLifetime" is set), "ordered" (true by default) specify if packet ordering is to be enforced. + + "protocol": "my-custom-protocol", # A custom sub-protocol string for this channel. + } + + Note: You must keep a reference to channels created this way, or it will be closed. + + + + + Creates a new SDP offer to start a WebRTC connection with a remote peer. At least one must have been created before calling this method. + If this functions returns , will be called when the session is ready to be sent. + + + + + Sets the SDP description of the local peer. This should be called in response to . + After calling this function the peer will start emitting (unless an different from is returned). + + + + + Sets the SDP description of the remote peer. This should be called with the values generated by a remote peer and received over the signaling server. + If is "offer" the peer will emit with the appropriate answer. + If is "answer" the peer will start emitting . + + + + + Add an ice candidate generated by a remote peer (and received over the signaling server). See . + + + + + Call this method frequently (e.g. in or ) to properly receive signals. + + + + + Close the peer connection and all data channels associated with it. + Note: You cannot reuse this object for a new connection unless you call . + + + + + Returns the connection state. See . + + + + + Returns the ICE of the connection. This lets you detect, for example, when collection of ICE candidates has finished. + + + + + Returns the signaling state on the local end of the connection while connecting or reconnecting to another peer. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after a successful call to or (when it generates an answer). The parameters are meant to be passed to on this object, and sent to the remote peer over the signaling server. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new ICE candidate has been created. The three parameters are meant to be passed to the remote peer over the signaling server. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new in-band channel is received, i.e. when the channel was created with negotiated: false (default). + The object will be an instance of . You must keep a reference of it or it will be closed automatically. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_extension' method. + + + + + Cached name for the 'initialize' method. + + + + + Cached name for the 'create_data_channel' method. + + + + + Cached name for the 'create_offer' method. + + + + + Cached name for the 'set_local_description' method. + + + + + Cached name for the 'set_remote_description' method. + + + + + Cached name for the 'add_ice_candidate' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'get_connection_state' method. + + + + + Cached name for the 'get_gathering_state' method. + + + + + Cached name for the 'get_signaling_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'session_description_created' signal. + + + + + Cached name for the 'ice_candidate_created' signal. + + + + + Cached name for the 'data_channel_received' signal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_ice_candidate' method. + + + + + Cached name for the '_close' method. + + + + + Cached name for the '_create_data_channel' method. + + + + + Cached name for the '_create_offer' method. + + + + + Cached name for the '_get_connection_state' method. + + + + + Cached name for the '_get_gathering_state' method. + + + + + Cached name for the '_get_signaling_state' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_set_local_description' method. + + + + + Cached name for the '_set_remote_description' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for WebSocket server and client, allowing them to be used as multiplayer peer for the . + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The supported WebSocket sub-protocols. See for more details. + + + + + The extra headers to use during handshake. See for more details. + + + + + The inbound buffer size for connected peers. See for more details. + + + + + The outbound buffer size for connected peers. See for more details. + + + + + The maximum time each peer can stay in a connecting state before being dropped. + + + + + The maximum number of queued packets for connected peers. See for more details. + + + + + Starts a new multiplayer client connecting to the given . TLS certificates will be verified against the hostname when connecting using the wss:// protocol. You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + Note: It is recommended to specify the scheme part of the URL, i.e. the should start with either ws:// or wss://. + + + + + Starts a new multiplayer server listening on the given . You can optionally specify a , and provide valid to use TLS. See . + + + + + Returns the associated to the given . + + + + + Returns the IP address of the given peer. + + + + + Returns the remote port of the given peer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'supported_protocols' property. + + + + + Cached name for the 'handshake_headers' property. + + + + + Cached name for the 'inbound_buffer_size' property. + + + + + Cached name for the 'outbound_buffer_size' property. + + + + + Cached name for the 'handshake_timeout' property. + + + + + Cached name for the 'max_queued_packets' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_client' method. + + + + + Cached name for the 'create_server' method. + + + + + Cached name for the 'get_peer' method. + + + + + Cached name for the 'get_peer_address' method. + + + + + Cached name for the 'get_peer_port' method. + + + + + Cached name for the 'get_supported_protocols' method. + + + + + Cached name for the 'set_supported_protocols' method. + + + + + Cached name for the 'get_handshake_headers' method. + + + + + Cached name for the 'set_handshake_headers' method. + + + + + Cached name for the 'get_inbound_buffer_size' method. + + + + + Cached name for the 'set_inbound_buffer_size' method. + + + + + Cached name for the 'get_outbound_buffer_size' method. + + + + + Cached name for the 'set_outbound_buffer_size' method. + + + + + Cached name for the 'get_handshake_timeout' method. + + + + + Cached name for the 'set_handshake_timeout' method. + + + + + Cached name for the 'set_max_queued_packets' method. + + + + + Cached name for the 'get_max_queued_packets' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , and WebSocket text frames using (prefer text frames when interacting with text-based API). You can check the frame type of the last packet via . + To start a WebSocket client, first call , then regularly call (e.g. during process). You can query the socket state via , get the number of pending packets using , and retrieve them via . + + To use the peer as part of a WebSocket server refer to and the online tutorial. + + + + + Specifies that WebSockets messages should be transferred as text payload (only valid UTF-8 is allowed). + + + + + Specifies that WebSockets messages should be transferred as binary payload (any byte combination is allowed). + + + + + Socket has been created. The connection is not yet open. + + + + + The connection is open and ready to communicate. + + + + + 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. + + + + + The connection is closed or couldn't be opened. + + + + + The WebSocket sub-protocols allowed during the WebSocket handshake. + + + + + The extra HTTP headers to be sent during the WebSocket handshake. + Note: Not supported in Web exports due to browsers' restrictions. + + + + + The size of the input buffer in bytes (roughly the maximum amount of memory that will be allocated for the inbound packets). + + + + + The size of the input buffer in bytes (roughly the maximum amount of memory that will be allocated for the outbound packets). + + + + + The maximum amount of packets that will be allowed in the queues (both inbound and outbound). + + + + + The interval (in seconds) at which the peer will automatically send WebSocket "ping" control frames. When set to 0, no "ping" control frames will be sent. + Note: Has no effect in Web exports due to browser restrictions. + + + + + Connects to the given URL. TLS certificates will be verified against the hostname when connecting using the wss:// protocol. You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + Note: This method is non-blocking, and will return before the connection is established as long as the provided parameters are valid and the peer is not in an invalid state (e.g. already connected). Regularly call (e.g. during process) and check the result of to know whether the connection succeeds or fails. + Note: To avoid mixed content warnings or errors in Web, you may have to use a that starts with wss:// (secure) instead of ws://. When doing so, make sure to use the fully qualified domain name that matches the one defined in the server's TLS certificate. Do not connect directly via the IP address for wss:// connections, as it won't match with the TLS certificate. + + + + + Accepts a peer connection performing the HTTP handshake as a WebSocket server. The must be a valid TCP stream retrieved via , or a TLS stream accepted via . + Note: Not supported in Web exports due to browsers' restrictions. + + + + + Sends the given using the desired . When sending a , prefer using . + + + + + Sends the given using the desired . When sending a , prefer using . + + + + + Sends the given using WebSocket text mode. Prefer this method over when interacting with third-party text-based API (e.g. when using formatted messages). + + + + + Returns if the last received packet was sent as a text payload. See . + + + + + Updates the connection state and receive incoming packets. Call this function regularly to keep it in a clean state. + + + + + Closes this WebSocket connection. is the status code for the closure (see RFC 6455 section 7.4 for a list of valid status codes). is the human readable reason for closing the connection (can be any UTF-8 string that's smaller than 123 bytes). If is negative, the connection will be closed immediately without notifying the remote peer. + Note: To achieve a clean close, you will need to keep polling until is reached. + Note: The Web export might not support all status codes. Please refer to browser-specific documentation for more details. + + + + + Returns the IP address of the connected peer. + Note: Not available in the Web export. + + + + + Returns the remote port of the connected peer. + Note: Not available in the Web export. + + + + + Returns the selected WebSocket sub-protocol for this connection or an empty string if the sub-protocol has not been selected yet. + + + + + Returns the URL requested by this peer. The URL is derived from the url passed to or from the HTTP headers when acting as server (i.e. when using ). + + + + + Disable Nagle's algorithm on the underlying TCP socket (default). See for more information. + Note: Not available in the Web export. + + + + + Returns the current amount of data in the outbound websocket buffer. Note: Web exports use WebSocket.bufferedAmount, while other platforms use an internal buffer. + + + + + Returns the ready state of the connection. See . + + + + + Returns the received WebSocket close frame status code, or -1 when the connection was not cleanly closed. Only call this method when returns . + + + + + Returns the received WebSocket close frame status reason string. Only call this method when returns . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'supported_protocols' property. + + + + + Cached name for the 'handshake_headers' property. + + + + + Cached name for the 'inbound_buffer_size' property. + + + + + Cached name for the 'outbound_buffer_size' property. + + + + + Cached name for the 'max_queued_packets' property. + + + + + Cached name for the 'heartbeat_interval' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'connect_to_url' method. + + + + + Cached name for the 'accept_stream' method. + + + + + Cached name for the 'send' method. + + + + + Cached name for the 'send_text' method. + + + + + Cached name for the 'was_string_packet' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'get_connected_host' method. + + + + + Cached name for the 'get_connected_port' method. + + + + + Cached name for the 'get_selected_protocol' method. + + + + + Cached name for the 'get_requested_url' method. + + + + + Cached name for the 'set_no_delay' method. + + + + + Cached name for the 'get_current_outbound_buffered_amount' method. + + + + + Cached name for the 'get_ready_state' method. + + + + + Cached name for the 'get_close_code' method. + + + + + Cached name for the 'get_close_reason' method. + + + + + Cached name for the 'get_supported_protocols' method. + + + + + Cached name for the 'set_supported_protocols' method. + + + + + Cached name for the 'get_handshake_headers' method. + + + + + Cached name for the 'set_handshake_headers' method. + + + + + Cached name for the 'get_inbound_buffer_size' method. + + + + + Cached name for the 'set_inbound_buffer_size' method. + + + + + Cached name for the 'get_outbound_buffer_size' method. + + + + + Cached name for the 'set_outbound_buffer_size' method. + + + + + Cached name for the 'set_max_queued_packets' method. + + + + + Cached name for the 'get_max_queued_packets' method. + + + + + Cached name for the 'set_heartbeat_interval' method. + + + + + Cached name for the 'get_heartbeat_interval' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 is forced to use signals, where other XR interfaces would instead use functions that return a result immediately. This makes quite a bit more complicated to initialize than other XR interfaces. + Here's the minimum code required to start an immersive VR session: + + extends Node3D + + var webxr_interface + var vr_supported = false + + func _ready(): + # We assume this node has a button as a child. + # This button is for the user to consent to entering immersive VR mode. + $Button.pressed.connect(self._on_button_pressed) + + webxr_interface = XRServer.find_interface("WebXR") + if webxr_interface: + # WebXR uses a lot of asynchronous callbacks, so we connect to various + # signals in order to receive them. + webxr_interface.session_supported.connect(self._webxr_session_supported) + webxr_interface.session_started.connect(self._webxr_session_started) + webxr_interface.session_ended.connect(self._webxr_session_ended) + webxr_interface.session_failed.connect(self._webxr_session_failed) + + # This returns immediately - our _webxr_session_supported() method + # (which we connected to the "session_supported" signal above) will + # be called sometime later to let us know if it's supported or not. + webxr_interface.is_session_supported("immersive-vr") + + func _webxr_session_supported(session_mode, supported): + if session_mode == 'immersive-vr': + vr_supported = supported + + func _on_button_pressed(): + if not vr_supported: + OS.alert("Your browser doesn't support VR") + return + + # We want an immersive VR session, as opposed to AR ('immersive-ar') or a + # simple 3DoF viewer ('viewer'). + webxr_interface.session_mode = 'immersive-vr' + # 'bounded-floor' is room scale, 'local-floor' is a standing or sitting + # experience (it puts you 1.6m above the ground if you have 3DoF headset), + # whereas as 'local' puts you down at the XROrigin. + # This list means it'll first try to request 'bounded-floor', then + # fallback on 'local-floor' and ultimately 'local', if nothing else is + # supported. + webxr_interface.requested_reference_space_types = 'bounded-floor, local-floor, local' + # In order to use 'local-floor' or 'bounded-floor' we must also + # mark the features as required or optional. By including 'hand-tracking' + # as an optional feature, it will be enabled if supported. + webxr_interface.required_features = 'local-floor' + webxr_interface.optional_features = 'bounded-floor, hand-tracking' + + # 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) + # This will be the list of features that were successfully enabled + # (except on browsers that don't support this property). + print("Enabled features: ", webxr_interface.enabled_features) + + func _webxr_session_ended(): + $Button.visible = true + # If the user exits immersive mode, then we tell Godot to render to the web + # page again. + get_viewport().use_xr = false + + func _webxr_session_failed(message): + OS.alert("Failed to initialize: " + message) + + There are a couple ways to handle "controller" input: + - Using nodes and their and 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 , 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. + + + + + We don't know the target ray mode. + + + + + Target ray originates at the viewer's eyes and points in the direction they are looking. + + + + + Target ray from a handheld pointer, most likely a VR touch controller. + + + + + Target ray from touch screen, mouse or other tactile input device. + + + + + The session mode used by when setting up the WebXR session. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRSessionMode, including: "immersive-vr", "immersive-ar", and "inline". + + + + + A comma-seperated list of required features used by when setting up the WebXR session. + If a user's browser or device doesn't support one of the given features, initialization will fail and will be emitted. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRReferenceSpaceType, or include other features like "hand-tracking" to enable hand tracking. + + + + + A comma-seperated list of optional features used by when setting up the WebXR session. + If a user's browser or device doesn't support one of the given features, initialization will continue, but you won't be able to use the requested feature. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRReferenceSpaceType, or include other features like "hand-tracking" to enable hand tracking. + + + + + A comma-seperated list of reference space types used by when setting up the WebXR session. + The reference space types are requested in order, and the first one supported by the users device or browser will be used. The property contains the reference space type that was ultimately selected. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRReferenceSpaceType. If you want to use a particular reference space type, it must be listed in either or . + + + + + The reference space type (from the list of requested types set in the property), that was ultimately used by when setting up the WebXR session. + Possible values come from WebXR's XRReferenceSpaceType. If you want to use a particular reference space type, it must be listed in either or . + + + + + A comma-separated list of features that were successfully enabled by when setting up the WebXR session. + This may include features requested by setting and , and will only be available after has been emitted. + Note: This may not be support by all web browsers, in which case it will be an empty string. + + + + + Indicates if the WebXR session's imagery is visible to the user. + Possible values come from WebXR's XRVisibilityState, including "hidden", "visible", and "visible-blurred". + + + + + Checks if the given is supported by the user's browser. + Possible values come from WebXR's XRSessionMode, including: "immersive-vr", "immersive-ar", and "inline". + This method returns nothing, instead it emits the signal with the result. + + + + + Returns if there is an active input source with the given . + + + + + Gets an for the given . + In the context of WebXR, an input source can be an advanced VR controller like the Oculus Touch or Index controllers, or even a tap on the screen, a spoken voice command or a button press on the device itself. When a non-traditional input source is used, interpret the position and orientation of the as a ray pointing at the object the user wishes to interact with. + Use this method to get information about the input source that triggered one of these signals: + - + - + - + - + - + - + + + + + Returns the target ray mode for the given . + This can help interpret the input coming from that input source. See XRInputSource.targetRayMode for more information. + + + + + Returns the display refresh rate for the current HMD. Not supported on all HMDs and browsers. It may not report an accurate value until after using . + + + + + Sets the display refresh rate for the current HMD. Not supported on all HMDs and browsers. It won't take effect right away until after is emitted. + + + + + Returns display refresh rates supported by the current HMD. Only returned if this feature is supported by the web browser and after the interface has been initialized. + + + + + Represents the method that handles the event of a class. + + + + + Emitted by to indicate if the given sessionMode is supported or not. + + + + + Emitted by if the session is successfully started. + At this point, it's safe to do get_viewport().use_xr = true to instruct Godot to start rendering to the XR device. + + + + + Emitted when the user ends the WebXR session (which can be done using UI from the browser or device). + At this point, you should do get_viewport().use_xr = false to instruct Godot to resume rendering to the screen. + + + + + Represents the method that handles the event of a class. + + + + + Emitted by if the session fails to start. + message may optionally contain an error message from WebXR, or an empty string if no message is available. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input source has started its "primary action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after one of the input sources has finished its "primary action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input sources has finished its "primary action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input sources has started its "primary squeeze action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after one of the input sources has finished its "primary squeeze action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input sources has finished its "primary squeeze action". + Use and to get more information about the input source. + + + + + Emitted when has changed. + + + + + Emitted to indicate that the reference space has been reset or reconfigured. + When (or whether) this is emitted depends on the user's browser or device, but may include when the user has changed the dimensions of their play space (which you may be able to access via ) or pressed/held a button to recenter their position. + See WebXR's XRReferenceSpace reset event for more information. + + + + + Emitted after the display's refresh rate has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'session_mode' property. + + + + + Cached name for the 'required_features' property. + + + + + Cached name for the 'optional_features' property. + + + + + Cached name for the 'requested_reference_space_types' property. + + + + + Cached name for the 'reference_space_type' property. + + + + + Cached name for the 'enabled_features' property. + + + + + Cached name for the 'visibility_state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_session_supported' method. + + + + + Cached name for the 'set_session_mode' method. + + + + + Cached name for the 'get_session_mode' method. + + + + + Cached name for the 'set_required_features' method. + + + + + Cached name for the 'get_required_features' method. + + + + + Cached name for the 'set_optional_features' method. + + + + + Cached name for the 'get_optional_features' method. + + + + + Cached name for the 'get_reference_space_type' method. + + + + + Cached name for the 'get_enabled_features' method. + + + + + Cached name for the 'set_requested_reference_space_types' method. + + + + + Cached name for the 'get_requested_reference_space_types' method. + + + + + Cached name for the 'is_input_source_active' method. + + + + + Cached name for the 'get_input_source_tracker' method. + + + + + Cached name for the 'get_input_source_target_ray_mode' method. + + + + + Cached name for the 'get_visibility_state' method. + + + + + Cached name for the 'get_display_refresh_rate' method. + + + + + Cached name for the 'set_display_refresh_rate' method. + + + + + Cached name for the 'get_available_display_refresh_rates' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'session_supported' signal. + + + + + Cached name for the 'session_started' signal. + + + + + Cached name for the 'session_ended' signal. + + + + + Cached name for the 'session_failed' signal. + + + + + Cached name for the 'selectstart' signal. + + + + + Cached name for the 'select' signal. + + + + + Cached name for the 'selectend' signal. + + + + + Cached name for the 'squeezestart' signal. + + + + + Cached name for the 'squeeze' signal. + + + + + Cached name for the 'squeezeend' signal. + + + + + Cached name for the 'visibility_state_changed' signal. + + + + + Cached name for the 'reference_space_reset' signal. + + + + + Cached name for the 'display_refresh_rate_changed' signal. + + + + + A node that creates a window. The window can either be a native system window or embedded inside another (see ). + At runtime, s will not close automatically when requested. You need to handle it manually using the signal (this applies both to pressing the close button and clicking outside of a popup). + + + + + Emitted when 's visibility changes, right before . + + + + + Sent when the node needs to refresh its theme items. This happens in one of the following cases: + - The property is changed on this node or any of its ancestors. + - The property is changed on this node. + - The node enters the scene tree. + Note: As an optimization, this notification won't be sent from changes that occur while this node is outside of the scene tree. Instead, all of the theme item updates can be applied at once when the node enters the scene tree. + + + + + Windowed mode, i.e. doesn't occupy the whole screen (unless set to the size of the screen). + + + + + Minimized window mode, i.e. is not visible and available on window manager's window list. Normally happens when the minimize button is pressed. + + + + + Maximized window mode, i.e. will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Multi-window full-screen mode has a 1px border of the ProjectSettings.rendering/environment/defaults/default_clear_color color. + On macOS: A new desktop is used to display the running project. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Depending on video driver, full screen transition might cause screens to go black for a moment. + On macOS: 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. + On Linux (X11): Exclusive full screen mode bypasses compositor. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + The window can't be resized by dragging its resize grip. It's still possible to resize the window using . This flag is ignored for full screen windows. Set with . + + + + + The window do not have native title bar and other decorations. This flag is ignored for full-screen windows. Set with . + + + + + The window is floating on top of all other windows. This flag is ignored for full-screen windows. Set with . + + + + + The window background can be transparent. Set with . + Note: This flag has no effect if either ProjectSettings.display/window/per_pixel_transparency/allowed, or the window's is set to . + + + + + The window can't be focused. No-focus window will ignore all input, except mouse clicks. Set with . + + + + + Window is part of menu or 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 ). + Note: This flag has no effect in embedded windows (unless said window is a ). + + + + + 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 . + Note: This flag is implemented only on macOS. + Note: This flag has no effect in embedded windows. + + + + + All mouse events are passed to the underlying window of the same application. + Note: This flag has no effect in embedded windows. + + + + + Window style is overridden, forcing sharp corners. + Note: This flag has no effect in embedded windows. + Note: This flag is implemented only on Windows (11). + + + + + Windows is excluded from screenshots taken by , , and . + Note: This flag is implemented on macOS and Windows. + Note: Setting this flag will NOT prevent other apps from capturing an image, it should not be used as a security measure. + + + + + Max value of the . + + + + + The content will not be scaled to match the 's size. + + + + + The content will be rendered at the target size. This is more performance-expensive than , but provides better results. + + + + + The content will be rendered at the base size and then scaled to the target size. More performant than , but results in pixelated image. + + + + + The aspect will be ignored. Scaling will simply stretch the content to fit the target size. + + + + + 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. + + + + + The content can be expanded vertically. Scaling horizontally will result in keeping the width ratio and then black bars on left and right sides. + + + + + The content can be expanded horizontally. Scaling vertically will result in keeping the height ratio and then black bars on top and bottom sides. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Automatic layout direction, determined from the parent window layout direction. + + + + + Automatic layout direction, determined from the current locale. + + + + + Left-to-right layout direction. + + + + + Right-to-left layout direction. + + + + + Automatic layout direction, determined from the system locale. + + + + + Represents the size of the enum. + + + + + Initial window position is determined by . + + + + + Initial window position is the center of the primary screen. + + + + + Initial window position is the center of the main window screen. + + + + + Initial window position is the center of screen. + + + + + Initial window position is the center of the screen containing the mouse pointer. + + + + + Initial window position is the center of the screen containing the window with the keyboard focus. + + + + + Set's the window's current mode. + Note: Fullscreen mode is not exclusive full screen on Windows and Linux. + Note: This method only works with native windows, i.e. the main window and -derived nodes when is disabled in the main viewport. + + + + + The window's title. If the is native, title styles set in will have no effect. + + + + + Specifies the initial type of position for the . See constants. + + + + + The window's position in pixels. + If ProjectSettings.display/window/subwindows/embed_subwindows is , the position is in absolute screen coordinates. This typically applies to editor plugins. If the setting is , the window's position is in the coordinates of its parent . + Note: This property only works if is set to . + + + + + The window's size in pixels. + + + + + The screen the window is currently on. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + GetNode<Window>("Window").MousePassthrough = GetNode<Path2D>("Path2D").Curve.GetBakedPoints(); + + // Set region, using Polygon2D node. + GetNode<Window>("Window").MousePassthrough = GetNode<Polygon2D>("Polygon2D").Polygon; + + // Reset region to default. + GetNode<Window>("Window").MousePassthrough = new Vector2[] {}; + + Note: This property is ignored if is set to . + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This property is implemented on Linux (X11), macOS and Windows. + + + + + If , the window is visible. + + + + + If , the window's size will automatically update when a child node is added or removed, ignoring if the new size is bigger. + If , you need to call manually. + + + + + If , the is transient, i.e. it's considered a child of another . The transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. + Note that behavior might be different depending on the platform. + + + + + If , and the is , this window will (at the time of becoming visible) become transient to the currently focused window instead of the immediate parent window in the hierarchy. Note that the transient parent is assigned at the time this window becomes visible, so changing it afterwards has no effect until re-shown. + + + + + If , the will be in exclusive mode. Exclusive windows are always on top of their parent and will block all input going to the parent . + Needs enabled to work. + + + + + If , the window can't be resized. Minimize and maximize buttons are disabled. + + + + + If , the window will have no borders. + + + + + If , the window will be on top of all other windows. Does not work if is enabled. + + + + + If , the 's background can be transparent. This is best used with embedded windows. + Note: Transparency support is implemented on Linux, macOS and Windows, but availability might vary depending on GPU driver, display manager, and compositor capabilities. + Note: This property has no effect if ProjectSettings.display/window/per_pixel_transparency/allowed is set to . + + + + + If , the can't be focused nor interacted with. It can still be visible. + + + + + If , the will be considered a popup. Popups are sub-windows that don't show as separate windows in system's window manager's window list and will send close request when anything is clicked outside of them (unless is enabled). + + + + + If , the contents is expanded to the full size of the window, window title bar is transparent. + Note: This property is implemented only on macOS. + Note: This property only works with native windows. + + + + + If , all mouse events will be passed to the underlying window of the same application. See also . + Note: This property is implemented on Linux (X11), macOS and Windows. + Note: This property only works with native windows. + + + + + If , the will override the OS window style to display sharp corners. + Note: This property is implemented only on Windows (11). + Note: This property only works with native windows. + + + + + Windows is excluded from screenshots taken by , , and . + + + + + If , native window will be used regardless of parent viewport and project settings. + + + + + If non-zero, the can't be resized to be smaller than this size. + Note: This property will be ignored in favor of if is enabled and if its size is bigger. + + + + + If non-zero, the can't be resized to be bigger than this size. + Note: This property will be ignored if the value is lower than . + + + + + If , the width is expanded to keep the title bar text fully visible. + + + + + Base size of the content (i.e. nodes that are drawn inside the window). If non-zero, 's content will be scaled when the window is resized to a different size. + + + + + Specifies how the content is scaled when the is resized. + + + + + Specifies how the content's aspect behaves when the is resized. The base aspect is determined by . + + + + + The policy to use to determine the final scale factor for 2D elements. This affects how is applied, in addition to the automatic scale factor determined by . + + + + + Specifies the base scale of 's content when its is equal to . See also . + + + + + Toggles if any text should automatically change to its translated version depending on the current locale. + + + + + The resource this node and all its and children use. If a child node has its own resource set, theme items are merged with child's definitions having higher priority. + Note: styles will have no effect unless the window is embedded. + + + + + The name of a theme type variation used by this to look up its own theme items. See for more details. + + + + + Virtual method to be implemented by the user. Overrides the value returned by . + + + + + Returns the ID of the window. + + + + + Centers a native window on the current screen and an embedded window on its embedder . + + + + + Resets the size to the minimum size, which is the max of and (if is enabled) . This is equivalent to calling set_size(Vector2i()) (or any size below the minimum). + + + + + Returns the window's position including its border. + Note: If is , this method returns the same value as . + + + + + Returns the window's size including its border. + Note: If is , this method returns the same value as . + + + + + Sets a specified window flag. + + + + + Returns if the is set. + + + + + Returns if the window can be maximized (the maximize button is enabled). + + + + + Tells the OS that the needs an attention. This makes the window stand out in some way depending on the system, e.g. it might blink on the task bar. + + + + + Causes the window to grab focus, allowing it to receive user input. + + + + + Hides the window. This is not the same as minimized state. Hidden window can't be interacted with and needs to be made visible with . + + + + + Makes the appear. This enables interactions with the and doesn't change any of its property other than visibility (unlike e.g. ). + + + + + If is , the window is automatically unparented when going invisible. + Note: Make sure to keep a reference to the node, otherwise it will be orphaned. You also need to manually call to free the window if it's not parented. + + + + + Returns whether the window is being drawn to the screen. + + + + + Returns if the window is focused. + + + + + Causes the window to grab focus, allowing it to receive user input. + + + + + If is , enables system's native IME (Input Method Editor). + + + + + Moves IME to the given position. + + + + + Returns if the window is currently embedded in another window. + + + + + Returns the combined minimum size from the child nodes of the window. Use to update it when child nodes have changed. + The value returned by this method can be overridden with . + + + + + Enables font oversampling. This makes fonts look better when they are scaled up. + + + + + Returns if font oversampling is enabled. See . + + + + + Requests an update of the size to fit underlying nodes. + + + + + Prevents *_theme_*_override methods from emitting until is called. + + + + + Ends a bulk theme override update. See . + + + + + Creates a local override for a theme icon with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also and for more details. + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme font size with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also and for more details. + + + + + Creates a local override for a theme constant with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Removes a local override for a theme icon with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme font size with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme constant with the specified previously added by or via the Inspector dock. + + + + + Returns an icon from the first matching in the tree if that has an icon item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a stylebox item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a font item with the specified and . + See for details. + + + + + Returns a font size from the first matching in the tree if that has a font size item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a color item with the specified and . + See for more details. + + + + + Returns a constant from the first matching in the tree if that has a constant item with the specified and . + See for more details. + + + + + Returns if there is a local override for a theme icon with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme font size with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme constant with the specified in this node. + See . + + + + + Returns if there is a matching in the tree that has an icon item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a stylebox item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font size item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a color item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a constant item with the specified and . + See for details. + + + + + Returns the default base scale value from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font size value from the first matching in the tree if that has a valid value. + See for details. + + + + + Sets layout direction and text writing direction. Right-to-left layouts are necessary for certain languages (e.g. Arabic and Hebrew). + + + + + Returns layout direction and text writing direction. + + + + + Returns if layout is right-to-left. + + + + + Shows the and makes it transient (see ). If is provided, it will be set as the 's size. Fails if called on the main window. + If ProjectSettings.display/window/subwindows/embed_subwindows is (single-window mode), 's coordinates are global and relative to the main window's top-left corner (excluding window decorations). If 's position coordinates are negative, the window will be located outside the main window and may not be visible as a result. + If ProjectSettings.display/window/subwindows/embed_subwindows is (multi-window mode), 's coordinates are global and relative to the top-left corner of the leftmost screen. If 's position coordinates are negative, the window will be placed at the top-left corner of the screen. + Note: must be in global coordinates if specified. + + If the parameter is null, then the default value is new Rect2I(new Vector2I(0, 0), new Vector2I(0, 0)). + + + + Popups the with a position shifted by parent 's position. If the is embedded, has the same effect as . + + + + + Popups the at the center of the current screen, with optionally given minimum size. If the is embedded, it will be centered in the parent instead. + Note: Calling it with the default value of is equivalent to calling it with . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + If is embedded, popups the centered inside its embedder and sets its size as a of embedder's size. + If is a native window, popups the centered inside the screen of its parent and sets its size as a of the screen size. + + + + + Popups the centered inside its parent . determines the maximum size of the , in relation to its parent. + Note: Calling it with the default value of is equivalent to calling it with . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + If the parameter is null, then the default value is new Rect2I(new Vector2I(0, 0), new Vector2I(0, 0)). + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Represents the method that handles the event of a class. + + + + + Emitted when the is currently focused and receives any input, passing the received event as an argument. The event's position, if present, is in the embedder's coordinate system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when files are dragged from the OS file manager and dropped in the game window. The argument is a list of file paths. + + func _ready(): + get_window().files_dropped.connect(on_files_dropped) + + func on_files_dropped(files): + print(files) + + Note: This signal only works with native windows, i.e. the main window and -derived nodes when is disabled in the main viewport. + + + + + Emitted when the mouse cursor enters the 's visible area, that is not occluded behind other s or windows, provided its is and regardless if it's currently focused or not. + + + + + Emitted when the mouse cursor leaves the 's visible area, that is not occluded behind other s or windows, provided its is and regardless if it's currently focused or not. + + + + + Emitted when the gains focus. + + + + + Emitted when the loses its focus. + + + + + Emitted when the 's close button is pressed or when is enabled and user clicks outside the window. + This signal can be used to handle window closing, e.g. by connecting it to . + + + + + Emitted when a go back request is sent (e.g. pressing the "Back" button on Android), right after . + + + + + Emitted when is made visible or disappears. + + + + + Emitted right after call, before the appears or does anything. + + + + + Emitted when the notification is sent. + + + + + Emitted when the 's DPI changes as a result of OS-level changes (e.g. moving the window from a Retina display to a lower resolution one). + Note: Only implemented on macOS. + + + + + Emitted when window title bar decorations are changed, e.g. macOS window enter/exit full screen mode, or extend-to-title flag is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'initial_position' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'current_screen' property. + + + + + Cached name for the 'mouse_passthrough_polygon' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'wrap_controls' property. + + + + + Cached name for the 'transient' property. + + + + + Cached name for the 'transient_to_focused' property. + + + + + Cached name for the 'exclusive' property. + + + + + Cached name for the 'unresizable' property. + + + + + Cached name for the 'borderless' property. + + + + + Cached name for the 'always_on_top' property. + + + + + Cached name for the 'transparent' property. + + + + + Cached name for the 'unfocusable' property. + + + + + Cached name for the 'popup_window' property. + + + + + Cached name for the 'extend_to_title' property. + + + + + Cached name for the 'mouse_passthrough' property. + + + + + Cached name for the 'sharp_corners' property. + + + + + Cached name for the 'exclude_from_capture' property. + + + + + Cached name for the 'force_native' property. + + + + + Cached name for the 'min_size' property. + + + + + Cached name for the 'max_size' property. + + + + + Cached name for the 'keep_title_visible' property. + + + + + Cached name for the 'content_scale_size' property. + + + + + Cached name for the 'content_scale_mode' property. + + + + + Cached name for the 'content_scale_aspect' property. + + + + + Cached name for the 'content_scale_stretch' property. + + + + + Cached name for the 'content_scale_factor' property. + + + + + Cached name for the 'auto_translate' property. + + + + + Cached name for the 'theme' property. + + + + + Cached name for the 'theme_type_variation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_contents_minimum_size' method. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'get_window_id' method. + + + + + Cached name for the 'set_initial_position' method. + + + + + Cached name for the 'get_initial_position' method. + + + + + Cached name for the 'set_current_screen' method. + + + + + Cached name for the 'get_current_screen' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'move_to_center' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'reset_size' method. + + + + + Cached name for the 'get_position_with_decorations' method. + + + + + Cached name for the 'get_size_with_decorations' method. + + + + + Cached name for the 'set_max_size' method. + + + + + Cached name for the 'get_max_size' method. + + + + + Cached name for the 'set_min_size' method. + + + + + Cached name for the 'get_min_size' method. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_flag' method. + + + + + Cached name for the 'get_flag' method. + + + + + Cached name for the 'is_maximize_allowed' method. + + + + + Cached name for the 'request_attention' method. + + + + + Cached name for the 'move_to_foreground' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'set_transient' method. + + + + + Cached name for the 'is_transient' method. + + + + + Cached name for the 'set_transient_to_focused' method. + + + + + Cached name for the 'is_transient_to_focused' method. + + + + + Cached name for the 'set_exclusive' method. + + + + + Cached name for the 'is_exclusive' method. + + + + + Cached name for the 'set_unparent_when_invisible' method. + + + + + Cached name for the 'can_draw' method. + + + + + Cached name for the 'has_focus' method. + + + + + Cached name for the 'grab_focus' method. + + + + + Cached name for the 'set_ime_active' method. + + + + + Cached name for the 'set_ime_position' method. + + + + + Cached name for the 'is_embedded' method. + + + + + Cached name for the 'get_contents_minimum_size' method. + + + + + Cached name for the 'set_force_native' method. + + + + + Cached name for the 'get_force_native' method. + + + + + Cached name for the 'set_content_scale_size' method. + + + + + Cached name for the 'get_content_scale_size' method. + + + + + Cached name for the 'set_content_scale_mode' method. + + + + + Cached name for the 'get_content_scale_mode' method. + + + + + Cached name for the 'set_content_scale_aspect' method. + + + + + Cached name for the 'get_content_scale_aspect' method. + + + + + Cached name for the 'set_content_scale_stretch' method. + + + + + Cached name for the 'get_content_scale_stretch' method. + + + + + Cached name for the 'set_keep_title_visible' method. + + + + + Cached name for the 'get_keep_title_visible' method. + + + + + Cached name for the 'set_content_scale_factor' method. + + + + + Cached name for the 'get_content_scale_factor' method. + + + + + Cached name for the 'set_use_font_oversampling' method. + + + + + Cached name for the 'is_using_font_oversampling' method. + + + + + Cached name for the 'set_mouse_passthrough_polygon' method. + + + + + Cached name for the 'get_mouse_passthrough_polygon' method. + + + + + Cached name for the 'set_wrap_controls' method. + + + + + Cached name for the 'is_wrapping_controls' method. + + + + + Cached name for the 'child_controls_changed' method. + + + + + Cached name for the 'set_theme' method. + + + + + Cached name for the 'get_theme' method. + + + + + Cached name for the 'set_theme_type_variation' method. + + + + + Cached name for the 'get_theme_type_variation' method. + + + + + Cached name for the 'begin_bulk_theme_override' method. + + + + + Cached name for the 'end_bulk_theme_override' method. + + + + + Cached name for the 'add_theme_icon_override' method. + + + + + Cached name for the 'add_theme_stylebox_override' method. + + + + + Cached name for the 'add_theme_font_override' method. + + + + + Cached name for the 'add_theme_font_size_override' method. + + + + + Cached name for the 'add_theme_color_override' method. + + + + + Cached name for the 'add_theme_constant_override' method. + + + + + Cached name for the 'remove_theme_icon_override' method. + + + + + Cached name for the 'remove_theme_stylebox_override' method. + + + + + Cached name for the 'remove_theme_font_override' method. + + + + + Cached name for the 'remove_theme_font_size_override' method. + + + + + Cached name for the 'remove_theme_color_override' method. + + + + + Cached name for the 'remove_theme_constant_override' method. + + + + + Cached name for the 'get_theme_icon' method. + + + + + Cached name for the 'get_theme_stylebox' method. + + + + + Cached name for the 'get_theme_font' method. + + + + + Cached name for the 'get_theme_font_size' method. + + + + + Cached name for the 'get_theme_color' method. + + + + + Cached name for the 'get_theme_constant' method. + + + + + Cached name for the 'has_theme_icon_override' method. + + + + + Cached name for the 'has_theme_stylebox_override' method. + + + + + Cached name for the 'has_theme_font_override' method. + + + + + Cached name for the 'has_theme_font_size_override' method. + + + + + Cached name for the 'has_theme_color_override' method. + + + + + Cached name for the 'has_theme_constant_override' method. + + + + + Cached name for the 'has_theme_icon' method. + + + + + Cached name for the 'has_theme_stylebox' method. + + + + + Cached name for the 'has_theme_font' method. + + + + + Cached name for the 'has_theme_font_size' method. + + + + + Cached name for the 'has_theme_color' method. + + + + + Cached name for the 'has_theme_constant' method. + + + + + Cached name for the 'get_theme_default_base_scale' method. + + + + + Cached name for the 'get_theme_default_font' method. + + + + + Cached name for the 'get_theme_default_font_size' method. + + + + + Cached name for the 'set_layout_direction' method. + + + + + Cached name for the 'get_layout_direction' method. + + + + + Cached name for the 'is_layout_rtl' method. + + + + + Cached name for the 'set_auto_translate' method. + + + + + Cached name for the 'is_auto_translating' method. + + + + + Cached name for the 'popup' method. + + + + + Cached name for the 'popup_on_parent' method. + + + + + Cached name for the 'popup_centered' method. + + + + + Cached name for the 'popup_centered_ratio' method. + + + + + Cached name for the 'popup_centered_clamped' method. + + + + + Cached name for the 'popup_exclusive' method. + + + + + Cached name for the 'popup_exclusive_on_parent' method. + + + + + Cached name for the 'popup_exclusive_centered' method. + + + + + Cached name for the 'popup_exclusive_centered_ratio' method. + + + + + Cached name for the 'popup_exclusive_centered_clamped' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'window_input' signal. + + + + + Cached name for the 'files_dropped' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + Cached name for the 'focus_entered' signal. + + + + + Cached name for the 'focus_exited' signal. + + + + + Cached name for the 'close_requested' signal. + + + + + Cached name for the 'go_back_requested' signal. + + + + + Cached name for the 'visibility_changed' signal. + + + + + Cached name for the 'about_to_popup' signal. + + + + + Cached name for the 'theme_changed' signal. + + + + + Cached name for the 'dpi_changed' signal. + + + + + Cached name for the 'titlebar_changed' signal. + + + + + The singleton allocates a set of s (called worker threads) on project startup and provides methods for offloading tasks to them. This can be used for simple multithreading without having to create s. + Tasks hold the to be run by the threads. can be used to create regular tasks, which will be taken by one worker thread, or group tasks, which can be distributed between multiple worker threads. Group tasks execute the multiple times, which makes them useful for iterating over a lot of elements, such as the enemies in an arena. + Here's a sample on how to offload an expensive function to worker threads: + + private List<Node> _enemies = new List<Node>(); // A list to be filled with enemies. + + private void ProcessEnemyAI(int enemyIndex) + { + Node processedEnemy = _enemies[enemyIndex]; + // Expensive logic here. + } + + public override void _Process(double delta) + { + long taskId = WorkerThreadPool.AddGroupTask(Callable.From<int>(ProcessEnemyAI), _enemies.Count); + // Other code... + WorkerThreadPool.WaitForGroupTaskCompletion(taskId); + // Other code that depends on the enemy AI already being processed. + } + + The above code relies on the number of elements in the enemies array remaining constant during the multithreaded part. + Note: Using this singleton could affect performance negatively if the task being distributed between threads is not computationally expensive. + + + + + Adds as a task to be executed by a worker thread. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the task with the given ID is completed. + Note: You should only call this method between adding the task and awaiting its completion. + + + + + Pauses the thread that calls this method until the task with the given ID is completed. + Returns if the task could be successfully awaited. + Returns if a task with the passed ID does not exist (maybe because it was already awaited and disposed of). + Returns if the call is made from another running task and, due to task scheduling, there's potential for deadlocking (e.g., the task to await may be at a lower level in the call stack and therefore can't progress). This is an advanced situation that should only matter when some tasks depend on others (in the current implementation, the tricky case is a task trying to wait on an older one). + + + + + Adds as a group task to be executed by the worker threads. The will be called a number of times based on , with the first thread calling it with the value 0 as a parameter, and each consecutive execution incrementing this value by 1 until it reaches element - 1. + The number of threads the task is distributed to is defined by , where the default value -1 means it is distributed to all worker threads. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a group task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the group task with the given ID is completed. + Note: You should only call this method between adding the group task and awaiting its completion. + + + + + Returns how many times the of the group task with the given ID has already been executed by the worker threads. + Note: If a thread has started executing the but is yet to finish, it won't be counted. + + + + + Pauses the thread that calls this method until the group task with the given ID is completed. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_task' method. + + + + + Cached name for the 'is_task_completed' method. + + + + + Cached name for the 'wait_for_task_completion' method. + + + + + Cached name for the 'add_group_task' method. + + + + + Cached name for the 'is_group_task_completed' method. + + + + + Cached name for the 'get_group_processed_element_count' method. + + + + + Cached name for the 'wait_for_group_task_completion' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton allocates a set of s (called worker threads) on project startup and provides methods for offloading tasks to them. This can be used for simple multithreading without having to create s. + Tasks hold the to be run by the threads. can be used to create regular tasks, which will be taken by one worker thread, or group tasks, which can be distributed between multiple worker threads. Group tasks execute the multiple times, which makes them useful for iterating over a lot of elements, such as the enemies in an arena. + Here's a sample on how to offload an expensive function to worker threads: + + private List<Node> _enemies = new List<Node>(); // A list to be filled with enemies. + + private void ProcessEnemyAI(int enemyIndex) + { + Node processedEnemy = _enemies[enemyIndex]; + // Expensive logic here. + } + + public override void _Process(double delta) + { + long taskId = WorkerThreadPool.AddGroupTask(Callable.From<int>(ProcessEnemyAI), _enemies.Count); + // Other code... + WorkerThreadPool.WaitForGroupTaskCompletion(taskId); + // Other code that depends on the enemy AI already being processed. + } + + The above code relies on the number of elements in the enemies array remaining constant during the multithreaded part. + Note: Using this singleton could affect performance negatively if the task being distributed between threads is not computationally expensive. + + + + + Adds as a task to be executed by a worker thread. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the task with the given ID is completed. + Note: You should only call this method between adding the task and awaiting its completion. + + + + + Pauses the thread that calls this method until the task with the given ID is completed. + Returns if the task could be successfully awaited. + Returns if a task with the passed ID does not exist (maybe because it was already awaited and disposed of). + Returns if the call is made from another running task and, due to task scheduling, there's potential for deadlocking (e.g., the task to await may be at a lower level in the call stack and therefore can't progress). This is an advanced situation that should only matter when some tasks depend on others (in the current implementation, the tricky case is a task trying to wait on an older one). + + + + + Adds as a group task to be executed by the worker threads. The will be called a number of times based on , with the first thread calling it with the value 0 as a parameter, and each consecutive execution incrementing this value by 1 until it reaches element - 1. + The number of threads the task is distributed to is defined by , where the default value -1 means it is distributed to all worker threads. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a group task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the group task with the given ID is completed. + Note: You should only call this method between adding the group task and awaiting its completion. + + + + + Returns how many times the of the group task with the given ID has already been executed by the worker threads. + Note: If a thread has started executing the but is yet to finish, it won't be counted. + + + + + Pauses the thread that calls this method until the group task with the given ID is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_task' method. + + + + + Cached name for the 'is_task_completed' method. + + + + + Cached name for the 'wait_for_task_completion' method. + + + + + Cached name for the 'add_group_task' method. + + + + + Cached name for the 'is_group_task_completed' method. + + + + + Cached name for the 'get_group_processed_element_count' method. + + + + + Cached name for the 'wait_for_group_task_completion' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The of this world's canvas resource. Used by the for 2D drawing. + + + + + The of this world's physics space resource. Used by the for 2D physics, treating it as both a space and an area. + + + + + The of this world's navigation map. Used by the . + + + + + Direct access to the world's physics 2D space state. Used for querying current and potential collisions. When using multi-threaded physics, access is limited to in the main thread. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'canvas' property. + + + + + Cached name for the 'space' property. + + + + + Cached name for the 'navigation_map' property. + + + + + Cached name for the 'direct_space_state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_canvas' method. + + + + + Cached name for the 'get_space' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'get_direct_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The World3D's . + + + + + The World3D's fallback environment will be used if fails or is missing. + + + + + The default resource to use if none set on the . + + + + + The World3D's physics space. + + + + + The of this world's navigation map. Used by the . + + + + + The World3D's visual scenario. + + + + + Direct access to the world's physics 3D space state. Used for querying current and potential collisions. When using multi-threaded physics, access is limited to in the main thread. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'environment' property. + + + + + Cached name for the 'fallback_environment' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'space' property. + + + + + Cached name for the 'navigation_map' property. + + + + + Cached name for the 'scenario' property. + + + + + Cached name for the 'direct_space_state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_space' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'get_scenario' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_fallback_environment' method. + + + + + Cached name for the 'get_fallback_environment' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached name for the 'get_direct_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D world boundary shape, intended for use in physics. 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. + + + + + The line's normal, typically a unit vector. Its direction indicates the non-colliding half-plane. Can be of any length but zero. Defaults to Vector2.UP. + + + + + The distance from the origin to the line, expressed in terms of (according to its direction and magnitude). Actual absolute distance from the origin to the line can be calculated as abs(distance) / normal.length(). + In the scalar equation of the line ax + by = d, this is d, while the (a, b) coordinates are represented by the property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'normal' property. + + + + + Cached name for the 'distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_normal' method. + + + + + Cached name for the 'get_normal' method. + + + + + Cached name for the 'set_distance' method. + + + + + Cached name for the 'get_distance' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D world boundary shape, intended for use in physics. works like an infinite plane that forces all physics bodies to stay above it. The '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. + + + + + The used by the for collision. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'plane' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_plane' method. + + + + + Cached name for the 'get_plane' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is used to configure the default for the scene. + The parameters defined in the can be overridden by an node set on the current . Additionally, only one may be instantiated in a given scene at a time. + The 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. + + + + + The resource used by this , defining the default properties. + + + + + The default resource to use if none set on the . + + + + + The default resource to use if none set on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'environment' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'compositor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached name for the 'set_compositor' method. + + + + + Cached name for the 'get_compositor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The X509Certificate class represents an X509 certificate. Certificates can be loaded and saved like any other . + They can be used as the server certificate in (along with the proper ), and to specify the only certificate that should be accepted when connecting to a TLS server via . + + + + + Saves a certificate to the given (should be a "*.crt" file). + + + + + Loads a certificate from ("*.crt" file). + + + + + Returns a string representation of the certificate, or an empty string if the certificate is invalid. + + + + + Loads a certificate from the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'save_to_string' method. + + + + + Cached name for the 'load_from_string' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a low-level interface for creating parsers for XML files. This class can serve as base to make custom XML parsers. + To parse XML, you must open a file with the method or a buffer with the method. Then, the 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 to parse an SVG file (which is based on XML), printing each element and its attributes as a dictionary: + + var parser = new XmlParser(); + parser.Open("path/to/file.svg"); + while (parser.Read() != Error.FileEof) + { + if (parser.GetNodeType() == XmlParser.NodeType.Element) + { + var nodeName = parser.GetNodeName(); + var attributesDict = new Godot.Collections.Dictionary(); + for (int idx = 0; idx < parser.GetAttributeCount(); idx++) + { + attributesDict[parser.GetAttributeName(idx)] = parser.GetAttributeValue(idx); + } + GD.Print($"The {nodeName} element has the following attributes: {attributesDict}"); + } + } + + + + + + There's no node (no file or buffer opened). + + + + + An element node type, also known as a tag, e.g. <title>. + + + + + An end of element node type, e.g. </title>. + + + + + A text node type, i.e. text that is not inside an element. This includes whitespace. + + + + + A comment node type, e.g. <!--A comment-->. + + + + + A node type for CDATA (Character Data) sections, e.g. <![CDATA[CDATA section]]>. + + + + + An unknown node type. + + + + + Parses the next node in the file. This method returns an error code. + + + + + Returns the type of the current node. Compare with constants. + + + + + Returns the name of a node. This method will raise an error if the currently parsed node is a text node. + Note: The content of a node and the comment string of a node are also considered names. + + + + + Returns the contents of a text node. This method will raise an error if the current parsed node is of any other type. + + + + + Returns the byte offset of the currently parsed node since the beginning of the file or buffer. This is usually equivalent to the number of characters before the read position. + + + + + Returns the number of attributes in the currently parsed element. + Note: If this method is used while the currently parsed node is not or , this count will not be updated and will still reflect the last element. + + + + + Returns the name of an attribute of the currently parsed element, specified by the index. + + + + + Returns the value of an attribute of the currently parsed element, specified by the index. + + + + + Returns if the currently parsed element has an attribute with the . + + + + + Returns the value of an attribute of the currently parsed element, specified by its . This method will raise an error if the element has no such attribute. + + + + + Returns the value of an attribute of the currently parsed element, specified by its . This method will return an empty string if the element has no such attribute. + + + + + Returns if the currently parsed element is empty, e.g. <element />. + + + + + Returns the current line in the parsed file, counting from 0. + + + + + Skips the current section. If the currently parsed node contains more inner nodes, they will be ignored and the cursor will go to the closing of the current element. + + + + + Moves the buffer cursor to a certain offset (since the beginning) and reads the next node there. This method returns an error code. + + + + + Opens an XML for parsing. This method returns an error code. + + + + + Opens an XML raw for parsing. This method returns an error code. + + + + + Opens an XML raw for parsing. This method returns an error code. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'read' method. + + + + + Cached name for the 'get_node_type' method. + + + + + Cached name for the 'get_node_name' method. + + + + + Cached name for the 'get_node_data' method. + + + + + Cached name for the 'get_node_offset' method. + + + + + Cached name for the 'get_attribute_count' method. + + + + + Cached name for the 'get_attribute_name' method. + + + + + Cached name for the 'get_attribute_value' method. + + + + + Cached name for the 'has_attribute' method. + + + + + Cached name for the 'get_named_attribute_value' method. + + + + + Cached name for the 'get_named_attribute_value_safe' method. + + + + + Cached name for the 'is_empty' method. + + + + + Cached name for the 'get_current_line' method. + + + + + Cached name for the 'skip_section' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'open_buffer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The point is an 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. + + + + + Returns the estimated size of the plane that was detected. Say when the anchor relates to a table in the real world, this is the estimated size of the surface of that table. + + + + + Returns a plane aligned with our anchor; handy for intersection testing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_plane' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node uses body tracking data from an to pose the skeleton of a body mesh. + Positioning of the body is performed by creating an ancestor of the body mesh driven by the same . + The body tracking position-data is scaled by when applied to the skeleton, which can be used to adjust the tracked body to match the scale of the body model. + + + + + The skeleton's upper body joints are updated. + + + + + The skeleton's lower body joints are updated. + + + + + The skeleton's hand joints are updated. + + + + + The skeleton's bones are fully updated (both position and rotation) to match the tracked bones. + + + + + The skeleton's bones are only rotated to align with the tracked bones, preserving bone length. + + + + + Represents the size of the enum. + + + + + The name of the registered with to obtain the body tracking data from. + + + + + Specifies the body parts to update. + + + + + Specifies the type of updates to perform on the bones. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'body_tracker' property. + + + + + Cached name for the 'body_update' property. + + + + + Cached name for the 'bone_update' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_body_tracker' method. + + + + + Cached name for the 'get_body_tracker' method. + + + + + Cached name for the 'set_body_update' method. + + + + + Cached name for the 'get_body_update' method. + + + + + Cached name for the 'set_bone_update' method. + + + + + Cached name for the 'get_bone_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A body tracking system will create an instance of this object and add it to the . This tracking system will then obtain skeleton data, convert it to the Godot Humanoid skeleton and store this data on the object. + Use to animate a body mesh using body tracking data. + + + + + Upper body tracking supported. + + + + + Lower body tracking supported. + + + + + Hand tracking supported. + + + + + Root joint. + + + + + Hips joint. + + + + + Spine joint. + + + + + Chest joint. + + + + + Upper chest joint. + + + + + Neck joint. + + + + + Head joint. + + + + + Head tip joint. + + + + + Left shoulder joint. + + + + + Left upper arm joint. + + + + + Left lower arm joint. + + + + + Right shoulder joint. + + + + + Right upper arm joint. + + + + + Right lower arm joint. + + + + + Left upper leg joint. + + + + + Left lower leg joint. + + + + + Left foot joint. + + + + + Left toes joint. + + + + + Right upper leg joint. + + + + + Right lower leg joint. + + + + + Right foot joint. + + + + + Right toes joint. + + + + + Left hand joint. + + + + + Left palm joint. + + + + + Left wrist joint. + + + + + Left thumb metacarpal joint. + + + + + Left thumb phalanx proximal joint. + + + + + Left thumb phalanx distal joint. + + + + + Left thumb tip joint. + + + + + Left index finger metacarpal joint. + + + + + Left index finger phalanx proximal joint. + + + + + Left index finger phalanx intermediate joint. + + + + + Left index finger phalanx distal joint. + + + + + Left index finger tip joint. + + + + + Left middle finger metacarpal joint. + + + + + Left middle finger phalanx proximal joint. + + + + + Left middle finger phalanx intermediate joint. + + + + + Left middle finger phalanx distal joint. + + + + + Left middle finger tip joint. + + + + + Left ring finger metacarpal joint. + + + + + Left ring finger phalanx proximal joint. + + + + + Left ring finger phalanx intermediate joint. + + + + + Left ring finger phalanx distal joint. + + + + + Left ring finger tip joint. + + + + + Left pinky finger metacarpal joint. + + + + + Left pinky finger phalanx proximal joint. + + + + + Left pinky finger phalanx intermediate joint. + + + + + Left pinky finger phalanx distal joint. + + + + + Left pinky finger tip joint. + + + + + Right hand joint. + + + + + Right palm joint. + + + + + Right wrist joint. + + + + + Right thumb metacarpal joint. + + + + + Right thumb phalanx proximal joint. + + + + + Right thumb phalanx distal joint. + + + + + Right thumb tip joint. + + + + + Right index finger metacarpal joint. + + + + + Right index finger phalanx proximal joint. + + + + + Right index finger phalanx intermediate joint. + + + + + Right index finger phalanx distal joint. + + + + + Right index finger tip joint. + + + + + Right middle finger metacarpal joint. + + + + + Right middle finger phalanx proximal joint. + + + + + Right middle finger phalanx intermediate joint. + + + + + Right middle finger phalanx distal joint. + + + + + Right middle finger tip joint. + + + + + Right ring finger metacarpal joint. + + + + + Right ring finger phalanx proximal joint. + + + + + Right ring finger phalanx intermediate joint. + + + + + Right ring finger phalanx distal joint. + + + + + Right ring finger tip joint. + + + + + Right pinky finger metacarpal joint. + + + + + Right pinky finger phalanx proximal joint. + + + + + Right pinky finger phalanx intermediate joint. + + + + + Right pinky finger phalanx distal joint. + + + + + Right pinky finger tip joint. + + + + + Represents the size of the enum. + + + + + The joint's orientation data is valid. + + + + + The joint's orientation is actively tracked. May not be set if tracking has been temporarily lost. + + + + + The joint's position data is valid. + + + + + The joint's position is actively tracked. May not be set if tracking has been temporarily lost. + + + + + If , the body tracking data is valid. + + + + + The type of body tracking data captured. + + + + + Sets flags about the validity of the tracking data for the given body joint. + + + + + Returns flags about the validity of the tracking data for the given body joint (see ). + + + + + Sets the transform for the given body joint. + + + + + Returns the transform for the given body joint. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'has_tracking_data' property. + + + + + Cached name for the 'body_flags' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_has_tracking_data' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'set_body_flags' method. + + + + + Cached name for the 'get_body_flags' method. + + + + + Cached name for the 'set_joint_flags' method. + + + + + Cached name for the 'get_joint_flags' method. + + + + + Cached name for the 'set_joint_transform' method. + + + + + Cached name for the 'get_joint_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a helper 3D 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a helper 3D 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 . 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. + + + + + Returns if the button with the given is pressed. + + + + + Returns a for the input with the given . This works for any input type, the variant will be typed according to the actions configuration. + + + + + Returns a numeric value for the input with the given . This is used for triggers and grip sensors. + + + + + Returns a for the input with the given . This is used for thumbsticks and thumbpads found on many controllers. + + + + + Returns the hand holding this controller, if known. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this controller is pressed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this controller is released. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a trigger or similar input on this controller changes value. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a thumbstick or thumbpad on this controller is moved. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the interaction profile on this controller is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_button_pressed' method. + + + + + Cached name for the 'get_input' method. + + + + + Cached name for the 'get_float' method. + + + + + Cached name for the 'get_vector2' method. + + + + + Cached name for the 'get_tracker_hand' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'button_pressed' signal. + + + + + Cached name for the 'button_released' signal. + + + + + Cached name for the 'input_float_changed' signal. + + + + + Cached name for the 'input_vector2_changed' signal. + + + + + Cached name for the 'profile_changed' signal. + + + + + An instance of this object represents a controller that is tracked. + As controllers are turned on and the detects them, instances of this object are automatically added to this list of active tracking objects accessible through the . + The consumes objects of this type and should be used in your project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node applies weights from a to a mesh with supporting face blend shapes. + The Unified Expressions blend shapes are supported, as well as ARKit and SRanipal blend shapes. + The node attempts to identify blend shapes based on name matching. Blend shapes should match the names listed in the Unified Expressions Compatibility chart. + + + + + The path. + + + + + The of the face . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'face_tracker' property. + + + + + Cached name for the 'target' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_face_tracker' method. + + + + + Cached name for the 'get_face_tracker' method. + + + + + Cached name for the 'set_target' method. + + + + + Cached name for the 'get_target' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An instance of this object represents a tracked face and its corresponding blend shapes. The blend shapes come from the Unified Expressions standard, and contain extended details and visuals for each blend shape. Additionally the Tracking Standard Comparison page documents the relationship between Unified Expressions and other standards. + As face trackers are turned on they are registered with the . + + + + + Right eye looks outwards. + + + + + Right eye looks inwards. + + + + + Right eye looks upwards. + + + + + Right eye looks downwards. + + + + + Left eye looks outwards. + + + + + Left eye looks inwards. + + + + + Left eye looks upwards. + + + + + Left eye looks downwards. + + + + + Closes the right eyelid. + + + + + Closes the left eyelid. + + + + + Squeezes the right eye socket muscles. + + + + + Squeezes the left eye socket muscles. + + + + + Right eyelid widens beyond relaxed. + + + + + Left eyelid widens beyond relaxed. + + + + + Dilates the right eye pupil. + + + + + Dilates the left eye pupil. + + + + + Constricts the right eye pupil. + + + + + Constricts the left eye pupil. + + + + + Right eyebrow pinches in. + + + + + Left eyebrow pinches in. + + + + + Outer right eyebrow pulls down. + + + + + Outer left eyebrow pulls down. + + + + + Inner right eyebrow pulls up. + + + + + Inner left eyebrow pulls up. + + + + + Outer right eyebrow pulls up. + + + + + Outer left eyebrow pulls up. + + + + + Right side face sneers. + + + + + Left side face sneers. + + + + + Right side nose canal dilates. + + + + + Left side nose canal dilates. + + + + + Right side nose canal constricts. + + + + + Left side nose canal constricts. + + + + + Raises the right side cheek. + + + + + Raises the left side cheek. + + + + + Puffs the right side cheek. + + + + + Puffs the left side cheek. + + + + + Sucks in the right side cheek. + + + + + Sucks in the left side cheek. + + + + + Opens jawbone. + + + + + Closes the mouth. + + + + + Pushes jawbone right. + + + + + Pushes jawbone left. + + + + + Pushes jawbone forward. + + + + + Pushes jawbone backward. + + + + + Flexes jaw muscles. + + + + + Raises the jawbone. + + + + + Upper right lip part tucks in the mouth. + + + + + Upper left lip part tucks in the mouth. + + + + + Lower right lip part tucks in the mouth. + + + + + Lower left lip part tucks in the mouth. + + + + + Right lip corner folds into the mouth. + + + + + Left lip corner folds into the mouth. + + + + + Upper right lip part pushes into a funnel. + + + + + Upper left lip part pushes into a funnel. + + + + + Lower right lip part pushes into a funnel. + + + + + Lower left lip part pushes into a funnel. + + + + + Upper right lip part pushes outwards. + + + + + Upper left lip part pushes outwards. + + + + + Lower right lip part pushes outwards. + + + + + Lower left lip part pushes outwards. + + + + + Upper right part of the lip pulls up. + + + + + Upper left part of the lip pulls up. + + + + + Lower right part of the lip pulls up. + + + + + Lower left part of the lip pulls up. + + + + + Upper right lip part pushes in the cheek. + + + + + Upper left lip part pushes in the cheek. + + + + + Moves upper lip right. + + + + + Moves upper lip left. + + + + + Moves lower lip right. + + + + + Moves lower lip left. + + + + + Right lip corner pulls diagonally up and out. + + + + + Left lip corner pulls diagonally up and out. + + + + + Right corner lip slants up. + + + + + Left corner lip slants up. + + + + + Right corner lip pulls down. + + + + + Left corner lip pulls down. + + + + + Mouth corner lip pulls out and down. + + + + + Mouth corner lip pulls out and down. + + + + + Right lip corner is pushed backwards. + + + + + Left lip corner is pushed backwards. + + + + + Raises and slightly pushes out the upper mouth. + + + + + Raises and slightly pushes out the lower mouth. + + + + + Right side lips press and flatten together vertically. + + + + + Left side lips press and flatten together vertically. + + + + + Right side lips squeeze together horizontally. + + + + + Left side lips squeeze together horizontally. + + + + + Tongue visibly sticks out of the mouth. + + + + + Tongue points upwards. + + + + + Tongue points downwards. + + + + + Tongue points right. + + + + + Tongue points left. + + + + + Sides of the tongue funnel, creating a roll. + + + + + Tongue arches up then down inside the mouth. + + + + + Tongue arches down then up inside the mouth. + + + + + Tongue squishes together and thickens. + + + + + Tongue flattens and thins out. + + + + + Tongue tip rotates clockwise, with the rest following gradually. + + + + + Tongue tip rotates counter-clockwise, with the rest following gradually. + + + + + Inner mouth throat closes. + + + + + The Adam's apple visibly swallows. + + + + + Right side neck visibly flexes. + + + + + Left side neck visibly flexes. + + + + + Closes both eye lids. + + + + + Widens both eye lids. + + + + + Squints both eye lids. + + + + + Dilates both pupils. + + + + + Constricts both pupils. + + + + + Pulls the right eyebrow down and in. + + + + + Pulls the left eyebrow down and in. + + + + + Pulls both eyebrows down and in. + + + + + Right brow appears worried. + + + + + Left brow appears worried. + + + + + Both brows appear worried. + + + + + Entire face sneers. + + + + + Both nose canals dilate. + + + + + Both nose canals constrict. + + + + + Puffs both cheeks. + + + + + Sucks in both cheeks. + + + + + Raises both cheeks. + + + + + Tucks in the upper lips. + + + + + Tucks in the lower lips. + + + + + Tucks in both lips. + + + + + Funnels in the upper lips. + + + + + Funnels in the lower lips. + + + + + Funnels in both lips. + + + + + Upper lip part pushes outwards. + + + + + Lower lip part pushes outwards. + + + + + Lips push outwards. + + + + + Raises the upper lips. + + + + + Lowers the lower lips. + + + + + Mouth opens, revealing teeth. + + + + + Moves mouth right. + + + + + Moves mouth left. + + + + + Right side of the mouth smiles. + + + + + Left side of the mouth smiles. + + + + + Mouth expresses a smile. + + + + + Right side of the mouth expresses sadness. + + + + + Left side of the mouth expresses sadness. + + + + + Mouth expresses sadness. + + + + + Mouth stretches. + + + + + Lip corners dimple. + + + + + Mouth tightens. + + + + + Mouth presses together. + + + + + Represents the size of the enum. + + + + + The array of face blend shape weights with indices corresponding to the enum. + + + + + Returns the requested face blend shape weight. + + + + + Sets a face blend shape weight. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'blend_shapes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_blend_shape' method. + + + + + Cached name for the 'set_blend_shape' method. + + + + + Cached name for the 'get_blend_shapes' method. + + + + + Cached name for the 'set_blend_shapes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node uses hand tracking data from an to pose the skeleton of a hand mesh. + Positioning of hands is performed by creating an ancestor of the hand mesh driven by the same . + The hand tracking position-data is scaled by when applied to the skeleton, which can be used to adjust the tracked hand to match the scale of the hand model. + + + + + The skeleton's bones are fully updated (both position and rotation) to match the tracked bones. + + + + + The skeleton's bones are only rotated to align with the tracked bones, preserving bone length. + + + + + Represents the size of the enum. + + + + + The name of the registered with to obtain the hand tracking data from. + + + + + Specifies the type of updates to perform on the bones. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hand_tracker' property. + + + + + Cached name for the 'bone_update' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hand_tracker' method. + + + + + Cached name for the 'get_hand_tracker' method. + + + + + Cached name for the 'set_bone_update' method. + + + + + Cached name for the 'get_bone_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A hand tracking system will create an instance of this object and add it to the . This tracking system will then obtain skeleton data, convert it to the Godot Humanoid hand skeleton and store this data on the object. + Use to animate a hand mesh using hand tracking data. + + + + + The source of hand tracking data is unknown. + + + + + The source of hand tracking data is unobstructed, meaning that an accurate method of hand tracking is used. These include optical hand tracking, data gloves, etc. + + + + + The source of hand tracking data is a controller, meaning that joint positions are inferred from controller inputs. + + + + + No hand tracking data is tracked, this either means the hand is obscured, the controller is turned off, or tracking is not supported for the current input type. + + + + + Represents the size of the enum. + + + + + Palm joint. + + + + + Wrist joint. + + + + + Thumb metacarpal joint. + + + + + Thumb phalanx proximal joint. + + + + + Thumb phalanx distal joint. + + + + + Thumb tip joint. + + + + + Index finger metacarpal joint. + + + + + Index finger phalanx proximal joint. + + + + + Index finger phalanx intermediate joint. + + + + + Index finger phalanx distal joint. + + + + + Index finger tip joint. + + + + + Middle finger metacarpal joint. + + + + + Middle finger phalanx proximal joint. + + + + + Middle finger phalanx intermediate joint. + + + + + Middle finger phalanx distal joint. + + + + + Middle finger tip joint. + + + + + Ring finger metacarpal joint. + + + + + Ring finger phalanx proximal joint. + + + + + Ring finger phalanx intermediate joint. + + + + + Ring finger phalanx distal joint. + + + + + Ring finger tip joint. + + + + + Pinky finger metacarpal joint. + + + + + Pinky finger phalanx proximal joint. + + + + + Pinky finger phalanx intermediate joint. + + + + + Pinky finger phalanx distal joint. + + + + + Pinky finger tip joint. + + + + + Represents the size of the enum. + + + + + The hand joint's orientation data is valid. + + + + + The hand joint's orientation is actively tracked. May not be set if tracking has been temporarily lost. + + + + + The hand joint's position data is valid. + + + + + The hand joint's position is actively tracked. May not be set if tracking has been temporarily lost. + + + + + The hand joint's linear velocity data is valid. + + + + + The hand joint's angular velocity data is valid. + + + + + If , the hand tracking data is valid. + + + + + The source of the hand tracking data. + + + + + Sets flags about the validity of the tracking data for the given hand joint. + + + + + Returns flags about the validity of the tracking data for the given hand joint (see ). + + + + + Sets the transform for the given hand joint. + + + + + Returns the transform for the given hand joint. + + + + + Sets the radius of the given hand joint. + + + + + Returns the radius of the given hand joint. + + + + + Sets the linear velocity for the given hand joint. + + + + + Returns the linear velocity for the given hand joint. + + + + + Sets the angular velocity for the given hand joint. + + + + + Returns the angular velocity for the given hand joint. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'has_tracking_data' property. + + + + + Cached name for the 'hand_tracking_source' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_has_tracking_data' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'set_hand_tracking_source' method. + + + + + Cached name for the 'get_hand_tracking_source' method. + + + + + Cached name for the 'set_hand_joint_flags' method. + + + + + Cached name for the 'get_hand_joint_flags' method. + + + + + Cached name for the 'set_hand_joint_transform' method. + + + + + Cached name for the 'get_hand_joint_transform' method. + + + + + Cached name for the 'set_hand_joint_radius' method. + + + + + Cached name for the 'get_hand_joint_radius' method. + + + + + Cached name for the 'set_hand_joint_linear_velocity' method. + + + + + Cached name for the 'get_hand_joint_linear_velocity' method. + + + + + Cached name for the 'set_hand_joint_angular_velocity' method. + + + + + Cached name for the 'get_hand_joint_angular_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + No XR capabilities. + + + + + This interface can work with normal rendering output (non-HMD based AR). + + + + + This interface supports stereoscopic rendering. + + + + + This interface supports quad rendering (not yet supported by Godot). + + + + + This interface supports VR. + + + + + This interface supports AR (video background and real world tracking). + + + + + 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 ). Using a separate viewport node frees up the main viewport for other purposes. + + + + + Tracking is behaving as expected. + + + + + Tracking is hindered by excessive motion (the player is moving faster than tracking can keep up). + + + + + Tracking is hindered by insufficient features, it's too dark (for camera-based tracking), player is blocked, etc. + + + + + We don't know the status of the tracking or this interface does not provide feedback. + + + + + Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.). + + + + + Play area mode not set or not available. + + + + + Play area only supports orientation tracking, no positional tracking, area will center around player. + + + + + Player is in seated position, limited positional tracking, fixed guardian around player. + + + + + Player is free to move around, full positional tracking. + + + + + Same as but origin point is fixed to the center of the physical space. In this mode, system-level recentering may be disabled, requiring the use of . + + + + + Opaque blend mode. This is typically used for VR devices. + + + + + Additive blend mode. This is typically used for AR devices or VR devices with passthrough. + + + + + 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. + + + + + if this is the primary interface. + + + + + The play area mode for this interface. + + + + + Specify how XR should blend in the environment. This is specific to certain AR and passthrough devices where camera images are blended in by the XR compositor. + + + + + On an AR interface, if anchor detection is enabled. + + + + + Returns the name of this interface ("OpenXR", "OpenVR", "OpenHMD", "ARKit", etc.). + + + + + Returns a combination of flags providing information about the capabilities of this interface. + + + + + Returns if this interface has been initialized. + + + + + Call this to initialize this interface. The first interface that is initialized is identified as the primary interface and it will be used for rendering output. + After initializing the interface you want to use you then need to enable the AR/VR mode of a viewport and rendering should commence. + Note: You must enable the XR mode on the main viewport for any device that uses the main output of Godot, such as for mobile VR. + If you do this for a platform that handles its own output (such as OpenVR) Godot will show just one eye without distortion on screen. Alternatively, you can add a separate viewport node to your scene and enable AR/VR on that viewport. It will be used to output to the HMD, leaving you free to do anything you like in the main window, such as using a separate camera as a spectator camera or rendering something completely different. + While currently not used, you can activate additional interfaces. You may wish to do this if you want to track controllers from other platforms. However, at this point in time only one interface can render to an HMD. + + + + + Turns the interface off. + + + + + Returns a with extra system info. Interfaces are expected to return XRRuntimeName and XRRuntimeVersion providing info about the used XR runtime. Additional entries may be provided specific to an interface. + Note:This information may only be available after was successfully called. + + + + + If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking. + + + + + Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform. + + + + + Returns the number of views that need to be rendered for this device. 1 for Monoscopic, 2 for Stereoscopic. + + + + + Triggers a haptic pulse on a device associated with this interface. + is the name of the action for this pulse. + is optional and can be used to direct the pulse to a specific device provided that device is bound to this haptic. + is the frequency of the pulse, set to 0.0 to have the system use a default frequency. + is the amplitude of the pulse between 0.0 and 1.0. + is the duration of the pulse in seconds. + is a delay in seconds before the pulse is given. + + + + + Call this to find out if a given play area mode is supported by this interface. + + + + + Sets the active play area mode, will return if the mode can't be used with this interface. + Note: Changing this after the interface has already been initialized can be jarring for the player, so it's recommended to recenter on the HMD with (if switching to ) or make the switch during a scene change. + + + + + Returns an array of vectors that represent the physical play area mapped to the virtual space around the point. The points form a convex polygon that can be used to react to or visualize the play area. This returns an empty array if this feature is not supported or if the information is not yet available. + + + + + If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed ID in the for this interface. + + + + + Returns if this interface supports passthrough. + + + + + Returns if passthrough is enabled. + + + + + Starts passthrough, will return if passthrough couldn't be started. + Note: The viewport used for XR must have a transparent background, otherwise passthrough may not properly render. + + + + + Stops passthrough. + + + + + Returns the transform for a view/eye. + is the view/eye index. + is the transform that maps device coordinates to scene coordinates, typically the of the current XROrigin3D. + + + + + Returns the projection matrix for a view/eye. + + + + + Returns the an array of supported environment blend modes, see . + + + + + Sets the active environment blend mode. + is the environment blend mode starting with the next frame. + Note: Not all runtimes support all environment blend modes, so it is important to check this at startup. For example: + + func _ready(): + var xr_interface = XRServer.find_interface("OpenXR") + if xr_interface and xr_interface.is_initialized(): + var vp = get_viewport() + vp.use_xr = true + var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, XRInterface.XR_ENV_BLEND_MODE_ADDITIVE] + var modes = xr_interface.get_supported_environment_blend_modes() + for mode in acceptable_modes: + if mode in modes: + xr_interface.set_environment_blend_mode(mode) + break + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the play area is changed. This can be a result of the player resetting the boundary or entering a new play area, the player changing the play area mode, the world scale changing or the player resetting their headset orientation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'interface_is_primary' property. + + + + + Cached name for the 'xr_play_area_mode' property. + + + + + Cached name for the 'environment_blend_mode' property. + + + + + Cached name for the 'ar_is_anchor_detection_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_capabilities' method. + + + + + Cached name for the 'is_primary' method. + + + + + Cached name for the 'set_primary' method. + + + + + Cached name for the 'is_initialized' method. + + + + + Cached name for the 'initialize' method. + + + + + Cached name for the 'uninitialize' method. + + + + + Cached name for the 'get_system_info' method. + + + + + Cached name for the 'get_tracking_status' method. + + + + + Cached name for the 'get_render_target_size' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'trigger_haptic_pulse' method. + + + + + Cached name for the 'supports_play_area_mode' method. + + + + + Cached name for the 'get_play_area_mode' method. + + + + + Cached name for the 'set_play_area_mode' method. + + + + + Cached name for the 'get_play_area' method. + + + + + Cached name for the 'get_anchor_detection_is_enabled' method. + + + + + Cached name for the 'set_anchor_detection_is_enabled' method. + + + + + Cached name for the 'get_camera_feed_id' method. + + + + + Cached name for the 'is_passthrough_supported' method. + + + + + Cached name for the 'is_passthrough_enabled' method. + + + + + Cached name for the 'start_passthrough' method. + + + + + Cached name for the 'stop_passthrough' method. + + + + + Cached name for the 'get_transform_for_view' method. + + + + + Cached name for the 'get_projection_for_view' method. + + + + + Cached name for the 'get_supported_environment_blend_modes' method. + + + + + Cached name for the 'set_environment_blend_mode' method. + + + + + Cached name for the 'get_environment_blend_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'play_area_changed' signal. + + + + + External XR interface plugins should inherit from this class. + + + + + Called if interface is active and queues have been submitted. + + + + + Return if anchor detection is enabled for this interface. + + + + + Returns the camera feed ID for the registered with the that should be presented as the background on an AR capable device (if applicable). + + + + + Returns the that positions the in the world. + + + + + Returns the capabilities of this interface. + + + + + Return color texture into which to render (if applicable). + + + + + Return depth texture into which to render (if applicable). + + + + + Returns the name of this interface. + + + + + Returns a [] that represents the play areas boundaries (if applicable). + + + + + Returns the play area mode that sets up our play area. + + + + + Returns the projection matrix for the given view as a []. + + + + + Returns the size of our render target for this interface, this overrides the size of the marked as the xr viewport. + + + + + Returns a [] with pose names configured by this interface. Note that user configuration can override this list. + + + + + Returns a [] with tracker names configured by this interface. Note that user configuration can override this list. + + + + + Returns a with system information related to this interface. + + + + + Returns a specifying the current status of our tracking. + + + + + Returns a for a given view. + + + + + Return velocity texture into which to render (if applicable). + + + + + Returns the number of views this interface requires, 1 for mono, 2 for stereoscopic. + + + + + Initializes the interface, returns on success. + + + + + Returns if this interface has been initialized. + + + + + Called after the XR draw logic has completed. + + + + + Called if this is our primary before we start processing a for every active XR , returns if that viewport should be rendered. An XR interface may return if the user has taken off their headset and we can pause rendering. + + + + + Called if this is active before rendering starts. Most XR interfaces will sync tracking at this point in time. + + + + + Called if this is active before our physics and game process is called. Most XR interfaces will update its s at this point in time. + + + + + Enables anchor detection on this interface if supported. + + + + + Set the play area mode for this interface. + + + + + Returns if this interface supports this play area mode. + + + + + Triggers a haptic pulse to be emitted on the specified tracker. + + + + + Uninitialize the interface. + + + + + Blits our render results to screen optionally applying lens distortion. This can only be called while processing _commit_views. + + + + + Returns a valid for a texture to which we should render the current frame if supported by the interface. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_end_frame' method. + + + + + Cached name for the '_get_anchor_detection_is_enabled' method. + + + + + Cached name for the '_get_camera_feed_id' method. + + + + + Cached name for the '_get_camera_transform' method. + + + + + Cached name for the '_get_capabilities' method. + + + + + Cached name for the '_get_color_texture' method. + + + + + Cached name for the '_get_depth_texture' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_play_area' method. + + + + + Cached name for the '_get_play_area_mode' method. + + + + + Cached name for the '_get_projection_for_view' method. + + + + + Cached name for the '_get_render_target_size' method. + + + + + Cached name for the '_get_suggested_pose_names' method. + + + + + Cached name for the '_get_suggested_tracker_names' method. + + + + + Cached name for the '_get_system_info' method. + + + + + Cached name for the '_get_tracking_status' method. + + + + + Cached name for the '_get_transform_for_view' method. + + + + + Cached name for the '_get_velocity_texture' method. + + + + + Cached name for the '_get_view_count' method. + + + + + Cached name for the '_get_vrs_texture' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_is_initialized' method. + + + + + Cached name for the '_post_draw_viewport' method. + + + + + Cached name for the '_pre_draw_viewport' method. + + + + + Cached name for the '_pre_render' method. + + + + + Cached name for the '_process' method. + + + + + Cached name for the '_set_anchor_detection_is_enabled' method. + + + + + Cached name for the '_set_play_area_mode' method. + + + + + Cached name for the '_supports_play_area_mode' method. + + + + + Cached name for the '_trigger_haptic_pulse' method. + + + + + Cached name for the '_uninitialize' method. + + + + + Cached name for the 'get_color_texture' method. + + + + + Cached name for the 'get_depth_texture' method. + + + + + Cached name for the 'get_velocity_texture' method. + + + + + Cached name for the 'add_blit' method. + + + + + Cached name for the 'get_render_target_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node can be bound to a specific pose of a and will automatically have its updated by the . Nodes of this type must be added as children of the node. + + + + + The name of the tracker we're bound to. Which trackers are available is not known during design time. + Godot defines a number of standard trackers such as left_hand and right_hand but others may be configured within a given . + + + + + The name of the pose we're bound to. Which poses a tracker supports is not known during design time. + Godot defines number of standard pose names such as aim and grip but other may be configured within a given . + + + + + Enables showing the node when tracking starts, and hiding the node when tracking is lost. + + + + + Returns if the has been registered and the is being tracked. + + + + + Returns if the has current tracking data for the being tracked. + + + + + Returns the containing the current state of the pose being tracked. This gives access to additional properties of this pose. + + + + + Triggers a haptic pulse on a device associated with this interface. + is the name of the action for this pulse. + is the frequency of the pulse, set to 0.0 to have the system use a default frequency. + is the amplitude of the pulse between 0.0 and 1.0. + is the duration of the pulse in seconds. + is a delay in seconds before the pulse is given. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the starts or stops receiving updated tracking data for the being tracked. The tracking argument indicates whether the tracker is getting updated tracking data. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tracker' property. + + + + + Cached name for the 'pose' property. + + + + + Cached name for the 'show_when_tracked' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tracker' method. + + + + + Cached name for the 'get_tracker' method. + + + + + Cached name for the 'set_pose_name' method. + + + + + Cached name for the 'get_pose_name' method. + + + + + Cached name for the 'set_show_when_tracked' method. + + + + + Cached name for the 'get_show_when_tracked' method. + + + + + Cached name for the 'get_is_active' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'get_pose' method. + + + + + Cached name for the 'trigger_haptic_pulse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tracking_changed' signal. + + + + + 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 , , and 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 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. + + + + + The scale of the game world compared to the real world. This is the same as . By default, most AR/VR platforms assume that 1 game unit corresponds to 1 real world meter. + + + + + If , this origin node is currently being used by the . Only one origin point can be used at a time. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'world_scale' property. + + + + + Cached name for the 'current' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_world_scale' method. + + + + + Cached name for the 'get_world_scale' method. + + + + + Cached name for the 'set_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + No tracking information is available for this pose. + + + + + Tracking information may be inaccurate or estimated. For example, with inside out tracking this would indicate a controller may be (partially) obscured. + + + + + Tracking information is considered accurate and up to date. + + + + + If our tracking data is up to date. If we're no longer receiving new tracking data and our state is whatever that last valid state was. + + + + + The name of this pose. Usually, this name is derived from an action map set up by the user. Godot also suggests some pose names that objects are expected to implement: + - root is the root location, often used for tracked objects that do not have further nodes. + - aim is the tip of a controller with its orientation pointing outwards, often used for raycasts. + - grip is the location where the user grips the controller. + - skeleton is the root location for a hand mesh, when using hand tracking and an animated skeleton is supplied by the XR runtime. + + + + + The transform containing the original and transform as reported by the XR runtime. + + + + + The linear velocity of this pose. + + + + + The angular velocity for this pose. + + + + + The tracking confidence for this pose, provides insight on how accurate the spatial positioning of this record is. + + + + + Returns the with world scale and our reference frame applied. This is the transform used to position objects. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'has_tracking_data' property. + + + + + Cached name for the 'name' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'tracking_confidence' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_has_tracking_data' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_adjusted_transform' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_tracking_confidence' method. + + + + + Cached name for the 'get_tracking_confidence' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 detects them, instances of this object are automatically added to this list of active tracking objects accessible through the . + The and 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. + + + + + The hand this tracker is held in is unknown or not applicable. + + + + + This tracker is the left hand controller. + + + + + This tracker is the right hand controller. + + + + + Represents the size of the enum. + + + + + The profile associated with this tracker, interface dependent but will indicate the type of controller being tracked. + + + + + Defines which hand this tracker relates to. + + + + + Returns if the tracker is available and is currently tracking the bound pose. + + + + + Returns the current state object for the bound pose. + + + + + Marks this pose as invalid, we don't clear the last reported state but it allows users to decide if trackers need to be hidden if we lose tracking or just remain at their last known position. + + + + + Sets the transform, linear velocity, angular velocity and tracking confidence for the given pose. This method is called by a implementation and should not be used directly. + + + + + Returns an input for this tracker. It can return a boolean, float or value depending on whether the input is a button, trigger or thumbstick/thumbpad. + + + + + Changes the value for the given input. This method is called by a implementation and should not be used directly. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the state of a pose tracked by this tracker changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a pose tracked by this tracker stops getting updated tracking data. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this tracker is pressed. Note that many XR runtimes allow other inputs to be mapped to buttons. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this tracker is released. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a trigger or similar input on this tracker changes value. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a thumbstick or thumbpad on this tracker moves. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the profile of our tracker changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'profile' property. + + + + + Cached name for the 'hand' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tracker_profile' method. + + + + + Cached name for the 'set_tracker_profile' method. + + + + + Cached name for the 'get_tracker_hand' method. + + + + + Cached name for the 'set_tracker_hand' method. + + + + + Cached name for the 'has_pose' method. + + + + + Cached name for the 'get_pose' method. + + + + + Cached name for the 'invalidate_pose' method. + + + + + Cached name for the 'set_pose' method. + + + + + Cached name for the 'get_input' method. + + + + + Cached name for the 'set_input' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pose_changed' signal. + + + + + Cached name for the 'pose_lost_tracking' signal. + + + + + Cached name for the 'button_pressed' signal. + + + + + Cached name for the 'button_released' signal. + + + + + Cached name for the 'input_float_changed' signal. + + + + + Cached name for the 'input_vector2_changed' signal. + + + + + Cached name for the 'profile_changed' signal. + + + + + The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing. + + + + + 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. + + + + + The tracker tracks the location of a controller. + + + + + The tracker tracks the location of a base station. + + + + + The tracker tracks the location and size of an AR anchor. + + + + + The tracker tracks the location and joints of a hand. + + + + + The tracker tracks the location and joints of a body. + + + + + The tracker tracks the expressions of a face. + + + + + Used internally to filter trackers of any known type. + + + + + Used internally if we haven't set the tracker type yet. + + + + + Used internally to select all trackers. + + + + + 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. + + + + + 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. + + + + + Does not reset the orientation of the HMD, only the position of the player gets centered. + + + + + The scale of the game world compared to the real world. By default, most AR/VR platforms assume that 1 game unit corresponds to 1 real world meter. + + + + + The current origin of our tracking space in the virtual world. This is used by the renderer to properly position the camera with new tracking data. + Note: This property is managed by the current node. It is exposed for access from GDExtensions. + + + + + If set to , the scene will be rendered as if the camera is locked to the . + Note: This doesn't provide a very comfortable experience for users. This setting exists for doing benchmarking or automated testing, where you want to control what is rendered via code. + + + + + The primary currently bound to the . + + + + + Returns the reference frame transform. Mostly used internally and exposed for GDExtension build interfaces. + + + + + Clears the reference frame that was set by previous calls to . + + + + + This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently. + For platforms that do not offer spatial tracking, our origin point (0, 0, 0) is the location of our HMD, but you have little control over the direction the player is facing in the real world. + For platforms that do offer spatial tracking, our origin point depends very much on the system. For OpenVR, our origin point is usually the center of the tracking space, on the ground. For other platforms, it's often the location of the tracking camera. + This method allows you to center your tracker on the location of the HMD. It will take the current location of the HMD and use that to adjust all your tracking data; in essence, realigning the real world to your player's current position in the game world. + For this method to produce usable results, tracking information must be available. This often takes a few frames after starting your game. + You should call this method after a few seconds have passed. For example, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism. + + + + + Returns the primary interface's transformation. + + + + + Registers an object. + + + + + Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns . + + + + + Removes this . + + + + + Returns the interface registered at the given index in the list of interfaces. + + + + + Returns a list of available interfaces the ID and name of each interface. + + + + + Finds an interface by its . For example, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it. + + + + + Registers a new that tracks a physical object. + + + + + Removes this . + + + + + Returns a dictionary of trackers for . + + + + + Returns the positional tracker with the given . + + + + + Removes this . + + + + + Registers a new that tracks a physical object. + + + + + Emitted when the reference frame transform changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new tracker has been added. If you don't use a fixed number of controllers or if you're using s for an AR solution, it is important to react to this signal to add the appropriate or nodes related to this new tracker. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an existing tracker has been updated. This can happen if the user switches controllers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tracker is removed. You should remove any or points if applicable. This is not mandatory, the nodes simply become inactive and will be made active again when a new tracker becomes available (i.e. a new controller is switched on that takes the place of the previous one). + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'world_scale' property. + + + + + Cached name for the 'world_origin' property. + + + + + Cached name for the 'camera_locked_to_origin' property. + + + + + Cached name for the 'primary_interface' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_world_scale' method. + + + + + Cached name for the 'set_world_scale' method. + + + + + Cached name for the 'get_world_origin' method. + + + + + Cached name for the 'set_world_origin' method. + + + + + Cached name for the 'get_reference_frame' method. + + + + + Cached name for the 'clear_reference_frame' method. + + + + + Cached name for the 'center_on_hmd' method. + + + + + Cached name for the 'get_hmd_transform' method. + + + + + Cached name for the 'set_camera_locked_to_origin' method. + + + + + Cached name for the 'is_camera_locked_to_origin' method. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'add_tracker' method. + + + + + Cached name for the 'remove_tracker' method. + + + + + Cached name for the 'get_trackers' method. + + + + + Cached name for the 'get_tracker' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'reference_frame_changed' signal. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + Cached name for the 'tracker_added' signal. + + + + + Cached name for the 'tracker_updated' signal. + + + + + Cached name for the 'tracker_removed' signal. + + + + + The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing. + + + + + The scale of the game world compared to the real world. By default, most AR/VR platforms assume that 1 game unit corresponds to 1 real world meter. + + + + + The current origin of our tracking space in the virtual world. This is used by the renderer to properly position the camera with new tracking data. + Note: This property is managed by the current node. It is exposed for access from GDExtensions. + + + + + If set to , the scene will be rendered as if the camera is locked to the . + Note: This doesn't provide a very comfortable experience for users. This setting exists for doing benchmarking or automated testing, where you want to control what is rendered via code. + + + + + The primary currently bound to the . + + + + + Returns the reference frame transform. Mostly used internally and exposed for GDExtension build interfaces. + + + + + Clears the reference frame that was set by previous calls to . + + + + + This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently. + For platforms that do not offer spatial tracking, our origin point (0, 0, 0) is the location of our HMD, but you have little control over the direction the player is facing in the real world. + For platforms that do offer spatial tracking, our origin point depends very much on the system. For OpenVR, our origin point is usually the center of the tracking space, on the ground. For other platforms, it's often the location of the tracking camera. + This method allows you to center your tracker on the location of the HMD. It will take the current location of the HMD and use that to adjust all your tracking data; in essence, realigning the real world to your player's current position in the game world. + For this method to produce usable results, tracking information must be available. This often takes a few frames after starting your game. + You should call this method after a few seconds have passed. For example, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism. + + + + + Returns the primary interface's transformation. + + + + + Registers an object. + + + + + Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns . + + + + + Removes this . + + + + + Returns the interface registered at the given index in the list of interfaces. + + + + + Returns a list of available interfaces the ID and name of each interface. + + + + + Finds an interface by its . For example, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it. + + + + + Registers a new that tracks a physical object. + + + + + Removes this . + + + + + Returns a dictionary of trackers for . + + + + + Returns the positional tracker with the given . + + + + + Removes this . + + + + + Registers a new that tracks a physical object. + + + + + Emitted when the reference frame transform changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new tracker has been added. If you don't use a fixed number of controllers or if you're using s for an AR solution, it is important to react to this signal to add the appropriate or nodes related to this new tracker. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an existing tracker has been updated. This can happen if the user switches controllers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tracker is removed. You should remove any or points if applicable. This is not mandatory, the nodes simply become inactive and will be made active again when a new tracker becomes available (i.e. a new controller is switched on that takes the place of the previous one). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'world_scale' property. + + + + + Cached name for the 'world_origin' property. + + + + + Cached name for the 'camera_locked_to_origin' property. + + + + + Cached name for the 'primary_interface' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_world_scale' method. + + + + + Cached name for the 'set_world_scale' method. + + + + + Cached name for the 'get_world_origin' method. + + + + + Cached name for the 'set_world_origin' method. + + + + + Cached name for the 'get_reference_frame' method. + + + + + Cached name for the 'clear_reference_frame' method. + + + + + Cached name for the 'center_on_hmd' method. + + + + + Cached name for the 'get_hmd_transform' method. + + + + + Cached name for the 'set_camera_locked_to_origin' method. + + + + + Cached name for the 'is_camera_locked_to_origin' method. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'add_tracker' method. + + + + + Cached name for the 'remove_tracker' method. + + + + + Cached name for the 'get_trackers' method. + + + + + Cached name for the 'get_tracker' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'reference_frame_changed' signal. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + Cached name for the 'tracker_added' signal. + + + + + Cached name for the 'tracker_updated' signal. + + + + + Cached name for the 'tracker_removed' signal. + + + + + This object is the base of all XR trackers. + + + + + The type of tracker. + + + + + The unique name of this tracker. The trackers that are available differ between various XR runtimes and can often be configured by the user. Godot maintains a number of reserved names that it expects the to implement if applicable: + - head identifies the of the players head + - left_hand identifies the in the players left hand + - right_hand identifies the in the players right hand + - /user/hand_tracker/left identifies the for the players left hand + - /user/hand_tracker/right identifies the for the players right hand + - /user/body_tracker identifies the for the players body + - /user/face_tracker identifies the for the players face + + + + + The description of this tracker. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'type' property. + + + + + Cached name for the 'name' property. + + + + + Cached name for the 'description' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tracker_type' method. + + + + + Cached name for the 'set_tracker_type' method. + + + + + Cached name for the 'get_tracker_name' method. + + + + + Cached name for the 'set_tracker_name' method. + + + + + Cached name for the 'get_tracker_desc' method. + + + + + Cached name for the 'set_tracker_desc' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used by various XR interfaces to generate VRS textures that can be used to speed up rendering. + + + + + The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size. + + + + + The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. + + + + + Generates the VRS texture based on a render adjusted by our VRS tile size. For each eyes focal point passed in a layer is created. Focal point should be in NDC. + The result will be cached, requesting a VRS texture with unchanged parameters and settings will return the cached RID. + + + + + Generates the VRS texture based on a render adjusted by our VRS tile size. For each eyes focal point passed in a layer is created. Focal point should be in NDC. + The result will be cached, requesting a VRS texture with unchanged parameters and settings will return the cached RID. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vrs_min_radius' property. + + + + + Cached name for the 'vrs_strength' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_vrs_min_radius' method. + + + + + Cached name for the 'set_vrs_min_radius' method. + + + + + Cached name for the 'get_vrs_strength' method. + + + + + Cached name for the 'set_vrs_strength' method. + + + + + Cached name for the 'make_vrs_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class implements a writer that allows storing the multiple blobs in a ZIP archive. See also and . + + # Create a ZIP archive with a single file at its root. + 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 + + + + + + Create a new zip archive at the given path. + + + + + Append a new zip archive to the end of the already existing file at the given path. + + + + + Add new files to the existing zip archive at the given path. + + + + + Opens a zip file for writing at the given path using the specified write mode. + This must be called before everything else. + + + + + Starts writing to a file within the archive. Only one file can be written at the same time. + Must be called after . + + + + + Write the given to the file. + Needs to be called after . + + + + + Write the given to the file. + Needs to be called after . + + + + + Stops writing to a file within the archive. + It will fail if there is no open file. + + + + + Closes the underlying resources used by this instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'start_file' method. + + + + + Cached name for the 'write_file' method. + + + + + Cached name for the 'close_file' method. + + + + + Cached name for the 'close' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class implements a reader that can extract the content of individual files inside a ZIP archive. See also . + + # Read a single file from a ZIP archive. + func read_zip_file(): + var reader = ZIPReader.new() + var err = reader.open("user://archive.zip") + if err != OK: + return PackedByteArray() + var res = reader.read_file("hello.txt") + reader.close() + return res + + # Extract all files from a ZIP archive, preserving the directories within. + # This acts like the "Extract all" functionality from most archive managers. + func extract_all_from_zip(): + var reader = ZIPReader.new() + reader.open("res://archive.zip") + + # Destination directory for the extracted files (this folder must exist before extraction). + # Not all ZIP archives put everything in a single root folder, + # which means several files/folders may be created in `root_dir` after extraction. + var root_dir = DirAccess.open("user://") + + var files = reader.get_files() + for file_path in files: + # If the current entry is a directory. + if file_path.ends_with("/"): + root_dir.make_dir_recursive(file_path) + continue + + # Write file contents, creating folders automatically when needed. + # Not all ZIP archives are strictly ordered, so we need to do this in case + # the file entry comes before the folder entry. + root_dir.make_dir_recursive(root_dir.get_current_dir().path_join(file_path).get_base_dir()) + var file = FileAccess.open(root_dir.get_current_dir().path_join(file_path), FileAccess.WRITE) + var buffer = reader.read_file(file_path) + file.store_buffer(buffer) + + + + + + Opens the zip archive at the given and reads its file index. + + + + + Closes the underlying resources used by this instance. + + + + + Returns the list of names of all files in the loaded archive. + Must be called after . + + + + + Loads the whole content of a file in the loaded zip archive into memory and returns it. + Must be called after . + + + + + Returns if the file exists in the loaded zip archive. + Must be called after . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'get_files' method. + + + + + Cached name for the 'read_file' method. + + + + + Cached name for the 'file_exists' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + diff --git a/bin/GodotSharp/Api/Debug/GodotSharpEditor.dll b/bin/GodotSharp/Api/Debug/GodotSharpEditor.dll new file mode 100644 index 0000000..05db9f0 Binary files /dev/null and b/bin/GodotSharp/Api/Debug/GodotSharpEditor.dll differ diff --git a/bin/GodotSharp/Api/Debug/GodotSharpEditor.pdb b/bin/GodotSharp/Api/Debug/GodotSharpEditor.pdb new file mode 100644 index 0000000..3880464 Binary files /dev/null and b/bin/GodotSharp/Api/Debug/GodotSharpEditor.pdb differ diff --git a/bin/GodotSharp/Api/Debug/GodotSharpEditor.xml b/bin/GodotSharp/Api/Debug/GodotSharpEditor.xml new file mode 100644 index 0000000..146b353 --- /dev/null +++ b/bin/GodotSharp/Api/Debug/GodotSharpEditor.xml @@ -0,0 +1,11968 @@ + + + + GodotSharpEditor + + + + + is a manager for objects associated with edited scenes. Each scene has its own undo history and ensures that each action performed in the editor gets associated with a proper scene. For actions not related to scenes ( edits, external resources, etc.), a separate global history is used. + The usage is mostly the same as . 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 , 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. + is intended to be used by Godot editor plugins. You can obtain it using . For non-editor uses or plugins that don't need to integrate with the editor's undo history, use instead. + The manager's API is mostly the same as in , so you can refer to its documentation for more examples. The main difference is that uses object + method name for actions, instead of . + + + + + + + + Global history not associated with any scene, but with external resources etc. + + + + + History associated with remote inspector. Used when live editing a running project. + + + + + Invalid "null" history. It's a special value, not associated with any object. + + + + + Create a new action. After this is called, do all your calls to , , , and , then commit the action with . + The way actions are merged is dictated by the argument. See for details. + If object is provided, it will be used for deducing target history (instead of using the first operation). + The way undo operation are ordered in actions is dictated by . When is undo option are ordered in the same order they were added. Which means the first operation to be added will be the first to be undone. + + + + + Commits the action. If is (default), all "do" methods/properties are called/set when this function is called. + + + + + Returns if the is currently committing the action, i.e. running its "do" method or property change (see ). + + + + + Forces the next operation (e.g. ) to use the action's history rather than guessing it from the object. This is sometimes needed when a history can't be correctly determined, like for a nested resource that doesn't have a path yet. + This method should only be used when absolutely necessary, otherwise it might cause invalid history state. For most of complex cases, the custom_context parameter of is sufficient. + + + + + Register a method that will be called when the action is committed (i.e. the "do" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a method that will be called when the action is committed (i.e. the "do" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a method that will be called when the action is undone (i.e. the "undo" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a method that will be called when the action is undone (i.e. the "undo" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a property value change for "do". + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a property value change for "undo". + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a reference for "do" that will be erased if the "do" history is lost. This is useful mostly for new nodes created for the "do" call. Do not use for resources. + + + + + Register a reference for "undo" that will be erased if the "undo" history is lost. This is useful mostly for nodes removed with the "do" call (not the "undo" call!). + + + + + Returns the history ID deduced from the given . It can be used with . + + + + + Returns the object associated with the given history . + above 0 are mapped to the opened scene tabs (but it doesn't match their order). of 0 or lower have special meaning (see ). + Best used with . This method is only provided in case you need some more advanced methods of (but keep in mind that directly operating on the object might affect editor's stability). + + + + + Clears the given undo history. You can clear history for a specific scene, global history, or for all scenes at once if is . + If is , the undo history version will be increased, marking it as unsaved. Useful for operations that modify the scene, but don't support undo. + + var scene_root = EditorInterface.get_edited_scene_root() + var undo_redo = EditorInterface.get_editor_undo_redo() + undo_redo.clear_history(undo_redo.get_object_history_id(scene_root)) + + Note: If you want to mark an edited scene as unsaved without clearing its history, use instead. + + + + + Emitted when the list of actions in any history has changed, either when an action is committed or a history is cleared. + + + + + Emitted when the version of any history has changed as a result of undo or redo call. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_action' method. + + + + + Cached name for the 'commit_action' method. + + + + + Cached name for the 'is_committing_action' method. + + + + + Cached name for the 'force_fixed_history' method. + + + + + Cached name for the 'add_do_method' method. + + + + + Cached name for the 'add_undo_method' method. + + + + + Cached name for the 'add_do_property' method. + + + + + Cached name for the 'add_undo_property' method. + + + + + Cached name for the 'add_do_reference' method. + + + + + Cached name for the 'add_undo_reference' method. + + + + + Cached name for the 'get_object_history_id' method. + + + + + Cached name for the 'get_history_undo_redo' method. + + + + + Cached name for the 'clear_history' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'history_changed' signal. + + + + + Cached name for the 'version_changed' signal. + + + + + Object that holds all the available Commands and their shortcuts text. These Commands can be accessed through Editor > Command Palette menu. + Command key names use slash delimiters to distinguish sections, for example: "example/command1" then example will be the section name. + + 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) + + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Adds a custom command to EditorCommandPalette. + - : (Name of the Command. This is displayed to the user.) + - : (Name of the key for a particular Command. This is used to uniquely identify the Command.) + - : (Callable of the Command. This will be executed when the Command is selected.) + - : (Shortcut text of the Command if available.) + + + + + Removes the custom command from EditorCommandPalette. + - : (Name of the key for a particular Command.) + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_command' method. + + + + + Cached name for the 'remove_command' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows for the addition of custom options in the editor's context menu. + Currently, context menus are supported for three commonly used areas: the file system, scene tree, and editor script list panel. + + + + + Context menu of Scene dock. will be called with a list of paths to currently selected nodes, while option callback will receive the list of currently selected nodes. + + + + + Context menu of FileSystem dock. and option callback will be called with list of paths of the currently selected files. + + + + + The "Create..." submenu of FileSystem dock's context menu. and option callback will be called with list of paths of the currently selected files. + + + + + Context menu of Scene dock. will be called with the path to the currently edited script, while option callback will receive reference to that script. + + + + + Called when creating a context menu, custom options can be added by using the or functions. contains currently selected paths (depending on menu), which can be used to conditionally add options. + + + + + Registers a shortcut associated with the plugin's context menu. This method should be called once (e.g. in plugin's ). will be called when user presses the specified while the menu's context is in effect (e.g. FileSystem dock is focused). Callback should take single argument; array contents depend on context menu slot. + + func _init(): + add_menu_shortcut(SHORTCUT, handle) + + + + + + Add custom option to the context menu of the plugin's specified slot. When the option is activated, will be called. Callback should take single argument; array contents depend on context menu slot. + + func _popup_menu(paths): + add_context_menu_item("File Custom options", handle, ICON) + + If you want to assign shortcut to the menu item, use instead. + + + + + Add custom option to the context menu of the plugin's specified slot. The option will have the assigned and reuse its callback. The shortcut has to be registered beforehand with . + + func _init(): + add_menu_shortcut(SHORTCUT, handle) + + func _popup_menu(paths): + add_context_menu_item_from_shortcut("File Custom options", SHORTCUT, ICON) + + + + + + Add a submenu to the context menu of the plugin's specified slot. The submenu is not automatically handled, you need to connect to its signals yourself. Also the submenu is freed on every popup, so provide a new every time. + + func _popup_menu(paths): + var popup_menu = PopupMenu.new() + popup_menu.add_item("Blue") + popup_menu.add_item("White") + popup_menu.id_pressed.connect(_on_color_submenu_option) + + add_context_menu_item("Set Node Color", popup_menu) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_popup_menu' method. + + + + + Cached name for the 'add_menu_shortcut' method. + + + + + Cached name for the 'add_context_menu_item' method. + + + + + Cached name for the 'add_context_menu_item_from_shortcut' method. + + + + + Cached name for the 'add_context_submenu_item' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + Once added, the callback will be called for every available to the plugin, and when new ones are created (the sessions may be inactive during this stage). + You can retrieve the available s via or get a specific one via . + + To connect on the running game side, use the singleton: + + Note: While the game is running, @GlobalScope.print and similar functions called in the editor do not print anything, the Output Log prints only game messages. + + + + + Override this method to be notified when a breakpoint is set in the editor. + + + + + Override this method to be notified when all breakpoints are cleared in the editor. + + + + + Override this method to process incoming messages. The is the ID of the that received the . Use to retrieve the session. This method should return if the message is recognized. + + + + + Override this method to be notified when a breakpoint line has been clicked in the debugger breakpoint panel. + + + + + Override this method to enable receiving messages from the debugger. If is "my_message" then messages starting with "my_message:" will be passes to the method. + + + + + Override this method to be notified whenever a new is created. Note that the session may be inactive during this stage. + + + + + Returns the with the given . + + + + + Returns an array of currently available to this debugger plugin. + Note: Sessions in the array may be inactive, check their state via . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_breakpoint_set_in_tree' method. + + + + + Cached name for the '_breakpoints_cleared_in_tree' method. + + + + + Cached name for the '_capture' method. + + + + + Cached name for the '_goto_script_line' method. + + + + + Cached name for the '_has_capture' method. + + + + + Cached name for the '_setup_session' method. + + + + + Cached name for the 'get_session' method. + + + + + Cached name for the 'get_sessions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class cannot be directly instantiated and must be retrieved via a . + You can add tabs to the session UI via , send messages via , and toggle s via . + + + + + Sends the given to the attached remote instance, optionally passing additionally . See for how to retrieve those messages. + + + + + Toggle the given on the attached remote instance, optionally passing additionally . See for more details. + + + + + Returns if the attached remote instance is currently in the debug loop. + + + + + Returns if the attached remote instance can be debugged. + + + + + Returns if the debug session is currently attached to a remote instance. + + + + + Adds the given to the debug session UI in the debugger bottom panel. The 's node name will be used as the tab title. + + + + + Removes the given from the debug session UI in the debugger bottom panel. + + + + + Enables or disables a specific breakpoint based on , updating the Editor Breakpoint Panel accordingly. + + + + + Emitted when a remote instance is attached to this session (i.e. the session becomes active). + + + + + Emitted when a remote instance is detached from this session (i.e. the session becomes inactive). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the attached remote instance enters a break state. If canDebug is , the remote instance will enter the debug loop. + + + + + Emitted when the attached remote instance exits a break state. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'send_message' method. + + + + + Cached name for the 'toggle_profiler' method. + + + + + Cached name for the 'is_breaked' method. + + + + + Cached name for the 'is_debuggable' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'add_session_tab' method. + + + + + Cached name for the 'remove_session_tab' method. + + + + + Cached name for the 'set_breakpoint' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'started' signal. + + + + + Cached name for the 'stopped' signal. + + + + + Cached name for the 'breaked' signal. + + + + + Cached name for the 'continued' signal. + + + + + 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 to configure platform-specific customization of scenes and resources. See and for more details. + + + + + Invalid message type used as the default value when no type is specified. + + + + + Message type for informational messages that have no effect on the export. + + + + + Message type for warning messages that should be addressed but still allow to complete the export. + + + + + Message type for error messages that must be addressed and fail the export. + + + + + Flag is set if remotely debugged project is expected to use remote file system. If set, will add --remove-fs and --remote-fs-password (if password is set in the editor settings) command line arguments to the list. + + + + + Flag is set if remote debug is enabled. If set, will add --remote-debug and --breakpoints (if breakpoints are selected in the script editor or added by the plugin) command line arguments to the list. + + + + + Flag is set if remotely debugged project is running on the localhost. If set, will use localhost instead of EditorSettings.network/debug/remote_host as remote debugger host. + + + + + Flag is set if "Visible Collision Shapes" remote debug option is enabled. If set, will add --debug-collisions command line arguments to the list. + + + + + Flag is set if Visible Navigation" remote debug option is enabled. If set, will add --debug-navigation command line arguments to the list. + + + + + Returns the name of the export operating system handled by this class, as a friendly string. Possible return values are Windows, Linux, macOS, Android, iOS, and Web. + + + + + Create a new preset for this platform. + + + + + Locates export template for the platform, and returns with the following keys: path: String and error: String. This method is provided for convenience and custom export platforms aren't required to use it or keep export templates stored in the same way official templates are. + + + + + Returns array of s for this platform. + + + + + Saves PCK archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + If is , PCK content is appended to the end of file and return additionally include following keys: embedded_start: int (embedded PCK offset) and embedded_size: int (embedded PCK size). + + + + + Saves ZIP archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + + + + + Saves patch PCK archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + + + + + Saves patch ZIP archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + + + + + Generates array of command line arguments for the default export templates for the debug flags and editor settings. + + + + + Exports project files for the specified preset. This method can be used to implement custom export format, other than PCK and ZIP. One of the callbacks is called for each exported file. + is called for all exported files and have the following arguments: file_path: String, file_data: PackedByteArray, file_index: int, file_count: int, encryption_include_filters: PackedStringArray, encryption_exclude_filters: PackedStringArray, encryption_key: PackedByteArray. + is called for exported native shared/static libraries and have the following arguments: file_path: String, tags: PackedStringArray, target_folder: String. + Note: file_index and file_count are intended for progress tracking only and aren't necesserely unique and precise. + + + + + Creates a full project at for the specified . + + + + + Creates a PCK archive at for the specified . + + + + + Create a ZIP archive at for the specified . + + + + + Creates a patch PCK archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Creates a patch PCK archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + + + + Create a patch ZIP archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Create a patch ZIP archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + + + + Clears the export log. + + + + + Adds a message to the export log that will be displayed when exporting ends. + + + + + Returns number of messages in the export log. + + + + + Returns message type, for the message with . + + + + + Returns message category, for the message with . + + + + + Returns message text, for the message with . + + + + + Returns most severe message type currently present in the export log. + + + + + Executes specified command on the remote host via SSH protocol and returns command output in the . + + + + + Executes specified command on the remote host via SSH protocol and returns command output in the . + + + + + Executes specified command on the remote host via SSH protocol and returns process ID (on the remote host) without waiting for command to finish. + + + + + Executes specified command on the remote host via SSH protocol and returns process ID (on the remote host) without waiting for command to finish. + + + + + Uploads specified file over SCP protocol to the remote host. + + + + + Uploads specified file over SCP protocol to the remote host. + + + + + Returns array of core file names that always should be exported regardless of preset config. + + + + + Returns additional files that should always be exported regardless of preset configuration, and are not part of the project source. The returned contains filename keys () and their corresponding raw data ([]). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_os_name' method. + + + + + Cached name for the 'create_preset' method. + + + + + Cached name for the 'find_export_template' method. + + + + + Cached name for the 'get_current_presets' method. + + + + + Cached name for the 'save_pack' method. + + + + + Cached name for the 'save_zip' method. + + + + + Cached name for the 'save_pack_patch' method. + + + + + Cached name for the 'save_zip_patch' method. + + + + + Cached name for the 'gen_export_flags' method. + + + + + Cached name for the 'export_project_files' method. + + + + + Cached name for the 'export_project' method. + + + + + Cached name for the 'export_pack' method. + + + + + Cached name for the 'export_zip' method. + + + + + Cached name for the 'export_pack_patch' method. + + + + + Cached name for the 'export_zip_patch' method. + + + + + Cached name for the 'clear_messages' method. + + + + + Cached name for the 'add_message' method. + + + + + Cached name for the 'get_message_count' method. + + + + + Cached name for the 'get_message_type' method. + + + + + Cached name for the 'get_message_category' method. + + + + + Cached name for the 'get_message_text' method. + + + + + Cached name for the 'get_worst_message_type' method. + + + + + Cached name for the 'ssh_run_on_remote' method. + + + + + Cached name for the 'ssh_run_on_remote_no_wait' method. + + + + + Cached name for the 'ssh_push_to_remote' method. + + + + + Cached name for the 'get_forced_export_files' method. + + + + + Cached name for the 'get_internal_export_files' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + External implementations should inherit from this class. + To use , register it using the method first. + + + + + Optional. + Returns , if specified is valid and can be exported. Use and to set error details. + Usual implementation can call and to determine if export is possible. + + + + + Optional. + Called by the editor before platform is unregistered. + + + + + Optional. + Creates a PCK archive at for the specified . + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" disabled, and PCK is selected as a file type. + + + + + Optional. + Creates a patch PCK archive at for the specified , containing only the files that have changed since the last patch. + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" enabled, and PCK is selected as a file type. + Note: The patches provided in have already been loaded when this method is called and are merely provided as context. When empty the patches defined in the export preset have been loaded instead. + + + + + Required. + Creates a full project at for the specified . + This method is called when "Export" button is pressed in the export dialog. + This method implementation can call or to use default PCK/ZIP export process, or calls and implement custom callback for processing each exported file. + + + + + Optional. + Create a ZIP archive at for the specified . + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" disabled, and ZIP is selected as a file type. + + + + + Optional. + Create a ZIP archive at for the specified , containing only the files that have changed since the last patch. + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" enabled, and ZIP is selected as a file type. + Note: The patches provided in have already been loaded when this method is called and are merely provided as context. When empty the patches defined in the export preset have been loaded instead. + + + + + Required. + Returns array of supported binary extensions for the full project export. + + + + + Optional. + Returns protocol used for remote debugging. Default implementation return tcp://. + + + + + Optional. + Returns device architecture for one-click deploy. + + + + + Optional. + Validates and returns visibility for the specified . Default implementation return for all options. + + + + + Optional. + Validates and returns warning message for the specified . Default implementation return empty string for all options. + + + + + Optional. + Returns a property list, as an of dictionaries. Each must at least contain the name: StringName and type: Variant.Type entries. + Additionally, the following keys are supported: + - hint: PropertyHint + - hint_string: String + - usage: PropertyUsageFlags + - class_name: StringName + - default_value: Variant, default value of the property. + - update_visibility: bool, if set to , is called for each property when this property is changed. + - required: bool, if set to , this property warnings are critical, and should be resolved to make export possible. This value is a hint for the implementation, and not used by the engine directly. + See also . + + + + + Required. + Returns platform logo displayed in the export dialog, logo should be 32x32 adjusted to the current editor scale, see . + + + + + Required. + Returns export platform name. + + + + + Optional. + Returns one-click deploy menu item icon for the specified , icon should be 16x16 adjusted to the current editor scale, see . + + + + + Optional. + Returns one-click deploy menu item label for the specified . + + + + + Optional. + Returns one-click deploy menu item tooltip for the specified . + + + + + Optional. + Returns number one-click deploy devices (or other one-click option displayed in the menu). + + + + + Optional. + Returns tooltip of the one-click deploy menu button. + + + + + Required. + Returns target OS name. + + + + + Required. + Returns array of platform specific features. + + + + + Required. + Returns array of platform specific features for the specified . + + + + + Optional. + Returns icon of the one-click deploy menu button, icon should be 16x16 adjusted to the current editor scale, see . + + + + + Required. + Returns if export configuration is valid. + + + + + Required. + Returns if project configuration is valid. + + + + + Optional. + Returns if specified file is a valid executable (native executable or script) for the target platform. + + + + + Optional. + Returns if one-click deploy options are changed and editor interface should be updated. + + + + + Optional. + This method is called when one-click deploy menu option is selected. + Implementation should export project to a temporary location, upload and run it on the specific , or perform another action associated with the menu item. + + + + + Optional. + Returns if export options list is changed and presets should be updated. + + + + + Sets current configuration error message text. This method should be called only from the , , or implementations. + + + + + Returns current configuration error message text. This method should be called only from the , , or implementations. + + + + + Set to is export templates are missing from the current configuration. This method should be called only from the , , or implementations. + + + + + Returns is export templates are missing from the current configuration. This method should be called only from the , , or implementations. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_export' method. + + + + + Cached name for the '_cleanup' method. + + + + + Cached name for the '_export_pack' method. + + + + + Cached name for the '_export_pack_patch' method. + + + + + Cached name for the '_export_project' method. + + + + + Cached name for the '_export_zip' method. + + + + + Cached name for the '_export_zip_patch' method. + + + + + Cached name for the '_get_binary_extensions' method. + + + + + Cached name for the '_get_debug_protocol' method. + + + + + Cached name for the '_get_device_architecture' method. + + + + + Cached name for the '_get_export_option_visibility' method. + + + + + Cached name for the '_get_export_option_warning' method. + + + + + Cached name for the '_get_export_options' method. + + + + + Cached name for the '_get_logo' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_option_icon' method. + + + + + Cached name for the '_get_option_label' method. + + + + + Cached name for the '_get_option_tooltip' method. + + + + + Cached name for the '_get_options_count' method. + + + + + Cached name for the '_get_options_tooltip' method. + + + + + Cached name for the '_get_os_name' method. + + + + + Cached name for the '_get_platform_features' method. + + + + + Cached name for the '_get_preset_features' method. + + + + + Cached name for the '_get_run_icon' method. + + + + + Cached name for the '_has_valid_export_configuration' method. + + + + + Cached name for the '_has_valid_project_configuration' method. + + + + + Cached name for the '_is_executable' method. + + + + + Cached name for the '_poll_export' method. + + + + + Cached name for the '_run' method. + + + + + Cached name for the '_should_update_export_options' method. + + + + + Cached name for the 'set_config_error' method. + + + + + Cached name for the 'get_config_error' method. + + + + + Cached name for the 'set_config_missing_templates' method. + + + + + Cached name for the 'get_config_missing_templates' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The base class for the desktop platform exporters. These include Windows and Linux/BSD, but not macOS. See the classes inheriting this one for more details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + Note: Godot on Web is rendered inside a <canvas> tag. Normally, the canvas cannot be positioned or resized manually, but otherwise acts as the main of the application. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The Windows exporter customizes how a Windows build is handled. In the editor's "Export" window, it is created when adding a new "Windows" preset. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, is called at the beginning of the export process and then is called for each exported file. + To use , register it using the method first. + + + + + Return if this plugin will customize resources based on the platform and features used. + When enabled, and will be called and must be implemented. + + + + + Return if this plugin will customize scenes based on the platform and features used. + When enabled, and will be called and must be implemented. + Note: will only be called for scenes that have been modified since the last export. + + + + + Customize a resource. If changes are made to it, return the same or a new resource. Otherwise, return . When a new resource is returned, will be replaced by a copy of the new resource. + The 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 returns . + Note: When customizing any of the following types and returning another resource, the other resource should not be skipped using in : + - + - + - + - + - + - + + + + + Customize a scene. If changes are made to it, return the same or a new scene. Otherwise, return . If a new scene is returned, it is up to you to dispose of the old one. + Implementing this method is required if returns . + + + + + This is called when the customization process for resources ends. + + + + + This is called when the customization process for scenes ends. + + + + + Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export. is the list of features for the export, is for debug builds, is the target path for the exported project. is only used when running a runnable profile, e.g. when using native run on Android. + + + + + Virtual method to be overridden by the user. Called when the export is finished. + + + + + Virtual method to be overridden by the user. Called for each exported file before and . The arguments can be used to identify the file. is the path of the file, is the represented by the file (e.g. ), and is the list of features for the export. + Calling inside this callback will make the file not included in the export. + + + + + 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: org.godot.example:my-plugin:0.0.0 + For more information see Android documentation on dependencies. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + 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 Gradle documentation on dependency management. + Note: Google's Maven repo and the Maven Central repo are already included by default. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + 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. + Note: Relative paths must be relative to Godot's res://addons/ directory. For example, an AAR file located under res://addons/hello_world_plugin/HelloWorld.release.aar can be returned as an absolute path using res://addons/hello_world_plugin/HelloWorld.release.aar or a relative path using hello_world_plugin/HelloWorld.release.aar. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + Virtual method to be overridden by the user. This is used at export time to update the contents of the activity element in the generated Android manifest. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + Virtual method to be overridden by the user. This is used at export time to update the contents of the application element in the generated Android manifest. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + Virtual method to be overridden by the user. This is used at export time to update the contents of the manifest element in the generated Android manifest. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + 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 returns . + + + + + Return a [] of additional features this preset, for the given , should have. + + + + + Optional. + Validates and returns the visibility for the specified . The default implementation returns for all options. + + + + + Check the requirements for the given and return a non-empty warning string if they are not met. + Note: Use to check the value of the export options. + + + + + Return a list of export options that can be configured for this export plugin. + Each element in the return value is a with the following keys: + - option: A dictionary with the structure documented by , but all keys are optional. + - default_value: The default value for this option. + - update_visibility: An optional boolean value. If set to , the preset will emit when the option is changed. + + + + + Return a of override values for export options, that will be used instead of user-provided values. Overridden options will be hidden from the user interface. + + class MyExportPlugin extends EditorExportPlugin: + func _get_name() -> String: + return "MyExportPlugin" + + func _supports_platform(platform) -> bool: + if platform is EditorExportPlatformPC: + # Run on all desktop platforms including Windows, MacOS and Linux. + return true + return false + + func _get_export_options_overrides(platform) -> Dictionary: + # Override "Embed PCK" to always be enabled. + return { + "binary_format/embed_pck": true, + } + + + + + + 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. + + + + + Return , if the result of has changed and the export options of preset corresponding to should be updated. + + + + + Return if the plugin supports the given . + + + + + Adds a shared object or a directory containing only shared objects with the given and destination . + Note: In case of macOS exports, those shared objects will be added to Frameworks directory of app bundle. + In case of a directory code-sign will error if you place non code object in directory. + + + + + Adds a shared object or a directory containing only shared objects with the given and destination . + Note: In case of macOS exports, those shared objects will be added to Frameworks directory of app bundle. + In case of a directory code-sign will error if you place non code object in directory. + + + + + Adds a static lib from the given to the iOS project. + + + + + Adds a custom file to be exported. is the virtual path that can be used to load the file, is the binary data of the file. + When called inside and is , the current file will not be exported, but instead remapped to this custom file. is ignored when called in other places. + will not be imported, so consider using to remap imported resources. + + + + + Adds a custom file to be exported. is the virtual path that can be used to load the file, is the binary data of the file. + When called inside and is , the current file will not be exported, but instead remapped to this custom file. is ignored when called in other places. + will not be imported, so consider using to remap imported resources. + + + + + Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project. + + + + + Adds a dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project and embeds it into resulting binary. + Note: For static libraries (*.a) works in same way as . + Note: This method should not be used for System libraries as they are already present on the device. + + + + + Adds content for iOS Property List files. + + + + + Adds linker flags for the iOS export. + + + + + Adds an iOS bundle file from the given to the exported project. + + + + + Adds a C++ code to the iOS export. The final code is created from the code appended by each active export plugin. + + + + + Adds file or directory matching to PlugIns directory of macOS app bundle. + Note: This is useful only for macOS exports. + + + + + To be called inside . Skips the current file, so it's not included in the export. + + + + + Returns the current value of an export option supplied by . + + + + + Returns currently used export preset. + + + + + Returns currently used export platform. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_begin_customize_resources' method. + + + + + Cached name for the '_begin_customize_scenes' method. + + + + + Cached name for the '_customize_resource' method. + + + + + Cached name for the '_customize_scene' method. + + + + + Cached name for the '_end_customize_resources' method. + + + + + Cached name for the '_end_customize_scenes' method. + + + + + Cached name for the '_export_begin' method. + + + + + Cached name for the '_export_end' method. + + + + + Cached name for the '_export_file' method. + + + + + Cached name for the '_get_android_dependencies' method. + + + + + Cached name for the '_get_android_dependencies_maven_repos' method. + + + + + Cached name for the '_get_android_libraries' method. + + + + + Cached name for the '_get_android_manifest_activity_element_contents' method. + + + + + Cached name for the '_get_android_manifest_application_element_contents' method. + + + + + Cached name for the '_get_android_manifest_element_contents' method. + + + + + Cached name for the '_get_customization_configuration_hash' method. + + + + + Cached name for the '_get_export_features' method. + + + + + Cached name for the '_get_export_option_visibility' method. + + + + + Cached name for the '_get_export_option_warning' method. + + + + + Cached name for the '_get_export_options' method. + + + + + Cached name for the '_get_export_options_overrides' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_should_update_export_options' method. + + + + + Cached name for the '_supports_platform' method. + + + + + Cached name for the 'add_shared_object' method. + + + + + Cached name for the 'add_ios_project_static_lib' method. + + + + + Cached name for the 'add_file' method. + + + + + Cached name for the 'add_ios_framework' method. + + + + + Cached name for the 'add_ios_embedded_framework' method. + + + + + Cached name for the 'add_ios_plist_content' method. + + + + + Cached name for the 'add_ios_linker_flags' method. + + + + + Cached name for the 'add_ios_bundle_file' method. + + + + + Cached name for the 'add_ios_cpp_code' method. + + + + + Cached name for the 'add_macos_plugin_file' method. + + + + + Cached name for the 'skip' method. + + + + + Cached name for the 'get_option' method. + + + + + Cached name for the 'get_export_preset' method. + + + + + Cached name for the 'get_export_platform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Export preset configuration. Instances of by editor UI and intended to be used a read-only configuration passed to the methods when exporting the project. + + + + + Returns if preset has specified property. + + + + + Returns array of files to export. + + + + + Returns of files selected in the "Resources" tab of the export dialog. Dictionary keys are file names and values are export mode - "strip, "keep", or "remove". See also . + + + + + Returns number of files selected in the "Resources" tab of the export dialog. + + + + + Returns if specified file is exported. + + + + + Returns file export mode for the specified file. + + + + + Returns export preset name. + + + + + Returns if "Runnable" toggle is enabled in the export dialog. + + + + + Returns , is "Advanced" toggle is enabled in the export dialog. + + + + + Returns if dedicated server export mode is selected in the export dialog. + + + + + Returns export file filter mode selected in the "Resources" tab of the export dialog. + + + + + Returns file filters to include during export. + + + + + Returns file filters to exclude during export. + + + + + Returns string with a comma separated list of custom features. + + + + + Returns the list of packs on which to base a patch export on. + + + + + Returns export target path. + + + + + Returns file filters to include during PCK encryption. + + + + + Returns file filters to exclude during PCK encryption. + + + + + Returns , PCK encryption is enabled in the export dialog. + + + + + Returns , PCK directory encryption is enabled in the export dialog. + + + + + Returns PCK encryption key. + + + + + Returns script export mode. + + + + + Returns export option value or value of environment variable if it is set. + + + + + Returns the preset's version number, or fall back to the ProjectSettings.application/config/version project setting if set to an empty string. + If is , formats the returned version number to be compatible with Windows executable metadata. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has' method. + + + + + Cached name for the 'get_files_to_export' method. + + + + + Cached name for the 'get_customized_files' method. + + + + + Cached name for the 'get_customized_files_count' method. + + + + + Cached name for the 'has_export_file' method. + + + + + Cached name for the 'get_file_export_mode' method. + + + + + Cached name for the 'get_preset_name' method. + + + + + Cached name for the 'is_runnable' method. + + + + + Cached name for the 'are_advanced_options_enabled' method. + + + + + Cached name for the 'is_dedicated_server' method. + + + + + Cached name for the 'get_export_filter' method. + + + + + Cached name for the 'get_include_filter' method. + + + + + Cached name for the 'get_exclude_filter' method. + + + + + Cached name for the 'get_custom_features' method. + + + + + Cached name for the 'get_patches' method. + + + + + Cached name for the 'get_export_path' method. + + + + + Cached name for the 'get_encryption_in_filter' method. + + + + + Cached name for the 'get_encryption_ex_filter' method. + + + + + Cached name for the 'get_encrypt_pck' method. + + + + + Cached name for the 'get_encrypt_directory' method. + + + + + Cached name for the 'get_encryption_key' method. + + + + + Cached name for the 'get_script_export_mode' method. + + + + + Cached name for the 'get_or_env' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 Editor > Manage Feature Profiles... at the top of the editor window. + + + + + 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. + + + + + The Script tab, which contains the script editor and class reference browser. If this feature is disabled, the Script tab won't display. + + + + + The AssetLib tab. If this feature is disabled, the AssetLib tab won't display. + + + + + Scene tree editing. If this feature is disabled, the Scene tree dock will still be visible but will be read-only. + + + + + The Node dock. If this feature is disabled, signals and groups won't be visible and modifiable from the editor. + + + + + The FileSystem dock. If this feature is disabled, the FileSystem dock won't be visible. + + + + + The Import dock. If this feature is disabled, the Import dock won't be visible. + + + + + The History dock. If this feature is disabled, the History dock won't be visible. + + + + + The Game tab, which allows embedding the game window and selecting nodes by clicking inside of it. If this feature is disabled, the Game tab won't display. + + + + + Represents the size of the enum. + + + + + If is , disables the class specified by . When disabled, the class won't appear in the Create New Node dialog. + + + + + Returns if the class specified by is disabled. When disabled, the class won't appear in the Create New Node dialog. + + + + + If is , disables editing for the class specified by . When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class. + + + + + Returns if editing for the class specified by is disabled. When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class. + + + + + If is , disables editing for in the class specified by . When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by . + + + + + Returns if is disabled in the class specified by . When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by . + + + + + If is , disables the editor feature specified in . When a feature is disabled, it will disappear from the editor entirely. + + + + + Returns if the is disabled. When a feature is disabled, it will disappear from the editor entirely. + + + + + Returns the specified 's human-readable name. + + + + + Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's Import button or the method. + Note: Feature profiles created via the user interface are saved in the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using . + + + + + Loads an editor feature profile from a file. The file must follow the JSON format obtained by using the feature profile manager's Export button or the method. + Note: Feature profiles created via the user interface are loaded from the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_disable_class' method. + + + + + Cached name for the 'is_class_disabled' method. + + + + + Cached name for the 'set_disable_class_editor' method. + + + + + Cached name for the 'is_class_editor_disabled' method. + + + + + Cached name for the 'set_disable_class_property' method. + + + + + Cached name for the 'is_class_property_disabled' method. + + + + + Cached name for the 'set_disable_feature' method. + + + + + Cached name for the 'is_feature_disabled' method. + + + + + Cached name for the 'get_feature_name' method. + + + + + Cached name for the 'save_to_file' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an enhanced version of 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. + + + + + The can select only one file. Accepting the window will open the file. + + + + + The can select multiple files. Accepting the window will open all files. + + + + + The can select only one directory. Accepting the window will open the directory. + + + + + The can select a file or directory. Accepting the window will open it. + + + + + The can select only one file. Accepting the window will save the file. + + + + + The can only view res:// directory contents. + + + + + The can only view user:// directory contents. + + + + + The can view the entire local file system. + + + + + The displays resources as thumbnails. + + + + + The displays resources as a list of filenames. + + + + + The location from which the user may select a file, including res://, user://, and the local file system. + + + + + The view format in which the displays resources to the user. + + + + + The dialog's open or save mode, which affects the selection behavior. See . + + + + + The currently occupied directory. + + + + + The currently selected file. + + + + + The file system path in the address bar. + + + + + The available file type filters. For example, this shows only .png and .gd files: set_filters(PackedStringArray(["*.png ; PNG Images","*.gd ; GDScript Files"])). Multiple file types can also be specified in a single filter. "*.png, *.jpg, *.jpeg ; Supported Images" will show both PNG and JPEG files when selected. + + + + + The number of additional s and es in the dialog. + + + + + If , hidden files and directories will be visible in the . This property is synchronized with EditorSettings.filesystem/file_dialog/show_hidden_files. + + + + + If , the will not warn the user before overwriting files. + + + + + Removes all filters except for "All Files (*.*)". + + + + + Adds a comma-delimited file name option to the with an optional , which restricts what files can be picked. + A should be of the form "filename.extension", where filename and extension can be * to match any string. Filters starting with . (i.e. empty filenames) are not allowed. + For example, a of "*.tscn, *.scn" and a of "Scenes" results in filter text "Scenes (*.tscn, *.scn)". + + + + + Returns the name of the or with index . + + + + + Returns an array of values of the with index . + + + + + Returns the default value index of the or with index . + + + + + Sets the name of the or with index . + + + + + Sets the option values of the with index . + + + + + Sets the option values of the with index . + + + + + Sets the default value index of the or with index . + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Returns a with the selected values of the additional s and/or es. keys are names and values are selected value indices. + + + + + Clear the filter for file names. + + + + + Sets the value of the filter for file names. + + + + + Returns the value of the filter for file names. + + + + + Returns the used to display the file system. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns the LineEdit for the selected file. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adds the given to the side of the file dialog with the given text on top. Only one side menu is allowed. + + + + + Shows the at the default size and position for file dialogs in the editor, and selects the file name if there is a current file. + + + + + Notify the that its view of the data is no longer accurate. Updates the view contents on next view update. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a file is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when multiple files are selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a directory is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the filter for file names changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'access' property. + + + + + Cached name for the 'display_mode' property. + + + + + Cached name for the 'file_mode' property. + + + + + Cached name for the 'current_dir' property. + + + + + Cached name for the 'current_file' property. + + + + + Cached name for the 'current_path' property. + + + + + Cached name for the 'filters' property. + + + + + Cached name for the 'option_count' property. + + + + + Cached name for the 'show_hidden_files' property. + + + + + Cached name for the 'disable_overwrite_warning' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear_filters' method. + + + + + Cached name for the 'add_filter' method. + + + + + Cached name for the 'set_filters' method. + + + + + Cached name for the 'get_filters' method. + + + + + Cached name for the 'get_option_name' method. + + + + + Cached name for the 'get_option_values' method. + + + + + Cached name for the 'get_option_default' method. + + + + + Cached name for the 'set_option_name' method. + + + + + Cached name for the 'set_option_values' method. + + + + + Cached name for the 'set_option_default' method. + + + + + Cached name for the 'set_option_count' method. + + + + + Cached name for the 'get_option_count' method. + + + + + Cached name for the 'add_option' method. + + + + + Cached name for the 'get_selected_options' method. + + + + + Cached name for the 'clear_filename_filter' method. + + + + + Cached name for the 'set_filename_filter' method. + + + + + Cached name for the 'get_filename_filter' method. + + + + + Cached name for the 'get_current_dir' method. + + + + + Cached name for the 'get_current_file' method. + + + + + Cached name for the 'get_current_path' method. + + + + + Cached name for the 'set_current_dir' method. + + + + + Cached name for the 'set_current_file' method. + + + + + Cached name for the 'set_current_path' method. + + + + + Cached name for the 'set_file_mode' method. + + + + + Cached name for the 'get_file_mode' method. + + + + + Cached name for the 'get_vbox' method. + + + + + Cached name for the 'get_line_edit' method. + + + + + Cached name for the 'set_access' method. + + + + + Cached name for the 'get_access' method. + + + + + Cached name for the 'set_show_hidden_files' method. + + + + + Cached name for the 'is_showing_hidden_files' method. + + + + + Cached name for the 'set_display_mode' method. + + + + + Cached name for the 'get_display_mode' method. + + + + + Cached name for the 'set_disable_overwrite_warning' method. + + + + + Cached name for the 'is_overwrite_warning_disabled' method. + + + + + Cached name for the 'add_side_menu' method. + + + + + Cached name for the 'popup_file_dialog' method. + + + + + Cached name for the 'invalidate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'file_selected' signal. + + + + + Cached name for the 'files_selected' signal. + + + + + Cached name for the 'dir_selected' signal. + + + + + Cached name for the 'filename_filter_changed' signal. + + + + + This object holds information of all resources in the filesystem, their types, etc. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Gets the root directory object. + + + + + Returns if the filesystem is being scanned. + + + + + Returns the scan progress for 0 to 1 if the FS is being scanned. + + + + + Scan the filesystem for changes. + + + + + Check if the source of any imported resource changed. + + + + + Add a file in an existing directory, or schedule file information to be updated on editor restart. Can be used to update text files saved by an external program. + This will not import the file. To reimport, call or methods. + + + + + Returns a view into the filesystem at . + + + + + Returns the resource type of the file, given the full path. This returns a string such as "Resource" or "GDScript", not a file extension such as ".gd". + + + + + Reimports a set of files. Call this if these files or their .import files were directly edited by script or an external program. + If the file type changed or the file was newly created, use or . + Note: This function blocks until the import is finished. However, the main loop iteration, including timers and , will occur during the import process due to progress bar updates. Avoid calls to or while an import is in progress. + + + + + Reimports a set of files. Call this if these files or their .import files were directly edited by script or an external program. + If the file type changed or the file was newly created, use or . + Note: This function blocks until the import is finished. However, the main loop iteration, including timers and , will occur during the import process due to progress bar updates. Avoid calls to or while an import is in progress. + + + + + Emitted if the filesystem changed. + + + + + Emitted when the list of global script classes gets updated. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if the source of any imported file changed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted before a resource is reimported. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if a resource is reimported. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if at least one resource is reloaded when the filesystem is scanned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_filesystem' method. + + + + + Cached name for the 'is_scanning' method. + + + + + Cached name for the 'get_scanning_progress' method. + + + + + Cached name for the 'scan' method. + + + + + Cached name for the 'scan_sources' method. + + + + + Cached name for the 'update_file' method. + + + + + Cached name for the 'get_filesystem_path' method. + + + + + Cached name for the 'get_file_type' method. + + + + + Cached name for the 'reimport_files' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'filesystem_changed' signal. + + + + + Cached name for the 'script_classes_updated' signal. + + + + + Cached name for the 'sources_changed' signal. + + + + + Cached name for the 'resources_reimporting' signal. + + + + + Cached name for the 'resources_reimported' signal. + + + + + Cached name for the 'resources_reload' signal. + + + + + A more generalized, low-level variation of the directory concept. + + + + + Returns the number of subdirectories in this directory. + + + + + Returns the subdirectory at index . + + + + + Returns the number of files in this directory. + + + + + Returns the name of the file at index . + + + + + Returns the path to the file at index . + + + + + Returns the resource type of the file at index . This returns a string such as "Resource" or "GDScript", not a file extension such as ".gd". + + + + + Returns the name of the script class defined in the file at index . If the file doesn't define a script class using the class_name syntax, this will return an empty string. + + + + + Returns the base class of the script class defined in the file at index . If the file doesn't define a script class using the class_name syntax, this will return an empty string. + + + + + Returns if the file at index imported properly. + + + + + Returns the name of this directory. + + + + + Returns the path to this directory. + + + + + Returns the parent directory for this directory or if called on a directory at res:// or user://. + + + + + Returns the index of the file with name or -1 if not found. + + + + + Returns the index of the directory with name or -1 if not found. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_subdir_count' method. + + + + + Cached name for the 'get_subdir' method. + + + + + Cached name for the 'get_file_count' method. + + + + + Cached name for the 'get_file' method. + + + + + Cached name for the 'get_file_path' method. + + + + + Cached name for the 'get_file_type' method. + + + + + Cached name for the 'get_file_script_class_name' method. + + + + + Cached name for the 'get_file_script_class_extends' method. + + + + + Cached name for the 'get_file_import_is_valid' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'find_file_index' method. + + + + + Cached name for the 'find_dir_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used to query and configure a certain import format. It is used in conjunction with asset format import plugins. + + + + + Return the file extensions supported. + + + + + Return whether this importer is active. + + + + + Query support. Return if import must not continue. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_file_extensions' method. + + + + + Cached name for the '_is_active' method. + + + + + Cached name for the '_query' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and . They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the .godot/imported directory (see ProjectSettings.application/config/use_hidden_project_data_directory). + Below is an example EditorImportPlugin that imports a from a file with the extension ".special" or ".spec": + + 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 Error _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 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 ResourceSaver.Save(mesh, filename); + } + } + + To use , register it using the method first. + + + + + Tells whether this importer can be run in parallel on threads, or, on the contrary, it's only safe for the editor to call it from the main thread, for one file at a time. + If this method is not overridden, it will return by default. + If this importer's implementation is thread-safe and can be run in parallel, override this with to optimize for concurrency. + + + + + Gets the format version of this importer. Increment this version when making incompatible changes to the format of the imported resources. + + + + + Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: name, default_value, property_hint (optional), hint_string (optional), usage (optional). + + + + + Gets the order of this importer to be run when importing resources. Importers with lower import orders will be called first, and higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported. The default import order is 0 unless overridden by a specific importer. See for some predefined values. + + + + + Gets the unique name of the importer. + + + + + 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. + + 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; + } + + Returns to make all options always visible. + + + + + Gets the number of initial presets defined by the plugin. Use to get the default options for the preset and to get the name of the preset. + + + + + Gets the name of the options preset at this index. + + + + + Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is 1.0. + + + + + Gets the list of file extensions to associate with this loader (case-insensitive). e.g. ["obj"]. + + + + + Gets the Godot resource type associated with this loader. e.g. "Mesh" or "Animation". + + + + + Gets the extension used to save this resource in the .godot/imported directory (see ProjectSettings.application/config/use_hidden_project_data_directory). + + + + + 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". + + + + + Imports into with the import specified. The and 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. + + + + + This function can only be called during the callback and it allows manually importing resources from it. This is useful when the imported file generates external resources that require importing (as example, images). Custom parameters for the ".import" file can be passed via the . Additionally, in cases where multiple importers can handle a file, the can be specified to force a specific one. This function performs a resource import and returns immediately with a success or error code. defines optional extra metadata which will be stored as generator_parameters in the remap section of the .import file, for example to store a md5 hash of the source data. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_import_threaded' method. + + + + + Cached name for the '_get_format_version' method. + + + + + Cached name for the '_get_import_options' method. + + + + + Cached name for the '_get_import_order' method. + + + + + Cached name for the '_get_importer_name' method. + + + + + Cached name for the '_get_option_visibility' method. + + + + + Cached name for the '_get_preset_count' method. + + + + + Cached name for the '_get_preset_name' method. + + + + + Cached name for the '_get_priority' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_get_resource_type' method. + + + + + Cached name for the '_get_save_extension' method. + + + + + Cached name for the '_get_visible_name' method. + + + + + Cached name for the '_import' method. + + + + + Cached name for the 'append_import_external_resource' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the control that implements property editing in the editor's Settings dialogs, the Inspector dock, etc. To get the used in the editor's Inspector dock, use . + will show properties in the same order as the array returned by . + If a property's name is path-like (i.e. if it contains forward slashes), will create nested sections for "directories" along the path. For example, if a property is named highlighting/gdscript/node_path_color, it will be shown as "Node Path Color" inside the "GDScript" section nested inside the "Highlighting" section. + If a property has 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. will create a top-level section for each group. For example, if a property with group usage is named Collide With and its hint string is collide_with_, a subsequent collide_with_area 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 font, font_color and font_size (using the hint string font_). + If a property has usage, a subgroup will be created in the same way as a group, and a second-level section will be created for each subgroup. + Note: Unlike sections created from path-like property names, won't capitalize the name for sections created from groups. So properties with group usage usually use capitalized names instead of snake_cased names. + + + + + Shows the properties of the given in this inspector for editing. To clear the inspector, call this method with . + Note: If you want to edit an object in the editor's main inspector, use the edit_* methods in instead. + + + + + Gets the path of the currently selected property. + + + + + Returns the object currently selected in this inspector. + + + + + Creates a property editor that can be used by plugin UI to edit the specified property of an . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is selected in the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is keyed in the inspector. Properties can be keyed by clicking the "key" icon next to a property when the Animation panel is toggled. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is removed from the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a resource is selected in the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the Edit button of an has been pressed in the inspector. This is mainly used in the remote scene tree Inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is edited in the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a boolean property is toggled in the inspector. + Note: This signal is never emitted if the internal autoclear property enabled. Since this property is always enabled in the editor inspector, this signal is never emitted by the editor itself. + + + + + Emitted when the object being edited by the inspector has changed. + + + + + Emitted when a property that requires a restart to be applied is edited in the inspector. This is only used in the Project Settings and Editor Settings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'edit' method. + + + + + Cached name for the 'get_selected_path' method. + + + + + Cached name for the 'get_edited_object' method. + + + + + Cached name for the 'instantiate_property_editor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'property_selected' signal. + + + + + Cached name for the 'property_keyed' signal. + + + + + Cached name for the 'property_deleted' signal. + + + + + Cached name for the 'resource_selected' signal. + + + + + Cached name for the 'object_id_selected' signal. + + + + + Cached name for the 'property_edited' signal. + + + + + Cached name for the 'property_toggled' signal. + + + + + Cached name for the 'edited_object_changed' signal. + + + + + Cached name for the 'restart_requested' signal. + + + + + allows adding custom property editors to . + When an object is edited, the function is called and must return if the object type is supported. + If supported, the function will be called, allowing to place custom controls at the beginning of the class. + Subsequently, the and are called for every category and property. They offer the ability to add custom controls to the inspector too. + Finally, will be called. + On each of these calls, the "add" functions can be called. + To use , register it using the method first. + + + + + Returns if this object can be handled by this plugin. + + + + + Called to allow adding controls at the beginning of the property list for . + + + + + Called to allow adding controls at the beginning of a category in the property list for . + + + + + Called to allow adding controls at the end of the property list for . + + + + + Called to allow adding controls at the beginning of a group or a sub-group in the property list for . + + + + + Called to allow adding property-specific editors to the property list for . The added editor control must extend . Returning removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one. + + + + + Adds a custom control, which is not necessarily a property editor. + + + + + Adds a property editor for an individual property. The control must extend . + There can be multiple property editors for a property. If is , this newly added editor will be displayed after all the other editors of the property whose is . For example, the editor uses this parameter to add an "Edit Region" button for below the regular editor. + can be used to choose a custom label for the property editor in the inspector. If left empty, the label is computed from the name of the property instead. + + + + + Adds an editor that allows modifying multiple properties. The control must extend . + + + + + Adds an editor that allows modifying multiple properties. The control must extend . + + + + + Adds a property editor for an individual property. The control must extend . + There can be multiple property editors for a property. If is , this newly added editor will be displayed after all the other editors of the property whose is . For example, the editor uses this parameter to add an "Edit Region" button for below the regular editor. + can be used to choose a custom label for the property editor in the inspector. If left empty, the label is computed from the name of the property instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_handle' method. + + + + + Cached name for the '_parse_begin' method. + + + + + Cached name for the '_parse_category' method. + + + + + Cached name for the '_parse_end' method. + + + + + Cached name for the '_parse_group' method. + + + + + Cached name for the '_parse_property' method. + + + + + Cached name for the 'add_custom_control' method. + + + + + Cached name for the 'add_property_editor' method. + + + + + Cached name for the 'add_property_editor_for_multiple_properties' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to , , , , the editor viewport, and information about scenes. + Note: This class shouldn't be instantiated directly. Instead, access the singleton directly by its name. + + // In C# you can access it via the static Singleton property. + EditorSettings settings = EditorInterface.Singleton.GetEditorSettings(); + + + + + + If , enables distraction-free mode which hides side docks to increase the space available for the main view. + + + + + If , the Movie Maker mode is enabled in the editor. See for more information. + + + + + Restarts the editor. This closes the editor and then opens the same project. If is , the project will be saved before restarting. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Returns the editor's instance. + + + + + Returns the singleton. + + + + + Returns the editor's instance. + + + + + Returns the editor's instance. + + + + + Returns the editor's instance. + + + + + Returns the editor's . + + + + + Returns the editor's . + + + + + Returns mesh previews rendered at the given size as an of s. + + + + + Sets the enabled status of a plugin. The plugin name is the same as its directory name. + + + + + Returns if the specified is enabled. The plugin name is the same as its directory name. + + + + + Returns the editor's . + Note: When creating custom editor UI, prefer accessing theme items directly from your GUI nodes using the get_theme_* methods. + + + + + Returns the main container of Godot editor's window. For example, you can use it to retrieve the size of the container and place your controls accordingly. + Warning: Removing and freeing this node will render the editor useless and may cause a crash. + + + + + Returns the editor control responsible for main screen plugins and tools. Use it with plugins that implement . + Note: This node is a , which means that if you add a child to it, you need to set the child's to to make it use the full available space. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Returns the 2D editor . It does not have a camera. Instead, the view transforms are done directly and can be accessed with . + + + + + Returns the specified 3D editor , from 0 to 3. The viewport can be used to access the active editor cameras with . + + + + + Sets the editor's current main screen to the one specified in . must match the title of the tab in question exactly (e.g. 2D, 3D, Script, or AssetLib for default tabs). + + + + + Returns if multiple window support is enabled in the editor. Multiple window support is enabled if all of these statements are true: + - EditorSettings.interface/multi_window/enable is . + - EditorSettings.interface/editor/single_window_mode is . + - is . This is forced to on platforms that don't support multiple windows such as Web, or when the --single-window command line argument is used. + + + + + Returns the actual scale of the editor UI (1.0 being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins. + Note: This value is set via the interface/editor/display_scale and interface/editor/custom_display_scale editor settings. Editor must be restarted for changes to be properly applied. + + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + If the parameter is null, then the default value is new Rect2I(new Vector2I(0, 0), new Vector2I(0, 0)). + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Returns the name of the currently activated feature profile. If the default profile is currently active, an empty string is returned instead. + In order to get a reference to the , you must load the feature profile using . + Note: Feature profiles created via the user interface are loaded from the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using . + + + + + Selects and activates the specified feature profile with the given . Set to an empty string to reset to the default feature profile. + A feature profile can be created programmatically using the class. + Note: The feature profile that gets activated must be located in the feature_profiles directory, as a file with the .profile extension. If a profile could not be found, an error occurs. The editor configuration folder can be found by using . + + + + + Pops up an editor dialog for selecting a from the edited scene. The must take a single argument of type . It is called on the selected or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show Nodes that match one of the listed Node types. If is provided, the Node will be automatically selected in the tree, if it exists. + Example: Display the node selection dialog as soon as this node is added to the tree for the first time: + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_node_selector(_on_node_selected, ["Button"]) + + func _on_node_selected(node_path): + if node_path.is_empty(): + print("node selection canceled") + else: + print("selected ", node_path) + + + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + If the parameter is null, then the default value is Array.Empty<int>(). + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + + + + Pops up an editor dialog for selecting a method from . The must take a single argument of type which will contain the name of the selected method or be empty if the dialog is canceled. If is provided, the method will be selected automatically in the method list, if it exists. + + + + + Pops up an editor dialog for quick selecting a resource file. The must take a single argument of type which will contain the path of the selected resource or be empty if the dialog is canceled. If is provided, the dialog will only show resources that match these types. Only types deriving from are supported. + + + + + Pops up an editor dialog for creating an object. + The must take a single argument of type which will contain the type name of the selected object or be empty if no item is selected. + The specifies the base type of objects to display. For example, if you set this to "Resource", all types derived from will display in the create dialog. + The will be passed in the search box of the create dialog, and the specified type can be immediately selected when the dialog pops up. If the is not derived from , there will be no result of the type in the dialog. + The allows you to define a custom title for the dialog. This is useful if you want to accurately hint the usage of the dialog. If the is an empty string, the dialog will use "Create New 'Base Type'" as the default title. + The contains a list of type names, and the types in the blocklist will be hidden from the create dialog. + The is a dictionary, with keys being s and values being s. Custom suffixes override the default suffixes which are file names of their scripts. For example, if you set a custom suffix as "Custom Suffix" for a global script type, + + Node + |- MyCustomNode (my_custom_node.gd) + + will be + + Node + |- MyCustomNode (Custom Suffix) + + Bear in mind that when a built-in type does not have any custom suffix, its suffix will be removed. The suffix of a type created from a script will fall back to its script file name. For global types by scripts, if you customize their suffixes to an empty string, their suffixes will be removed. + Note: Trying to list the base type in the will hide all types derived from the base type from the create dialog. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Selects the file, with the path provided by , in the FileSystem dock. + + + + + Returns an array containing the paths of the currently selected files (and directories) in the . + + + + + Returns the current path being viewed in the . + + + + + Returns the current directory being viewed in the . If a file is selected, its base directory will be returned using String.get_base_dir instead. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Shows the given property on the given in the editor's Inspector dock. If is , plugins will not attempt to edit . + + + + + Edits the given . If the resource is a you can also edit it with to specify the line and column position. + + + + + Edits the given . The node will be also selected if it's inside the scene tree. + + + + + Edits the given . The line and column on which to open the script can also be specified. The script will be open with the user-configured editor for the script's language which may be an external editor. + + + + + Opens the scene at the given path. If is , creates a new inherited scene. + + + + + Reloads the scene at the given path. + + + + + Returns an with the file paths of the currently opened scenes. + + + + + Returns the edited (current) scene's root . + + + + + Saves the currently active scene. Returns either or . + + + + + Saves the currently active scene as a file at . + + + + + Saves all opened scenes in the editor. + + + + + Marks the current scene tab as unsaved. + + + + + Plays the main scene. + + + + + Plays the currently active scene. + + + + + Plays the scene specified by its filepath. + + + + + Stops the scene that is currently playing. + + + + + Returns if a scene is currently being played, otherwise. Paused scenes are considered as being played. + + + + + Returns the name of the scene that is being played. If no scene is currently being played, returns an empty string. + + + + + Opens the scene at the given path. If is , creates a new inherited scene. + + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + If the parameter is null, then the default value is Array.Empty<int>(). + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + + + + Pops up an editor dialog for selecting a from the edited scene. The must take a single argument of type . It is called on the selected or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show Nodes that match one of the listed Node types. If is provided, the Node will be automatically selected in the tree, if it exists. + Example: Display the node selection dialog as soon as this node is added to the tree for the first time: + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_node_selector(_on_node_selected, ["Button"]) + + func _on_node_selected(node_path): + if node_path.is_empty(): + print("node selection canceled") + else: + print("selected ", node_path) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'distraction_free_mode' property. + + + + + Cached name for the 'movie_maker_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'restart_editor' method. + + + + + Cached name for the 'get_command_palette' method. + + + + + Cached name for the 'get_resource_filesystem' method. + + + + + Cached name for the 'get_editor_paths' method. + + + + + Cached name for the 'get_resource_previewer' method. + + + + + Cached name for the 'get_selection' method. + + + + + Cached name for the 'get_editor_settings' method. + + + + + Cached name for the 'get_editor_toaster' method. + + + + + Cached name for the 'get_editor_undo_redo' method. + + + + + Cached name for the 'make_mesh_previews' method. + + + + + Cached name for the 'set_plugin_enabled' method. + + + + + Cached name for the 'is_plugin_enabled' method. + + + + + Cached name for the 'get_editor_theme' method. + + + + + Cached name for the 'get_base_control' method. + + + + + Cached name for the 'get_editor_main_screen' method. + + + + + Cached name for the 'get_script_editor' method. + + + + + Cached name for the 'get_editor_viewport_2d' method. + + + + + Cached name for the 'get_editor_viewport_3d' method. + + + + + Cached name for the 'set_main_screen_editor' method. + + + + + Cached name for the 'set_distraction_free_mode' method. + + + + + Cached name for the 'is_distraction_free_mode_enabled' method. + + + + + Cached name for the 'is_multi_window_enabled' method. + + + + + Cached name for the 'get_editor_scale' method. + + + + + Cached name for the 'popup_dialog' method. + + + + + Cached name for the 'popup_dialog_centered' method. + + + + + Cached name for the 'popup_dialog_centered_ratio' method. + + + + + Cached name for the 'popup_dialog_centered_clamped' method. + + + + + Cached name for the 'get_current_feature_profile' method. + + + + + Cached name for the 'set_current_feature_profile' method. + + + + + Cached name for the 'popup_node_selector' method. + + + + + Cached name for the 'popup_property_selector' method. + + + + + Cached name for the 'popup_method_selector' method. + + + + + Cached name for the 'popup_quick_open' method. + + + + + Cached name for the 'popup_create_dialog' method. + + + + + Cached name for the 'get_file_system_dock' method. + + + + + Cached name for the 'select_file' method. + + + + + Cached name for the 'get_selected_paths' method. + + + + + Cached name for the 'get_current_path' method. + + + + + Cached name for the 'get_current_directory' method. + + + + + Cached name for the 'get_inspector' method. + + + + + Cached name for the 'inspect_object' method. + + + + + Cached name for the 'edit_resource' method. + + + + + Cached name for the 'edit_node' method. + + + + + Cached name for the 'edit_script' method. + + + + + Cached name for the 'open_scene_from_path' method. + + + + + Cached name for the 'reload_scene_from_path' method. + + + + + Cached name for the 'get_open_scenes' method. + + + + + Cached name for the 'get_edited_scene_root' method. + + + + + Cached name for the 'save_scene' method. + + + + + Cached name for the 'save_scene_as' method. + + + + + Cached name for the 'save_all_scenes' method. + + + + + Cached name for the 'mark_scene_as_unsaved' method. + + + + + Cached name for the 'play_main_scene' method. + + + + + Cached name for the 'play_current_scene' method. + + + + + Cached name for the 'play_custom_scene' method. + + + + + Cached name for the 'stop_playing_scene' method. + + + + + Cached name for the 'is_playing_scene' method. + + + + + Cached name for the 'get_playing_scene' method. + + + + + Cached name for the 'set_movie_maker_enabled' method. + + + + + Cached name for the 'is_movie_maker_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Gizmo that is used for providing custom visualization and editing (handles and subgizmos) for objects. Can be overridden to create custom gizmos, but for simple gizmos creating a is usually recommended. + + + + + Override this method to commit a handle being edited (handles must have been previously added by ). This usually means creating an action for the change, using the current handle value as "do" and the argument as "undo". + If the argument is , the value should be directly set, without any action. + The argument is when the committed handle is secondary (see for more information). + + + + + Override this method to commit a group of subgizmos being edited (see and ). This usually means creating an action for the change, using the current transforms as "do" and the transforms as "undo". + If the argument is , the transforms should be directly set, without any action. + + + + + Override this method to return the name of an edited handle (handles must have been previously added by ). Handles can be named for reference to the user when editing. + The argument is when the requested handle is secondary (see for more information). + + + + + 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 restore argument in . + The argument is when the requested handle is secondary (see for more information). + + + + + 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 restore argument in . + + + + + Override this method to return whenever the given handle should be highlighted in the editor. + The argument is when the requested handle is secondary (see for more information). + + + + + Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call at the beginning of this method and then add visual elements depending on the node's properties. + + + + + Override this method to update the node properties when the user drags a gizmo handle (previously added with ). The provided is the mouse position in screen coordinates and the can be used to convert it to raycasts. + The argument is when the edited handle is secondary (see for more information). + + + + + Override this method to update the node properties during subgizmo editing (see and ). The is given in the 's local coordinate system. + + + + + Override this method to allow selecting subgizmos using mouse drag box selection. Given a and a , this method should return which subgizmos are contained within the frustum. The argument consists of an array with all the 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 or . + + + + + Override this method to allow selecting subgizmos using mouse clicks. Given a and a 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 or . + + + + + Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this method during . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this method during . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Adds a mesh to the gizmo with the specified , local and . Call this method during . + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Adds the specified to the gizmo's collision shape for picking. Call this method during . + + + + + Adds the specified to the gizmo's collision shape for picking. Call this method during . + + + + + Adds collision triangles to the gizmo for picking. A can be generated from a regular too. Call this method during . + + + + + Adds an unscaled billboard for visualization and selection. Call this method during . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Adds a list of handles (points) which can be used to edit the properties of the gizmo's . The argument can be used to specify a custom identifier for each handle, if an empty array is passed, the ids will be assigned automatically from the argument order. + The argument marks the added handles as secondary, meaning they will normally have lower selection priority than regular handles. When the user is holding the shift key secondary handles will switch to have higher priority than regular handles. This change in priority can be used to place multiple handles at the same point while still giving the user control on their selection. + There are virtual methods which will be called upon editing of these handles. Call this method during . + + + + + Adds a list of handles (points) which can be used to edit the properties of the gizmo's . The argument can be used to specify a custom identifier for each handle, if an empty array is passed, the ids will be assigned automatically from the argument order. + The argument marks the added handles as secondary, meaning they will normally have lower selection priority than regular handles. When the user is holding the shift key secondary handles will switch to have higher priority than regular handles. This change in priority can be used to place multiple handles at the same point while still giving the user control on their selection. + There are virtual methods which will be called upon editing of these handles. Call this method during . + + + + + Sets the reference node for the gizmo. must inherit from . + + + + + Returns the node associated with this gizmo. + + + + + Returns the that owns this gizmo. It's useful to retrieve materials using . + + + + + Removes everything in the gizmo including meshes, collisions and handles. + + + + + Sets the gizmo's hidden state. If , the gizmo will be hidden. If , it will be shown. + + + + + Returns if the given subgizmo is currently selected. Can be used to highlight selected elements during . + + + + + Returns a list of the currently selected subgizmos. Can be used to highlight selected elements during . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_begin_handle_action' method. + + + + + Cached name for the '_commit_handle' method. + + + + + Cached name for the '_commit_subgizmos' method. + + + + + Cached name for the '_get_handle_name' method. + + + + + Cached name for the '_get_handle_value' method. + + + + + Cached name for the '_get_subgizmo_transform' method. + + + + + Cached name for the '_is_handle_highlighted' method. + + + + + Cached name for the '_redraw' method. + + + + + Cached name for the '_set_handle' method. + + + + + Cached name for the '_set_subgizmo_transform' method. + + + + + Cached name for the '_subgizmos_intersect_frustum' method. + + + + + Cached name for the '_subgizmos_intersect_ray' method. + + + + + Cached name for the 'add_lines' method. + + + + + Cached name for the 'add_mesh' method. + + + + + Cached name for the 'add_collision_segments' method. + + + + + Cached name for the 'add_collision_triangles' method. + + + + + Cached name for the 'add_unscaled_billboard' method. + + + + + Cached name for the 'add_handles' method. + + + + + Cached name for the 'set_node_3d' method. + + + + + Cached name for the 'get_node_3d' method. + + + + + Cached name for the 'get_plugin' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_hidden' method. + + + + + Cached name for the 'is_subgizmo_selected' method. + + + + + Cached name for the 'get_subgizmo_selection' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows you to define a new type of Gizmo. There are two main ways to do so: extending for the simpler gizmos, or creating a new type. See the tutorial in the documentation for more info. + To use , register it using the method first. + + + + + Override this method to define whether the gizmos handled by this plugin can be hidden or not. Returns if not overridden. + + + + + Override this method to commit a handle being edited (handles must have been previously added by during ). This usually means creating an action for the change, using the current handle value as "do" and the argument as "undo". + If the argument is , the value should be directly set, without any action. + The argument is when the committed handle is secondary (see for more information). + Called for this plugin's active gizmos. + + + + + Override this method to commit a group of subgizmos being edited (see and ). This usually means creating an action for the change, using the current transforms as "do" and the transforms as "undo". + If the argument is , the transforms should be directly set, without any 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. + + + + + Override this method to return a custom for the 3D nodes of your choice, return for the rest of nodes. See also . + + + + + Override this method to provide the name that will appear in the gizmo visibility menu. + + + + + Override this method to provide gizmo's handle names. The argument is when the requested handle is secondary (see for more information). Called for this plugin's active gizmos. + + + + + 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 restore argument in . + The argument is when the requested handle is secondary (see for more information). + Called for this plugin's active gizmos. + + + + + 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 -1. If not overridden, this method will return 0, which means custom gizmos will automatically get higher priority than built-in gizmos. + + + + + 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 restore argument in . Called for this plugin's active gizmos. + + + + + Override this method to define which Node3D nodes have a gizmo from this plugin. Whenever a node is added to a scene this method is called, if it returns the node gets a generic assigned and is added to this plugin's list of active gizmos. + + + + + Override this method to return whenever to given handle should be highlighted in the editor. The argument is when the requested handle is secondary (see for more information). Called for this plugin's active gizmos. + + + + + Override this method to define whether Node3D with this gizmo should be selectable even when the gizmo is hidden. + + + + + Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call at the beginning of this method and then add visual elements depending on the node's properties. + + + + + Override this method to update the node's properties when the user drags a gizmo handle (previously added with ). The provided is the mouse position in screen coordinates and the can be used to convert it to raycasts. + The argument is when the edited handle is secondary (see for more information). + Called for this plugin's active gizmos. + + + + + Override this method to update the node properties during subgizmo editing (see and ). The is given in the Node3D's local coordinate system. Called for this plugin's active gizmos. + + + + + Override this method to allow selecting subgizmos using mouse drag box selection. Given a and , this method should return which subgizmos are contained within the frustums. The argument consists of an array with all the 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 or . Called for this plugin's active gizmos. + + + + + Override this method to allow selecting subgizmos using mouse clicks. Given a and a 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 or . Called for this plugin's active gizmos. + + + + + Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with and used in and . Should not be overridden. + + + + + Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with and used in . Should not be overridden. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with and used in . Should not be overridden. + You can optionally provide a texture to use instead of the default icon. + + + + + Adds a new material to the internal material list for the plugin. It can then be accessed with . Should not be overridden. + + + + + Gets material from the internal list of materials. If an is provided, it will try to get the corresponding variant (selected and/or editable). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_begin_handle_action' method. + + + + + Cached name for the '_can_be_hidden' method. + + + + + Cached name for the '_commit_handle' method. + + + + + Cached name for the '_commit_subgizmos' method. + + + + + Cached name for the '_create_gizmo' method. + + + + + Cached name for the '_get_gizmo_name' method. + + + + + Cached name for the '_get_handle_name' method. + + + + + Cached name for the '_get_handle_value' method. + + + + + Cached name for the '_get_priority' method. + + + + + Cached name for the '_get_subgizmo_transform' method. + + + + + Cached name for the '_has_gizmo' method. + + + + + Cached name for the '_is_handle_highlighted' method. + + + + + Cached name for the '_is_selectable_when_hidden' method. + + + + + Cached name for the '_redraw' method. + + + + + Cached name for the '_set_handle' method. + + + + + Cached name for the '_set_subgizmo_transform' method. + + + + + Cached name for the '_subgizmos_intersect_frustum' method. + + + + + Cached name for the '_subgizmos_intersect_ray' method. + + + + + Cached name for the 'create_material' method. + + + + + Cached name for the 'create_icon_material' method. + + + + + Cached name for the 'create_handle_material' method. + + + + + Cached name for the 'add_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + Note: 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 to check whether the singleton is available before using it. + Note: On the Linux/BSD platform, Godot complies with the XDG Base Directory Specification. You can override environment variables following the specification to change the editor and project data paths. + + + + + Returns the absolute path to the user's data folder. This folder should be used for persistent user data files such as installed export templates. + Default paths per platform: + + - Windows: %APPDATA%\Godot\ (same as `get_config_dir()`) + - macOS: ~/Library/Application Support/Godot/ (same as `get_config_dir()`) + - Linux: ~/.local/share/godot/ + + + + + + Returns the absolute path to the user's configuration folder. This folder should be used for persistent user configuration files. + Default paths per platform: + + - Windows: %APPDATA%\Godot\ (same as `get_data_dir()`) + - macOS: ~/Library/Application Support/Godot/ (same as `get_data_dir()`) + - Linux: ~/.config/godot/ + + + + + + Returns the absolute path to the user's cache folder. This folder should be used for temporary data that can be removed safely whenever the editor is closed (such as generated resource thumbnails). + Default paths per platform: + + - Windows: %LOCALAPPDATA%\Godot\ + - macOS: ~/Library/Caches/Godot/ + - Linux: ~/.cache/godot/ + + + + + + Returns if the editor is marked as self-contained, otherwise. When self-contained mode is enabled, user configuration, data and cache files are saved in an editor_data/ folder next to the editor binary. This makes portable usage easier and ensures the Godot editor minimizes file writes outside its own folder. Self-contained mode is not available for exported projects. + Self-contained mode can be enabled by creating a file named ._sc_ or _sc_ in the same folder as the editor binary or macOS .app bundle while the editor is not running. See also . + Note: On macOS, quarantine flag should be manually removed before using self-contained mode, see Running on macOS. + Note: On macOS, placing _sc_ or any other file inside .app bundle will break digital signature and make it non-portable, consider placing it in the same folder as the .app bundle instead. + Note: The Steam release of Godot uses self-contained mode by default. + + + + + Returns the absolute path to the self-contained file that makes the current Godot editor instance be considered as self-contained. Returns an empty string if the current Godot editor instance isn't self-contained. See also . + + + + + Returns the project-specific editor settings path. Projects all have a unique subdirectory inside the settings path where project-specific editor settings are saved. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_data_dir' method. + + + + + Cached name for the 'get_config_dir' method. + + + + + Cached name for the 'get_cache_dir' method. + + + + + Cached name for the 'is_self_contained' method. + + + + + Cached name for the 'get_self_contained_file' method. + + + + + Cached name for the 'get_project_settings_dir' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 to add functions to the editor. + Note: Some names in this class contain "left" or "right" (e.g. ). These APIs assume left-to-right layout, and would be backwards when using right-to-left layout. These names are kept for compatibility reasons. + + + + + Main editor toolbar, next to play buttons. + + + + + The toolbar that appears when 3D editor is active. + + + + + Left sidebar of the 3D editor. + + + + + Right sidebar of the 3D editor. + + + + + Bottom panel of the 3D editor. + + + + + The toolbar that appears when 2D editor is active. + + + + + Left sidebar of the 2D editor. + + + + + Right sidebar of the 2D editor. + + + + + Bottom panel of the 2D editor. + + + + + Bottom section of the inspector. + + + + + Tab of Project Settings dialog, to the left of other tabs. + + + + + Tab of Project Settings dialog, to the right of other tabs. + + + + + Dock slot, left side, upper-left (empty in default layout). + + + + + Dock slot, left side, bottom-left (empty in default layout). + + + + + Dock slot, left side, upper-right (in default layout includes Scene and Import docks). + + + + + Dock slot, left side, bottom-right (in default layout includes FileSystem dock). + + + + + Dock slot, right side, upper-left (in default layout includes Inspector, Node, and History docks). + + + + + Dock slot, right side, bottom-left (empty in default layout). + + + + + Dock slot, right side, upper-right (empty in default layout). + + + + + Dock slot, right side, bottom-right (empty in default layout). + + + + + Represents the size of the enum. + + + + + Forwards the to other EditorPlugins. + + + + + Prevents the from reaching other Editor classes. + + + + + Pass the to other editor plugins except the main one. This can be used to prevent node selection changes and work with sub-gizmos instead. + + + + + 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. + + + + + 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 , the project will not run. The run is aborted immediately, so this also prevents all other plugins' methods from running. + + + + + 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. + + + + + Called by the engine when the user disables the in the Plugin tab of the project settings window. + + + + + This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object. + can be 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. + + + + + Called by the engine when the user enables the in the Plugin tab of the project settings window. + + + + + Called by the engine when the 3D editor's viewport is updated. Use the overlay for drawing. You can update the viewport manually by calling . + + 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; + } + + + + + + This method is the same as , 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 . + + + + + Called when there is a root node in the current edited scene, is implemented, and an happens in the 3D viewport. The return value decides whether the is consumed or forwarded to other s. See for options. + + // Prevents the InputEvent from reaching other Editor classes. + public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event) + { + return EditorPlugin.AfterGuiInput.Stop; + } + + This method must return in order to forward the to other Editor classes. + + // 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; + } + + + + + + Called by the engine when the 2D editor's viewport is updated. Use the overlay for drawing. You can update the viewport manually by calling . + + 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; + } + + + + + + This method is the same as , 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 . + + + + + Called when there is a root node in the current edited scene, is implemented, and an happens in the 2D viewport. If this method returns , is intercepted by this , otherwise is forwarded to other Editor classes. + + // Prevents the InputEvent from reaching other Editor classes. + public override bool ForwardCanvasGuiInput(InputEvent @event) + { + return true; + } + + This method must return in order to forward the to other Editor classes. + + // Consumes InputEventMouseMotion and forwards other InputEvent types. + public override bool _ForwardCanvasGuiInput(InputEvent @event) + { + if (@event is InputEventMouseMotion) + { + return true; + } + return false; + } + + + + + + This is for editors that edit script-based objects. You can return a list of breakpoints in the format (script:line), for example: res://path_to_script.gd:25. + + + + + Override this method in your plugin to return a 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 16×16 pixels in size. + + 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"); + } + + + + + + 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. + + + + + 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 editstate file in the editor metadata folder. If you want to store global (scene-independent) editor data for your plugin, you can use instead. + Use to restore your saved state. + Note: This method should not be used to save important settings that should persist with the project. + Note: You must implement for the state to be stored and restored correctly. + + func _get_state(): + var state = {"zoom": zoom, "preferred_color": my_color} + return state + + + + + + 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, 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, will be called, before closing the editor. + + 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 + + If the plugin has no scene-specific changes, you can ignore the calls when closing scenes: + + func _get_unsaved_status(for_scene): + if not for_scene.is_empty(): + return "" + + + + + + 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 is called or the editor layout was changed (for example changing the position of a dock). The data is stored in the editor_layout.cfg file in the editor metadata directory. + Use to restore your saved layout. + + func _get_window_layout(configuration): + configuration.set_value("MyPlugin", "window_position", $Window.position) + configuration.set_value("MyPlugin", "icon_color", $Icon.modulate) + + + + + + Implement this function if your plugin edits a specific type of object (Resource or Node). If you return , then you will get the functions and called when the editor requests them. If you have declared the methods and these will be called too. + Note: 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. + + + + + Returns if this is a main screen editor plugin (it goes in the workspace selector together with 2D, 3D, Script and AssetLib). + 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 and made visible inside . + Use and to customize the plugin button's appearance. + + 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") + + + + + + 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. + + + + + 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. + + + + + Restore the state saved by . This method is called when the current scene tab is changed in the editor. + Note: Your plugin must implement , otherwise it will not be recognized and this method will not be called. + + func _set_state(data): + zoom = data.get("zoom", 1.0) + preferred_color = data.get("my_color", Color.WHITE) + + + + + + Restore the plugin GUI layout and data saved by . This method is called for every plugin on editor startup. Use the provided file to read your saved data. + + func _set_window_layout(configuration): + $Window.position = configuration.get_value("MyPlugin", "window_position", Vector2()) + $Icon.modulate = configuration.get_value("MyPlugin", "icon_color", Color.WHITE) + + + + + + Adds a custom control to a container (see ). There are many locations where custom controls can be added in the editor UI. + Please remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it). + When your plugin is deactivated, make sure to remove your custom control with and free it with . + + + + + Adds a control to the bottom panel (together with Output, Debug, Animation, etc.). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the bottom panel's visibility. See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Adds the control to a specific dock slot (see for options). + If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions. + When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the dock's visibility once it's moved to the bottom panel (this shortcut does not affect the dock otherwise). See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Removes the control from the dock. You have to manually the control. + + + + + Removes the control from the bottom panel. You have to manually the control. + + + + + Removes the control from the specified container. You have to manually the control. + + + + + Sets the tab icon for the given control in a dock slot. Setting to removes the icon. + + + + + Adds a custom menu item to Project > Tools named . When clicked, the provided will be called. + + + + + Adds a custom submenu under Project > Tools > . Use on plugin clean up to remove the menu. + + + + + Removes a menu from Project > Tools. + + + + + Returns the under Scene > Export As.... + + + + + Adds a custom type, which will appear in the list of nodes or resources. + When a given node or resource is selected, the base type will be instantiated (e.g. "Node3D", "Control", "Resource"), then the script will be loaded and set to this object. + Note: The base type is the base engine class which this type's class hierarchy inherits, not any custom type parent classes. + You can use the virtual method to check if your custom object is being edited by checking the script or using the is keyword. + During run-time, this will be a simple object with a script so this function does not need to be called then. + Note: Custom types added this way are not true classes. They are just a helper to create a node with specific script. + + + + + Removes a custom type added by . + + + + + Adds a script at to the Autoload list as . + + + + + Removes an Autoload from the list. + + + + + Updates the overlays of the 2D and 3D editor viewport. Causes methods , , and to be called. + + + + + Makes a specific item in the bottom panel visible. + + + + + Minimizes the bottom panel. + + + + + Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it. + + + + + Hooks a callback into the undo/redo action creation when a property is modified in the inspector. This allows, for example, to save other properties that may be lost when a given property is modified. + The callback should have 4 arguments: undo_redo, modified_object, property and new_value. They are, respectively, the object used by the inspector, the currently modified object, the name of the modified property and the new value the property is about to take. + + + + + Removes a callback previously added by . + + + + + Queue save the project's editor layout. + + + + + Registers a custom translation parser plugin for extracting translatable strings from custom files. + + + + + Removes a custom translation parser plugin registered by . + + + + + Registers a new . Import plugins are used to import custom and unsupported assets as a custom type. + If is , the new import plugin is inserted first in the list and takes precedence over pre-existing plugins. + Note: If you want to import custom 3D asset formats use instead. + See for an example of how to register a plugin. + + + + + Removes an import plugin registered by . + + + + + Registers a new . Scene importers are used to import custom 3D asset formats as scenes. + If is , the new import plugin is inserted first in the list and takes precedence over pre-existing plugins. + + + + + Removes a scene format importer registered by . + + + + + Add a . These plugins allow customizing the import process of 3D assets by adding new options to the import dialogs. + If is , the new import plugin is inserted first in the list and takes precedence over pre-existing plugins. + + + + + Remove the , added with . + + + + + Registers a new . Export plugins are used to perform tasks when the project is being exported. + See for an example of how to register a plugin. + + + + + Removes an export plugin registered by . + + + + + Registers a new . Export platforms provides functionality of exporting to the specific platform. + + + + + Removes an export platform registered by . + + + + + Registers a new . Gizmo plugins are used to add custom gizmos to the 3D preview viewport for a . + See for an example of how to register a plugin. + + + + + Removes a gizmo plugin registered by . + + + + + Registers a new . Inspector plugins are used to extend and provide custom configuration tools for your object's properties. + Note: Always use to remove the registered when your is disabled to prevent leaks and an unexpected behavior. + + + + + + Removes an inspector plugin registered by . + + + + + Registers a new . Resource conversion plugins are used to add custom resource converters to the editor inspector. + See for an example of how to create a resource conversion plugin. + + + + + Removes a resource conversion plugin registered by . + + + + + Use this method if you always want to receive inputs from 3D view screen inside . It might be especially usable if your plugin will want to use raycast in the scene. + + + + + Enables calling of for the 2D editor and for the 3D editor when their viewports are updated. You need to call this method only once and it will work permanently for this plugin. + + + + + Adds a plugin to the context menu. is the context menu where the plugin will be added. + See for available context menus. A plugin instance can belong only to a single context menu slot. + + + + + Removes the specified context menu plugin. + + + + + Returns the singleton instance. + + + + + Gets the Editor's dialog used for making scripts. + Note: Users can configure it before use. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Adds a as debugger plugin to the Debugger. The script must extend . + + + + + Removes the debugger plugin with given script from the Debugger. + + + + + Provide the version of the plugin declared in the plugin.cfg config file. + + + + + Adds the control to a specific dock slot (see for options). + If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions. + When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the dock's visibility once it's moved to the bottom panel (this shortcut does not affect the dock otherwise). See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Adds a control to the bottom panel (together with Output, Debug, Animation, etc.). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the bottom panel's visibility. See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the scene is changed in the editor. The argument will return the root node of the scene that has just become active. If this scene is new and empty, the argument will be . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user closes a scene. The argument is a file path to the closed scene. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user changes the workspace (2D, 3D, Script, AssetLib). Also works with custom screens defined by plugins. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given resource was saved on disc. See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a scene was saved on disc. The argument is a file path to the saved scene. See also . + + + + + Emitted when any project setting has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_apply_changes' method. + + + + + Cached name for the '_build' method. + + + + + Cached name for the '_clear' method. + + + + + Cached name for the '_disable_plugin' method. + + + + + Cached name for the '_edit' method. + + + + + Cached name for the '_enable_plugin' method. + + + + + Cached name for the '_forward_3d_draw_over_viewport' method. + + + + + Cached name for the '_forward_3d_force_draw_over_viewport' method. + + + + + Cached name for the '_forward_3d_gui_input' method. + + + + + Cached name for the '_forward_canvas_draw_over_viewport' method. + + + + + Cached name for the '_forward_canvas_force_draw_over_viewport' method. + + + + + Cached name for the '_forward_canvas_gui_input' method. + + + + + Cached name for the '_get_breakpoints' method. + + + + + Cached name for the '_get_plugin_icon' method. + + + + + Cached name for the '_get_plugin_name' method. + + + + + Cached name for the '_get_state' method. + + + + + Cached name for the '_get_unsaved_status' method. + + + + + Cached name for the '_get_window_layout' method. + + + + + Cached name for the '_handles' method. + + + + + Cached name for the '_has_main_screen' method. + + + + + Cached name for the '_make_visible' method. + + + + + Cached name for the '_save_external_data' method. + + + + + Cached name for the '_set_state' method. + + + + + Cached name for the '_set_window_layout' method. + + + + + Cached name for the 'add_control_to_container' method. + + + + + Cached name for the 'add_control_to_bottom_panel' method. + + + + + Cached name for the 'add_control_to_dock' method. + + + + + Cached name for the 'remove_control_from_docks' method. + + + + + Cached name for the 'remove_control_from_bottom_panel' method. + + + + + Cached name for the 'remove_control_from_container' method. + + + + + Cached name for the 'set_dock_tab_icon' method. + + + + + Cached name for the 'add_tool_menu_item' method. + + + + + Cached name for the 'add_tool_submenu_item' method. + + + + + Cached name for the 'remove_tool_menu_item' method. + + + + + Cached name for the 'get_export_as_menu' method. + + + + + Cached name for the 'add_custom_type' method. + + + + + Cached name for the 'remove_custom_type' method. + + + + + Cached name for the 'add_autoload_singleton' method. + + + + + Cached name for the 'remove_autoload_singleton' method. + + + + + Cached name for the 'update_overlays' method. + + + + + Cached name for the 'make_bottom_panel_item_visible' method. + + + + + Cached name for the 'hide_bottom_panel' method. + + + + + Cached name for the 'get_undo_redo' method. + + + + + Cached name for the 'add_undo_redo_inspector_hook_callback' method. + + + + + Cached name for the 'remove_undo_redo_inspector_hook_callback' method. + + + + + Cached name for the 'queue_save_layout' method. + + + + + Cached name for the 'add_translation_parser_plugin' method. + + + + + Cached name for the 'remove_translation_parser_plugin' method. + + + + + Cached name for the 'add_import_plugin' method. + + + + + Cached name for the 'remove_import_plugin' method. + + + + + Cached name for the 'add_scene_format_importer_plugin' method. + + + + + Cached name for the 'remove_scene_format_importer_plugin' method. + + + + + Cached name for the 'add_scene_post_import_plugin' method. + + + + + Cached name for the 'remove_scene_post_import_plugin' method. + + + + + Cached name for the 'add_export_plugin' method. + + + + + Cached name for the 'remove_export_plugin' method. + + + + + Cached name for the 'add_export_platform' method. + + + + + Cached name for the 'remove_export_platform' method. + + + + + Cached name for the 'add_node_3d_gizmo_plugin' method. + + + + + Cached name for the 'remove_node_3d_gizmo_plugin' method. + + + + + Cached name for the 'add_inspector_plugin' method. + + + + + Cached name for the 'remove_inspector_plugin' method. + + + + + Cached name for the 'add_resource_conversion_plugin' method. + + + + + Cached name for the 'remove_resource_conversion_plugin' method. + + + + + Cached name for the 'set_input_event_forwarding_always_enabled' method. + + + + + Cached name for the 'set_force_draw_over_forwarding_enabled' method. + + + + + Cached name for the 'add_context_menu_plugin' method. + + + + + Cached name for the 'remove_context_menu_plugin' method. + + + + + Cached name for the 'get_editor_interface' method. + + + + + Cached name for the 'get_script_create_dialog' method. + + + + + Cached name for the 'add_debugger_plugin' method. + + + + + Cached name for the 'remove_debugger_plugin' method. + + + + + Cached name for the 'get_plugin_version' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'scene_changed' signal. + + + + + Cached name for the 'scene_closed' signal. + + + + + Cached name for the 'main_screen_changed' signal. + + + + + Cached name for the 'resource_saved' signal. + + + + + Cached name for the 'scene_saved' signal. + + + + + Cached name for the 'project_settings_changed' signal. + + + + + A custom control for editing properties that can be added to the . It is added via . + + + + + Set this property to change the label (if you want to show one). + + + + + Used by the inspector, set to when the property is read-only. + + + + + Used by the inspector, set to when the property is checkable. + + + + + Used by the inspector, set to when the property is checked. + + + + + Used by the inspector, set to when the property is drawn with the editor theme's warning color. This is used for editable children's properties. + + + + + Used by the inspector, set to when the property can add keys for animation. + + + + + Used by the inspector, set to when the property can be deleted by the user. + + + + + Used by the inspector, set to when the property is selectable. + + + + + Used by the inspector, set to when the property is using folding. + + + + + Space distribution ratio between the label and the editing field. + + + + + 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. + + + + + When this virtual function is called, you must update your editor. + + + + + Gets the edited property. If your editor is for a single property (added via ), then this will return the property. + + + + + Gets the edited object. + + + + + Forces refresh of the property display. + + + + + If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed. + + + + + Puts the control below the property label. The control must be previously added using . + + + + + Draw property as not selected. Used by the inspector. + + + + + Returns if property is drawn as selected. Used by the inspector. + + + + + Draw property as selected. Used by the inspector. + + + + + Assigns object and property to edit. + + + + + Used by the inspector, set to a control that will be used as a reference to calculate the size of the label. + + + + + If one or several properties have changed, this must be called. is used in case your editor can modify fields separately (as an example, Vector3.x). The argument avoids the editor requesting this property to be refreshed (leave as if unsure). + + + + + Represents the method that handles the event of a class. + + + + + Do not emit this manually, use the method instead. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want multiple properties modified at the same time. Do not use if added via . + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to add this value as an animation key (check for keying being enabled first). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property was deleted. Used internally. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to key a property with a single value. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property was checked. Used internally. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to mark a property as favorited, making it appear at the top of the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to mark (or unmark) the value of a property for being saved regardless of being equal to the default value. + The default value is the one the property will get when the node is just instantiated and can come from an ancestor scene in the inheritance/instantiation chain, a script or a builtin class. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the revertability (i.e., whether it has a non-default value and thus is displayed with a revert icon) of a property has changed. + + + + + Represents the method that handles the event of a class. + + + + + If you want a sub-resource to be edited, emit this signal with the resource. + + + + + Represents the method that handles the event of a class. + + + + + Used by sub-inspectors. Emit it if what was selected was an Object ID. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when selected. Used internally. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'label' property. + + + + + Cached name for the 'read_only' property. + + + + + Cached name for the 'checkable' property. + + + + + Cached name for the 'checked' property. + + + + + Cached name for the 'draw_warning' property. + + + + + Cached name for the 'keying' property. + + + + + Cached name for the 'deletable' property. + + + + + Cached name for the 'selectable' property. + + + + + Cached name for the 'use_folding' property. + + + + + Cached name for the 'name_split_ratio' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_read_only' method. + + + + + Cached name for the '_update_property' method. + + + + + Cached name for the 'set_label' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'set_read_only' method. + + + + + Cached name for the 'is_read_only' method. + + + + + Cached name for the 'set_checkable' method. + + + + + Cached name for the 'is_checkable' method. + + + + + Cached name for the 'set_checked' method. + + + + + Cached name for the 'is_checked' method. + + + + + Cached name for the 'set_draw_warning' method. + + + + + Cached name for the 'is_draw_warning' method. + + + + + Cached name for the 'set_keying' method. + + + + + Cached name for the 'is_keying' method. + + + + + Cached name for the 'set_deletable' method. + + + + + Cached name for the 'is_deletable' method. + + + + + Cached name for the 'get_edited_property' method. + + + + + Cached name for the 'get_edited_object' method. + + + + + Cached name for the 'update_property' method. + + + + + Cached name for the 'add_focusable' method. + + + + + Cached name for the 'set_bottom_editor' method. + + + + + Cached name for the 'set_selectable' method. + + + + + Cached name for the 'is_selectable' method. + + + + + Cached name for the 'set_use_folding' method. + + + + + Cached name for the 'is_using_folding' method. + + + + + Cached name for the 'set_name_split_ratio' method. + + + + + Cached name for the 'get_name_split_ratio' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'set_object_and_property' method. + + + + + Cached name for the 'set_label_reference' method. + + + + + Cached name for the 'emit_changed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'property_changed' signal. + + + + + Cached name for the 'multiple_properties_changed' signal. + + + + + Cached name for the 'property_keyed' signal. + + + + + Cached name for the 'property_deleted' signal. + + + + + Cached name for the 'property_keyed_with_value' signal. + + + + + Cached name for the 'property_checked' signal. + + + + + Cached name for the 'property_favorited' signal. + + + + + Cached name for the 'property_pinned' signal. + + + + + Cached name for the 'property_can_revert_changed' signal. + + + + + Cached name for the 'resource_selected' signal. + + + + + Cached name for the 'object_id_selected' signal. + + + + + Cached name for the 'selected' signal. + + + + + 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 to a . + + To use an , register it using the method first. + + + + + Takes an input and converts it to the type given in . The returned is the result of the conversion, and the input remains unchanged. + + + + + Returns the class name of the target type of that this plugin converts source resources to. + + + + + Called to determine whether a particular can be converted to the target resource type by this plugin. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_convert' method. + + + + + Cached name for the '_converts_to' method. + + + + + Cached name for the '_handles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node is used in the editor's Inspector dock to allow editing of type properties. It provides options for creating, loading, saving and converting resources. Can be used with to recreate the same behavior. + Note: This does not include any editor for the resource, as editing is controlled by the Inspector dock itself or sub-Inspectors. + + + + + The base type of allowed resource types. Can be a comma-separated list of several options. + + + + + The edited resource value. + + + + + If , the value can be selected and edited. + + + + + If , the main button with the resource preview works in the toggle mode. Use to manually set the state. + + + + + This virtual method can be implemented to handle context menu items not handled by default. See . + + + + + This virtual method is called when updating the context menu of . Implement this method to override the "New ..." items with your own options. is a reference to the node. + Note: Implement to handle these custom items. + + + + + Returns a list of all allowed types and subtypes corresponding to the . If the is empty, an empty list is returned. + + + + + Sets the toggle mode state for the main button. Works only if is set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the resource value was set and user clicked to edit it. When inspect is , the signal was caused by the context menu "Edit" or "Inspect" option. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the value of the edited resource was changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'base_type' property. + + + + + Cached name for the 'edited_resource' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'toggle_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_handle_menu_selected' method. + + + + + Cached name for the '_set_create_options' method. + + + + + Cached name for the 'set_base_type' method. + + + + + Cached name for the 'get_base_type' method. + + + + + Cached name for the 'get_allowed_types' method. + + + + + Cached name for the 'set_edited_resource' method. + + + + + Cached name for the 'get_edited_resource' method. + + + + + Cached name for the 'set_toggle_mode' method. + + + + + Cached name for the 'is_toggle_mode' method. + + + + + Cached name for the 'set_toggle_pressed' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'resource_selected' signal. + + + + + Cached name for the 'resource_changed' signal. + + + + + This node is used to generate previews for resources or files. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Queue a resource file located at for preview. Once the preview is ready, the 's will be called. The must take the following four arguments: path, preview, thumbnail_preview, userdata. can be anything, and will be returned when is called. + Note: If it was not possible to create the preview the will still be called, but the preview will be . + + + + + Queue the being edited for preview. Once the preview is ready, the 's will be called. The must take the following four arguments: path, preview, thumbnail_preview, userdata. can be anything, and will be returned when is called. + Note: If it was not possible to create the preview the will still be called, but the preview will be . + + + + + Create an own, custom preview generator. + + + + + Removes a custom preview generator. + + + + + Check if the resource changed, if so, it will be invalidated and the corresponding signal emitted. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if a preview was invalidated (changed). path corresponds to the path of the preview. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'queue_resource_preview' method. + + + + + Cached name for the 'queue_edited_resource_preview' method. + + + + + Cached name for the 'add_preview_generator' method. + + + + + Cached name for the 'remove_preview_generator' method. + + + + + Cached name for the 'check_for_invalidation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'preview_invalidated' signal. + + + + + Custom code to generate previews. Check EditorSettings.filesystem/file_dialog/thumbnail_size to find a proper size to generate previews at. + + + + + If this function returns , the generator will call or for small previews as well. + By default, it returns . + + + + + Generate a preview from a given resource with the specified size. This must always be implemented. + Returning 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). + dictionary can be modified to store file-specific metadata that can be used in (like image size, sample length etc.). + + + + + Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call . + Returning 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). + dictionary can be modified to store file-specific metadata that can be used in (like image size, sample length etc.). + + + + + If this function returns , the generator will automatically generate the small previews from the normal preview texture generated by the methods or . + By default, it returns . + + + + + Returns if your generator supports the resource of type . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_generate_small_preview' method. + + + + + Cached name for the '_generate' method. + + + + + Cached name for the '_generate_from_path' method. + + + + + Cached name for the '_generate_small_preview_automatically' method. + + + + + Cached name for the '_handles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource tooltip plugins are used by to generate customized tooltips for specific resources. E.g. tooltip for a displays a bigger preview and the texture's dimensions. + A plugin must be first registered with . When the user hovers a resource in filesystem dock which is handled by the plugin, is called to create the tooltip. It works similarly to . + + + + + Return if the plugin is going to handle the given . + + + + + Create and return a tooltip that will be displayed when the user hovers a resource under the given in filesystem dock. + The dictionary is provided by preview generator (see ). + is the base default tooltip, which is a with a file name, type and size labels. If another plugin handled the same file type, will be output from the previous plugin. For best result, make sure the base tooltip is part of the returned . + Note: It's unadvised to use , especially with heavy resources like models or textures, because it will make the editor unresponsive when creating the tooltip. You can use if you want to display a preview in your tooltip. + Note: If you decide to discard the , make sure to call , because it's not freed automatically. + + 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 + + + + + + Requests a thumbnail for the given . The thumbnail is created asynchronously by and automatically set when available. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_handles' method. + + + + + Cached name for the '_make_tooltip_for_path' method. + + + + + Cached name for the 'request_thumbnail' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows to define an importer script for a third-party 3D format. + To use , register it using the method first. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_extensions' method. + + + + + Cached name for the '_get_import_flags' method. + + + + + Cached name for the '_get_import_options' method. + + + + + Cached name for the '_get_option_visibility' method. + + + + + Cached name for the '_import_scene' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Imports Blender scenes in the .blend 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 filesystem/import/blender/blender_path editor setting. + This importer is only used if ProjectSettings.filesystem/import/blender/enabled is enabled, otherwise .blend 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 EditorSettings.filesystem/import/fbx/fbx2gltf_path editor setting. + This importer is only used if ProjectSettings.filesystem/import/fbx2gltf/enabled is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + EditorSceneFormatImporterUFBX is designed to load FBX files and supports both binary and ASCII FBX files from version 3000 onward. This class supports various 3D object types like meshes, skins, blend shapes, materials, and rigging information. The class aims for feature parity with the official FBX SDK and supports FBX 7.4 specifications. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Imported scenes can be automatically modified right after import by setting their Custom Script Import property to a tool script that inherits from this class. + The callback receives the imported scene's root node and returns the modified version of the scene: + + 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); + } + } + } + } + + + + + + Called after the scene was imported. This method must return the modified version of the scene. + + + + + Returns the source file path which got imported (e.g. res://scene.dae). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_post_import' method. + + + + + Cached name for the 'get_source_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Override to add general import options. These will appear in the main import dock on the editor. Add options via and . + + + + + Override to add internal import options. These will appear in the 3D scene import dialog. Add options via and . + + + + + Should return if the 3D view of the import dialog needs to update when changing the given option. + + + + + Should return to show the given option, to hide the given option, or to ignore. + + + + + Should return to show the given option, to hide the given option, or to ignore. + + + + + Process a specific node or resource for a given category. + + + + + Post process the scene. This function is called after the final scene has been configured. + + + + + Pre Process the scene. This function is called right after the scene format loader loaded the scene and no changes have been made. + + + + + Query the value of an option. This function can only be called from those querying visibility, or processing. + + + + + Add a specific import option (name and default value only). This function can only be called from and . + + + + + Add a specific import option. This function can only be called from and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_import_options' method. + + + + + Cached name for the '_get_internal_import_options' method. + + + + + Cached name for the '_get_internal_option_update_view_required' method. + + + + + Cached name for the '_get_internal_option_visibility' method. + + + + + Cached name for the '_get_option_visibility' method. + + + + + Cached name for the '_internal_process' method. + + + + + Cached name for the '_post_process' method. + + + + + Cached name for the '_pre_process' method. + + + + + Cached name for the 'get_option_value' method. + + + + + Cached name for the 'add_import_option' method. + + + + + Cached name for the 'add_import_option_advanced' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Scripts extending this class and implementing its method can be executed from the Script Editor's File > Run menu option (or by pressing Ctrl + Shift + X) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using s instead. + Note: Extending scripts need to have tool mode enabled. + Example: Running the following script prints "Hello from the Godot Editor!": + + using Godot; + + [Tool] + public partial class HelloEditor : EditorScript + { + public override void _Run() + { + GD.Print("Hello from the Godot Editor!"); + } + } + + Note: The script is run in the Editor context, which means the output is visible in the console window started with the Editor (stdout) instead of the usual Godot Output dock. + Note: EditorScript is , meaning it is destroyed when nothing references it. This can cause errors during asynchronous operations if there are no references to the script. + + + + + This method is executed by the Editor when File > Run is used. + + + + + Makes root of the currently opened scene. Only works if the scene is empty. If the is a scene instance, an inheriting scene will be created. + + + + + Returns the edited (current) scene's root . Equivalent of . + + + + + Returns the singleton instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_run' method. + + + + + Cached name for the 'add_root_node' method. + + + + + Cached name for the 'get_scene' method. + + + + + Cached name for the 'get_editor_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Similar to this node is used in the editor's Inspector dock, but only to edit the script property of a . 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 to recreate the same behavior. + Note: You must set the for the custom context menu items to work. + + + + + The owner of the script property that holds the edited resource. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'script_owner' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_script_owner' method. + + + + + Cached name for the 'get_script_owner' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages the SceneTree selection in the editor. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Clear the selection. + + + + + Adds a node to the selection. + Note: The newly selected node will not be automatically edited in the inspector. If you want to edit a node, use . + + + + + Removes a node from the selection. + + + + + Returns the list of selected nodes. + + + + + Returns the list of selected nodes, optimized for transform operations (i.e. moving them, rotating, etc.). This list can be used to avoid situations where a node is selected and is also a child/grandchild. + + + + + Emitted when the selection changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'get_selected_nodes' method. + + + + + Cached name for the 'get_transformable_selected_nodes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'selection_changed' signal. + + + + + Object that holds the project-independent editor settings. These settings are generally visible in the Editor > Editor Settings menu. + Property names use slash delimiters to distinguish sections. Setting values can be of any type. It's recommended to use snake_case for editor settings to be consistent with the Godot editor itself. + Accessing the settings can be done using the following methods, such as: + + 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(); + + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Emitted after any editor setting has changed. It's used by various editor plugins to update their visuals on theme changes or logic on configuration changes. + + + + + Returns if the setting specified by exists, otherwise. + + + + + Sets the of the setting specified by . This is equivalent to using on the EditorSettings instance. + + + + + Returns the value of the setting specified by . This is equivalent to using on the EditorSettings instance. + + + + + Erases the setting whose name is specified by . + + + + + Sets the initial value of the setting specified by to . This is used to provide a value for the Revert button in the Editor Settings. If is , the setting is reset to as well. + + + + + Adds a custom property info to a property. The dictionary must contain: + - name: (the name of the property) + - type: (see ) + - optionally hint: (see ) and hint_string: + + var settings = GetEditorInterface().GetEditorSettings(); + settings.Set("category/property_name", 0); + + var propertyInfo = new Godot.Collections.Dictionary + { + {"name", "category/propertyName"}, + {"type", Variant.Type.Int}, + {"hint", PropertyHint.Enum}, + {"hint_string", "one,two,three"} + }; + + settings.AddPropertyInfo(propertyInfo); + + + + + + Sets project-specific metadata with the , and specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also . + + + + + Returns project-specific metadata for the and specified. If the metadata doesn't exist, will be returned instead. See also . + + + + + Sets the list of favorite files and directories for this project. + + + + + Sets the list of favorite files and directories for this project. + + + + + Returns the list of favorite files and directories for this project. + + + + + Sets the list of recently visited folders in the file dialog for this project. + + + + + Sets the list of recently visited folders in the file dialog for this project. + + + + + Returns the list of recently visited folders in the file dialog for this project. + + + + + Overrides the built-in editor action with the input actions defined in . + + + + + Checks if any settings with the prefix exist in the set of changed settings. See also . + + + + + Gets an array of the settings which have been changed since the last save. Note that internally changed_settings is cleared after a successful save, so generally the most appropriate place to use this method is when processing . + + + + + Marks the passed editor setting as being changed, see . Only settings which exist (see ) will be accepted. + + + + + Emitted after any editor setting has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_setting' method. + + + + + Cached name for the 'set_setting' method. + + + + + Cached name for the 'get_setting' method. + + + + + Cached name for the 'erase' method. + + + + + Cached name for the 'set_initial_value' method. + + + + + Cached name for the 'add_property_info' method. + + + + + Cached name for the 'set_project_metadata' method. + + + + + Cached name for the 'get_project_metadata' method. + + + + + Cached name for the 'set_favorites' method. + + + + + Cached name for the 'get_favorites' method. + + + + + Cached name for the 'set_recent_dirs' method. + + + + + Cached name for the 'get_recent_dirs' method. + + + + + Cached name for the 'set_builtin_action_override' method. + + + + + Cached name for the 'check_changed_settings_in_group' method. + + + + + Cached name for the 'get_changed_settings' method. + + + + + Cached name for the 'mark_setting_changed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'settings_changed' signal. + + + + + This node is used in the editor's Inspector dock to allow editing of numeric values. Can be used with to recreate the same behavior. + If the value is 1, the will display up/down arrows, similar to . If the value is not 1, a slider will be displayed instead. + + + + + The text that displays to the left of the value. + + + + + The suffix to display after the value (in a faded color). This should generally be a plural word. You may have to use an abbreviation if the suffix is too long to be displayed. + + + + + If , the slider can't be interacted with. + + + + + If , the slider will not draw background. + + + + + If , the slider and up/down arrows are hidden. + + + + + Emitted when the spinner/slider is grabbed. + + + + + Emitted when the spinner/slider is ungrabbed. + + + + + Emitted when the updown button is pressed. + + + + + Emitted when the value form gains focus. + + + + + Emitted when the value form loses focus. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'label' property. + + + + + Cached name for the 'suffix' property. + + + + + Cached name for the 'read_only' property. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'hide_slider' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_label' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'set_suffix' method. + + + + + Cached name for the 'get_suffix' method. + + + + + Cached name for the 'set_read_only' method. + + + + + Cached name for the 'is_read_only' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_hide_slider' method. + + + + + Cached name for the 'is_hiding_slider' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'grabbed' signal. + + + + + Cached name for the 'ungrabbed' signal. + + + + + Cached name for the 'updown_pressed' signal. + + + + + Cached name for the 'value_focus_entered' signal. + + + + + Cached name for the 'value_focus_exited' signal. + + + + + Base class that all s used by the extend from. + Add a syntax highlighter to an individual script by calling . To apply to all scripts on open, call . + + + + + Virtual method which can be overridden to return the syntax highlighter name. + + + + + Virtual method which can be overridden to return the supported language names. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_supported_languages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages the functionality and display of toast notifications within the editor, ensuring timely and informative alerts are presented to users. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Toast will display with an INFO severity. + + + + + Toast will display with a WARNING severity and have a corresponding color. + + + + + Toast will display with an ERROR severity and have a corresponding color. + + + + + Pushes a toast notification to the editor for display. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'push_toast' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 in script. + Add the extracted strings to argument msgids or msgids_context_plural if context or plural is used. + When adding to msgids_context_plural, you must add the data using the format ["A", "B", "C"], where A represents the extracted string, B represents the context, and C represents the plural version of the extracted string. If you want to add only context but not plural, put "" 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. + + 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" }; + } + } + + To add a translatable string associated with context or plural, add it to msgids_context_plural: + + // 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", ""}); + + Note: If you override parsing logic for standard script types (GDScript, C#, etc.), it would be better to load the path argument using . This is because built-in scripts are loaded as type, not type. For example: + + 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" }; + } + + To use , register it using the method first. + + + + + If overridden, called after to get comments for the parsed entries. This method should fill the arrays with the same number of elements and in the same order as . + + + + + Gets the list of file extensions to associate with this parser, e.g. ["csv"]. + + + + + Override this method to define a custom parsing logic to extract the translatable strings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_comments' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_parse_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and are attached (on demand) to the singleton instance of . 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 and override each of these virtual functions. + + + + + A new file has been added. + + + + + An earlier added file has been modified. + + + + + An earlier added file has been renamed. + + + + + An earlier added file has been deleted. + + + + + An earlier added file has been typechanged. + + + + + A file is left unmerged. + + + + + A commit is encountered from the commit area. + + + + + A file is encountered from the staged area. + + + + + A file is encountered from the unstaged area. + + + + + Checks out a in the VCS. + + + + + Commits the currently staged changes and applies the commit to the resulting commit. + + + + + Creates a new branch named in the VCS. + + + + + Creates a new remote destination with name and points it to . This can be an HTTPS remote or an SSH remote. + + + + + Discards the changes made in a file present at . + + + + + Fetches new changes from the , but doesn't write changes to the current working directory. Equivalent to git fetch. + + + + + Gets an instance of an of s containing available branch names in the VCS. + + + + + Gets the current branch name defined in the VCS. + + + + + Returns an array of items (see , , , and ), each containing information about a diff. If is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff. + + + + + Returns an of items (see ), each containing a line diff between a file at and the which is passed in. + + + + + Returns an of items (see ), each containing the status data of every modified file in the project folder. + + + + + Returns an of items (see ), each containing the data for a past commit. + + + + + Returns an of s, each containing the name of a remote configured in the VCS. + + + + + Returns the name of the underlying VCS provider. + + + + + Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at . + + + + + Pulls changes from the remote. This can give rise to merge conflicts. + + + + + Pushes changes to the . If is , a force push will override the change history already present on the remote. + + + + + Remove a branch from the local VCS. + + + + + Remove a remote from the local VCS. + + + + + Set user credentials in the underlying VCS. and are used only during HTTPS authentication unless not already mentioned in the remote URL. , , and are only used during SSH authentication. + + + + + Shuts down VCS plugin instance. Called when the user either closes the editor or shuts down the VCS plugin through the editor UI. + + + + + Stages the file present at to the staged area. + + + + + Unstages the file present at from the staged area to the unstaged area. + + + + + Helper function to create a for storing a line diff. is the line number in the new file (can be -1 if the line is deleted). is the line number in the old file (can be -1 if the line is added). is the diff text. is a single character string which stores the line origin. + + + + + Helper function to create a for storing diff hunk data. is the starting line number in old file. is the starting line number in new file. is the number of lines in the old file. is the number of lines in the new file. + + + + + Helper function to create a for storing old and new diff file paths. + + + + + Helper function to create a commit item. is the commit message of the commit. is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. is the UTC Unix timestamp of when the commit was created. is the timezone offset in minutes, recorded from the system timezone where the commit was created. + + + + + Helper function to create a used by editor to read the status of a file. + + + + + Helper function to add an array of into a . + + + + + Helper function to add an array of into a . + + + + + Pops up an error message in the editor which is shown as coming from the underlying VCS. Use this to show VCS specific error messages. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_checkout_branch' method. + + + + + Cached name for the '_commit' method. + + + + + Cached name for the '_create_branch' method. + + + + + Cached name for the '_create_remote' method. + + + + + Cached name for the '_discard_file' method. + + + + + Cached name for the '_fetch' method. + + + + + Cached name for the '_get_branch_list' method. + + + + + Cached name for the '_get_current_branch_name' method. + + + + + Cached name for the '_get_diff' method. + + + + + Cached name for the '_get_line_diff' method. + + + + + Cached name for the '_get_modified_files_data' method. + + + + + Cached name for the '_get_previous_commits' method. + + + + + Cached name for the '_get_remotes' method. + + + + + Cached name for the '_get_vcs_name' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_pull' method. + + + + + Cached name for the '_push' method. + + + + + Cached name for the '_remove_branch' method. + + + + + Cached name for the '_remove_remote' method. + + + + + Cached name for the '_set_credentials' method. + + + + + Cached name for the '_shut_down' method. + + + + + Cached name for the '_stage_file' method. + + + + + Cached name for the '_unstage_file' method. + + + + + Cached name for the 'create_diff_line' method. + + + + + Cached name for the 'create_diff_hunk' method. + + + + + Cached name for the 'create_diff_file' method. + + + + + Cached name for the 'create_commit' method. + + + + + Cached name for the 'create_status_file' method. + + + + + Cached name for the 'add_diff_hunks_into_diff_file' method. + + + + + Cached name for the 'add_line_diffs_into_diff_hunk' method. + + + + + Cached name for the 'popup_error' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is available only in s and can't be instantiated. You can access it using . + While doesn't expose any methods for file manipulation, it can listen for various file-related signals. + + + + + Sets the given as currently selected, ensuring that the selected file/directory is visible. + + + + + Registers a new . + + + + + Removes an . Fails if the plugin wasn't previously added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new scene is created that inherits the scene at file path. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given scenes are being instantiated in the editor. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an external resource had its file removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given file was removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given folder was removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a file is moved from oldFile path to newFile path. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a folder is moved from oldFolder path to newFolder path. + + + + + Emitted when folders change color. + + + + + Emitted when the user switches file display mode or split mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'navigate_to_path' method. + + + + + Cached name for the 'add_resource_tooltip_plugin' method. + + + + + Cached name for the 'remove_resource_tooltip_plugin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'inherit' signal. + + + + + Cached name for the 'instantiate' signal. + + + + + Cached name for the 'resource_removed' signal. + + + + + Cached name for the 'file_removed' signal. + + + + + Cached name for the 'folder_removed' signal. + + + + + Cached name for the 'files_moved' signal. + + + + + Cached name for the 'folder_moved' signal. + + + + + Cached name for the 'folder_color_changed' signal. + + + + + Cached name for the 'display_mode_changed' signal. + + + + + Note: This class can only be used for editor plugins because it relies on editor settings. + + var codePreview = new TextEdit(); + var highlighter = new GDScriptSyntaxHighlighter(); + codePreview.SyntaxHighlighter = highlighter; + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GridMapEditorPlugin provides access to the editor functionality. + + + + + Returns the node currently edited by the grid map editor. + + + + + Selects the cells inside the given bounds from to . + + + + + Deselects any currently selected cells. + + + + + Returns the cell coordinate bounds of the current selection. Use to check if there is an active selection. + + + + + Returns if there are selected cells. + + + + + Returns an array of s with the selected cells' coordinates. + + + + + Selects the item with the given index in the grid map editor's palette. If a negative index is given, no item will be selected. If a value greater than the last index is given, the last item will be selected. + Note: The indices might not be in the same order as they appear in the editor's interface. + + + + + Returns the index of the selected item in the grid map editor's palette or -1 if no item is selected. + Note: The indices might not be in the same order as they appear in the editor's interface. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_current_grid_map' method. + + + + + Cached name for the 'set_selection' method. + + + + + Cached name for the 'clear_selection' method. + + + + + Cached name for the 'get_selection' method. + + + + + Cached name for the 'has_selection' method. + + + + + Cached name for the 'get_selected_cells' method. + + + + + Cached name for the 'set_selected_palette_item' method. + + + + + Cached name for the 'get_selected_palette_item' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The BMFont format is a format created by the BMFont program. Many BMFont-compatible programs also exist, like BMGlyph. + Compared to , supports bitmap fonts with varying glyph widths/heights. + See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + resources are typically used as click masks in and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + Example CSV file: + + 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.",「こんにちは」男は言いました + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This importer imports resources, as opposed to . If you need to render the image in 2D or 3D, use instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This image-based workflow can be easier to use than , but it requires all glyphs to have the same width and height, glyph advances and drawing offsets can be customized. This makes most suited to fixed-width fonts. + See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This imports a 3-dimensional texture, which can then be used in custom shaders, as a density map or as a . See also and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MP3 is a lossy audio format, with worse audio quality compared to at a given bitrate. + In most cases, it's recommended to use Ogg Vorbis over MP3. However, if you're using an 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 . 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Unlike , will import a single resource by default instead of importing a . This makes it easier to use the resource in nodes that expect direct resources, such as , or . Note that it is still possible to save mesh resources from 3D scenes using the Advanced Import Settings dialog, regardless of the source format. + See also , which is used for more advanced 3D formats such as glTF. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Ogg Vorbis is a lossy audio format, with better audio quality compared to at a given bitrate. + In most cases, it's recommended to use Ogg Vorbis over MP3. However, if you're using an 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 . 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. + + + + + This method loads audio data from a PackedByteArray buffer into an AudioStreamOggVorbis object. + + + + + This method loads audio data from a PackedByteArray buffer into an AudioStreamOggVorbis object. + + + + + This method loads audio data from a file into an AudioStreamOggVorbis object. The file path is provided as a string. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_from_buffer' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + See also , which is used for OBJ models that can be imported as an independent or a scene. + Additional options (such as extracting individual meshes or materials to files) are available in the Advanced Import Settings 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 Advanced. + Note: is not used for s, such as .tscn and .scn files. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This imports native GLSL shaders as resources, for use with low-level operations. This importer does not handle .gdshader files. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This importer imports resources. If you need to process the image in scripts in a more convenient way, use instead. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This imports a collection of textures from a PNG image into an or 2D . 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 and . + Note: does not handle importing , which is created using the editor instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + By default, Godot imports WAV files using the lossy Quite OK Audio compression. You may change this by setting the compress/mode property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The 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 methods. + + 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(); + } + + + + + + Prefills required fields to configure the ScriptCreateDialog for use. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user clicks the OK button. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'config' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'script_created' signal. + + + + + Godot editor's script editor. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Returns the object that the user is currently editing. + + + + + Returns an array with all objects which are currently open in editor. + + + + + Returns array of breakpoints. + + + + + Registers the to the editor, the will be available on all open scripts. + Note: Does not apply to scripts that are already opened. + + + + + Unregisters the from the editor. + Note: The will still be applied to scripts that are already opened. + + + + + Goes to the specified line in the current script. + + + + + Returns a that is currently active in editor. + + + + + Returns an array with all objects which are currently open in editor. + + + + + Opens the script create dialog. The script will extend . The file extension can be omitted from . It will be added based on the selected scripting language. + + + + + Opens help for the given topic. The is an encoded string that controls which class, method, constant, signal, annotation, property, or theme item should be focused. + The supported formats include class_name:class, class_method:class:method, class_constant:class:constant, class_signal:class:signal, class_annotation:class:@annotation, class_property:class:property, and class_theme_item:class:item, where class is the class name, method is the method name, constant is the constant name, signal is the signal name, annotation is the annotation name, property is the property name, and item is the theme item. + + # Shows help for the Node class. + class_name:Node + # Shows help for the global min function. + # Global objects are accessible in the `@GlobalScope` namespace, shown here. + class_method:@GlobalScope:min + # Shows help for get_viewport in the Node class. + class_method:Node:get_viewport + # Shows help for the Input constant MOUSE_BUTTON_MIDDLE. + class_constant:Input:MOUSE_BUTTON_MIDDLE + # Shows help for the BaseButton signal pressed. + class_signal:BaseButton:pressed + # Shows help for the CanvasItem property visible. + class_property:CanvasItem:visible + # Shows help for the GDScript annotation export. + # Annotations should be prefixed with the `@` symbol in the descriptor, as shown here. + class_annotation:@GDScript:@export + # Shows help for the GraphNode theme item named panel_selected. + class_theme_item:GraphNode:panel_selected + + + + + + Updates the documentation for the given if the script's documentation is currently open. + Note: This should be called whenever the script is changed to keep the open documentation state up to date. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user changed active script. Argument is a freshly activated . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when editor is about to close the active script. Argument is a that is going to be closed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_current_editor' method. + + + + + Cached name for the 'get_open_script_editors' method. + + + + + Cached name for the 'get_breakpoints' method. + + + + + Cached name for the 'register_syntax_highlighter' method. + + + + + Cached name for the 'unregister_syntax_highlighter' method. + + + + + Cached name for the 'goto_line' method. + + + + + Cached name for the 'get_current_script' method. + + + + + Cached name for the 'get_open_scripts' method. + + + + + Cached name for the 'open_script_create_dialog' method. + + + + + Cached name for the 'goto_help' method. + + + + + Cached name for the 'update_docs_from_script' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'editor_script_changed' signal. + + + + + Cached name for the 'script_close' signal. + + + + + Base editor for editing scripts in the . This does not include documentation items. + + + + + Returns the underlying used for editing scripts. For text scripts, this is a . + + + + + Adds a to the open script. + + + + + Emitted after script validation or when the edited resource has changed. + + + + + Emitted after script validation. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests contextual help. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests to view a specific line of a script, similar to . + + + + + Emitted when the user contextual goto and the item is in the same script. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user changes current script or moves caret by 10 or more columns within the same script. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests a specific documentation page. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user request to search text in the file system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user request to find and replace text in the file system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests to view a specific method of a script, similar to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_base_editor' method. + + + + + Cached name for the 'add_syntax_highlighter' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'name_changed' signal. + + + + + Cached name for the 'edited_script_changed' signal. + + + + + Cached name for the 'request_help' signal. + + + + + Cached name for the 'request_open_script_at_line' signal. + + + + + Cached name for the 'request_save_history' signal. + + + + + Cached name for the 'request_save_previous_state' signal. + + + + + Cached name for the 'go_to_help' signal. + + + + + Cached name for the 'search_in_files_requested' signal. + + + + + Cached name for the 'replace_in_files_requested' signal. + + + + + Cached name for the 'go_to_method' signal. + + + + diff --git a/bin/GodotSharp/Api/Release/GodotPlugins.dll b/bin/GodotSharp/Api/Release/GodotPlugins.dll new file mode 100644 index 0000000..4a359d8 Binary files /dev/null and b/bin/GodotSharp/Api/Release/GodotPlugins.dll differ diff --git a/bin/GodotSharp/Api/Release/GodotPlugins.pdb b/bin/GodotSharp/Api/Release/GodotPlugins.pdb new file mode 100644 index 0000000..7b06a41 Binary files /dev/null and b/bin/GodotSharp/Api/Release/GodotPlugins.pdb differ diff --git a/bin/GodotSharp/Api/Release/GodotPlugins.runtimeconfig.json b/bin/GodotSharp/Api/Release/GodotPlugins.runtimeconfig.json new file mode 100644 index 0000000..8e02282 --- /dev/null +++ b/bin/GodotSharp/Api/Release/GodotPlugins.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "rollForward": "LatestMajor", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/bin/GodotSharp/Api/Release/GodotSharp.dll b/bin/GodotSharp/Api/Release/GodotSharp.dll new file mode 100644 index 0000000..93645c3 Binary files /dev/null and b/bin/GodotSharp/Api/Release/GodotSharp.dll differ diff --git a/bin/GodotSharp/Api/Release/GodotSharp.pdb b/bin/GodotSharp/Api/Release/GodotSharp.pdb new file mode 100644 index 0000000..b16872a Binary files /dev/null and b/bin/GodotSharp/Api/Release/GodotSharp.pdb differ diff --git a/bin/GodotSharp/Api/Release/GodotSharp.xml b/bin/GodotSharp/Api/Release/GodotSharp.xml new file mode 100644 index 0000000..b119982 --- /dev/null +++ b/bin/GodotSharp/Api/Release/GodotSharp.xml @@ -0,0 +1,260491 @@ + + + + GodotSharp + + + + + Axis-Aligned Bounding Box. AABB consists of a position, a size, and + several utility functions. It is typically used for fast overlap tests. + + + + + Beginning corner. Typically has values lower than . + + Directly uses a private field. + + + + Size from to . Typically all components are positive. + If the size is negative, you can use to fix it. + + Directly uses a private field. + + + + Ending corner. This is calculated as plus + . Setting this value will change the size. + + + Getting is equivalent to = + , + setting is equivalent to = - + + + + + The volume of this . + See also . + + + + + Returns an with equivalent position and size, modified so that + the most-negative corner is the origin and the size is positive. + + The modified . + + + + Returns the center of the , which is equal + to + ( / 2). + + The center. + + + + Returns if this completely encloses another one. + + The other that may be enclosed. + + A for whether or not this encloses . + + + + + Returns this expanded to include a given point. + + The point to include. + The expanded . + + + + Gets the position of one of the 8 endpoints of the . + + Which endpoint to get. + + is less than 0 or greater than 7. + + An endpoint of the . + + + + Returns the normalized longest axis of the . + + A vector representing the normalized longest axis of the . + + + + Returns the index of the longest axis of the . + + A index for which axis is longest. + + + + Returns the scalar length of the longest axis of the . + + The scalar length of the longest axis of the . + + + + Returns the normalized shortest axis of the . + + A vector representing the normalized shortest axis of the . + + + + Returns the index of the shortest axis of the . + + A index for which axis is shortest. + + + + Returns the scalar length of the shortest axis of the . + + The scalar length of the shortest axis of the . + + + + Returns the support point in a given direction. + This is useful for collision detection algorithms. + + The direction to find support for. + A vector representing the support. + + + + Returns a copy of the grown a given amount of units towards all the sides. + + The amount to grow by. + The grown . + + + + Returns if the contains a point, + or otherwise. + + The point to check. + + A for whether or not the contains . + + + + + Returns if the + has a surface or a length, and + if the is empty (all components + of are zero or negative). + + + A for whether or not the has surface. + + + + + Returns if the has + area, and if the + is linear, empty, or has a negative . + See also . + + + A for whether or not the has volume. + + + + + Returns the intersection of this and . + + The other . + The clipped . + + + + Returns if the overlaps with + (i.e. they have at least one point in common). + + The other to check for intersections with. + + A for whether or not they are intersecting. + + + + + Returns if the is on both sides of . + + The to check for intersection. + + A for whether or not the intersects the . + + + + + Returns if the intersects + the line segment between and . + + The start of the line segment. + The end of the line segment. + + A for whether or not the intersects the line segment. + + + + + Returns if this is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns a larger that contains this and . + + The other . + The merged . + + + + Constructs an from a position and size. + + The position. + The size, typically positive. + + + + Constructs an from a , + , , and . + + The position. + The width, typically positive. + The height, typically positive. + The depth, typically positive. + + + + Constructs an from , + , , and . + + The position's X coordinate. + The position's Y coordinate. + The position's Z coordinate. + The size, typically positive. + + + + Constructs an from , + , , , + , and . + + The position's X coordinate. + The position's Y coordinate. + The position's Z coordinate. + The width, typically positive. + The height, typically positive. + The depth, typically positive. + + + + Returns if the AABBs are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left AABB. + The right AABB. + Whether or not the AABBs are exactly equal. + + + + Returns if the AABBs are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left AABB. + The right AABB. + Whether or not the AABBs are not equal. + + + + Returns if the AABB is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the AABB and the object are equal. + + + + Returns if the AABBs are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other AABB. + Whether or not the AABBs are exactly equal. + + + + Returns if this AABB and are approximately equal, + by running on each component. + + The other AABB to compare. + Whether or not the AABBs structures are approximately equal. + + + + Serves as the hash function for . + + A hash code for this AABB. + + + + Converts this to a string. + + A string representation of this AABB. + + + + Converts this to a string with the given . + + A string representation of this AABB. + + + + Exports the annotated as a clickable button. + + + + + The label of the button. + + + + + If defined, used to fetch an icon for the button via , + from the EditorIcons theme type. + + + + + Exports the annotated as a clickable button. + + The label of the button. + + + + Callable is a first class object which can be held in variables and passed to functions. + It represents a given method in an Object, and is typically used for signal callbacks. + + + + public void PrintArgs(object ar1, object arg2, object arg3 = null) + { + GD.PrintS(arg1, arg2, arg3); + } + + public void Test() + { + // This Callable object will call the PrintArgs method defined above. + Callable callable = new Callable(this, nameof(PrintArgs)); + callable.Call("hello", "world"); // Prints "hello world null". + callable.Call(Vector2.Up, 42, callable); // Prints "(0, -1) 42 Node(Node.cs)::PrintArgs". + callable.Call("invalid"); // Invalid call, should have at least 2 arguments. + } + + + + + + Constructs a new for the given . + + Action method that will be called. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constructs a new for the given . + + Action method that will be called. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Object that contains the method. + + + + + Name of the method that will be called. + + + + + Delegate of the method that will be called. + + + + + Trampoline function pointer for dynamically invoking . + + + + + Constructs a new for the method called + in the specified . + + Object that contains the method. + Name of the method that will be called. + + + + Calls the method represented by this . + Arguments can be passed and should match the method's signature. + + Arguments that will be passed to the method call. + The value returned by the method. + + + + Calls the method represented by this in deferred mode, i.e. during the idle frame. + Arguments can be passed and should match the method's signature. + + Arguments that will be passed to the method call. + + + + + Constructs a new using the + function pointer to dynamically invoke the given . + + + The parameters passed to the function are: + + + + delegateObj + The given , upcast to . + + + args + Array of arguments. + + + ret + Return value of type . + + + + The delegate should be downcast to a more specific delegate type before invoking. + + + + Usage example: + + + static void Trampoline(object delegateObj, NativeVariantPtrArgs args, out godot_variant ret) + { + if (args.Count != 1) + throw new ArgumentException($"Callable expected {1} arguments but received {args.Count}."); + + TResult res = ((Func<int, string>)delegateObj)( + VariantConversionCallbacks.GetToManagedCallback<int>()(args[0]) + ); + + ret = VariantConversionCallbacks.GetToVariantCallback<string>()(res); + } + + var callable = Callable.CreateWithUnsafeTrampoline((int num) => "foo" + num.ToString(), &Trampoline); + var res = (string)callable.Call(10); + Console.WriteLine(res); + + + Delegate method that will be called. + Trampoline function pointer for invoking the delegate. + + + + Provides a GCHandle that becomes weak when unloading the assembly load context, without having + to manually replace the GCHandle. This hides all the complexity of releasing strong GC handles + to allow the assembly load context to unload properly. + + Internally, a strong CustomGCHandle actually contains a weak GCHandle, while the actual strong + reference is stored in a static table. + + + + + Wrapper around Godot's Array class, an array of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. Otherwise prefer .NET collections + such as or . + + + + + Constructs a new empty . + + + + + Constructs a new from the given collection's elements. + + + The is . + + The collection of elements to construct from. + A new Godot Array. + + + + Constructs a new from the given objects. + + + The is . + + The objects to put in the new array. + A new Godot Array. + + + + Constructs a new from the given span's elements. + + + The is . + + A new Godot Array. + + + + Constructs a new from the given span's elements. + + + The is . + + A new Godot Array. + + + + Constructs a new from the given span's elements. + + + The is . + + A new Godot Array. + + + + Constructs a new from the given ReadOnlySpan's elements. + + + The is . + + A new Godot Array. + + + + Disposes of this . + + + + + Returns a copy of the . + If is , a deep copy if performed: + all nested arrays and dictionaries are duplicated and will not be shared with + the original array. If , a shallow copy is made and + references to the original nested arrays and dictionaries are kept, so that + modifying a sub-array or dictionary in the copy will also impact those + referenced in the source array. Note that any derived + elements will be shallow copied regardless of the + setting. + + If , performs a deep copy. + A new Godot Array. + + + + Assigns the given value to all elements in the array. This can typically be + used together with to create an array with a given + size and initialized elements. + Note: If is of a reference type ( + derived, or , etc.) then the array + is filled with the references to the same object, i.e. no duplicates are + created. + + + + var array = new Godot.Collections.Array(); + array.Resize(10); + array.Fill(0); // Initialize the 10 elements to 0. + + + + The array is read-only. + + The value to fill the array with. + + + + Returns the maximum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The maximum value contained in the array. + + + + Returns the minimum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The minimum value contained in the array. + + + + Returns a random value from the target array. + + + + var array = new Godot.Collections.Array { 1, 2, 3, 4 }; + GD.Print(array.PickRandom()); // Prints either of the four numbers. + + + A random element from the array. + + + + Compares this against the + recursively. Returns if the + sizes and contents of the arrays are equal, + otherwise. + + The other array to compare against. + + if the sizes and contents of the arrays are equal, + otherwise. + + + + + Resizes the array to contain a different number of elements. If the array + size is smaller, elements are cleared, if bigger, new elements are + . + + + The array is read-only. + + The new size of the array. + if successful, or an error code. + + + + Reverses the order of the elements in the array. + + + The array is read-only. + + + + + Shuffles the array such that the items will have a random order. + This method uses the global random number generator common to methods + such as . Call to + ensure that a new seed will be used each time if you want + non-reproducible shuffling. + + + The array is read-only. + + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + A new array that contains the elements inside the slice range. + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + -or- + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + The length of the range. + A new array that contains the elements inside the slice range. + + + + Returns the slice of the , from + (inclusive) to (exclusive), as a new . + The absolute value of and + will be clamped to the array size. + If either or are negative, they + will be relative to the end of the array (i.e. arr.GetSliceRange(0, -2) + is a shorthand for arr.GetSliceRange(0, arr.Count - 2)). + If specified, is the relative index between source + elements. It can be negative, then must be higher than + . For example, [0, 1, 2, 3, 4, 5].GetSliceRange(5, 1, -2) + returns [5, 3]. + If is true, each element will be copied by value + rather than by reference. + + The zero-based index at which the range starts. + The zero-based index at which the range ends. + The relative index between source elements to take. + If , performs a deep copy. + A new array that contains the elements inside the slice range. + + + + Sorts the array. + Note: The sorting algorithm used is not stable. This means that values + considered equal may have their order changed when using . + Note: Strings are sorted in alphabetical order (as opposed to natural order). + This may lead to unexpected behavior when sorting an array of strings ending + with a sequence of numbers. + To sort with a custom predicate use + . + + + + var strings = new Godot.Collections.Array { "string1", "string2", "string10", "string11" }; + strings.Sort(); + GD.Print(strings); // Prints [string1, string10, string11, string2] + + + + The array is read-only. + + + + + Concatenates two s together, with the + being added to the end of the specified in . + For example, [1, 2] + [3, 4] results in [1, 2, 3, 4]. + + The first array. + The second array. + A new Godot Array with the contents of both arrays. + + + + Returns the item at the given . + + + The property is assigned and the array is read-only. + + + is less than 0 or greater than the array's size. + + The item at the given . + + + + Adds an item to the end of this . + This is the same as append or push_back in GDScript. + + + The array is read-only. + + The item to add. + + + + Adds the elements of the specified collection to the end of this . + + + The array is read-only. + + + The is . + + Collection of items to add. + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an + unsorted array results in unexpected behavior. + + + is less than 0. + -or- + is less than 0. + + + and do not denote + a valid range in the . + + The starting index of the range to search. + The length of the range to search. + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an unsorted + array results in unexpected behavior. + + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Returns if the array contains the given value. + + + + var arr = new Godot.Collections.Array { "inside", 7 }; + GD.Print(arr.Contains("inside")); // True + GD.Print(arr.Contains("outside")); // False + GD.Print(arr.Contains(7)); // True + GD.Print(arr.Contains("7")); // False + + + The item to look for. + Whether or not this array contains the given item. + + + + Clears the array. This is the equivalent to using + with a size of 0 + + + The array is read-only. + + + + + Searches the array for a value and returns its index or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value and returns its index or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Inserts a new element at a given position in the array. The position + must be valid, or at the end of the array (pos == Count - 1). + Existing items will be moved to the right. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index to insert at. + The item to insert. + + + + Removes the first occurrence of the specified + from this . + + + The array is read-only. + + The value to remove. + + + + Removes an element from the array by index. + To remove an element by searching for its value, use + instead. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index of the element to remove. + + + + Returns the number of elements in this . + This is also known as the size or length of the array. + + The number of elements. + + + + Returns if the array is read-only. + See . + + + + + Makes the read-only, i.e. disabled modying of the + array's elements. Does not apply to nested content, e.g. content of + nested arrays. + + + + + Copies the elements of this to the given + C# array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The array to copy to. + The index to start at. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this array. + + + + The variant returned via the parameter is owned by the Array and must not be disposed. + + + is less than 0 or greater than the array's size. + + + + + The variant returned via the parameter is owned by the Array and must not be disposed. + + + + + Typed wrapper around Godot's Array class, an array of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. Otherwise prefer .NET collections + such as arrays or . + + The type of the array. + + + + Constructs a new empty . + + A new Godot Array. + + + + Constructs a new from the given collection's elements. + + + The is . + + The collection of elements to construct from. + A new Godot Array. + + + + Constructs a new from the given items. + + + The is . + + The items to put in the new array. + A new Godot Array. + + + + Constructs a typed from an untyped . + + + The is . + + The untyped array to construct from. + A new Godot Array. + + + + Converts this typed to an untyped . + + The typed array to convert. + A new Godot Array, or if was null. + + + + Duplicates this . + + If , performs a deep copy. + A new Godot Array. + + + + Assigns the given value to all elements in the array. This can typically be + used together with to create an array with a given + size and initialized elements. + Note: If is of a reference type ( + derived, or , etc.) then the array + is filled with the references to the same object, i.e. no duplicates are + created. + + + + var array = new Godot.Collections.Array<int>(); + array.Resize(10); + array.Fill(0); // Initialize the 10 elements to 0. + + + + The array is read-only. + + The value to fill the array with. + + + + Returns the maximum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The maximum value contained in the array. + + + + Returns the minimum value contained in the array if all elements are of + comparable types. If the elements can't be compared, + is returned. + + The minimum value contained in the array. + + + + Returns a random value from the target array. + + + + var array = new Godot.Collections.Array<int> { 1, 2, 3, 4 }; + GD.Print(array.PickRandom()); // Prints either of the four numbers. + + + A random element from the array. + + + + Compares this against the + recursively. Returns if the + sizes and contents of the arrays are equal, + otherwise. + + The other array to compare against. + + if the sizes and contents of the arrays are equal, + otherwise. + + + + + Resizes this to the given size. + + + The array is read-only. + + The new size of the array. + if successful, or an error code. + + + + Reverses the order of the elements in the array. + + + The array is read-only. + + + + + Shuffles the array such that the items will have a random order. + This method uses the global random number generator common to methods + such as . Call to + ensure that a new seed will be used each time if you want + non-reproducible shuffling. + + + The array is read-only. + + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + A new array that contains the elements inside the slice range. + + + + Creates a shallow copy of a range of elements in the source . + + + is less than 0 or greater than the array's size. + -or- + is less than 0 or greater than the array's size. + + The zero-based index at which the range starts. + The length of the range. + A new array that contains the elements inside the slice range. + + + + Returns the slice of the , from + (inclusive) to (exclusive), as a new . + The absolute value of and + will be clamped to the array size. + If either or are negative, they + will be relative to the end of the array (i.e. arr.GetSliceRange(0, -2) + is a shorthand for arr.GetSliceRange(0, arr.Count - 2)). + If specified, is the relative index between source + elements. It can be negative, then must be higher than + . For example, [0, 1, 2, 3, 4, 5].GetSliceRange(5, 1, -2) + returns [5, 3]. + If is true, each element will be copied by value + rather than by reference. + + The zero-based index at which the range starts. + The zero-based index at which the range ends. + The relative index between source elements to take. + If , performs a deep copy. + A new array that contains the elements inside the slice range. + + + + Sorts the array. + Note: The sorting algorithm used is not stable. This means that values + considered equal may have their order changed when using . + Note: Strings are sorted in alphabetical order (as opposed to natural order). + This may lead to unexpected behavior when sorting an array of strings ending + with a sequence of numbers. + To sort with a custom predicate use + . + + + + var strings = new Godot.Collections.Array<string> { "string1", "string2", "string10", "string11" }; + strings.Sort(); + GD.Print(strings); // Prints [string1, string10, string11, string2] + + + + The array is read-only. + + + + + Concatenates two s together, with the + being added to the end of the specified in . + For example, [1, 2] + [3, 4] results in [1, 2, 3, 4]. + + The first array. + The second array. + A new Godot Array with the contents of both arrays. + + + + Returns the item at the given . + + + The property is assigned and the array is read-only. + + + is less than 0 or greater than the array's size. + + The item at the given . + + + + Searches the array for a value and returns its index or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value and returns its index or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + The item to search for. + The index of the item, or -1 if not found. + + + + Searches the array for a value in reverse order and returns its index + or -1 if not found. + + + is less than 0 or greater than the array's size. + + The item to search for. + The initial search index to start from. + The index of the item, or -1 if not found. + + + + Inserts a new element at a given position in the array. The position + must be valid, or at the end of the array (pos == Count - 1). + Existing items will be moved to the right. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index to insert at. + The item to insert. + + + + Removes an element from the array by index. + To remove an element by searching for its value, use + instead. + + + The array is read-only. + + + is less than 0 or greater than the array's size. + + The index of the element to remove. + + + + Returns the number of elements in this . + This is also known as the size or length of the array. + + The number of elements. + + + + Returns if the array is read-only. + See . + + + + + Makes the read-only, i.e. disabled modying of the + array's elements. Does not apply to nested content, e.g. content of + nested arrays. + + + + + Adds an item to the end of this . + This is the same as append or push_back in GDScript. + + + The array is read-only. + + The item to add. + + + + Adds the elements of the specified collection to the end of this . + + + The array is read-only. + + + The is . + + Collection of items to add. + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an unsorted + array results in unexpected behavior. + + + is less than 0. + -or- + is less than 0. + + + and do not denote + a valid range in the . + + The starting index of the range to search. + The length of the range to search. + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Finds the index of an existing value using binary search. + If the value is not present in the array, it returns the bitwise + complement of the insertion index that maintains sorting order. + Note: Calling on an unsorted + array results in unexpected behavior. + + The object to locate. + + The index of the item in the array, if is found; + otherwise, a negative number that is the bitwise complement of the index + of the next element that is larger than or, if + there is no larger element, the bitwise complement of . + + + + + Clears the array. This is the equivalent to using + with a size of 0 + + + The array is read-only. + + + + + Returns if the array contains the given value. + + + + var arr = new Godot.Collections.Array<string> { "inside", "7" }; + GD.Print(arr.Contains("inside")); // True + GD.Print(arr.Contains("outside")); // False + GD.Print(arr.Contains(7)); // False + GD.Print(arr.Contains("7")); // True + + + The item to look for. + Whether or not this array contains the given item. + + + + Copies the elements of this to the given + C# array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The C# array to copy to. + The index to start at. + + + + Removes the first occurrence of the specified + from this . + + + The array is read-only. + + The value to remove. + A indicating success or failure. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this array. + + + + Wrapper around Godot's Dictionary class, a dictionary of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. + + + + + Constructs a new empty . + + + + + Disposes of this . + + + + + Returns a copy of the . + If is , a deep copy is performed: + all nested arrays and dictionaries are duplicated and will not be shared with + the original dictionary. If , a shallow copy is made and + references to the original nested arrays and dictionaries are kept, so that + modifying a sub-array or dictionary in the copy will also impact those + referenced in the source dictionary. Note that any derived + elements will be shallow copied regardless of the + setting. + + If , performs a deep copy. + A new Godot Dictionary. + + + + Adds entries from to this dictionary. + By default, duplicate keys are not copied over, unless + is . + + + The dictionary is read-only. + + Dictionary to copy entries from. + If duplicate keys should be copied over as well. + + + + Compares this against the + recursively. Returns if the + two dictionaries contain the same keys and values. The order of the entries + does not matter. + otherwise. + + The other dictionary to compare against. + + if the dictionaries contain the same keys and values, + otherwise. + + + + + Gets the collection of keys in this . + + + + + Gets the collection of elements in this . + + + + + Returns the value at the given . + + + The property is assigned and the dictionary is read-only. + + + The property is retrieved and an entry for + does not exist in the dictionary. + + The value at the given . + + + + Adds an value at key + to this . + + + The dictionary is read-only. + + + An entry for already exists in the dictionary. + + The key at which to add the value. + The value to add. + + + + Clears the dictionary, removing all entries from it. + + + The dictionary is read-only. + + + + + Checks if this contains the given key. + + The key to look for. + Whether or not this dictionary contains the given key. + + + + Removes an element from this by key. + + + The dictionary is read-only. + + The key of the element to remove. + + + + Returns the number of elements in this . + This is also known as the size or length of the dictionary. + + The number of elements. + + + + Returns if the dictionary is read-only. + See . + + + + + Makes the read-only, i.e. disabled modying of the + dictionary's elements. Does not apply to nested content, e.g. content of + nested dictionaries. + + + + + Gets the value for the given in the dictionary. + Returns if an entry for the given key exists in + the dictionary; otherwise, returns . + + The key of the element to get. + The value at the given . + If an entry was found for the given . + + + + Copies the elements of this to the given untyped + array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The array to copy to. + The index to start at. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this dictionary. + + + + Typed wrapper around Godot's Dictionary class, a dictionary of Variant + typed elements allocated in the engine in C++. Useful when + interfacing with the engine. Otherwise prefer .NET collections + such as . + + The type of the dictionary's keys. + The type of the dictionary's values. + + + + Constructs a new empty . + + A new Godot Dictionary. + + + + Constructs a new from the given dictionary's elements. + + + The is . + + The dictionary to construct from. + A new Godot Dictionary. + + + + Constructs a new from the given dictionary's elements. + + + The is . + + The dictionary to construct from. + A new Godot Dictionary. + + + + Converts this typed to an untyped . + + The typed dictionary to convert. + A new Godot Dictionary, or if was null. + + + + Returns a copy of the . + If is , a deep copy is performed: + all nested arrays and dictionaries are duplicated and will not be shared with + the original dictionary. If , a shallow copy is made and + references to the original nested arrays and dictionaries are kept, so that + modifying a sub-array or dictionary in the copy will also impact those + referenced in the source dictionary. Note that any derived + elements will be shallow copied regardless of the + setting. + + If , performs a deep copy. + A new Godot Dictionary. + + + + Adds entries from to this dictionary. + By default, duplicate keys are not copied over, unless + is . + + + The dictionary is read-only. + + Dictionary to copy entries from. + If duplicate keys should be copied over as well. + + + + Compares this against the + recursively. Returns if the + two dictionaries contain the same keys and values. The order of the entries does not matter. + otherwise. + + The other dictionary to compare against. + + if the dictionaries contain the same keys and values, + otherwise. + + + + + Returns the value at the given . + + + The property is assigned and the dictionary is read-only. + + + The property is retrieved and an entry for + does not exist in the dictionary. + + The value at the given . + + + + Gets the collection of keys in this . + + + + + Gets the collection of elements in this . + + + + + Adds an object at key + to this . + + + The dictionary is read-only. + + + An element with the same already exists. + + The key at which to add the object. + The object to add. + + + + Checks if this contains the given key. + + The key to look for. + Whether or not this dictionary contains the given key. + + + + Removes an element from this by key. + + + The dictionary is read-only. + + The key of the element to remove. + + + + Gets the value for the given in the dictionary. + Returns if an entry for the given key exists in + the dictionary; otherwise, returns . + + The key of the element to get. + The value at the given . + If an entry was found for the given . + + + + Returns the number of elements in this . + This is also known as the size or length of the dictionary. + + The number of elements. + + + + Returns if the dictionary is read-only. + See . + + + + + Makes the read-only, i.e. disabled + modying of the dictionary's elements. Does not apply to nested content, + e.g. content of nested dictionaries. + + + + + Clears the dictionary, removing all entries from it. + + + The dictionary is read-only. + + + + + Copies the elements of this to the given + untyped C# array, starting at the given index. + + + The is . + + + is less than 0 or greater than the array's size. + + + The destination array was not long enough. + + The array to copy to. + The index to start at. + + + + Gets an enumerator for this . + + An enumerator. + + + + Converts this to a string. + + A string representation of this dictionary. + + + + Attribute that determines that the assembly contains Godot scripts and, optionally, the + collection of types that implement scripts; otherwise, retrieving the types requires lookup. + + + + + If the Godot scripts contained in the assembly require lookup + and can't rely on . + + + + + The collection of types that implement a Godot script. + + + + + Constructs a new AssemblyHasScriptsAttribute instance + that requires lookup to get the Godot scripts. + + + + + Constructs a new AssemblyHasScriptsAttribute instance + that includes the Godot script types and requires no lookup. + + The collection of types that implement a Godot script. + + + + Exports the annotated member as a property of the Godot Object. + + + + + Optional hint that determines how the property should be handled by the editor. + + + + + Optional string that can contain additional metadata for the . + + + + + Constructs a new ExportAttribute Instance. + + The hint for the exported property. + A string that may contain additional metadata for the hint. + + + + Define a new category for the following exported properties. This helps to organize properties in the Inspector dock. + + + + + Name of the category. + + + + + Define a new category for the following exported properties. + + The name of the category. + + + + Define a new group for the following exported properties. This helps to organize properties in the Inspector dock. + + + + + Name of the group. + + + + + If provided, the prefix that all properties must have to be considered part of the group. + + + + + Define a new group for the following exported properties. + + The name of the group. + If provided, the group would make group to only consider properties that have this prefix. + + + + Define a new subgroup for the following exported properties. This helps to organize properties in the Inspector dock. + + + + + Name of the subgroup. + + + + + If provided, the prefix that all properties must have to be considered part of the subgroup. + + + + + Define a new subgroup for the following exported properties. This helps to organize properties in the Inspector dock. + + The name of the subgroup. + If provided, the subgroup would make group to only consider properties that have this prefix. + + + + Exposes the target class as a global script class to Godot Engine. + + + + + Attribute that specifies the engine class name when it's not the same + as the generated C# class name. This allows introspection code to find + the name associated with the class. If the attribute is not present, + the C# class name can be used instead. + + + + + Original engine class name. + + + + + Specifies a custom icon for representing this class in the Godot Editor. + + + + + File path to a custom icon for representing this class in the Godot Editor. + + + + + Specify the custom icon that represents the class. + + File path to the custom icon. + + + + Attribute that restricts generic type parameters to be only types + that can be marshaled from/to a . + + + + + Attribute that changes the RPC mode for the annotated method to the given , + optionally specifying the and (on supported peers). + See and . + By default, methods are not exposed to networking (and RPCs). + + + + + RPC mode for the annotated method. + + + + + If the method will also be called locally; otherwise, it is only called remotely. + + + + + Transfer mode for the annotated method. + + + + + Transfer channel for the annotated mode. + + + + + Constructs a instance. + + The RPC mode to use. + + + + An attribute that contains the path to the object's script. + + + + + File path to the script. + + + + + Constructs a new ScriptPathAttribute instance. + + The file path to the script + + + + 3×3 matrix used for 3D rotation and scale. + Almost always used as an orthogonal basis for a Transform. + + Contains 3 vector fields X, Y and Z as its columns, which are typically + interpreted as the local basis vectors of a 3D transformation. For such use, + it is composed of a scaling and a rotation matrix, in that order (M = R.S). + + Can also be accessed as array of 3D vectors. These vectors are normally + orthogonal to each other, but are not necessarily normalized (due to scaling). + + For more information, read this documentation article: + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html + + + + + The basis matrix's X vector (column 0). + + Equivalent to and array index [0]. + + + + The basis matrix's Y vector (column 1). + + Equivalent to and array index [1]. + + + + The basis matrix's Z vector (column 2). + + Equivalent to and array index [2]. + + + + Row 0 of the basis matrix. Shows which vectors contribute + to the X direction. Rows are not very useful for user code, + but are more efficient for some internal calculations. + + + + + Row 1 of the basis matrix. Shows which vectors contribute + to the Y direction. Rows are not very useful for user code, + but are more efficient for some internal calculations. + + + + + Row 2 of the basis matrix. Shows which vectors contribute + to the Z direction. Rows are not very useful for user code, + but are more efficient for some internal calculations. + + + + + Column 0 of the basis matrix (the X vector). + + Equivalent to and array index [0]. + + + + Column 1 of the basis matrix (the Y vector). + + Equivalent to and array index [1]. + + + + Column 2 of the basis matrix (the Z vector). + + Equivalent to and array index [2]. + + + + Assuming that the matrix is the combination of a rotation and scaling, + return the absolute value of scaling factors along each axis. + + + + + Access whole columns in the form of . + + Which column vector. + + is not 0, 1, 2 or 3. + + The basis column. + + + + Access matrix elements in column-major order. + + Which column, the matrix horizontal position. + Which row, the matrix vertical position. + The matrix element. + + + + Returns the determinant of the basis matrix. If the basis is + uniformly scaled, its determinant is the square of the scale. + + A negative determinant means the basis has a negative scale. + A zero determinant means the basis isn't invertible, + and is usually considered invalid. + + The determinant of the basis matrix. + + + + Returns the basis's rotation in the form of Euler angles. + The Euler order depends on the parameter, + by default it uses the YXZ convention: when decomposing, + first Z, then X, and Y last. The returned vector contains + the rotation angles in the format (X angle, Y angle, Z angle). + + Consider using the method instead, which + returns a quaternion instead of Euler angles. + + The Euler order to use. By default, use YXZ order (most common). + A representing the basis rotation in Euler angles. + + + + Returns the 's rotation in the form of a + . See if you + need Euler angles, but keep in mind quaternions should generally + be preferred to Euler angles. + + The basis rotation. + + + + Returns the inverse of the matrix. + + The inverse matrix. + + + + Returns if this basis is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Creates a with a rotation such that the forward + axis (-Z) points towards the position. + The up axis (+Y) points as close to the vector + as possible while staying perpendicular to the forward axis. + The resulting Basis is orthonormalized. + The and vectors + cannot be zero, and cannot be parallel to each other. + + The position to look at. + The relative up direction. + + If true, then the model is oriented in reverse, + towards the model front axis (+Z, Vector3.ModelFront), + which is more useful for orienting 3D models. + + The resulting basis matrix. + + + + + + + Returns the orthonormalized version of the basis matrix (useful to + call occasionally to avoid rounding errors for orthogonal matrices). + This performs a Gram-Schmidt orthonormalization on the basis of the matrix. + + An orthonormalized basis matrix. + + + + Introduce an additional rotation around the given + by (in radians). The axis must be a normalized vector. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + The rotated basis matrix. + + + + Introduce an additional scaling specified by the given 3D scaling factor. + + The scale to introduce. + The scaled basis matrix. + + + + Assuming that the matrix is a proper rotation matrix, slerp performs + a spherical-linear interpolation with another rotation matrix. + + The destination basis for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting basis matrix of the interpolation. + + + + Transposed dot product with the X axis of the matrix. + + A vector to calculate the dot product with. + The resulting dot product. + + + + Transposed dot product with the Y axis of the matrix. + + A vector to calculate the dot product with. + The resulting dot product. + + + + Transposed dot product with the Z axis of the matrix. + + A vector to calculate the dot product with. + The resulting dot product. + + + + Returns the transposed version of the basis matrix. + + The transposed basis matrix. + + + + The identity basis, with no rotation or scaling applied. + This is used as a replacement for Basis() in GDScript. + Do not use new Basis() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Basis(Vector3.Right, Vector3.Up, Vector3.Back). + + + + The basis that will flip something along the X axis when used in a transformation. + + Equivalent to new Basis(Vector3.Left, Vector3.Up, Vector3.Back). + + + + The basis that will flip something along the Y axis when used in a transformation. + + Equivalent to new Basis(Vector3.Right, Vector3.Down, Vector3.Back). + + + + The basis that will flip something along the Z axis when used in a transformation. + + Equivalent to new Basis(Vector3.Right, Vector3.Up, Vector3.Forward). + + + + Constructs a pure rotation basis matrix from the given quaternion. + + The quaternion to create the basis from. + + + + Constructs a pure rotation basis matrix, rotated around the given + by (in radians). The axis must be a normalized vector. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + + + + Constructs a basis matrix from 3 axis vectors (matrix columns). + + The X vector, or Column0. + The Y vector, or Column1. + The Z vector, or Column2. + + + + Constructs a transformation matrix from the given components. + Arguments are named such that xy is equal to calling X.Y. + + The X component of the X column vector, accessed via b.X.X or [0][0]. + The X component of the Y column vector, accessed via b.Y.X or [1][0]. + The X component of the Z column vector, accessed via b.Z.X or [2][0]. + The Y component of the X column vector, accessed via b.X.Y or [0][1]. + The Y component of the Y column vector, accessed via b.Y.Y or [1][1]. + The Y component of the Z column vector, accessed via b.Y.Y or [2][1]. + The Z component of the X column vector, accessed via b.X.Y or [0][2]. + The Z component of the Y column vector, accessed via b.Y.Y or [1][2]. + The Z component of the Z column vector, accessed via b.Y.Y or [2][2]. + + + + Constructs a Basis matrix from Euler angles in the specified rotation order. By default, use YXZ order (most common). + + The Euler angles to use. + The order to compose the Euler angles. + + + + Constructs a pure scale basis matrix with no rotation or shearing. + The scale values are set as the main diagonal of the matrix, + and all of the other parts of the matrix are zero. + + The scale Vector3. + A pure scale Basis matrix. + + + + Composes these two basis matrices by multiplying them + together. This has the effect of transforming the second basis + (the child) by the first basis (the parent). + + The parent basis. + The child basis. + The composed basis. + + + + Returns a Vector3 transformed (multiplied) by the basis matrix. + + The basis matrix transformation to apply. + A Vector3 to transform. + The transformed Vector3. + + + + Returns a Vector3 transformed (multiplied) by the inverse basis matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + vector * basis is equivalent to basis.Transposed() * vector. See . + For transforming by inverse of a non-orthonormal basis (e.g. with scaling) basis.Inverse() * vector can be used instead. See . + + A Vector3 to inversely transform. + The basis matrix transformation to apply. + The inversely transformed vector. + + + + Returns if the basis matrices are exactly + equal. Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left basis. + The right basis. + Whether or not the basis matrices are exactly equal. + + + + Returns if the basis matrices are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left basis. + The right basis. + Whether or not the basis matrices are not equal. + + + + Returns if the is + exactly equal to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the basis matrix and the object are exactly equal. + + + + Returns if the basis matrices are exactly + equal. Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other basis. + Whether or not the basis matrices are exactly equal. + + + + Returns if this basis and are approximately equal, + by running on each component. + + The other basis to compare. + Whether or not the bases are approximately equal. + + + + Serves as the hash function for . + + A hash code for this basis. + + + + Converts this to a string. + + A string representation of this basis. + + + + Converts this to a string with the given . + + A string representation of this basis. + + + + A color represented by red, green, blue, and alpha (RGBA) components. + The alpha component is often used for transparency. + Values are in floating-point and usually range from 0 to 1. + Some properties (such as ) may accept values + greater than 1 (overbright or HDR colors). + + If you want to supply values in a range of 0 to 255, you should use + and the r8/g8/b8/a8 properties. + + + + + The color's red component, typically on the range of 0 to 1. + + + + + The color's green component, typically on the range of 0 to 1. + + + + + The color's blue component, typically on the range of 0 to 1. + + + + + The color's alpha component, typically on the range of 0 to 1. + A value of 0 means that the color is fully transparent. + A value of 1 means that the color is fully opaque. + + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + Wrapper for that uses the range 0 to 255 instead of 0 to 1. + + Getting is equivalent to multiplying by 255 and rounding. Setting is equivalent to dividing by 255. + + + + The HSV hue of this color, on the range 0 to 1. + + Getting is a long process, refer to the source code for details. Setting uses . + + + + The HSV saturation of this color, on the range 0 to 1. + + Getting is equivalent to the ratio between the min and max RGB value. Setting uses . + + + + The HSV value (brightness) of this color, on the range 0 to 1. + + Getting is equivalent to using on the RGB components. Setting uses . + + + + Returns the light intensity of the color, as a value between 0.0 and 1.0 (inclusive). + This is useful when determining light or dark color. Colors with a luminance smaller + than 0.5 can be generally considered dark. + Note: relies on the color being in the linear color space to + return an accurate relative luminance value. If the color is in the sRGB color space + use to convert it to the linear color space first. + + + + + Access color components using their index. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to , + [3] is equivalent to . + + + + + Returns a new color resulting from blending this color over another. + If the color is opaque, the result is also opaque. + The second color may have a range of alpha values. + + The color to blend over. + This color blended over . + + + + Returns a new color with all components clamped between the + components of and + using . + + The color with minimum allowed values. + The color with maximum allowed values. + The color with all components clamped. + + + + Returns a new color resulting from making this color darker + by the specified ratio (on the range of 0 to 1). + + The ratio to darken by. + The darkened color. + + + + Returns the inverted color: (1 - r, 1 - g, 1 - b, a). + + The inverted color. + + + + Returns a new color resulting from making this color lighter + by the specified ratio (on the range of 0 to 1). + + The ratio to lighten by. + The lightened color. + + + + Returns the result of the linear interpolation between + this color and by amount . + + The destination color for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting color of the interpolation. + + + + Returns the color converted to the sRGB color space. + This method assumes the original color is in the linear color space. + See also which performs the opposite operation. + + The sRGB color. + + + + Returns the color converted to linear color space. + This method assumes the original color already is in sRGB color space. + See also which performs the opposite operation. + + The color in linear color space. + + + + Returns the color converted to an unsigned 32-bit integer in ABGR + format (each byte represents a color channel). + ABGR is the reversed version of the default format. + + A representing this color in ABGR32 format. + + + + Returns the color converted to an unsigned 64-bit integer in ABGR + format (each word represents a color channel). + ABGR is the reversed version of the default format. + + A representing this color in ABGR64 format. + + + + Returns the color converted to an unsigned 32-bit integer in ARGB + format (each byte represents a color channel). + ARGB is more compatible with DirectX, but not used much in Godot. + + A representing this color in ARGB32 format. + + + + Returns the color converted to an unsigned 64-bit integer in ARGB + format (each word represents a color channel). + ARGB is more compatible with DirectX, but not used much in Godot. + + A representing this color in ARGB64 format. + + + + Returns the color converted to an unsigned 32-bit integer in RGBA + format (each byte represents a color channel). + RGBA is Godot's default and recommended format. + + A representing this color in RGBA32 format. + + + + Returns the color converted to an unsigned 64-bit integer in RGBA + format (each word represents a color channel). + RGBA is Godot's default and recommended format. + + A representing this color in RGBA64 format. + + + + Returns the color's HTML hexadecimal color string in RGBA format. + + + Whether or not to include alpha. If , the color is RGB instead of RGBA. + + A string for the HTML hexadecimal representation of this color. + + + + Constructs a from RGBA values, typically on the range of 0 to 1. + + The color's red component, typically on the range of 0 to 1. + The color's green component, typically on the range of 0 to 1. + The color's blue component, typically on the range of 0 to 1. + + The color's alpha value, typically on the range of 0 to 1. + A value of 0 means that the color is fully transparent. + A value of 1 means that the color is fully opaque. + + + + + Constructs a from an existing color and an alpha value. + + The color to construct from. Only its RGB values are used. + + The color's alpha value, typically on the range of 0 to 1. + A value of 0 means that the color is fully transparent. + A value of 1 means that the color is fully opaque. + + + + + Constructs a from an unsigned 32-bit integer in RGBA format + (each byte represents a color channel). + + The representing the color as 0xRRGGBBAA. + + + + Constructs a from an unsigned 64-bit integer in RGBA format + (each word represents a color channel). + + The representing the color as 0xRRRRGGGGBBBBAAAA. + + + + Constructs a either from an HTML color code or from a + standardized color name. Supported color names are the same as the + constants. + + The HTML color code or color name to construct from. + + A color cannot be inferred from the given . + It was invalid HTML and a color with that name was not found. + + + + + Constructs a either from an HTML color code or from a + standardized color name, with on the range of 0 to 1. Supported + color names are the same as the constants. + + The HTML color code or color name to construct from. + The alpha (transparency) value, typically on the range of 0 to 1. + + + + Constructs a from the HTML hexadecimal color string in RGBA format. + + A string for the HTML hexadecimal representation of this color. + + color code is invalid. + + + + + Returns a color constructed from integer red, green, blue, and alpha channels. + Each channel should have 8 bits of information ranging from 0 to 255. + + The red component represented on the range of 0 to 255. + The green component represented on the range of 0 to 255. + The blue component represented on the range of 0 to 255. + The alpha (transparency) component represented on the range of 0 to 255. + The constructed color. + + + + Returns a color according to the standardized name, with the + specified alpha value. Supported color names are the same as + the constants defined in . + + The name of the color. + + A color with the given name is not found. + + The constructed color. + + + + Returns a color according to the standardized name, with the + specified alpha value. Supported color names are the same as + the constants defined in . + If a color with the given name is not found, it returns + . + + The name of the color. + + The default color to return when a color with the given name + is not found. + + The constructed color. + + + + Constructs a color from an HSV profile. The , + , and are typically + between 0.0 and 1.0. + + The HSV hue, typically on the range of 0 to 1. + The HSV saturation, typically on the range of 0 to 1. + The HSV value (brightness), typically on the range of 0 to 1. + The alpha (transparency) value, typically on the range of 0 to 1. + The constructed color. + + + + Converts a color to HSV values. This is equivalent to using each of + the h/s/v properties, but much more efficient. + + Output parameter for the HSV hue. + Output parameter for the HSV saturation. + Output parameter for the HSV value. + + + + Constructs a color from an OK HSL profile. The , + , and are typically + between 0.0 and 1.0. + + The OK HSL hue, typically on the range of 0 to 1. + The OK HSL saturation, typically on the range of 0 to 1. + The OK HSL lightness, typically on the range of 0 to 1. + The alpha (transparency) value, typically on the range of 0 to 1. + The constructed color. + + + + Encodes a from a RGBE9995 format integer. + See . + + The RGBE9995 encoded color. + The constructed color. + + + + Constructs a color from the given string, which can be either an HTML color + code or a named color. Returns if the color cannot + be inferred from the string. Supported color names are the same as the + constants. + + The HTML color code or color name. + The fallback color to return if the color cannot be inferred. + The constructed color. + + + + Returns if is a valid HTML hexadecimal + color string. The string must be a hexadecimal value (case-insensitive) of either 3, + 4, 6 or 8 digits, and may be prefixed by a hash sign (#). This method is + identical to . + + The HTML hexadecimal color string. + Whether or not the string was a valid HTML hexadecimal color string. + + + + Adds each component of the + with the components of the given . + + The left color. + The right color. + The added color. + + + + Subtracts each component of the + by the components of the given . + + The left color. + The right color. + The subtracted color. + + + + Inverts the given color. This is equivalent to + Colors.White - c or + new Color(1 - c.R, 1 - c.G, 1 - c.B, 1 - c.A). + + The color to invert. + The inverted color. + + + + Multiplies each component of the + by the given . + + The color to multiply. + The value to multiply by. + The multiplied color. + + + + Multiplies each component of the + by the given . + + The value to multiply by. + The color to multiply. + The multiplied color. + + + + Multiplies each component of the + by the components of the given . + + The left color. + The right color. + The multiplied color. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided color. + + + + Divides each component of the + by the components of the given . + + The dividend color. + The divisor color. + The divided color. + + + + Returns if the colors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left color. + The right color. + Whether or not the colors are equal. + + + + Returns if the colors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left color. + The right color. + Whether or not the colors are equal. + + + + Compares two s by first checking if + the red value of the color is less than + the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is less than the right. + + + + Compares two s by first checking if + the red value of the color is greater than + the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is greater than the right. + + + + Compares two s by first checking if + the red value of the color is less than + or equal to the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is less than or equal to the right. + + + + Compares two s by first checking if + the red value of the color is greater than + or equal to the red value of the color. + If the red values are exactly equal, then it repeats this check + with the green values of the two colors, then with the blue values, + and then with the alpha value. + This operator is useful for sorting colors. + + The left color. + The right color. + Whether or not the left is greater than or equal to the right. + + + + Returns if this color and are equal. + + The other object to compare. + Whether or not the color and the other object are equal. + + + + Returns if the colors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other color. + Whether or not the colors are equal. + + + + Returns if this color and are approximately equal, + by running on each component. + + The other color to compare. + Whether or not the colors are approximately equal. + + + + Serves as the hash function for . + + A hash code for this color. + + + + Converts this to a string. + + A string representation of this color. + + + + Converts this to a string with the given . + + A string representation of this color. + + + + This class contains color constants created from standardized color names. + The standardized color set is based on the X11 and .NET color names. + + + + + An advanced 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 instance is able to call because it inherits from . + You can create new instances, using Object.new() in GDScript, or new GodotObject in C#. + To delete an Object instance, call . 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, (and by extension ) deletes itself when no longer referenced, and deletes its children when freed. + Objects can have a attached to them. Once the 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 , may be overridden to customize properties in several ways. This allows them to be available to the editor, display as lists of options, sub-divide into groups, save on disk, etc. Scripting languages offer easier ways to customize properties, such as with the [annotation @GDScript.@export] annotation. + Godot is very dynamic. An object's script, and therefore its properties, methods and signals, can be changed at run-time. Because of this, there can be occasions where, for example, a property required by a method may not exist. To prevent run-time errors, see methods such as , , , , , etc. Note that these methods are much slower than direct references. + In GDScript, you can also check if a given property, method, or signal name exists in an object with the in operator: + + var node = Node.new() + print("name" in node) # Prints true + print("get_parent" in node) # Prints true + print("tree_entered" in node) # Prints true + print("unknown" in node) # Prints false + + Notifications are constants commonly sent and received by objects. For example, on every rendered frame, the notifies nodes inside the tree with a . The nodes receive it and may call to update. To make use of notifications, see and . + Lastly, every object can also contain metadata (data about data). 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 , references to an object stored in a variable can become invalid without being set to . To check if an object has been deleted, do not compare it against . Instead, use @GlobalScope.is_instance_valid. It's also recommended to inherit from for classes storing data instead of . + Note: The script is not exposed like most properties. To set or get an object's in code, use and , respectively. + Note: In a boolean context, an will evaluate to if it is equal to or it has been freed. Otherwise, an will always evaluate to . See also @GlobalScope.is_instance_valid. + + + + + Returns the that corresponds to . + All Objects have a unique instance ID. See also . + + + + public partial class MyNode : Node + { + public string Foo { get; set; } = "bar"; + + public override void _Ready() + { + ulong id = GetInstanceId(); + var inst = (MyNode)InstanceFromId(Id); + GD.Print(inst.Foo); // Prints bar + } + } + + + Instance ID of the Object to retrieve. + The instance. + + + + Returns if the that corresponds + to is a valid object (e.g. has not been deleted from + memory). All Objects have a unique instance ID. + + The Object ID to check. + If the instance with the given ID is a valid object. + + + + Returns if is a + valid (e.g. has not been deleted from memory). + + The instance to check. + If the instance is a valid object. + + + + Returns a weak reference to an object, or + if the argument is invalid. + A weak reference to an object is not enough to keep the object alive: + when the only remaining references to a referent are weak references, + garbage collection is free to destroy the referent and reuse its memory + for something else. However, until the object is actually destroyed the + weak reference may return the object even if there are no strong references + to it. + + The object. + + The reference to the object or . + + + + + Constructs a new . + + + + + The pointer to the native instance of this . + + + + + Disposes of this . + + + + + Disposes implementation of this . + + + + + Converts this to a string. + + A string representation of this object. + + + + Returns a new awaiter configured to complete when the instance + emits the signal specified by the parameter. + + + The instance the awaiter will be listening to. + + + The signal the awaiter will be waiting for. + + + This sample prints a message once every frame up to 100 times. + + public override void _Ready() + { + for (int i = 0; i < 100; i++) + { + await ToSignal(GetTree(), "process_frame"); + GD.Print($"Frame {i}"); + } + } + + + + A that completes when + emits the . + + + + + Set the value of a property contained in this class. + This method is used by Godot to assign property values. + Do not call or override this method. + + Name of the property to set. + Value to set the property to if it was found. + if a property with the given name was found. + + + + Get the value of a property contained in this class. + This method is used by Godot to retrieve property values. + Do not call or override this method. + + Name of the property to get. + Value of the property if it was found. + if a property with the given name was found. + + + + Raises the signal with the given name, using the given arguments. + This method is used by Godot to raise signals from the engine side.\n" + Do not call or override this method. + + Name of the signal to raise. + Arguments to use with the raised signal. + + + + Saves this instance's state to be restored when reloading assemblies. + Do not call or override this method. + To add data to be saved and restored, implement . + + Object used to save the data. + + + + Restores this instance's state after reloading assemblies. + Do not call or override this method. + To add data to be saved and restored, implement . + + Object that contains the previously saved data. + + + + Notification received when the object is initialized, before its script is attached. Used internally. + + + + + Notification received when the object is about to be deleted. Can be used like destructors in object-oriented programming languages. + + + + + Notification received when the object finishes hot reloading. This notification is only sent for extensions classes and derived. + + + + + Deferred connections trigger their s on idle time (at the end of the frame), rather than instantly. + + + + + Persisting connections are stored when the object is serialized (such as when using ). In the editor, connections created through the Node dock are always persisting. + + + + + One-shot connections disconnect themselves after emission. + + + + + Reference-counted connections can be assigned to the same multiple times. Each disconnection decreases the internal counter. The signal fully disconnects only when the counter reaches 0. + + + + + Override this method to customize the behavior of . Should return the given 's value, or if the should be handled normally. + Combined with and , this method allows defining custom properties, which is particularly useful for editor plugins. Note that a property must be present in , otherwise this method will not be called. + + public override Variant _Get(StringName property) + { + if (property == "FakeProperty") + { + GD.Print("Getting my property!"); + return 4; + } + return default; + } + + public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() + { + return new Godot.Collections.Array<Godot.Collections.Dictionary>() + { + new Godot.Collections.Dictionary() + { + { "name", "FakeProperty" }, + { "type", (int)Variant.Type.Int } + } + }; + } + + + + + + Override this method to provide a custom list of additional properties to handle by the engine. + Should return a property list, as an of dictionaries. The result is added to the array of , and should be formatted in the same way. Each must at least contain the name and type entries. + You can use and to customize the default values of the properties added by this method. + The example below displays a list of numbers shown as words going from ZERO to FIVE, with number_count controlling the size of the list: + + [Tool] + public partial class MyNode : Node + { + private int _numberCount; + + [Export] + public int NumberCount + { + get => _numberCount; + set + { + _numberCount = value; + _numbers.Resize(_numberCount); + NotifyPropertyListChanged(); + } + } + + private Godot.Collections.Array<int> _numbers = new(); + + public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() + { + var properties = new Godot.Collections.Array<Godot.Collections.Dictionary>(); + + for (int i = 0; i < _numberCount; i++) + { + properties.Add(new Godot.Collections.Dictionary() + { + { "name", $"number_{i}" }, + { "type", (int)Variant.Type.Int }, + { "hint", (int)PropertyHint.Enum }, + { "hint_string", "Zero,One,Two,Three,Four,Five" }, + }); + } + + return properties; + } + + public override Variant _Get(StringName property) + { + string propertyName = property.ToString(); + if (propertyName.StartsWith("number_")) + { + int index = int.Parse(propertyName.Substring("number_".Length)); + return _numbers[index]; + } + return default; + } + + public override bool _Set(StringName property, Variant value) + { + string propertyName = property.ToString(); + if (propertyName.StartsWith("number_")) + { + int index = int.Parse(propertyName.Substring("number_".Length)); + _numbers[index] = value.As<int>(); + return true; + } + return false; + } + } + + Note: This method is intended for advanced purposes. For most common use cases, the scripting languages offer easier ways to handle properties. See [annotation @GDScript.@export], [annotation @GDScript.@export_enum], [annotation @GDScript.@export_group], etc. If you want to customize exported properties, use . + Note: If the object's script is not [annotation @GDScript.@tool], this method will not be called in the editor. + + + + + Returns the current iterable value. stores the iteration state, but unlike and the state is supposed to be read-only, so there is no wrapper. + + + + + Initializes the iterator. stores the iteration state. Since GDScript does not support passing arguments by reference, a single-element array is used as a wrapper. Returns so long as the iterator has not reached the end. + Example: + + class MyRange: + var _from + var _to + + func _init(from, to): + assert(from <= to) + _from = from + _to = to + + func _iter_init(iter): + iter[0] = _from + return iter[0] < _to + + func _iter_next(iter): + iter[0] += 1 + return iter[0] < _to + + func _iter_get(iter): + return iter + + func _ready(): + var my_range = MyRange.new(2, 5) + for x in my_range: + print(x) # Prints 2, 3, 4. + + Note: Alternatively, you can ignore and use the object's state instead, see online docs for an example. Note that in this case you will not be able to reuse the same iterator instance in nested loops. Also, make sure you reset the iterator state in this method if you want to reuse the same instance multiple times. + + + + + Moves the iterator to the next iteration. stores the iteration state. Since GDScript does not support passing arguments by reference, a single-element array is used as a wrapper. Returns so long as the iterator has not reached the end. + + + + + Called when the object receives a notification, which can be identified in by comparing it with a constant. See also . + + public override void _Notification(int what) + { + if (what == NotificationPredelete) + { + GD.Print("Goodbye!"); + } + } + + Note: The base defines a few notifications ( and ). Inheriting classes such as define a lot more notifications, which are also received by this method. + + + + + Override this method to customize the given 's revert behavior. Should return if the has a custom default value and is revertible in the Inspector dock. Use to specify the 's default value. + Note: This method must return consistently, regardless of the current value of the . + + + + + Override this method to customize the given 's revert behavior. Should return the default value for the . If the default value differs from the 's current value, a revert icon is displayed in the Inspector dock. + Note: must also be overridden for this method to be called. + + + + + Override this method to customize the behavior of . Should set the to and return , or if the should be handled normally. The exact way to set the is up to this method's implementation. + Combined with and , this method allows defining custom properties, which is particularly useful for editor plugins. Note that a property must be present in , otherwise this method will not be called. + + private Godot.Collections.Dictionary _internalData = new Godot.Collections.Dictionary(); + + public override bool _Set(StringName property, Variant value) + { + if (property == "FakeProperty") + { + // Storing the value in the fake property. + _internalData["FakeProperty"] = value; + return true; + } + + return false; + } + + public override Godot.Collections.Array<Godot.Collections.Dictionary> _GetPropertyList() + { + return new Godot.Collections.Array<Godot.Collections.Dictionary>() + { + new Godot.Collections.Dictionary() + { + { "name", "FakeProperty" }, + { "type", (int)Variant.Type.Int } + } + }; + } + + + + + + Override this method to customize existing properties. Every property info goes through this method, except properties added with . The dictionary contents is the same as in . + + [Tool] + public partial class MyNode : Node + { + private bool _isNumberEditable; + + [Export] + public bool IsNumberEditable + { + get => _isNumberEditable; + set + { + _isNumberEditable = value; + NotifyPropertyListChanged(); + } + } + + [Export] + public int Number { get; set; } + + public override void _ValidateProperty(Godot.Collections.Dictionary property) + { + if (property["name"].AsStringName() == PropertyName.Number && !IsNumberEditable) + { + var usage = property["usage"].As<PropertyUsageFlags>() | PropertyUsageFlags.ReadOnly; + property["usage"] = (int)usage; + } + } + } + + + + + + Deletes the object from memory. Pre-existing references to the object become invalid, and any attempt to access them will result in a run-time error. Checking the references with @GlobalScope.is_instance_valid will return . + + + + + Returns the object's built-in class name, as a . See also . + Note: This method ignores class_name declarations. If this object's script has defined a class_name, the base, built-in class name is returned instead. + + + + + Returns if the object inherits from the given . See also . + + var sprite2D = new Sprite2D(); + sprite2D.IsClass("Sprite2D"); // Returns true + sprite2D.IsClass("Node"); // Returns true + sprite2D.IsClass("Node3D"); // Returns false + + Note: This method ignores class_name declarations in the object's script. + + + + + Assigns to the given . If the property does not exist or the given 's type doesn't match, nothing happens. + + var node = new Node2D(); + node.Set(Node2D.PropertyName.GlobalScale, new Vector2(8, 2.5f)); + GD.Print(node.GlobalScale); // Prints (8, 2.5) + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Returns the value of the given . If the does not exist, this method returns . + + var node = new Node2D(); + node.Rotation = 1.5f; + var a = node.Get(Node2D.PropertyName.Rotation); // a is 1.5 + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Assigns a new to the property identified by the . The path should be a relative to this object, and can use the colon character (:) to access nested properties. + + var node = new Node2D(); + node.SetIndexed("position", new Vector2(42, 0)); + node.SetIndexed("position:y", -10); + GD.Print(node.Position); // Prints (42, -10) + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Gets the object's property indexed by the given . The path should be a relative to the current object and can use the colon character (:) to access nested properties. + Examples: "position:x" or "material:next_pass:blend_mode". + + var node = new Node2D(); + node.Position = new Vector2(5, -10); + var a = node.GetIndexed("position"); // a is Vector2(5, -10) + var b = node.GetIndexed("position:y"); // b is -10 + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + Note: This method does not support actual paths to nodes in the , only sub-property paths. In the context of nodes, use instead. + + + + + Returns the object's property list as an of dictionaries. Each contains the following entries: + - name is the property's name, as a ; + - class_name is an empty , unless the property is and it inherits from a class; + - type is the property's type, as an (see ); + - hint is how the property is meant to be edited (see ); + - hint_string depends on the hint (see ); + - usage is a combination of . + Note: In GDScript, all class members are treated as properties. In C# and GDExtension, it may be necessary to explicitly mark class members as Godot properties using decorators or attributes. + + + + + Returns this object's methods and their signatures as an of dictionaries. Each contains the following entries: + - name is the name of the method, as a ; + - args is an of dictionaries representing the arguments; + - default_args is the default arguments as an of variants; + - flags is a combination of ; + - id is the method's internal identifier ; + - return is the returned value, as a ; + Note: The dictionaries of args and return are formatted identically to the results of , although not all entries are used. + + + + + Returns if the given has a custom default value. Use to get the 's default value. + Note: This method is used by the Inspector dock to display a revert icon. The object must implement to customize the default value. If is not implemented, this method returns . + + + + + Returns the custom default value of the given . Use to check if the has a custom default value. + Note: This method is used by the Inspector dock to display a revert icon. The object must implement to customize the default value. If is not implemented, this method returns . + + + + + Sends the given notification to all classes inherited by the object, triggering calls to , starting from the highest ancestor (the class) and going down to the object's script. + If is , the call order is reversed. + + var player = new Node2D(); + player.SetScript(GD.Load("res://player.gd")); + + player.Notification(NotificationEnterTree); + // The call order is GodotObject -> Node -> Node2D -> player.gd. + + player.Notification(NotificationEnterTree, true); + // The call order is player.gd -> Node2D -> Node -> GodotObject. + + + + + + Returns the object's unique instance ID. This ID can be saved in , and can be used to retrieve this object instance with @GlobalScope.instance_from_id. + Note: This ID is only useful during the current session. It won't correspond to a similar object if the ID is sent over a network, or loaded from a file at a later time. + + + + + Attaches to the object, and instantiates it. As a result, the script's is called. A is used to extend the object's functionality. + If a script already exists, its instance is detached, and its property values and state are lost. Built-in property values are still kept. + + + + + Returns the object's instance, or if no script is attached. + + + + + Adds or changes the entry inside the object's metadata. The metadata can be any , although some types cannot be serialized correctly. + If is , the entry is removed. This is the equivalent of using . See also and . + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Removes the given entry from the object's metadata. See also , and . + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Returns the object's metadata value for the given entry . If the entry does not exist, returns . If is , an error is also generated. + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Returns if a metadata entry is found with the given . See also , and . + Note: A metadata's name must be a valid identifier as per StringName.is_valid_identifier method. + Note: Metadata that has a name starting with an underscore (_) is considered editor-only. Editor-only metadata is not displayed in the Inspector and should not be edited, although it can still be found by this method. + + + + + Returns the object's metadata entry names as a []. + + + + + Adds a user-defined signal named . Optional arguments for the signal can be added as an of dictionaries, each defining a name and a type (see ). See also and . + + AddUserSignal("Hurt", new Godot.Collections.Array() + { + new Godot.Collections.Dictionary() + { + { "name", "damage" }, + { "type", (int)Variant.Type.Int } + }, + new Godot.Collections.Dictionary() + { + { "name", "source" }, + { "type", (int)Variant.Type.Object } + } + }); + + + + + + Returns if the given user-defined name exists. Only signals added with are included. See also . + + + + + Removes the given user signal from the object. See also and . + + + + + Emits the given by name. The signal must exist, so it should be a built-in signal of this class or one of its inherited classes, or a user-defined signal (see ). This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + Returns if does not exist or the parameters are invalid. + + EmitSignal(SignalName.Hit, "sword", 100); + EmitSignal(SignalName.GameOver); + + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Emits the given by name. The signal must exist, so it should be a built-in signal of this class or one of its inherited classes, or a user-defined signal (see ). This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + Returns if does not exist or the parameters are invalid. + + EmitSignal(SignalName.Hit, "sword", 100); + EmitSignal(SignalName.GameOver); + + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Calls the on the object and returns the result. This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.Call(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls the on the object and returns the result. This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.Call(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls the on the object during idle time. Always returns , not the method's result. + Idle time happens mainly at the end of process and physics frames. In it, deferred calls will be run until there are none left, which means you can defer calls from other deferred calls and they'll still be run in the current idle time cycle. This means you should not call a method deferred from itself (or from a method called by it), as this causes infinite recursion the same way as if you had called the method directly. + This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + See also Callable.call_deferred. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + Note: If you're looking to delay the function call by a frame, refer to the and signals. + + var node = Node3D.new() + # Make a Callable and bind the arguments to the node's rotate() call. + var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571) + # Connect the callable to the process_frame signal, so it gets called in the next process frame. + # CONNECT_ONE_SHOT makes sure it only gets called once instead of every frame. + get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT) + + + + + + Calls the on the object during idle time. Always returns , not the method's result. + Idle time happens mainly at the end of process and physics frames. In it, deferred calls will be run until there are none left, which means you can defer calls from other deferred calls and they'll still be run in the current idle time cycle. This means you should not call a method deferred from itself (or from a method called by it), as this causes infinite recursion the same way as if you had called the method directly. + This method supports a variable number of arguments, so parameters can be passed as a comma separated list. + + var node = new Node3D(); + node.CallDeferred(Node3D.MethodName.Rotate, new Vector3(1f, 0f, 0f), 1.571f); + + See also Callable.call_deferred. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + Note: If you're looking to delay the function call by a frame, refer to the and signals. + + var node = Node3D.new() + # Make a Callable and bind the arguments to the node's rotate() call. + var callable = node.rotate.bind(Vector3(1.0, 0.0, 0.0), 1.571) + # Connect the callable to the process_frame signal, so it gets called in the next process frame. + # CONNECT_ONE_SHOT makes sure it only gets called once instead of every frame. + get_tree().process_frame.connect(callable, CONNECT_ONE_SHOT) + + + + + + Assigns to the given , at the end of the current frame. This is equivalent to calling through . + + var node = new Node2D(); + node.Rotation = 1.5f; + node.SetDeferred(Node2D.PropertyName.Rotation, 3f); + GD.Print(node.Rotation); // Prints 1.5 + + await ToSignal(GetTree(), SceneTree.SignalName.ProcessFrame); + GD.Print(node.Rotation); // Prints 3.0 + + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Calls the on the object and returns the result. Unlike , this method expects all parameters to be contained inside . + + var node = new Node3D(); + node.Callv(Node3D.MethodName.Rotate, new Godot.Collections.Array { new Vector3(1f, 0f, 0f), 1.571f }); + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Returns if the given name exists in the object. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Returns the number of arguments of the given by name. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Returns if the given name exists in the object. + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Returns the list of existing signals as an of dictionaries. + Note: Due of the implementation, each is formatted very similarly to the returned values of . + + + + + Returns an of connections for the given name. Each connection is represented as a that contains three entries: + - signal is a reference to the ; + - callable is a reference to the connected ; + - flags is a combination of . + + + + + Returns an of signal connections received by this object. Each connection is represented as a that contains three entries: + - signal is a reference to the ; + - callable is a reference to the ; + - flags is a combination of . + + + + + Connects a by name to a . Optional can be also added to configure the connection's behavior (see constants). + A signal can only be connected once to the same . If the signal is already connected, this method returns and pushes an error message, unless the signal is connected with . To prevent this, use first to check for existing connections. + If the 's object is freed, the connection will be lost. + Examples with recommended syntax: + Connecting signals is one of the most common operations in Godot and the API gives many options to do so, which are described further down. The code block below shows the recommended approach. + + public override void _Ready() + { + var button = new Button(); + // C# supports passing signals as events, so we can use this idiomatic construct: + button.ButtonDown += OnButtonDown; + + // This assumes that a `Player` class exists, which defines a `Hit` signal. + var player = new Player(); + // We can use lambdas when we need to bind additional parameters. + player.Hit += () => OnPlayerHit("sword", 100); + } + + private void OnButtonDown() + { + GD.Print("Button down!"); + } + + private void OnPlayerHit(string weaponType, int damage) + { + GD.Print($"Hit with weapon {weaponType} for {damage} damage."); + } + + Object.connect() or Signal.connect()? + As seen above, the recommended method to connect signals is not . The code block below shows the four options for connecting signals, using either this legacy method or the recommended Signal.connect, and using either an implicit or a manually defined one. + + public override void _Ready() + { + var button = new Button(); + // Option 1: In C#, we can use signals as events and connect with this idiomatic syntax: + button.ButtonDown += OnButtonDown; + // Option 2: GodotObject.Connect() with a constructed Callable from a method group. + button.Connect(Button.SignalName.ButtonDown, Callable.From(OnButtonDown)); + // Option 3: GodotObject.Connect() with a constructed Callable using a target object and method name. + button.Connect(Button.SignalName.ButtonDown, new Callable(this, MethodName.OnButtonDown)); + } + + private void OnButtonDown() + { + GD.Print("Button down!"); + } + + While all options have the same outcome (button's signal will be connected to _on_button_down), option 3 offers the best validation: it will print a compile-time error if either the button_down or the _on_button_down are not defined. On the other hand, option 2 only relies on string names and will only be able to validate either names at runtime: it will print a runtime error if "button_down" doesn't correspond to a signal, or if "_on_button_down" is not a registered method in the object self. The main reason for using options 1, 2, or 4 would be if you actually need to use strings (e.g. to connect signals programmatically based on strings read from a configuration file). Otherwise, option 3 is the recommended (and fastest) method. + Binding and passing parameters: + The syntax to bind parameters is through Callable.bind, which returns a copy of the with its parameters bound. + When calling or Signal.emit, the signal parameters can be also passed. The examples below show the relationship between these signal parameters and bound parameters. + + public override void _Ready() + { + // This assumes that a `Player` class exists, which defines a `Hit` signal. + var player = new Player(); + // Using lambda expressions that create a closure that captures the additional parameters. + // The lambda only receives the parameters defined by the signal's delegate. + player.Hit += (hitBy, level) => OnPlayerHit(hitBy, level, "sword", 100); + + // Parameters added when emitting the signal are passed first. + player.EmitSignal(SignalName.Hit, "Dark lord", 5); + } + + // We pass two arguments when emitting (`hit_by`, `level`), + // and bind two more arguments when connecting (`weapon_type`, `damage`). + private void OnPlayerHit(string hitBy, int level, string weaponType, int damage) + { + GD.Print($"Hit by {hitBy} (level {level}) with weapon {weaponType} for {damage} damage."); + } + + + + + + Disconnects a by name from a given . If the connection does not exist, generates an error. Use to make sure that the connection exists. + + + + + Returns if a connection exists between the given name and . + Note: In C#, must be in snake_case when referring to built-in Godot signals. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + Returns if any connection exists on the given name. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the SignalName class to avoid allocating a new on each call. + + + + + If set to , the object becomes unable to emit signals. As such, and signal connections will not work, until it is set to . + + + + + Returns if the object is blocking its signals from being emitted. See . + + + + + Emits the signal. This is mainly used to refresh the editor, so that the Inspector and editor plugins are properly updated. + + + + + If set to , allows the object to translate messages with and . Enabled by default. See also . + + + + + Returns if the object is allowed to translate messages with and . See also . + + + + + Translates a , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. Note that most nodes automatically translate their strings, so this method is mostly useful for formatted strings or custom drawn text. + If is , or no translation is available, this method returns the without changes. See . + For detailed examples, see Internationalizing games. + Note: This method can't be used without an instance, as it requires the method. To translate strings in a static context, use . + + + + + Translates a or , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. + If is , or no translation is available, this method returns or , without changes. See . + The is the number, or amount, of the message's subject. It is used by the translation system to fetch the correct plural form for the current language. + For detailed examples, see Localization using gettext. + Note: Negative and numbers may not properly apply to some countable subjects. It's recommended to handle these cases with . + Note: This method can't be used without an instance, as it requires the method. To translate strings in a static context, use . + + + + + Returns the name of the translation domain used by and . See also . + + + + + Sets the name of the translation domain used by and . See also . + + + + + Returns if the method was called for the object. + + + + + If this method is called during , this object will reject being freed and will remain allocated. This is mostly an internal function used for error handling to avoid the user from freeing objects when they are not intended to. + + + + + Emitted when the object's script is changed. + Note: When this signal is emitted, the new script is not initialized yet. If you need to access the new script, defer connections to this signal with . + + + + + Emitted when is called. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get' method. + + + + + Cached name for the '_get_property_list' method. + + + + + Cached name for the '_iter_get' method. + + + + + Cached name for the '_iter_init' method. + + + + + Cached name for the '_iter_next' method. + + + + + Cached name for the '_notification' method. + + + + + Cached name for the '_property_can_revert' method. + + + + + Cached name for the '_property_get_revert' method. + + + + + Cached name for the '_set' method. + + + + + Cached name for the '_validate_property' method. + + + + + Cached name for the 'free' method. + + + + + Cached name for the 'get_class' method. + + + + + Cached name for the 'is_class' method. + + + + + Cached name for the 'set' method. + + + + + Cached name for the 'get' method. + + + + + Cached name for the 'set_indexed' method. + + + + + Cached name for the 'get_indexed' method. + + + + + Cached name for the 'get_property_list' method. + + + + + Cached name for the 'get_method_list' method. + + + + + Cached name for the 'property_can_revert' method. + + + + + Cached name for the 'property_get_revert' method. + + + + + Cached name for the 'notification' method. + + + + + Cached name for the 'get_instance_id' method. + + + + + Cached name for the 'set_script' method. + + + + + Cached name for the 'get_script' method. + + + + + Cached name for the 'set_meta' method. + + + + + Cached name for the 'remove_meta' method. + + + + + Cached name for the 'get_meta' method. + + + + + Cached name for the 'has_meta' method. + + + + + Cached name for the 'get_meta_list' method. + + + + + Cached name for the 'add_user_signal' method. + + + + + Cached name for the 'has_user_signal' method. + + + + + Cached name for the 'remove_user_signal' method. + + + + + Cached name for the 'emit_signal' method. + + + + + Cached name for the 'call' method. + + + + + Cached name for the 'call_deferred' method. + + + + + Cached name for the 'set_deferred' method. + + + + + Cached name for the 'callv' method. + + + + + Cached name for the 'has_method' method. + + + + + Cached name for the 'get_method_argument_count' method. + + + + + Cached name for the 'has_signal' method. + + + + + Cached name for the 'get_signal_list' method. + + + + + Cached name for the 'get_signal_connection_list' method. + + + + + Cached name for the 'get_incoming_connections' method. + + + + + Cached name for the 'connect' method. + + + + + Cached name for the 'disconnect' method. + + + + + Cached name for the 'is_connected' method. + + + + + Cached name for the 'has_connections' method. + + + + + Cached name for the 'set_block_signals' method. + + + + + Cached name for the 'is_blocking_signals' method. + + + + + Cached name for the 'notify_property_list_changed' method. + + + + + Cached name for the 'set_message_translation' method. + + + + + Cached name for the 'can_translate_messages' method. + + + + + Cached name for the 'tr' method. + + + + + Cached name for the 'tr_n' method. + + + + + Cached name for the 'get_translation_domain' method. + + + + + Cached name for the 'set_translation_domain' method. + + + + + Cached name for the 'is_queued_for_deletion' method. + + + + + Cached name for the 'cancel_free' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'script_changed' signal. + + + + + Cached name for the 'property_list_changed' signal. + + + + + Nodes are Godot's building blocks. They can be assigned as the child of another node, resulting in a tree arrangement. A given node can contain any number of nodes as children with the requirement that all siblings (direct children of a node) should have unique names. + A tree of nodes is called a scene. Scenes can be saved to the disk and then instantiated into other scenes. This allows for very high flexibility in the architecture and data model of Godot projects. + Scene tree: The contains the active tree of nodes. When a node is added to the scene tree, it receives the notification and its callback is triggered. Child nodes are always added after their parent node, i.e. the 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 notification and their respective callbacks are triggered. For groups of nodes, the 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: of the parent, of the children, of the children and finally of the parent (recursively for the entire scene tree). + Processing: Nodes can override the "process" state, so that they receive a callback on each frame requesting them to process (do something). Normal processing (callback , toggled with ) happens as fast as possible and is dependent on the frame rate, so the processing time delta (in seconds) is passed as an argument. Physics processing (callback , toggled with ) 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 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 function might be preferred; it is called when the input event was not handled by anyone else (typically, GUI 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 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 or , it will also free all its children. + Groups: Nodes can be added to as many groups as you want to be easy to manage, you could create groups like "enemies" or "collectables" for example, depending on your game. See , and . You can then retrieve all nodes in these groups, iterate them and even call methods on groups via the methods on . + Networking with nodes: After connecting to a server (or making one, see ), it is possible to use the built-in RPC (remote procedure call) system to communicate over the network. By calling 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 (make sure node names are the same on all peers). Also, take a look at the high-level networking tutorial and corresponding demos. + Note: The script property is part of the class, not . It isn't exposed like most properties but does have a setter and getter (see and ). + + + + + Fetches a node. The can be either a relative path (from + the current node) or an absolute path (in the scene tree) to a node. If the path + does not exist, a instance is returned and an error + is logged. Attempts to access methods on the return value will result in an + "Attempt to call <method> on a null instance." error. + Note: Fetching absolute paths only works when the node is inside the scene tree + (see ). + + + Example: Assume your current node is Character and the following tree: + + /root + /root/Character + /root/Character/Sword + /root/Character/Backpack/Dagger + /root/MyGame + /root/Swamp/Alligator + /root/Swamp/Mosquito + /root/Swamp/Goblin + + Possible paths are: + + GetNode("Sword"); + GetNode("Backpack/Dagger"); + GetNode("../Swamp/Alligator"); + GetNode("/root/MyGame"); + + + + The path to the node to fetch. + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The at the given . + + + + + Similar to , but does not log an error if + does not point to a valid . + + + Example: Assume your current node is Character and the following tree: + + /root + /root/Character + /root/Character/Sword + /root/Character/Backpack/Dagger + /root/MyGame + /root/Swamp/Alligator + /root/Swamp/Mosquito + /root/Swamp/Goblin + + Possible paths are: + + GetNode("Sword"); + GetNode("Backpack/Dagger"); + GetNode("../Swamp/Alligator"); + GetNode("/root/MyGame"); + + + + The path to the node to fetch. + The type to cast to. Should be a descendant of . + + The at the given , or if not found. + + + + + Returns a child node by its index (see ). + This method is often used for iterating all children of a node. + Negative indices access the children from the last one. + To access a child node via its name, use . + + + Child index. + + If , internal children are skipped (see internal + parameter in ). + + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The child at the given index . + + + + + Returns a child node by its index (see ). + This method is often used for iterating all children of a node. + Negative indices access the children from the last one. + To access a child node via its name, use . + + + Child index. + + If , internal children are skipped (see internal + parameter in ). + + The type to cast to. Should be a descendant of . + + The child at the given index , or if not found. + + + + + The node owner. A node can have any other node as owner (as long as it is + a valid parent, grandparent, etc. ascending in the tree). When saving a + node (using ), all the nodes it owns will be saved + with it. This allows for the creation of complex s, + with instancing and subinstancing. + + + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The owner . + + + + + The node owner. A node can have any other node as owner (as long as it is + a valid parent, grandparent, etc. ascending in the tree). When saving a + node (using ), all the nodes it owns will be saved + with it. This allows for the creation of complex s, + with instancing and subinstancing. + + + The type to cast to. Should be a descendant of . + + The owner , or if there is no owner. + + + + + Returns the parent node of the current node, or a instance + if the node lacks a parent. + + + + The fetched node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + The parent . + + + + + Returns the parent node of the current node, or a instance + if the node lacks a parent. + + + The type to cast to. Should be a descendant of . + + The parent , or if the node has no parent. + + + + + Notification received when the node enters a . See . + This notification is received before the related signal. + + + + + Notification received when the node is about to exit a . See . + This notification is received after the related signal. + + + + + Notification received when the node is ready. See . + + + + + Notification received when the node is paused. See . + + + + + Notification received when the node is unpaused. See . + + + + + Notification received from the tree every physics frame when returns . See . + + + + + Notification received from the tree every rendered frame when returns . See . + + + + + Notification received when the node is set as a child of another node (see and ). + Note: This does not mean that the node entered the . + + + + + Notification received when the parent node calls on this node. + Note: This does not mean that the node exited the . + + + + + Notification received only by the newly instantiated scene root node, when is completed. + + + + + Notification received when a drag operation begins. All nodes receive this notification, not only the dragged one. + Can be triggered either by dragging a that provides drag data (see ) or using . + Use to get the dragged data. + + + + + Notification received when a drag operation ends. + Use to check if the drag succeeded. + + + + + Notification received when the node's or one of its ancestors' is changed. This notification is not received when the node is removed from the . + + + + + Notification received when the list of children is changed. This happens when child nodes are added, moved or removed. + + + + + Notification received from the tree every rendered frame when returns . + + + + + Notification received from the tree every physics frame when returns . + + + + + Notification received when the node enters the tree, just before may be received. Unlike the latter, it is sent every time the node enters tree, not just once. + + + + + Notification received when the node is disabled. See . + + + + + Notification received when the node is enabled again after being disabled. See . + + + + + Notification received when is called on the node or its ancestors. + + + + + Notification received right before the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects. + + + + + Notification received right after the scene with the node is saved in the editor. This notification is only sent in the Godot editor and will not occur in exported projects. + + + + + Notification received when the mouse enters the window. + Implemented for embedded windows and on desktop and web platforms. + + + + + Notification received when the mouse leaves the window. + Implemented for embedded windows and on desktop and web platforms. + + + + + Notification received from the OS when the node's ancestor is focused. This may be a change of focus between two windows of the same engine instance, or from the OS desktop or a third-party application to a window of the game (in which case is also received). + A node receives this notification when it is focused. + + + + + Notification received from the OS when the node's ancestor is defocused. This may be a change of focus between two windows of the same engine instance, or from a window of the game to the OS desktop or a third-party application (in which case is also received). + A node receives this notification when it is defocused. + + + + + Notification received from the OS when a close request is sent (e.g. closing the window with a "Close" button or Alt + F4). + Implemented on desktop platforms. + + + + + Notification received from the OS when a go back request is sent (e.g. pressing the "Back" button on Android). + Implemented only on Android. + + + + + Notification received when the window is resized. + Note: Only the resized node receives this notification, and it's not propagated to the child nodes. + + + + + Notification received from the OS when the screen's dots per inch (DPI) scale is changed. Only implemented on macOS. + + + + + Notification received when the mouse cursor enters the 's visible area, that is not occluded behind other s or s, provided its is and regardless if it's currently focused or not. + + + + + Notification received when the mouse cursor leaves the 's visible area, that is not occluded behind other s or s, provided its is and regardless if it's currently focused or not. + + + + + Notification received from the OS when the application is exceeding its allocated memory. + Implemented only on iOS. + + + + + Notification received when translations may have changed. Can be triggered by the user changing the locale, changing or when the node enters the scene tree. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like . + Note: This notification is received alongside , so if you are instantiating a scene, the child nodes will not be initialized yet. You can use it to setup translations for this node, child nodes created from script, or if you want to access child nodes added in the editor, make sure the node is ready using . + + func _notification(what): + if what == NOTIFICATION_TRANSLATION_CHANGED: + if not is_node_ready(): + await ready # Wait until ready signal. + $Label.text = atr("%d Bananas") % banana_counter + + + + + + Notification received from the OS when a request for "About" information is sent. + Implemented only on macOS. + + + + + Notification received from Godot's crash handler when the engine is about to crash. + Implemented on desktop platforms, if the crash handler is enabled. + + + + + Notification received from the OS when an update of the Input Method Engine occurs (e.g. change of IME cursor position or composition string). + Implemented only on macOS. + + + + + Notification received from the OS when the application is resumed. + Specific to the Android and iOS platforms. + + + + + Notification received from the OS when the application is paused. + Specific to the Android and iOS platforms. + Note: On iOS, you only have approximately 5 seconds to finish a task started by this signal. If you go over this allotment, iOS will kill the app instead of pausing it. + + + + + Notification received from the OS when the application is focused, i.e. when changing the focus from the OS desktop or a thirdparty application to any open window of the Godot instance. + Implemented on desktop and mobile platforms. + + + + + Notification received from the OS when the application is defocused, i.e. when changing the focus from any open window of the Godot instance to the OS desktop or a thirdparty application. + Implemented on desktop and mobile platforms. + + + + + Notification received when the is changed. + + + + + Inherits from the node's parent. This is the default for any newly created node. + + + + + Stops processing when is . This is the inverse of , and the default for the root node. + + + + + Process only when is . This is the inverse of . + + + + + Always process. Keeps processing, ignoring . This is the inverse of . + + + + + Never process. Completely disables processing, ignoring . This is the inverse of . + + + + + 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 for more information. + + + + + Process this node (and child nodes set to inherit) on the main thread. See for more information. + + + + + Process this node (and child nodes set to inherit) on a sub-thread. See for more information. + + + + + Allows this node to process threaded messages created with right before is called. + + + + + Allows this node to process threaded messages created with right before is called. + + + + + Allows this node to process threaded messages created with right before either or are called. + + + + + Inherits from the node's parent. This is the default for any newly created node. + + + + + Enables physics interpolation for this node and for children set to . This is the default for the root node. + + + + + Disables physics interpolation for this node and for children set to . + + + + + Duplicate the node's signal connections. + + + + + Duplicate the node's groups. + + + + + Duplicate the node's script (also overriding the duplicated children's scripts, if combined with ). + + + + + Duplicate using . If the node comes from a scene saved on disk, reuses as the base for the duplicated node and its children. + + + + + The node will not be internal. + + + + + The node will be placed at the beginning of the parent's children, before any non-internal sibling. + + + + + The node will be placed at the end of the parent's children, after any non-internal sibling. + + + + + Inherits from the node's parent. This is the default for any newly created node. + + + + + Always automatically translate. This is the inverse of , and the default for the root node. + + + + + Never automatically translate. This is the inverse of . + String parsing for POT generation will be skipped for this node and children that are set to . + + + + + The name of the node. This name must be unique among the siblings (other child nodes from the same parent). When set to an existing sibling's name, the node is automatically renamed. + Note: When changing the name, the following characters will be replaced with an underscore: (. : @ / " %). In particular, the @ character is reserved for auto-generated names. See also String.validate_node_name. + + + + + If , the node can be accessed from any node sharing the same or from the itself, with special %Name syntax in . + Note: If another node with the same shares the same as this node, the other node will no longer be accessible as unique. + + + + + The original scene's file path, if the node has been instantiated from a file. Only scene root nodes contains this. + + + + + The owner of this node. The owner must be an ancestor of this node. When packing the owner node in a , all the nodes it owns are also saved with it. See also . + Note: In the editor, nodes not owned by the scene root are usually not displayed in the Scene dock, and will not be saved. To prevent this, remember to set the owner after calling . + + + + + The instance associated with this node. See . + Note: Renaming the node, or moving it in the tree, will not move the to the new path, you will have to update this manually. + + + + + The node's processing behavior (see ). To check if the node can process in its current mode, use . + + + + + The node's execution order of the process callbacks (, , and ). Nodes whose priority value is lower call their process callbacks first, regardless of tree order. + + + + + Similar to but for , , or . + + + + + Set the process thread group for this node (basically, whether it receives , , or (and the internal versions) on the main thread or in a sub-thread. + By default, the thread group is , which means that this node belongs to the same thread group as the parent node. The thread groups means that nodes in a specific thread group will process together, separate to other thread groups (depending on ). If the value is set is , this thread group will occur on a sub thread (not the main thread), otherwise if set to it will process on the main thread. If there is not a parent or grandparent node set to something other than inherit, the node will belong to the default thread group. This default group will process on the main thread and its group order is 0. + During processing in a sub-thread, accessing most functions in nodes outside the thread group is forbidden (and it will result in an error in debug mode). Use , , and the likes in order to communicate from the thread groups to the main thread (or to other thread groups). + To better understand process thread groups, the idea is that any node set to any other value than will include any child (and grandchild) nodes set to inherit into its process thread group. This means that the processing of all the nodes in the group will happen together, at the same time as the node including them. + + + + + Change the process thread group order. Groups with a lesser order will process before groups with a greater order. This is useful when a large amount of nodes process in sub thread and, afterwards, another group wants to collect their result in the main thread, as an example. + + + + + Set whether the current thread group will process messages (calls to on threads), and whether it wants to receive them during regular process or physics process callbacks. + + + + + Allows enabling or disabling physics interpolation per node, offering a finer grain of control than turning physics interpolation on and off globally. See ProjectSettings.physics/common/physics_interpolation and for the global setting. + Note: When teleporting a node to a distant position you should temporarily disable interpolation with . + + + + + Defines if any text should automatically change to its translated version depending on the current locale (for nodes such as , , , etc.). Also decides if the node's strings should be parsed for POT generation. + Note: For the root node, auto translate mode can also be set via ProjectSettings.internationalization/rendering/root_node_auto_translate. + + + + + An optional description to the node. It will be displayed as a tooltip when hovering over the node in the editor's Scene dock. + + + + + Called when the node enters the (e.g. upon instantiating, scene changing, or after calling in a script). If the node has children, its callback will be called first, and then that of the children. + Corresponds to the notification in . + + + + + Called when the node is about to leave the (e.g. upon freeing, scene changing, or after calling in a script). If the node has children, its callback will be called last, after all its children have left the tree. + Corresponds to the notification in and signal . To get notified when the node has already left the active tree, connect to the . + + + + + 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 tool script. + Returning an empty array produces no warnings. + Call when the warnings need to be updated for this node. + + @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 [] + + + + + + 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + For gameplay input, and are usually a better fit as they allow the GUI to intercept the events first. + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + + + + + 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 parameter will generally be constant (see exceptions below). 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 . + Processing happens in order of , lower priority values are called first. Nodes with the same priority are processed in tree order, or top to bottom as seen in the editor (also known as pre-order traversal). + Corresponds to the notification in . + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the time since the previous frame is not constant. 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 . + Processing happens in order of , lower priority values are called first. Nodes with the same priority are processed in tree order, or top to bottom as seen in the editor (also known as pre-order traversal). + Corresponds to the notification in . + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + 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 callbacks get triggered first, and the parent node will receive the ready notification afterwards. + Corresponds to the notification in . See also the @onready annotation for variables. + Usually used for initialization. For even earlier initialization, may be used. See also . + Note: This method may be called only once for each node. After removing a node from the scene tree and adding it again, will not be called a second time. This can be bypassed by requesting another call with , which may be called anywhere before adding the node again. + + + + + Called when an , , or hasn't been consumed by or any GUI item. It is called before and . 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + This method can be used to handle shortcuts. For generic GUI events, use instead. Gameplay events should usually be handled with either or . + Note: This method is only called if the node is present in the scene tree (i.e. if it's not orphan). + + + + + Called when an hasn't been consumed by or any GUI item. It is called after and after . 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + For gameplay input, this method is usually a better fit than , as GUI events need a higher priority. For keyboard shortcuts, consider using instead, as it is called before this method. Finally, to handle keyboard events, consider using for performance reasons. + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + + + + + Called when an hasn't been consumed by or any GUI item. It is called after but before . 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 . + To consume the input event and stop it propagating further to other nodes, can be called. + This method can be used to handle Unicode character input with Alt, Alt + Ctrl, and Alt + Shift modifiers, after shortcuts were handled. + For gameplay input, this and are usually a better fit than , as GUI events should be handled first. This method also performs better than , since unrelated events such as are automatically filtered. For shortcuts, consider using instead. + Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan). + + + + + Prints all orphan nodes (nodes outside the ). Useful for debugging. + Note: This method only works in debug builds. Does nothing in a project exported in release mode. + + + + + Adds a node to this node's parent, and moves the added sibling right below this node. + If is , improves the readability of the added . If not named, the is renamed to its type, and if it shares with a sibling, a number is suffixed more appropriately. This operation is very slow. As such, it is recommended leaving this to , which assigns a dummy name featuring @ in both situations. + Use instead of this method if you don't need the child node to be added below a specific node in the list of children. + Note: If this node is internal, the added sibling will be internal too (see 's internal parameter). + + + + + Adds a child . Nodes can have any number of children, but every child must have a unique name. Child nodes are automatically deleted when the parent node is deleted, so an entire scene can be removed by deleting its topmost node. + If is , improves the readability of the added . If not named, the is renamed to its type, and if it shares with a sibling, a number is suffixed more appropriately. This operation is very slow. As such, it is recommended leaving this to , which assigns a dummy name featuring @ in both situations. + If is different than , the child will be added as internal node. These nodes are ignored by methods like , unless their parameter include_internal is . The intended usage is to hide the internal nodes from the user, so the user won't accidentally delete or modify them. Used by some GUI nodes, e.g. . See for available modes. + Note: If already has a parent, this method will fail. Use first to remove from its current parent. For example: + + Node childNode = GetChild(0); + if (childNode.GetParent() != null) + { + childNode.GetParent().RemoveChild(childNode); + } + AddChild(childNode); + + If you need the child node to be added below a specific node in the list of children, use instead of this method. + Note: If you want a child to be persisted to a , you must set in addition to calling . This is typically relevant for tool scripts and editor plugins. If is called without setting , the newly added will not be visible in the scene tree, though it will be visible in the 2D/3D view. + + + + + Removes a child . The , along with its children, are not deleted. To delete a node, see . + Note: When this node is inside the tree, this method sets the of the removed (or its descendants) to , if their is no longer an ancestor (see ). + + + + + Changes the parent of this to the . The node needs to already have a parent. The node's is preserved if its owner is still reachable from the new location (i.e., the node is still a descendant of the new parent after the operation). + If is , the node's global transform will be preserved if supported. , and support this argument (but keeps only position). + + + + + Returns the number of children of this node. + If is , internal children are not counted (see 's internal parameter). + + + + + Returns all children of this node inside an . + If is , excludes internal children from the returned array (see 's internal parameter). + + + + + Fetches a child node by its index. Each child node has an index relative its siblings (see ). The first child is at index 0. Negative values can also be used to start from the end of the list. This method can be used in combination with to iterate over this node's children. If no child exists at the given index, this method returns and an error is generated. + If is , internal children are ignored (see 's internal parameter). + + # Assuming the following are children of this node, in order: + # First, Middle, Last. + + var a = get_child(0).name # a is "First" + var b = get_child(1).name # b is "Middle" + var b = get_child(2).name # b is "Last" + var c = get_child(-1).name # c is "Last" + + Note: To fetch a node by , use . + + + + + Returns if the points to a valid node. See also . + + + + + Fetches a node. The can either be a relative path (from this node), or an absolute path (from the ) to a node. If does not point to a valid node, generates an error and returns . Attempts to access methods on the return value will result in an "Attempt to call <method> on a null instance." error. + Note: Fetching by absolute path only works when the node is inside the scene tree (see ). + Example: Assume this method is called from the Character node, inside the following tree: + + ┖╴root + ┠╴Character (you are here!) + ┃ ┠╴Sword + ┃ ┖╴Backpack + ┃ ┖╴Dagger + ┠╴MyGame + ┖╴Swamp + ┠╴Alligator + ┠╴Mosquito + ┖╴Goblin + + The following calls will return a valid node: + + GetNode("Sword"); + GetNode("Backpack/Dagger"); + GetNode("../Swamp/Alligator"); + GetNode("/root/MyGame"); + + + + + + Fetches a node by . Similar to , but does not generate an error if does not point to a valid node. + + + + + Returns this node's parent node, or if the node doesn't have a parent. + + + + + Finds the first descendant of this node whose matches , returning if no match is found. The matching is done against node names, not their paths, through String.match. As such, it is case-sensitive, "*" matches zero or more characters, and "?" matches any single character. + If is , only this node's direct children are checked. Nodes are checked in tree order, so this node's first direct child is checked first, then its own direct children, etc., before moving to the second direct child, and so on. Internal children are also included in the search (see internal parameter in ). + If is , only descendants with a valid node are checked. + Note: This method can be very slow. Consider storing a reference to the found node in a variable. Alternatively, use with unique names (see ). + Note: To find all descendant nodes matching a pattern or a class type, see . + + + + + Finds all descendants of this node whose names match , returning an empty if no match is found. The matching is done against node names, not their paths, through String.match. As such, it is case-sensitive, "*" matches zero or more characters, and "?" matches any single character. + If is not empty, only ancestors inheriting from are included (see ). + If is , only this node's direct children are checked. Nodes are checked in tree order, so this node's first direct child is checked first, then its own direct children, etc., before moving to the second direct child, and so on. Internal children are also included in the search (see internal parameter in ). + If is , only descendants with a valid node are checked. + Note: This method can be very slow. Consider storing references to the found nodes in a variable. + Note: To find a single descendant node matching a pattern, see . + + + + + Finds the first ancestor of this node whose matches , returning if no match is found. The matching is done through String.match. As such, it is case-sensitive, "*" matches zero or more characters, and "?" matches any single character. See also and . + Note: As this method walks upwards in the scene tree, it can be slow in large, deeply nested nodes. Consider storing a reference to the found node in a variable. Alternatively, use with unique names (see ). + + + + + Returns if points to a valid node and its subnames point to a valid , e.g. Area2D/CollisionShape2D:shape. Properties that are not types (such as nodes or other types) are not considered. See also . + + + + + Fetches a node and its most nested resource as specified by the 's subname. Returns an of size 3 where: + - Element 0 is the , or if not found; + - Element 1 is the subname's last nested , or if not found; + - Element 2 is the remaining , referring to an existing, non- property (see ). + Example: Assume that the child's has been assigned a : + + var a = GetNodeAndResource(NodePath("Area2D/Sprite2D")); + GD.Print(a[0].Name); // Prints Sprite2D + GD.Print(a[1]); // Prints <null> + GD.Print(a[2]); // Prints ^" + + var b = GetNodeAndResource(NodePath("Area2D/Sprite2D:texture:atlas")); + GD.Print(b[0].name); // Prints Sprite2D + GD.Print(b[1].get_class()); // Prints AtlasTexture + GD.Print(b[2]); // Prints ^"" + + var c = GetNodeAndResource(NodePath("Area2D/Sprite2D:texture:atlas:region")); + GD.Print(c[0].name); // Prints Sprite2D + GD.Print(c[1].get_class()); // Prints AtlasTexture + GD.Print(c[2]); // Prints ^":region" + + + + + + Returns if this node is currently inside a . See also . + + + + + Returns if the node is part of the scene currently opened in the editor. + + + + + Returns if the given is a direct or indirect child of this node. + + + + + Returns if the given occurs later in the scene hierarchy than this node. A node occurring later is usually processed last. + + + + + Returns the node's absolute path, relative to the . If the node is not inside the scene tree, this method fails and returns an empty . + + + + + Returns the relative from this node to the specified . Both nodes must be in the same or scene hierarchy, otherwise this method fails and returns an empty . + If is , returns the shortest path accounting for this node's unique name (see ). + Note: If you get a relative path which starts from a unique node, the path may be longer than a normal relative path, due to the addition of the unique node's name. + + + + + Adds the node to the . Groups can be helpful to organize a subset of nodes, for example "enemies" or "collectables". See notes in the description, and the group methods in . + If is , the group will be stored when saved inside a . All groups created and displayed in the Node dock are persistent. + Note: To improve performance, the order of group names is not guaranteed and may vary between project runs. Therefore, do not rely on the group order. + Note: 's group methods will not work on this node if not inside the tree (see ). + + + + + Removes the node from the given . Does nothing if the node is not in the . See also notes in the description, and the 's group methods. + + + + + Returns if this node has been added to the given . See and . See also notes in the description, and the 's group methods. + + + + + Moves to the given index. A node's index is the order among its siblings. If is negative, the index is counted from the end of the list. See also and . + Note: The processing order of several engine callbacks (, , etc.) and notifications sent through is affected by tree order. nodes are also rendered in tree order. See also . + + + + + Returns an of group names that the node has been added to. + Note: To improve performance, the order of group names is not guaranteed and may vary between project runs. Therefore, do not rely on the group order. + Note: This method may also return some group names starting with an underscore (_). These are internally used by the engine. To avoid conflicts, do not use custom groups starting with underscores. To exclude internal groups, see the following code snippet: + + // Stores the node's non-internal groups only (as a List of StringNames). + List<string> nonInternalGroups = new List<string>(); + foreach (string group in GetGroups()) + { + if (!group.BeginsWith("_")) + nonInternalGroups.Add(group); + } + + + + + + Returns this node's order among its siblings. The first node's index is 0. See also . + If is , returns the index ignoring internal children. The first, non-internal child will have an index of 0 (see 's internal parameter). + + + + + Prints the node and its children to the console, recursively. The node does not have to be inside the tree. This method outputs s relative to this node, and is good for copy/pasting into . See also . + May print, for example: + + . + Menu + Menu/Label + Menu/Camera2D + SplashScreen + SplashScreen/Camera2D + + + + + + Prints the node and its children to the console, recursively. The node does not have to be inside the tree. Similar to , but the graphical representation looks like what is displayed in the editor's Scene dock. It is useful for inspecting larger trees. + May print, for example: + + ┖╴TheGame + ┠╴Menu + ┃ ┠╴Label + ┃ ┖╴Camera2D + ┖╴SplashScreen + ┖╴Camera2D + + + + + + Returns the tree as a . Used mainly for debugging purposes. This version displays the path relative to the current node, and is good for copy/pasting into the function. It also can be used in game UI/UX. + May print, for example: + + TheGame + TheGame/Menu + TheGame/Menu/Label + TheGame/Menu/Camera2D + TheGame/SplashScreen + TheGame/SplashScreen/Camera2D + + + + + + Similar to , this returns the tree as a . This version displays a more graphical representation similar to what is displayed in the Scene Dock. It is useful for inspecting larger trees. + May print, for example: + + ┖╴TheGame + ┠╴Menu + ┃ ┠╴Label + ┃ ┖╴Camera2D + ┖╴SplashScreen + ┖╴Camera2D + + + + + + Calls with on this node and all of its children, recursively. + + + + + Calls the given name, passing as arguments, on this node and all of its children, recursively. + If is , the method is called on this node first, then on all of its children. If , the children's methods are called first. + + + + + If set to , enables physics (fixed framerate) processing. When a node is being processed, it will receive a at a fixed (usually 60 FPS, see to change) interval (and the callback will be called if it exists). + Note: If is overridden, this will be automatically enabled before is called. + + + + + Returns the time elapsed (in seconds) since the last physics callback. This value is identical to 's delta parameter, and is often consistent at run-time, unless is changed. See also . + Note: The returned value will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using delta for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Returns if physics processing is enabled (see ). + + + + + Returns the time elapsed (in seconds) since the last process callback. This value is identical to 's delta parameter, and may vary from frame to frame. See also . + Note: The returned value will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using delta for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + If set to , enables processing. When a node is being processed, it will receive a on every drawn frame (and the callback will be called if it exists). + Note: If is overridden, this will be automatically enabled before is called. + Note: This method only affects the callback, i.e. it has no effect on other callbacks like . If you want to disable all processing for the node, set to . + + + + + Returns if processing is enabled (see ). + + + + + If set to , enables input processing. + Note: If is overridden, this will be automatically enabled before is called. Input processing is also already enabled for GUI controls, such as and . + + + + + Returns if the node is processing input (see ). + + + + + If set to , enables shortcut processing for this node. + Note: If is overridden, this will be automatically enabled before is called. + + + + + Returns if the node is processing shortcuts (see ). + + + + + If set to , enables unhandled input processing. It enables the node to receive all input that was not previously handled (usually by a ). + Note: If is overridden, this will be automatically enabled before is called. Unhandled input processing is also already enabled for GUI controls, such as and . + + + + + Returns if the node is processing unhandled input (see ). + + + + + If set to , enables unhandled key input processing. + Note: If is overridden, this will be automatically enabled before is called. + + + + + Returns if the node is processing unhandled key input (see ). + + + + + Returns if the node can receive processing notifications and input callbacks (, , etc.) from the and . The returned value depends on : + - If set to , returns when the game is processing, i.e. is ; + - If set to , returns when the game is paused, i.e. is ; + - If set to , always returns ; + - If set to , always returns ; + - If set to , use the parent node's to determine the result. + If the node is not inside the tree, returns no matter the value of . + + + + + If set to , the node appears folded in the Scene dock. As a result, all of its children are hidden. This method is intended to be used in editor plugins and tools, but it also works in release builds. See also . + + + + + Returns if the node is folded (collapsed) in the Scene dock. This method is intended to be used in editor plugins and tools. See also . + + + + + If set to , enables internal processing for this node. Internal processing happens in isolation from the normal calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or processing is disabled for scripting (). + Warning: Built-in nodes rely on internal processing for their internal logic. Disabling it is unsafe and may lead to unexpected behavior. Use this method if you know what you are doing. + + + + + Returns if internal processing is enabled (see ). + + + + + If set to , enables internal physics for this node. Internal physics processing happens in isolation from the normal calls and is used by some nodes internally to guarantee proper functioning even if the node is paused or physics processing is disabled for scripting (). + Warning: Built-in nodes rely on internal processing for their internal logic. Disabling it is unsafe and may lead to unexpected behavior. Use this method if you know what you are doing. + + + + + Returns if internal physics processing is enabled (see ). + + + + + Returns if physics interpolation is enabled for this node (see ). + Note: Interpolation will only be active if both the flag is set and physics interpolation is enabled within the . This can be tested using . + + + + + Returns if physics interpolation is enabled (see ) and enabled in the . + This is a convenience version of that also checks whether physics interpolation is enabled globally. + See and ProjectSettings.physics/common/physics_interpolation. + + + + + When physics interpolation is active, moving a node to a radically different transform (such as placement within a level) can result in a visible glitch as the object is rendered moving from the old to new position over the physics tick. + That glitch can be prevented by calling this method, which temporarily disables interpolation until the physics tick is complete. + The notification will be received by the node and all children recursively. + Note: This function should be called after moving the node, rather than before. + + + + + Makes this node inherit the translation domain from its parent node. If this node has no parent, the main translation domain will be used. + This is the default behavior for all nodes. Calling disables this behavior. + + + + + Returns the that contains this node. If the node is in the main window, this is equivalent to getting the root node (get_tree().get_root()). + + + + + Returns the that contains this node, or the last exclusive child in a chain of windows starting with the one that contains this node. + + + + + Returns the that contains this node. If this node is not inside the tree, generates an error and returns . See also . + + + + + Creates a new and binds it to this node. + This is the equivalent of doing: + + GetTree().CreateTween().BindNode(this); + + The Tween will start automatically on the next process frame or physics frame (depending on ). See for more info on Tweens bound to nodes. + Note: The method can still be used when the node is not inside . It can fail in an unlikely case of using a custom . + + + + + Duplicates the node, returning a new node with all of its properties, signals, groups, and children copied from the original. The behavior can be tweaked through the (see ). + Note: For nodes with a attached, if has been defined with required parameters, the duplicated node will not have a . + + + + + Replaces this node by the given . All children of this node are moved to . + If is , the is added to the same groups that the replaced node is in (see ). + Warning: The replaced node is removed from the tree, but it is not deleted. To prevent memory leaks, store a reference to the node in a variable, or use . + + + + + If set to , the node becomes a when packed and instantiated from a . See also . + + + + + Returns if this node is an instance load placeholder. See and . + + + + + Set to to allow all nodes owned by to be available, and editable, in the Scene dock, even if their is not the scene root. This method is intended to be used in editor plugins and tools, but it also works in release builds. See also . + + + + + Returns if has editable children enabled relative to this node. This method is intended to be used in editor plugins and tools. See also . + + + + + Returns the node's closest ancestor, if the node is inside the tree. Otherwise, returns . + + + + + Queues this node to be deleted at the end of the current frame. When deleted, all of its children are deleted as well, and all references to the node and its children become invalid. + Unlike with , the node is not deleted instantly, and it can still be accessed before deletion. It is also safe to call multiple times. Use to check if the node will be deleted at the end of the frame. + Note: The node will only be freed after all other deferred calls are finished. Using this method is not always the same as calling through . + + + + + Requests to be called again the next time the node enters the tree. Does not immediately call . + Note: This method only affects the current node. If the node's children also need to request ready, this method needs to be called for each one of them. When the node and its children enter the tree again, the order of callbacks will be the same as normal. + + + + + Returns if the node is ready, i.e. it's inside scene tree and all its children are initialized. + resets it back to . + + + + + Sets the node's multiplayer authority to the peer with the given peer . The multiplayer authority is the peer that has authority over the node on the network. Defaults to peer ID 1 (the server). Useful in conjunction with and the . + If is , the given peer is recursively set as the authority for all children of this node. + Warning: This does not automatically replicate the new authority to other peers. It is the developer's responsibility to do so. You may replicate the new authority's information using , an RPC, or a . Furthermore, the parent's authority does not propagate to newly added children. + + + + + Returns the peer ID of the multiplayer authority for this node. See . + + + + + Returns if the local system is the multiplayer authority of this node. + + + + + Changes the RPC configuration for the given . should either be to disable the feature (as by default), or a containing the following entries: + - rpc_mode: see ; + - transfer_mode: see ; + - call_local: if , the method will also be called locally; + - channel: an representing the channel to send the RPC on. + Note: In GDScript, this method corresponds to the [annotation @GDScript.@rpc] annotation, with various parameters passed (@rpc(any), @rpc(authority)...). See also the high-level multiplayer tutorial. + + + + + Returns a mapping method names to their RPC configuration defined for this node using . + + + + + Translates a , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. Note that most nodes automatically translate their strings, so this method is mostly useful for formatted strings or custom drawn text. + This method works the same as , with the addition of respecting the state. + If is , or no translation is available, this method returns the without changes. See . + For detailed examples, see Internationalizing games. + + + + + Translates a or , using the translation catalogs configured in the Project Settings. Further can be specified to help with the translation. + This method works the same as , with the addition of respecting the state. + If is , or no translation is available, this method returns or , without changes. See . + The is the number, or amount, of the message's subject. It is used by the translation system to fetch the correct plural form for the current language. + For detailed examples, see Localization using gettext. + Note: Negative and numbers may not properly apply to some countable subjects. It's recommended to handle these cases with . + + + + + Sends a remote procedure call request for the given to peers on the network (and locally), sending additional arguments to the method called by the RPC. The call request will only be received by nodes with the same , including the exact same . Behavior depends on the RPC configuration for the given (see and [annotation @GDScript.@rpc]). By default, methods are not exposed to RPCs. + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + Note: You can only safely use RPCs on clients after you received the signal from the . You also need to keep track of the connection state, either by the signals like or by checking (get_multiplayer().peer.get_connection_status() == CONNECTION_CONNECTED). + + + + + Sends a remote procedure call request for the given to peers on the network (and locally), sending additional arguments to the method called by the RPC. The call request will only be received by nodes with the same , including the exact same . Behavior depends on the RPC configuration for the given (see and [annotation @GDScript.@rpc]). By default, methods are not exposed to RPCs. + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + Note: You can only safely use RPCs on clients after you received the signal from the . You also need to keep track of the connection state, either by the signals like or by checking (get_multiplayer().peer.get_connection_status() == CONNECTION_CONNECTED). + + + + + Sends a to a specific peer identified by (see ). + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + + + + + Sends a to a specific peer identified by (see ). + May return if the call is successful, if the arguments passed in the do not match, if the node's cannot be fetched (such as when the node is not inside the tree), if 's connection is not available. + + + + + Refreshes the warnings displayed for this node in the Scene dock. Use to customize the warning messages to display. + + + + + This function is similar to except that the call will take place when the node thread group is processed. If the node thread group processes in sub-threads, then the call will be done on that thread, right before or , the or or their internal versions are called. + + + + + This function is similar to except that the call will take place when the node thread group is processed. If the node thread group processes in sub-threads, then the call will be done on that thread, right before or , the or or their internal versions are called. + + + + + Similar to , but for setting properties. + + + + + Similar to , but for notifications. + + + + + This function ensures that the calling of this function will succeed, no matter whether it's being done from a thread or not. If called from a thread that is not allowed to call the function, the call will become deferred. Otherwise, the call will go through directly. + + + + + This function ensures that the calling of this function will succeed, no matter whether it's being done from a thread or not. If called from a thread that is not allowed to call the function, the call will become deferred. Otherwise, the call will go through directly. + + + + + Similar to , but for setting properties. + + + + + Similar to , but for notifications. + + + + + Emitted when the node is considered ready, after is called. + + + + + Emitted when the node's is changed, if the node is inside the tree. + + + + + Emitted when the node enters the tree. + This signal is emitted after the related notification. + + + + + Emitted when the node is just about to exit the tree. The node is still valid. As such, this is the right place for de-initialization (or a "destructor", if you will). + This signal is emitted after the node's , and before the related . + + + + + Emitted after the node exits the tree and is no longer active. + This signal is emitted after the related notification. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the child node enters the , usually because this node entered the tree (see ), or has been called. + This signal is emitted after the child node's own and . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the child node is about to exit the , usually because this node is exiting the tree (see ), or because the child node is being removed or freed. + When this signal is received, the child node is still accessible inside the tree. This signal is emitted after the child node's own and . + + + + + Emitted when the list of children is changed. This happens when child nodes are added, moved or removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this node is being replaced by the node, see . + This signal is emitted after node has been added as a child of the original parent node, but before all original child nodes have been reparented to node. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node's editor description field changed. + + + + + Emitted when an attribute of the node that is relevant to the editor is changed. Only emitted in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_import_path' property. + + + + + Cached name for the 'name' property. + + + + + Cached name for the 'unique_name_in_owner' property. + + + + + Cached name for the 'scene_file_path' property. + + + + + Cached name for the 'owner' property. + + + + + Cached name for the 'multiplayer' property. + + + + + Cached name for the 'process_mode' property. + + + + + Cached name for the 'process_priority' property. + + + + + Cached name for the 'process_physics_priority' property. + + + + + Cached name for the 'process_thread_group' property. + + + + + Cached name for the 'process_thread_group_order' property. + + + + + Cached name for the 'process_thread_messages' property. + + + + + Cached name for the 'physics_interpolation_mode' property. + + + + + Cached name for the 'auto_translate_mode' property. + + + + + Cached name for the 'editor_description' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_enter_tree' method. + + + + + Cached name for the '_exit_tree' method. + + + + + Cached name for the '_get_configuration_warnings' method. + + + + + Cached name for the '_input' method. + + + + + Cached name for the '_physics_process' method. + + + + + Cached name for the '_process' method. + + + + + Cached name for the '_ready' method. + + + + + Cached name for the '_shortcut_input' method. + + + + + Cached name for the '_unhandled_input' method. + + + + + Cached name for the '_unhandled_key_input' method. + + + + + Cached name for the 'print_orphan_nodes' method. + + + + + Cached name for the 'add_sibling' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'add_child' method. + + + + + Cached name for the 'remove_child' method. + + + + + Cached name for the 'reparent' method. + + + + + Cached name for the 'get_child_count' method. + + + + + Cached name for the 'get_children' method. + + + + + Cached name for the 'get_child' method. + + + + + Cached name for the 'has_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'get_node_or_null' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'find_child' method. + + + + + Cached name for the 'find_children' method. + + + + + Cached name for the 'find_parent' method. + + + + + Cached name for the 'has_node_and_resource' method. + + + + + Cached name for the 'get_node_and_resource' method. + + + + + Cached name for the 'is_inside_tree' method. + + + + + Cached name for the 'is_part_of_edited_scene' method. + + + + + Cached name for the 'is_ancestor_of' method. + + + + + Cached name for the 'is_greater_than' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'get_path_to' method. + + + + + Cached name for the 'add_to_group' method. + + + + + Cached name for the 'remove_from_group' method. + + + + + Cached name for the 'is_in_group' method. + + + + + Cached name for the 'move_child' method. + + + + + Cached name for the 'get_groups' method. + + + + + Cached name for the 'set_owner' method. + + + + + Cached name for the 'get_owner' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'print_tree' method. + + + + + Cached name for the 'print_tree_pretty' method. + + + + + Cached name for the 'get_tree_string' method. + + + + + Cached name for the 'get_tree_string_pretty' method. + + + + + Cached name for the 'set_scene_file_path' method. + + + + + Cached name for the 'get_scene_file_path' method. + + + + + Cached name for the 'propagate_notification' method. + + + + + Cached name for the 'propagate_call' method. + + + + + Cached name for the 'set_physics_process' method. + + + + + Cached name for the 'get_physics_process_delta_time' method. + + + + + Cached name for the 'is_physics_processing' method. + + + + + Cached name for the 'get_process_delta_time' method. + + + + + Cached name for the 'set_process' method. + + + + + Cached name for the 'set_process_priority' method. + + + + + Cached name for the 'get_process_priority' method. + + + + + Cached name for the 'set_physics_process_priority' method. + + + + + Cached name for the 'get_physics_process_priority' method. + + + + + Cached name for the 'is_processing' method. + + + + + Cached name for the 'set_process_input' method. + + + + + Cached name for the 'is_processing_input' method. + + + + + Cached name for the 'set_process_shortcut_input' method. + + + + + Cached name for the 'is_processing_shortcut_input' method. + + + + + Cached name for the 'set_process_unhandled_input' method. + + + + + Cached name for the 'is_processing_unhandled_input' method. + + + + + Cached name for the 'set_process_unhandled_key_input' method. + + + + + Cached name for the 'is_processing_unhandled_key_input' method. + + + + + Cached name for the 'set_process_mode' method. + + + + + Cached name for the 'get_process_mode' method. + + + + + Cached name for the 'can_process' method. + + + + + Cached name for the 'set_process_thread_group' method. + + + + + Cached name for the 'get_process_thread_group' method. + + + + + Cached name for the 'set_process_thread_messages' method. + + + + + Cached name for the 'get_process_thread_messages' method. + + + + + Cached name for the 'set_process_thread_group_order' method. + + + + + Cached name for the 'get_process_thread_group_order' method. + + + + + Cached name for the 'set_display_folded' method. + + + + + Cached name for the 'is_displayed_folded' method. + + + + + Cached name for the 'set_process_internal' method. + + + + + Cached name for the 'is_processing_internal' method. + + + + + Cached name for the 'set_physics_process_internal' method. + + + + + Cached name for the 'is_physics_processing_internal' method. + + + + + Cached name for the 'set_physics_interpolation_mode' method. + + + + + Cached name for the 'get_physics_interpolation_mode' method. + + + + + Cached name for the 'is_physics_interpolated' method. + + + + + Cached name for the 'is_physics_interpolated_and_enabled' method. + + + + + Cached name for the 'reset_physics_interpolation' method. + + + + + Cached name for the 'set_auto_translate_mode' method. + + + + + Cached name for the 'get_auto_translate_mode' method. + + + + + Cached name for the 'set_translation_domain_inherited' method. + + + + + Cached name for the 'get_window' method. + + + + + Cached name for the 'get_last_exclusive_window' method. + + + + + Cached name for the 'get_tree' method. + + + + + Cached name for the 'create_tween' method. + + + + + Cached name for the 'duplicate' method. + + + + + Cached name for the 'replace_by' method. + + + + + Cached name for the 'set_scene_instance_load_placeholder' method. + + + + + Cached name for the 'get_scene_instance_load_placeholder' method. + + + + + Cached name for the 'set_editable_instance' method. + + + + + Cached name for the 'is_editable_instance' method. + + + + + Cached name for the 'get_viewport' method. + + + + + Cached name for the 'queue_free' method. + + + + + Cached name for the 'request_ready' method. + + + + + Cached name for the 'is_node_ready' method. + + + + + Cached name for the 'set_multiplayer_authority' method. + + + + + Cached name for the 'get_multiplayer_authority' method. + + + + + Cached name for the 'is_multiplayer_authority' method. + + + + + Cached name for the 'get_multiplayer' method. + + + + + Cached name for the 'rpc_config' method. + + + + + Cached name for the 'get_rpc_config' method. + + + + + Cached name for the 'set_editor_description' method. + + + + + Cached name for the 'get_editor_description' method. + + + + + Cached name for the '_set_import_path' method. + + + + + Cached name for the '_get_import_path' method. + + + + + Cached name for the 'set_unique_name_in_owner' method. + + + + + Cached name for the 'is_unique_name_in_owner' method. + + + + + Cached name for the 'atr' method. + + + + + Cached name for the 'atr_n' method. + + + + + Cached name for the 'rpc' method. + + + + + Cached name for the 'rpc_id' method. + + + + + Cached name for the 'update_configuration_warnings' method. + + + + + Cached name for the 'call_deferred_thread_group' method. + + + + + Cached name for the 'set_deferred_thread_group' method. + + + + + Cached name for the 'notify_deferred_thread_group' method. + + + + + Cached name for the 'call_thread_safe' method. + + + + + Cached name for the 'set_thread_safe' method. + + + + + Cached name for the 'notify_thread_safe' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'ready' signal. + + + + + Cached name for the 'renamed' signal. + + + + + Cached name for the 'tree_entered' signal. + + + + + Cached name for the 'tree_exiting' signal. + + + + + Cached name for the 'tree_exited' signal. + + + + + Cached name for the 'child_entered_tree' signal. + + + + + Cached name for the 'child_exiting_tree' signal. + + + + + Cached name for the 'child_order_changed' signal. + + + + + Cached name for the 'replacing_by' signal. + + + + + Cached name for the 'editor_description_changed' signal. + + + + + Cached name for the 'editor_state_changed' signal. + + + + + 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 property). + Note: The node doesn't need to own itself. + Example: Load a saved scene: + + // C# has no preload, so you have to always use ResourceLoader.Load<PackedScene>(). + var scene = ResourceLoader.Load<PackedScene>("res://scene.tscn").Instantiate(); + // Add the node as a child of the node the script is attached to. + AddChild(scene); + + Example: Save a node with different owners. The following example creates 3 objects: (node), (body) and (collision). collision is a child of body which is a child of node. Only body is owned by node and will therefore only save those two nodes, but not collision. + + // 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."); + } + } + + + + + + Instantiates the scene's node hierarchy, erroring on failure. + Triggers child scene instantiation(s). Triggers a + notification on the root node. + + + + The instantiated node can't be casted to the given type . + + The type to cast to. Should be a descendant of . + The instantiated scene. + + + + Instantiates the scene's node hierarchy, returning on failure. + Triggers child scene instantiation(s). Triggers a + notification on the root node. + + + The type to cast to. Should be a descendant of . + The instantiated scene. + + + + If passed to , blocks edits to the scene state. + + + + + If passed to , provides local scene resources to the local scene. + Note: Only available in editor builds. + + + + + If passed to , provides local scene resources to the local scene. Only the main scene should receive the main edit state. + Note: Only available in editor builds. + + + + + It's similar to , but for the case where the scene is being instantiated to be the base of another one. + Note: Only available in editor builds. + + + + + Packs the node, and all owned sub-nodes, into this . Any existing data will be cleared. See . + + + + + Instantiates the scene's node hierarchy. Triggers child scene instantiation(s). Triggers a notification on the root node. + + + + + Returns if the scene file has nodes. + + + + + Returns the representing the scene file contents. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_bundled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'pack' method. + + + + + Cached name for the 'instantiate' method. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the '_set_bundled_scene' method. + + + + + Cached name for the '_get_bundled_scene' method. + + + + + Cached name for the 'get_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton used to load resource files from the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine. + Note: You have to import the files into the engine first to load them using . If you want to load s at run-time, you may use . If you want to import audio files, you can use the snippet described in . + Note: Non-resource files such as plain text files cannot be read using . Use for those files instead, and be aware that non-resource files are not exported by default (see notes in the class description for instructions on exporting them). + + + + + Loads a resource at the given , caching the result + for further access. + The registered instances are queried sequentially + to find the first one which can handle the file's extension, and then attempt + loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional can be used to further specify the + type that should be handled by the . + Anything that inherits from can be used as a type hint, + for example . + The property defines whether and how the cache should + be used or updated when loading the resource. See for details. + Returns an empty resource if no could handle the file. + + + The loaded resource can't be casted to the given type . + + The type to cast to. Should be a descendant of . + + + + The resource is invalid, or has not been loaded with . + + + + + The resource is still being loaded. + + + + + Some error occurred during loading and it failed. + + + + + The resource was loaded successfully and can be accessed via . + + + + + Neither the main resource (the one requested to be loaded) nor any of its subresources are retrieved from cache nor stored into it. Dependencies (external resources) are loaded with . + + + + + The main resource (the one requested to be loaded), its subresources, and its dependencies (external resources) are retrieved from cache if present, instead of loaded. Those not cached are loaded and then stored into the cache. The same rules are propagated recursively down the tree of dependencies (external resources). + + + + + Like , but the cache is checked for the main resource (the one requested to be loaded) as well as for each of its subresources. Those already in the cache, as long as the loaded and cached types match, have their data refreshed from storage into the already existing instances. Otherwise, they are recreated as completely new objects. + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + Loads the resource using threads. If is , multiple threads will be used to load the resource, which makes loading faster, but may affect the main thread (and thus cause game slowdowns). + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + + + + + Returns the status of a threaded loading operation started with for the resource at . See for possible return values. + An array variable can optionally be passed via , and will return a one-element array containing the ratio of completion of the threaded loading (between 0.0 and 1.0). + Note: The recommended way of using this method is to call it during different frames (e.g., in , instead of a loop). + + + + + Returns the resource loaded by . + If this is called before the loading thread is done (i.e. is not ), the calling thread will be blocked until the resource has finished loading. However, it's recommended to use to known when the load has actually completed. + + + + + Loads a resource at the given , caching the result for further access. + The registered s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + Returns an empty resource if no could handle the file, and prints an error if no file is found at the specified path. + GDScript has a simplified @GDScript.load built-in method which can be used in most situations, leaving the use of for more advanced scenarios. + Note: If ProjectSettings.editor/export/convert_text_resources_to_binary is , @GDScript.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 . + Note: Relative paths will be prefixed with "res://" before loading, to avoid unexpected results make sure your paths are absolute. + + + + + Returns the list of recognized extensions for a resource type. + + + + + Registers a new . The ResourceLoader will use the ResourceFormatLoader as described in . + This method is performed implicitly for ResourceFormatLoaders written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Changes the behavior on missing sub-resources. The default behavior is to abort loading. + + + + + Returns the dependencies for the resource at the given . + Note: The dependencies are returned with slices separated by ::. You can use String.get_slice to get their components. + + for dep in ResourceLoader.get_dependencies(path): + print(dep.get_slice("::", 0)) # Prints UID. + print(dep.get_slice("::", 2)) # Prints path. + + + + + + Returns whether a cached resource is available for the given . + Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the method will use the cached version. The cached resource can be overridden by using on a new resource for that same path. + + + + + Returns the cached resource reference for the given . + Note: If the resource is not cached, the returned will be invalid. + + + + + Returns whether a recognized resource exists for the given . + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + Note: If you use , this method will return for the taken path even if the resource wasn't saved (i.e. exists only in resource cache). + + + + + Returns the ID associated with a given resource path, or -1 when no such ID exists. + + + + + Lists a directory (as example: "res://assets/enemies"), returning all resources contained within. The resource files are the original file names as visible in the editor before exporting. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_threaded_request' method. + + + + + Cached name for the 'load_threaded_get_status' method. + + + + + Cached name for the 'load_threaded_get' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_recognized_extensions_for_type' method. + + + + + Cached name for the 'add_resource_format_loader' method. + + + + + Cached name for the 'remove_resource_format_loader' method. + + + + + Cached name for the 'set_abort_on_missing_resources' method. + + + + + Cached name for the 'get_dependencies' method. + + + + + Cached name for the 'has_cached' method. + + + + + Cached name for the 'get_cached_ref' method. + + + + + Cached name for the 'exists' method. + + + + + Cached name for the 'get_resource_uid' method. + + + + + Cached name for the 'list_directory' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Godot's global functions. + + + + + Decodes a byte array back to a value, without decoding objects. + Note: If you need object deserialization, see . + + Byte array that will be decoded to a . + The decoded . + + + + Decodes a byte array back to a value. Decoding objects is allowed. + Warning: Deserialized object can contain code which gets executed. Do not use this + option if the serialized object comes from untrusted sources to avoid potential security + threats (remote code execution). + + Byte array that will be decoded to a . + The decoded . + + + + Converts to in the best way possible. + The parameter uses the values. + + + + Variant a = new Godot.Collections.Array { 4, 2.5, 1.2 }; + GD.Print(a.VariantType == Variant.Type.Array); // Prints true + + var b = GD.Convert(a, Variant.Type.PackedByteArray); + GD.Print(b); // Prints [4, 2, 1] + GD.Print(b.VariantType == Variant.Type.Array); // Prints false + + + The Variant converted to the given . + + + + Returns the integer hash of the passed . + + + + GD.Print(GD.Hash("a")); // Prints 177670 + + + Variable that will be hashed. + Hash of the variable passed. + + + + Loads a resource from the filesystem located at . + The resource is loaded on the method call (unless it's referenced already + elsewhere, e.g. in another script or in the scene), which might cause slight delay, + especially when loading scenes. To avoid unnecessary delays when loading something + multiple times, either store the resource in a variable. + + 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 script. + + Important: The path must be absolute, a local path will just return . + This method is a simplified version of , which can be used + for more advanced scenarios. + + + + // Load a scene called main located in the root of the project directory and cache it in a variable. + var main = GD.Load("res://main.tscn"); // main will contain a PackedScene resource. + + + Path of the to load. + The loaded . + + + + Loads a resource from the filesystem located at . + The resource is loaded on the method call (unless it's referenced already + elsewhere, e.g. in another script or in the scene), which might cause slight delay, + especially when loading scenes. To avoid unnecessary delays when loading something + multiple times, either store the resource in a variable. + + 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 script. + + Important: The path must be absolute, a local path will just return . + This method is a simplified version of , which can be used + for more advanced scenarios. + + + + // Load a scene called main located in the root of the project directory and cache it in a variable. + var main = GD.Load<PackedScene>("res://main.tscn"); // main will contain a PackedScene resource. + + + Path of the to load. + The type to cast to. Should be a descendant of . + + + + Prints a message to the console. + + Note: Consider using and + to print error and warning messages instead of . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + Message that will be printed. + + + + Converts one or more arguments of any type to string in the best way possible + and prints them to the console. + + Note: Consider using and + to print error and warning messages instead of . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + + + var a = new Godot.Collections.Array { 1, 2, 3 }; + GD.Print("a", "b", a); // Prints ab[1, 2, 3] + + + Arguments that will be printed. + + + + Prints a message to the console. + The following BBCode tags are supported: b, i, u, s, indent, code, url, center, + right, color, bgcolor, fgcolor. + Color tags only support named colors such as red, not hexadecimal color codes. + Unsupported tags will be left as-is in standard output. + When printing to standard output, the supported subset of BBCode is converted to + ANSI escape codes for the terminal emulator to display. Displaying ANSI escape codes + is currently only supported on Linux and macOS. Support for ANSI escape codes may vary + across terminal emulators, especially for italic and strikethrough. + + Note: Consider using and + to print error and warning messages instead of or + . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + Message that will be printed. + + + + Converts one or more arguments of any type to string in the best way possible + and prints them to the console. + The following BBCode tags are supported: b, i, u, s, indent, code, url, center, + right, color, bgcolor, fgcolor. + Color tags only support named colors such as red, not hexadecimal color codes. + Unsupported tags will be left as-is in standard output. + When printing to standard output, the supported subset of BBCode is converted to + ANSI escape codes for the terminal emulator to display. Displaying ANSI escape codes + is currently only supported on Linux and macOS. Support for ANSI escape codes may vary + across terminal emulators, especially for italic and strikethrough. + + Note: Consider using and + to print error and warning messages instead of or + . + This distinguishes them from print messages used for debugging purposes, + while also displaying a stack trace when an error or warning is printed. + + + + GD.PrintRich("[code][b]Hello world![/b][/code]"); // Prints out: [b]Hello world![/b] + + + Arguments that will be printed. + + + + Prints a message to standard error line. + + Message that will be printed. + + + + Prints one or more arguments to strings in the best way possible to standard error line. + + + + GD.PrintErr("prints to stderr"); + + + Arguments that will be printed. + + + + Prints a message to the OS terminal. + Unlike , no newline is added at the end. + + Message that will be printed. + + + + Prints one or more arguments to strings in the best way possible to the OS terminal. + Unlike , no newline is added at the end. + + + + GD.PrintRaw("A"); + GD.PrintRaw("B"); + GD.PrintRaw("C"); + // Prints ABC to terminal + + + Arguments that will be printed. + + + + Prints one or more arguments to the console with a space between each argument. + + + + GD.PrintS("A", "B", "C"); // Prints A B C + + + Arguments that will be printed. + + + + Prints one or more arguments to the console with a tab between each argument. + + + + GD.PrintT("A", "B", "C"); // Prints A B C + + + Arguments that will be printed. + + + + Pushes an error message to Godot's built-in debugger and to the OS terminal. + + Note: Errors printed this way will not pause project execution. + + + + GD.PushError("test error"); // Prints "test error" to debugger and terminal as error call + + + Error message. + + + + Pushes an error message to Godot's built-in debugger and to the OS terminal. + + Note: Errors printed this way will not pause project execution. + + + + GD.PushError("test_error"); // Prints "test error" to debugger and terminal as error call + + + Arguments that form the error message. + + + + Pushes a warning message to Godot's built-in debugger and to the OS terminal. + + + + GD.PushWarning("test warning"); // Prints "test warning" to debugger and terminal as warning call + + + Warning message. + + + + Pushes a warning message to Godot's built-in debugger and to the OS terminal. + + + + GD.PushWarning("test warning"); // Prints "test warning" to debugger and terminal as warning call + + + Arguments that form the warning message. + + + + Returns a random floating point value between 0.0 and 1.0 (inclusive). + + + + GD.Randf(); // Returns e.g. 0.375671 + + + A random number. + + + + Returns a normally-distributed pseudo-random floating point value + using Box-Muller transform with the specified + and a standard . + This is also called Gaussian distribution. + + A random normally-distributed number. + + + + Returns a random unsigned 32-bit integer. + Use remainder to obtain a random value in the interval [0, N - 1] + (where N is smaller than 2^32). + + + + GD.Randi(); // Returns random integer between 0 and 2^32 - 1 + GD.Randi() % 20; // Returns random integer between 0 and 19 + GD.Randi() % 100; // Returns random integer between 0 and 99 + GD.Randi() % 100 + 1; // Returns random integer between 1 and 100 + + + A random number. + + + + Randomizes the seed (or the internal state) of the random number generator. + The current implementation uses a number based on the device's time. + + Note: This method is called automatically when the project is run. + If you need to fix the seed to have consistent, reproducible results, + use to initialize the random number generator. + + + + + Returns a random floating point value between + and (inclusive). + + + + GD.RandRange(0.0, 20.5); // Returns e.g. 7.45315 + GD.RandRange(-10.0, 10.0); // Returns e.g. -3.844535 + + + A random number inside the given range. + + + + Returns a random signed 32-bit integer between + and (inclusive). If is lesser than + , they are swapped. + + + + GD.RandRange(0, 1); // Returns either 0 or 1 + GD.RandRange(-10, 1000); // Returns random integer between -10 and 1000 + + + A random number inside the given range. + + + + Given a , returns a randomized + value. The may be modified. + Passing the same consistently returns the same value. + + Note: "Seed" here refers to the internal state of the pseudo random number + generator, currently implemented as a 64 bit integer. + + + + var a = GD.RandFromSeed(4); + + + + Seed to use to generate the random number. + If a different seed is used, its value will be modified. + + A random number. + + + + Returns a that iterates from + 0 (inclusive) to (exclusive) + in steps of 1. + + The last index. + + + + Returns a that iterates from + (inclusive) to (exclusive) + in steps of 1. + + The first index. + The last index. + + + + Returns a that iterates from + (inclusive) to (exclusive) + in steps of . + The argument can be negative, but not 0. + + + is 0. + + The first index. + The last index. + The amount by which to increment the index on each iteration. + + + + Sets seed for the random number generator to . + Setting the seed manually can ensure consistent, repeatable results for + most random functions. + + + + ulong mySeed = (ulong)GD.Hash("Godot Rocks"); + GD.Seed(mySeed); + var a = GD.Randf() + GD.Randi(); + GD.Seed(mySeed); + var b = GD.Randf() + GD.Randi(); + // a and b are now identical + + + Seed that will be used. + + + + Converts a formatted string that was returned by + to the original value. + + + + string a = "{ \"a\": 1, \"b\": 2 }"; // a is a string + var b = GD.StrToVar(a).AsGodotDictionary(); // b is a Dictionary + GD.Print(b["a"]); // Prints 1 + + + String that will be converted to Variant. + The decoded Variant. + + + + Encodes a value to a byte array, without encoding objects. + Deserialization can be done with . + Note: If you need object serialization, see . + + that will be encoded. + The encoded as an array of bytes. + + + + Encodes a . Encoding objects is allowed (and can potentially + include executable code). Deserialization can be done with . + + that will be encoded. + The encoded as an array of bytes. + + + + Converts a to a formatted string that + can later be parsed using . + + + + var a = new Godot.Collections.Dictionary { ["a"] = 1, ["b"] = 2 }; + GD.Print(GD.VarToStr(a)); + // Prints: + // { + // "a": 1, + // "b": 2 + // } + + + Variant that will be converted to string. + The encoded as a string. + + + + Get the that corresponds for the given . + + The for the given . + + + + Returns true if this byte array is empty or doesn't exist. + + The byte array check. + Whether or not the array is empty. + + + + Converts this byte array to a string delimited by the given string. + + The byte array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this byte array to a string with brackets. + + The byte array to convert. + A single string with all items. + + + + Returns true if this int array is empty or doesn't exist. + + The int array check. + Whether or not the array is empty. + + + + Converts this int array to a string delimited by the given string. + + The int array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this int array to a string with brackets. + + The int array to convert. + A single string with all items. + + + + Returns true if this long array is empty or doesn't exist. + + The long array check. + Whether or not the array is empty. + + + + Converts this long array to a string delimited by the given string. + + The long array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this long array to a string with brackets. + + The long array to convert. + A single string with all items. + + + + Returns true if this float array is empty or doesn't exist. + + The float array check. + Whether or not the array is empty. + + + + Converts this float array to a string delimited by the given string. + + The float array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this float array to a string with brackets. + + The float array to convert. + A single string with all items. + + + + Returns true if this double array is empty or doesn't exist. + + The double array check. + Whether or not the array is empty. + + + + Converts this double array to a string delimited by the given string. + + The double array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this double array to a string with brackets. + + The double array to convert. + A single string with all items. + + + + Returns true if this string array is empty or doesn't exist. + + The string array check. + Whether or not the array is empty. + + + + Converts this string array to a string delimited by the given string. + + The string array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this string array to a string with brackets. + + The string array to convert. + A single string with all items. + + + + Returns true if this Color array is empty or doesn't exist. + + The Color array check. + Whether or not the array is empty. + + + + Converts this Color array to a string delimited by the given string. + + The Color array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Color array to a string with brackets. + + The Color array to convert. + A single string with all items. + + + + Returns true if this Vector2 array is empty or doesn't exist. + + The Vector2 array check. + Whether or not the array is empty. + + + + Converts this Vector2 array to a string delimited by the given string. + + The Vector2 array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector2 array to a string with brackets. + + The Vector2 array to convert. + A single string with all items. + + + + Returns true if this Vector2I array is empty or doesn't exist. + + The Vector2I array check. + Whether or not the array is empty. + + + + Converts this Vector2I array to a string delimited by the given string. + + The Vector2I array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector2I array to a string with brackets. + + The Vector2I array to convert. + A single string with all items. + + + + Returns true if this Vector3 array is empty or doesn't exist. + + The Vector3 array check. + Whether or not the array is empty. + + + + Converts this Vector3 array to a string delimited by the given string. + + The Vector3 array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector3 array to a string with brackets. + + The Vector3 array to convert. + A single string with all items. + + + + Returns true if this Vector3I array is empty or doesn't exist. + + The Vector3I array check. + Whether or not the array is empty. + + + + Converts this Vector3I array to a string delimited by the given string. + + The Vector3I array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector3I array to a string with brackets. + + The Vector3I array to convert. + A single string with all items. + + + + Returns true if this Vector4 array is empty or doesn't exist. + + The Vector4 array check. + Whether or not the array is empty. + + + + Converts this Vector4 array to a string delimited by the given string. + + The Vector4 array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector4 array to a string with brackets. + + The Vector4 array to convert. + A single string with all items. + + + + Returns true if this Vector4I array is empty or doesn't exist. + + The Vector4I array check. + Whether or not the array is empty. + + + + Converts this Vector4I array to a string delimited by the given string. + + The Vector4I array to convert. + The delimiter to use between items. + A single string with all items. + + + + Converts this Vector4I array to a string with brackets. + + The Vector4I array to convert. + A single string with all items. + + + + Calls the Key method on each workItem object in the _queue to activate their callbacks. + + + + + GodotTaskScheduler contains a linked list of tasks to perform as a queue. Methods + within the class are used to control the queue and perform the contained tasks. + + + + + The current synchronization context. + + + + + The queue of tasks for the task scheduler. + + + + + Constructs a new GodotTaskScheduler instance. + + + + + Executes all queued tasks and pending tasks from the current context. + + + + + Loops through and attempts to execute each task in _tasks. + + + + + + An interface that requires a GetAwaiter() method to get a reference to the Awaiter. + + + + + A templated interface that requires a GetAwaiter() method to get a reference to the Awaiter. + + A reference to the result to be passed out. + + + + An interface that requires a boolean for completion status and a method that gets the result of completion. + + + + + A templated interface that requires a boolean for completion status and a method that gets the result of completion and returns it. + + A reference to the result to be passed out. + + + + Allows a GodotObject to react to the serialization/deserialization + that occurs when Godot reloads assemblies. + + + + + Executed before serializing this instance's state when reloading assemblies. + Clear any data that should not be serialized. + + + + + Executed after deserializing this instance's state after reloading assemblies. + Restore any state that has been lost. + + + + + Provides constants and static methods for common mathematical functions. + + + + + The circle constant, the circumference of the unit circle in radians. + + + + + Constant that represents how many times the diameter of a circle + fits around its perimeter. This is equivalent to Mathf.Tau / 2. + + + + + Positive infinity. For negative infinity, use -Mathf.Inf. + + + + + "Not a Number", an invalid value. NaN has special properties, including + that it is not equal to itself. It is output by some invalid operations, + such as dividing zero by zero. + + + + + Returns the absolute value of (i.e. positive value). + + The input number. + The absolute value of . + + + + Returns the absolute value of (i.e. positive value). + + The input number. + The absolute value of . + + + + Returns the absolute value of (i.e. positive value). + + The input number. + The absolute value of . + + + + Returns the arc cosine of in radians. + Use to get the angle of cosine . + + The input cosine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given cosine value. On the range 0 to Tau/2. + + + + + Returns the arc cosine of in radians. + Use to get the angle of cosine . + + The input cosine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given cosine value. On the range 0 to Tau/2. + + + + + Returns the hyperbolic arc (also called inverse) cosine of in radians. + Use it to get the angle from an angle's cosine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic cosine value. + + An angle that would result in the given hyperbolic cosine value. + + + + + Returns the hyperbolic arc (also called inverse) cosine of in radians. + Use it to get the angle from an angle's cosine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic cosine value. + + An angle that would result in the given hyperbolic cosine value. + + + + + Returns the difference between the two angles, + in range of -, . + When and are opposite, + returns - if is smaller than , + or otherwise. + + The start angle. + The destination angle. + The difference between the two angles. + + + + Returns the difference between the two angles, + in range of -, . + When and are opposite, + returns - if is smaller than , + or otherwise. + + The start angle. + The destination angle. + The difference between the two angles. + + + + Returns the arc sine of in radians. + Use to get the angle of sine . + + The input sine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given sine value. On the range -Tau/4 to Tau/4. + + + + + Returns the arc sine of in radians. + Use to get the angle of sine . + + The input sine value. Must be on the range of -1.0 to 1.0. + + An angle that would result in the given sine value. On the range -Tau/4 to Tau/4. + + + + + Returns the hyperbolic arc (also called inverse) sine of in radians. + Use it to get the angle from an angle's sine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic sine value. + + An angle that would result in the given hyperbolic sine value. + + + + + Returns the hyperbolic arc (also called inverse) sine of in radians. + Use it to get the angle from an angle's sine in hyperbolic space if + is larger or equal to 1. + + The input hyperbolic sine value. + + An angle that would result in the given hyperbolic sine value. + + + + + Returns the arc tangent of in radians. + Use to get the angle of tangent . + + The method cannot know in which quadrant the angle should fall. + See if you have both y and x. + + The input tangent value. + + An angle that would result in the given tangent value. On the range -Tau/4 to Tau/4. + + + + + Returns the arc tangent of in radians. + Use to get the angle of tangent . + + The method cannot know in which quadrant the angle should fall. + See if you have both y and x. + + The input tangent value. + + An angle that would result in the given tangent value. On the range -Tau/4 to Tau/4. + + + + + Returns the arc tangent of and in radians. + Use to get the angle of the tangent of 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. + + The Y coordinate of the point to find the angle to. + The X coordinate of the point to find the angle to. + + An angle that would result in the given tangent value. On the range -Tau/2 to Tau/2. + + + + + Returns the arc tangent of and in radians. + Use to get the angle of the tangent of 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. + + The Y coordinate of the point to find the angle to. + The X coordinate of the point to find the angle to. + + An angle that would result in the given tangent value. On the range -Tau/2 to Tau/2. + + + + + Returns the hyperbolic arc (also called inverse) tangent of in radians. + Use it to get the angle from an angle's tangent in hyperbolic space if + is between -1 and 1 (non-inclusive). + + The input hyperbolic tangent value. + + An angle that would result in the given hyperbolic tangent value. + + + + + Returns the hyperbolic arc (also called inverse) tangent of in radians. + Use it to get the angle from an angle's tangent in hyperbolic space if + is between -1 and 1 (non-inclusive). + + The input hyperbolic tangent value. + + An angle that would result in the given hyperbolic tangent value. + + + + + Rounds upward (towards positive infinity). + + The number to ceil. + The smallest whole number that is not less than . + + + + Rounds upward (towards positive infinity). + + The number to ceil. + The smallest whole number that is not less than . + + + + Clamps a so that it is not less than + and not more than . + + The value to clamp. + The minimum allowed value. + The maximum allowed value. + The clamped value. + + + + Clamps a so that it is not less than + and not more than . + + The value to clamp. + The minimum allowed value. + The maximum allowed value. + The clamped value. + + + + Clamps a so that it is not less than + and not more than . + + The value to clamp. + The minimum allowed value. + The maximum allowed value. + The clamped value. + + + + Returns the cosine of angle in radians. + + The angle in radians. + The cosine of that angle. + + + + Returns the cosine of angle in radians. + + The angle in radians. + The cosine of that angle. + + + + Returns the hyperbolic cosine of angle in radians. + + The angle in radians. + The hyperbolic cosine of that angle. + + + + Returns the hyperbolic cosine of angle in radians. + + The angle in radians. + The hyperbolic cosine of that angle. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Cubic interpolates between two values by the factor defined in + with pre and post values. + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Cubic interpolates between two rotation values with shortest path + by the factor defined in with pre and post values. + See also . + It can perform smoother interpolation than + + by the time values. + + The start value for interpolation. + The destination value for interpolation. + The value which before "from" value for interpolation. + The value which after "to" value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The resulting value of the interpolation. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the derivative at the given on a one dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the derivative at the given on a one dimensional Bezier curve defined by + the given , , and points. + + The start value for the interpolation. + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Converts from decibels to linear energy (audio). + + + Decibels to convert. + Audio volume as linear energy. + + + + Converts from decibels to linear energy (audio). + + + Decibels to convert. + Audio volume as linear energy. + + + + Converts an angle expressed in degrees to radians. + + An angle expressed in degrees. + The same angle expressed in radians. + + + + Converts an angle expressed in degrees to radians. + + An angle expressed in degrees. + The same angle expressed in radians. + + + + Easing function, based on exponent. The values are: + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + Negative values are in-out/out-in. + + The value to ease. + + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + + The eased value. + + + + Easing function, based on exponent. The values are: + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + Negative values are in-out/out-in. + + The value to ease. + + 0 is constant, 1 is linear, 0 to 1 is ease-in, 1 or more is ease-out. + + The eased value. + + + + The natural exponential function. It raises the mathematical + constant e to the power of and returns it. + + The exponent to raise e to. + e raised to the power of . + + + + The natural exponential function. It raises the mathematical + constant e to the power of and returns it. + + The exponent to raise e to. + e raised to the power of . + + + + Rounds downward (towards negative infinity). + + The number to floor. + The largest whole number that is not more than . + + + + Rounds downward (towards negative infinity). + + The number to floor. + The largest whole number that is not more than . + + + + Returns a normalized value considering the given range. + This is the opposite of . + + The start value for interpolation. + The destination value for interpolation. + The interpolated value. + + The resulting value of the inverse interpolation. + The returned value will be between 0.0 and 1.0 if is + between and (inclusive). + + + + + Returns a normalized value considering the given range. + This is the opposite of . + + The start value for interpolation. + The destination value for interpolation. + The interpolated value. + + The resulting value of the inverse interpolation. + The returned value will be between 0.0 and 1.0 if is + between and (inclusive). + + + + + Returns if and are approximately equal + to each other. + The comparison is done using a tolerance calculation with . + + One of the values. + The other value. + A for whether or not the two values are approximately equal. + + + + Returns if and are approximately equal + to each other. + The comparison is done using a tolerance calculation with . + + One of the values. + The other value. + A for whether or not the two values are approximately equal. + + + + Returns whether is a finite value, i.e. it is not + , positive infinite, or negative infinity. + + The value to check. + A for whether or not the value is a finite value. + + + + Returns whether is a finite value, i.e. it is not + , positive infinite, or negative infinity. + + The value to check. + A for whether or not the value is a finite value. + + + + Returns whether is an infinity value (either positive infinity or negative infinity). + + The value to check. + A for whether or not the value is an infinity value. + + + + Returns whether is an infinity value (either positive infinity or negative infinity). + + The value to check. + A for whether or not the value is an infinity value. + + + + Returns whether is a NaN ("Not a Number" or invalid) value. + + The value to check. + A for whether or not the value is a NaN value. + + + + Returns whether is a NaN ("Not a Number" or invalid) value. + + The value to check. + A for whether or not the value is a NaN value. + + + + Returns if is zero or almost zero. + The comparison is done using a tolerance calculation with . + + This method is faster than using with + one value as zero. + + The value to check. + A for whether or not the value is nearly zero. + + + + Returns if is zero or almost zero. + The comparison is done using a tolerance calculation with . + + This method is faster than using with + one value as zero. + + The value to check. + A for whether or not the value is nearly zero. + + + + Linearly interpolates between two values by a normalized value. + This is the opposite . + + The start value for interpolation. + The destination value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Linearly interpolates between two values by a normalized value. + This is the opposite . + + The start value for interpolation. + The destination value for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Linearly interpolates between two angles (in radians) by a normalized value. + + Similar to , + but interpolates correctly when the angles wrap around . + + The start angle for interpolation. + The destination angle for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting angle of the interpolation. + + + + Linearly interpolates between two angles (in radians) by a normalized value. + + Similar to , + but interpolates correctly when the angles wrap around . + + The start angle for interpolation. + The destination angle for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting angle of the interpolation. + + + + Converts from linear energy to decibels (audio). + This can be used to implement volume sliders that behave as expected (since volume isn't linear). + + + + + // "slider" refers to a node that inherits Range such as HSlider or VSlider. + // Its range must be configured to go from 0 to 1. + // Change the bus name if you'd like to change the volume of a specific bus only. + AudioServer.SetBusVolumeDb(AudioServer.GetBusIndex("Master"), GD.LinearToDb(slider.value)); + + + The linear energy to convert. + Audio as decibels. + + + + Converts from linear energy to decibels (audio). + This can be used to implement volume sliders that behave as expected (since volume isn't linear). + + + + + // "slider" refers to a node that inherits Range such as HSlider or VSlider. + // Its range must be configured to go from 0 to 1. + // Change the bus name if you'd like to change the volume of a specific bus only. + AudioServer.SetBusVolumeDb(AudioServer.GetBusIndex("Master"), GD.LinearToDb(slider.value)); + + + The linear energy to convert. + Audio as decibels. + + + + Natural logarithm. 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. + + The input value. + The natural log of . + + + + Natural logarithm. 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. + + The input value. + The natural log of . + + + + Returns the maximum of two values. + + One of the values. + The other value. + Whichever of the two values is higher. + + + + Returns the maximum of two values. + + One of the values. + The other value. + Whichever of the two values is higher. + + + + Returns the maximum of two values. + + One of the values. + The other value. + Whichever of the two values is higher. + + + + Returns the minimum of two values. + + One of the values. + The other value. + Whichever of the two values is lower. + + + + Returns the minimum of two values. + + One of the values. + The other value. + Whichever of the two values is lower. + + + + Returns the minimum of two values. + + One of the values. + The other value. + Whichever of the two values is lower. + + + + Moves toward by the value. + + Use a negative value to move away. + + The start value. + The value to move towards. + The amount to move by. + The value after moving. + + + + Moves toward by the value. + + Use a negative value to move away. + + The start value. + The value to move towards. + The amount to move by. + The value after moving. + + + + Returns the nearest larger power of 2 for the integer . + + The input value. + The nearest larger power of 2. + + + + Performs a canonical Modulus operation, where the output is on the range [0, ). + + The dividend, the primary input. + The divisor. The output is on the range [0, ). + The resulting output. + + + + Performs a canonical Modulus operation, where the output is on the range [0, ). + + The dividend, the primary input. + The divisor. The output is on the range [0, ). + The resulting output. + + + + Performs a canonical Modulus operation, where the output is on the range [0, ). + + The dividend, the primary input. + The divisor. The output is on the range [0, ). + The resulting output. + + + + Returns the result of raised to the power of . + + The base. + The exponent. + raised to the power of . + + + + Returns the result of raised to the power of . + + The base. + The exponent. + raised to the power of . + + + + Converts an angle expressed in radians to degrees. + + An angle expressed in radians. + The same angle expressed in degrees. + + + + Converts an angle expressed in radians to degrees. + + An angle expressed in radians. + The same angle expressed in degrees. + + + + Maps a from [, ] + to [, ]. + + The value to map. + The start value for the input interpolation. + The destination value for the input interpolation. + The start value for the output interpolation. + The destination value for the output interpolation. + The resulting mapped value mapped. + + + + Maps a from [, ] + to [, ]. + + The value to map. + The start value for the input interpolation. + The destination value for the input interpolation. + The start value for the output interpolation. + The destination value for the output interpolation. + The resulting mapped value mapped. + + + + Rotates toward by the amount. Will not go past . + Similar to but interpolates correctly when the angles wrap around . + If is negative, this function will rotate away from , toward the opposite angle, and will not go past the opposite angle. + + The start angle. + The angle to move towards. + The amount to move by. + The angle after moving. + + + + Rotates toward by the amount. Will not go past . + Similar to but interpolates correctly when the angles wrap around . + If is negative, this function will rotate away from , toward the opposite angle, and will not go past the opposite angle. + + The start angle. + The angle to move towards. + The amount to move by. + The angle after moving. + + + + Rounds to the nearest whole number, + with halfway cases rounded towards the nearest multiple of two. + + The number to round. + The rounded number. + + + + Rounds to the nearest whole number, + with halfway cases rounded towards the nearest multiple of two. + + The number to round. + The rounded number. + + + + Returns the sign of : -1 or 1. + Returns 0 if is 0. + + The input number. + One of three possible values: 1, -1, or 0. + + + + Returns the sign of : -1 or 1. + Returns 0 if is 0. + + The input number. + One of three possible values: 1, -1, or 0. + + + + Returns the sign of : -1 or 1. + Returns 0 if is 0. + + The input number. + One of three possible values: 1, -1, or 0. + + + + Returns the sine of angle in radians. + + The angle in radians. + The sine of that angle. + + + + Returns the sine of angle in radians. + + The angle in radians. + The sine of that angle. + + + + Returns the hyperbolic sine of angle in radians. + + The angle in radians. + The hyperbolic sine of that angle. + + + + Returns the hyperbolic sine of angle in radians. + + The angle in radians. + The hyperbolic sine of that angle. + + + + Returns a number smoothly interpolated between and , + based on the . Similar to , + but interpolates faster at the beginning and slower at the end. + + The start value for interpolation. + The destination value for interpolation. + A value representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns a number smoothly interpolated between and , + based on the . Similar to , + but interpolates faster at the beginning and slower at the end. + + The start value for interpolation. + The destination value for interpolation. + A value representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the square root of , where is a non-negative number. + + If you need negative inputs, use . + + The input number. Must not be negative. + The square root of . + + + + Returns the square root of , where is a non-negative number. + + If you need negative inputs, use . + + The input number. Must not be negative. + The square root of . + + + + 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. + + The input value. + The position of the first non-zero digit. + + + + Snaps float value to a given . + This can also be used to round a floating point number to an arbitrary number of decimals. + + The value to snap. + The step size to snap to. + The snapped value. + + + + Snaps float value to a given . + This can also be used to round a floating point number to an arbitrary number of decimals. + + The value to snap. + The step size to snap to. + The snapped value. + + + + Returns the tangent of angle in radians. + + The angle in radians. + The tangent of that angle. + + + + Returns the tangent of angle in radians. + + The angle in radians. + The tangent of that angle. + + + + Returns the hyperbolic tangent of angle in radians. + + The angle in radians. + The hyperbolic tangent of that angle. + + + + Returns the hyperbolic tangent of angle in radians. + + The angle in radians. + The hyperbolic tangent of that angle. + + + + Wraps between and . + Usable for creating loop-alike behavior or infinite surfaces. + If is 0, this is equivalent + to , so prefer using that instead. + + The value to wrap. + The minimum allowed value and lower bound of the range. + The maximum allowed value and upper bound of the range. + The wrapped value. + + + + Wraps between and . + Usable for creating loop-alike behavior or infinite surfaces. + If is 0, this is equivalent + to , so prefer using that instead. + + The value to wrap. + The minimum allowed value and lower bound of the range. + The maximum allowed value and upper bound of the range. + The wrapped value. + + + + Wraps between and . + Usable for creating loop-alike behavior or infinite surfaces. + If is 0, this is equivalent + to , so prefer using that instead. + + The value to wrap. + The minimum allowed value and lower bound of the range. + The maximum allowed value and upper bound of the range. + The wrapped value. + + + + Returns the wrapped between 0 and the . + If the limit is reached, the next value the function returned is decreased to the 0 side + or increased to the side (like a triangle wave). + If is less than zero, it becomes positive. + + The value to pingpong. + The maximum value of the function. + The ping-ponged value. + + + + Returns the wrapped between 0 and the . + If the limit is reached, the next value the function returned is decreased to the 0 side + or increased to the side (like a triangle wave). + If is less than zero, it becomes positive. + + The value to pingpong. + The maximum value of the function. + The ping-ponged value. + + + + The natural number e. + + + + + The square root of 2. + + + + + A very small number used for float comparison with error tolerance. + 1e-06 with single-precision floats, but 1e-14 if REAL_T_IS_DOUBLE. + + + + + Returns the amount of digits after the decimal place. + + The input value. + The amount of digits. + + + + Returns the amount of digits after the decimal place. + + The input value. + The amount of digits. + + + + Rounds upward (towards positive infinity). + + This is the same as , but returns an . + + The number to ceil. + The smallest whole number that is not less than . + + + + Rounds upward (towards positive infinity). + + This is the same as , but returns an . + + The number to ceil. + The smallest whole number that is not less than . + + + + Rounds downward (towards negative infinity). + + This is the same as , but returns an . + + The number to floor. + The largest whole number that is not more than . + + + + Rounds downward (towards negative infinity). + + This is the same as , but returns an . + + The number to floor. + The largest whole number that is not more than . + + + + Rounds to the nearest whole number. + + This is the same as , but returns an . + + The number to round. + The rounded number. + + + + Rounds to the nearest whole number. + + This is the same as , but returns an . + + The number to round. + The rounded number. + + + + Returns the sine and cosine of angle in radians. + + The angle in radians. + The sine and cosine of that angle. + + + + Returns the sine and cosine of angle in radians. + + The angle in radians. + The sine and cosine of that angle. + + + + Returns if and are approximately + equal to each other. + The comparison is done using the provided tolerance value. + If you want the tolerance to be calculated for you, use . + + One of the values. + The other value. + The pre-calculated tolerance value. + A for whether or not the two values are equal. + + + + Returns if and are approximately + equal to each other. + The comparison is done using the provided tolerance value. + If you want the tolerance to be calculated for you, use . + + One of the values. + The other value. + The pre-calculated tolerance value. + A for whether or not the two values are equal. + + + + Returns the number of arguments. + + + + + A pre-parsed relative or absolute path in a scene tree, + for use with and similar functions. + It can reference a node, a resource within a node, or a property + of a node or resource. + For instance, "Path2D/PathFollow2D/Sprite2D:texture:size" + would refer to the size property of the texture + resource on the node named "Sprite2D" which is a child of + the other named nodes in the path. + You will usually just pass a string to + and it will be automatically converted, but you may occasionally + want to parse a path ahead of time with NodePath. + Exporting a NodePath variable will give you a node selection widget + in the properties panel of the editor, which can often be useful. + A NodePath is composed of a list of slash-separated node names + (like a filesystem path) and an optional colon-separated list of + "subnames" which can be resources or properties. + + Note: In the editor, NodePath properties are automatically updated when moving, + renaming or deleting a node in the scene tree, but they are never updated at runtime. + + + Some examples of NodePaths include the following: + + // No leading slash means it is relative to the current node. + new NodePath("A"); // Immediate child A. + new NodePath("A/B"); // A's child B. + new NodePath("."); // The current node. + new NodePath(".."); // The parent node. + new NodePath("../C"); // A sibling node C. + // A leading slash means it is absolute from the SceneTree. + new NodePath("/root"); // Equivalent to GetTree().Root + new NodePath("/root/Main"); // If your main scene's root node were named "Main". + new NodePath("/root/MyAutoload"); // If you have an autoloaded node or scene. + + + + + + Disposes of this . + + + + + Constructs an empty . + + + + + Constructs a from a string , + e.g.: "Path2D/PathFollow2D/Sprite2D:texture:size". + A path is absolute if it starts with a slash. Absolute paths + are only valid in the global scene tree, not within individual + scenes. In a relative path, "." and ".." indicate + the current node and its parent. + The "subnames" optionally included after the path to the target + node can point to resources or properties, and can also be nested. + + + Examples of valid NodePaths (assuming that those nodes exist and + have the referenced resources or properties): + + // Points to the Sprite2D node. + "Path2D/PathFollow2D/Sprite2D" + // Points to the Sprite2D node and its "texture" resource. + // GetNode() would retrieve "Sprite2D", while GetNodeAndResource() + // would retrieve both the Sprite2D node and the "texture" resource. + "Path2D/PathFollow2D/Sprite2D:texture" + // Points to the Sprite2D node and its "position" property. + "Path2D/PathFollow2D/Sprite2D:position" + // Points to the Sprite2D node and the "x" component of its "position" property. + "Path2D/PathFollow2D/Sprite2D:position:x" + // Absolute path (from "root") + "/root/Level/Path2D" + + + A string that represents a path in a scene tree. + + + + Converts a string to a . + + The string to convert. + + + + Converts this to a string. + + The to convert. + + + + Converts this to a string. + + A string representation of this . + + + + Returns a node path with a colon character (:) prepended, + transforming it to a pure property path with no node name (defaults + to resolving from the current node). + + + + // This will be parsed as a node path to the "x" property in the "position" node. + var nodePath = new NodePath("position:x"); + // This will be parsed as a node path to the "x" component of the "position" property in the current node. + NodePath propertyPath = nodePath.GetAsPropertyPath(); + GD.Print(propertyPath); // :position:x + + + The as a pure property path. + + + + Returns all names concatenated with a slash character (/). + + + + var nodepath = new NodePath("Path2D/PathFollow2D/Sprite2D:texture:load_path"); + GD.Print(nodepath.GetConcatenatedNames()); // Path2D/PathFollow2D/Sprite2D + + + The names concatenated with /. + + + + Returns all subnames concatenated with a colon character (:) + as separator, i.e. the right side of the first colon in a node path. + + + + var nodepath = new NodePath("Path2D/PathFollow2D/Sprite2D:texture:load_path"); + GD.Print(nodepath.GetConcatenatedSubnames()); // texture:load_path + + + The subnames concatenated with :. + + + + Gets the node name indicated by (0 to ). + + + + var nodePath = new NodePath("Path2D/PathFollow2D/Sprite2D"); + GD.Print(nodePath.GetName(0)); // Path2D + GD.Print(nodePath.GetName(1)); // PathFollow2D + GD.Print(nodePath.GetName(2)); // Sprite + + + The name index. + The name at the given index . + + + + Gets the number of node names which make up the path. + Subnames (see ) are not included. + For example, "Path2D/PathFollow2D/Sprite2D" has 3 names. + + The number of node names which make up the path. + + + + Gets the resource or property name indicated by (0 to ). + + The subname index. + The subname at the given index . + + + + Gets the number of resource or property names ("subnames") in the path. + Each subname is listed after a colon character (:) in the node path. + For example, "Path2D/PathFollow2D/Sprite2D:texture:load_path" has 2 subnames. + + The number of subnames in the path. + + + + Returns if the node path is absolute (as opposed to relative), + which means that it starts with a slash character (/). Absolute node paths can + be used to access the root node ("/root") or autoloads (e.g. "/global" + if a "global" autoload was registered). + + If the is an absolute path. + + + + Returns if the node path is empty. + + If the is empty. + + + + Plane represents a normalized plane equation. + "Over" or "Above" the plane is considered the side of + the plane towards where the normal is pointing. + + + + + The normal of the plane, which must be a unit vector. + In the scalar equation of the plane ax + by + cz = d, this is + the vector (a, b, c), where d is the property. + + Equivalent to , , and . + + + + The distance from the origin to the plane (in the direction of + ). This value is typically non-negative. + In the scalar equation of the plane ax + by + cz = d, + this is d, while the (a, b, c) coordinates are represented + by the property. + + The plane's distance from the origin. + + + + The X component of the plane's normal vector. + + Equivalent to 's X value. + + + + The Y component of the plane's normal vector. + + Equivalent to 's Y value. + + + + The Z component of the plane's normal vector. + + Equivalent to 's Z value. + + + + Returns the shortest distance from this plane to the position . + + The position to use for the calculation. + The shortest distance. + + + + Returns the center of the plane, the point on the plane closest to the origin. + The point where the normal line going through the origin intersects the plane. + + Equivalent to multiplied by . + + + + Returns if point is inside the plane. + Comparison uses a custom minimum tolerance threshold. + + The point to check. + The tolerance threshold. + A for whether or not the plane has the point. + + + + Returns the intersection point of the three planes: , , + and this plane. If no intersection is found, is returned. + + One of the three planes to use in the calculation. + One of the three planes to use in the calculation. + The intersection, or if none is found. + + + + Returns the intersection point of a ray consisting of the position + and the direction normal with this plane. + If no intersection is found, is returned. + + The start of the ray. + The direction of the ray, normalized. + The intersection, or if none is found. + + + + Returns the intersection point of a line segment from + position to position with this plane. + If no intersection is found, is returned. + + The start of the line segment. + The end of the line segment. + The intersection, or if none is found. + + + + Returns if this plane is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if is located above the plane. + + The point to check. + A for whether or not the point is above the plane. + + + + Returns the plane scaled to unit length. + + A normalized version of the plane. + + + + Returns the orthogonal projection of into the plane. + + The point to project. + The projected point. + + + + A that extends in the Y and Z axes (normal vector points +X). + + Equivalent to new Plane(1, 0, 0, 0). + + + + A that extends in the X and Z axes (normal vector points +Y). + + Equivalent to new Plane(0, 1, 0, 0). + + + + A that extends in the X and Y axes (normal vector points +Z). + + Equivalent to new Plane(0, 0, 1, 0). + + + + Constructs a from four values. + , and become the + components of the resulting plane's vector. + becomes the plane's distance from the origin. + + The X component of the plane's normal vector. + The Y component of the plane's normal vector. + The Z component of the plane's normal vector. + The plane's distance from the origin. This value is typically non-negative. + + + + Constructs a from a vector. + The plane will intersect the origin. + + The normal of the plane, must be a unit vector. + + + + Constructs a from a vector and + the plane's distance to the origin . + + The normal of the plane, must be a unit vector. + The plane's distance from the origin. This value is typically non-negative. + + + + Constructs a from a vector and + a on the plane. + + The normal of the plane, must be a unit vector. + The point on the plane. + + + + Constructs a from the three points, given in clockwise order. + + The first point. + The second point. + The third point. + + + + Returns the negative value of the . + This is the same as writing new Plane(-p.Normal, -p.D). + This operation flips the direction of the normal vector and + also flips the distance value, resulting in a Plane that is + in the same place, but facing the opposite direction. + + The plane to negate/flip. + The negated/flipped plane. + + + + Returns if the + s are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the planes are exactly equal. + + + + Returns if the + s are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the planes are not equal. + + + + Returns if this plane and are equal. + + The other object to compare. + Whether or not the plane and the other object are exactly equal. + + + + Returns if this plane and are equal. + + The other plane to compare. + Whether or not the planes are exactly equal. + + + + Returns if this plane and are + approximately equal, by running on each component. + + The other plane to compare. + Whether or not the planes are approximately equal. + + + + Serves as the hash function for . + + A hash code for this plane. + + + + Converts this to a string. + + A string representation of this plane. + + + + Converts this to a string with the given . + + A string representation of this plane. + + + + A 4x4 matrix used for 3D projective transformations. It can represent transformations such as + translation, rotation, scaling, shearing, and perspective division. It consists of four + columns. + For purely linear transformations (translation, rotation, and scale), it is recommended to use + , as it is more performant and has a lower memory footprint. + Used internally as 's projection matrix. + + + + + Enumerated index values for the planes. + + + + + The projection's near plane. + + + + + The projection's far plane. + + + + + The projection's left plane. + + + + + The projection's top plane. + + + + + The projection's right plane. + + + + + The projection's bottom plane. + + + + + The projection's X column. Also accessible by using the index position [0]. + + + + + The projection's Y column. Also accessible by using the index position [1]. + + + + + The projection's Z column. Also accessible by using the index position [2]. + + + + + The projection's W column. Also accessible by using the index position [3]. + + + + + Access whole columns in the form of . + + Which column vector. + + is not 0, 1, 2 or 3. + + + + + Access single values. + + Which column vector. + Which row of the column. + + or are not 0, 1, 2 or 3. + + + + + Creates a new that projects positions from a depth range of + -1 to 1 to one that ranges from 0 to 1, and flips the projected + positions vertically, according to . + + If the projection should be flipped vertically. + The created projection. + + + + Creates a new that scales a given projection to fit around + a given in projection space. + + The Aabb to fit the projection around. + The created projection. + + + + Creates a new for projecting positions onto a head-mounted display with + the given X:Y aspect ratio, distance between eyes, display width, distance to lens, oversampling factor, + and depth clipping planes. + creates the projection for the left eye when set to 1, + or the right eye when set to 2. + + + The eye to create the projection for. + The left eye when set to 1, the right eye when set to 2. + + The aspect ratio. + The distance between the eyes. + The display width. + The distance to the lens. + The oversampling factor. + The near clipping distance. + The far clipping distance. + The created projection. + + + + Creates a new that projects positions in a frustum with + the given clipping planes. + + The left clipping distance. + The right clipping distance. + The bottom clipping distance. + The top clipping distance. + The near clipping distance. + The far clipping distance. + The created projection. + + + + Creates a new that projects positions in a frustum with + the given size, X:Y aspect ratio, offset, and clipping planes. + determines whether the projection's field of view is flipped over its diagonal. + + The frustum size. + The aspect ratio. + The offset to apply. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + The created projection. + + + + Creates a new that projects positions into the given . + + The Rect2 to project positions into. + The created projection. + + + + Creates a new that projects positions using an orthogonal projection with + the given clipping planes. + + The left clipping distance. + The right clipping distance. + The bottom clipping distance. + The top clipping distance. + The near clipping distance. + The far clipping distance. + The created projection. + + + + Creates a new that projects positions using an orthogonal projection with + the given size, X:Y aspect ratio, and clipping planes. + determines whether the projection's field of view is flipped over its diagonal. + + The frustum size. + The aspect ratio. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + The created projection. + + + + Creates a new that projects positions using a perspective projection with + the given Y-axis field of view (in degrees), X:Y aspect ratio, and clipping planes. + determines whether the projection's field of view is flipped over its diagonal. + + The vertical field of view (in degrees). + The aspect ratio. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + The created projection. + + + + Creates a new that projects positions using a perspective projection with + the given Y-axis field of view (in degrees), X:Y aspect ratio, and clipping distances. + The projection is adjusted for a head-mounted display with the given distance between eyes and distance + to a point that can be focused on. + creates the projection for the left eye when set to 1, + or the right eye when set to 2. + determines whether the projection's field of view is flipped over its diagonal. + + The vertical field of view (in degrees). + The aspect ratio. + The near clipping distance. + The far clipping distance. + If the field of view is flipped over the projection's diagonal. + + The eye to create the projection for. + The left eye when set to 1, the right eye when set to 2. + + The distance between the eyes. + The distance to a point of convergence that can be focused on. + The created projection. + + + + Returns a scalar value that is the signed factor by which areas are scaled by this matrix. + If the sign is negative, the matrix flips the orientation of the area. + The determinant can be used to calculate the invertibility of a matrix or solve linear systems + of equations involving the matrix, among other applications. + + The determinant calculated from this projection. + + + + Returns the X:Y aspect ratio of this 's viewport. + + The aspect ratio from this projection's viewport. + + + + Returns the horizontal field of view of the projection (in degrees). + + The horizontal field of view of this projection. + + + + Returns the vertical field of view of the projection (in degrees) associated with + the given horizontal field of view (in degrees) and aspect ratio. + + The horizontal field of view (in degrees). + The aspect ratio. + The vertical field of view of this projection. + + + + Returns the factor by which the visible level of detail is scaled by this . + + The level of detail factor for this projection. + + + + Returns the number of pixels with the given pixel width displayed per meter, after + this is applied. + + The width for each pixel (in meters). + The number of pixels per meter. + + + + Returns the clipping plane of this whose index is given + by . + should be equal to one of , + , , , + , or . + + The kind of clipping plane to get from the projection. + The clipping plane of this projection. + + + + Returns the dimensions of the far clipping plane of the projection, divided by two. + + The half extents for this projection's far plane. + + + + Returns the dimensions of the viewport plane that this + projects positions onto, divided by two. + + The half extents for this projection's viewport plane. + + + + Returns the distance for this beyond which positions are clipped. + + The distance beyond which positions are clipped. + + + + Returns the distance for this before which positions are clipped. + + The distance before which positions are clipped. + + + + Returns a copy of this with the signs of the values of the Y column flipped. + + The flipped projection. + + + + Returns a with the near clipping distance adjusted to be + . + Note: The original must be a perspective projection. + + The near clipping distance to adjust the projection to. + The adjusted projection. + + + + Returns a with the X and Y values from the given + added to the first and second values of the final column respectively. + + The offset to apply to the projection. + The offsetted projection. + + + + Returns a that performs the inverse of this 's + projective transformation. + + The inverted projection. + + + + Returns if this performs an orthogonal projection. + + If the projection performs an orthogonal projection. + + + + Zero projection, a projection with all components set to 0. + + Equivalent to new Projection(Vector4.Zero, Vector4.Zero, Vector4.Zero, Vector4.Zero). + + + + The identity projection, with no distortion applied. + This is used as a replacement for Projection() in GDScript. + Do not use new Projection() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Projection(new Vector4(1, 0, 0, 0), new Vector4(0, 1, 0, 0), new Vector4(0, 0, 1, 0), new Vector4(0, 0, 0, 1)). + + + + Constructs a projection from 4 vectors (matrix columns). + + The X column, or column index 0. + The Y column, or column index 1. + The Z column, or column index 2. + The W column, or column index 3. + + + + Constructs a new from a . + + The . + + + + Composes these two projections by multiplying them + together. This has the effect of applying the right + and then the left projection. + + The parent transform. + The child transform. + The composed projection. + + + + Returns a Vector4 transformed (multiplied) by the projection. + + The projection to apply. + A Vector4 to transform. + The transformed Vector4. + + + + Returns a Vector4 transformed (multiplied) by the transpose of the projection. + For transforming by inverse of a projection projection.Inverse() * vector can be used instead. See . + + The projection to apply. + A Vector4 to transform. + The inversely transformed Vector4. + + + + Returns a Vector3 transformed (multiplied) by the projection. + + The projection to apply. + A Vector3 to transform. + The transformed Vector3. + + + + Returns if the projections are exactly equal. + + The left projection. + The right projection. + Whether or not the projections are exactly equal. + + + + Returns if the projections are not exactly equal. + + The left projection. + The right projection. + Whether or not the projections are not exactly equal. + + + + Constructs a new from the . + + The . + + + + Returns if the projection is exactly equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the projections are exactly equal. + + The other projection. + Whether or not the projections are exactly equal. + + + + Serves as the hash function for . + + A hash code for this projection. + + + + Converts this to a string. + + A string representation of this projection. + + + + Converts this to a string with the given . + + A string representation of this projection. + + + + A unit quaternion used for representing 3D rotations. + Quaternions need to be normalized to be used for rotation. + + It is similar to , which implements matrix + representation of rotations, and can be parametrized using both + an axis-angle pair or Euler angles. Basis stores rotation, scale, + and shearing, while Quaternion only stores rotation. + + Due to its compactness and the way it is stored in memory, certain + operations (obtaining axis-angle and performing SLERP, in particular) + are more efficient and robust against floating-point errors. + + + + + X component of the quaternion (imaginary i axis part). + Quaternion components should usually not be manipulated directly. + + + + + Y component of the quaternion (imaginary j axis part). + Quaternion components should usually not be manipulated directly. + + + + + Z component of the quaternion (imaginary k axis part). + Quaternion components should usually not be manipulated directly. + + + + + W component of the quaternion (real part). + Quaternion components should usually not be manipulated directly. + + + + + Access quaternion components using their index. + + + is not 0, 1, 2 or 3. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to , + [3] is equivalent to . + + + + + Returns the angle between this quaternion and . + This is the magnitude of the angle you would need to rotate + by to get from one to the other. + + Note: This method has an abnormally high amount + of floating-point error, so methods such as + will not work reliably. + + The other quaternion. + The angle between the quaternions. + + + + Performs a spherical cubic interpolation between quaternions , this quaternion, + , and , by the given amount . + + The destination quaternion. + A quaternion before this quaternion. + A quaternion after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated quaternion. + + + + Performs a spherical cubic interpolation between quaternions , this quaternion, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination quaternion. + A quaternion before this quaternion. + A quaternion after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated quaternion. + + + + Returns the dot product of two quaternions. + + The other quaternion. + The dot product. + + + + Returns Euler angles (in the YXZ convention: when decomposing, + first Z, then X, and Y last) corresponding to the rotation + represented by the unit quaternion. Returned vector contains + the rotation angles in the format (X angle, Y angle, Z angle). + + The Euler angle representation of this quaternion. + + + + Returns the inverse of the quaternion. + + The inverse quaternion. + + + + Returns if this quaternion is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns whether the quaternion is normalized or not. + + A for whether the quaternion is normalized or not. + + + + Returns the length (magnitude) of the quaternion. + + + Equivalent to Mathf.Sqrt(LengthSquared). + + + + Returns the squared length (squared magnitude) of the quaternion. + This method runs faster than , so prefer it if + you need to compare quaternions or need the squared length for some formula. + + Equivalent to Dot(this). + + + + Returns a copy of the quaternion, normalized to unit length. + + The normalized quaternion. + + + + Returns the result of the spherical linear interpolation between + this quaternion and by amount . + + Note: Both quaternions must be normalized. + + The destination quaternion for interpolation. Must be normalized. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting quaternion of the interpolation. + + + + Returns the result of the spherical linear interpolation between + this quaternion and by amount , but without + checking if the rotation path is not bigger than 90 degrees. + + The destination quaternion for interpolation. Must be normalized. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting quaternion of the interpolation. + + + + The identity quaternion, representing no rotation. + Equivalent to an identity matrix. If a vector is transformed by + an identity quaternion, it will not change. + + Equivalent to new Quaternion(0, 0, 0, 1). + + + + Constructs a defined by the given values. + + X component of the quaternion (imaginary i axis part). + Y component of the quaternion (imaginary j axis part). + Z component of the quaternion (imaginary k axis part). + W component of the quaternion (real part). + + + + Constructs a from the given . + + The to construct from. + + + + Constructs a that will rotate around the given axis + by the specified angle. The axis must be a normalized vector. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + + + + Constructs a that will perform a rotation specified by + Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), + given in the vector format as (X angle, Y angle, Z angle). + + Euler angles that the quaternion will be rotated by. + + + + Composes these two quaternions by multiplying them together. + This has the effect of rotating the second quaternion + (the child) by the first quaternion (the parent). + + The parent quaternion. + The child quaternion. + The composed quaternion. + + + + Returns a Vector3 rotated (multiplied) by the quaternion. + + The quaternion to rotate by. + A Vector3 to transform. + The rotated Vector3. + + + + Returns a Vector3 rotated (multiplied) by the inverse quaternion. + vector * quaternion is equivalent to quaternion.Inverse() * vector. See . + + A Vector3 to inversely rotate. + The quaternion to rotate by. + The inversely rotated Vector3. + + + + Adds each component of the left + to the right . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression, such as approximating an intermediate + rotation between two nearby rotations. + + The left quaternion to add. + The right quaternion to add. + The added quaternion. + + + + Subtracts each component of the left + by the right . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The left quaternion to subtract. + The right quaternion to subtract. + The subtracted quaternion. + + + + Returns the negative value of the . + This is the same as writing + new Quaternion(-q.X, -q.Y, -q.Z, -q.W). This operation + results in a quaternion that represents the same rotation. + + The quaternion to negate. + The negated quaternion. + + + + Multiplies each component of the + by the given . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The quaternion to multiply. + The value to multiply by. + The multiplied quaternion. + + + + Multiplies each component of the + by the given . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The value to multiply by. + The quaternion to multiply. + The multiplied quaternion. + + + + Divides each component of the + by the given . This operation is not + meaningful on its own, but it can be used as a part of a + larger expression. + + The quaternion to divide. + The value to divide by. + The divided quaternion. + + + + Returns if the quaternions are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left quaternion. + The right quaternion. + Whether or not the quaternions are exactly equal. + + + + Returns if the quaternions are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left quaternion. + The right quaternion. + Whether or not the quaternions are not equal. + + + + Returns if this quaternion and are equal. + + The other object to compare. + Whether or not the quaternion and the other object are exactly equal. + + + + Returns if this quaternion and are equal. + + The other quaternion to compare. + Whether or not the quaternions are exactly equal. + + + + Returns if this quaternion and are approximately equal, + by running on each component. + + The other quaternion to compare. + Whether or not the quaternions are approximately equal. + + + + Serves as the hash function for . + + A hash code for this quaternion. + + + + Converts this to a string. + + A string representation of this quaternion. + + + + Converts this to a string with the given . + + A string representation of this quaternion. + + + + 2D axis-aligned bounding box. Rect2 consists of a position, a size, and + several utility functions. It is typically used for fast overlap tests. + + + + + Beginning corner. Typically has values lower than . + + Directly uses a private field. + + + + Size from to . Typically all components are positive. + If the size is negative, you can use to fix it. + + Directly uses a private field. + + + + Ending corner. This is calculated as plus . + Setting this value will change the size. + + + Getting is equivalent to = + , + setting is equivalent to = - + + + + + The area of this . + See also . + + + + + Returns a with equivalent position and size, modified so that + the top-left corner is the origin and width and height are positive. + + The modified . + + + + Returns the intersection of this and . + If the rectangles do not intersect, an empty is returned. + + The other . + + The intersection of this and , + or an empty if they do not intersect. + + + + + Returns if this is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if this completely encloses another one. + + The other that may be enclosed. + + A for whether or not this encloses . + + + + + Returns this expanded to include a given point. + + The point to include. + The expanded . + + + + Returns the center of the , which is equal + to + ( / 2). + + The center. + + + + Returns the support point in a given direction. + This is useful for collision detection algorithms. + + The direction to find support for. + A vector representing the support. + + + + Returns a copy of the grown by the specified amount + on all sides. + + + + The amount to grow by. + The grown . + + + + Returns a copy of the grown by the specified amount + on each side individually. + + + + The amount to grow by on the left side. + The amount to grow by on the top side. + The amount to grow by on the right side. + The amount to grow by on the bottom side. + The grown . + + + + Returns a copy of the grown by the specified amount + on the specified . + + + + The side to grow. + The amount to grow by. + The grown . + + + + Returns if the has + area, and if the + is linear, empty, or has a negative . + See also . + + + A for whether or not the has area. + + + + + Returns if the contains a point, + or otherwise. + + The point to check. + + A for whether or not the contains . + + + + + Returns if the overlaps with + (i.e. they have at least one point in common). + + If is , + they will also be considered overlapping if their borders touch, + even without intersection. + + The other to check for intersections with. + Whether or not to consider borders. + A for whether or not they are intersecting. + + + + Returns a larger that contains this and . + + The other . + The merged . + + + + Constructs a from a position and size. + + The position. + The size. + + + + Constructs a from a position, width, and height. + + The position. + The width. + The height. + + + + Constructs a from x, y, and size. + + The position's X coordinate. + The position's Y coordinate. + The size. + + + + Constructs a from x, y, width, and height. + + The position's X coordinate. + The position's Y coordinate. + The width. + The height. + + + + Returns if the + s are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the rects are exactly equal. + + + + Returns if the + s are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left rect. + The right rect. + Whether or not the rects are not equal. + + + + Returns if this rect and are equal. + + The other object to compare. + Whether or not the rect and the other object are exactly equal. + + + + Returns if this rect and are equal. + + The other rect to compare. + Whether or not the rects are exactly equal. + + + + Returns if this rect and are approximately equal, + by running on each component. + + The other rect to compare. + Whether or not the rects are approximately equal. + + + + Serves as the hash function for . + + A hash code for this rect. + + + + Converts this to a string. + + A string representation of this rect. + + + + Converts this to a string with the given . + + A string representation of this rect. + + + + 2D axis-aligned bounding box using integers. Rect2I consists of a position, a size, and + several utility functions. It is typically used for fast overlap tests. + + + + + Beginning corner. Typically has values lower than . + + Directly uses a private field. + + + + Size from to . Typically all components are positive. + If the size is negative, you can use to fix it. + + Directly uses a private field. + + + + Ending corner. This is calculated as plus . + Setting this value will change the size. + + + Getting is equivalent to = + , + setting is equivalent to = - + + + + + The area of this . + See also . + + + + + Returns a with equivalent position and size, modified so that + the top-left corner is the origin and width and height are positive. + + The modified . + + + + Returns the intersection of this and . + If the rectangles do not intersect, an empty is returned. + + The other . + + The intersection of this and , + or an empty if they do not intersect. + + + + + Returns if this completely encloses another one. + + The other that may be enclosed. + + A for whether or not this encloses . + + + + + Returns this expanded to include a given point. + + The point to include. + The expanded . + + + + Returns the center of the , which is equal + to + ( / 2). + If is an odd number, the returned center + value will be rounded towards . + + The center. + + + + Returns a copy of the grown by the specified amount + on all sides. + + + + The amount to grow by. + The grown . + + + + Returns a copy of the grown by the specified amount + on each side individually. + + + + The amount to grow by on the left side. + The amount to grow by on the top side. + The amount to grow by on the right side. + The amount to grow by on the bottom side. + The grown . + + + + Returns a copy of the grown by the specified amount + on the specified . + + + + The side to grow. + The amount to grow by. + The grown . + + + + Returns if the has + area, and if the + is linear, empty, or has a negative . + See also . + + + A for whether or not the has area. + + + + + Returns if the contains a point, + or otherwise. + + The point to check. + + A for whether or not the contains . + + + + + Returns if the overlaps with + (i.e. they have at least one point in common). + + The other to check for intersections with. + A for whether or not they are intersecting. + + + + Returns a larger that contains this and . + + The other . + The merged . + + + + Constructs a from a position and size. + + The position. + The size. + + + + Constructs a from a position, width, and height. + + The position. + The width. + The height. + + + + Constructs a from x, y, and size. + + The position's X coordinate. + The position's Y coordinate. + The size. + + + + Constructs a from x, y, width, and height. + + The position's X coordinate. + The position's Y coordinate. + The width. + The height. + + + + Returns if the + s are exactly equal. + + The left rect. + The right rect. + Whether or not the rects are equal. + + + + Returns if the + s are not equal. + + The left rect. + The right rect. + Whether or not the rects are not equal. + + + + Converts this to a . + + The rect to convert. + + + + Converts a to a . + + The rect to convert. + + + + Returns if this rect and are equal. + + The other object to compare. + Whether or not the rect and the other object are equal. + + + + Returns if this rect and are equal. + + The other rect to compare. + Whether or not the rects are equal. + + + + Serves as the hash function for . + + A hash code for this rect. + + + + Converts this to a string. + + A string representation of this rect. + + + + Converts this to a string with the given . + + A string representation of this rect. + + + + The RID type is used to access a low-level resource by its unique ID. + RIDs are opaque, which means they do not grant access to the resource + by themselves. They are used by the low-level server classes, such as + , , + , etc. + + A low-level resource may correspond to a high-level , + such as or + + + + + Constructs a new for the given . + + + + + Returns the ID of the referenced low-level resource. + + The ID of the referenced resource. + + + + Returns if the is not 0. + + Whether or not the ID is valid. + + + + Returns if both s are equal, + which means they both refer to the same low-level resource. + + The left RID. + The right RID. + Whether or not the RIDs are equal. + + + + Returns if the s are not equal. + + The left RID. + The right RID. + Whether or not the RIDs are equal. + + + + Returns if this RID and are equal. + + The other object to compare. + Whether or not the color and the other object are equal. + + + + Returns if the RIDs are equal. + + The other RID. + Whether or not the RIDs are equal. + + + + Serves as the hash function for . + + A hash code for this RID. + + + + Converts this to a string. + + A string representation of this Rid. + + + + Represents a signal defined in an object. + + + + + Object that contains the signal. + + + + + Name of the signal. + + + + + Creates a new with the name + in the specified . + + Object that contains the signal. + Name of the signal. + + + + Extension methods to manipulate strings. + + + + + Returns the bigrams (pairs of consecutive letters) of this string. + + The string that will be used. + The bigrams of this string. + + + + Converts a string containing a binary number into an integer. + Binary strings can either be prefixed with 0b or not, + and they can also start with a - before the optional prefix. + + The string to convert. + The converted string. + + + + Returns the number of occurrences of substring in the string. + + The string where the substring will be searched. + The substring that will be counted. + Index to start searching from. + Index to stop searching at. + If the search is case sensitive. + Number of occurrences of the substring in the string. + + + + Returns the number of occurrences of substring (ignoring case) + between and positions. If + and equals 0 the whole string will be used. If only + equals 0 the remained substring will be used. + + The string where the substring will be searched. + The substring that will be counted. + Index to start searching from. + Index to stop searching at. + Number of occurrences of the substring in the string. + + + + Returns a copy of the string with indentation (leading tabs and spaces) removed. + See also to add indentation. + + The string to remove the indentation from. + The string with the indentation removed. + + + + Returns a copy of the string with special characters escaped using the C language standard. + + The string to escape. + The escaped string. + + + + Returns a copy of the string with escaped characters replaced by their meanings + according to the C language standard. + + The string to unescape. + The unescaped string. + + + + Changes the case of some letters. Replace underscores with spaces, convert all letters + to lowercase then capitalize first and every letter following the space character. + For capitalize camelCase mixed_with_underscores it will return + Capitalize Camelcase Mixed With Underscores. + + The string to capitalize. + The capitalized string. + + + + Returns the string converted to camelCase. + + The string to convert. + The converted string. + + + + Returns the string converted to PascalCase. + + The string to convert. + The converted string. + + + + Returns the string converted to snake_case. + + The string to convert. + The converted string. + + + + Performs a case-sensitive comparison to another string and returns an integer that indicates their relative position in the sort order. + + + + The string to compare. + The other string to compare. + An integer that indicates the lexical relationship between the two comparands. + + + + Performs a comparison to another string and returns an integer that indicates their relative position in the sort order. + + The string to compare. + The other string to compare. + + If , the comparison will be case sensitive. + + An integer that indicates the lexical relationship between the two comparands. + + + + Returns the extension without the leading period character (.) + if the string is a valid file name or path. If the string does not contain + an extension, returns an empty string instead. + + + + GD.Print("/path/to/file.txt".GetExtension()) // "txt" + GD.Print("file.txt".GetExtension()) // "txt" + GD.Print("file.sample.txt".GetExtension()) // "txt" + GD.Print(".txt".GetExtension()) // "txt" + GD.Print("file.txt.".GetExtension()) // "" (empty string) + GD.Print("file.txt..".GetExtension()) // "" (empty string) + GD.Print("txt".GetExtension()) // "" (empty string) + GD.Print("".GetExtension()) // "" (empty string) + + + + + + The path to a file. + The extension of the file or an empty string. + + + + Returns the index of the first occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing + to the end of the string. + Note: If you just want to know whether a string contains a substring, use the + method. + + + + + + The string that will be searched. + The substring to find. + The search starting position. + If , the search is case sensitive. + The starting position of the substring, or -1 if not found. + + + + Find the first occurrence of a char. Optionally, the search starting position can be passed. + + + + + + The string that will be searched. + The substring to find. + The search starting position. + If , the search is case sensitive. + The first instance of the char, or -1 if not found. + + + + Returns the index of the first case-insensitive occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing + to the end of the string. + + + + + + The string that will be searched. + The substring to find. + The search starting position. + The starting position of the substring, or -1 if not found. + + + + If the string is a path to a file, return the base directory. + + + + + The path to a file. + The base directory. + + + + If the string is a path to a file, return the path to the file without the extension. + + + + + The path to a file. + The path to the file without the extension. + + + + If the string is a path to a file, return the file and ignore the base directory. + + + + + The path to a file. + The file name. + + + + Converts ASCII encoded array to string. + Fast alternative to if the + content is ASCII-only. Unlike the UTF-8 function this function + maps every byte to a character in the array. Multibyte sequences + will not be interpreted correctly. For parsing user input always + use . + + A byte array of ASCII characters (on the range of 0-127). + A string created from the bytes. + + + + Converts UTF-16 encoded array to string using the little endian byte order. + + A byte array of UTF-16 characters. + A string created from the bytes. + + + + Converts UTF-32 encoded array to string using the little endian byte order. + + A byte array of UTF-32 characters. + A string created from the bytes. + + + + Converts UTF-8 encoded array to string. + Slower than but supports UTF-8 + encoded data. Use this function if you are unsure about the + source of the data. For user input this function + should always be preferred. + + + A byte array of UTF-8 characters (a character may take up multiple bytes). + + A string created from the bytes. + + + + Hash the string and return a 32 bits unsigned integer. + + The string to hash. + The calculated hash of the string. + + + + Decodes a hexadecimal string. + + The hexadecimal string. + The byte array representation of this string. + + + + Returns a hexadecimal representation of this byte as a string. + + The byte to encode. + The hexadecimal representation of this byte. + + + + Returns a hexadecimal representation of this byte array as a string. + + The byte array to encode. + The hexadecimal representation of this byte array. + + + + Converts a string containing a hexadecimal number into an integer. + Hexadecimal strings can either be prefixed with 0x or not, + and they can also start with a - before the optional prefix. + + The string to convert. + The converted string. + + + + Returns a copy of the string with lines indented with . + For example, the string can be indented with two tabs using "\t\t", + or four spaces using " ". The prefix can be any string so it can + also be used to comment out strings with e.g. "// . + See also to remove indentation. + Note: Empty lines are kept empty. + + The string to add indentation to. + The string to use as indentation. + The string with indentation added. + + + + Returns if the string is a path to a file or + directory and its starting point is explicitly defined. This includes + res://, user://, C:\, /, etc. + + + The string to check. + If the string is an absolute path. + + + + Returns if the string is a path to a file or + directory and its starting point is implicitly defined within the + context it is being used. The starting point may refer to the current + directory (./), or the current . + + + The string to check. + If the string is a relative path. + + + + Check whether this string is a subsequence of the given string. + + + The subsequence to search. + The string that contains the subsequence. + If , the check is case sensitive. + If the string is a subsequence of the given string. + + + + Check whether this string is a subsequence of the given string, ignoring case differences. + + + The subsequence to search. + The string that contains the subsequence. + If the string is a subsequence of the given string. + + + + Returns if this string is free from characters that + aren't allowed in file names. + + The string to check. + If the string contains a valid file name. + + + + Returns if this string contains a valid . + This is inclusive of integers, and also supports exponents. + + + + GD.Print("1.7".IsValidFloat()) // Prints "True" + GD.Print("24".IsValidFloat()) // Prints "True" + GD.Print("7e3".IsValidFloat()) // Prints "True" + GD.Print("Hello".IsValidFloat()) // Prints "False" + + + The string to check. + If the string contains a valid floating point number. + + + + Returns if this string contains a valid hexadecimal number. + If is , then a validity of the + hexadecimal number is determined by 0x prefix, for instance: 0xDEADC0DE. + + The string to check. + If the string must contain the 0x prefix to be valid. + If the string contains a valid hexadecimal number. + + + + Returns if this string contains a valid color in hexadecimal + HTML notation. Other HTML notations such as named colors or hsl() aren't + considered valid by this method and will return . + + The string to check. + If the string contains a valid HTML color. + + + + Returns if this string is a valid identifier. + A valid identifier may contain only letters, digits and underscores (_) + and the first character may not be a digit. + + + + GD.Print("good_ident_1".IsValidIdentifier()) // Prints "True" + GD.Print("1st_bad_ident".IsValidIdentifier()) // Prints "False" + GD.Print("bad_ident_#2".IsValidIdentifier()) // Prints "False" + + + The string to check. + If the string contains a valid identifier. + + + + Returns if this string contains a valid . + + + + GD.Print("7".IsValidInt()) // Prints "True" + GD.Print("14.6".IsValidInt()) // Prints "False" + GD.Print("L".IsValidInt()) // Prints "False" + GD.Print("+3".IsValidInt()) // Prints "True" + GD.Print("-12".IsValidInt()) // Prints "True" + + + The string to check. + If the string contains a valid integer. + + + + Returns if this string contains only a well-formatted + IPv4 or IPv6 address. This method considers reserved IP addresses such as + 0.0.0.0 as valid. + + The string to check. + If the string contains a valid IP address. + + + + Returns a copy of the string with special characters escaped using the JSON standard. + + The string to escape. + The escaped string. + + + + Returns an amount of characters from the left of the string. + + + The original string. + The position in the string where the left side ends. + The left side of the string from the given position. + + + + Do a simple expression match, where '*' matches zero or more + arbitrary characters and '?' matches any single character except '.'. + + The string to check. + Expression to check. + + If , the check will be case sensitive. + + If the expression has any matches. + + + + Do a simple case sensitive expression match, using ? and * wildcards. + + + The string to check. + Expression to check. + + If , the check will be case sensitive. + + If the expression has any matches. + + + + Do a simple case insensitive expression match, using ? and * wildcards. + + + The string to check. + Expression to check. + If the expression has any matches. + + + + Returns the MD5 hash of the string as an array of bytes. + + + The string to hash. + The MD5 hash of the string. + + + + Returns the MD5 hash of the string as a string. + + + The string to hash. + The MD5 hash of the string. + + + + Performs a case-insensitive comparison to another string and returns an integer that indicates their relative position in the sort order. + + + + The string to compare. + The other string to compare. + An integer that indicates the lexical relationship between the two comparands. + + + + Format a number to have an exact number of + after the decimal point. + + + The string to pad. + Amount of digits after the decimal point. + The string padded with zeroes. + + + + Format a number to have an exact number of + before the decimal point. + + + The string to pad. + Amount of digits before the decimal point. + The string padded with zeroes. + + + + If the string is a path, this concatenates + at the end of the string as a subpath. + E.g. "this/is".PathJoin("path") == "this/is/path". + + The path that will be concatenated. + File name to concatenate with the path. + The concatenated path with the given file name. + + + + Replace occurrences of a substring for different ones inside the string, but search case-insensitive. + + + The string to modify. + The substring to be replaced in the string. + The substring that replaces . + The string with the substring occurrences replaced. + + + + Returns the index of the last occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing to + the beginning of the string. + + + + + + The string that will be searched. + The substring to search in the string. + The position at which to start searching. + If , the search is case sensitive. + The position at which the substring was found, or -1 if not found. + + + + Returns the index of the last case-insensitive occurrence of the specified string in this instance, + or -1. Optionally, the starting search index can be specified, continuing to + the beginning of the string. + + + + + + The string that will be searched. + The substring to search in the string. + The position at which to start searching. + The position at which the substring was found, or -1 if not found. + + + + Returns the right side of the string from a given position. + + + The original string. + The position in the string from which the right side starts. + The right side of the string from the given position. + + + + Returns the SHA-1 hash of the string as an array of bytes. + + + The string to hash. + The SHA-1 hash of the string. + + + + Returns the SHA-1 hash of the string as a string. + + + The string to hash. + The SHA-1 hash of the string. + + + + Returns the SHA-256 hash of the string as an array of bytes. + + + The string to hash. + The SHA-256 hash of the string. + + + + Returns the SHA-256 hash of the string as a string. + + + The string to hash. + The SHA-256 hash of the string. + + + + Returns the similarity index of the text compared to this string. + 1 means totally similar and 0 means totally dissimilar. + + The string to compare. + The other string to compare. + The similarity index. + + + + Returns a simplified canonical path. + + + + + Split the string by a divisor string, return an array of the substrings. + Example "One,Two,Three" will return ["One","Two","Three"] if split by ",". + + + The string to split. + The divisor string that splits the string. + + If , the array may include empty strings. + + The array of strings split from the string. + + + + Split the string in floats by using a divisor string, return an array of the substrings. + Example "1,2.5,3" will return [1,2.5,3] if split by ",". + + + The string to split. + The divisor string that splits the string. + + If , the array may include empty floats. + + The array of floats split from the string. + + + + Returns a copy of the string stripped of any non-printable character + (including tabulations, spaces and line breaks) at the beginning and the end. + The optional arguments are used to toggle stripping on the left and right + edges respectively. + + The string to strip. + If the left side should be stripped. + If the right side should be stripped. + The string stripped of any non-printable characters. + + + + Returns a copy of the string stripped of any escape character. + These include all non-printable control characters of the first page + of the ASCII table (< 32), such as tabulation (\t) and + newline (\n and \r) characters, but not spaces. + + The string to strip. + The string stripped of any escape characters. + + + + Returns part of the string from the position , with length . + + The string to slice. + The position in the string that the part starts from. + The length of the returned part. + + Part of the string from the position , with length . + + + + + Converts the String (which is a character array) to PackedByteArray (which is an array of bytes). + The conversion is faster compared to , + as this method assumes that all the characters in the String are ASCII characters. + + + + + The string to convert. + The string as ASCII encoded bytes. + + + + Converts a string, containing a decimal number, into a . + + + The string to convert. + The number representation of the string. + + + + Converts a string, containing an integer number, into an . + + + The string to convert. + The number representation of the string. + + + + Converts the string (which is an array of characters) to a UTF-16 encoded array of bytes. + + + + + The string to convert. + The string as UTF-16 encoded bytes. + + + + Converts the string (which is an array of characters) to a UTF-32 encoded array of bytes. + + + + + The string to convert. + The string as UTF-32 encoded bytes. + + + + Converts the string (which is an array of characters) to a UTF-8 encoded array of bytes. + The conversion is a bit slower than , + but supports all UTF-8 characters. Therefore, you should prefer this function + over . + + + + + The string to convert. + The string as UTF-8 encoded bytes. + + + + Removes a given string from the start if it starts with it or leaves the string unchanged. + + The string to remove the prefix from. + The string to remove from the start. + A copy of the string with the prefix string removed from the start. + + + + Removes a given string from the end if it ends with it or leaves the string unchanged. + + The string to remove the suffix from. + The string to remove from the end. + A copy of the string with the suffix string removed from the end. + + + + Decodes a string in URL encoded format. This is meant to + decode parameters in a URL when receiving an HTTP request. + This mostly wraps around , + but also handles +. + See for encoding. + + The string to decode. + The unescaped string. + + + + Encodes a string to URL friendly format. This is meant to + encode parameters in a URL when sending an HTTP request. + This wraps around . + See for decoding. + + The string to encode. + The escaped string. + + + + Removes any characters from the string that are prohibited in + names (. : @ / "). + + The string to sanitize. + The string sanitized as a valid node name. + + + + Returns a copy of the string with special characters escaped using the XML standard. + + + The string to escape. + The escaped string. + + + + Returns a copy of the string with escaped characters replaced by their meanings + according to the XML standard. + + + The string to unescape. + The unescaped string. + + + + StringNames are immutable strings designed for general-purpose representation of unique names. + StringName ensures that only one instance of a given name exists (so two StringNames with the + same value are the same object). + Comparing them is much faster than with regular strings, because only the pointers are compared, + not the whole strings. + + + + + Disposes of this . + + + + + Constructs an empty . + + + + + Constructs a from the given string. + + String to construct the from. + + + + Converts a string to a . + + The string to convert. + + + + Converts a to a string. + + The to convert. + + + + Converts this to a string. + + A string representation of this . + + + + Check whether this is empty. + + If the is empty. + + + + 2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. + It can represent transformations such as translation, rotation, or scaling. + It consists of a three values: x, y, and the origin. + + For more information, read this documentation article: + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html + + + + + The basis matrix's X vector (column 0). Equivalent to array index [0]. + + + + + The basis matrix's Y vector (column 1). Equivalent to array index [1]. + + + + + The origin vector (column 2, the third column). Equivalent to array index [2]. + The origin vector represents translation. + + + + + Returns the transform's rotation (in radians). + + + + + Returns the scale. + + + + + Returns the transform's skew (in radians). + + + + + Access whole columns in the form of . + The third column is the vector. + + Which column vector. + + is not 0, 1 or 2. + + + + + Access matrix elements in column-major order. + The third column is the vector. + + Which column, the matrix horizontal position. + Which row, the matrix vertical position. + + + + Returns the inverse of the transform, under the assumption that + the basis is invertible (must have non-zero determinant). + + + The inverse transformation matrix. + + + + Returns the determinant of the basis matrix. If the basis is + uniformly scaled, then its determinant equals the square of the + scale factor. + + A negative determinant means the basis was flipped, so one part of + the scale is negative. A zero determinant means the basis isn't + invertible, and is usually considered invalid. + + The determinant of the basis matrix. + + + + Returns a vector transformed (multiplied) by the basis matrix. + This method does not account for translation (the vector). + + + A vector to transform. + The transformed vector. + + + + Returns a vector transformed (multiplied) by the inverse basis matrix, + under the assumption that the basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + This method does not account for translation (the vector). + transform.BasisXformInv(vector) is equivalent to transform.Inverse().BasisXform(vector). See . + For non-orthonormal transforms (e.g. with scaling) transform.AffineInverse().BasisXform(vector) can be used instead. See . + + + A vector to inversely transform. + The inversely transformed vector. + + + + Interpolates this transform to the other by . + + The other transform. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated transform. + + + + Returns the inverse of the transform, under the assumption that + the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). Use for + non-orthonormal transforms (e.g. with scaling). + + The inverse matrix. + + + + Returns if this transform is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns the transform with the basis orthogonal (90 degrees), + and normalized axis vectors (scale of 1 or -1). + + The orthonormalized transform. + + + + Rotates the transform by (in radians). + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Rotates the transform by (in radians). + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Scales the transform by the given scaling factor. + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The scale to introduce. + The scaled transformation matrix. + + + + Scales the transform by the given scaling factor. + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The scale to introduce. + The scaled transformation matrix. + + + + Translates the transform by the given . + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The offset to translate by. + The translated matrix. + + + + Translates the transform by the given . + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The offset to translate by. + The translated matrix. + + + + The identity transform, with no translation, rotation, or scaling applied. + This is used as a replacement for Transform2D() in GDScript. + Do not use new Transform2D() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Transform2D(Vector2.Right, Vector2.Down, Vector2.Zero). + + + + The transform that will flip something along the X axis. + + Equivalent to new Transform2D(Vector2.Left, Vector2.Down, Vector2.Zero). + + + + The transform that will flip something along the Y axis. + + Equivalent to new Transform2D(Vector2.Right, Vector2.Up, Vector2.Zero). + + + + Constructs a transformation matrix from 3 vectors (matrix columns). + + The X vector, or column index 0. + The Y vector, or column index 1. + The origin vector, or column index 2. + + + + Constructs a transformation matrix from the given components. + Arguments are named such that xy is equal to calling X.Y. + + The X component of the X column vector, accessed via t.X.X or [0][0]. + The Y component of the X column vector, accessed via t.X.Y or [0][1]. + The X component of the Y column vector, accessed via t.Y.X or [1][0]. + The Y component of the Y column vector, accessed via t.Y.Y or [1][1]. + The X component of the origin vector, accessed via t.Origin.X or [2][0]. + The Y component of the origin vector, accessed via t.Origin.Y or [2][1]. + + + + Constructs a transformation matrix from a value and + vector. + + The rotation of the new transform, in radians. + The origin vector, or column index 2. + + + + Constructs a transformation matrix from a value, + vector, value, and + vector. + + The rotation of the new transform, in radians. + The scale of the new transform. + The skew of the new transform, in radians. + The origin vector, or column index 2. + + + + Composes these two transformation matrices by multiplying them + together. This has the effect of transforming the second transform + (the child) by the first transform (the parent). + + The parent transform. + The child transform. + The composed transform. + + + + Returns a Vector2 transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector2 to transform. + The transformed Vector2. + + + + Returns a Vector2 transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + vector * transform is equivalent to transform.Inverse() * vector. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * vector can be used instead. See . + + A Vector2 to inversely transform. + The transformation to apply. + The inversely transformed Vector2. + + + + Returns a Rect2 transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Rect2 to transform. + The transformed Rect2. + + + + Returns a Rect2 transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + rect * transform is equivalent to transform.Inverse() * rect. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * rect can be used instead. See . + + A Rect2 to inversely transform. + The transformation to apply. + The inversely transformed Rect2. + + + + Returns a copy of the given Vector2[] transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector2[] to transform. + The transformed copy of the Vector2[]. + + + + Returns a copy of the given Vector2[] transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + array * transform is equivalent to transform.Inverse() * array. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * array can be used instead. See . + + A Vector2[] to inversely transform. + The transformation to apply. + The inversely transformed copy of the Vector2[]. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are exactly equal. + + + + Returns if the transforms are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are not equal. + + + + Returns if the transform is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the transform and the object are exactly equal. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other transform to compare. + Whether or not the matrices are exactly equal. + + + + Returns if this transform and are approximately equal, + by running on each component. + + The other transform to compare. + Whether or not the matrices are approximately equal. + + + + Serves as the hash function for . + + A hash code for this transform. + + + + Converts this to a string. + + A string representation of this transform. + + + + Converts this to a string with the given . + + A string representation of this transform. + + + + 3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. + It can represent transformations such as translation, rotation, or scaling. + It consists of a (first 3 columns) and a + for the origin (last column). + + For more information, read this documentation article: + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html + + + + + The of this transform. Contains the X, Y, and Z basis + vectors (columns 0 to 2) and is responsible for rotation and scale. + + + + + The origin vector (column 3, the fourth column). Equivalent to array index [3]. + + + + + Access whole columns in the form of . + The fourth column is the vector. + + Which column vector. + + is not 0, 1, 2 or 3. + + + + + Access matrix elements in column-major order. + The fourth column is the vector. + + Which column, the matrix horizontal position. + Which row, the matrix vertical position. + + + + Returns the inverse of the transform, under the assumption that + the basis is invertible (must have non-zero determinant). + + + The inverse transformation matrix. + + + + Returns a transform interpolated between this transform and another + by a given + (on the range of 0.0 to 1.0). + + The other transform. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated transform. + + + + Returns the inverse of the transform, under the assumption that + the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). Use for + non-orthonormal transforms (e.g. with scaling). + + The inverse matrix. + + + + Returns if this transform is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns a copy of the transform rotated such that the forward axis (-Z) + points towards the position. + The up axis (+Y) points as close to the vector + as possible while staying perpendicular to the forward axis. + The resulting transform is orthonormalized. + The existing rotation, scale, and skew information from the original transform is discarded. + The and vectors cannot be zero, + cannot be parallel to each other, and are defined in global/parent space. + + The object to look at. + The relative up direction. + + If true, then the model is oriented in reverse, + towards the model front axis (+Z, Vector3.ModelFront), + which is more useful for orienting 3D models. + + The resulting transform. + + + + + + + Returns the transform with the basis orthogonal (90 degrees), + and normalized axis vectors (scale of 1 or -1). + + The orthonormalized transform. + + + + Rotates the transform around the given by (in radians). + The axis must be a normalized vector. + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Rotates the transform around the given by (in radians). + The axis must be a normalized vector. + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The axis to rotate around. Must be normalized. + The angle to rotate, in radians. + The rotated transformation matrix. + + + + Scales the transform by the given 3D factor. + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The scale to introduce. + The scaled transformation matrix. + + + + Scales the transform by the given 3D factor. + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The scale to introduce. + The scaled transformation matrix. + + + + Translates the transform by the given . + The operation is done in the parent/global frame, equivalent to + multiplying the matrix from the left. + + The offset to translate by. + The translated matrix. + + + + Translates the transform by the given . + The operation is done in the local frame, equivalent to + multiplying the matrix from the right. + + The offset to translate by. + The translated matrix. + + + + The identity transform, with no translation, rotation, or scaling applied. + This is used as a replacement for Transform() in GDScript. + Do not use new Transform() with no arguments in C#, because it sets all values to zero. + + Equivalent to new Transform(Vector3.Right, Vector3.Up, Vector3.Back, Vector3.Zero). + + + + The transform that will flip something along the X axis. + + Equivalent to new Transform(Vector3.Left, Vector3.Up, Vector3.Back, Vector3.Zero). + + + + The transform that will flip something along the Y axis. + + Equivalent to new Transform(Vector3.Right, Vector3.Down, Vector3.Back, Vector3.Zero). + + + + The transform that will flip something along the Z axis. + + Equivalent to new Transform(Vector3.Right, Vector3.Up, Vector3.Forward, Vector3.Zero). + + + + Constructs a transformation matrix from 4 vectors (matrix columns). + + The X vector, or column index 0. + The Y vector, or column index 1. + The Z vector, or column index 2. + The origin vector, or column index 3. + + + + Constructs a transformation matrix from the given components. + Arguments are named such that xy is equal to calling Basis.X.Y. + + The X component of the X column vector, accessed via t.Basis.X.X or [0][0]. + The X component of the Y column vector, accessed via t.Basis.Y.X or [1][0]. + The X component of the Z column vector, accessed via t.Basis.Z.X or [2][0]. + The Y component of the X column vector, accessed via t.Basis.X.Y or [0][1]. + The Y component of the Y column vector, accessed via t.Basis.Y.Y or [1][1]. + The Y component of the Z column vector, accessed via t.Basis.Y.Y or [2][1]. + The Z component of the X column vector, accessed via t.Basis.X.Y or [0][2]. + The Z component of the Y column vector, accessed via t.Basis.Y.Y or [1][2]. + The Z component of the Z column vector, accessed via t.Basis.Y.Y or [2][2]. + The X component of the origin vector, accessed via t.Origin.X or [2][0]. + The Y component of the origin vector, accessed via t.Origin.Y or [2][1]. + The Z component of the origin vector, accessed via t.Origin.Z or [2][2]. + + + + Constructs a transformation matrix from the given and + vector. + + The to create the basis from. + The origin vector, or column index 3. + + + + Constructs a transformation matrix from the given + by trimming the last row of the projection matrix (projection.X.W, + projection.Y.W, projection.Z.W, and projection.W.W + are not copied over). + + The to create the transform from. + + + + Composes these two transformation matrices by multiplying them + together. This has the effect of transforming the second transform + (the child) by the first transform (the parent). + + The parent transform. + The child transform. + The composed transform. + + + + Returns a Vector3 transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector3 to transform. + The transformed Vector3. + + + + Returns a Vector3 transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + vector * transform is equivalent to transform.Inverse() * vector. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * vector can be used instead. See . + + A Vector3 to inversely transform. + The transformation to apply. + The inversely transformed Vector3. + + + + Returns an AABB transformed (multiplied) by the transformation matrix. + + The transformation to apply. + An AABB to transform. + The transformed AABB. + + + + Returns an AABB transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + aabb * transform is equivalent to transform.Inverse() * aabb. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * aabb can be used instead. See . + + An AABB to inversely transform. + The transformation to apply. + The inversely transformed AABB. + + + + Returns a Plane transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Plane to transform. + The transformed Plane. + + + + Returns a Plane transformed (multiplied) by the inverse transformation matrix. + plane * transform is equivalent to transform.AffineInverse() * plane. See . + + A Plane to inversely transform. + The transformation to apply. + The inversely transformed Plane. + + + + Returns a copy of the given Vector3[] transformed (multiplied) by the transformation matrix. + + The transformation to apply. + A Vector3[] to transform. + The transformed copy of the Vector3[]. + + + + Returns a copy of the given Vector3[] transformed (multiplied) by the inverse transformation matrix, + under the assumption that the transformation basis is orthonormal (i.e. rotation/reflection + is fine, scaling/skew is not). + array * transform is equivalent to transform.Inverse() * array. See . + For transforming by inverse of an affine transformation (e.g. with scaling) transform.AffineInverse() * array can be used instead. See . + + A Vector3[] to inversely transform. + The transformation to apply. + The inversely transformed copy of the Vector3[]. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are exactly equal. + + + + Returns if the transforms are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left transform. + The right transform. + Whether or not the transforms are not equal. + + + + Returns if the transform is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the transform and the object are exactly equal. + + + + Returns if the transforms are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other transform to compare. + Whether or not the matrices are exactly equal. + + + + Returns if this transform and are approximately equal, + by running on each component. + + The other transform to compare. + Whether or not the matrices are approximately equal. + + + + Serves as the hash function for . + + A hash code for this transform. + + + + Converts this to a string. + + A string representation of this transform. + + + + Converts this to a string with the given . + + A string representation of this transform. + + + + Constructs a new from this instance. + The caller is responsible of disposing the new instance to avoid memory leaks. + + + + + Variable is . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type . + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Variable is of type []. + + + + + Represents the size of the enum. + + + + + Equality operator (==). + + + + + Inequality operator (!=). + + + + + Less than operator (<). + + + + + Less than or equal operator (<=). + + + + + Greater than operator (>). + + + + + Greater than or equal operator (>=). + + + + + Addition operator (+). + + + + + Subtraction operator (-). + + + + + Multiplication operator (*). + + + + + Division operator (/). + + + + + Unary negation operator (-). + + + + + Unary plus operator (+). + + + + + Remainder/modulo operator (%). + + + + + Power operator (**). + + + + + Left shift operator (<<). + + + + + Right shift operator (>>). + + + + + Bitwise AND operator (&). + + + + + Bitwise OR operator (|). + + + + + Bitwise XOR operator (^). + + + + + Bitwise NOT operator (~). + + + + + Logical AND operator (and or &&). + + + + + Logical OR operator (or or ||). + + + + + Logical XOR operator (not implemented in GDScript). + + + + + Logical NOT operator (not or !). + + + + + Logical IN operator (in). + + + + + Represents the size of the enum. + + + + + 2-element structure that can be used to represent positions in 2D space or any other pair of numeric values. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + Access vector components using their index. + + + is not 0 or 1. + + + [0] is equivalent to , + [1] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns this vector's angle with respect to the X axis, or (1, 0) vector, in radians. + + Equivalent to the result of when + called with the vector's and as parameters: Mathf.Atan2(v.Y, v.X). + + The angle of this vector, in radians. + + + + Returns the angle to the given vector, in radians. + + The other vector to compare this vector to. + The angle between the two vectors, in radians. + + + + Returns the angle between the line connecting the two points and the X axis, in radians. + + The other vector to compare this vector to. + The angle between the two vectors, in radians. + + + + Returns the aspect ratio of this vector, the ratio of to . + + The component divided by the component. + + + + Returns the vector "bounced off" from a plane defined by the given normal. + + The normal vector defining the plane to bounce off. Must be normalized. + The bounced vector. + + + + Returns a new vector with all components rounded up (towards positive infinity). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the cross product of this vector and . + + The other vector. + The cross product value. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated vector. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination vector. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Returns the derivative at the given on the Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the normalized vector pointing from this vector to . + + The other vector to point towards. + The direction from this vector to . + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + The other vector to use. + The distance between the two vectors. + + + + Returns the dot product of this vector and . + + The other vector to use. + The dot product of the two vectors. + + + + Returns a new vector with all components rounded down (towards negative infinity). + + A vector with called on each component. + + + + Returns the inverse of this vector. This is the same as new Vector2(1 / v.X, 1 / v.Y). + + The inverse of this vector. + + + + Returns if this vector is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if the vector is normalized, and otherwise. + + A indicating whether or not the vector is normalized. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the linear interpolation between + this vector and by amount . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns the vector with a maximum length by limiting its length to . + + The length to limit to. + The vector with its length limited. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2(Mathf.Max(X, with), Mathf.Max(Y, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2(Mathf.Min(X, with), Mathf.Min(Y, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If both components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If both components are equal, this method returns . + + The index of the lowest axis. + + + + Moves this vector toward by the fixed amount. + + The vector to move towards. + The amount to move towards by. + The resulting vector. + + + + Returns the vector scaled to unit length. Equivalent to v / v.Length(). + + A normalized version of the vector. + + + + Returns a vector composed of the of this vector's components + and . + + A value representing the divisor of the operation. + + A vector with each component by . + + + + + Returns a vector composed of the of this vector's components + and 's components. + + A vector representing the divisors of the operation. + + A vector with each component by 's components. + + + + + Returns a new vector resulting from projecting this vector onto the given vector . + The resulting new vector is parallel to . + See also . + Note: If the vector is a zero vector, the components of the resulting new vector will be . + + The vector to project onto. + The projected vector. + + + + Returns this vector reflected from a plane defined by the given . + + The normal vector defining the plane to reflect from. Must be normalized. + The reflected vector. + + + + Rotates this vector by radians. + + The angle to rotate by, in radians. + The rotated vector. + + + + Returns this vector with all components rounded to the nearest integer, + with halfway cases rounded towards the nearest multiple of two. + + The rounded vector. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns the result of the spherical linear interpolation between + this vector and by amount . + + This method also handles interpolating the lengths if the input vectors + have different lengths. For the special case of one or both input vectors + having zero length, this method behaves like . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns a new vector resulting from sliding this vector along a line with normal . + The resulting new vector is perpendicular to , and is equivalent to this vector minus its projection on . + See also . + Note: The vector must be normalized. See also . + + The normal vector of the plane to slide on. + The slid vector. + + + + Returns a new vector with each component snapped to the nearest multiple of the corresponding component in . + This can also be used to round to an arbitrary number of decimals. + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the nearest multiple of . + This can also be used to round to an arbitrary number of decimals. + + The step size to snap to. + The snapped vector. + + + + Returns a perpendicular vector rotated 90 degrees counter-clockwise + compared to the original, with the same length. + + The perpendicular vector. + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector2(0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector2(1, 1). + + + + Infinity vector, a vector with all components set to . + + Equivalent to new Vector2(Mathf.Inf, Mathf.Inf). + + + + Up unit vector. Y is down in 2D, so this vector points -Y. + + Equivalent to new Vector2(0, -1). + + + + Down unit vector. Y is down in 2D, so this vector points +Y. + + Equivalent to new Vector2(0, 1). + + + + Right unit vector. Represents the direction of right. + + Equivalent to new Vector2(1, 0). + + + + Left unit vector. Represents the direction of left. + + Equivalent to new Vector2(-1, 0). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + + + + Creates a unit Vector2 rotated to the given angle. This is equivalent to doing + Vector2(Mathf.Cos(angle), Mathf.Sin(angle)) or Vector2.Right.Rotated(angle). + + Angle of the vector, in radians. + The resulting vector. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector2(-v.X, -v.Y). + This operation flips the direction of the vector while + keeping the same magnitude. + With floats, the number zero can be either positive or negative. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2(10, -20) % 7); // Prints "(3, -6)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2(10, -20) % new Vector2(7, 8)); // Prints "(3, -4)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are exactly equal. + + + + Returns if the vectors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Returns if the vector is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other vector. + Whether or not the vectors are exactly equal. + + + + Returns if this vector and are approximately equal, + by running on each component. + + The other vector to compare. + Whether or not the vectors are approximately equal. + + + + Returns if this vector's values are approximately zero, + by running on each component. + This method is faster than using with one value + as a zero vector. + + Whether or not the vector is approximately zero. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 2-element structure that can be used to represent 2D grid coordinates or pairs of integers. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + Access vector components using their index. + + + is not 0 or 1. + + + [0] is equivalent to , + [1] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns the aspect ratio of this vector, the ratio of to . + + The component divided by the component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2I(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector2I(Mathf.Max(X, with), Mathf.Max(Y, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2I(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector2I(Mathf.Min(X, with), Mathf.Min(Y, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If both components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If both components are equal, this method returns . + + The index of the lowest axis. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the closest multiple of the corresponding component in . + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the closest multiple of . + + The step size to snap to. + The snapped vector. + + + + Min vector, a vector with all components equal to . Can be used as a negative integer equivalent of . + + Equivalent to new Vector2I(int.MinValue, int.MinValue). + + + + Max vector, a vector with all components equal to . Can be used as an integer equivalent of . + + Equivalent to new Vector2I(int.MaxValue, int.MaxValue). + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector2I(0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector2I(1, 1). + + + + Up unit vector. Y is down in 2D, so this vector points -Y. + + Equivalent to new Vector2I(0, -1). + + + + Down unit vector. Y is down in 2D, so this vector points +Y. + + Equivalent to new Vector2I(0, 1). + + + + Right unit vector. Represents the direction of right. + + Equivalent to new Vector2I(1, 0). + + + + Left unit vector. Represents the direction of left. + + Equivalent to new Vector2I(-1, 0). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector2I(-v.X, -v.Y). + This operation flips the direction of the vector while + keeping the same magnitude. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2I(10, -20) % 7); // Prints "(3, -6)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector2I(10, -20) % new Vector2I(7, 8)); // Prints "(3, -4)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are equal. + + The left vector. + The right vector. + Whether or not the vectors are equal. + + + + Returns if the vectors are not equal. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Converts this to a . + + The vector to convert. + + + + Converts a to a by truncating + components' fractional parts (rounding towards zero). For a different + behavior consider passing the result of , + or to this conversion operator instead. + + The vector to convert. + + + + Returns if the vector is equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are equal. + + The other vector. + Whether or not the vectors are equal. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 3-element structure that can be used to represent positions in 3D space or any other pair of numeric values. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + Access vector components using their index. + + + is not 0, 1 or 2. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns the unsigned minimum angle to the given vector, in radians. + + The other vector to compare this vector to. + The unsigned angle between the two vectors, in radians. + + + + Returns this vector "bounced off" from a plane defined by the given normal. + + The normal vector defining the plane to bounce off. Must be normalized. + The bounced vector. + + + + Returns a new vector with all components rounded up (towards positive infinity). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the cross product of this vector and . + + The other vector. + The cross product vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated vector. + + + + Returns the point at the given on a one-dimensional Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination vector. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Returns the derivative at the given on the Bezier curve defined by this vector + and the given , , and points. + + Control point that defines the bezier curve. + Control point that defines the bezier curve. + The destination value for the interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting value of the interpolation. + + + + Returns the normalized vector pointing from this vector to . + + The other vector to point towards. + The direction from this vector to . + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the dot product of this vector and . + + The other vector to use. + The dot product of the two vectors. + + + + Returns a new vector with all components rounded down (towards negative infinity). + + A vector with called on each component. + + + + Returns the inverse of this vector. This is the same as new Vector3(1 / v.X, 1 / v.Y, 1 / v.Z). + + The inverse of this vector. + + + + Returns if this vector is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if the vector is normalized, and otherwise. + + A indicating whether or not the vector is normalized. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the linear interpolation between + this vector and by amount . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns the vector with a maximum length by limiting its length to . + + The length to limit to. + The vector with its length limited. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector3(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Moves this vector toward by the fixed amount. + + The vector to move towards. + The amount to move towards by. + The resulting vector. + + + + Returns the vector scaled to unit length. Equivalent to v / v.Length(). + + A normalized version of the vector. + + + + Returns the outer product with . + + The other vector. + A representing the outer product matrix. + + + + Returns a vector composed of the of this vector's components + and . + + A value representing the divisor of the operation. + + A vector with each component by . + + + + + Returns a vector composed of the of this vector's components + and 's components. + + A vector representing the divisors of the operation. + + A vector with each component by 's components. + + + + + Returns a new vector resulting from projecting this vector onto the given vector . + The resulting new vector is parallel to . + See also . + Note: If the vector is a zero vector, the components of the resulting new vector will be . + + The vector to project onto. + The projected vector. + + + + Returns this vector reflected from a plane defined by the given . + + The normal vector defining the plane to reflect from. Must be normalized. + The reflected vector. + + + + Rotates this vector around a given vector by (in radians). + The vector must be a normalized vector. + + The vector to rotate around. Must be normalized. + The angle to rotate by, in radians. + The rotated vector. + + + + Returns this vector with all components rounded to the nearest integer, + with halfway cases rounded towards the nearest multiple of two. + + The rounded vector. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns the signed angle to the given vector, in radians. + The sign of the angle is positive in a counter-clockwise + direction and negative in a clockwise direction when viewed + from the side specified by the . + + The other vector to compare this vector to. + The reference axis to use for the angle sign. + The signed angle between the two vectors, in radians. + + + + Returns the result of the spherical linear interpolation between + this vector and by amount . + + This method also handles interpolating the lengths if the input vectors + have different lengths. For the special case of one or both input vectors + having zero length, this method behaves like . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns a new vector resulting from sliding this vector along a plane with normal . + The resulting new vector is perpendicular to , and is equivalent to this vector minus its projection on . + See also . + Note: The vector must be normalized. See also . + + The normal vector of the plane to slide on. + The slid vector. + + + + Returns a new vector with each component snapped to the nearest multiple of the corresponding component in . + This can also be used to round to an arbitrary number of decimals. + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the nearest multiple of . + This can also be used to round to an arbitrary number of decimals. + + The step size to snap to. + The snapped vector. + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector3(0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector3(1, 1, 1). + + + + Infinity vector, a vector with all components set to . + + Equivalent to new Vector3(Mathf.Inf, Mathf.Inf, Mathf.Inf). + + + + Up unit vector. + + Equivalent to new Vector3(0, 1, 0). + + + + Down unit vector. + + Equivalent to new Vector3(0, -1, 0). + + + + Right unit vector. Represents the local direction of right, + and the global direction of east. + + Equivalent to new Vector3(1, 0, 0). + + + + Left unit vector. Represents the local direction of left, + and the global direction of west. + + Equivalent to new Vector3(-1, 0, 0). + + + + Forward unit vector. Represents the local direction of forward, + and the global direction of north. + + Equivalent to new Vector3(0, 0, -1). + + + + Back unit vector. Represents the local direction of back, + and the global direction of south. + + Equivalent to new Vector3(0, 0, 1). + + + + Unit vector pointing towards the left side of imported 3D assets. + + + + + Unit vector pointing towards the right side of imported 3D assets. + + + + + Unit vector pointing towards the top side (up) of imported 3D assets. + + + + + Unit vector pointing towards the bottom side (down) of imported 3D assets. + + + + + Unit vector pointing towards the front side (facing forward) of imported 3D assets. + + + + + Unit vector pointing towards the rear side (back) of imported 3D assets. + + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector3(-v.X, -v.Y, -v.Z). + This operation flips the direction of the vector while + keeping the same magnitude. + With floats, the number zero can be either positive or negative. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3(10, -20, 30) % 7); // Prints "(3, -6, 2)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3(10, -20, 30) % new Vector3(7, 8, 9)); // Prints "(3, -4, 3)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are exactly equal. + + + + Returns if the vectors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Returns if the vector is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other vector. + Whether or not the vectors are exactly equal. + + + + Returns if this vector and are approximately equal, + by running on each component. + + The other vector to compare. + Whether or not the vectors are approximately equal. + + + + Returns if this vector's values are approximately zero, + by running on each component. + This method is faster than using with one value + as a zero vector. + + Whether or not the vector is approximately zero. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 3-element structure that can be used to represent 3D grid coordinates or sets of integers. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + Access vector components using their . + + + is not 0, 1 or 2. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3I(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector3I(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector3I(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector3I(Mathf.Min(X, with), Mathf.Min(Y, with), Mathf.Min(Z, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the closest multiple of the corresponding component in . + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the closest multiple of . + + The step size to snap to. + The snapped vector. + + + + Min vector, a vector with all components equal to . Can be used as a negative integer equivalent of . + + Equivalent to new Vector3I(int.MinValue, int.MinValue, int.MinValue). + + + + Max vector, a vector with all components equal to . Can be used as an integer equivalent of . + + Equivalent to new Vector3I(int.MaxValue, int.MaxValue, int.MaxValue). + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector3I(0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector3I(1, 1, 1). + + + + Up unit vector. + + Equivalent to new Vector3I(0, 1, 0). + + + + Down unit vector. + + Equivalent to new Vector3I(0, -1, 0). + + + + Right unit vector. Represents the local direction of right, + and the global direction of east. + + Equivalent to new Vector3I(1, 0, 0). + + + + Left unit vector. Represents the local direction of left, + and the global direction of west. + + Equivalent to new Vector3I(-1, 0, 0). + + + + Forward unit vector. Represents the local direction of forward, + and the global direction of north. + + Equivalent to new Vector3I(0, 0, -1). + + + + Back unit vector. Represents the local direction of back, + and the global direction of south. + + Equivalent to new Vector3I(0, 0, 1). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector3I(-v.X, -v.Y, -v.Z). + This operation flips the direction of the vector while + keeping the same magnitude. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3I(10, -20, 30) % 7); // Prints "(3, -6, 2)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector3I(10, -20, 30) % new Vector3I(7, 8, 9)); // Prints "(3, -4, 3)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are equal. + + The left vector. + The right vector. + Whether or not the vectors are equal. + + + + Returns if the vectors are not equal. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y values of the two vectors, and then with the Z values. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Converts this to a . + + The vector to convert. + + + + Converts a to a by truncating + components' fractional parts (rounding towards zero). For a different + behavior consider passing the result of , + or to this conversion operator instead. + + The vector to convert. + + + + Returns if the vector is equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are equal. + + The other vector. + Whether or not the vectors are equal. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 4-element structure that can be used to represent positions in 4D space or any other pair of numeric values. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's W axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + The vector's W component. Also accessible by using the index position [3]. + + + + + Access vector components using their index. + + + is not 0, 1, 2 or 3. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + [3] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns a new vector with all components rounded up (towards positive infinity). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between the + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The interpolated vector. + + + + Performs a cubic interpolation between vectors , this vector, + , and , by the given amount . + It can perform smoother interpolation than + by the time values. + + The destination vector. + A vector before this vector. + A vector after . + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + + + + The interpolated vector. + + + + Returns the normalized vector pointing from this vector to . + + The other vector to point towards. + The direction from this vector to . + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + The other vector to use. + The distance between the two vectors. + + + + Returns the dot product of this vector and . + + The other vector to use. + The dot product of the two vectors. + + + + Returns a new vector with all components rounded down (towards negative infinity). + + A vector with called on each component. + + + + Returns the inverse of this vector. This is the same as new Vector4(1 / v.X, 1 / v.Y, 1 / v.Z, 1 / v.W). + + The inverse of this vector. + + + + Returns if this vector is finite, by calling + on each component. + + Whether this vector is finite or not. + + + + Returns if the vector is normalized, and otherwise. + + A indicating whether or not the vector is normalized. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the linear interpolation between + this vector and by amount . + + The destination vector for interpolation. + A value on the range of 0.0 to 1.0, representing the amount of interpolation. + The resulting vector of the interpolation. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z), Mathf.Max(W, with.W)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with), Mathf.Max(W, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z), Mathf.Min(W, with.W)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4(Mathf.Min(X, with), Mathf.Min(Y, with), Mathf.Min(Z, with), Mathf.Min(W, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Returns the vector scaled to unit length. Equivalent to v / v.Length(). + + A normalized version of the vector. + + + + Returns a vector composed of the of this vector's components + and . + + A value representing the divisor of the operation. + + A vector with each component by . + + + + + Returns a vector composed of the of this vector's components + and 's components. + + A vector representing the divisors of the operation. + + A vector with each component by 's components. + + + + + Returns this vector with all components rounded to the nearest integer, + with halfway cases rounded towards the nearest multiple of two. + + The rounded vector. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the nearest multiple of the corresponding component in . + This can also be used to round to an arbitrary number of decimals. + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the nearest multiple of . + This can also be used to round to an arbitrary number of decimals. + + The step size to snap to. + The snapped vector. + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector4(0, 0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector4(1, 1, 1, 1). + + + + Infinity vector, a vector with all components set to . + + Equivalent to new Vector4(Mathf.Inf, Mathf.Inf, Mathf.Inf, Mathf.Inf). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + The vector's W component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector4(-v.X, -v.Y, -v.Z, -v.W). + This operation flips the direction of the vector while + keeping the same magnitude. + With floats, the number zero can be either positive or negative. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4(10, -20, 30, 40) % 7); // Prints "(3, -6, 2, 5)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4(10, -20, 30, 10) % new Vector4(7, 8, 9, 10)); // Prints "(3, -4, 3, 0)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are exactly equal. + + + + Returns if the vectors are not equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Returns if the vector is exactly equal + to the given object (). + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are exactly equal. + Note: Due to floating-point precision errors, consider using + instead, which is more reliable. + + The other vector. + Whether or not the vectors are exactly equal. + + + + Returns if this vector and are approximately equal, + by running on each component. + + The other vector to compare. + Whether or not the vectors are approximately equal. + + + + Returns if this vector's values are approximately zero, + by running on each component. + This method is faster than using with one value + as a zero vector. + + Whether or not the vector is approximately zero. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + 4-element structure that can be used to represent 4D grid coordinates or sets of integers. + + + + + Enumerated index values for the axes. + Returned by and . + + + + + The vector's X axis. + + + + + The vector's Y axis. + + + + + The vector's Z axis. + + + + + The vector's W axis. + + + + + The vector's X component. Also accessible by using the index position [0]. + + + + + The vector's Y component. Also accessible by using the index position [1]. + + + + + The vector's Z component. Also accessible by using the index position [2]. + + + + + The vector's W component. Also accessible by using the index position [3]. + + + + + Access vector components using their . + + + is not 0, 1, 2 or 3. + + + [0] is equivalent to , + [1] is equivalent to , + [2] is equivalent to . + [3] is equivalent to . + + + + + Helper method for deconstruction into a tuple. + + + + + Returns a new vector with all components in absolute values (i.e. positive). + + A vector with called on each component. + + + + Returns a new vector with all components clamped between the + components of and using + . + + The vector with minimum allowed values. + The vector with maximum allowed values. + The vector with all components clamped. + + + + Returns a new vector with all components clamped between + and using + . + + The minimum allowed value. + The maximum allowed value. + The vector with all components clamped. + + + + Returns the squared distance between this vector and . + This method runs faster than , so prefer it if + you need to compare vectors or need the squared distance for some formula. + + The other vector to use. + The squared distance between the two vectors. + + + + Returns the distance between this vector and . + + + The other vector to use. + The distance between the two vectors. + + + + Returns the length (magnitude) of this vector. + + + The length of this vector. + + + + Returns the squared length (squared magnitude) of this vector. + This method runs faster than , so prefer it if + you need to compare vectors or need the squared length for some formula. + + The squared length of this vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4I(Mathf.Max(X, with.X), Mathf.Max(Y, with.Y), Mathf.Max(Z, with.Z), Mathf.Max(W, with.W)). + + The other vector to use. + The resulting maximum vector. + + + + Returns the result of the component-wise maximum between + this vector and . + Equivalent to new Vector4I(Mathf.Max(X, with), Mathf.Max(Y, with), Mathf.Max(Z, with), Mathf.Max(W, with)). + + The other value to use. + The resulting maximum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4I(Mathf.Min(X, with.X), Mathf.Min(Y, with.Y), Mathf.Min(Z, with.Z), Mathf.Min(W, with.W)). + + The other vector to use. + The resulting minimum vector. + + + + Returns the result of the component-wise minimum between + this vector and . + Equivalent to new Vector4I(Mathf.Min(X, with), Mathf.Min(Y, with), Mathf.Min(Z, with), Mathf.Min(W, with)). + + The other value to use. + The resulting minimum vector. + + + + Returns the axis of the vector's highest value. See . + If all components are equal, this method returns . + + The index of the highest axis. + + + + Returns the axis of the vector's lowest value. See . + If all components are equal, this method returns . + + The index of the lowest axis. + + + + Returns a vector with each component set to one or negative one, depending + on the signs of this vector's components, or zero if the component is zero, + by calling on each component. + + A vector with all components as either 1, -1, or 0. + + + + Returns a new vector with each component snapped to the closest multiple of the corresponding component in . + + A vector value representing the step size to snap to. + The snapped vector. + + + + Returns a new vector with each component snapped to the closest multiple of . + + The step size to snap to. + The snapped vector. + + + + Min vector, a vector with all components equal to . Can be used as a negative integer equivalent of . + + Equivalent to new Vector4I(int.MinValue, int.MinValue, int.MinValue, int.MinValue). + + + + Max vector, a vector with all components equal to . Can be used as an integer equivalent of . + + Equivalent to new Vector4I(int.MaxValue, int.MaxValue, int.MaxValue, int.MaxValue). + + + + Zero vector, a vector with all components set to 0. + + Equivalent to new Vector4I(0, 0, 0, 0). + + + + One vector, a vector with all components set to 1. + + Equivalent to new Vector4I(1, 1, 1, 1). + + + + Constructs a new with the given components. + + The vector's X component. + The vector's Y component. + The vector's Z component. + The vector's W component. + + + + Adds each component of the + with the components of the given . + + The left vector. + The right vector. + The added vector. + + + + Subtracts each component of the + by the components of the given . + + The left vector. + The right vector. + The subtracted vector. + + + + Returns the negative value of the . + This is the same as writing new Vector4I(-v.X, -v.Y, -v.Z, -v.W). + This operation flips the direction of the vector while + keeping the same magnitude. + + The vector to negate/flip. + The negated/flipped vector. + + + + Multiplies each component of the + by the given . + + The vector to multiply. + The scale to multiply by. + The multiplied vector. + + + + Multiplies each component of the + by the given . + + The scale to multiply by. + The vector to multiply. + The multiplied vector. + + + + Multiplies each component of the + by the components of the given . + + The left vector. + The right vector. + The multiplied vector. + + + + Divides each component of the + by the given . + + The dividend vector. + The divisor value. + The divided vector. + + + + Divides each component of the + by the components of the given . + + The dividend vector. + The divisor vector. + The divided vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4I(10, -20, 30, -40) % 7); // Prints "(3, -6, 2, -5)" + + + The dividend vector. + The divisor value. + The remainder vector. + + + + Gets the remainder of each component of the + with the components of the given . + This operation uses truncated division, which is often not desired + as it does not work well with negative numbers. + Consider using instead + if you want to handle negative numbers. + + + + GD.Print(new Vector4I(10, -20, 30, -40) % new Vector4I(6, 7, 8, 9)); // Prints "(4, -6, 6, -4)" + + + The dividend vector. + The divisor vector. + The remainder vector. + + + + Returns if the vectors are equal. + + The left vector. + The right vector. + Whether or not the vectors are equal. + + + + Returns if the vectors are not equal. + + The left vector. + The right vector. + Whether or not the vectors are not equal. + + + + Compares two vectors by first checking if + the X value of the vector is less than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than the right. + + + + Compares two vectors by first checking if + the X value of the vector is less than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is less than or equal to the right. + + + + Compares two vectors by first checking if + the X value of the vector is greater than + or equal to the X value of the vector. + If the X values are exactly equal, then it repeats this check + with the Y, Z and finally W values of the two vectors. + This operator is useful for sorting vectors. + + The left vector. + The right vector. + Whether or not the left is greater than or equal to the right. + + + + Converts this to a . + + The vector to convert. + + + + Converts a to a by truncating + components' fractional parts (rounding towards zero). For a different + behavior consider passing the result of , + or to this conversion operator instead. + + The vector to convert. + + + + Returns if the vector is equal + to the given object (). + + The object to compare with. + Whether or not the vector and the object are equal. + + + + Returns if the vectors are equal. + + The other vector. + Whether or not the vectors are equal. + + + + Serves as the hash function for . + + A hash code for this vector. + + + + Converts this to a string. + + A string representation of this vector. + + + + Converts this to a string with the given . + + A string representation of this vector. + + + + Base resource for 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 , otherwise should be used instead. + You can access the time information as read-only parameter which is processed and stored in the previous frame for all nodes except . + Note: If multiple inputs exist in the , which time information takes precedence depends on the type of . + + var current_length = $AnimationTree[parameters/AnimationNodeName/current_length] + var current_position = $AnimationTree[parameters/AnimationNodeName/current_position] + var current_delta = $AnimationTree[parameters/AnimationNodeName/current_delta] + + + + + + + + + + + + Do not use filtering. + + + + + Paths matching the filter will be allowed to pass. + + + + + Paths matching the filter will be discarded. + + + + + Paths matching the filter will be blended (by the blend value). + + + + + If , filtering is enabled. + + + + + When inheriting from , implement this virtual method to override the text caption for this animation node. + + + + + When inheriting from , implement this virtual method to return a child animation node by its . + + + + + When inheriting from , implement this virtual method to return all child animation nodes in order as a name: node dictionary. + + + + + When inheriting from , implement this virtual method to return the default value of a . Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. + + + + + When inheriting from , 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 . + + + + + When inheriting from , implement this virtual method to return whether the blend tree editor should display filter editing on this animation node. + + + + + When inheriting from , implement this virtual method to return whether the is read-only. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. + + + + + When inheriting from , implement this virtual method to run some code when this animation node is processed. The parameter is a relative delta, unless is , in which case it is absolute. + Here, call the , or functions. You can also use and to modify local memory. + This function should return the delta. + + + + + Adds an input to the animation node. This is only useful for animation nodes created for use in an . If the addition fails, returns . + + + + + Removes an input, call this only when inactive. + + + + + Sets the name of the input at the given index. If the setting fails, returns . + + + + + Gets the name of an input by index. + + + + + Amount of inputs in this animation node, only useful for animation nodes that go into . + + + + + Returns the input index which corresponds to . If not found, returns -1. + + + + + Adds or removes a path for the filter. + + + + + Returns if the given path is filtered. + + + + + Returns the object id of the that owns this node. + Note: This method should only be called from within the method, and will return an invalid id otherwise. + + + + + Returns if this animation node is being processed in test-only mode. + + + + + Blend an animation by amount (name must be valid in the linked ). A and may be passed, as well as whether happened. + A is used by internal processing immediately after the loop. See also . + + + + + Blend another animation node (in case this animation node contains child animation nodes). This function is only useful if you inherit from instead, otherwise editors will not display your animation node for addition. + + + + + Blend an input. This is only useful for animation nodes created for an . The parameter is a relative delta, unless is , in which case it is absolute. A filter mode may be optionally passed (see for options). + + + + + Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes. + + + + + Gets the value of a parameter. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. + + + + + Emitted by nodes that inherit from this class and that have an internal tree when one of their animation nodes changes. The animation nodes that emit this signal are , , , and . + + + + + Represents the method that handles the event of a class. + + + + + Emitted by nodes that inherit from this class and that have an internal tree when one of their animation node names changes. The animation nodes that emit this signal are , , , and . + + + + + Represents the method that handles the event of a class. + + + + + Emitted by nodes that inherit from this class and that have an internal tree when one of their animation nodes removes. The animation nodes that emit this signal are , , , and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'filter_enabled' property. + + + + + Cached name for the 'filters' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_caption' method. + + + + + Cached name for the '_get_child_by_name' method. + + + + + Cached name for the '_get_child_nodes' method. + + + + + Cached name for the '_get_parameter_default_value' method. + + + + + Cached name for the '_get_parameter_list' method. + + + + + Cached name for the '_has_filter' method. + + + + + Cached name for the '_is_parameter_read_only' method. + + + + + Cached name for the '_process' method. + + + + + Cached name for the 'add_input' method. + + + + + Cached name for the 'remove_input' method. + + + + + Cached name for the 'set_input_name' method. + + + + + Cached name for the 'get_input_name' method. + + + + + Cached name for the 'get_input_count' method. + + + + + Cached name for the 'find_input' method. + + + + + Cached name for the 'set_filter_path' method. + + + + + Cached name for the 'is_path_filtered' method. + + + + + Cached name for the 'set_filter_enabled' method. + + + + + Cached name for the 'is_filter_enabled' method. + + + + + Cached name for the 'get_processing_animation_tree_instance_id' method. + + + + + Cached name for the 'is_process_testing' method. + + + + + Cached name for the '_set_filters' method. + + + + + Cached name for the '_get_filters' method. + + + + + Cached name for the 'blend_animation' method. + + + + + Cached name for the 'blend_node' method. + + + + + Cached name for the 'blend_input' method. + + + + + Cached name for the 'set_parameter' method. + + + + + Cached name for the 'get_parameter' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tree_changed' signal. + + + + + Cached name for the 'animation_node_renamed' signal. + + + + + Cached name for the 'animation_node_removed' signal. + + + + + An animation player is used for general-purpose playback of animations. It contains a dictionary of resources and custom blend times between animation transitions. + Some methods and properties use a single key to reference an animation directly. These keys are formatted as the key for the library, followed by a forward slash, then the key for the animation within the library, for example "movement/run". If the library's key is an empty string (known as the default library), the forward slash is omitted, being the same key used by the library. + is better-suited than for more complex animations, for example ones with non-trivial timings. It can also be used over if the animation track editor is more convenient than doing it in code. + Updating the target properties of animations occurs at the process frame. + + + + + + + + + + + + + + The key of the currently playing animation. If no animation is playing, the property's value is an empty string. Changing this value does not restart the animation. See for more information on playing animations. + Note: While this property appears in the Inspector, it's not meant to be edited, and it's not saved in the scene. This property is mainly used to get the currently playing animation, and internally for animation playback tracks. For more information, see . + + + + + If playing, the current animation's key, otherwise, the animation last played. When set, this changes the animation, but will not play it unless already playing. See also . + + + + + The key of the animation to play when the scene loads. + + + + + The length (in seconds) of the currently playing animation. + + + + + The position (in seconds) of the currently playing animation. + + + + + If , performs before playback automatically. This means just is executed with default arguments instead of . + Note: Capture interpolation is only performed if the animation contains a capture track. See also . + + + + + See also and . + If is negative value, the duration is set to the interval between the current position and the first key. + + + + + The transition type of the capture interpolation. See also . + + + + + The ease type of the capture interpolation. See also . + + + + + The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision. + + + + + The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed. + If set to a negative value, the animation is played in reverse. If set to 0, the animation will not advance. + + + + + If and the engine is running in Movie Maker mode (see ), exits the engine with as soon as an animation is done playing in this . A message is printed when the engine quits for this reason. + Note: This obeys the same logic as the signal, so it will not quit the engine if the animation is set to be looping. + + + + + Triggers the animation when the animation completes. + + + + + Returns the key of the animation which is queued to play after the animation. + + + + + Specifies a blend time (in seconds) between two animations, referenced by their keys. + + + + + Returns the blend time (in seconds) between two animations, referenced by their keys. + + + + + Plays the animation with key . Custom blend times and speed can be set. + The option only affects when switching to a new animation track, or if the same track but at the start or end. It does not affect resuming playback that was paused in the middle of an animation. If is negative and is , the animation will play backwards (which is equivalent to calling ). + The keeps track of its current or last played animation with . If this method is called with that same animation , or with no parameter, the assigned animation will resume playing if it was paused. + Note: The animation will be updated the next time the is processed. If other variables are updated at the same time this is called, they may be updated too early. To perform the update immediately, call advance(0). + + + + + Plays the animation with key and the section starting from and ending on . + If the start marker is empty, the section starts from the beginning of the animation. If the end marker is empty, the section ends on the end of the animation. See also . + + + + + Plays the animation with key and the section starting from and ending on . See also . + Setting to a value outside the range of the animation means the start of the animation will be used instead, and setting to a value outside the range of the animation means the end of the animation will be used instead. cannot be equal to . + + + + + Plays the animation with key in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, so see its description for more information. + + + + + Plays the animation with key and the section starting from and ending on in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, see its description for more information. + + + + + Plays the animation with key and the section starting from and ending on in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, see its description for more information. + + + + + See also . + You can use this method to use more detailed options for capture than those performed by . When is , this method is almost the same as the following: + + capture(name, duration, trans_type, ease_type) + play(name, custom_blend, custom_speed, from_end) + + If is blank, it specifies . + If is a negative value, the duration is set to the interval between the current position and the first key, when is , uses the interval between the current position and the last key instead. + Note: The takes into account, but does not, because the capture cache is interpolated with the blend result and the result may contain multiple animations. + + + + + Pauses the currently playing animation. The will be kept and calling or without arguments or with the same animation name as will resume the animation. + See also . + + + + + Stops the currently playing animation. The animation position is reset to 0 and the custom_speed is reset to 1.0. See also . + If is , the animation state is not updated visually. + Note: The method / audio / animation playback tracks will not be processed by this method. + + + + + Returns if an animation is currently playing (even if and/or custom_speed are 0). + + + + + Queues an animation for playback once the current animation and all previously queued animations are done. + Note: If a looped animation is currently playing, the queued animation will never play unless the looped animation is stopped somehow. + + + + + Returns a list of the animation keys that are currently queued to play. + + + + + Clears all queued, unplayed animations. + + + + + Returns the actual playing speed of current animation or 0 if not playing. This speed is the property multiplied by custom_speed argument specified when calling the method. + Returns a negative value if the current animation is playing backwards. + + + + + Changes the start and end markers of the section being played. The current playback position will be clamped within the new section. See also . + If the argument is empty, the section uses the beginning or end of the animation. If both are empty, it means that the section is not set. + + + + + Changes the start and end times of the section being played. The current playback position will be clamped within the new section. See also . + + + + + Resets the current section if section is set. + + + + + Returns the start time of the section currently being played. + + + + + Returns the end time of the section currently being played. + + + + + Returns if an animation is currently playing with section. + + + + + Seeks the animation to the point in time (in seconds). If is , the animation updates too, otherwise it updates at process time. Events between the current frame and are skipped. + If is , the method / audio / animation playback tracks will not be processed. + Note: Seeking to the end of the animation doesn't emit . If you want to skip animation and emit the signal, use . + + + + + Sets the process notification in which to update animations. + + + + + Returns the process notification in which to update animations. + + + + + Sets the call mode used for "Call Method" tracks. + + + + + Returns the call mode used for "Call Method" tracks. + + + + + Sets the node which node path references will travel from. + + + + + Returns the node which node path references will travel from. + + + + + Seeks the animation to the point in time (in seconds). If is , the animation updates too, otherwise it updates at process time. Events between the current frame and are skipped. + If is , the method / audio / animation playback tracks will not be processed. + Note: Seeking to the end of the animation doesn't emit . If you want to skip animation and emit the signal, use . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a queued animation plays after the previous animation finished. See also . + Note: The signal is not emitted when the animation is changed via or by an . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'current_animation' property. + + + + + Cached name for the 'assigned_animation' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'current_animation_length' property. + + + + + Cached name for the 'current_animation_position' property. + + + + + Cached name for the 'playback_auto_capture' property. + + + + + Cached name for the 'playback_auto_capture_duration' property. + + + + + Cached name for the 'playback_auto_capture_transition_type' property. + + + + + Cached name for the 'playback_auto_capture_ease_type' property. + + + + + Cached name for the 'playback_default_blend_time' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'movie_quit_on_finish' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'animation_set_next' method. + + + + + Cached name for the 'animation_get_next' method. + + + + + Cached name for the 'set_blend_time' method. + + + + + Cached name for the 'get_blend_time' method. + + + + + Cached name for the 'set_default_blend_time' method. + + + + + Cached name for the 'get_default_blend_time' method. + + + + + Cached name for the 'set_auto_capture' method. + + + + + Cached name for the 'is_auto_capture' method. + + + + + Cached name for the 'set_auto_capture_duration' method. + + + + + Cached name for the 'get_auto_capture_duration' method. + + + + + Cached name for the 'set_auto_capture_transition_type' method. + + + + + Cached name for the 'get_auto_capture_transition_type' method. + + + + + Cached name for the 'set_auto_capture_ease_type' method. + + + + + Cached name for the 'get_auto_capture_ease_type' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'play_section_with_markers' method. + + + + + Cached name for the 'play_section' method. + + + + + Cached name for the 'play_backwards' method. + + + + + Cached name for the 'play_section_with_markers_backwards' method. + + + + + Cached name for the 'play_section_backwards' method. + + + + + Cached name for the 'play_with_capture' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'set_current_animation' method. + + + + + Cached name for the 'get_current_animation' method. + + + + + Cached name for the 'set_assigned_animation' method. + + + + + Cached name for the 'get_assigned_animation' method. + + + + + Cached name for the 'queue' method. + + + + + Cached name for the 'get_queue' method. + + + + + Cached name for the 'clear_queue' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_playing_speed' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'get_autoplay' method. + + + + + Cached name for the 'set_movie_quit_on_finish_enabled' method. + + + + + Cached name for the 'is_movie_quit_on_finish_enabled' method. + + + + + Cached name for the 'get_current_animation_position' method. + + + + + Cached name for the 'get_current_animation_length' method. + + + + + Cached name for the 'set_section_with_markers' method. + + + + + Cached name for the 'set_section' method. + + + + + Cached name for the 'reset_section' method. + + + + + Cached name for the 'get_section_start_time' method. + + + + + Cached name for the 'get_section_end_time' method. + + + + + Cached name for the 'has_section' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'set_process_callback' method. + + + + + Cached name for the 'get_process_callback' method. + + + + + Cached name for the 'set_method_call_mode' method. + + + + + Cached name for the 'get_method_call_mode' method. + + + + + Cached name for the 'set_root' method. + + + + + Cached name for the 'get_root' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'current_animation_changed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + A node used for advanced animation transitions in an . + Note: When linked with an , several properties and methods of the corresponding will not function as expected. Playback and transitions should be handled using only the and its constituent (s). The node should be used solely for adding, deleting, and editing animations. + + + + + + + + The root animation node of this . See . + + + + + The path to the used to evaluate the if one is not explicitly specified internally. + + + + + The path to the used for animating. + + + + + Sets the process notification in which to update animations. + + + + + Returns the process notification in which to update animations. + + + + + Emitted when the is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tree_root' property. + + + + + Cached name for the 'advance_expression_base_node' property. + + + + + Cached name for the 'anim_player' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tree_root' method. + + + + + Cached name for the 'get_tree_root' method. + + + + + Cached name for the 'set_advance_expression_base_node' method. + + + + + Cached name for the 'get_advance_expression_base_node' method. + + + + + Cached name for the 'set_animation_player' method. + + + + + Cached name for the 'get_animation_player' method. + + + + + Cached name for the 'set_process_callback' method. + + + + + Cached name for the 'get_process_callback' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'animation_player_changed' signal. + + + + + CodeEdit is a specialized designed for editing plain text code files. It has many features commonly found in code editors such as line numbers, line folding, code completion, indent management, and string/comment management. + Note: Regardless of locale, will by default always use left-to-right text direction to correctly display source code. + + + + + + + + Marks the option as a class. + + + + + Marks the option as a function. + + + + + Marks the option as a Godot signal. + + + + + Marks the option as a variable. + + + + + Marks the option as a member. + + + + + Marks the option as an enum entry. + + + + + Marks the option as a constant. + + + + + Marks the option as a Godot node path. + + + + + Marks the option as a file path. + + + + + Marks the option as unclassified or plain text. + + + + + 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). + + + + + 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. + + + + + The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons). + + + + + The option is from other engine code, not covered by the other enum constants - e.g. built-in classes. + + + + + Set when a validated word from is clicked, the should be emitted. + + + + + Set when a word is hovered, the should be emitted. + + + + + If , lines can be folded. Otherwise, line folding methods like will not work and will always return . See . + + + + + Draws vertical lines at the provided columns. The first entry is considered a main hard guideline and is draw more prominently. + + + + + If , breakpoints are drawn in the gutter. This gutter is shared with bookmarks and executing lines. Clicking the gutter will toggle the breakpoint for the line, see . + + + + + If , bookmarks are drawn in the gutter. This gutter is shared with breakpoints and executing lines. See . + + + + + If , executing lines are marked in the gutter. This gutter is shared with breakpoints and bookmarks. See . + + + + + If , the line number gutter is drawn. Line numbers start at 1 and are incremented for each line of text. Clicking and dragging in the line number gutter will select entire lines of text. + + + + + If , line numbers drawn in the gutter are zero padded based on the total line count. Requires to be set to . + + + + + If , the fold gutter is drawn. In this gutter, the can_fold_code_region icon is drawn for each foldable line (see ) and the folded_code_region icon is drawn for each folded line (see ). These icons can be clicked to toggle the fold state, see . must be to show icons. + + + + + Sets the string delimiters. All existing string delimiters will be removed. + + + + + Sets the comment delimiters. All existing comment delimiters will be removed. + + + + + If , the ProjectSettings.input/ui_text_completion_query action requests code completion. To handle it, see or . + + + + + Sets prefixes that will trigger code completion. + + + + + Size of the tabulation indent (one Tab press) in characters. If is enabled the number of spaces to use. + + + + + Use spaces instead of tabs for indentation. + + + + + If , an extra indent is automatically inserted when a new line is added and a prefix in is found. If a brace pair opening key is found, the matching closing brace will be moved to another new line (see ). + + + + + Prefixes to trigger an automatic indent. Used when is set to . + + + + + If , uses to automatically insert the closing brace when the opening brace is inserted by typing or autocompletion. Also automatically removes the closing brace when using backspace on the opening brace. + + + + + If , highlights brace pairs when the caret is on either one, using . If matching, the pairs will be underlined. If a brace is unmatched, it is colored with brace_mismatch_color. + + + + + Sets the brace pairs to be autocompleted. For each entry in the dictionary, the key is the opening brace and the value is the closing brace that matches it. A brace is a made of symbols. See and . + + + + + Override this method to define how the selected entry should be inserted. If is , any existing text should be replaced. + + + + + Override this method to define what items in should be displayed. + Both and the return is a of , see for content. + + + + + Override this method to define what happens when the user requests code completion. If is , any checks should be bypassed. + + + + + If there is no selection, indentation is inserted at the caret. Otherwise, the selected lines are indented like . Equivalent to the ProjectSettings.input/ui_text_indent action. The indentation characters used depend on and . + + + + + Indents all lines that are selected or have a caret on them. Uses spaces or a tab depending on . See . + + + + + Unindents all lines that are selected or have a caret on them. Uses spaces or a tab depending on . Equivalent to the ProjectSettings.input/ui_text_dedent action. See . + + + + + Converts the indents of lines between and to tabs or spaces as set by . + Values of -1 convert the entire text. + + + + + Adds a brace pair. + Both the start and end keys must be symbols. Only the start key has to be unique. + + + + + Returns if open key exists. + + + + + Returns if close key exists. + + + + + Gets the matching auto brace close key for . + + + + + Sets the given line as a breakpoint. If and is , draws the breakpoint icon in the gutter for this line. See and . + + + + + Returns if the given line is breakpointed. See . + + + + + Clears all breakpointed lines. + + + + + Gets all breakpointed lines. + + + + + Sets the given line as bookmarked. If and is , draws the bookmark icon in the gutter for this line. See and . + + + + + Returns if the given line is bookmarked. See . + + + + + Clears all bookmarked lines. + + + + + Gets all bookmarked lines. + + + + + Sets the given line as executing. If and is , draws the executing_line icon in the gutter for this line. See and . + + + + + Returns if the given line is marked as executing. See . + + + + + Clears all executed lines. + + + + + Gets all executing lines. + + + + + Returns if the given line is foldable. A line is foldable if it is the start of a valid code region (see ), if it is the start of a comment or string block, or if the next non-empty line is more indented (see ). + + + + + Folds the given line, if possible (see ). + + + + + Unfolds the given line if it is folded or if it is hidden under a folded line. + + + + + Folds all lines that are possible to be folded (see ). + + + + + Unfolds all lines that are folded. + + + + + Toggle the folding of the code block at the given line. + + + + + Toggle the folding of the code block on all lines with a caret on them. + + + + + Returns if the given line is folded. See . + + + + + Returns all lines that are currently folded. + + + + + Creates a new code region with the selection. At least one single line comment delimiter have to be defined (see ). + A code region is a part of code that is highlighted when folded and can help organize your script. + Code region start and end tags can be customized (see ). + Code regions are delimited using start and end tags (respectively region and endregion by default) preceded by one line comment delimiter. (eg. #region and #endregion) + + + + + Returns the code region start tag (without comment delimiter). + + + + + Returns the code region end tag (without comment delimiter). + + + + + Sets the code region start and end tags (without comment delimiter). + + + + + Returns if the given line is a code region start. See . + + + + + Returns if the given line is a code region end. See . + + + + + Defines a string delimiter from to . Both keys should be symbols, and must not be shared with other delimiters. + If is or is an empty , the region does not carry over to the next line. + + + + + Removes the string delimiter with . + + + + + Returns if string exists. + + + + + Removes all string delimiters. + + + + + Returns the delimiter index if is in a string. If is not provided, will return the delimiter index if the entire is a string. Otherwise -1. + + + + + Adds a comment delimiter from to . Both keys should be symbols, and must not be shared with other delimiters. + If is or is an empty , the region does not carry over to the next line. + + + + + Removes the comment delimiter with . + + + + + Returns if comment exists. + + + + + Removes all comment delimiters. + + + + + Returns delimiter index if is in a comment. If is not provided, will return delimiter index if the entire is a comment. Otherwise -1. + + + + + Gets the start key for a string or comment region index. + + + + + Gets the end key for a string or comment region index. + + + + + If is in a string or comment, returns the start position of the region. If not or no start could be found, both values will be -1. + + + + + If is in a string or comment, returns the end position of the region. If not or no end could be found, both values will be -1. + + + + + Sets the code hint text. Pass an empty string to clear. + + + + + If , the code hint will draw below the main caret. If , the code hint will draw above the main caret. See . + + + + + Returns the full text with char 0xFFFF at the caret location. + + + + + Emits , if is will bypass all checks. Otherwise will check that the caret is in a word or in front of a prefix. Will ignore the request if all current options are of type file path, node path, or signal. + + + + + Submits an item to the queue of potential candidates for the autocomplete menu. Call to update the list. + indicates location of the option relative to the location of the code completion query. See for how to set this value. + Note: This list will replace all current candidates. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Submits all completion options added with . Will try to force the autocomplete menu to popup, if is . + Note: This will replace all current candidates. + + + + + Gets all completion options, see for return content. + + + + + Gets the completion option at . The return has the following key-values: + kind: + display_text: Text that is shown on the autocomplete menu. + insert_text: Text that is to be inserted when this item is selected. + font_color: Color of the text on the autocomplete menu. + icon: Icon to draw on the autocomplete menu. + default_value: Value of the symbol. + + + + + Gets the index of the current selected completion option. + + + + + Sets the current selected completion option. + + + + + Inserts the selected entry into the text. If is , any existing text is replaced rather than merged. + + + + + Cancels the autocomplete menu. + + + + + Returns the full text with char 0xFFFF at the cursor location. + + + + + Returns the full text with char 0xFFFF at the specified location. + + + + + Sets the symbol emitted by as a valid lookup. + + + + + Moves all lines up that are selected or have a caret on them. + + + + + Moves all lines down that are selected or have a caret on them. + + + + + Deletes all lines that are selected or have a caret on them. + + + + + Duplicates all selected text and duplicates all lines with a caret on them. + + + + + Duplicates all lines currently selected with any caret. Duplicates the entire line beneath the current one no matter where the caret is within the line. + + + + + Submits an item to the queue of potential candidates for the autocomplete menu. Call to update the list. + indicates location of the option relative to the location of the code completion query. See for how to set this value. + Note: This list will replace all current candidates. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is (Variant)(0). + + + + Represents the method that handles the event of a class. + + + + + Emitted when a breakpoint is added or removed from a line. If the line is moved via backspace a removed is emitted at the old line. + + + + + Emitted when the user requests code completion. This signal will not be sent if is overridden or is . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user has clicked on a valid symbol. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user hovers over a symbol. The symbol should be validated and responded to, by calling . + Note: must be for this signal to be emitted. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user hovers over a symbol. Unlike , this signal is not emitted immediately, but when the cursor is over the symbol for ProjectSettings.gui/timers/tooltip_delay_sec seconds. + Note: must be for this signal to be emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'symbol_lookup_on_click' property. + + + + + Cached name for the 'symbol_tooltip_on_hover' property. + + + + + Cached name for the 'line_folding' property. + + + + + Cached name for the 'line_length_guidelines' property. + + + + + Cached name for the 'gutters_draw_breakpoints_gutter' property. + + + + + Cached name for the 'gutters_draw_bookmarks' property. + + + + + Cached name for the 'gutters_draw_executing_lines' property. + + + + + Cached name for the 'gutters_draw_line_numbers' property. + + + + + Cached name for the 'gutters_zero_pad_line_numbers' property. + + + + + Cached name for the 'gutters_draw_fold_gutter' property. + + + + + Cached name for the 'delimiter_strings' property. + + + + + Cached name for the 'delimiter_comments' property. + + + + + Cached name for the 'code_completion_enabled' property. + + + + + Cached name for the 'code_completion_prefixes' property. + + + + + Cached name for the 'indent_size' property. + + + + + Cached name for the 'indent_use_spaces' property. + + + + + Cached name for the 'indent_automatic' property. + + + + + Cached name for the 'indent_automatic_prefixes' property. + + + + + Cached name for the 'auto_brace_completion_enabled' property. + + + + + Cached name for the 'auto_brace_completion_highlight_matching' property. + + + + + Cached name for the 'auto_brace_completion_pairs' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_confirm_code_completion' method. + + + + + Cached name for the '_filter_code_completion_candidates' method. + + + + + Cached name for the '_request_code_completion' method. + + + + + Cached name for the 'set_indent_size' method. + + + + + Cached name for the 'get_indent_size' method. + + + + + Cached name for the 'set_indent_using_spaces' method. + + + + + Cached name for the 'is_indent_using_spaces' method. + + + + + Cached name for the 'set_auto_indent_enabled' method. + + + + + Cached name for the 'is_auto_indent_enabled' method. + + + + + Cached name for the 'set_auto_indent_prefixes' method. + + + + + Cached name for the 'get_auto_indent_prefixes' method. + + + + + Cached name for the 'do_indent' method. + + + + + Cached name for the 'indent_lines' method. + + + + + Cached name for the 'unindent_lines' method. + + + + + Cached name for the 'convert_indent' method. + + + + + Cached name for the 'set_auto_brace_completion_enabled' method. + + + + + Cached name for the 'is_auto_brace_completion_enabled' method. + + + + + Cached name for the 'set_highlight_matching_braces_enabled' method. + + + + + Cached name for the 'is_highlight_matching_braces_enabled' method. + + + + + Cached name for the 'add_auto_brace_completion_pair' method. + + + + + Cached name for the 'set_auto_brace_completion_pairs' method. + + + + + Cached name for the 'get_auto_brace_completion_pairs' method. + + + + + Cached name for the 'has_auto_brace_completion_open_key' method. + + + + + Cached name for the 'has_auto_brace_completion_close_key' method. + + + + + Cached name for the 'get_auto_brace_completion_close_key' method. + + + + + Cached name for the 'set_draw_breakpoints_gutter' method. + + + + + Cached name for the 'is_drawing_breakpoints_gutter' method. + + + + + Cached name for the 'set_draw_bookmarks_gutter' method. + + + + + Cached name for the 'is_drawing_bookmarks_gutter' method. + + + + + Cached name for the 'set_draw_executing_lines_gutter' method. + + + + + Cached name for the 'is_drawing_executing_lines_gutter' method. + + + + + Cached name for the 'set_line_as_breakpoint' method. + + + + + Cached name for the 'is_line_breakpointed' method. + + + + + Cached name for the 'clear_breakpointed_lines' method. + + + + + Cached name for the 'get_breakpointed_lines' method. + + + + + Cached name for the 'set_line_as_bookmarked' method. + + + + + Cached name for the 'is_line_bookmarked' method. + + + + + Cached name for the 'clear_bookmarked_lines' method. + + + + + Cached name for the 'get_bookmarked_lines' method. + + + + + Cached name for the 'set_line_as_executing' method. + + + + + Cached name for the 'is_line_executing' method. + + + + + Cached name for the 'clear_executing_lines' method. + + + + + Cached name for the 'get_executing_lines' method. + + + + + Cached name for the 'set_draw_line_numbers' method. + + + + + Cached name for the 'is_draw_line_numbers_enabled' method. + + + + + Cached name for the 'set_line_numbers_zero_padded' method. + + + + + Cached name for the 'is_line_numbers_zero_padded' method. + + + + + Cached name for the 'set_draw_fold_gutter' method. + + + + + Cached name for the 'is_drawing_fold_gutter' method. + + + + + Cached name for the 'set_line_folding_enabled' method. + + + + + Cached name for the 'is_line_folding_enabled' method. + + + + + Cached name for the 'can_fold_line' method. + + + + + Cached name for the 'fold_line' method. + + + + + Cached name for the 'unfold_line' method. + + + + + Cached name for the 'fold_all_lines' method. + + + + + Cached name for the 'unfold_all_lines' method. + + + + + Cached name for the 'toggle_foldable_line' method. + + + + + Cached name for the 'toggle_foldable_lines_at_carets' method. + + + + + Cached name for the 'is_line_folded' method. + + + + + Cached name for the 'get_folded_lines' method. + + + + + Cached name for the 'create_code_region' method. + + + + + Cached name for the 'get_code_region_start_tag' method. + + + + + Cached name for the 'get_code_region_end_tag' method. + + + + + Cached name for the 'set_code_region_tags' method. + + + + + Cached name for the 'is_line_code_region_start' method. + + + + + Cached name for the 'is_line_code_region_end' method. + + + + + Cached name for the 'add_string_delimiter' method. + + + + + Cached name for the 'remove_string_delimiter' method. + + + + + Cached name for the 'has_string_delimiter' method. + + + + + Cached name for the 'set_string_delimiters' method. + + + + + Cached name for the 'clear_string_delimiters' method. + + + + + Cached name for the 'get_string_delimiters' method. + + + + + Cached name for the 'is_in_string' method. + + + + + Cached name for the 'add_comment_delimiter' method. + + + + + Cached name for the 'remove_comment_delimiter' method. + + + + + Cached name for the 'has_comment_delimiter' method. + + + + + Cached name for the 'set_comment_delimiters' method. + + + + + Cached name for the 'clear_comment_delimiters' method. + + + + + Cached name for the 'get_comment_delimiters' method. + + + + + Cached name for the 'is_in_comment' method. + + + + + Cached name for the 'get_delimiter_start_key' method. + + + + + Cached name for the 'get_delimiter_end_key' method. + + + + + Cached name for the 'get_delimiter_start_position' method. + + + + + Cached name for the 'get_delimiter_end_position' method. + + + + + Cached name for the 'set_code_hint' method. + + + + + Cached name for the 'set_code_hint_draw_below' method. + + + + + Cached name for the 'get_text_for_code_completion' method. + + + + + Cached name for the 'request_code_completion' method. + + + + + Cached name for the 'add_code_completion_option' method. + + + + + Cached name for the 'update_code_completion_options' method. + + + + + Cached name for the 'get_code_completion_options' method. + + + + + Cached name for the 'get_code_completion_option' method. + + + + + Cached name for the 'get_code_completion_selected_index' method. + + + + + Cached name for the 'set_code_completion_selected_index' method. + + + + + Cached name for the 'confirm_code_completion' method. + + + + + Cached name for the 'cancel_code_completion' method. + + + + + Cached name for the 'set_code_completion_enabled' method. + + + + + Cached name for the 'is_code_completion_enabled' method. + + + + + Cached name for the 'set_code_completion_prefixes' method. + + + + + Cached name for the 'get_code_completion_prefixes' method. + + + + + Cached name for the 'set_line_length_guidelines' method. + + + + + Cached name for the 'get_line_length_guidelines' method. + + + + + Cached name for the 'set_symbol_lookup_on_click_enabled' method. + + + + + Cached name for the 'is_symbol_lookup_on_click_enabled' method. + + + + + Cached name for the 'get_text_for_symbol_lookup' method. + + + + + Cached name for the 'get_text_with_cursor_char' method. + + + + + Cached name for the 'set_symbol_lookup_word_as_valid' method. + + + + + Cached name for the 'set_symbol_tooltip_on_hover_enabled' method. + + + + + Cached name for the 'is_symbol_tooltip_on_hover_enabled' method. + + + + + Cached name for the 'move_lines_up' method. + + + + + Cached name for the 'move_lines_down' method. + + + + + Cached name for the 'delete_lines' method. + + + + + Cached name for the 'duplicate_selection' method. + + + + + Cached name for the 'duplicate_lines' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'breakpoint_toggled' signal. + + + + + Cached name for the 'code_completion_requested' signal. + + + + + Cached name for the 'symbol_lookup' signal. + + + + + Cached name for the 'symbol_validate' signal. + + + + + Cached name for the 'symbol_hovered' signal. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 3D. + + + + + + + + Calculates and returns all the vertex points of a convex shape defined by an array of . + + + + + Returns an array with 6 s that describe the sides of a box centered at the origin. The box size is defined by , which represents one (positive) corner of the box (i.e. half its actual size). + + + + + Returns an array of s closely bounding a faceted cylinder centered at the origin with radius and height . The parameter defines how many planes will be generated for the round part of the cylinder. The parameter describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Returns an array of s closely bounding a faceted capsule centered at the origin with radius and height . The parameter defines how many planes will be generated for the side part of the capsule, whereas gives the number of latitudinal steps at the bottom and top of the capsule. The parameter describes the axis along which the capsule is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Given the two 3D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 3D point on the 3D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 3D point on the 3D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns a containing weights based on how close a 3D position () is to a triangle's different vertices (, and ). This is useful for interpolating between the data of different vertices in a triangle. One example use case is using this to smoothly rotate over a mesh instead of relying solely on face normals. + Here is a more detailed explanation of barycentric coordinates. + + + + + Tests if the 3D ray starting at with the direction of intersects the triangle specified by , and . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Tests if the segment (, ) intersects the triangle , , . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Checks if the segment (, ) intersects the sphere that is located at and has radius . If no, returns an empty []. If yes, returns a [] containing the point of intersection and the sphere's normal at the point of intersection. + + + + + Checks if the segment (, ) intersects the cylinder with height that is centered at the origin and has radius . If no, returns an empty []. If an intersection takes place, the returned array contains the point of intersection and the cylinder's normal at the point of intersection. + + + + + Given a convex hull defined though the s in the array , tests if the segment (, ) intersects with that hull. If an intersection is found, returns a [] containing the point the intersection and the hull's normal. Otherwise, returns an empty array. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'compute_convex_mesh_points' method. + + + + + Cached name for the 'build_box_planes' method. + + + + + Cached name for the 'build_cylinder_planes' method. + + + + + Cached name for the 'build_capsule_planes' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'get_triangle_barycentric_coords' method. + + + + + Cached name for the 'ray_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_sphere' method. + + + + + Cached name for the 'segment_intersects_cylinder' method. + + + + + Cached name for the 'segment_intersects_convex' method. + + + + + Cached name for the 'clip_polygon' method. + + + + + Cached name for the 'tetrahedralize_delaunay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + by itself is only an empty container, representing an infinite grid where s can be placed. Each represents a node in the graph, a single unit of data in the connected scheme. , in turn, helps to control various interactions with nodes and between nodes. When the user attempts to connect, disconnect, or delete a , a signal is emitted in the , but no action is taken by default. It is the responsibility of the programmer utilizing this control to implement the necessary logic to determine how each request should be handled. + Performance: It is greatly advised to enable low-processor usage mode (see ) when using GraphEdits. + Note: Keep in mind that will also return the connection layer node named _connection_layer due to technical limitations. This behavior may change in future releases. + + + + + + + + + + + + + + + + + Mouse Wheel will zoom, Ctrl + Mouse Wheel will move the view. + + + + + Mouse Wheel will move the view, Ctrl + Mouse Wheel will zoom. + + + + + Draw the grid using solid lines. + + + + + Draw the grid using dots. + + + + + The scroll offset. + + + + + If , the grid is visible. + + + + + The pattern used for drawing the grid. + + + + + If , enables snapping. + + + + + The snapping distance in pixels, also determines the grid line distance. + + + + + Defines the control scheme for panning with mouse wheel. + + + + + If , enables disconnection of existing connections in the GraphEdit by dragging the right end. + + + + + The curvature of the lines between the nodes. 0 results in straight lines. + + + + + The thickness of the lines between the nodes. + + + + + If , the lines between nodes will use antialiasing. + + + + + The connections between s. + A connection is represented as a in the form of: + + { + from_node: StringName, + from_port: int, + to_node: StringName, + to_port: int, + keep_alive: bool + } + + Connections with keep_alive set to may be deleted automatically if invalid during a redraw. + + + + + The current zoom value. + + + + + The lower zoom limit. + + + + + The upper zoom limit. + + + + + The step of each zoom level. + + + + + If , the minimap is visible. + + + + + The size of the minimap rectangle. The map itself is based on the size of the grid area and is scaled to fit this rectangle. + + + + + The opacity of the minimap rectangle. + + + + + If , the menu toolbar is visible. + + + + + If , the label with the current zoom level is visible. The zoom level is displayed in percents. + + + + + If , buttons that allow to change and reset the zoom level are visible. + + + + + If , buttons that allow to configure grid and snapping options are visible. + + + + + If , the button to toggle the minimap is visible. + + + + + If , the button to automatically arrange graph nodes is visible. + + + + + Virtual method which can be overridden to customize how connections are drawn. + + + + + Returns whether the is in the input hot zone. + By default, a hot zone is a positioned such that its center is at .() (For output's case, call instead). The hot zone's width is twice the Theme Property port_grab_distance_horizontal, and its height is twice the port_grab_distance_vertical. + Below is a sample code to help get started: + + func _is_in_input_hotzone(in_node, in_port, mouse_position): + var port_size = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical")) + var port_pos = 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) + + + + + + Returns whether the is in the output hot zone. For more information on hot zones, see . + Below is a sample code to help get started: + + func _is_in_output_hotzone(in_node, in_port, mouse_position): + var port_size = Vector2(get_theme_constant("port_grab_distance_horizontal"), get_theme_constant("port_grab_distance_vertical")) + var port_pos = 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) + + + + + + This virtual method can be used to insert additional error detection while the user is dragging a connection over a valid port. + Return if the connection is indeed valid or return 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: + + public override bool _IsNodeHoverValid(StringName fromNode, int fromPort, StringName toNode, int toPort) + { + return fromNode != toNode; + } + + + + + + Create a connection between the of the and the of the . If the connection already exists, no connection is created. + Connections with set to may be deleted automatically if invalid during a redraw. + + + + + Returns if the of the is connected to the of the . + + + + + Removes the connection between the of the and the of the . If the connection does not exist, no connection is removed. + + + + + Sets the coloration of the connection between 's and 's with the color provided in the activity theme property. The color is linearly interpolated between the connection color and the activity color using as weight. + + + + + Returns the number of connections from of . + + + + + Returns the closest connection to the given point in screen space. If no connection is found within pixels, an empty is returned. + A connection is represented as a in the form of: + + { + from_node: StringName, + from_port: int, + to_node: StringName, + to_port: int, + keep_alive: bool + } + + For example, getting a connection at a given mouse position can be achieved like this: + + + + + + Returns an containing the list of connections that intersect with the given . + A connection is represented as a in the form of: + + { + from_node: StringName, + from_port: int, + to_node: StringName, + to_port: int, + keep_alive: bool + } + + + + + + Removes all connections between nodes. + + + + + Ends the creation of the current connection. In other words, if you are dragging a connection you can use this method to abort the process and remove the line that followed your cursor. + This is best used together with and to add custom behavior like node addition through shortcuts. + Note: This method suppresses any other connection request signals apart from . + + + + + Allows to disconnect nodes when dragging from the right port of the 's slot if it has the specified type. See also . + + + + + Disallows to disconnect nodes when dragging from the right port of the 's slot if it has the specified type. Use this to disable disconnection previously allowed with . + + + + + Allows to disconnect nodes when dragging from the left port of the 's slot if it has the specified type. See also . + + + + + Disallows to disconnect nodes when dragging from the left port of the 's slot if it has the specified type. Use this to disable disconnection previously allowed with . + + + + + Allows the connection between two different port types. The port type is defined individually for the left and the right port of each slot with the method. + See also and . + + + + + Disallows the connection between two different port types previously allowed by . The port type is defined individually for the left and the right port of each slot with the method. + See also . + + + + + Returns whether it's possible to make a connection between two different port types. The port type is defined individually for the left and the right port of each slot with the method. + See also and . + + + + + Returns the points which would make up a connection between and . + + + + + Attaches the to the . + + + + + Detaches the from the it is currently attached to. + + + + + Returns the that contains the with the given name. + + + + + Returns an array of node names that are attached to the with the given name. + + + + + Gets the that contains the zooming and grid snap controls in the top left of the graph. You can use this method to reposition the toolbar or to add your own custom controls to it. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Rearranges selected nodes in a layout with minimum crossings between connections and uniform horizontal and vertical gap between nodes. + + + + + Sets the specified as the one selected. + + + + + Create a connection between the of the and the of the . If the connection already exists, no connection is created. + Connections with set to may be deleted automatically if invalid during a redraw. + + + + + Represents the method that handles the event of a class. + + + + + Emitted to the GraphEdit when the connection between the fromPort of the fromNode and the toPort of the toNode is attempted to be created. + + + + + Represents the method that handles the event of a class. + + + + + Emitted to the GraphEdit when the connection between fromPort of fromNode and toPort of toNode is attempted to be removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user drags a connection from an output port into the empty space of the graph. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user drags a connection from an input port into the empty space of the graph. + + + + + Represents the method that handles the event of a class. + + + + + Emitted at the beginning of a connection drag. + + + + + Emitted at the end of a connection drag. + + + + + Emitted when this captures a ui_copy action (Ctrl + C by default). In general, this signal indicates that the selected s should be copied. + + + + + Emitted when this captures a ui_cut action (Ctrl + X by default). In general, this signal indicates that the selected s should be cut. + + + + + Emitted when this captures a ui_paste action (Ctrl + V by default). In general, this signal indicates that previously copied s should be pasted. + + + + + Emitted when this captures a ui_graph_duplicate action (Ctrl + D by default). In general, this signal indicates that the selected s should be duplicated. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this captures a ui_graph_delete action (Delete by default). + nodes is an array of node names that should be removed. These usually include all selected nodes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given node is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given node is deselected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the frame is resized to newRect. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a popup is requested. Happens on right-clicking in the GraphEdit. atPosition is the position of the mouse pointer when the signal is sent. + + + + + Emitted at the beginning of a 's movement. + + + + + Emitted at the end of a 's movement. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one or more s are dropped onto the named frame, when they were not previously attached to any other one. + elements is an array of s to be attached. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the scroll offset is changed by the user. It will not be emitted when changed in code. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_offset' property. + + + + + Cached name for the 'show_grid' property. + + + + + Cached name for the 'grid_pattern' property. + + + + + Cached name for the 'snapping_enabled' property. + + + + + Cached name for the 'snapping_distance' property. + + + + + Cached name for the 'panning_scheme' property. + + + + + Cached name for the 'right_disconnects' property. + + + + + Cached name for the 'connection_lines_curvature' property. + + + + + Cached name for the 'connection_lines_thickness' property. + + + + + Cached name for the 'connection_lines_antialiased' property. + + + + + Cached name for the 'connections' property. + + + + + Cached name for the 'zoom' property. + + + + + Cached name for the 'zoom_min' property. + + + + + Cached name for the 'zoom_max' property. + + + + + Cached name for the 'zoom_step' property. + + + + + Cached name for the 'minimap_enabled' property. + + + + + Cached name for the 'minimap_size' property. + + + + + Cached name for the 'minimap_opacity' property. + + + + + Cached name for the 'show_menu' property. + + + + + Cached name for the 'show_zoom_label' property. + + + + + Cached name for the 'show_zoom_buttons' property. + + + + + Cached name for the 'show_grid_buttons' property. + + + + + Cached name for the 'show_minimap_button' property. + + + + + Cached name for the 'show_arrange_button' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_connection_line' method. + + + + + Cached name for the '_is_in_input_hotzone' method. + + + + + Cached name for the '_is_in_output_hotzone' method. + + + + + Cached name for the '_is_node_hover_valid' method. + + + + + Cached name for the 'connect_node' method. + + + + + Cached name for the 'is_node_connected' method. + + + + + Cached name for the 'disconnect_node' method. + + + + + Cached name for the 'set_connection_activity' method. + + + + + Cached name for the 'set_connections' method. + + + + + Cached name for the 'get_connection_list' method. + + + + + Cached name for the 'get_connection_count' method. + + + + + Cached name for the 'get_closest_connection_at_point' method. + + + + + Cached name for the 'get_connections_intersecting_with_rect' method. + + + + + Cached name for the 'clear_connections' method. + + + + + Cached name for the 'force_connection_drag_end' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_scroll_offset' method. + + + + + Cached name for the 'add_valid_right_disconnect_type' method. + + + + + Cached name for the 'remove_valid_right_disconnect_type' method. + + + + + Cached name for the 'add_valid_left_disconnect_type' method. + + + + + Cached name for the 'remove_valid_left_disconnect_type' method. + + + + + Cached name for the 'add_valid_connection_type' method. + + + + + Cached name for the 'remove_valid_connection_type' method. + + + + + Cached name for the 'is_valid_connection_type' method. + + + + + Cached name for the 'get_connection_line' method. + + + + + Cached name for the 'attach_graph_element_to_frame' method. + + + + + Cached name for the 'detach_graph_element_from_frame' method. + + + + + Cached name for the 'get_element_frame' method. + + + + + Cached name for the 'get_attached_nodes_of_frame' method. + + + + + Cached name for the 'set_panning_scheme' method. + + + + + Cached name for the 'get_panning_scheme' method. + + + + + Cached name for the 'set_zoom' method. + + + + + Cached name for the 'get_zoom' method. + + + + + Cached name for the 'set_zoom_min' method. + + + + + Cached name for the 'get_zoom_min' method. + + + + + Cached name for the 'set_zoom_max' method. + + + + + Cached name for the 'get_zoom_max' method. + + + + + Cached name for the 'set_zoom_step' method. + + + + + Cached name for the 'get_zoom_step' method. + + + + + Cached name for the 'set_show_grid' method. + + + + + Cached name for the 'is_showing_grid' method. + + + + + Cached name for the 'set_grid_pattern' method. + + + + + Cached name for the 'get_grid_pattern' method. + + + + + Cached name for the 'set_snapping_enabled' method. + + + + + Cached name for the 'is_snapping_enabled' method. + + + + + Cached name for the 'set_snapping_distance' method. + + + + + Cached name for the 'get_snapping_distance' method. + + + + + Cached name for the 'set_connection_lines_curvature' method. + + + + + Cached name for the 'get_connection_lines_curvature' method. + + + + + Cached name for the 'set_connection_lines_thickness' method. + + + + + Cached name for the 'get_connection_lines_thickness' method. + + + + + Cached name for the 'set_connection_lines_antialiased' method. + + + + + Cached name for the 'is_connection_lines_antialiased' method. + + + + + Cached name for the 'set_minimap_size' method. + + + + + Cached name for the 'get_minimap_size' method. + + + + + Cached name for the 'set_minimap_opacity' method. + + + + + Cached name for the 'get_minimap_opacity' method. + + + + + Cached name for the 'set_minimap_enabled' method. + + + + + Cached name for the 'is_minimap_enabled' method. + + + + + Cached name for the 'set_show_menu' method. + + + + + Cached name for the 'is_showing_menu' method. + + + + + Cached name for the 'set_show_zoom_label' method. + + + + + Cached name for the 'is_showing_zoom_label' method. + + + + + Cached name for the 'set_show_grid_buttons' method. + + + + + Cached name for the 'is_showing_grid_buttons' method. + + + + + Cached name for the 'set_show_zoom_buttons' method. + + + + + Cached name for the 'is_showing_zoom_buttons' method. + + + + + Cached name for the 'set_show_minimap_button' method. + + + + + Cached name for the 'is_showing_minimap_button' method. + + + + + Cached name for the 'set_show_arrange_button' method. + + + + + Cached name for the 'is_showing_arrange_button' method. + + + + + Cached name for the 'set_right_disconnects' method. + + + + + Cached name for the 'is_right_disconnects_enabled' method. + + + + + Cached name for the 'get_menu_hbox' method. + + + + + Cached name for the 'arrange_nodes' method. + + + + + Cached name for the 'set_selected' method. + + + + + Cached name for the 'set_arrange_nodes_button_hidden' method. + + + + + Cached name for the 'is_arrange_nodes_button_hidden' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'connection_request' signal. + + + + + Cached name for the 'disconnection_request' signal. + + + + + Cached name for the 'connection_to_empty' signal. + + + + + Cached name for the 'connection_from_empty' signal. + + + + + Cached name for the 'connection_drag_started' signal. + + + + + Cached name for the 'connection_drag_ended' signal. + + + + + Cached name for the 'copy_nodes_request' signal. + + + + + Cached name for the 'cut_nodes_request' signal. + + + + + Cached name for the 'paste_nodes_request' signal. + + + + + Cached name for the 'duplicate_nodes_request' signal. + + + + + Cached name for the 'delete_nodes_request' signal. + + + + + Cached name for the 'node_selected' signal. + + + + + Cached name for the 'node_deselected' signal. + + + + + Cached name for the 'frame_rect_changed' signal. + + + + + Cached name for the 'popup_request' signal. + + + + + Cached name for the 'begin_node_move' signal. + + + + + Cached name for the 'end_node_move' signal. + + + + + Cached name for the 'graph_elements_linked_to_frame_request' signal. + + + + + Cached name for the 'scroll_offset_changed' signal. + + + + + allows to create nodes for a graph with customizable content based on its child controls. is derived from and it is responsible for placing its children on screen. This works similar to . Children, in turn, provide with so-called slots, each of which can have a connection port on either side. + Each slot is defined by its index and can provide the node with up to two ports: one on the left, and one on the right. By convention the left port is also referred to as the input port and the right port is referred to as the output port. Each port can be enabled and configured individually, using different type and color. The type is an arbitrary value that you can define using your own considerations. The parent 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 . The properties are grouped by each slot's index in the "Slot" section. + Note: While GraphNode is set up using slots and slot indices, connections are made between the ports which are enabled. Because of that uses the port's index and not the slot's index. You can use and to get the slot index from the port index. + + + + + + + + The text displayed in the GraphNode's title bar. + + + + + If , you can connect ports with different types, even if the connection was not explicitly allowed in the parent . + + + + + Returns the used for the title bar, only containing a for displaying the title by default. This can be used to add custom controls to the title bar such as option or close buttons. + + + + + Sets properties of the slot with the given . + If / is , a port will appear and the slot will be able to be connected from this side. + With / an arbitrary type can be assigned to each port. Two ports can be connected if they share the same type, or if the connection between their types is allowed in the parent (see ). Keep in mind that the has the final say in accepting the connection. Type compatibility simply allows the signal to be emitted. + Ports can be further customized using / and /. The color parameter adds a tint to the icon. The custom icon can be used to override the default port dot. + Additionally, can be used to enable or disable drawing of the background stylebox for each slot. See slot. + Individual properties can also be set using one of the set_slot_* methods. + Note: This method only sets properties of the slot. To create the slot itself, add a -derived child to the GraphNode. + + + + + Disables the slot with the given . This will remove the corresponding input and output port from the GraphNode. + + + + + Disables all slots of the GraphNode. This will remove all input/output ports from the GraphNode. + + + + + Returns if left (input) side of the slot with the given is enabled. + + + + + Toggles the left (input) side of the slot with the given . If is , a port will appear on the left side and the slot will be able to be connected from this side. + + + + + Sets the left (input) type of the slot with the given to . If the value is negative, all connections will be disallowed to be created via user inputs. + + + + + Returns the left (input) type of the slot with the given . + + + + + Sets the of the left (input) side of the slot with the given to . + + + + + Returns the left (input) of the slot with the given . + + + + + Sets the custom of the left (input) side of the slot with the given to . + + + + + Returns the left (input) custom of the slot with the given . + + + + + Returns if right (output) side of the slot with the given is enabled. + + + + + Toggles the right (output) side of the slot with the given . If is , a port will appear on the right side and the slot will be able to be connected from this side. + + + + + Sets the right (output) type of the slot with the given to . If the value is negative, all connections will be disallowed to be created via user inputs. + + + + + Returns the right (output) type of the slot with the given . + + + + + Sets the of the right (output) side of the slot with the given to . + + + + + Returns the right (output) of the slot with the given . + + + + + Sets the custom of the right (output) side of the slot with the given to . + + + + + Returns the right (output) custom of the slot with the given . + + + + + Returns if the background of the slot with the given is drawn. + + + + + Toggles the background of the slot with the given . + + + + + Returns the number of slots with an enabled input port. + + + + + Returns the position of the input port with the given . + + + + + Returns the type of the input port with the given . + + + + + Returns the of the input port with the given . + + + + + Returns the corresponding slot index of the input port with the given . + + + + + Returns the number of slots with an enabled output port. + + + + + Returns the position of the output port with the given . + + + + + Returns the type of the output port with the given . + + + + + Returns the of the output port with the given . + + + + + Returns the corresponding slot index of the output port with the given . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when any GraphNode's slot is updated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'ignore_invalid_connection_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw_port' method. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'get_titlebar_hbox' method. + + + + + Cached name for the 'set_slot' method. + + + + + Cached name for the 'clear_slot' method. + + + + + Cached name for the 'clear_all_slots' method. + + + + + Cached name for the 'is_slot_enabled_left' method. + + + + + Cached name for the 'set_slot_enabled_left' method. + + + + + Cached name for the 'set_slot_type_left' method. + + + + + Cached name for the 'get_slot_type_left' method. + + + + + Cached name for the 'set_slot_color_left' method. + + + + + Cached name for the 'get_slot_color_left' method. + + + + + Cached name for the 'set_slot_custom_icon_left' method. + + + + + Cached name for the 'get_slot_custom_icon_left' method. + + + + + Cached name for the 'is_slot_enabled_right' method. + + + + + Cached name for the 'set_slot_enabled_right' method. + + + + + Cached name for the 'set_slot_type_right' method. + + + + + Cached name for the 'get_slot_type_right' method. + + + + + Cached name for the 'set_slot_color_right' method. + + + + + Cached name for the 'get_slot_color_right' method. + + + + + Cached name for the 'set_slot_custom_icon_right' method. + + + + + Cached name for the 'get_slot_custom_icon_right' method. + + + + + Cached name for the 'is_slot_draw_stylebox' method. + + + + + Cached name for the 'set_slot_draw_stylebox' method. + + + + + Cached name for the 'set_ignore_invalid_connection_type' method. + + + + + Cached name for the 'is_ignoring_valid_connection_type' method. + + + + + Cached name for the 'get_input_port_count' method. + + + + + Cached name for the 'get_input_port_position' method. + + + + + Cached name for the 'get_input_port_type' method. + + + + + Cached name for the 'get_input_port_color' method. + + + + + Cached name for the 'get_input_port_slot' method. + + + + + Cached name for the 'get_output_port_count' method. + + + + + Cached name for the 'get_output_port_position' method. + + + + + Cached name for the 'get_output_port_type' method. + + + + + Cached name for the 'get_output_port_color' method. + + + + + Cached name for the 'get_output_port_slot' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'slot_updated' signal. + + + + + ImporterMesh is a type of analogous to . It contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials. + Unlike its runtime counterpart, contains mesh data before various import steps, such as lod and shadow mesh generation, have taken place. Modify surface data by calling , followed by for each surface. + + + + + + + + Adds name for a blend shape that will be added with . Must be called before surface is added. + + + + + Returns the number of blend shapes that the mesh holds. + + + + + Returns the name of the blend shape at this index. + + + + + Sets the blend shape mode to one of . + + + + + Returns the blend shape mode for this Mesh. + + + + + Creates a new surface. will become the surf_idx for this new surface. + Surfaces are created to be rendered using a , which may be any of the values defined in . + The argument is an array of arrays. Each of the elements contains an array with some of the mesh data for this surface as described by the corresponding member of or if it is not used by the surface. For example, arrays[0] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this surface into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array (or be an exact multiple of the vertex array's length, when multiple elements of a sub-array correspond to a single vertex) or be empty, except for if it is used. + The argument is an array of vertex data for each blend shape. Each element is an array of the same structure as , but , , and are set if and only if they are set in and all other entries are . + The argument is a dictionary with keys and [] values. Each entry in the dictionary represents an LOD level of the surface, where the value is the array to use for the LOD level and the key is roughly proportional to the distance at which the LOD stats being used. I.e., increasing the key of an LOD also increases the distance that the objects has to be from the camera before the LOD is used. + The argument is the bitwise or of, as required: One value of left shifted by ARRAY_FORMAT_CUSTOMn_SHIFT for each custom channel in use, , , or . + Note: When using indices, it is recommended to only use points, lines, or triangles. + + + + + Returns the number of surfaces that the mesh holds. + + + + + Returns the primitive type of the requested surface (see ). + + + + + Gets the name assigned to this surface. + + + + + Returns the arrays for the vertices, normals, UVs, etc. that make up the requested surface. See . + + + + + Returns a single set of blend shape arrays for the requested blend shape index for a surface. + + + + + Returns the number of lods that the mesh holds on a given surface. + + + + + Returns the screen ratio which activates a lod for a surface. + + + + + Returns the index buffer of a lod for a surface. + + + + + Returns a in a given surface. Surface is rendered using this material. + + + + + Returns the format of the surface that the mesh holds. + + + + + Sets a name for a given surface. + + + + + Sets a for a given surface. Surface will be rendered using this material. + + + + + Generates all lods for this ImporterMesh. + is in degrees and used in the same way as the importer settings in lods. + is not used and only remains for compatibility with older versions of the API. + The number of generated lods can be accessed using , and each LOD is available in and . + is an which can be either empty or contain s which, for each of the mesh's bone IDs, will apply mesh skinning when generating the LOD mesh variations. This is usually used to account for discrepancies in scale between the mesh itself and its skinning data. + + + + + Returns the mesh data represented by this as a usable . + This method caches the returned mesh, and subsequent calls will return the cached data until is called. + If not yet cached and is provided, will be used and mutated. + + + + + Removes all surfaces and blend shapes from this . + + + + + Sets the size hint of this mesh for lightmap-unwrapping in UV-space. + + + + + Returns the size hint of this mesh for lightmap-unwrapping in UV-space. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_shape' method. + + + + + Cached name for the 'get_blend_shape_count' method. + + + + + Cached name for the 'get_blend_shape_name' method. + + + + + Cached name for the 'set_blend_shape_mode' method. + + + + + Cached name for the 'get_blend_shape_mode' method. + + + + + Cached name for the 'add_surface' method. + + + + + Cached name for the 'get_surface_count' method. + + + + + Cached name for the 'get_surface_primitive_type' method. + + + + + Cached name for the 'get_surface_name' method. + + + + + Cached name for the 'get_surface_arrays' method. + + + + + Cached name for the 'get_surface_blend_shape_arrays' method. + + + + + Cached name for the 'get_surface_lod_count' method. + + + + + Cached name for the 'get_surface_lod_size' method. + + + + + Cached name for the 'get_surface_lod_indices' method. + + + + + Cached name for the 'get_surface_material' method. + + + + + Cached name for the 'get_surface_format' method. + + + + + Cached name for the 'set_surface_name' method. + + + + + Cached name for the 'set_surface_material' method. + + + + + Cached name for the 'generate_lods' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'set_lightmap_size_hint' method. + + + + + Cached name for the 'get_lightmap_size_hint' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MeshInstance3D is a node that takes a 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 in many places. This allows reusing geometry, which can save on resources. When a has to be instantiated more than thousands of times at close proximity, consider using a in a instead. + + + + + + + + The resource for the instance. + + + + + The to be used by this instance. + + + + + to the associated with the instance. + + + + + Returns the internal containing the skeleton's attached to this RID. See also , , and . + + + + + Returns the number of surface override materials. This is equivalent to . See also . + + + + + Sets the override for the specified of the resource. This material is associated with this rather than with . + Note: This assigns the associated to the 's Surface Material Override properties, not the material within the resource. To set the material within the resource, use instead. + + + + + Returns the override for the specified of the resource. See also . + Note: This returns the associated to the 's Surface Material Override properties, not the material within the resource. To get the material within the resource, use instead. + + + + + Returns the that will be used by the when drawing. This can return the , the surface override defined in this , or the surface defined in the . For example, if is used, all surfaces will return the override material. + Returns if no material is active, including when is . + + + + + This helper creates a child node with a collision shape calculated from the mesh geometry. It's mainly used for testing. + + + + + This helper creates a child node with a collision shape calculated from the mesh geometry. It's mainly used for testing. + If is (default), duplicate and interior vertices are removed automatically. You can set it to to make the process faster if not needed. + If is , the geometry can be further simplified to reduce the number of vertices. Disabled by default. + + + + + This helper creates a child node with multiple collision shapes calculated from the mesh geometry via convex decomposition. The convex decomposition operation can be controlled with parameters from the optional . + + + + + Returns the number of blend shapes available. Produces an error if is . + + + + + Returns the index of the blend shape with the given . Returns -1 if no blend shape with this name exists, including when is . + + + + + Returns the value of the blend shape at the given . Returns 0.0 and produces an error if is or doesn't have a blend shape at that index. + + + + + Sets the value of the blend shape at to . Produces an error if is or doesn't have a blend shape at that index. + + + + + This helper creates a child node with gizmos at every vertex calculated from the mesh geometry. It's mainly used for testing. + + + + + Takes a snapshot from the current with all blend shapes applied according to their current weights and bakes it to the provided mesh. If no mesh is provided a new is created, baked and returned. Mesh surface materials are not copied. + Performance: data needs to be received from the GPU, stalling the in the process. + + + + + Takes a snapshot of the current animated skeleton pose of the skinned mesh and bakes it to the provided mesh. If no mesh is provided a new is created, baked, and returned. Requires a skeleton with a registered skin to work. Blendshapes are ignored. Mesh surface materials are not copied. + Performance: data needs to be retrieved from the GPU, stalling the in the process. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'skin' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_skeleton_path' method. + + + + + Cached name for the 'get_skeleton_path' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'get_skin_reference' method. + + + + + Cached name for the 'get_surface_override_material_count' method. + + + + + Cached name for the 'set_surface_override_material' method. + + + + + Cached name for the 'get_surface_override_material' method. + + + + + Cached name for the 'get_active_material' method. + + + + + Cached name for the 'create_trimesh_collision' method. + + + + + Cached name for the 'create_convex_collision' method. + + + + + Cached name for the 'create_multiple_convex_collisions' method. + + + + + Cached name for the 'get_blend_shape_count' method. + + + + + Cached name for the 'find_blend_shape_by_name' method. + + + + + Cached name for the 'get_blend_shape_value' method. + + + + + Cached name for the 'set_blend_shape_value' method. + + + + + Cached name for the 'create_debug_tangents' method. + + + + + Cached name for the 'bake_mesh_from_current_blend_shape_mix' method. + + + + + Cached name for the 'bake_mesh_from_current_skeleton_pose' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Most basic 3D game object, with a and visibility settings. All other 3D game objects inherit from . Use 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 object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the 's transform. The word local below refers to this coordinate system. The coordinate system that is attached to the object itself is referred to as object-local coordinate system. + Note: Unless otherwise specified, all methods that have angle parameters must have angles specified as radians. To convert degrees to radians, use @GlobalScope.deg_to_rad. + Note: Be aware that "Spatial" nodes are now called "Node3D" starting with Godot 4. Any Godot 3.x references to "Spatial" nodes refer to "Node3D" in Godot 4. + + + + + + + + + + + nodes receive this notification when their global transform changes. This means that either the current or a parent node changed its transform. + In order for to work, users first need to ask for it, with . The notification is also sent if the node is in the editor context and it has at least one valid gizmo. + + + + + nodes receive this notification when they are registered to new resource. + + + + + nodes receive this notification when they are unregistered from current resource. + + + + + nodes receive this notification when their visibility changes. + + + + + nodes receive this notification when their local transform changes. This is not received when the transform of a parent node is changed. + In order for to work, users first need to ask for it, with . + + + + + The rotation is edited using Euler angles. + + + + + The rotation is edited using a . + + + + + The rotation is edited using a . In this mode, can't be edited separately. + + + + + Local space of this node, with respect to the parent node. + + + + + World3D space (global) of this node. + + + + + Local position or translation of this node relative to the parent. This is equivalent to transform.origin. + + + + + Rotation part of the local transformation in radians, specified in terms of Euler angles. The angles construct a rotation in the order specified by the property. + Note: In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a data structure not because the rotation is a vector, but only because exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful. + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use . + + + + + Helper property to access in degrees instead of radians. + + + + + Access to the node rotation as a . This property is ideal for tweening complex rotations. + + + + + Basis of the property. Represents the rotation, scale, and shear of this node. + + + + + Scale part of the local transformation. + Note: Mixed negative scales in 3D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, the scale values will either be all positive or all negative. + Note: Not all nodes are visually scaled by the property. For example, s are not visually affected by . + + + + + Specify how rotation (and scale) will be presented in the editor. + + + + + Specify the axis rotation order of the property. The final orientation is constructed by rotating the Euler angles in the order specified by this property. + + + + + If , the node will not inherit its transformations from its parent. Node transformations are only in global space. + + + + + Global position of this node. This is equivalent to global_transform.origin. + + + + + Global basis of this node. This is equivalent to global_transform.basis. + + + + + Rotation part of the global transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle). + Note: In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a data structure not because the rotation is a vector, but only because exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful. + + + + + Helper property to access in degrees instead of radians. + + + + + If , this node is drawn. The node is only visible if all of its ancestors are visible as well (in other words, must return ). + + + + + Defines the visibility range parent for this node and its subtree. The visibility parent must be a GeometryInstance3D. Any visual instance will only be visible if the visibility parent (and all of its visibility ancestors) is hidden by being closer to the camera than its own . Nodes hidden via the property are essentially removed from the visibility dependency tree, so dependent instances will not take the hidden node or its ancestors into account. + + + + + When using physics interpolation, there will be circumstances in which you want to know the interpolated (displayed) transform of a node rather than the standard transform (which may only be accurate to the most recent physics tick). + This is particularly important for frame-based operations that take place in , rather than . Examples include s focusing on a node, or finding where to fire lasers from on a frame rather than physics tick. + Note: This function creates an interpolation pump on the the first time it is called, which can respond to physics interpolation resets. If you get problems with "streaking" when initially following a , be sure to call at least once before resetting the physics interpolation. + + + + + Returns the parent , or if no parent exists, the parent is not of type , or is . + Note: Calling this method is not equivalent to get_parent() as Node3D, which does not take into account. + + + + + Sets whether the node ignores notification that its transformation (global or local) changed. + + + + + Sets whether the node uses a scale of (1, 1, 1) or its local transformation scale. Changes to the local transformation scale are preserved. + + + + + Returns whether this node uses a scale of (1, 1, 1) or its local transformation scale. + + + + + Returns the current resource this node is registered to. + + + + + Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. + + + + + Updates all the gizmos attached to this node. + + + + + Attach an editor gizmo to this . + Note: The gizmo object would typically be an instance of EditorNode3DGizmo, but the argument type is kept generic to avoid creating a dependency on editor classes in . + + + + + Returns all the gizmos attached to this . + + + + + Clear all gizmos attached to this . + + + + + Set subgizmo selection for this node in the editor. + Note: The gizmo object would typically be an instance of EditorNode3DGizmo, but the argument type is kept generic to avoid creating a dependency on editor classes in . + + + + + Clears subgizmo selection for this node in the editor. Useful when subgizmo IDs become invalid after a property change. + + + + + Returns if the node is present in the , its property is and all its ancestors are also visible. If any ancestor is hidden, this node will not be visible in the scene tree. + + + + + Enables rendering of this node. Changes to . + + + + + Disables rendering of this node. Changes to . + + + + + Sets whether the node notifies about its local transformation changes. will not propagate this by default. + + + + + Returns whether node notifies about its local transformation changes. will not propagate this by default. + + + + + Sets whether the node notifies about its global and local transformation changes. will not propagate this by default, unless it is in the editor context and it has a valid gizmo. + + + + + Returns whether the node notifies about its global and local transformation changes. will not propagate this by default. + + + + + Rotates the local transformation around axis, a unit , by specified angle in radians. + + + + + Rotates the global (world) transformation around axis, a unit , by specified angle in radians. The rotation axis is in global coordinate system. + + + + + Scales the global (world) transformation by the given scale factors. + + + + + Moves the global (world) transformation by offset. The offset is in global coordinate system. + + + + + Rotates the local transformation around axis, a unit , by specified angle in radians. The rotation axis is in object-local coordinate system. + + + + + Scales the local transformation by given 3D scale factors in object-local coordinate system. + + + + + Changes the node's position by the given offset in local space. + + + + + Rotates the local transformation around the X axis by angle in radians. + + + + + Rotates the local transformation around the Y axis by angle in radians. + + + + + Rotates the local transformation around the Z axis by angle in radians. + + + + + Changes the node's position by the given offset . + Note that the translation is affected by the node's scale, so if scaled by e.g. (10, 1, 1), a translation by an offset of (2, 0, 0) would actually add 20 (2 * 10) to the X coordinate. + + + + + Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's . + + + + + Reset all transformations for this node (sets its to the identity matrix). + + + + + Rotates the node so that the local forward axis (-Z, Vector3.FORWARD) points toward the position. + The local up axis (+Y) points as close to the vector as possible while staying perpendicular to the local forward axis. The resulting transform is orthogonal, and the scale is preserved. Non-uniform scaling may not work correctly. + The position cannot be the same as the node's position, the vector cannot be zero, and the direction from the node's position to the vector cannot be parallel to the vector. + Operations take place in global space, which means that the node must be in the scene tree. + If is , the +Z axis (asset front) is treated as forward (implies +X is left) and points toward the position. By default, the -Z axis (camera forward) is treated as forward (implies +X is right). + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Moves the node to the specified , and then rotates the node to point toward the as per . Operations take place in global space. + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Transforms from world space to this node's local space. + + + + + Transforms from this node's local space to world space. + + + + + Emitted when node visibility changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'global_transform' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'rotation_degrees' property. + + + + + Cached name for the 'quaternion' property. + + + + + Cached name for the 'basis' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'rotation_edit_mode' property. + + + + + Cached name for the 'rotation_order' property. + + + + + Cached name for the 'top_level' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached name for the 'global_basis' property. + + + + + Cached name for the 'global_rotation' property. + + + + + Cached name for the 'global_rotation_degrees' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'visibility_parent' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'set_rotation_degrees' method. + + + + + Cached name for the 'get_rotation_degrees' method. + + + + + Cached name for the 'set_rotation_order' method. + + + + + Cached name for the 'get_rotation_order' method. + + + + + Cached name for the 'set_rotation_edit_mode' method. + + + + + Cached name for the 'get_rotation_edit_mode' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'set_quaternion' method. + + + + + Cached name for the 'get_quaternion' method. + + + + + Cached name for the 'set_basis' method. + + + + + Cached name for the 'get_basis' method. + + + + + Cached name for the 'set_global_transform' method. + + + + + Cached name for the 'get_global_transform' method. + + + + + Cached name for the 'get_global_transform_interpolated' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached name for the 'set_global_basis' method. + + + + + Cached name for the 'get_global_basis' method. + + + + + Cached name for the 'set_global_rotation' method. + + + + + Cached name for the 'get_global_rotation' method. + + + + + Cached name for the 'set_global_rotation_degrees' method. + + + + + Cached name for the 'get_global_rotation_degrees' method. + + + + + Cached name for the 'get_parent_node_3d' method. + + + + + Cached name for the 'set_ignore_transform_notification' method. + + + + + Cached name for the 'set_as_top_level' method. + + + + + Cached name for the 'is_set_as_top_level' method. + + + + + Cached name for the 'set_disable_scale' method. + + + + + Cached name for the 'is_scale_disabled' method. + + + + + Cached name for the 'get_world_3d' method. + + + + + Cached name for the 'force_update_transform' method. + + + + + Cached name for the 'set_visibility_parent' method. + + + + + Cached name for the 'get_visibility_parent' method. + + + + + Cached name for the 'update_gizmos' method. + + + + + Cached name for the 'add_gizmo' method. + + + + + Cached name for the 'get_gizmos' method. + + + + + Cached name for the 'clear_gizmos' method. + + + + + Cached name for the 'set_subgizmo_selection' method. + + + + + Cached name for the 'clear_subgizmo_selection' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'is_visible_in_tree' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'set_notify_local_transform' method. + + + + + Cached name for the 'is_local_transform_notification_enabled' method. + + + + + Cached name for the 'set_notify_transform' method. + + + + + Cached name for the 'is_transform_notification_enabled' method. + + + + + Cached name for the 'rotate' method. + + + + + Cached name for the 'global_rotate' method. + + + + + Cached name for the 'global_scale' method. + + + + + Cached name for the 'global_translate' method. + + + + + Cached name for the 'rotate_object_local' method. + + + + + Cached name for the 'scale_object_local' method. + + + + + Cached name for the 'translate_object_local' method. + + + + + Cached name for the 'rotate_x' method. + + + + + Cached name for the 'rotate_y' method. + + + + + Cached name for the 'rotate_z' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'orthonormalize' method. + + + + + Cached name for the 'set_identity' method. + + + + + Cached name for the 'look_at' method. + + + + + Cached name for the 'look_at_from_position' method. + + + + + Cached name for the 'to_local' method. + + + + + Cached name for the 'to_global' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'visibility_changed' signal. + + + + + is an abstraction for working with modern low-level graphics APIs such as Vulkan. Compared to (which works with Godot's own rendering subsystems), is much lower-level and allows working more directly with the underlying graphics APIs. is used in Godot to provide support for several modern low-level graphics APIs while reducing the amount of code duplication required. can also be used in your own projects to perform things that are not exposed by or high-level nodes, such as using compute shaders. + On startup, Godot creates a global which can be retrieved using . This global performs drawing to the screen. + Local RenderingDevices: Using , you can create "secondary" rendering devices to perform drawing and GPU compute operations on separate threads. + Note: assumes intermediate knowledge of modern graphics APIs such as Vulkan, Direct3D 12, Metal or WebGPU. These graphics APIs are lower-level than OpenGL or Direct3D 11, requiring you to perform what was previously done by the graphics driver itself. If you have difficulty understanding the concepts used in this class, follow the Vulkan Tutorial or Vulkan Guide. It's recommended to have existing modern OpenGL or Direct3D 11 knowledge before attempting to learn a low-level graphics API. + Note: is not available when running in headless mode or when using the Compatibility rendering method. + + + + + + + + Returned by functions that return an ID if a value is invalid. + + + + + Returned by functions that return a format ID if a value is invalid. + + + + + Rendering device type does not match any of the other enum values or is unknown. + + + + + Rendering device is an integrated GPU, which is typically (but not always) slower than dedicated GPUs (). On Android and iOS, the rendering device type is always considered to be . + + + + + Rendering device is a dedicated GPU, which is typically (but not always) faster than integrated GPUs (). + + + + + 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 . Virtual machine GPU passthrough (such as VFIO) will not report the device type as . Instead, the host GPU's device type will be reported as if the GPU was not emulated. + + + + + Rendering device is provided by software emulation (such as Lavapipe or SwiftShader). This is the slowest kind of rendering device available; it's typically much slower than . + + + + + Represents the size of the enum. + + + + + Specific device object based on a physical device. + - Vulkan: Vulkan device driver resource (VkDevice). (rid argument doesn't apply.) + + + + + Physical device the specific logical device is based on. + - Vulkan: VkDevice. (rid argument doesn't apply.) + + + + + Top-most graphics API entry object. + - Vulkan: VkInstance. (rid argument doesn't apply.) + + + + + The main graphics-compute command queue. + - Vulkan: VkQueue. (rid argument doesn't apply.) + + + + + The specific family the main queue belongs to. + - Vulkan: the queue family index, an uint32_t. (rid argument doesn't apply.) + + + + + - Vulkan: VkImage. + + + + + The view of an owned or shared texture. + - Vulkan: VkImageView. + + + + + The native id of the data format of the texture. + - Vulkan: VkFormat. + + + + + - Vulkan: VkSampler. + + + + + - Vulkan: VkDescriptorSet. + + + + + Buffer of any kind of (storage, vertex, etc.). + - Vulkan: VkBuffer. + + + + + - Vulkan: VkPipeline. + + + + + - Vulkan: VkPipeline. + + + + + 4-bit-per-channel red/green channel data format, packed into 8 bits. Values are in the [0.0, 1.0] range. + Note: More information on all data formats can be found on the Identification of formats section of the Vulkan specification, as well as the VkFormat enum. + + + + + 4-bit-per-channel red/green/blue/alpha channel data format, packed into 16 bits. Values are in the [0.0, 1.0] range. + + + + + 4-bit-per-channel blue/green/red/alpha channel data format, packed into 16 bits. Values are in the [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red channel data format. Values are in the [-127, 127] range. + + + + + 8-bit-per-channel unsigned floating-point red channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red/green channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red/green channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red/green channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red/green channel data format. Values are in the [-127, 127] range. + + + + + 8-bit-per-channel unsigned floating-point red/green channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red/green/blue channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red/green/blue channel data format. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point blue/green/red channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer blue/green/red channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer blue/green/red channel data format. Values are in the [-127, 127] range. + + + + + 8-bit-per-channel unsigned floating-point blue/green/red data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 8-bit-per-channel unsigned floating-point blue/green/red/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 8-bit-per-channel signed floating-point blue/green/red/alpha channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer blue/green/red/alpha channel data format. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer blue/green/red/alpha channel data format. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [-1.0, 1.0] range. + + + + + 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 [0.0, 255.0] range. + + + + + 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 [-127.0, 127.0] range. + + + + + 8-bit-per-channel unsigned integer alpha/red/green/blue channel data format, packed in 32 bits. Values are in the [0, 255] range. + + + + + 8-bit-per-channel signed integer alpha/red/green/blue channel data format, packed in 32 bits. Values are in the [-127, 127] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [-1.0, 1.0] range. + + + + + 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 [0.0, 1023.0] range for red/green/blue and [0.0, 3.0] for alpha. + + + + + 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 [-511.0, 511.0] range for red/green/blue and [-1.0, 1.0] for alpha. + + + + + 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 [0, 1023] range for red/green/blue and [0, 3] for alpha. + + + + + 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 [-511, 511] range for red/green/blue and [-1, 1] for alpha. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [-1.0, 1.0] range. + + + + + 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 [0.0, 1023.0] range for blue/green/red and [0.0, 3.0] for alpha. + + + + + 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 [-511.0, 511.0] range for blue/green/red and [-1.0, 1.0] for alpha. + + + + + 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 [0, 1023] range for blue/green/red and [0, 3] for alpha. + + + + + 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 [-511, 511] range for blue/green/red and [-1, 1] for alpha. + + + + + 16-bit-per-channel unsigned floating-point red channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red channel data format with the value stored as-is. + + + + + 16-bit-per-channel unsigned floating-point red/green channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red/green channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red/green channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red/green channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red/green channel data format with the value stored as-is. + + + + + 16-bit-per-channel unsigned floating-point red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red/green/blue channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is. + + + + + 16-bit-per-channel unsigned floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with normalized value. Values are in the [-1.0, 1.0] range. + + + + + 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 [0.0, 65535.0] range. + + + + + 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 [-32767.0, 32767.0] range. + + + + + 16-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0.0, 65535] range. + + + + + 16-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [-32767, 32767] range. + + + + + 16-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red/green channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red/green channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red/green channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red/green/blue channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is. + + + + + 32-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0, 2^32 - 1] range. + + + + + 32-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [2^31 + 1, 2^31 - 1] range. + + + + + 32-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red/green channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red/green channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red/green channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red/green/blue channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red/green/blue channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red/green/blue channel data format with the value stored as-is. + + + + + 64-bit-per-channel unsigned integer red/green/blue/alpha channel data format. Values are in the [0, 2^64 - 1] range. + + + + + 64-bit-per-channel signed integer red/green/blue/alpha channel data format. Values are in the [2^63 + 1, 2^63 - 1] range. + + + + + 64-bit-per-channel signed floating-point red/green/blue/alpha channel data format with the value stored as-is. + + + + + 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. + + + + + 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. + + + + + 16-bit unsigned floating-point depth data format with normalized value. Values are in the [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 32-bit signed floating-point depth data format with the value stored as-is. + + + + + 8-bit unsigned integer stencil data format. + + + + + 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 [0.0, 1.0] range. Values for stencil are in the [0, 255] range. + + + + + 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 [0.0, 1.0] range. Values for stencil are in the [0, 255] range. + + + + + 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 [0, 255] range. + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed unsigned red channel data format with normalized value. Values are in the [0.0, 1.0] range. The format's precision is 8 bits of red channel. Using BC4 texture compression. + + + + + VRAM-compressed signed red channel data format with normalized value. Values are in the [-1.0, 1.0] range. The format's precision is 8 bits of red channel. Using BC4 texture compression. + + + + + VRAM-compressed unsigned red/green channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + VRAM-compressed signed red/green channel data format with normalized value. Values are in the [-1.0, 1.0] 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). + + + + + VRAM-compressed unsigned red/green/blue channel data format with the floating-point value stored as-is. The format's precision is between 10 and 13 bits for the red/green/blue channels. Using BC6H texture compression (also known as BPTC HDR). + + + + + VRAM-compressed signed red/green/blue channel data format with the floating-point value stored as-is. The format's precision is between 10 and 13 bits for the red/green/blue channels. Using BC6H texture compression (also known as BPTC HDR). + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] 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. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] 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. + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bit of precision each, with alpha using 1 bit of precision. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bit of precision each, with alpha using 1 bit of precision. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bits of precision each, with alpha using 8 bits of precision. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned red/green/blue/alpha channel data format with normalized value and non-linear sRGB encoding. Values are in the [0.0, 1.0] range. Red/green/blue use 8 bits of precision each, with alpha using 8 bits of precision. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed unsigned red channel data format with normalized value. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed signed red channel data format with normalized value. Values are in the [-1.0, 1.0] range. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed unsigned red/green channel data format with normalized value. Values are in the [0.0, 1.0] range. Using ETC2 texture compression. + + + + + 11-bit VRAM-compressed signed red/green channel data format with normalized value. Values are in the [-1.0, 1.0] range. Using ETC2 texture compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 4×4 blocks (highest quality). Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + 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 [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 5×4 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 5×4 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 5×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 5×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 6×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 6×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 6×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 6×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 8×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 8×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×5 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×6 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×8 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 10×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 10×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 12×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value and non-linear sRGB encoding, packed in 12×10 blocks. Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + VRAM-compressed unsigned floating-point data format with normalized value, packed in 12 blocks (lowest quality). Values are in the [0.0, 1.0] range. Using ASTC compression. + + + + + 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 [0.0, 1.0] range. Using ASTC compression. + + + + + 8-bit-per-channel unsigned floating-point green/blue/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 8-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 8-bit-per-channel unsigned floating-point green/blue/red channel data with normalized value, stored across 3 separate planes. Values are in the [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] range. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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. + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] range. + + + + + 16-bit-per-channel unsigned floating-point green/blue/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 16-bit-per-channel unsigned floating-point blue/green/red channel data format with normalized value. Values are in the [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] 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). + + + + + 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 [0.0, 1.0] range. + + + + + Represents the size of the enum. + + + + + Vertex shader barrier mask. + + + + + Fragment shader barrier mask. + + + + + Compute barrier mask. + + + + + Transfer barrier mask. + + + + + Raster barrier mask (vertex and fragment). Equivalent to BARRIER_MASK_VERTEX | BARRIER_MASK_FRAGMENT. + + + + + Barrier mask for all types (vertex, fragment, compute, transfer). + + + + + No barrier for any type. + + + + + 1-dimensional texture. + + + + + 2-dimensional texture. + + + + + 3-dimensional texture. + + + + + texture. + + + + + Array of 1-dimensional textures. + + + + + Array of 2-dimensional textures. + + + + + Array of textures. + + + + + Represents the size of the enum. + + + + + Perform 1 texture sample (this is the fastest but lowest-quality for antialiasing). + + + + + Perform 2 texture samples. + + + + + Perform 4 texture samples. + + + + + Perform 8 texture samples. Not supported on mobile GPUs (including Apple Silicon). + + + + + Perform 16 texture samples. Not supported on mobile GPUs and many desktop GPUs. + + + + + Perform 32 texture samples. Not supported on most GPUs. + + + + + Perform 64 texture samples (this is the slowest but highest-quality for antialiasing). Not supported on most GPUs. + + + + + Represents the size of the enum. + + + + + Texture can be sampled. + + + + + Texture can be used as a color attachment in a framebuffer. + + + + + Texture can be used as a depth/stencil attachment in a framebuffer. + + + + + Texture can be used as a storage image. + + + + + Texture can be used as a storage image with support for atomic operations. + + + + + Texture can be read back on the CPU using faster than without this bit, since it is always kept in the system memory. + + + + + Texture can be updated using . + + + + + Texture can be a source for . + + + + + Texture can be a destination for . + + + + + Texture can be used as a input attachment in a framebuffer. + + + + + Return the sampled value as-is. + + + + + Always return 0.0 when sampling. + + + + + Always return 1.0 when sampling. + + + + + Sample the red color channel. + + + + + Sample the green color channel. + + + + + Sample the blue color channel. + + + + + Sample the alpha channel. + + + + + Represents the size of the enum. + + + + + 2-dimensional texture slice. + + + + + Cubemap texture slice. + + + + + 3-dimensional texture slice. + + + + + Nearest-neighbor sampler filtering. Sampling at higher resolutions than the source will result in a pixelated look. + + + + + Bilinear sampler filtering. Sampling at higher resolutions than the source will result in a blurry look. + + + + + Sample with repeating enabled. + + + + + Sample with mirrored repeating enabled. When sampling outside the [0.0, 1.0] range, return a mirrored version of the sampler. This mirrored version is mirrored again if sampling further away, with the pattern repeating indefinitely. + + + + + Sample with repeating disabled. When sampling outside the [0.0, 1.0] range, return the color of the last pixel on the edge. + + + + + Sample with repeating disabled. When sampling outside the [0.0, 1.0] range, return the specified . + + + + + Sample with mirrored repeating enabled, but only once. When sampling in the [-1.0, 0.0] range, return a mirrored version of the sampler. When sampling outside the [-1.0, 1.0] range, return the color of the last pixel on the edge. + + + + + Represents the size of the enum. + + + + + Return a floating-point transparent black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a integer transparent black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a floating-point opaque black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a integer opaque black color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a floating-point opaque white color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Return a integer opaque white color when sampling outside the [0.0, 1.0] range. Only effective if the sampler repeat mode is . + + + + + Represents the size of the enum. + + + + + Vertex attribute addressing is a function of the vertex. This is used to specify the rate at which vertex attributes are pulled from buffers. + + + + + 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. + + + + + Index buffer in 16-bit unsigned integer format. This limits the maximum index that can be specified to 65535. + + + + + Index buffer in 32-bit unsigned integer format. This limits the maximum index that can be specified to 4294967295. + + + + + Sampler uniform. + + + + + Sampler uniform with a texture. + + + + + Texture uniform. + + + + + Image uniform. + + + + + Texture buffer uniform. + + + + + Sampler uniform with a texture buffer. + + + + + Image buffer uniform. + + + + + Uniform buffer uniform. + + + + + Storage buffer uniform. + + + + + Input attachment uniform. + + + + + Represents the size of the enum. + + + + + Point rendering primitive (with constant size, regardless of distance from camera). + + + + + Line list rendering primitive. Lines are drawn separated from each other. + + + + + Line list rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Line strip rendering primitive. Lines drawn are connected to the previous vertex. + + + + + Line strip rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Triangle list rendering primitive. Triangles are drawn separated from each other. + + + + + Triangle list rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Triangle strip rendering primitive. Triangles drawn are connected to the previous triangle. + + + + + Triangle strip rendering primitive with adjacency. + Note: Adjacency is only useful with geometry shaders, which Godot does not expose. + + + + + Triangle strip rendering primitive with primitive restart 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. + Note: Only compatible with indexed draws. + + + + + Tessellation patch rendering primitive. Only useful with tessellation shaders, which can be used to deform these patches. + + + + + Represents the size of the enum. + + + + + Do not use polygon front face or backface culling. + + + + + Use polygon frontface culling (faces pointing towards the camera are hidden). + + + + + Use polygon backface culling (faces pointing away from the camera are hidden). + + + + + Clockwise winding order to determine which face of a polygon is its front face. + + + + + Counter-clockwise winding order to determine which face of a polygon is its front face. + + + + + Keep the current stencil value. + + + + + Set the stencil value to 0. + + + + + Replace the existing stencil value with the new one. + + + + + Increment the existing stencil value and clamp to the maximum representable unsigned value if reached. Stencil bits are considered as an unsigned integer. + + + + + Decrement the existing stencil value and clamp to the minimum value if reached. Stencil bits are considered as an unsigned integer. + + + + + Bitwise-invert the existing stencil value. + + + + + Increment the stencil value and wrap around to 0 if reaching the maximum representable unsigned. Stencil bits are considered as an unsigned integer. + + + + + Decrement the stencil value and wrap around to the maximum representable unsigned if reaching the minimum. Stencil bits are considered as an unsigned integer. + + + + + Represents the size of the enum. + + + + + "Never" comparison (opposite of ). + + + + + "Less than" comparison. + + + + + "Equal" comparison. + + + + + "Less than or equal" comparison. + + + + + "Greater than" comparison. + + + + + "Not equal" comparison. + + + + + "Greater than or equal" comparison. + + + + + "Always" comparison (opposite of ). + + + + + Represents the size of the enum. + + + + + Clear logic operation (result is always 0). See also . + + + + + AND logic operation. + + + + + AND logic operation with the destination operand being inverted. See also . + + + + + Copy logic operation (keeps the source value as-is). See also and . + + + + + AND logic operation with the source operand being inverted. See also . + + + + + No-op logic operation (keeps the destination value as-is). See also . + + + + + Exclusive or (XOR) logic operation. + + + + + OR logic operation. + + + + + Not-OR (NOR) logic operation. + + + + + Not-XOR (XNOR) logic operation. + + + + + Invert logic operation. + + + + + OR logic operation with the destination operand being inverted. See also . + + + + + NOT logic operation (inverts the value). See also . + + + + + OR logic operation with the source operand being inverted. See also . + + + + + Not-AND (NAND) logic operation. + + + + + SET logic operation (result is always 1). See also . + + + + + Represents the size of the enum. + + + + + Constant 0.0 blend factor. + + + + + Constant 1.0 blend factor. + + + + + Color blend factor is source color. Alpha blend factor is source alpha. + + + + + Color blend factor is 1.0 - source color. Alpha blend factor is 1.0 - source alpha. + + + + + Color blend factor is destination color. Alpha blend factor is destination alpha. + + + + + Color blend factor is 1.0 - destination color. Alpha blend factor is 1.0 - destination alpha. + + + + + Color and alpha blend factor is source alpha. + + + + + Color and alpha blend factor is 1.0 - source alpha. + + + + + Color and alpha blend factor is destination alpha. + + + + + Color and alpha blend factor is 1.0 - destination alpha. + + + + + Color blend factor is blend constant color. Alpha blend factor is blend constant alpha (see ). + + + + + Color blend factor is 1.0 - blend constant color. Alpha blend factor is 1.0 - blend constant alpha (see ). + + + + + Color and alpha blend factor is blend constant alpha (see ). + + + + + Color and alpha blend factor is 1.0 - blend constant alpha (see ). + + + + + Color blend factor is min(source alpha, 1.0 - destination alpha). Alpha blend factor is 1.0. + + + + + Color blend factor is second source color. Alpha blend factor is second source alpha. Only relevant for dual-source blending. + + + + + Color blend factor is 1.0 - second source color. Alpha blend factor is 1.0 - second source alpha. Only relevant for dual-source blending. + + + + + Color and alpha blend factor is second source alpha. Only relevant for dual-source blending. + + + + + Color and alpha blend factor is 1.0 - second source alpha. Only relevant for dual-source blending. + + + + + Represents the size of the enum. + + + + + Additive blending operation (source + destination). + + + + + Subtractive blending operation (source - destination). + + + + + Reverse subtractive blending operation (destination - source). + + + + + Minimum blending operation (keep the lowest value of the two). + + + + + Maximum blending operation (keep the highest value of the two). + + + + + Represents the size of the enum. + + + + + Allows dynamically changing the width of rendering lines. + + + + + Allows dynamically changing the depth bias. + + + + + Load the previous contents of the framebuffer. + + + + + Clear the whole framebuffer or its specified region. + + + + + Ignore the previous contents of the framebuffer. This is the fastest option if you'll overwrite all of the pixels and don't need to read any of them. + + + + + Represents the size of the enum. + + + + + Store the result of the draw list in the framebuffer. This is generally what you want to do. + + + + + Discard the contents of the framebuffer. This is the fastest option if you don't need to use the results of the draw list. + + + + + Represents the size of the enum. + + + + + Vertex shader stage. This can be used to manipulate vertices from a shader (but not create new vertices). + + + + + Fragment shader stage (called "pixel shader" in Direct3D). This can be used to manipulate pixels from a shader. + + + + + Tessellation control shader stage. This can be used to create additional geometry from a shader. + + + + + Tessellation evaluation shader stage. This can be used to create additional geometry from a shader. + + + + + Compute shader stage. This can be used to run arbitrary computing tasks in a shader, performing them on the GPU instead of the CPU. + + + + + Represents the size of the enum. + + + + + Vertex shader stage bit (see also ). + + + + + Fragment shader stage bit (see also ). + + + + + Tessellation control shader stage bit (see also ). + + + + + Tessellation evaluation shader stage bit (see also ). + + + + + Compute shader stage bit (see also ). + + + + + Khronos' GLSL shading language (used natively by OpenGL and Vulkan). This is the language used for core Godot shaders. + + + + + Microsoft's High-Level Shading Language (used natively by Direct3D, but can also be used in Vulkan). + + + + + Boolean specialization constant. + + + + + Integer specialization constant. + + + + + Floating-point specialization constant. + + + + + Maximum number of uniform sets that can be bound at a given time. + + + + + Maximum number of color framebuffer attachments that can be used at a given time. + + + + + Maximum number of textures that can be used per uniform set. + + + + + Maximum number of samplers that can be used per uniform set. + + + + + Maximum number of storage buffers per uniform set. + + + + + Maximum number of storage images per uniform set. + + + + + Maximum number of uniform buffers per uniform set. + + + + + Maximum index for an indexed draw command. + + + + + Maximum height of a framebuffer (in pixels). + + + + + Maximum width of a framebuffer (in pixels). + + + + + Maximum number of texture array layers. + + + + + Maximum supported 1-dimensional texture size (in pixels on a single axis). + + + + + Maximum supported 2-dimensional texture size (in pixels on a single axis). + + + + + Maximum supported 3-dimensional texture size (in pixels on a single axis). + + + + + Maximum supported cubemap texture size (in pixels on a single axis of a single face). + + + + + Maximum number of textures per shader stage. + + + + + Maximum number of samplers per shader stage. + + + + + Maximum number of storage buffers per shader stage. + + + + + Maximum number of storage images per shader stage. + + + + + Maximum number of uniform buffers per uniform set. + + + + + 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. + + + + + Maximum size of a uniform buffer. + + + + + Maximum vertex input attribute offset. + + + + + Maximum number of vertex input attributes. + + + + + Maximum number of vertex input bindings. + + + + + Maximum vertex input binding stride. + + + + + Minimum uniform buffer offset alignment. + + + + + Maximum shared memory size for compute shaders. + + + + + Maximum number of workgroups for compute shaders on the X axis. + + + + + Maximum number of workgroups for compute shaders on the Y axis. + + + + + Maximum number of workgroups for compute shaders on the Z axis. + + + + + Maximum number of workgroup invocations for compute shaders. + + + + + Maximum workgroup size for compute shaders on the X axis. + + + + + Maximum workgroup size for compute shaders on the Y axis. + + + + + Maximum workgroup size for compute shaders on the Z axis. + + + + + Maximum viewport width (in pixels). + + + + + Maximum viewport height (in pixels). + + + + + Memory taken by textures. + + + + + Memory taken by buffers. + + + + + Total memory taken. This is greater than the sum of and , as it also includes miscellaneous memory usage. + + + + + Do not clear or ignore any attachments. + + + + + Clear the first color attachment. + + + + + Clear the second color attachment. + + + + + Clear the third color attachment. + + + + + Clear the fourth color attachment. + + + + + Clear the fifth color attachment. + + + + + Clear the sixth color attachment. + + + + + Clear the seventh color attachment. + + + + + Clear the eighth color attachment. + + + + + Mask for clearing all color attachments. + + + + + Clear all color attachments. + + + + + Ignore the previous contents of the first color attachment. + + + + + Ignore the previous contents of the second color attachment. + + + + + Ignore the previous contents of the third color attachment. + + + + + Ignore the previous contents of the fourth color attachment. + + + + + Ignore the previous contents of the fifth color attachment. + + + + + Ignore the previous contents of the sixth color attachment. + + + + + Ignore the previous contents of the seventh color attachment. + + + + + Ignore the previous contents of the eighth color attachment. + + + + + Mask for ignoring all the previous contents of the color attachments. + + + + + Ignore the previous contents of all color attachments. + + + + + Clear the depth attachment. + + + + + Ignore the previous contents of the depth attachment. + + + + + Clear the stencil attachment. + + + + + Ignore the previous contents of the stencil attachment. + + + + + Clear all attachments. + + + + + Ignore the previous contents of all attachments. + + + + + Creates a new texture. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + Note: Not to be confused with , which creates the Godot-specific resource as opposed to the graphics API's own texture type. + + + + + Creates a shared texture using the specified and the texture information from . + + + + + Creates a shared texture using the specified and the texture information from 's and . The number of included mipmaps from the original texture can be controlled using the parameter. Only relevant for textures with multiple layers, such as 3D textures, texture arrays and cubemaps. For single-layer textures, use . + For 2D textures (which only have one layer), must be 0. + Note: Layer slicing is only supported for 2D texture arrays, not 3D textures or cubemaps. + + + + + Returns an RID for an existing (VkImage) with the given , , , , , , , and . This can be used to allow Godot to render onto foreign images. + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Returns the data for the specified as raw binary data. For 2D textures (which only have one layer), must be 0. + Note: can't be retrieved while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to retrieve this texture. Otherwise, an error is printed and a empty [] is returned. + Note: requires the to be retrieved. Otherwise, an error is printed and a empty [] is returned. + Note: This method will block the GPU from working until the data is retrieved. Refer to for an alternative that returns the data in more performant way. + + + + + Asynchronous version of . RenderingDevice will call in a certain amount of frames with the data the texture had at the time of the request. + Note: At the moment, the delay corresponds to the amount of frames specified by ProjectSettings.rendering/rendering_device/vsync/frame_queue_size. + Note: Downloading large textures can have a prohibitive cost for real-time even when using the asynchronous method due to hardware bandwidth limitations. When dealing with large resources, you can adjust settings such as ProjectSettings.rendering/rendering_device/staging_buffer/texture_download_region_size_px and ProjectSettings.rendering/rendering_device/staging_buffer/block_size_kb to improve the transfer speed at the cost of extra memory. + + func _texture_get_data_callback(array): + value = array.decode_u32(0) + + ... + + rd.texture_get_data_async(texture, 0, _texture_get_data_callback) + + + + + + Returns if the specified is supported for the given , otherwise. + + + + + Returns if the is shared, otherwise. See . + + + + + Returns if the is valid, otherwise. + + + + + Updates the discardable property of . + If a texture is discardable, its contents do not need to be preserved between frames. This flag is only relevant when the texture is used as target in a draw list. + This information is used by to figure out if a texture's contents can be discarded, eliminating unnecessary writes to memory and boosting performance. + + + + + Returns if the is discardable, otherwise. See or . + + + + + Copies the to with the specified , and coordinates. The Z axis of the , and must be 0 for 2-dimensional textures. Source and destination mipmaps/layers must also be specified, with these parameters being 0 for textures without mipmaps or single-layer textures. Returns if the texture copy was successful or otherwise. + Note: texture can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: texture requires the to be retrieved. + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: requires the to be retrieved. + Note: and must be of the same type (color or depth). + + + + + Clears the specified by replacing all of its pixels with the specified . and determine which mipmaps of the texture are affected by this clear operation, while and determine which layers of a 3D texture (or texture array) are affected by this clear operation. For 2D textures (which only have one layer by design), must be 0 and must be 1. + Note: can't be cleared while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to clear this texture. + + + + + Resolves the texture onto with multisample antialiasing enabled. This must be used when rendering a framebuffer for MSAA to work. Returns if successful, otherwise. + Note: and textures must have the same dimension, format and type (color or depth). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: requires the to be retrieved. + Note: must be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: texture requires the to be retrieved. + Note: texture must not be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + + + + + Returns the data format used to create this texture. + + + + + Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension. + Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan). + + + + + Creates a new framebuffer format with the specified and . Returns the new framebuffer's unique framebuffer format ID. + If is greater than or equal to 2, enables multiview which is used for VR rendering. This requires support for the Vulkan multiview extension. + + + + + Creates a multipass framebuffer format with the specified , and and returns its ID. If is greater than or equal to 2, enables multiview which is used for VR rendering. This requires support for the Vulkan multiview extension. + + + + + Creates a new empty framebuffer format with the specified number of and returns its ID. + + + + + Returns the number of texture samples used for the given framebuffer ID (returned by ). + + + + + Creates a new framebuffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new multipass framebuffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new empty framebuffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns the format ID of the framebuffer specified by the RID. This ID is guaranteed to be unique for the same formats and does not need to be freed. + + + + + Returns if the framebuffer specified by the RID is valid, otherwise. + + + + + Creates a new sampler. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns if implementation supports using a texture of with the given . + + + + + It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new vertex format with the specified . Returns a unique vertex format ID corresponding to the newly created vertex format. + + + + + Creates a vertex array based on the specified buffers. Optionally, (in bytes) may be defined for each buffer. + + If the parameter is null, then the default value is Array.Empty<long>(). + + + + Creates a vertex array based on the specified buffers. Optionally, (in bytes) may be defined for each buffer. + + + + + Creates a new index buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new index buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new index array. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Compiles a SPIR-V from the shader source code in and returns the SPIR-V as a . This intermediate language shader is portable across different GPU models and driver versions, but cannot be run directly by GPUs until compiled into a binary shader using . + If is , make use of the shader cache generated by Godot. This avoids a potentially lengthy shader compilation step if the shader is already in cache. If is , Godot's shader cache is ignored and the shader will always be recompiled. + + + + + Compiles a binary shader from and returns the compiled binary data as a []. This compiled shader is specific to the GPU model and driver version used; it will not work on different GPU models or even different driver versions. See also . + is an optional human-readable name that can be given to the compiled shader for organizational purposes. + + + + + Creates a new shader instance from SPIR-V intermediate code. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Create a placeholder RID by allocating an RID without initializing it for use in . This allows you to create an RID for a shader and pass it around, but defer compiling the shader to a later time. + + + + + Returns the internal vertex input mask. Internally, the vertex input mask is an unsigned integer consisting of the locations (specified in GLSL via. layout(location = ...)) of the input variables (specified in GLSL by the in keyword). + + + + + Creates a new uniform buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new uniform buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a storage buffer with the specified and . It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a storage buffer with the specified and . It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new texture buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new texture buffer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Creates a new uniform set. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Checks if the is valid, i.e. is owned. + + + + + Copies bytes from the at into at . + Prints an error if: + - exceeds the size of either or at their corresponding offsets + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Clears the contents of the , clearing bytes, starting at . + Prints an error if: + - the size isn't a multiple of four + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Returns a copy of the data of the specified , optionally and can be set to copy only a portion of the buffer. + Note: This method will block the GPU from working until the data is retrieved. Refer to for an alternative that returns the data in more performant way. + + + + + Asynchronous version of . RenderingDevice will call in a certain amount of frames with the data the buffer had at the time of the request. + Note: At the moment, the delay corresponds to the amount of frames specified by ProjectSettings.rendering/rendering_device/vsync/frame_queue_size. + Note: Downloading large buffers can have a prohibitive cost for real-time even when using the asynchronous method due to hardware bandwidth limitations. When dealing with large resources, you can adjust settings such as ProjectSettings.rendering/rendering_device/staging_buffer/block_size_kb to improve the transfer speed at the cost of extra memory. + + func _buffer_get_data_callback(array): + value = array.decode_u32(0) + + ... + + rd.buffer_get_data_async(buffer, _buffer_get_data_callback) + + + + + + Creates a new render pipeline. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns if the render pipeline specified by the RID is valid, otherwise. + + + + + Creates a new compute pipeline. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. + + + + + Returns if the compute pipeline specified by the RID is valid, otherwise. + + + + + Returns the window width matching the graphics API context for the given window ID (in pixels). Despite the parameter being named , this returns the window size. See also . + Note: Only the main returned by has a width. If called on a local , this method prints an error and returns . + + + + + Returns the window height matching the graphics API context for the given window ID (in pixels). Despite the parameter being named , this returns the window size. See also . + Note: Only the main returned by has a height. If called on a local , this method prints an error and returns . + + + + + Returns the framebuffer format of the given screen. + Note: Only the main returned by has a format. If called on a local , this method prints an error and returns . + + + + + High-level variant of , with the parameters automatically being adjusted for drawing onto the window specified by the ID. + Note: Cannot be used with local RenderingDevices, as these don't have a screen. If called on a local RenderingDevice, returns . + + If the parameter is null, then the default value is new Color(0.0f, 0.0f, 0.0f, 1.0f). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + This method does nothing and always returns an empty []. + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + This method does nothing and always returns an empty []. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Sets blend constants for the specified to . Blend constants are used only if the graphics pipeline is created with flag set. + + + + + Binds to the specified . + + + + + Binds to the specified . A must also be specified, which is an identifier starting from 0 that must match the one expected by the draw list. + + + + + Binds to the specified . + + + + + Binds to the specified . + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Submits for rendering on the GPU. This is the raster equivalent to . + + + + + Submits for rendering on the GPU with the given parameters stored in the at . Parameters being integers: vertex count, instance count, first vertex, first instance. And when using indices: index count, instance count, first index, vertex offset, first instance. Buffer must have been created with flag. + + + + + Creates a scissor rectangle and enables it for the specified . Scissor rectangles are used for clipping by discarding fragments that fall outside a specified rectangular portion of the screen. See also . + Note: The specified is automatically intersected with the screen's dimensions, which means it cannot exceed the screen's dimensions. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Removes and disables the scissor rectangle for the specified . See also . + + + + + Switches to the next draw pass. + + + + + This method does nothing and always returns an empty []. + + + + + Finishes a list of raster drawing commands created with the draw_* methods. + + + + + Starts a list of compute commands created with the compute_* methods. The returned value should be passed to other compute_list_* functions. + Multiple compute lists cannot be created at the same time; you must finish the previous compute list first using . + A simple compute operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var compute_list = rd.compute_list_begin() + + rd.compute_list_bind_compute_pipeline(compute_list, compute_shader_dilate_pipeline) + rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1) + + for i in atlas_slices: + rd.compute_list_set_push_constant(compute_list, push_constant, push_constant.size()) + rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, group_size.z) + # No barrier, let them run all together. + + rd.compute_list_end() + + + + + + Tells the GPU what compute pipeline to use when processing the compute list. If the shader has changed since the last time this function was called, Godot will unbind all descriptor sets and will re-bind them inside . + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Sets the push constant data to for the specified . The shader determines how this binary data is used. The buffer's size in bytes must also be specified in (this can be obtained by calling the PackedByteArray.size method on the passed ). + + + + + Binds the to this . Godot ensures that all textures in the uniform set have the correct Vulkan access masks. If Godot had to change access masks of textures, it will raise a Vulkan image memory barrier. + + + + + Submits the compute list for processing on the GPU. This is the compute equivalent to . + + + + + Submits the compute list for processing on the GPU with the given group counts stored in the at . Buffer must have been created with flag. + + + + + Raises a Vulkan compute barrier in the specified . + + + + + Finishes a list of compute commands created with the compute_* methods. + + + + + Tries to free an object in the RenderingDevice. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingDevice directly. + + + + + Creates a timestamp marker with the specified . This is used for performance reporting with the , and methods. + + + + + Returns the total number of timestamps (rendering steps) available for profiling. + + + + + Returns the index of the last frame rendered that has rendering timestamps available for querying. + + + + + Returns the timestamp in GPU time for the rendering step specified by (in microseconds since the engine started). See also and . + + + + + Returns the timestamp in CPU time for the rendering step specified by (in microseconds since the engine started). See also and . + + + + + Returns the timestamp's name for the rendering step specified by . See also . + + + + + Returns the value of the specified . This limit varies depending on the current graphics hardware (and sometimes the driver version). If the given limit is exceeded, rendering errors will occur. + Limits for various graphics hardware can be found in the Vulkan Hardware Database. + + + + + Returns the frame count kept by the graphics API. Higher values result in higher input lag, but with more consistent throughput. For the main , frames are cycled (usually 3 with triple-buffered V-Sync enabled). However, local s only have 1 frame. + + + + + Pushes the frame setup and draw command buffers then marks the local device as currently processing (which allows calling ). + Note: Only available in local RenderingDevices. + + + + + Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost. + Note: Only available in local RenderingDevices. + Note: can only be called after a . + + + + + This method does nothing. + + + + + This method does nothing. + + + + + Create a new local . This is most useful for performing compute operations on the GPU independently from the rest of the engine. + + + + + Sets the resource name for to . This is used for debugging with third-party tools such as RenderDoc. + The following types of resources can be named: texture, sampler, vertex buffer, index buffer, uniform buffer, texture buffer, storage buffer, uniform set buffer, shader, render pipeline and compute pipeline. Framebuffers cannot be named. Attempting to name an incompatible resource type will print an error. + Note: Resource names are only set when the engine runs in verbose mode ( = ), or when using an engine build compiled with the dev_mode=yes SCons option. The graphics driver must also support the VK_EXT_DEBUG_UTILS_EXTENSION_NAME Vulkan extension for named resources to work. + + + + + Create a command buffer debug label region that can be displayed in third-party tools such as RenderDoc. All regions must be ended with a call. When viewed from the linear series of submissions to a single queue, calls to and must be matched and balanced. + The VK_EXT_DEBUG_UTILS_EXTENSION_NAME Vulkan extension must be available and enabled for command buffer debug label region to work. See also . + + + + + This method does nothing. + + + + + Ends the command buffer debug label region started by a call. + + + + + Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). Equivalent to . See also . + + + + + Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2"). Equivalent to . See also . + + + + + Returns the universally unique identifier for the pipeline cache. This is used to cache shader files on disk, which avoids shader recompilations on subsequent engine runs. This UUID varies depending on the graphics card model, but also the driver version. Therefore, updating graphics drivers will invalidate the shader cache. + + + + + Returns the memory usage in bytes corresponding to the given . When using Vulkan, these statistics are calculated by Vulkan Memory Allocator. + + + + + Returns the unique identifier of the driver for the specified . Some driver resource types ignore the specified (see descriptions). is always ignored but must be specified anyway. + + + + + Returns a string with a performance report from the past frame. Updates every frame. + + + + + Returns string report in CSV format using the following methods: + - + - + - + - + - + - + - + - + - + - + This is only used by Vulkan in debug builds. Godot must also be started with the --extra-gpu-memory-tracking command line argument. + + + + + Returns the name of the type of object for the given . This value must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns the same string. + The return value is important because it gives meaning to the types passed to , , , and . Examples of strings it can return (not exhaustive): + - DEVICE_MEMORY + - PIPELINE_CACHE + - SWAPCHAIN_KHR + - COMMAND_POOL + Thus if e.g. get_tracked_object_name(5) returns "COMMAND_POOL", then get_device_memory_by_object_type(5) returns the bytes used by the GPU for command pools. + This is only used by Vulkan in debug builds. Godot must also be started with the --extra-gpu-memory-tracking command line argument. + + + + + Returns how many types of trackable objects are. + This is only used by Vulkan in debug builds. Godot must also be started with the --extra-gpu-memory-tracking command line argument. + + + + + Returns how much bytes the GPU driver is using for internal driver structures. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Returns how many allocations the GPU driver has performed for internal driver structures. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Returns how much bytes the GPU is using. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Returns how many allocations the GPU has performed for internal driver structures. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Same as but filtered for a given object type. + The type argument must be in range [0; get_tracked_object_type_count - 1]. If is 0, then type argument is ignored and always returns 0. + This is only used by Vulkan in debug builds and can return 0 when this information is not tracked or unknown. + + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Returns the framebuffer format of the given screen. + Note: Only the main returned by has a format. If called on a local , this method prints an error and returns . + + + + + Resolves the texture onto with multisample antialiasing enabled. This must be used when rendering a framebuffer for MSAA to work. Returns if successful, otherwise. + Note: and textures must have the same dimension, format and type (color or depth). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: requires the to be retrieved. + Note: must be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to resolve this texture. + Note: texture requires the to be retrieved. + Note: texture must not be multisampled and must also be 2D (or a slice of a 3D/cubemap texture). + + + + + Clears the specified by replacing all of its pixels with the specified . and determine which mipmaps of the texture are affected by this clear operation, while and determine which layers of a 3D texture (or texture array) are affected by this clear operation. For 2D textures (which only have one layer by design), must be 0 and must be 1. + Note: can't be cleared while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to clear this texture. + + + + + Copies the to with the specified , and coordinates. The Z axis of the , and must be 0 for 2-dimensional textures. Source and destination mipmaps/layers must also be specified, with these parameters being 0 for textures without mipmaps or single-layer textures. Returns if the texture copy was successful or otherwise. + Note: texture can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: texture requires the to be retrieved. + Note: can't be copied while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to copy this texture. + Note: requires the to be retrieved. + Note: and must be of the same type (color or depth). + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Updates texture data with new data, replacing the previous data in place. The updated texture data must have the same dimensions and format. For 2D textures (which only have one layer), must be 0. Returns if the update was successful, otherwise. + Note: Updating textures is forbidden during creation of a draw or compute list. + Note: The existing can't be updated while a draw list that uses it as part of a framebuffer is being created. Ensure the draw list is finalized (and that the color/depth texture using it is not set to ) to update this texture. + Note: The existing requires the to be updatable. + + + + + Clears the contents of the , clearing bytes, starting at . + Prints an error if: + - the size isn't a multiple of four + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Updates a region of bytes, starting at , in the buffer, with the specified . + Prints an error if: + - the region specified by + exceeds the buffer + - a draw list is currently active (created by ) + - a compute list is currently active (created by ) + + + + + Starts a list of compute commands created with the compute_* methods. The returned value should be passed to other compute_list_* functions. + Multiple compute lists cannot be created at the same time; you must finish the previous compute list first using . + A simple compute operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var compute_list = rd.compute_list_begin() + + rd.compute_list_bind_compute_pipeline(compute_list, compute_shader_dilate_pipeline) + rd.compute_list_bind_uniform_set(compute_list, compute_base_uniform_set, 0) + rd.compute_list_bind_uniform_set(compute_list, dilate_uniform_set, 1) + + for i in atlas_slices: + rd.compute_list_set_push_constant(compute_list, push_constant, push_constant.size()) + rd.compute_list_dispatch(compute_list, group_size.x, group_size.y, group_size.z) + # No barrier, let them run all together. + + rd.compute_list_end() + + + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Starts a list of raster drawing commands created with the draw_* methods. The returned value should be passed to other draw_list_* functions. + Multiple draw lists cannot be created at the same time; you must finish the previous draw list first using . + A simple drawing operation might look like this (code is not a complete example): + + var rd = RenderingDevice.new() + var clear_colors = PackedColorArray([Color(0, 0, 0, 0), Color(0, 0, 0, 0), Color(0, 0, 0, 0)]) + var draw_list = rd.draw_list_begin(framebuffers[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS) + + # Draw opaque. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + # Draw wire. + rd.draw_list_bind_render_pipeline(draw_list, raster_pipeline_wire) + rd.draw_list_bind_uniform_set(draw_list, raster_base_uniform, 0) + rd.draw_list_set_push_constant(draw_list, raster_push_constant, raster_push_constant.size()) + rd.draw_list_draw(draw_list, false, 1, slice_triangle_count[i] * 3) + + rd.draw_list_end() + + The indicates if the texture attachments of the framebuffer should be cleared or ignored. Only one of the two flags can be used for each individual attachment. Ignoring an attachment means that any contents that existed before the draw list will be completely discarded, reducing the memory bandwidth used by the render pass but producing garbage results if the pixels aren't replaced. The default behavior allows the engine to figure out the right operation to use if the texture is discardable, which can result in increased performance. See or . + The parameter can be an arbitrary 32-bit integer that is useful to diagnose GPU crashes. If Godot is built in dev or debug mode; when the GPU crashes Godot will dump all shaders that were being executed at the time of the crash and the breadcrumb is useful to diagnose what passes did those shaders belong to. + It does not affect rendering behavior and can be set to 0. It is recommended to use enumerations for consistency but it's not required. It is also possible to use bitwise operations to add extra data. e.g. + + rd.draw_list_begin(fb[i], RenderingDevice.CLEAR_COLOR_ALL, clear_colors, true, 1.0f, true, 0, Rect2(), RenderingDevice.OPAQUE_PASS | 5) + + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Finishes a list of compute commands created with the compute_* methods. + + + + + Finishes a list of raster drawing commands created with the draw_* methods. + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Creates a new shader instance from a binary compiled shader. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingDevice's method. See also and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'texture_create' method. + + + + + Cached name for the 'texture_create_shared' method. + + + + + Cached name for the 'texture_create_shared_from_slice' method. + + + + + Cached name for the 'texture_create_from_extension' method. + + + + + Cached name for the 'texture_update' method. + + + + + Cached name for the 'texture_get_data' method. + + + + + Cached name for the 'texture_get_data_async' method. + + + + + Cached name for the 'texture_is_format_supported_for_usage' method. + + + + + Cached name for the 'texture_is_shared' method. + + + + + Cached name for the 'texture_is_valid' method. + + + + + Cached name for the 'texture_set_discardable' method. + + + + + Cached name for the 'texture_is_discardable' method. + + + + + Cached name for the 'texture_copy' method. + + + + + Cached name for the 'texture_clear' method. + + + + + Cached name for the 'texture_resolve_multisample' method. + + + + + Cached name for the 'texture_get_format' method. + + + + + Cached name for the 'texture_get_native_handle' method. + + + + + Cached name for the 'framebuffer_format_create' method. + + + + + Cached name for the 'framebuffer_format_create_multipass' method. + + + + + Cached name for the 'framebuffer_format_create_empty' method. + + + + + Cached name for the 'framebuffer_format_get_texture_samples' method. + + + + + Cached name for the 'framebuffer_create' method. + + + + + Cached name for the 'framebuffer_create_multipass' method. + + + + + Cached name for the 'framebuffer_create_empty' method. + + + + + Cached name for the 'framebuffer_get_format' method. + + + + + Cached name for the 'framebuffer_is_valid' method. + + + + + Cached name for the 'sampler_create' method. + + + + + Cached name for the 'sampler_is_format_supported_for_filter' method. + + + + + Cached name for the 'vertex_buffer_create' method. + + + + + Cached name for the 'vertex_format_create' method. + + + + + Cached name for the 'vertex_array_create' method. + + + + + Cached name for the 'index_buffer_create' method. + + + + + Cached name for the 'index_array_create' method. + + + + + Cached name for the 'shader_compile_spirv_from_source' method. + + + + + Cached name for the 'shader_compile_binary_from_spirv' method. + + + + + Cached name for the 'shader_create_from_spirv' method. + + + + + Cached name for the 'shader_create_from_bytecode' method. + + + + + Cached name for the 'shader_create_placeholder' method. + + + + + Cached name for the 'shader_get_vertex_input_attribute_mask' method. + + + + + Cached name for the 'uniform_buffer_create' method. + + + + + Cached name for the 'storage_buffer_create' method. + + + + + Cached name for the 'texture_buffer_create' method. + + + + + Cached name for the 'uniform_set_create' method. + + + + + Cached name for the 'uniform_set_is_valid' method. + + + + + Cached name for the 'buffer_copy' method. + + + + + Cached name for the 'buffer_update' method. + + + + + Cached name for the 'buffer_clear' method. + + + + + Cached name for the 'buffer_get_data' method. + + + + + Cached name for the 'buffer_get_data_async' method. + + + + + Cached name for the 'render_pipeline_create' method. + + + + + Cached name for the 'render_pipeline_is_valid' method. + + + + + Cached name for the 'compute_pipeline_create' method. + + + + + Cached name for the 'compute_pipeline_is_valid' method. + + + + + Cached name for the 'screen_get_width' method. + + + + + Cached name for the 'screen_get_height' method. + + + + + Cached name for the 'screen_get_framebuffer_format' method. + + + + + Cached name for the 'draw_list_begin_for_screen' method. + + + + + Cached name for the 'draw_list_begin' method. + + + + + Cached name for the 'draw_list_begin_split' method. + + + + + Cached name for the 'draw_list_set_blend_constants' method. + + + + + Cached name for the 'draw_list_bind_render_pipeline' method. + + + + + Cached name for the 'draw_list_bind_uniform_set' method. + + + + + Cached name for the 'draw_list_bind_vertex_array' method. + + + + + Cached name for the 'draw_list_bind_index_array' method. + + + + + Cached name for the 'draw_list_set_push_constant' method. + + + + + Cached name for the 'draw_list_draw' method. + + + + + Cached name for the 'draw_list_draw_indirect' method. + + + + + Cached name for the 'draw_list_enable_scissor' method. + + + + + Cached name for the 'draw_list_disable_scissor' method. + + + + + Cached name for the 'draw_list_switch_to_next_pass' method. + + + + + Cached name for the 'draw_list_switch_to_next_pass_split' method. + + + + + Cached name for the 'draw_list_end' method. + + + + + Cached name for the 'compute_list_begin' method. + + + + + Cached name for the 'compute_list_bind_compute_pipeline' method. + + + + + Cached name for the 'compute_list_set_push_constant' method. + + + + + Cached name for the 'compute_list_bind_uniform_set' method. + + + + + Cached name for the 'compute_list_dispatch' method. + + + + + Cached name for the 'compute_list_dispatch_indirect' method. + + + + + Cached name for the 'compute_list_add_barrier' method. + + + + + Cached name for the 'compute_list_end' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'capture_timestamp' method. + + + + + Cached name for the 'get_captured_timestamps_count' method. + + + + + Cached name for the 'get_captured_timestamps_frame' method. + + + + + Cached name for the 'get_captured_timestamp_gpu_time' method. + + + + + Cached name for the 'get_captured_timestamp_cpu_time' method. + + + + + Cached name for the 'get_captured_timestamp_name' method. + + + + + Cached name for the 'limit_get' method. + + + + + Cached name for the 'get_frame_delay' method. + + + + + Cached name for the 'submit' method. + + + + + Cached name for the 'sync' method. + + + + + Cached name for the 'barrier' method. + + + + + Cached name for the 'full_barrier' method. + + + + + Cached name for the 'create_local_device' method. + + + + + Cached name for the 'set_resource_name' method. + + + + + Cached name for the 'draw_command_begin_label' method. + + + + + Cached name for the 'draw_command_insert_label' method. + + + + + Cached name for the 'draw_command_end_label' method. + + + + + Cached name for the 'get_device_vendor_name' method. + + + + + Cached name for the 'get_device_name' method. + + + + + Cached name for the 'get_device_pipeline_cache_uuid' method. + + + + + Cached name for the 'get_memory_usage' method. + + + + + Cached name for the 'get_driver_resource' method. + + + + + Cached name for the 'get_perf_report' method. + + + + + Cached name for the 'get_driver_and_device_memory_report' method. + + + + + Cached name for the 'get_tracked_object_name' method. + + + + + Cached name for the 'get_tracked_object_type_count' method. + + + + + Cached name for the 'get_driver_total_memory' method. + + + + + Cached name for the 'get_driver_allocation_count' method. + + + + + Cached name for the 'get_driver_memory_by_object_type' method. + + + + + Cached name for the 'get_driver_allocs_by_object_type' method. + + + + + Cached name for the 'get_device_total_memory' method. + + + + + Cached name for the 'get_device_allocation_count' method. + + + + + Cached name for the 'get_device_memory_by_object_type' method. + + + + + Cached name for the 'get_device_allocs_by_object_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control for displaying text that can contain custom fonts, images, and basic formatting. manages these as an internal tag stack. It also adapts itself to given width/heights. + Note: , , "\n", "\r\n", p tag, and alignment tags start a new paragraph. Each paragraph is processed independently, in its own BiDi context. If you want to force line wrapping within paragraph, any other line breaking character can be used, for example, Form Feed (U+000C), Next Line (U+0085), Line Separator (U+2028). + Note: Assignments to clear the tag stack and reconstruct it from the property's contents. Any edits made to will erase previous edits made from other manual sources such as and the push_* / methods. + Note: RichTextLabel doesn't support entangled BBCode tags. For example, instead of using [b]bold[i]bold italic[/b]italic[/i], use [b]bold[i]bold italic[/i][/b][i]italic[/i]. + Note: push_*/pop_* functions won't affect BBCode. + Note: Unlike , doesn't have a property to horizontally align text to the center. Instead, enable and surround the text in a [center] tag as follows: [center]Example[/center]. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the property. + + + + + + + + + + + Each list item has a number marker. + + + + + Each list item has a letter marker. + + + + + Each list item has a roman number marker. + + + + + Each list item has a filled circle marker. + + + + + Copies the selected text. + + + + + Selects the whole text. + + + + + Represents the size of the enum. + + + + + Meta tag does not display an underline, even if is . + + + + + If is , meta tag always display an underline. + + + + + If is , meta tag display an underline when the mouse cursor is over it. + + + + + If this bit is set, changes image texture. + + + + + If this bit is set, changes image size. + + + + + If this bit is set, changes image color. + + + + + If this bit is set, changes image inline alignment. + + + + + If this bit is set, changes image texture region. + + + + + If this bit is set, changes image padding. + + + + + If this bit is set, changes image tooltip. + + + + + If this bit is set, changes image width from/to percents. + + + + + If , the label uses BBCode formatting. + Note: This only affects the contents of , not the tag stack. + + + + + The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited. + Note: If is , it is unadvised to use the += operator with (e.g. text += "some string") as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using push_* methods. Use for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call. + + + + + If , the label's minimum size will be automatically updated to fit its content, matching the behavior of . + + + + + If , the scrollbar is visible. Setting this to does not block scrolling completely. See . + + + + + If , the window scrolls down to display new content automatically. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. To see how each mode behaves, see . + + + + + The number of spaces associated with a single tab length. Does not affect \t in text tags, only indent tags. + + + + + If , a right-click displays the context menu. + + + + + If , shortcut keys for context menu items are enabled, even if the context menu is disabled. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom, and fill. Set it to one of the constants. + + + + + Line fill alignment rules. See for more information. + + + + + Aligns text to the given tab-stops. + + + + + The currently installed custom effects. This is an array of s. + To add a custom effect, it's more convenient to use . + + + + + If , the label underlines meta tags such as [url]{text}[/url]. These tags can call a function when clicked if is connected to a function. + + + + + If , the label underlines hint tags such as [hint=description]{text}[/hint]. + + + + + If , text processing is done in a background thread. + + + + + The delay after which the loading progress bar is displayed, in milliseconds. Set to -1 to disable progress bar entirely. + Note: Progress bar is displayed only if is enabled. + + + + + If , the label allows text selection. + + + + + If , the selected text will be deselected when focus is lost. + + + + + If , allow drag and drop of selected text. + + + + + The number of characters to display. If set to -1, all characters are displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Sets the clipping behavior when or is set. See for more info. + + + + + The fraction of characters to display, relative to the total number of characters (see ). If set to 1.0, all characters are displayed. If set to 0.5, only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Returns the text without BBCode mark-up. + + + + + Adds raw non-BBCode-parsed text to the tag stack. + + + + + Adds an image's opening and closing tags to the tag stack, optionally providing a and to resize the image, a to tint the image and a to only use parts of the image. + If or is set to 0, the image size will be adjusted in order to keep the original aspect ratio. + If and are not set, but is, the region's rect will be used. + is an optional identifier, that can be used to modify the image via . + If is set, and the image is smaller than the size specified by and , the image padding is added to match the size instead of upscaling. + If is set, and values are percentages of the control width instead of pixels. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Updates the existing images with the key . Only properties specified by bits are updated. See . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Adds a newline tag to the tag stack. + + + + + Removes a paragraph of content from the label. Returns if the paragraph exists. + The argument is the index of the paragraph to remove, it can take values in the interval [0, get_paragraph_count() - 1]. + If is set to , cache for the subsequent paragraphs is not invalidated. Use it for faster updates if deleted paragraph is fully self-contained (have no unclosed tags), or this call is part of the complex edit operation and will be called at the end of operation. + + + + + Invalidates and all subsequent paragraphs cache. + + + + + Adds a [font] tag to the tag stack. Overrides default fonts for its duration. + Passing 0 to will use the existing default font size. + + + + + Adds a [font_size] tag to the tag stack. Overrides default font size for its duration. + + + + + Adds a [font] tag with a normal font to the tag stack. + + + + + Adds a [font] tag with a bold font to the tag stack. This is the same as adding a [b] tag if not currently in a [i] tag. + + + + + Adds a [font] tag with a bold italics font to the tag stack. + + + + + Adds a [font] tag with an italics font to the tag stack. This is the same as adding an [i] tag if not currently in a [b] tag. + + + + + Adds a [font] tag with a monospace font to the tag stack. + + + + + Adds a [color] tag to the tag stack. + + + + + Adds a [outline_size] tag to the tag stack. Overrides default text outline size for its duration. + + + + + Adds a [outline_color] tag to the tag stack. Adds text outline for its duration. + + + + + Adds a [p] tag to the tag stack. + + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Adds a [p] tag to the tag stack. + + + + + Adds an [indent] tag to the tag stack. Multiplies by current to determine new margin length. + + + + + Adds [ol] or [ul] tag to the tag stack. Multiplies by current to determine new margin length. + + + + + Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non- metadata types. + If is , meta tags display an underline. This behavior can be customized with . + Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect to a function that is called when the meta tag is clicked. + + + + + Adds a [hint] tag to the tag stack. Same as BBCode [hint=something]{text}[/hint]. + + + + + Adds language code used for text shaping algorithm and Open-Type font features. + + + + + Adds a [u] tag to the tag stack. + + + + + Adds a [s] tag to the tag stack. + + + + + Adds a [table=columns,inline_align] tag to the tag stack. Use to set column expansion ratio. Use to add cells. + + + + + Adds a [dropcap] tag to the tag stack. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Color(0.0f, 0.0f, 0.0f, 0.0f). + + + + Edits the selected column's expansion options. If is , the column expands in proportion to its expansion ratio versus the other columns' ratios. + For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively. + If is , the column will not contribute to the total ratio. + + + + + Sets color of a table cell. Separate colors for alternating rows can be specified. + + + + + Sets color of a table cell border. + + + + + Sets minimum and maximum size overrides for a table cell. + + + + + Sets inner padding of a table cell. + + + + + Adds a [cell] tag to the tag stack. Must be inside a [table] tag. See for details. Use to set column expansion ratio, to set cell border, to set cell background, to override cell size, and to set padding. + + + + + Adds a [fgcolor] tag to the tag stack. + + + + + Adds a [bgcolor] tag to the tag stack. + + + + + Adds a custom effect tag to the tag stack. The effect does not need to be in . The environment is directly passed to the effect. + + + + + Adds a context marker to the tag stack. See . + + + + + Terminates tags opened after the last call (including context marker), or all tags if there's no context marker on the stack. + + + + + Terminates the current tag. Use after push_* methods to close BBCodes manually. Does not need to follow add_* methods. + + + + + Terminates all tags opened by push_* methods. + + + + + Clears the tag stack, causing the label to display nothing. + Note: This method does not affect , and its contents will show again if the label is redrawn. However, setting to an empty also clears the stack. + + + + + Returns the vertical scrollbar. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Scrolls the window's top line to match . + + + + + Scrolls the window's top line to match first line of the . + + + + + Scrolls to the beginning of the current selection. + + + + + Returns the current selection first character index if a selection is active, -1 otherwise. Does not include BBCodes. + + + + + Returns the current selection last character index if a selection is active, -1 otherwise. Does not include BBCodes. + + + + + Select all the text. + If is , no selection will occur. + + + + + Returns the current selection text. Does not include BBCodes. + + + + + Clears the current selection. + + + + + The assignment version of . Clears the tag stack and inserts the new content. + + + + + Parses and adds tags to the tag stack as needed. + Note: Using this method, you can't close a tag that was opened in a previous call. This is done to improve performance, especially when updating large RichTextLabels since rebuilding the whole BBCode every time would be slower. If you absolutely need to close a tag in a future method call, append the instead of using . + + + + + If is enabled, returns if the background thread has finished text processing, otherwise always return . + + + + + If is enabled, returns if the background thread has finished text processing, otherwise always return . + + + + + Returns the line number of the character position provided. Line and character numbers are both zero-indexed. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the paragraph number of the character position provided. Paragraph and character numbers are both zero-indexed. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the total number of characters from text tags. Does not include BBCodes. + + + + + Returns the total number of lines in the text. Wrapped text is counted as multiple lines. + Note: If is set to only visible wrapped lines are counted. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the indexes of the first and last visible characters for the given , as a . + Note: If is set to only visible wrapped lines are counted. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the number of visible lines. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the total number of paragraphs (newlines or p tags in the tag stack's text tags). Considers wrapped text as one paragraph. + + + + + Returns the number of visible paragraphs. A paragraph is considered visible if at least one of its lines is visible. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the height of the content. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the width of the content. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the vertical offset of the line found at the provided index. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Returns the vertical offset of the paragraph found at the provided index. + Note: If is enabled, this method returns a value for the loaded part of the document. Use or to determine whether document is fully loaded. + + + + + Parses BBCode parameter into a dictionary. + + + + + Parses BBCode parameter into a dictionary. + + + + + Installs a custom effect. This can also be done in the Inspector through the property. should be a valid . + Example: With the following script extending from : + + # effect.gd + class_name MyCustomEffect + extends RichTextEffect + + var bbcode = "my_custom_effect" + + # ... + + The above effect can be installed in from a script: + + # rich_text_label.gd + extends RichTextLabel + + func _ready(): + install_effect(MyCustomEffect.new()) + + # Alternatively, if not using `class_name` in the script that extends RichTextEffect: + install_effect(preload("res://effect.gd").new()) + + + + + + Returns the of this . By default, this menu is displayed when right-clicking on the . + You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see ). For example: + + public override void _Ready() + { + var menu = GetMenu(); + // Remove "Select All" item. + menu.RemoveItem(RichTextLabel.MenuItems.SelectAll); + // Add custom items. + menu.AddSeparator(); + menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1); + // Add event handler. + menu.IdPressed += OnItemPressed; + } + + public void OnItemPressed(int id) + { + if (id == TextEdit.MenuItems.Max + 1) + { + AddText("\n" + GetParsedText()); + } + } + + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided). + + + + + Executes a given action as defined in the enum. + + + + + Removes a paragraph of content from the label. Returns if the paragraph exists. + The argument is the index of the paragraph to remove, it can take values in the interval [0, get_paragraph_count() - 1]. + If is set to , cache for the subsequent paragraphs is not invalidated. Use it for faster updates if deleted paragraph is fully self-contained (have no unclosed tags), or this call is part of the complex edit operation and will be called at the end of operation. + + + + + Adds an image's opening and closing tags to the tag stack, optionally providing a and to resize the image, a to tint the image and a to only use parts of the image. + If or is set to 0, the image size will be adjusted in order to keep the original aspect ratio. + If and are not set, but is, the region's rect will be used. + is an optional identifier, that can be used to modify the image via . + If is set, and the image is smaller than the size specified by and , the image padding is added to match the size instead of upscaling. + If is set, and values are percentages of the control width instead of pixels. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non- metadata types. + If is , meta tags display an underline. This behavior can be customized with . + Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect to a function that is called when the meta tag is clicked. + + + + + Adds a meta tag to the tag stack. Similar to the BBCode [url=something]{text}[/url], but supports non- metadata types. + If is , meta tags display an underline. This behavior can be customized with . + Note: Meta tags do nothing by default when clicked. To assign behavior when clicked, connect to a function that is called when the meta tag is clicked. + + + + + Represents the method that handles the event of a class. + + + + + Triggered when the user clicks on content between meta (URL) tags. If the meta is defined in BBCode, e.g. [url={"key": "value"}]Text[/url], then the parameter for this signal will always be a type. If a particular type or an object is desired, the method must be used to manually insert the data into the tag stack. Alternatively, you can convert the input to the desired type based on its contents (such as calling on it). + For example, the following method can be connected to to open clicked URLs using the user's default web browser: + + + + + + Represents the method that handles the event of a class. + + + + + Triggers when the mouse enters a meta tag. + + + + + Represents the method that handles the event of a class. + + + + + Triggers when the mouse exits a meta tag. + + + + + Triggered when the document is fully loaded. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bbcode_enabled' property. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'fit_content' property. + + + + + Cached name for the 'scroll_active' property. + + + + + Cached name for the 'scroll_following' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'tab_size' property. + + + + + Cached name for the 'context_menu_enabled' property. + + + + + Cached name for the 'shortcut_keys_enabled' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'tab_stops' property. + + + + + Cached name for the 'custom_effects' property. + + + + + Cached name for the 'meta_underlined' property. + + + + + Cached name for the 'hint_underlined' property. + + + + + Cached name for the 'threaded' property. + + + + + Cached name for the 'progress_bar_delay' property. + + + + + Cached name for the 'selection_enabled' property. + + + + + Cached name for the 'deselect_on_focus_loss_enabled' property. + + + + + Cached name for the 'drag_and_drop_selection_enabled' property. + + + + + Cached name for the 'visible_characters' property. + + + + + Cached name for the 'visible_characters_behavior' property. + + + + + Cached name for the 'visible_ratio' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_parsed_text' method. + + + + + Cached name for the 'add_text' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'add_image' method. + + + + + Cached name for the 'update_image' method. + + + + + Cached name for the 'newline' method. + + + + + Cached name for the 'remove_paragraph' method. + + + + + Cached name for the 'invalidate_paragraph' method. + + + + + Cached name for the 'push_font' method. + + + + + Cached name for the 'push_font_size' method. + + + + + Cached name for the 'push_normal' method. + + + + + Cached name for the 'push_bold' method. + + + + + Cached name for the 'push_bold_italics' method. + + + + + Cached name for the 'push_italics' method. + + + + + Cached name for the 'push_mono' method. + + + + + Cached name for the 'push_color' method. + + + + + Cached name for the 'push_outline_size' method. + + + + + Cached name for the 'push_outline_color' method. + + + + + Cached name for the 'push_paragraph' method. + + + + + Cached name for the 'push_indent' method. + + + + + Cached name for the 'push_list' method. + + + + + Cached name for the 'push_meta' method. + + + + + Cached name for the 'push_hint' method. + + + + + Cached name for the 'push_language' method. + + + + + Cached name for the 'push_underline' method. + + + + + Cached name for the 'push_strikethrough' method. + + + + + Cached name for the 'push_table' method. + + + + + Cached name for the 'push_dropcap' method. + + + + + Cached name for the 'set_table_column_expand' method. + + + + + Cached name for the 'set_cell_row_background_color' method. + + + + + Cached name for the 'set_cell_border_color' method. + + + + + Cached name for the 'set_cell_size_override' method. + + + + + Cached name for the 'set_cell_padding' method. + + + + + Cached name for the 'push_cell' method. + + + + + Cached name for the 'push_fgcolor' method. + + + + + Cached name for the 'push_bgcolor' method. + + + + + Cached name for the 'push_customfx' method. + + + + + Cached name for the 'push_context' method. + + + + + Cached name for the 'pop_context' method. + + + + + Cached name for the 'pop' method. + + + + + Cached name for the 'pop_all' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_tab_stops' method. + + + + + Cached name for the 'get_tab_stops' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_meta_underline' method. + + + + + Cached name for the 'is_meta_underlined' method. + + + + + Cached name for the 'set_hint_underline' method. + + + + + Cached name for the 'is_hint_underlined' method. + + + + + Cached name for the 'set_scroll_active' method. + + + + + Cached name for the 'is_scroll_active' method. + + + + + Cached name for the 'set_scroll_follow' method. + + + + + Cached name for the 'is_scroll_following' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'scroll_to_line' method. + + + + + Cached name for the 'scroll_to_paragraph' method. + + + + + Cached name for the 'scroll_to_selection' method. + + + + + Cached name for the 'set_tab_size' method. + + + + + Cached name for the 'get_tab_size' method. + + + + + Cached name for the 'set_fit_content' method. + + + + + Cached name for the 'is_fit_content_enabled' method. + + + + + Cached name for the 'set_selection_enabled' method. + + + + + Cached name for the 'is_selection_enabled' method. + + + + + Cached name for the 'set_context_menu_enabled' method. + + + + + Cached name for the 'is_context_menu_enabled' method. + + + + + Cached name for the 'set_shortcut_keys_enabled' method. + + + + + Cached name for the 'is_shortcut_keys_enabled' method. + + + + + Cached name for the 'set_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'is_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'set_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'is_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'get_selection_from' method. + + + + + Cached name for the 'get_selection_to' method. + + + + + Cached name for the 'select_all' method. + + + + + Cached name for the 'get_selected_text' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'parse_bbcode' method. + + + + + Cached name for the 'append_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'is_ready' method. + + + + + Cached name for the 'is_finished' method. + + + + + Cached name for the 'set_threaded' method. + + + + + Cached name for the 'is_threaded' method. + + + + + Cached name for the 'set_progress_bar_delay' method. + + + + + Cached name for the 'get_progress_bar_delay' method. + + + + + Cached name for the 'set_visible_characters' method. + + + + + Cached name for the 'get_visible_characters' method. + + + + + Cached name for the 'get_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_ratio' method. + + + + + Cached name for the 'get_visible_ratio' method. + + + + + Cached name for the 'get_character_line' method. + + + + + Cached name for the 'get_character_paragraph' method. + + + + + Cached name for the 'get_total_character_count' method. + + + + + Cached name for the 'set_use_bbcode' method. + + + + + Cached name for the 'is_using_bbcode' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'get_line_range' method. + + + + + Cached name for the 'get_visible_line_count' method. + + + + + Cached name for the 'get_paragraph_count' method. + + + + + Cached name for the 'get_visible_paragraph_count' method. + + + + + Cached name for the 'get_content_height' method. + + + + + Cached name for the 'get_content_width' method. + + + + + Cached name for the 'get_line_offset' method. + + + + + Cached name for the 'get_paragraph_offset' method. + + + + + Cached name for the 'parse_expressions_for_values' method. + + + + + Cached name for the 'set_effects' method. + + + + + Cached name for the 'get_effects' method. + + + + + Cached name for the 'install_effect' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'is_menu_visible' method. + + + + + Cached name for the 'menu_option' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'meta_clicked' signal. + + + + + Cached name for the 'meta_hover_started' signal. + + + + + Cached name for the 'meta_hover_ended' signal. + + + + + Cached name for the 'finished' signal. + + + + + The is used to construct a by specifying vertex attributes individually. It can be used to construct a from a script. All properties except indices need to be added before calling . For example, to add vertex colors and UVs: + + var st = new SurfaceTool(); + st.Begin(Mesh.PrimitiveType.Triangles); + st.SetColor(new Color(1, 0, 0)); + st.SetUV(new Vector2(0, 0)); + st.AddVertex(new Vector3(0, 0, 0)); + + The above now contains one vertex of a triangle which has a UV coordinate and a specified . If another vertex were added without calling or , then the last values would be used. + Vertex attributes must be passed before calling . 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 , and for procedural geometry generation. + Note: Godot uses clockwise winding order for front faces of triangle primitive modes. + + + + + + + + + + + Limits range of data passed to to unsigned normalized 0 to 1 stored in 8 bits per channel. See . + + + + + Limits range of data passed to to signed normalized -1 to 1 stored in 8 bits per channel. See . + + + + + Stores data passed to as half precision floats, and uses only red and green color channels. See . + + + + + Stores data passed to as half precision floats and uses all color channels. See . + + + + + Stores data passed to as full precision floats, and uses only red color channel. See . + + + + + Stores data passed to as full precision floats, and uses only red and green color channels. See . + + + + + Stores data passed to as full precision floats, and uses only red, green and blue color channels. See . + + + + + Stores data passed to as full precision floats, and uses all color channels. See . + + + + + Used to indicate a disabled custom channel. + + + + + Each individual vertex can be influenced by only 4 bone weights. + + + + + Each individual vertex can be influenced by up to 8 bone weights. + + + + + Set to to indicate that up to 8 bone influences per vertex may be used. + By default, only 4 bone influences are used (). + Note: This function takes an enum, not the exact number of weights. + + + + + By default, returns to indicate only 4 bone influences per vertex are used. + Returns if up to 8 influences are used. + Note: This function returns an enum, not the exact number of weights. + + + + + Sets the color format for this custom . Use to disable. + Must be invoked after and should be set before or . + + + + + Returns the format for custom (currently up to 4). Returns if this custom channel is unused. + + + + + Called before adding any vertices. Takes the primitive type as an argument (e.g. ). + + + + + Specifies the position of current vertex. Should be called after specifying other vertex properties (e.g. Color, UV). + + + + + Specifies a to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + Note: The material must have enabled for the vertex color to be visible. + + + + + Specifies a normal to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies a tangent to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies a set of UV coordinates to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies an optional second set of UV coordinates to use for the next vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies an array of bones to use for the next vertex. must contain 4 integers. + + + + + Specifies an array of bones to use for the next vertex. must contain 4 integers. + + + + + Specifies weight values to use for the next vertex. must contain 4 values. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Specifies weight values to use for the next vertex. must contain 4 values. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all. + + + + + Sets the custom value on this vertex for . + must be called first for this . Formats which are not RGBA will ignore other color channels. + + + + + Specifies the smooth group to use for the next vertex. If this is never called, all vertices will have the default smooth group of 0 and will be smoothed with adjacent vertices of the same group. To produce a mesh with flat normals, set the smooth group to -1. + Note: This function actually takes a uint32_t, so C# users should use uint32.MaxValue instead of -1 to produce a mesh with flat normals. + + + + + Inserts a triangle fan made of array data into being constructed. + Requires the primitive type be set to . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<Color>(). + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<Vector3>(). + + + + Inserts a triangle fan made of array data into being constructed. + Requires the primitive type be set to . + + + + + Adds a vertex to index array if you are using indexed vertices. Does not need to be called before adding vertices. + + + + + Shrinks the vertex array by creating an index array. This can improve performance by avoiding vertex reuse. + + + + + Removes the index array by expanding the vertex array. + + + + + Generates normals from vertices so you do not have to do it manually. If is , the resulting normals will be inverted. should be called after generating geometry and before committing the mesh using or . For correct display of normal-mapped surfaces, you will also have to generate tangents using . + Note: only works if the primitive type is set to . + Note: takes smooth groups into account. To generate smooth normals, set the smooth group to a value greater than or equal to 0 using or leave the smooth group at the default of 0. To generate flat normals, set the smooth group to -1 using prior to adding vertices. + + + + + Generates a tangent vector for each vertex. Requires that each vertex already has UVs and normals set (see ). + + + + + Optimizes triangle sorting for performance. Requires that is . + + + + + Returns the axis-aligned bounding box of the vertex positions. + + + + + Generates an LOD for a given in linear units (square root of quadric error metric), using at most indices. + + + + + Sets to be used by the you are constructing. + + + + + Returns the type of mesh geometry, such as . + + + + + Clear all information passed into the surface tool so far. + + + + + Creates a vertex array from an existing . + + + + + Creates this SurfaceTool from existing vertex arrays such as returned by , , , , and . controls the type of mesh data, defaulting to . + + + + + Creates a vertex array from the specified blend shape of an existing . This can be used to extract a specific pose from a blend shape. + + + + + Append vertices from a given surface onto the current vertex array with specified . + + + + + Returns a constructed from current information passed in. If an existing is passed in as an argument, will add an extra surface to the existing . + FIXME: Document possible values for , it changed in 4.0. Likely some combinations of . + + + + + Commits the data to the same format used by , , and . This way you can further process the mesh data using the or APIs. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_skin_weight_count' method. + + + + + Cached name for the 'get_skin_weight_count' method. + + + + + Cached name for the 'set_custom_format' method. + + + + + Cached name for the 'get_custom_format' method. + + + + + Cached name for the 'begin' method. + + + + + Cached name for the 'add_vertex' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'set_normal' method. + + + + + Cached name for the 'set_tangent' method. + + + + + Cached name for the 'set_uv' method. + + + + + Cached name for the 'set_uv2' method. + + + + + Cached name for the 'set_bones' method. + + + + + Cached name for the 'set_weights' method. + + + + + Cached name for the 'set_custom' method. + + + + + Cached name for the 'set_smooth_group' method. + + + + + Cached name for the 'add_triangle_fan' method. + + + + + Cached name for the 'add_index' method. + + + + + Cached name for the 'index' method. + + + + + Cached name for the 'deindex' method. + + + + + Cached name for the 'generate_normals' method. + + + + + Cached name for the 'generate_tangents' method. + + + + + Cached name for the 'optimize_indices_for_cache' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached name for the 'generate_lod' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_primitive_type' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'create_from' method. + + + + + Cached name for the 'create_from_arrays' method. + + + + + Cached name for the 'create_from_blend_shape' method. + + + + + Cached name for the 'append_from' method. + + + + + Cached name for the 'commit' method. + + + + + Cached name for the 'commit_to_arrays' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node for 2D tile-based maps. Tilemaps use a 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 may be initialized after their parent. This is only queued when inside the scene tree. + To force an update earlier on, call . + + + + + The TileMap's quadrant size. Optimizes drawing by batching, using chunks of this size. + + + + + Use the debug settings to determine visibility. + + + + + Always hide. + + + + + Always show. + + + + + The used by this . The textures, collisions, and additional behavior of all available tiles are stored here. + + + + + The TileMap's quadrant size. A quadrant is a group of tiles to be drawn together on a single canvas item, for optimization purposes. defines the length of a square's side, in the map's coordinate system, that forms the quadrant. Thus, the default quadrant size groups together 16 * 16 = 256 tiles. + The quadrant size does not apply on Y-sorted layers, as tiles are grouped by Y position instead in that case. + Note: As quadrants are created according to the map's coordinate system, the quadrant's "square shape" might not look like square in the TileMap's local coordinate system. + + + + + If enabled, the TileMap will see its collisions synced to the physics tick and change its collision type from static to kinematic. This is required to create TileMap-based moving platform. + Note: Enabling may have a small performance impact, only do it if the TileMap is moving and has colliding tiles. + + + + + Show or hide the TileMap's collision shapes. If set to , this depends on the show collision debug settings. + + + + + Show or hide the TileMap's navigation meshes. If set to , this depends on the show navigation debug settings. + + + + + Called with a TileData object about to be used internally by the TileMap, allowing its modification at runtime. + This method is only called if is implemented and returns for the given tile and . + Warning: The 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. + Note: If the properties of object should change over time, use to notify the TileMap it needs an update. + + + + + Should return if the tile at coordinates on layer requires a runtime update. + Warning: Make sure this function only return when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty. + Note: If the result of this function should changed, use to notify the TileMap it needs an update. + + + + + Assigns as a navigation map for the specified TileMap layer . + + + + + Returns the of the navigation map assigned to the specified TileMap layer . + + + + + Forces the TileMap and the layer to update. + + + + + Returns the number of layers in the TileMap. + + + + + Adds a layer at the given position in the array. If is negative, the position is counted from the end, with -1 adding the layer at the end of the array. + + + + + Moves the layer at index to the given position in the array. + + + + + Removes the layer at index . + + + + + Sets a layer's name. This is mostly useful in the editor. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's name. + If is negative, the layers are accessed from the last one. + + + + + Enables or disables the layer . A disabled layer is not processed at all (no rendering, no physics, etc.). + If is negative, the layers are accessed from the last one. + + + + + Returns if a layer is enabled. + If is negative, the layers are accessed from the last one. + + + + + Sets a layer's color. It will be multiplied by tile's color and TileMap's modulate. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's modulate. + If is negative, the layers are accessed from the last one. + + + + + Enables or disables a layer's Y-sorting. If a layer is Y-sorted, the layer will behave as a CanvasItem node where each of its tile gets Y-sorted. + Y-sorted layers should usually be on different Z-index values than not Y-sorted layers, otherwise, each of those layer will be Y-sorted as whole with the Y-sorted one. This is usually an undesired behavior. + If is negative, the layers are accessed from the last one. + + + + + Returns if a layer Y-sorts its tiles. + If is negative, the layers are accessed from the last one. + + + + + Sets a layer's Y-sort origin value. This Y-sort origin value is added to each tile's Y-sort origin value. + This allows, for example, to fake a different height level on each layer. This can be useful for top-down view games. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's Y sort origin. + If is negative, the layers are accessed from the last one. + + + + + Sets a layers Z-index value. This Z-index is added to each tile's Z-index value. + If is negative, the layers are accessed from the last one. + + + + + Returns a TileMap layer's Z-index value. + If is negative, the layers are accessed from the last one. + + + + + Enables or disables a layer's built-in navigation regions generation. Disable this if you need to bake navigation regions from a TileMap using a node. + + + + + Returns if a layer's built-in navigation regions generation is enabled. + + + + + Assigns as a navigation map for the specified TileMap layer . + By default the TileMap uses the default navigation map for the first TileMap layer. For each additional TileMap layer a new navigation map is created for the additional layer. + In order to make switch between TileMap layer navigation maps use with the navigation map received from . + If is negative, the layers are accessed from the last one. + + + + + Returns the of the navigation map assigned to the specified TileMap layer . + By default the TileMap uses the default navigation map for the first TileMap layer. For each additional TileMap layer a new navigation map is created for the additional layer. + In order to make switch between TileMap layer navigation maps use with the navigation map received from . + If is negative, the layers are accessed from the last one. + + + + + Sets the tile identifiers for the cell on layer at coordinates . Each tile of the is identified using three parts: + - The source identifier identifies a identifier. See , + - The atlas coordinates identifier identifies a tile coordinates in the atlas (if the source is a ). For it should always be Vector2i(0, 0)), + - The alternative tile identifier identifies a tile alternative in the atlas (if the source is a ), and the scene for a . + If is set to -1, to Vector2i(-1, -1) or to -1, the cell will be erased. An erased cell gets all its identifiers automatically set to their respective invalid values, namely -1, Vector2i(-1, -1) and -1. + If is negative, the layers are accessed from the last one. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Erases the cell on layer at coordinates . + If is negative, the layers are accessed from the last one. + + + + + Returns the tile source ID of the cell on layer at coordinates . Returns -1 if the cell does not exist. + If is , ignores the 's tile proxies, returning the raw source identifier. See . + If is negative, the layers are accessed from the last one. + + + + + Returns the tile atlas coordinates ID of the cell on layer at coordinates . Returns Vector2i(-1, -1) if the cell does not exist. + If is , ignores the 's tile proxies, returning the raw atlas coordinate identifier. See . + If is negative, the layers are accessed from the last one. + + + + + Returns the tile alternative ID of the cell on layer at . + If is , ignores the 's tile proxies, returning the raw alternative identifier. See . + If is negative, the layers are accessed from the last one. + + + + + Returns the object associated with the given cell, or if the cell does not exist or is not a . + If is negative, the layers are accessed from the last one. + + func get_clicked_tile_power(): + var clicked_cell = tile_map.local_to_map(tile_map.get_local_mouse_position()) + var data = tile_map.get_cell_tile_data(0, clicked_cell) + if data: + return data.get_custom_data("power") + else: + return 0 + + If is , ignores the 's tile proxies. See . + + + + + Returns if the cell on layer at coordinates is flipped horizontally. The result is valid only for atlas sources. + + + + + Returns if the cell on layer at coordinates is flipped vertically. The result is valid only for atlas sources. + + + + + Returns if the cell on layer at coordinates is transposed. The result is valid only for atlas sources. + + + + + Returns the coordinates of the tile for given physics body RID. Such RID can be retrieved from , when colliding with a tile. + + + + + Returns the tilemap layer of the tile for given physics body RID. Such RID can be retrieved from , when colliding with a tile. + + + + + Creates a new from the given layer and set of cells. + If is negative, the layers are accessed from the last one. + + + + + Returns for the given coordinate in a the corresponding cell coordinates if the pattern was pasted at the coordinates (see ). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating position_in_tile_map + coords_in_pattern. + + + + + Paste the given at the given and in the tile map. + If is negative, the layers are accessed from the last one. + + + + + Update all the cells in the coordinates array so that they use the given for the given . If an updated cell has the same terrain as one of its neighboring cells, this function tries to join the two. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + If is negative, the layers are accessed from the last one. + Note: To work correctly, this method requires the TileMap's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Update all the cells in the coordinates array so that they use the given for the given . The function will also connect two successive cell in the path with the same terrain. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + If is negative, the layers are accessed from the last one. + Note: To work correctly, this method requires the TileMap's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Clears cells that do not exist in the tileset. + + + + + Clears all cells on the given layer. + If is negative, the layers are accessed from the last one. + + + + + Clears all cells. + + + + + Triggers a direct update of the TileMap. Usually, calling this function is not needed, as TileMap node updates automatically when one of its properties or cells is modified. + However, for performance reasons, those updates are batched and delayed to the end of the frame. Calling this function will force the TileMap to update right away instead. + Warning: Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of updates and how many tiles they impact. + + + + + Notifies the TileMap node that calls to or will lead to different results. This will thus trigger a TileMap update. + If is provided, only notifies changes for the given layer. Providing the argument (when applicable) is usually preferred for performance reasons. + Warning: Updating the TileMap is computationally expensive and may impact performance. Try to limit the number of calls to this function to avoid unnecessary update. + Note: This does not trigger a direct update of the TileMap, the update will be done at the end of the frame as usual (unless you call ). + + + + + Returns the list of all neighbourings cells to the one at . + + + + + Returns a array with the positions of all cells containing a tile in the given layer. A cell is considered empty if its source identifier equals -1, its atlas coordinates identifiers is Vector2(-1, -1) and its alternative identifier is -1. + If is negative, the layers are accessed from the last one. + + + + + Returns a array with the positions of all cells containing a tile in the given layer. Tiles may be filtered according to their source (), their atlas coordinates () or alternative id (). + If a parameter has its value set to the default one, this parameter is not used to filter a cell. Thus, if all parameters have their respective default value, this method returns the same result as . + A cell is considered empty if its source identifier equals -1, its atlas coordinates identifiers is Vector2(-1, -1) and its alternative identifier is -1. + If is negative, the layers are accessed from the last one. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns a rectangle enclosing the used (non-empty) tiles of the map, including all layers. + + + + + Returns the centered position of a cell in the TileMap's local coordinate space. To convert the returned value into global coordinates, use . See also . + Note: This may not correspond to the visual position of the tile, i.e. it ignores the property of individual tiles. + + + + + Returns the map coordinates of the cell containing the given . If is in global coordinates, consider using before passing it to this method. See also . + + + + + Returns the neighboring cell to the one at coordinates , identified by the direction. This method takes into account the different layouts a TileMap can take. + + + + + Emitted when the of this TileMap changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tile_set' property. + + + + + Cached name for the 'rendering_quadrant_size' property. + + + + + Cached name for the 'collision_animatable' property. + + + + + Cached name for the 'collision_visibility_mode' property. + + + + + Cached name for the 'navigation_visibility_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_tile_data_runtime_update' method. + + + + + Cached name for the '_use_tile_data_runtime_update' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'force_update' method. + + + + + Cached name for the 'set_tileset' method. + + + + + Cached name for the 'get_tileset' method. + + + + + Cached name for the 'set_rendering_quadrant_size' method. + + + + + Cached name for the 'get_rendering_quadrant_size' method. + + + + + Cached name for the 'get_layers_count' method. + + + + + Cached name for the 'add_layer' method. + + + + + Cached name for the 'move_layer' method. + + + + + Cached name for the 'remove_layer' method. + + + + + Cached name for the 'set_layer_name' method. + + + + + Cached name for the 'get_layer_name' method. + + + + + Cached name for the 'set_layer_enabled' method. + + + + + Cached name for the 'is_layer_enabled' method. + + + + + Cached name for the 'set_layer_modulate' method. + + + + + Cached name for the 'get_layer_modulate' method. + + + + + Cached name for the 'set_layer_y_sort_enabled' method. + + + + + Cached name for the 'is_layer_y_sort_enabled' method. + + + + + Cached name for the 'set_layer_y_sort_origin' method. + + + + + Cached name for the 'get_layer_y_sort_origin' method. + + + + + Cached name for the 'set_layer_z_index' method. + + + + + Cached name for the 'get_layer_z_index' method. + + + + + Cached name for the 'set_layer_navigation_enabled' method. + + + + + Cached name for the 'is_layer_navigation_enabled' method. + + + + + Cached name for the 'set_layer_navigation_map' method. + + + + + Cached name for the 'get_layer_navigation_map' method. + + + + + Cached name for the 'set_collision_animatable' method. + + + + + Cached name for the 'is_collision_animatable' method. + + + + + Cached name for the 'set_collision_visibility_mode' method. + + + + + Cached name for the 'get_collision_visibility_mode' method. + + + + + Cached name for the 'set_navigation_visibility_mode' method. + + + + + Cached name for the 'get_navigation_visibility_mode' method. + + + + + Cached name for the 'set_cell' method. + + + + + Cached name for the 'erase_cell' method. + + + + + Cached name for the 'get_cell_source_id' method. + + + + + Cached name for the 'get_cell_atlas_coords' method. + + + + + Cached name for the 'get_cell_alternative_tile' method. + + + + + Cached name for the 'get_cell_tile_data' method. + + + + + Cached name for the 'is_cell_flipped_h' method. + + + + + Cached name for the 'is_cell_flipped_v' method. + + + + + Cached name for the 'is_cell_transposed' method. + + + + + Cached name for the 'get_coords_for_body_rid' method. + + + + + Cached name for the 'get_layer_for_body_rid' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'map_pattern' method. + + + + + Cached name for the 'set_pattern' method. + + + + + Cached name for the 'set_cells_terrain_connect' method. + + + + + Cached name for the 'set_cells_terrain_path' method. + + + + + Cached name for the 'fix_invalid_tiles' method. + + + + + Cached name for the 'clear_layer' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'update_internals' method. + + + + + Cached name for the 'notify_runtime_tile_data_update' method. + + + + + Cached name for the 'get_surrounding_cells' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_used_cells_by_id' method. + + + + + Cached name for the 'get_used_rect' method. + + + + + Cached name for the 'map_to_local' method. + + + + + Cached name for the 'local_to_map' method. + + + + + Cached name for the 'get_neighbor_cell' method. + + + + + Cached name for the 'get_quadrant_size' method. + + + + + Cached name for the 'set_quadrant_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + A control used to show a set of internal s in a hierarchical structure. The tree items can be selected, expanded and collapsed. The tree can have multiple columns with custom controls like s, buttons and popups. It can be useful for structured displays and interactions. + Trees are built via code, using objects to create the structure. They have a single root, but multiple roots can be simulated with : + + public override void _Ready() + { + var tree = new Tree(); + TreeItem root = tree.CreateItem(); + tree.HideRoot = true; + TreeItem child1 = tree.CreateItem(root); + TreeItem child2 = tree.CreateItem(root); + TreeItem subchild1 = tree.CreateItem(child1); + subchild1.SetText(0, "Subchild1"); + } + + To iterate over all the objects in a object, use and after getting the root through . You can use on a to remove it from the . + Incremental search: Like and , supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec. + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Disables all drop sections, but still allows to detect the "on item" drop section by . + Note: This is the default flag, it has no effect when combined with other flags. + + + + + Enables the "on item" drop section. This drop section covers the entire item. + When combined with , this drop section halves the height and stays centered vertically. + + + + + 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 , these drop sections halves the height and stays on top / bottom accordingly. + + + + + The number of columns. + + + + + If , column titles are visible. + + + + + If , the currently selected cell may be selected again. + + + + + If , a right mouse button click can select items. + + + + + If , allows navigating the with letter keys through incremental search. + + + + + If , the folding arrow is hidden. + + + + + If , recursive folding is enabled for this . Holding down Shift while clicking the fold arrow or using ui_right/ui_left shortcuts collapses or uncollapses the and all its descendants. + + + + + If , the tree's root is hidden. + + + + + The drop mode as an OR combination of flags. See constants. Once dropping is done, reverts to . Setting this during is recommended. + This controls the drop sections, i.e. the decision and drawing of possible drop locations based on the mouse position. + + + + + Allows single or multiple selection. See the constants. + + + + + If , enables horizontal scrolling. + + + + + If , enables vertical scrolling. + + + + + If , tree items with no tooltip assigned display their text as their tooltip. See also and . + + + + + Clears the tree. This removes all items. + + + + + Creates an item in the tree and adds it as a child of , which can be either a valid or . + If is , the root item will be the parent, or the new item will be the root itself if the tree is empty. + The new item will be the -th child of parent, or it will be the last child if there are not enough siblings. + + + + + Returns the tree's root item, or if the tree is empty. + + + + + Overrides the calculated minimum width of a column. It can be set to 0 to restore the default behavior. Columns that have the "Expand" flag will use their "min_width" in a similar fashion to . + + + + + If , the column will have the "Expand" flag of . Columns that have the "Expand" flag will use their expand ratio in a similar fashion to (see ). + + + + + Sets the relative expand ratio for a column. See . + + + + + Allows to enable clipping for column's content, making the content size ignored. + + + + + Returns if the column has enabled expanding (see ). + + + + + Returns if the column has enabled clipping (see ). + + + + + Returns the expand ratio assigned to the column. + + + + + Returns the column's width in pixels. + + + + + Returns the next selected after the given one, or if the end is reached. + If is , this returns the first selected item. + + + + + Returns the currently focused item, or if no item is focused. + In and modes, the focused item is same as the selected item. In mode, the focused item is the item under the focus cursor, not necessarily selected. + To get the currently selected item(s), use . + + + + + Selects the specified and column. + + + + + Returns the currently focused column, or -1 if no column is focused. + In mode, the focused column is the selected column. In mode, the focused column is always 0 if any item is selected. In mode, the focused column is the column under the focus cursor, and there are not necessarily any column selected. + To tell whether a column of an item is selected, use . + + + + + Returns the last pressed button's index. + + + + + Deselects all tree items (rows and columns). In mode also removes selection cursor. + + + + + Returns the currently edited item. Can be used with to get the item that was modified. + + public override void _Ready() + { + GetNode<Tree>("Tree").ItemEdited += OnTreeItemEdited; + } + + public void OnTreeItemEdited() + { + GD.Print(GetNode<Tree>("Tree").GetEdited()); // This item just got edited (e.g. checked). + } + + + + + + Returns the column for the currently edited item. + + + + + Edits the selected tree item as if it was clicked. + Either the item must be set editable with or must be . + Returns if the item could be edited. Fails if no item is selected. + + + + + Returns the rectangle for custom popups. Helper to create custom cell controls that display a popup. See . + + + + + Returns the rectangle area for the specified . If is specified, only get the position and size of that column, otherwise get the rectangle containing all columns. If a button index is specified, the rectangle of that button will be returned. + + + + + Returns the tree item at the specified position (relative to the tree origin position). + + + + + Returns the column index at , or -1 if no item is there. + + + + + Returns the drop section at , or -100 if no item is there. + Values -1, 0, or 1 will be returned for the "above item", "on item", and "below item" drop sections, respectively. See for a description of each drop section. + To get the item which the returned drop section is relative to, use . + + + + + Returns the button ID at , or -1 if no button is there. + + + + + Makes the currently focused cell visible. + This will scroll the tree if necessary. In mode, this will not do horizontal scrolling, as all the cells in the selected row is focused logically. + Note: Despite the name of this method, the focus cursor itself is only visible in mode. + + + + + Sets the title of a column. + + + + + Returns the column's title. + + + + + Sets the column title alignment. Note that is not supported for column titles. + + + + + Returns the column title alignment. + + + + + Sets column title base writing direction. + + + + + Returns column title base writing direction. + + + + + Sets language code of column title used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns column title language code. + + + + + Returns the current scrolling position. + + + + + Causes the to jump to the specified . + + + + + Emitted when an item is selected. + + + + + Emitted when a cell is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted instead of if is set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item is selected with a mouse button. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a mouse button is clicked in the empty space of the tree. + + + + + Emitted when an item is edited. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item with is clicked with a mouse button. + + + + + Emitted when an item's icon is double-clicked. For a signal that emits when any part of the item is double-clicked, see . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item is collapsed by a click on the folding arrow. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when is called. Connect to this signal to process the items that are affected when is invoked. The order that the items affected will be processed is as follows: the item that invoked the method, children of that item, and finally parents of that item. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on the tree was pressed (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a cell with the is clicked to be edited. + + + + + Emitted when an item is double-clicked, or selected with a ui_accept input event (e.g. using Enter or Space on the keyboard). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a column's title is clicked with either or . + + + + + Emitted when a left mouse button click does not select any item. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'columns' property. + + + + + Cached name for the 'column_titles_visible' property. + + + + + Cached name for the 'allow_reselect' property. + + + + + Cached name for the 'allow_rmb_select' property. + + + + + Cached name for the 'allow_search' property. + + + + + Cached name for the 'hide_folding' property. + + + + + Cached name for the 'enable_recursive_folding' property. + + + + + Cached name for the 'hide_root' property. + + + + + Cached name for the 'drop_mode_flags' property. + + + + + Cached name for the 'select_mode' property. + + + + + Cached name for the 'scroll_horizontal_enabled' property. + + + + + Cached name for the 'scroll_vertical_enabled' property. + + + + + Cached name for the 'auto_tooltip' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'create_item' method. + + + + + Cached name for the 'get_root' method. + + + + + Cached name for the 'set_column_custom_minimum_width' method. + + + + + Cached name for the 'set_column_expand' method. + + + + + Cached name for the 'set_column_expand_ratio' method. + + + + + Cached name for the 'set_column_clip_content' method. + + + + + Cached name for the 'is_column_expanding' method. + + + + + Cached name for the 'is_column_clipping_content' method. + + + + + Cached name for the 'get_column_expand_ratio' method. + + + + + Cached name for the 'get_column_width' method. + + + + + Cached name for the 'set_hide_root' method. + + + + + Cached name for the 'is_root_hidden' method. + + + + + Cached name for the 'get_next_selected' method. + + + + + Cached name for the 'get_selected' method. + + + + + Cached name for the 'set_selected' method. + + + + + Cached name for the 'get_selected_column' method. + + + + + Cached name for the 'get_pressed_button' method. + + + + + Cached name for the 'set_select_mode' method. + + + + + Cached name for the 'get_select_mode' method. + + + + + Cached name for the 'deselect_all' method. + + + + + Cached name for the 'set_columns' method. + + + + + Cached name for the 'get_columns' method. + + + + + Cached name for the 'get_edited' method. + + + + + Cached name for the 'get_edited_column' method. + + + + + Cached name for the 'edit_selected' method. + + + + + Cached name for the 'get_custom_popup_rect' method. + + + + + Cached name for the 'get_item_area_rect' method. + + + + + Cached name for the 'get_item_at_position' method. + + + + + Cached name for the 'get_column_at_position' method. + + + + + Cached name for the 'get_drop_section_at_position' method. + + + + + Cached name for the 'get_button_id_at_position' method. + + + + + Cached name for the 'ensure_cursor_is_visible' method. + + + + + Cached name for the 'set_column_titles_visible' method. + + + + + Cached name for the 'are_column_titles_visible' method. + + + + + Cached name for the 'set_column_title' method. + + + + + Cached name for the 'get_column_title' method. + + + + + Cached name for the 'set_column_title_alignment' method. + + + + + Cached name for the 'get_column_title_alignment' method. + + + + + Cached name for the 'set_column_title_direction' method. + + + + + Cached name for the 'get_column_title_direction' method. + + + + + Cached name for the 'set_column_title_language' method. + + + + + Cached name for the 'get_column_title_language' method. + + + + + Cached name for the 'get_scroll' method. + + + + + Cached name for the 'scroll_to_item' method. + + + + + Cached name for the 'set_h_scroll_enabled' method. + + + + + Cached name for the 'is_h_scroll_enabled' method. + + + + + Cached name for the 'set_v_scroll_enabled' method. + + + + + Cached name for the 'is_v_scroll_enabled' method. + + + + + Cached name for the 'set_hide_folding' method. + + + + + Cached name for the 'is_folding_hidden' method. + + + + + Cached name for the 'set_enable_recursive_folding' method. + + + + + Cached name for the 'is_recursive_folding_enabled' method. + + + + + Cached name for the 'set_drop_mode_flags' method. + + + + + Cached name for the 'get_drop_mode_flags' method. + + + + + Cached name for the 'set_allow_rmb_select' method. + + + + + Cached name for the 'get_allow_rmb_select' method. + + + + + Cached name for the 'set_allow_reselect' method. + + + + + Cached name for the 'get_allow_reselect' method. + + + + + Cached name for the 'set_allow_search' method. + + + + + Cached name for the 'get_allow_search' method. + + + + + Cached name for the 'set_auto_tooltip' method. + + + + + Cached name for the 'is_auto_tooltip_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'item_selected' signal. + + + + + Cached name for the 'cell_selected' signal. + + + + + Cached name for the 'multi_selected' signal. + + + + + Cached name for the 'item_mouse_selected' signal. + + + + + Cached name for the 'empty_clicked' signal. + + + + + Cached name for the 'item_edited' signal. + + + + + Cached name for the 'custom_item_clicked' signal. + + + + + Cached name for the 'item_icon_double_clicked' signal. + + + + + Cached name for the 'item_collapsed' signal. + + + + + Cached name for the 'check_propagated_to_item' signal. + + + + + Cached name for the 'button_clicked' signal. + + + + + Cached name for the 'custom_popup_edited' signal. + + + + + Cached name for the 'item_activated' signal. + + + + + Cached name for the 'column_title_clicked' signal. + + + + + Cached name for the 'nothing_selected' signal. + + + + + UndoRedo works by registering methods and property changes inside "actions". You can create an action, then provide ways to do and undo this action using function calls and property changes, then commit the action. + When an action is committed, all of the do_* methods will run. If the method is used, the undo_* methods will run. If the method is used, once again, all of the do_* methods will run. + Here's an example on how to add an action: + + private UndoRedo _undoRedo; + + public override void _Ready() + { + _undoRedo = new UndoRedo(); + } + + public void DoSomething() + { + // Put your code here. + } + + public void UndoSomething() + { + // Put here the code that reverts what's done by "DoSomething()". + } + + private void OnMyButtonPressed() + { + var node = GetNode<Node2D>("MyNode2D"); + _undoRedo.CreateAction("Move the node"); + _undoRedo.AddDoMethod(new Callable(this, MethodName.DoSomething)); + _undoRedo.AddUndoMethod(new Callable(this, MethodName.UndoSomething)); + _undoRedo.AddDoProperty(node, "position", new Vector2(100, 100)); + _undoRedo.AddUndoProperty(node, "position", node.Position); + _undoRedo.CommitAction(); + } + + Before calling any of the add_(un)do_* methods, you need to first call . Afterwards you need to call . + If you don't need to register a method, you can leave and 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. + + _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(); + + + + + + + + + Makes "do"/"undo" operations stay in separate actions. + + + + + Merges this action with the previous one if they have the same name. Keeps only the first action's "undo" operations and the last action's "do" operations. Useful for sequential changes to a single value. + + + + + Merges this action with the previous one if they have the same name. + + + + + The maximum number of steps that can be stored in the undo/redo history. If the number of stored steps exceeds this limit, older steps are removed from history and can no longer be reached by calling . A value of 0 or lower means no limit. + + + + + Create a new action. After this is called, do all your calls to , , , and , then commit the action with . + The way actions are merged is dictated by . See for details. + The way undo operation are ordered in actions is dictated by . When is undo option are ordered in the same order they were added. Which means the first operation to be added will be the first to be undone. + + + + + Commit the action. If is (which it is by default), all "do" methods/properties are called/set when this function is called. + + + + + Returns if the is currently committing the action, i.e. running its "do" method or property change (see ). + + + + + Register a that will be called when the action is committed. + + + + + Register a that will be called when the action is undone. + + + + + Register a that would change its value to when the action is committed. + + + + + Register a that would change its value to when the action is undone. + + + + + Register a reference to an object that will be erased if the "do" history is deleted. This is useful for objects added by the "do" action and removed by the "undo" action. + When the "do" history is deleted, if the object is a , it will be unreferenced. Otherwise, it will be freed. Do not use for resources. + + var node = Node2D.new() + undo_redo.create_action("Add node") + undo_redo.add_do_method(add_child.bind(node)) + undo_redo.add_do_reference(node) + undo_redo.add_undo_method(remove_child.bind(node)) + undo_redo.commit_action() + + + + + + Register a reference to an object that will be erased if the "undo" history is deleted. This is useful for objects added by the "undo" action and removed by the "do" action. + When the "undo" history is deleted, if the object is a , it will be unreferenced. Otherwise, it will be freed. Do not use for resources. + + var node = $Node2D + undo_redo.create_action("Remove node") + undo_redo.add_do_method(remove_child.bind(node)) + undo_redo.add_undo_method(add_child.bind(node)) + undo_redo.add_undo_reference(node) + undo_redo.commit_action() + + + + + + Marks the next "do" and "undo" operations to be processed even if the action gets merged with another in the mode. Return to normal operation using . + + + + + Stops marking operations as to be processed even if the action gets merged with another in the mode. See . + + + + + Returns how many elements are in the history. + + + + + Gets the index of the current action. + + + + + Gets the action name from its index. + + + + + Clear the undo/redo history and associated references. + Passing to will prevent the version number from increasing when the history is cleared. + + + + + Gets the name of the current action, equivalent to get_action_name(get_current_action()). + + + + + Returns if an "undo" action is available. + + + + + Returns if a "redo" action is available. + + + + + Gets the version. Every time a new action is committed, the 's version number is increased automatically. + This is useful mostly to check if something changed from a saved version. + + + + + Redo the last action. + + + + + Undo the last action. + + + + + Called when or was called. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'max_steps' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_action' method. + + + + + Cached name for the 'commit_action' method. + + + + + Cached name for the 'is_committing_action' method. + + + + + Cached name for the 'add_do_method' method. + + + + + Cached name for the 'add_undo_method' method. + + + + + Cached name for the 'add_do_property' method. + + + + + Cached name for the 'add_undo_property' method. + + + + + Cached name for the 'add_do_reference' method. + + + + + Cached name for the 'add_undo_reference' method. + + + + + Cached name for the 'start_force_keep_in_merge_ends' method. + + + + + Cached name for the 'end_force_keep_in_merge_ends' method. + + + + + Cached name for the 'get_history_count' method. + + + + + Cached name for the 'get_current_action' method. + + + + + Cached name for the 'get_action_name' method. + + + + + Cached name for the 'clear_history' method. + + + + + Cached name for the 'get_current_action_name' method. + + + + + Cached name for the 'has_undo' method. + + + + + Cached name for the 'has_redo' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'set_max_steps' method. + + + + + Cached name for the 'get_max_steps' method. + + + + + Cached name for the 'redo' method. + + + + + Cached name for the 'undo' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'version_changed' signal. + + + + + Left side, usually used for or -derived classes. + + + + + Top side, usually used for or -derived classes. + + + + + Right side, usually used for or -derived classes. + + + + + Bottom side, usually used for or -derived classes. + + + + + Top-left corner. + + + + + Top-right corner. + + + + + Bottom-right corner. + + + + + Bottom-left corner. + + + + + General vertical alignment, usually used for , , , etc. + + + + + General horizontal alignment, usually used for , , , etc. + + + + + Clockwise rotation. Used by some methods (e.g. ). + + + + + Counter-clockwise rotation. Used by some methods (e.g. ). + + + + + Horizontal left alignment, usually for text-derived classes. + + + + + Horizontal center alignment, usually for text-derived classes. + + + + + Horizontal right alignment, usually for text-derived classes. + + + + + Expand row to fit width, usually for text-derived classes. + + + + + Vertical top alignment, usually for text-derived classes. + + + + + Vertical center alignment, usually for text-derived classes. + + + + + Vertical bottom alignment, usually for text-derived classes. + + + + + Expand rows to fit height, usually for text-derived classes. + + + + + Aligns the top of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the center of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the baseline (user defined) of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the bottom of the inline object (e.g. image, table) to the position of the text specified by INLINE_ALIGNMENT_TO_* constant. + + + + + Aligns the position of the inline object (e.g. image, table) specified by INLINE_ALIGNMENT_*_TO constant to the top of the text. + + + + + Aligns the position of the inline object (e.g. image, table) specified by INLINE_ALIGNMENT_*_TO constant to the center of the text. + + + + + Aligns the position of the inline object (e.g. image, table) specified by INLINE_ALIGNMENT_*_TO constant to the baseline of the text. + + + + + Aligns inline object (e.g. image, table) to the bottom of the text. + + + + + Aligns top of the inline object (e.g. image, table) to the top of the text. Equivalent to INLINE_ALIGNMENT_TOP_TO | INLINE_ALIGNMENT_TO_TOP. + + + + + Aligns center of the inline object (e.g. image, table) to the center of the text. Equivalent to INLINE_ALIGNMENT_CENTER_TO | INLINE_ALIGNMENT_TO_CENTER. + + + + + Aligns bottom of the inline object (e.g. image, table) to the bottom of the text. Equivalent to INLINE_ALIGNMENT_BOTTOM_TO | INLINE_ALIGNMENT_TO_BOTTOM. + + + + + A bit mask for INLINE_ALIGNMENT_*_TO alignment constants. + + + + + A bit mask for INLINE_ALIGNMENT_TO_* alignment constants. + + + + + Specifies that Euler angles should be in XYZ order. When composing, the order is X, Y, Z. When decomposing, the order is reversed, first Z, then Y, and X last. + + + + + Specifies that Euler angles should be in XZY order. When composing, the order is X, Z, Y. When decomposing, the order is reversed, first Y, then Z, and X last. + + + + + Specifies that Euler angles should be in YXZ order. When composing, the order is Y, X, Z. When decomposing, the order is reversed, first Z, then X, and Y last. + + + + + Specifies that Euler angles should be in YZX order. When composing, the order is Y, Z, X. When decomposing, the order is reversed, first X, then Z, and Y last. + + + + + Specifies that Euler angles should be in ZXY order. When composing, the order is Z, X, Y. When decomposing, the order is reversed, first Y, then X, and Z last. + + + + + Specifies that Euler angles should be in ZYX order. When composing, the order is Z, Y, X. When decomposing, the order is reversed, first X, then Y, and Z last. + + + + + Enum value which doesn't correspond to any key. This is used to initialize properties with a generic state. + + + + + Keycodes with this bit applied are non-printable. + + + + + Escape key. + + + + + Tab key. + + + + + Shift + Tab key. + + + + + Backspace key. + + + + + Return key (on the main keyboard). + + + + + Enter key on the numeric keypad. + + + + + Insert key. + + + + + Delete key. + + + + + Pause key. + + + + + Print Screen key. + + + + + System Request key. + + + + + Clear key. + + + + + Home key. + + + + + End key. + + + + + Left arrow key. + + + + + Up arrow key. + + + + + Right arrow key. + + + + + Down arrow key. + + + + + Page Up key. + + + + + Page Down key. + + + + + Shift key. + + + + + Control key. + + + + + Meta key. + + + + + Alt key. + + + + + Caps Lock key. + + + + + Num Lock key. + + + + + Scroll Lock key. + + + + + F1 key. + + + + + F2 key. + + + + + F3 key. + + + + + F4 key. + + + + + F5 key. + + + + + F6 key. + + + + + F7 key. + + + + + F8 key. + + + + + F9 key. + + + + + F10 key. + + + + + F11 key. + + + + + F12 key. + + + + + F13 key. + + + + + F14 key. + + + + + F15 key. + + + + + F16 key. + + + + + F17 key. + + + + + F18 key. + + + + + F19 key. + + + + + F20 key. + + + + + F21 key. + + + + + F22 key. + + + + + F23 key. + + + + + F24 key. + + + + + F25 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F26 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F27 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F28 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F29 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F30 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F31 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F32 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F33 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F34 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + F35 key. Only supported on macOS and Linux due to a Windows limitation. + + + + + Multiply (*) key on the numeric keypad. + + + + + Divide (/) key on the numeric keypad. + + + + + Subtract (-) key on the numeric keypad. + + + + + Period (.) key on the numeric keypad. + + + + + Add (+) key on the numeric keypad. + + + + + Number 0 on the numeric keypad. + + + + + Number 1 on the numeric keypad. + + + + + Number 2 on the numeric keypad. + + + + + Number 3 on the numeric keypad. + + + + + Number 4 on the numeric keypad. + + + + + Number 5 on the numeric keypad. + + + + + Number 6 on the numeric keypad. + + + + + Number 7 on the numeric keypad. + + + + + Number 8 on the numeric keypad. + + + + + Number 9 on the numeric keypad. + + + + + Context menu key. + + + + + Hyper key. (On Linux/X11 only). + + + + + Help key. + + + + + Back key. + + + + + Forward key. + + + + + Media stop key. + + + + + Refresh key. + + + + + Volume down key. + + + + + Mute volume key. + + + + + Volume up key. + + + + + Media play key. + + + + + Media stop key. + + + + + Previous song key. + + + + + Next song key. + + + + + Media record key. + + + + + Home page key. + + + + + Favorites key. + + + + + Search key. + + + + + Standby key. + + + + + Open URL / Launch Browser key. + + + + + Launch Mail key. + + + + + Launch Media key. + + + + + Launch Shortcut 0 key. + + + + + Launch Shortcut 1 key. + + + + + Launch Shortcut 2 key. + + + + + Launch Shortcut 3 key. + + + + + Launch Shortcut 4 key. + + + + + Launch Shortcut 5 key. + + + + + Launch Shortcut 6 key. + + + + + Launch Shortcut 7 key. + + + + + Launch Shortcut 8 key. + + + + + Launch Shortcut 9 key. + + + + + Launch Shortcut A key. + + + + + Launch Shortcut B key. + + + + + Launch Shortcut C key. + + + + + Launch Shortcut D key. + + + + + Launch Shortcut E key. + + + + + Launch Shortcut F key. + + + + + "Globe" key on Mac / iPad keyboard. + + + + + "On-screen keyboard" key on iPad keyboard. + + + + + 英数 key on Mac keyboard. + + + + + かな key on Mac keyboard. + + + + + Unknown key. + + + + + Space key. + + + + + Exclamation mark (!) key. + + + + + Double quotation mark (") key. + + + + + Number sign or hash (#) key. + + + + + Dollar sign ($) key. + + + + + Percent sign (%) key. + + + + + Ampersand (&) key. + + + + + Apostrophe (') key. + + + + + Left parenthesis (() key. + + + + + Right parenthesis ()) key. + + + + + Asterisk (*) key. + + + + + Plus (+) key. + + + + + Comma (,) key. + + + + + Minus (-) key. + + + + + Period (.) key. + + + + + Slash (/) key. + + + + + Number 0 key. + + + + + Number 1 key. + + + + + Number 2 key. + + + + + Number 3 key. + + + + + Number 4 key. + + + + + Number 5 key. + + + + + Number 6 key. + + + + + Number 7 key. + + + + + Number 8 key. + + + + + Number 9 key. + + + + + Colon (:) key. + + + + + Semicolon (;) key. + + + + + Less-than sign (<) key. + + + + + Equal sign (=) key. + + + + + Greater-than sign (>) key. + + + + + Question mark (?) key. + + + + + At sign (@) key. + + + + + A key. + + + + + B key. + + + + + C key. + + + + + D key. + + + + + E key. + + + + + F key. + + + + + G key. + + + + + H key. + + + + + I key. + + + + + J key. + + + + + K key. + + + + + L key. + + + + + M key. + + + + + N key. + + + + + O key. + + + + + P key. + + + + + Q key. + + + + + R key. + + + + + S key. + + + + + T key. + + + + + U key. + + + + + V key. + + + + + W key. + + + + + X key. + + + + + Y key. + + + + + Z key. + + + + + Left bracket ([lb]) key. + + + + + Backslash (\) key. + + + + + Right bracket ([rb]) key. + + + + + Caret (^) key. + + + + + Underscore (_) key. + + + + + Backtick (`) key. + + + + + Left brace ({) key. + + + + + Vertical bar or pipe (|) key. + + + + + Right brace (}) key. + + + + + Tilde (~) key. + + + + + Yen symbol (¥) key. + + + + + Section sign (§) key. + + + + + Key Code mask. + + + + + Modifier key mask. + + + + + Automatically remapped to on macOS and on other platforms, this mask is never set in the actual events, and should be used for key mapping only. + + + + + Shift key mask. + + + + + Alt or Option (on macOS) key mask. + + + + + Command (on macOS) or Meta/Windows key mask. + + + + + Control key mask. + + + + + Keypad key mask. + + + + + Group Switch key mask. + + + + + Used for keys which only appear once, or when a comparison doesn't need to differentiate the LEFT and RIGHT versions. + For example, when using , an event which has will match any on the passed event. + + + + + A key which is to the left of its twin. + + + + + A key which is to the right of its twin. + + + + + Enum value which doesn't correspond to any mouse button. This is used to initialize properties with a generic state. + + + + + Primary mouse button, usually assigned to the left button. + + + + + Secondary mouse button, usually assigned to the right button. + + + + + Middle mouse button. + + + + + Mouse wheel scrolling up. + + + + + Mouse wheel scrolling down. + + + + + Mouse wheel left button (only present on some mice). + + + + + Mouse wheel right button (only present on some mice). + + + + + Extra mouse button 1. This is sometimes present, usually to the sides of the mouse. + + + + + Extra mouse button 2. This is sometimes present, usually to the sides of the mouse. + + + + + Primary mouse button mask, usually for the left button. + + + + + Secondary mouse button mask, usually for the right button. + + + + + Middle mouse button mask. + + + + + Extra mouse button 1 mask. + + + + + Extra mouse button 2 mask. + + + + + An invalid game controller button. + + + + + Game controller SDL button A. Corresponds to the bottom action button: Sony Cross, Xbox A, Nintendo B. + + + + + Game controller SDL button B. Corresponds to the right action button: Sony Circle, Xbox B, Nintendo A. + + + + + Game controller SDL button X. Corresponds to the left action button: Sony Square, Xbox X, Nintendo Y. + + + + + Game controller SDL button Y. Corresponds to the top action button: Sony Triangle, Xbox Y, Nintendo X. + + + + + Game controller SDL back button. Corresponds to the Sony Select, Xbox Back, Nintendo - button. + + + + + Game controller SDL guide button. Corresponds to the Sony PS, Xbox Home button. + + + + + Game controller SDL start button. Corresponds to the Sony Options, Xbox Menu, Nintendo + button. + + + + + Game controller SDL left stick button. Corresponds to the Sony L3, Xbox L/LS button. + + + + + Game controller SDL right stick button. Corresponds to the Sony R3, Xbox R/RS button. + + + + + Game controller SDL left shoulder button. Corresponds to the Sony L1, Xbox LB button. + + + + + Game controller SDL right shoulder button. Corresponds to the Sony R1, Xbox RB button. + + + + + Game controller D-pad up button. + + + + + Game controller D-pad down button. + + + + + Game controller D-pad left button. + + + + + Game controller D-pad right button. + + + + + Game controller SDL miscellaneous button. Corresponds to Xbox share button, PS5 microphone button, Nintendo Switch capture button. + + + + + Game controller SDL paddle 1 button. + + + + + Game controller SDL paddle 2 button. + + + + + Game controller SDL paddle 3 button. + + + + + Game controller SDL paddle 4 button. + + + + + Game controller SDL touchpad button. + + + + + The number of SDL game controller buttons. + + + + + The maximum number of game controller buttons supported by the engine. The actual limit may be lower on specific platforms: + - Android: Up to 36 buttons. + - Linux: Up to 80 buttons. + - Windows and macOS: Up to 128 buttons. + + + + + An invalid game controller axis. + + + + + Game controller left joystick x-axis. + + + + + Game controller left joystick y-axis. + + + + + Game controller right joystick x-axis. + + + + + Game controller right joystick y-axis. + + + + + Game controller left trigger axis. + + + + + Game controller right trigger axis. + + + + + The number of SDL game controller axes. + + + + + The maximum number of game controller axes: OpenVR supports up to 5 Joysticks making a total of 10 axes. + + + + + Does not correspond to any MIDI message. This is the default value of . + + + + + MIDI message sent when a note is released. + Note: Not all MIDI devices send this message; some may send with set to 0. + + + + + MIDI message sent when a note is pressed. + + + + + MIDI message sent to indicate a change in pressure while a note is being pressed down, also called aftertouch. + + + + + 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 General MIDI specification for a small list. + + + + + MIDI message sent when the MIDI device changes its current instrument (also called program or preset). + + + + + MIDI message sent to indicate a change in pressure for the whole channel. Some MIDI devices may send this instead of . + + + + + MIDI message sent when the value of the pitch bender changes, usually a wheel on the MIDI device. + + + + + MIDI system exclusive (SysEx) message. This type of message is not standardized and it's highly dependent on the MIDI device sending it. + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent every quarter frame to keep connected MIDI devices synchronized. Related to . + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent to jump onto a new position in the current sequence or song. + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent to select a sequence or song to play. + Note: Getting this message's data from is not implemented. + + + + + MIDI message sent to request a tuning calibration. Used on analog synthesizers. Most modern MIDI devices do not need this message. + + + + + MIDI message sent 24 times after , to keep connected MIDI devices synchronized. + + + + + MIDI message sent to start the current sequence or song from the beginning. + + + + + MIDI message sent to resume from the point the current sequence or song was paused. + + + + + MIDI message sent to pause the current sequence or song. + + + + + 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. + + + + + 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. + + + + + Methods that return return when no error occurred. + Since has value 0, and all other error constants are positive integers, it can also be used in boolean checks. + + var error = method_that_returns_error() + if error != OK: + printerr("Failure!") + + # Or, alternatively: + if error: + printerr("Still failing!") + + Note: Many functions do not return an error code, but will print error messages to standard output. + + + + + Generic error. + + + + + Unavailable error. + + + + + Unconfigured error. + + + + + Unauthorized error. + + + + + Parameter range error. + + + + + Out of memory (OOM) error. + + + + + File: Not found error. + + + + + File: Bad drive error. + + + + + File: Bad path error. + + + + + File: No permission error. + + + + + File: Already in use error. + + + + + File: Can't open error. + + + + + File: Can't write error. + + + + + File: Can't read error. + + + + + File: Unrecognized error. + + + + + File: Corrupt error. + + + + + File: Missing dependencies error. + + + + + File: End of file (EOF) error. + + + + + Can't open error. + + + + + Can't create error. + + + + + Query failed error. + + + + + Already in use error. + + + + + Locked error. + + + + + Timeout error. + + + + + Can't connect error. + + + + + Can't resolve error. + + + + + Connection error. + + + + + Can't acquire resource error. + + + + + Can't fork process error. + + + + + Invalid data error. + + + + + Invalid parameter error. + + + + + Already exists error. + + + + + Does not exist error. + + + + + Database: Read error. + + + + + Database: Write error. + + + + + Compilation failed error. + + + + + Method not found error. + + + + + Linking failed error. + + + + + Script failed error. + + + + + Cycling link (import cycle) error. + + + + + Invalid declaration error. + + + + + Duplicate symbol error. + + + + + Parse error. + + + + + Busy error. + + + + + Skip error. + + + + + Help error. Used internally when passing --version or --help as executable options. + + + + + Bug error, caused by an implementation issue in the method. + Note: If a built-in method returns this code, please open an issue on the GitHub Issue Tracker. + + + + + Printer on fire error (This is an easter egg, no built-in methods return this error code). + + + + + The property has no hint for the editor. + + + + + Hints that an or property should be within a range specified via the hint string "min,max" or "min,max,step". The hint string can optionally include "or_greater" and/or "or_less" to allow manual input going respectively above the max or below the min values. + Example: "-360,360,1,or_greater,or_less". + Additionally, other keywords can be included: "exp" for exponential range editing, "radians_as_degrees" for editing radian angles in degrees (the range values are also in degrees), "degrees" to hint at an angle and "hide_slider" to hide the slider. + + + + + Hints that an or 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 "Hello,Something,Else". Whitespaces are not 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 :integer to the name, e.g. "Zero,One,Three:3,Four,Six:6". + + + + + Hints that a property can be an enumerated value to pick in a list specified via a hint string such as "Hello,Something,Else". + Unlike , a property with this hint still accepts arbitrary values and can be empty. The list of values serves to suggest possible values. + + + + + Hints that a property should be edited via an exponential easing function. The hint string can include "attenuation" to flip the curve horizontally and/or "positive_only" to exclude in/out easing and limit values to be greater than or equal to zero. + + + + + Hints that a vector property should allow its components to be linked. For example, this allows Vector2.x and Vector2.y to be edited together. + + + + + Hints that an property is a bitmask with named bit flags. + The hint string is a comma separated list of names such as "Bit0,Bit1,Bit2,Bit3". Whitespaces are not 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 :integer to the name, e.g. "A:4,B:8,C:16". You can also combine several flags ("A:4,B:8,AB:12,C:16"). + Note: A flag value must be at least 1 and at most 2 ** 32 - 1. + Note: Unlike , the previous explicit value is not taken into account. For the hint "A:16,B,C", A is 16, B is 2, C is 4. + + + + + Hints that an property is a bitmask using the optionally named 2D render layers. + + + + + Hints that an property is a bitmask using the optionally named 2D physics layers. + + + + + Hints that an property is a bitmask using the optionally named 2D navigation layers. + + + + + Hints that an property is a bitmask using the optionally named 3D render layers. + + + + + Hints that an property is a bitmask using the optionally named 3D physics layers. + + + + + Hints that an property is a bitmask using the optionally named 3D navigation layers. + + + + + Hints that an integer property is a bitmask using the optionally named avoidance layers. + + + + + Hints that a 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 "*.png,*.jpg". + + + + + Hints that a property is a path to a directory. Editing it will show a file dialog for picking the path. + + + + + Hints that a 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 "*.png,*.jpg". + + + + + Hints that a property is an absolute path to a directory outside the project folder. Editing it will show a file dialog for picking the path. + + + + + Hints that a property is an instance of a -derived type, optionally specified via the hint string (e.g. "Texture2D"). Editing it will show a popup menu of valid resource types to instantiate. + + + + + Hints that a property is text with line breaks. Editing it will show a text input field where line breaks can be typed. + + + + + Hints that a property is an . + + + + + Hints that a property should show a placeholder text on its input field, if empty. The hint string is the placeholder text to use. + + + + + Hints that a property should be edited without affecting its transparency (Color.a is not editable). + + + + + 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. + + + + + If a property is , 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 , hints the editor how to show elements. The hint_string must encode nested types using ":" and "/". + + // 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}"; + + Examples: + + 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. + + Note: The trailing colon is required for properly detecting built-in types. + + + + + Hints that an object is too big to be sent via the debugger. + + + + + Hints that the hint string specifies valid node types for property of type . + + + + + Hints that a 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 "*.png,*.jpg". See also . + + + + + Hints that a 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 "*.png,*.jpg". See also . + + + + + Hints that an property is a pointer. Used by GDExtension. + + + + + Hints that a property is an with the stored type specified in the hint string. + + + + + Hints that a property is a with the stored types specified in the hint string. + + + + + Hints that a string property is a locale code. Editing it will show a locale dialog for picking language and country. + + + + + Hints that a dictionary property is string translation map. Dictionary keys are locale codes and, values are translated strings. + + + + + Hints that a property is an instance of a -derived type, optionally specified via the hint string (e.g. "Node2D"). Editing it will show a dialog for picking a node from the scene. + + + + + Hints that a quaternion property should disable the temporary euler editor. + + + + + Hints that a string property is a password, and every character is replaced with the secret character. + + + + + Hints that a property should be displayed as a clickable button. When the button is pressed, the callable is called. The hint string specifies the button text and optionally an icon from the "EditorIcons" theme type. + + "Click me!" - A button with the text "Click me!" and the default "Callable" icon. + "Click me!,ColorRect" - A button with the text "Click me!" and the "ColorRect" icon. + + Note: A cannot be properly serialized and stored in a file, so it is recommended to use instead of . + + + + + Hints that a property will be changed on its own after setting, such as or . + + + + + Represents the size of the enum. + + + + + The property is not stored, and does not display in the editor. This is the default for non-exported properties. + + + + + The property is serialized and saved in the scene file (default for exported properties). + + + + + The property is shown in the EditorInspector (default for exported properties). + + + + + The property is excluded from the class reference. + + + + + The property can be checked in the EditorInspector. + + + + + The property is checked in the EditorInspector. + + + + + Used to group properties together in the editor. See EditorInspector. + + + + + Used to categorize properties together in the editor. + + + + + Used to group properties together in the editor in a subgroup (under a group). See EditorInspector. + + + + + The property is a bitfield, i.e. it contains multiple flags represented as bits. + + + + + The property does not save its state in . + + + + + Editing the property prompts the user for restarting the editor. + + + + + The property is a script variable. can be used to distinguish between exported script variables from built-in variables (which don't have this usage flag). By default, is not applied to variables that are created by overriding in a script. + + + + + The property value of type will be stored even if its value is . + + + + + If this property is modified, all inspector fields will be refreshed. + + + + + The property is a variable of enum type, i.e. it only takes named integer constants from its associated enumeration. + + + + + If property has nil as default value, its type will be . + + + + + The property is an array. + + + + + When duplicating a resource with , and this flag is set on a property of that resource, the property should always be duplicated, regardless of the subresources bool parameter. + + + + + When duplicating a resource with , and this flag is set on a property of that resource, the property should never be duplicated, regardless of the subresources bool parameter. + + + + + The property is only shown in the editor if modern renderers are supported (the Compatibility rendering method is excluded). + + + + + The property will always be relative to the scene's root. Mostly useful for local resources. + + + + + Use when a resource is created on the fly, i.e. the getter will always return a different instance. needs this information to properly save such resources. + + + + + Inserting an animation key frame of this property will automatically increment the value, allowing to easily keyframe multiple values in a row. + + + + + When this property is a and base object is a , a resource instance will be automatically created whenever the node is created in the editor. + + + + + The property is considered a basic setting and will appear even when advanced mode is disabled. Used for project settings. + + + + + The property is read-only in the EditorInspector. + + + + + An export preset property with this flag contains confidential information and is stored separately from the rest of the export preset configuration. + + + + + Default usage (storage and editor). + + + + + Default usage but without showing the property in the editor (storage). + + + + + Flag for a normal method. + + + + + Flag for an editor method. + + + + + Flag for a constant method. + + + + + Flag for a virtual method. + + + + + Flag for a method with a variable number of arguments. + + + + + Flag for a static method. + + + + + Used internally. Allows to not dump core virtual methods (such as ) to the JSON API. + + + + + Default method flags (normal). + + + + + This class holds the context information required for encryption and decryption operations with AES (Advanced Encryption Standard). Both AES-ECB and AES-CBC modes are supported. + + using Godot; + using System.Diagnostics; + + public partial class MyNode : Node + { + private AesContext _aes = new AesContext(); + + public override void _Ready() + { + string key = "My secret key!!!"; // Key must be either 16 or 32 bytes. + string data = "My secret text!!"; // Data size must be multiple of 16 bytes, apply padding if needed. + // Encrypt ECB + _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer()); + byte[] encrypted = _aes.Update(data.ToUtf8Buffer()); + _aes.Finish(); + // Decrypt ECB + _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer()); + byte[] decrypted = _aes.Update(encrypted); + _aes.Finish(); + // Check ECB + Debug.Assert(decrypted == data.ToUtf8Buffer()); + + string iv = "My secret iv!!!!"; // IV must be of exactly 16 bytes. + // Encrypt CBC + _aes.Start(AesContext.Mode.EcbEncrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer()); + encrypted = _aes.Update(data.ToUtf8Buffer()); + _aes.Finish(); + // Decrypt CBC + _aes.Start(AesContext.Mode.EcbDecrypt, key.ToUtf8Buffer(), iv.ToUtf8Buffer()); + decrypted = _aes.Update(encrypted); + _aes.Finish(); + // Check CBC + Debug.Assert(decrypted == data.ToUtf8Buffer()); + } + } + + + + + + AES electronic codebook encryption mode. + + + + + AES electronic codebook decryption mode. + + + + + AES cipher blocker chaining encryption mode. + + + + + AES cipher blocker chaining decryption mode. + + + + + Maximum value for the mode enum. + + + + + Start the AES context in the given . A of either 16 or 32 bytes must always be provided, while an (initialization vector) of exactly 16 bytes, is only needed when is either or . + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Start the AES context in the given . A of either 16 or 32 bytes must always be provided, while an (initialization vector) of exactly 16 bytes, is only needed when is either or . + + + + + Run the desired operation for this AES context. Will return a [] containing the result of encrypting (or decrypting) the given . See for mode of operation. + Note: The size of must be a multiple of 16. Apply some padding if needed. + + + + + Run the desired operation for this AES context. Will return a [] containing the result of encrypting (or decrypting) the given . See for mode of operation. + Note: The size of must be a multiple of 16. Apply some padding if needed. + + + + + Get the current IV state for this context (IV gets updated when calling ). You normally don't need this function. + Note: This function only makes sense when the context is started with or . + + + + + Close this AES context so it can be started again. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'get_iv_state' method. + + + + + Cached name for the 'finish' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An implementation of the A* algorithm, used to find the shortest path between two vertices on a connected graph in 2D space. + See for a more thorough explanation on how to use this class. is a wrapper for that enforces 2D coordinates. + + + + + Called when computing the cost between two connected points. + Note that this function is hidden in the default class. + + + + + Called when estimating the cost between a point and the path's ending point. + Note that this function is hidden in the default class. + + + + + Returns the next available point ID with no point associated to it. + + + + + Adds a new point at the given position with the given identifier. The must be 0 or larger, and the must be 0.0 or greater. + The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. Thus, all else being equal, the algorithm prefers points with lower s to form a path. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(1, 0), 4); // Adds the point (1, 0) with weight_scale 4 and id 1 + + If there already exists a point for the given , its position and weight scale are updated to the given values. + + + + + Returns the position of the point associated with the given . + + + + + Sets the for the point with the given . + + + + + Returns the weight scale of the point associated with the given . + + + + + Sets the for the point with the given . The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. + + + + + Removes the point associated with the given from the points pool. + + + + + Returns whether a point associated with the given exists. + + + + + Returns an array with the IDs of the points that form the connection with the given point. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 1)); + astar.AddPoint(3, new Vector2(1, 1)); + astar.AddPoint(4, new Vector2(2, 0)); + + astar.ConnectPoints(1, 2, true); + astar.ConnectPoints(1, 3, true); + + long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] + + + + + + Returns an array of all point IDs. + + + + + Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle. + + + + + Returns whether a point is disabled or not for pathfinding. By default, all points are enabled. + + + + + Creates a segment between the given points. If is , only movement from to is allowed, not the reverse direction. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(1, 1)); + astar.AddPoint(2, new Vector2(0, 5)); + astar.ConnectPoints(1, 2, false); + + + + + + Deletes the segment between the given points. If is , only movement from to is prevented, and a unidirectional segment possibly remains. + + + + + Returns whether there is a connection/segment between the given points. If is , returns whether movement from to is possible through this segment. + + + + + Returns the number of points currently in the points pool. + + + + + Returns the capacity of the structure backing the points, useful in conjunction with . + + + + + Reserves space internally for points. Useful if you're adding a known large number of points at once, such as points on a grid. The new capacity must be greater or equal to the old capacity. + + + + + Clears all the points and segments. + + + + + Returns the ID of the closest point to , optionally taking disabled points into account. Returns -1 if there are no points in the points pool. + Note: If several points are the closest to , the one with the smallest ID will be returned, ensuring a deterministic result. + + + + + Returns the closest position to that resides inside a segment between two connected points. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 5)); + astar.ConnectPoints(1, 2); + Vector2 res = astar.GetClosestPositionInSegment(new Vector2(3, 3)); // Returns (0, 3) + + The result is in the segment that goes from y = 0 to y = 5. It's the closest position in the segment to the given point. + + + + + Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1 + astar.AddPoint(3, new Vector2(1, 1)); + astar.AddPoint(4, new Vector2(2, 0)); + + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Returns an array with the points that are in the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar2D(); + astar.AddPoint(1, new Vector2(0, 0)); + astar.AddPoint(2, new Vector2(0, 1), 1); // Default weight is 1 + astar.AddPoint(3, new Vector2(1, 1)); + astar.AddPoint(4, new Vector2(2, 0)); + + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_compute_cost' method. + + + + + Cached name for the '_estimate_cost' method. + + + + + Cached name for the 'get_available_point_id' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_weight_scale' method. + + + + + Cached name for the 'set_point_weight_scale' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'has_point' method. + + + + + Cached name for the 'get_point_connections' method. + + + + + Cached name for the 'get_point_ids' method. + + + + + Cached name for the 'set_point_disabled' method. + + + + + Cached name for the 'is_point_disabled' method. + + + + + Cached name for the 'connect_points' method. + + + + + Cached name for the 'disconnect_points' method. + + + + + Cached name for the 'are_points_connected' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'get_point_capacity' method. + + + + + Cached name for the 'reserve_space' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_position_in_segment' method. + + + + + Cached name for the 'get_point_path' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and create segments manually with . Once done, you can test if there is a path between two points with the function, get a path containing indices by , or one containing actual coordinates with . + It is also possible to use non-Euclidean distances. To do so, create a script that extends and override the methods and . Both should take two point IDs and return the distance between the corresponding points. + Example: Use Manhattan distance instead of Euclidean distance: + + using Godot; + + [GlobalClass] + public partial class MyAStar3D : AStar3D + { + public override float _ComputeCost(long fromId, long toId) + { + Vector3 fromPoint = GetPointPosition(fromId); + Vector3 toPoint = GetPointPosition(toId); + + return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z); + } + + public override float _EstimateCost(long fromId, long toId) + { + Vector3 fromPoint = GetPointPosition(fromId); + Vector3 toPoint = GetPointPosition(toId); + return Mathf.Abs(fromPoint.X - toPoint.X) + Mathf.Abs(fromPoint.Y - toPoint.Y) + Mathf.Abs(fromPoint.Z - toPoint.Z); + } + } + + should return a lower bound of the distance, i.e. _estimate_cost(u, v) <= _compute_cost(u, v). This serves as a hint to the algorithm because the custom might be computation-heavy. If this is not the case, make return the same value as to provide the algorithm with the most accurate information. + If the default and methods are used, or if the supplied 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 results of all segments in the path multiplied by the weight_scales of the endpoints of the respective segments. If the default methods are used and the weight_scales of all points are set to 1.0, then this equals the sum of Euclidean distances of all segments in the path. + + + + + Called when computing the cost between two connected points. + Note that this function is hidden in the default class. + + + + + Called when estimating the cost between a point and the path's ending point. + Note that this function is hidden in the default class. + + + + + Returns the next available point ID with no point associated to it. + + + + + Adds a new point at the given position with the given identifier. The must be 0 or larger, and the must be 0.0 or greater. + The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. Thus, all else being equal, the algorithm prefers points with lower s to form a path. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(1, 0, 0), 4); // Adds the point (1, 0, 0) with weight_scale 4 and id 1 + + If there already exists a point for the given , its position and weight scale are updated to the given values. + + + + + Returns the position of the point associated with the given . + + + + + Sets the for the point with the given . + + + + + Returns the weight scale of the point associated with the given . + + + + + Sets the for the point with the given . The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. + + + + + Removes the point associated with the given from the points pool. + + + + + Returns whether a point associated with the given exists. + + + + + Returns an array with the IDs of the points that form the connection with the given point. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 1, 0)); + astar.AddPoint(3, new Vector3(1, 1, 0)); + astar.AddPoint(4, new Vector3(2, 0, 0)); + astar.ConnectPoints(1, 2, true); + astar.ConnectPoints(1, 3, true); + + long[] neighbors = astar.GetPointConnections(1); // Returns [2, 3] + + + + + + Returns an array of all point IDs. + + + + + Disables or enables the specified point for pathfinding. Useful for making a temporary obstacle. + + + + + Returns whether a point is disabled or not for pathfinding. By default, all points are enabled. + + + + + Creates a segment between the given points. If is , only movement from to is allowed, not the reverse direction. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(1, 1, 0)); + astar.AddPoint(2, new Vector3(0, 5, 0)); + astar.ConnectPoints(1, 2, false); + + + + + + Deletes the segment between the given points. If is , only movement from to is prevented, and a unidirectional segment possibly remains. + + + + + Returns whether the two given points are directly connected by a segment. If is , returns whether movement from to is possible through this segment. + + + + + Returns the number of points currently in the points pool. + + + + + Returns the capacity of the structure backing the points, useful in conjunction with . + + + + + Reserves space internally for points. Useful if you're adding a known large number of points at once, such as points on a grid. New capacity must be greater or equals to old capacity. + + + + + Clears all the points and segments. + + + + + Returns the ID of the closest point to , optionally taking disabled points into account. Returns -1 if there are no points in the points pool. + Note: If several points are the closest to , the one with the smallest ID will be returned, ensuring a deterministic result. + + + + + Returns the closest position to that resides inside a segment between two connected points. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 5, 0)); + astar.ConnectPoints(1, 2); + Vector3 res = astar.GetClosestPositionInSegment(new Vector3(3, 3, 0)); // Returns (0, 3, 0) + + The result is in the segment that goes from y = 0 to y = 5. It's the closest position in the segment to the given point. + + + + + Returns an array with the points that are in the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1 + astar.AddPoint(3, new Vector3(1, 1, 0)); + astar.AddPoint(4, new Vector3(2, 0, 0)); + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Returns an array with the points that are in the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is disabled the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar3D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is disabled the search may take an unusually long time to finish. + + var astar = new AStar3D(); + astar.AddPoint(1, new Vector3(0, 0, 0)); + astar.AddPoint(2, new Vector3(0, 1, 0), 1); // Default weight is 1 + astar.AddPoint(3, new Vector3(1, 1, 0)); + astar.AddPoint(4, new Vector3(2, 0, 0)); + astar.ConnectPoints(1, 2, false); + astar.ConnectPoints(2, 3, false); + astar.ConnectPoints(4, 3, false); + astar.ConnectPoints(1, 4, false); + long[] res = astar.GetIdPath(1, 3); // Returns [1, 2, 3] + + If you change the 2nd point's weight to 3, then the result will be [1, 4, 3] instead, because now even though the distance is longer, it's "easier" to get through point 4 than through point 2. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_compute_cost' method. + + + + + Cached name for the '_estimate_cost' method. + + + + + Cached name for the 'get_available_point_id' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_weight_scale' method. + + + + + Cached name for the 'set_point_weight_scale' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'has_point' method. + + + + + Cached name for the 'get_point_connections' method. + + + + + Cached name for the 'get_point_ids' method. + + + + + Cached name for the 'set_point_disabled' method. + + + + + Cached name for the 'is_point_disabled' method. + + + + + Cached name for the 'connect_points' method. + + + + + Cached name for the 'disconnect_points' method. + + + + + Cached name for the 'are_points_connected' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'get_point_capacity' method. + + + + + Cached name for the 'reserve_space' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_position_in_segment' method. + + + + + Cached name for the 'get_point_path' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a variant of 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 , you only need to set the of the grid, optionally set the , and then call the method: + + AStarGrid2D astarGrid = new AStarGrid2D(); + astarGrid.Region = new Rect2I(0, 0, 32, 32); + astarGrid.CellSize = new Vector2I(16, 16); + astarGrid.Update(); + GD.Print(astarGrid.GetIdPath(Vector2I.Zero, new Vector2I(3, 4))); // prints (0, 0), (1, 1), (2, 2), (3, 3), (3, 4) + GD.Print(astarGrid.GetPointPath(Vector2I.Zero, new Vector2I(3, 4))); // prints (0, 0), (16, 16), (32, 32), (48, 48), (48, 64) + + To remove a point from the pathfinding grid, it must be set as "solid" with . + + + + + The Euclidean heuristic to be used for the pathfinding using the following formula: + + dx = abs(to_id.x - from_id.x) + dy = abs(to_id.y - from_id.y) + result = sqrt(dx * dx + dy * dy) + + Note: This is also the internal heuristic used in and by default (with the inclusion of possible z-axis coordinate). + + + + + The Manhattan heuristic to be used for the pathfinding using the following formula: + + dx = abs(to_id.x - from_id.x) + dy = abs(to_id.y - from_id.y) + result = dx + dy + + Note: This heuristic is intended to be used with 4-side orthogonal movements, provided by setting the to . + + + + + The Octile heuristic to be used for the pathfinding using the following formula: + + 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; + + + + + + The Chebyshev heuristic to be used for the pathfinding using the following formula: + + dx = abs(to_id.x - from_id.x) + dy = abs(to_id.y - from_id.y) + result = max(dx, dy) + + + + + + Represents the size of the enum. + + + + + The pathfinding algorithm will ignore solid neighbors around the target cell and allow passing using diagonals. + + + + + The pathfinding algorithm will ignore all diagonals and the way will be always orthogonal. + + + + + The pathfinding algorithm will avoid using diagonals if at least two obstacles have been placed around the neighboring cells of the specific path segment. + + + + + The pathfinding algorithm will avoid using diagonals if any obstacle has been placed around the neighboring cells of the specific path segment. + + + + + Represents the size of the enum. + + + + + Rectangular cell shape. + + + + + Diamond cell shape (for isometric look). Cell coordinates layout where the horizontal axis goes up-right, and the vertical one goes down-right. + + + + + Diamond cell shape (for isometric look). Cell coordinates layout where the horizontal axis goes down-right, and the vertical one goes down-left. + + + + + Represents the size of the enum. + + + + + The region of grid cells available for pathfinding. If changed, needs to be called before finding the next path. + + + + + The size of the grid (number of cells of size on each axis). If changed, needs to be called before finding the next path. + + + + + The offset of the grid which will be applied to calculate the resulting point position returned by . If changed, needs to be called before finding the next path. + + + + + The size of the point cell which will be applied to calculate the resulting point position returned by . If changed, needs to be called before finding the next path. + + + + + The cell shape. Affects how the positions are placed in the grid. If changed, needs to be called before finding the next path. + + + + + Enables or disables jumping to skip up the intermediate points and speeds up the searching algorithm. + Note: Currently, toggling it on disables the consideration of weight scaling in pathfinding. + + + + + The default which will be used to calculate the cost between two points if was not overridden. + + + + + The default which will be used to calculate the cost between the point and the end point if was not overridden. + + + + + A specific mode which will force the path to avoid or accept the specified diagonals. + + + + + Called when computing the cost between two connected points. + Note that this function is hidden in the default class. + + + + + Called when estimating the cost between a point and the path's ending point. + Note that this function is hidden in the default class. + + + + + Returns if the and is a valid grid coordinate (id), i.e. if it is inside . Equivalent to region.has_point(Vector2i(x, y)). + + + + + Returns if the vector is a valid grid coordinate, i.e. if it is inside . Equivalent to region.has_point(id). + + + + + Indicates that the grid parameters were changed and needs to be called. + + + + + Updates the internal state of the grid according to the parameters to prepare it to search the path. Needs to be called if parameters like , or are changed. will return if this is the case and this needs to be called. + Note: All point data (solidity and weight scale) will be cleared. + + + + + Disables or enables the specified point for pathfinding. Useful for making an obstacle. By default, all points are enabled. + Note: Calling is not needed after the call of this function. + + + + + Returns if a point is disabled for pathfinding. By default, all points are enabled. + + + + + Sets the for the point with the given . The is multiplied by the result of when determining the overall cost of traveling across a segment from a neighboring point to this point. + Note: Calling is not needed after the call of this function. + + + + + Returns the weight scale of the point associated with the given . + + + + + Fills the given on the grid with the specified value for the solid flag. + Note: Calling is not needed after the call of this function. + + + + + Fills the given on the grid with the specified value for the weight scale. + Note: Calling is not needed after the call of this function. + + + + + Clears the grid and sets the to Rect2i(0, 0, 0, 0). + + + + + Returns the position of the point associated with the given . + + + + + Returns an array of dictionaries with point data (id: , position: , solid: , weight_scale: ) within a . + + + + + Returns an array with the points that are in the path found by between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is solid the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is solid the search may take an unusually long time to finish. + + + + + Returns an array with the points that are in the path found by between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: This method is not thread-safe. If called from a , it will return an empty array and will print an error message. + Additionally, when is and is solid the search may take an unusually long time to finish. + + + + + Returns an array with the IDs of the points that form the path found by AStar2D between the given points. The array is ordered from the starting point to the ending point of the path. + If there is no valid path to the target, and is , returns a path to the point closest to the target that can be reached. + Note: When is and is solid the search may take an unusually long time to finish. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'region' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'cell_shape' property. + + + + + Cached name for the 'jumping_enabled' property. + + + + + Cached name for the 'default_compute_heuristic' property. + + + + + Cached name for the 'default_estimate_heuristic' property. + + + + + Cached name for the 'diagonal_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_compute_cost' method. + + + + + Cached name for the '_estimate_cost' method. + + + + + Cached name for the 'set_region' method. + + + + + Cached name for the 'get_region' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_cell_shape' method. + + + + + Cached name for the 'get_cell_shape' method. + + + + + Cached name for the 'is_in_bounds' method. + + + + + Cached name for the 'is_in_boundsv' method. + + + + + Cached name for the 'is_dirty' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'set_jumping_enabled' method. + + + + + Cached name for the 'is_jumping_enabled' method. + + + + + Cached name for the 'set_diagonal_mode' method. + + + + + Cached name for the 'get_diagonal_mode' method. + + + + + Cached name for the 'set_default_compute_heuristic' method. + + + + + Cached name for the 'get_default_compute_heuristic' method. + + + + + Cached name for the 'set_default_estimate_heuristic' method. + + + + + Cached name for the 'get_default_estimate_heuristic' method. + + + + + Cached name for the 'set_point_solid' method. + + + + + Cached name for the 'is_point_solid' method. + + + + + Cached name for the 'set_point_weight_scale' method. + + + + + Cached name for the 'get_point_weight_scale' method. + + + + + Cached name for the 'fill_solid_region' method. + + + + + Cached name for the 'fill_weight_scale_region' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'get_point_data_in_region' method. + + + + + Cached name for the 'get_point_path' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The default use of is to allow it to only be accepted or closed, with the same result. However, the and signals allow to make the two actions different, and the method allows to add custom buttons and actions. + + + + + The text displayed by the OK button (see ). + + + + + The text displayed by the dialog. + + + + + If , the dialog is hidden when the OK button is pressed. You can set it to if you want to do e.g. input validation when receiving the signal, and handle hiding the dialog in your own logic. + Note: Some nodes derived from this class can have a different default value, and potentially their own built-in logic overriding this setting. For example defaults to , and has its own input validation code that is called when you press OK, which eventually hides the dialog if the input is valid. As such, this property can't be used in to disable hiding the dialog when pressing OK. + + + + + If , the dialog will be hidden when the escape key () is pressed. + + + + + Sets autowrapping for the text in the dialog. + + + + + Returns the OK instance. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns the label used for built-in text. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adds a button with label and a custom to the dialog and returns the created button. will be passed to the signal when pressed. + If , will place the button to the right of any sibling buttons. + You can use method to remove a button created with this method from the dialog. + + + + + Adds a button with label and a cancel action to the dialog and returns the created button. + You can use method to remove a button created with this method from the dialog. + + + + + Removes the from the dialog. Does NOT free the . The must be a added with or method. After removal, pressing the will no longer emit this dialog's or signals. + + + + + Registers a in the dialog. When the enter key is pressed, the dialog will be accepted. + + + + + Removes the from the dialog. Does NOT free the . The must be a added with or method. After removal, pressing the will no longer emit this dialog's or signals. + + + + + Registers a in the dialog. When the enter key is pressed, the dialog will be accepted. + + + + + Emitted when the dialog is accepted, i.e. the OK button is pressed. + + + + + Emitted when the dialog is closed or the button created with is pressed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a custom button is pressed. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'ok_button_text' property. + + + + + Cached name for the 'dialog_text' property. + + + + + Cached name for the 'dialog_hide_on_ok' property. + + + + + Cached name for the 'dialog_close_on_escape' property. + + + + + Cached name for the 'dialog_autowrap' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_ok_button' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'set_hide_on_ok' method. + + + + + Cached name for the 'get_hide_on_ok' method. + + + + + Cached name for the 'set_close_on_escape' method. + + + + + Cached name for the 'get_close_on_escape' method. + + + + + Cached name for the 'add_button' method. + + + + + Cached name for the 'add_cancel_button' method. + + + + + Cached name for the 'remove_button' method. + + + + + Cached name for the 'register_text_enter' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_autowrap' method. + + + + + Cached name for the 'has_autowrap' method. + + + + + Cached name for the 'set_ok_button_text' method. + + + + + Cached name for the 'get_ok_button_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'confirmed' signal. + + + + + Cached name for the 'canceled' signal. + + + + + Cached name for the 'custom_action' signal. + + + + + 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, s (with set to ), and . + When 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. + + + + + If , the body's movement will be synchronized to the physics frame. This is useful when animating movement via , for example on moving platforms. Do not use together with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sync_to_physics' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sync_to_physics' method. + + + + + Cached name for the 'is_sync_to_physics_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, s (with set to ), and . + When 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. + + + + + If , the body's movement will be synchronized to the physics frame. This is useful when animating movement via , for example on moving platforms. Do not use together with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sync_to_physics' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sync_to_physics' method. + + + + + Cached name for the 'is_sync_to_physics_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is similar to the node, except it carries multiple textures as animation frames. Animations are created using a resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The resource can be configured in the editor via the SpriteFrames bottom panel. + + + + + The resource containing the animation(s). Allows you the option to load, edit, clear, make unique and save the states of the resource. + + + + + The current animation from the resource. If this value is changed, the counter and the are reset. + + + + + The key of the animation to play when the scene loads. + + + + + The displayed animation frame's index. Setting this property also resets . If this is not desired, use . + + + + + The progress value between 0.0 and 1.0 until the current frame transitions to the next frame. If the animation is playing backwards, the value transitions from 1.0 to 0.0. + + + + + The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed. + If set to a negative value, the animation is played in reverse. If set to 0, the animation will not advance. + + + + + If , texture will be centered. + Note: For games with a pixel art aesthetic, textures may appear deformed when centered. This is caused by their position being between pixels. To prevent this, set this property to , or consider enabling ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel and ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + The texture's drawing offset. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + Returns if an animation is currently playing (even if and/or custom_speed are 0). + + + + + Plays the animation with key . If is negative and is , the animation will play backwards (which is equivalent to calling ). + If this method is called with that same animation , or with no parameter, the assigned animation will resume playing if it was paused. + + + + + Plays the animation with key in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, so see its description for more information. + + + + + Pauses the currently playing animation. The and will be kept and calling or without arguments will resume the animation from the current playback position. + See also . + + + + + Stops the currently playing animation. The animation position is reset to 0 and the custom_speed is reset to 1.0. See also . + + + + + Sets the to the given values. Unlike setting , this method does not reset the to 0.0 implicitly. + Example: Change the animation while keeping the same and : + + + + + + Returns the actual playing speed of current animation or 0 if not playing. This speed is the property multiplied by custom_speed argument specified when calling the method. + Returns a negative value if the current animation is playing backwards. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when the animation loops. + + + + + Emitted when the animation reaches the end, or the start if it is played in reverse. When the animation finishes, it pauses the playback. + Note: This signal is not emitted if an animation is looping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames' property. + + + + + Cached name for the 'animation' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_progress' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'centered' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sprite_frames' method. + + + + + Cached name for the 'get_sprite_frames' method. + + + + + Cached name for the 'set_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'get_autoplay' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'play_backwards' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_centered' method. + + + + + Cached name for the 'is_centered' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_progress' method. + + + + + Cached name for the 'get_frame_progress' method. + + + + + Cached name for the 'set_frame_and_progress' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_playing_speed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames_changed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'animation_looped' signal. + + + + + Cached name for the 'animation_finished' signal. + + + + + is similar to the node, except it carries multiple textures as animation . Animations are created using a resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The resource can be configured in the editor via the SpriteFrames bottom panel. + + + + + The resource containing the animation(s). Allows you the option to load, edit, clear, make unique and save the states of the resource. + + + + + The current animation from the resource. If this value is changed, the counter and the are reset. + + + + + The key of the animation to play when the scene loads. + + + + + The displayed animation frame's index. Setting this property also resets . If this is not desired, use . + + + + + The progress value between 0.0 and 1.0 until the current frame transitions to the next frame. If the animation is playing backwards, the value transitions from 1.0 to 0.0. + + + + + The speed scaling ratio. For example, if this value is 1, then the animation plays at normal speed. If it's 0.5, then it plays at half speed. If it's 2, then it plays at double speed. + If set to a negative value, the animation is played in reverse. If set to 0, the animation will not advance. + + + + + Returns if an animation is currently playing (even if and/or custom_speed are 0). + + + + + Plays the animation with key . If is negative and is , the animation will play backwards (which is equivalent to calling ). + If this method is called with that same animation , or with no parameter, the assigned animation will resume playing if it was paused. + + + + + Plays the animation with key in reverse. + This method is a shorthand for with custom_speed = -1.0 and from_end = true, so see its description for more information. + + + + + Pauses the currently playing animation. The and will be kept and calling or without arguments will resume the animation from the current playback position. + See also . + + + + + Stops the currently playing animation. The animation position is reset to 0 and the custom_speed is reset to 1.0. See also . + + + + + Sets the to the given values. Unlike setting , this method does not reset the to 0.0 implicitly. + Example: Change the animation while keeping the same and : + + + + + + Returns the actual playing speed of current animation or 0 if not playing. This speed is the property multiplied by custom_speed argument specified when calling the method. + Returns a negative value if the current animation is playing backwards. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when changes. + + + + + Emitted when the animation loops. + + + + + Emitted when the animation reaches the end, or the start if it is played in reverse. When the animation finishes, it pauses the playback. + Note: This signal is not emitted if an animation is looping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames' property. + + + + + Cached name for the 'animation' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_progress' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sprite_frames' method. + + + + + Cached name for the 'get_sprite_frames' method. + + + + + Cached name for the 'set_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'get_autoplay' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'play_backwards' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_progress' method. + + + + + Cached name for the 'get_frame_progress' method. + + + + + Cached name for the 'set_frame_and_progress' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_playing_speed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'sprite_frames_changed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'animation_looped' signal. + + + + + Cached name for the 'animation_finished' signal. + + + + + is a resource format for frame-based animations, where multiple textures can be chained automatically with a predefined delay for each frame. Unlike or , it isn't a , but has the advantage of being usable anywhere a resource can be used, e.g. in a . + The playback of the animation is controlled by the property, as well as each frame's duration (see ). The animation loops, i.e. it will restart at frame 0 automatically after playing the last frame. + currently requires all frame textures to have the same size, otherwise the bigger ones will be cropped to match the smallest one. + Note: AnimatedTexture doesn't support using s. Each frame needs to be a separate . + Warning: The current implementation is not efficient for the modern renderers. + + + + + The maximum number of frames supported by . If you need more frames in your animation, use or . + + + + + Number of frames to use in the animation. While you can create the frames independently with , you need to set this value for the animation to take new frames into account. The maximum number of frames is . + + + + + Sets the currently visible frame of the texture. Setting this frame while playing resets the current frame time, so the newly selected frame plays for its whole configured frame duration. + + + + + If , the animation will pause where it currently is (i.e. at ). The animation will continue from where it was paused when changing this property to . + + + + + If , the animation will only play once and will not loop back to the first frame after reaching the end. Note that reaching the end will not set to . + + + + + The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse. + + + + + Assigns a to the given frame. Frame IDs start at 0, so the first frame has ID 0, and the last frame of the animation has ID - 1. + You can define any number of textures up to , but keep in mind that only frames from 0 to - 1 will be part of the animation. + + + + + Returns the given frame's . + + + + + Sets the duration of any given . The final duration is affected by the . If set to 0, the frame is skipped during playback. + + + + + Returns the given 's duration, in seconds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'frames' property. + + + + + Cached name for the 'current_frame' property. + + + + + Cached name for the 'pause' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_frames' method. + + + + + Cached name for the 'get_frames' method. + + + + + Cached name for the 'set_current_frame' method. + + + + + Cached name for the 'get_current_frame' method. + + + + + Cached name for the 'set_pause' method. + + + + + Cached name for the 'get_pause' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'set_frame_texture' method. + + + + + Cached name for the 'get_frame_texture' method. + + + + + Cached name for the 'set_frame_duration' method. + + + + + Cached name for the 'get_frame_duration' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource holds data that can be used to animate anything in the engine. Animations are divided into tracks and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track. + + // This creates an animation that makes the node "Enemy" move to the right by + // 100 pixels in 2.0 seconds. + var animation = new Animation(); + int trackIndex = animation.AddTrack(Animation.TrackType.Value); + animation.TrackSetPath(trackIndex, "Enemy:position:x"); + animation.TrackInsertKey(trackIndex, 0.0f, 0); + animation.TrackInsertKey(trackIndex, 2.0f, 100); + animation.Length = 2.0f; + + Animations are just data containers, and must be added to nodes such as an to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check to see available types. + Note: For 3D position/rotation/scale, using the dedicated , and track types instead of is recommended for performance reasons. + + + + + Value tracks set values in node properties, but only those which can be interpolated. For 3D position/rotation/scale, using the dedicated , and track types instead of is recommended for performance reasons. + + + + + 3D position track (values are stored in s). + + + + + 3D rotation track (values are stored in s). + + + + + 3D scale track (values are stored in s). + + + + + Blend shape track. + + + + + Method tracks call functions with given arguments per key. + + + + + 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 ). + + + + + Audio tracks are used to play an audio stream with either type of . The stream can be trimmed and previewed in the animation. + + + + + Animation tracks play animations in other nodes. + + + + + No interpolation (nearest value). + + + + + Linear interpolation. + + + + + Cubic interpolation. This looks smoother than linear interpolation, but is more expensive to interpolate. Stick to for complex 3D animations imported from external software, even if it requires using a higher animation framerate in return. + + + + + Linear interpolation with shortest path rotation. + Note: The result value is always normalized and may not match the key value. + + + + + Cubic interpolation with shortest path rotation. + Note: The result value is always normalized and may not match the key value. + + + + + Update between keyframes and hold the value. + + + + + Update at the keyframes. + + + + + Same as but works as a flag to capture the value of the current object and perform interpolation in some methods. See also , , and . + + + + + At both ends of the animation, the animation will stop playing. + + + + + At both ends of the animation, the animation will be repeated without changing the playback direction. + + + + + Repeats playback and reverse playback at both ends of the animation. + + + + + This flag indicates that the animation proceeds without any looping. + + + + + This flag indicates that the animation has reached the end of the animation and just after loop processed. + + + + + This flag indicates that the animation has reached the start of the animation and just after loop processed. + + + + + Finds the nearest time key. + + + + + Finds only the key with approximating the time. + + + + + Finds only the key with matching the time. + + + + + The total length of the animation (in seconds). + Note: Length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping. + + + + + Determines the behavior of both ends of the animation timeline during animation playback. This is used for correct interpolation of animation cycles, and for hinting the player that it must restart the animation. + + + + + The animation step value. + + + + + Returns if the capture track is included. This is a cached readonly value for performance. + + + + + Adds a track to the Animation. + + + + + Removes a track by specifying the track index. + + + + + Returns the amount of tracks in the animation. + + + + + Gets the type of a track. + + + + + Gets the path of a track. For more information on the path format, see . + + + + + Sets the path of a track. Paths must be valid scene-tree paths to a node and must be specified starting from the that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ":". + For example, "character/skeleton:ankle" or "character/mesh:transform/local". + + + + + Returns the index of the specified track. If the track is not found, return -1. + + + + + Moves a track up. + + + + + Moves a track down. + + + + + Changes the index position of track to the one defined in . + + + + + Swaps the track 's index position with the track . + + + + + Sets the given track as imported or not. + + + + + Returns if the given track is imported. Else, return . + + + + + Enables/disables the given track. Tracks are enabled by default. + + + + + Returns if the track at index is enabled. + + + + + Inserts a key in a given 3D position track. Returns the key index. + + + + + Inserts a key in a given 3D rotation track. Returns the key index. + + + + + Inserts a key in a given 3D scale track. Returns the key index. + + + + + Inserts a key in a given blend shape track. Returns the key index. + + + + + Returns the interpolated position value at the given time (in seconds). The must be the index of a 3D position track. + + + + + Returns the interpolated rotation value at the given time (in seconds). The must be the index of a 3D rotation track. + + + + + Returns the interpolated scale value at the given time (in seconds). The must be the index of a 3D scale track. + + + + + Returns the interpolated blend shape value at the given time (in seconds). The must be the index of a blend shape track. + + + + + Inserts a generic key in a given track. Returns the key index. + + + + + Removes a key by index in a given track. + + + + + Removes a key at in a given track. + + + + + Sets the value of an existing key. + + + + + Sets the transition curve (easing) for a specific key (see the built-in math function @GlobalScope.ease). + + + + + Sets the time of an existing key. + + + + + Returns the transition curve (easing) for a specific key (see the built-in math function @GlobalScope.ease). + + + + + Returns the number of keys in a given track. + + + + + Returns the value of a given key in a given track. + + + + + Returns the time at which the key is located. + + + + + Finds the key index by time in a given track. Optionally, only find it if the approx/exact time is given. + If is , it does not return keys outside the animation range. + If is , the direction is reversed in methods that rely on one directional processing. + For example, in case is , if there is no key in the current position just after seeked, the first key found is retrieved by searching before the position, but if is , the first key found is retrieved after the position. + + + + + Sets the interpolation type of a given track. + + + + + Returns the interpolation type of a given track. + + + + + If , the track at wraps the interpolation loop. + + + + + Returns if the track at wraps the interpolation loop. New tracks wrap the interpolation loop by default. + + + + + Returns if the track is compressed, otherwise. See also . + + + + + Sets the update mode (see ) of a value track. + + + + + Returns the update mode of a value track. + + + + + Returns the interpolated value at the given time (in seconds). The must be the index of a value track. + A mainly affects the direction of key retrieval of the track with converted by to match the result with . + + + + + Returns the method name of a method track. + + + + + Returns the arguments values to be called on a method track for a given key in a given track. + + + + + Inserts a Bezier Track key at the given in seconds. The must be the index of a Bezier Track. + is the left-side weight of the added Bezier curve point, is the right-side one, while is the actual value at this point. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Sets the value of the key identified by to the given value. The must be the index of a Bezier Track. + + + + + Sets the in handle of the key identified by to value . The must be the index of a Bezier Track. + + + + + Sets the out handle of the key identified by to value . The must be the index of a Bezier Track. + + + + + Returns the value of the key identified by . The must be the index of a Bezier Track. + + + + + Returns the in handle of the key identified by . The must be the index of a Bezier Track. + + + + + Returns the out handle of the key identified by . The must be the index of a Bezier Track. + + + + + Returns the interpolated value at the given (in seconds). The must be the index of a Bezier Track. + + + + + Inserts an Audio Track key at the given in seconds. The must be the index of an Audio Track. + is the resource to play. is the number of seconds cut off at the beginning of the audio stream, while is at the ending. + + + + + Sets the stream of the key identified by to value . The must be the index of an Audio Track. + + + + + Sets the start offset of the key identified by to value . The must be the index of an Audio Track. + + + + + Sets the end offset of the key identified by to value . The must be the index of an Audio Track. + + + + + Returns the audio stream of the key identified by . The must be the index of an Audio Track. + + + + + Returns the start offset of the key identified by . The must be the index of an Audio Track. + Start offset is the number of seconds cut off at the beginning of the audio stream. + + + + + Returns the end offset of the key identified by . The must be the index of an Audio Track. + End offset is the number of seconds cut off at the ending of the audio stream. + + + + + Sets whether the track will be blended with other animations. If , the audio playback volume changes depending on the blend value. + + + + + Returns if the track at will be blended with other animations. + + + + + Inserts a key with value at the given (in seconds). The must be the index of an Animation Track. + + + + + Sets the key identified by to value . The must be the index of an Animation Track. + + + + + Returns the animation name at the key identified by . The must be the index of an Animation Track. + + + + + Adds a marker to this Animation. + + + + + Removes the marker with the given name from this Animation. + + + + + Returns if this Animation contains a marker with the given name. + + + + + Returns the name of the marker located at the given time. + + + + + Returns the closest marker that comes after the given time. If no such marker exists, an empty string is returned. + + + + + Returns the closest marker that comes before the given time. If no such marker exists, an empty string is returned. + + + + + Returns the given marker's time. + + + + + Returns every marker in this Animation, sorted ascending by time. + + + + + Returns the given marker's color. + + + + + Sets the given marker's color. + + + + + Clear the animation (clear all tracks and reset all). + + + + + Adds a new track to that is a copy of the given track from this animation. + + + + + Optimize the animation and all its tracks in-place. This will preserve only as many keys as are necessary to keep the animation within the specified bounds. + + + + + Compress the animation and all its tracks in-place. This will make return once called on this . Compressed tracks require less memory to be played, and are designed to be used for complex 3D animations (such as cutscenes) imported from external 3D software. Compression is lossy, but the difference is usually not noticeable in real world conditions. + Note: Compressed tracks have various limitations (such as not being editable from the editor), so only use compressed animations if you actually need them. + + + + + Finds the key index by time in a given track. Optionally, only find it if the approx/exact time is given. + If is , it does not return keys outside the animation range. + If is , the direction is reversed in methods that rely on one directional processing. + For example, in case is , if there is no key in the current position just after seeked, the first key found is retrieved by searching before the position, but if is , the first key found is retrieved after the position. + + + + + Returns the interpolated value at the given time (in seconds). The must be the index of a value track. + A mainly affects the direction of key retrieval of the track with converted by to match the result with . + + + + + Returns the interpolated blend shape value at the given time (in seconds). The must be the index of a blend shape track. + + + + + Returns the interpolated scale value at the given time (in seconds). The must be the index of a 3D scale track. + + + + + Returns the interpolated rotation value at the given time (in seconds). The must be the index of a 3D rotation track. + + + + + Returns the interpolated position value at the given time (in seconds). The must be the index of a 3D position track. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'loop_mode' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'capture_included' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_track' method. + + + + + Cached name for the 'remove_track' method. + + + + + Cached name for the 'get_track_count' method. + + + + + Cached name for the 'track_get_type' method. + + + + + Cached name for the 'track_get_path' method. + + + + + Cached name for the 'track_set_path' method. + + + + + Cached name for the 'find_track' method. + + + + + Cached name for the 'track_move_up' method. + + + + + Cached name for the 'track_move_down' method. + + + + + Cached name for the 'track_move_to' method. + + + + + Cached name for the 'track_swap' method. + + + + + Cached name for the 'track_set_imported' method. + + + + + Cached name for the 'track_is_imported' method. + + + + + Cached name for the 'track_set_enabled' method. + + + + + Cached name for the 'track_is_enabled' method. + + + + + Cached name for the 'position_track_insert_key' method. + + + + + Cached name for the 'rotation_track_insert_key' method. + + + + + Cached name for the 'scale_track_insert_key' method. + + + + + Cached name for the 'blend_shape_track_insert_key' method. + + + + + Cached name for the 'position_track_interpolate' method. + + + + + Cached name for the 'rotation_track_interpolate' method. + + + + + Cached name for the 'scale_track_interpolate' method. + + + + + Cached name for the 'blend_shape_track_interpolate' method. + + + + + Cached name for the 'track_insert_key' method. + + + + + Cached name for the 'track_remove_key' method. + + + + + Cached name for the 'track_remove_key_at_time' method. + + + + + Cached name for the 'track_set_key_value' method. + + + + + Cached name for the 'track_set_key_transition' method. + + + + + Cached name for the 'track_set_key_time' method. + + + + + Cached name for the 'track_get_key_transition' method. + + + + + Cached name for the 'track_get_key_count' method. + + + + + Cached name for the 'track_get_key_value' method. + + + + + Cached name for the 'track_get_key_time' method. + + + + + Cached name for the 'track_find_key' method. + + + + + Cached name for the 'track_set_interpolation_type' method. + + + + + Cached name for the 'track_get_interpolation_type' method. + + + + + Cached name for the 'track_set_interpolation_loop_wrap' method. + + + + + Cached name for the 'track_get_interpolation_loop_wrap' method. + + + + + Cached name for the 'track_is_compressed' method. + + + + + Cached name for the 'value_track_set_update_mode' method. + + + + + Cached name for the 'value_track_get_update_mode' method. + + + + + Cached name for the 'value_track_interpolate' method. + + + + + Cached name for the 'method_track_get_name' method. + + + + + Cached name for the 'method_track_get_params' method. + + + + + Cached name for the 'bezier_track_insert_key' method. + + + + + Cached name for the 'bezier_track_set_key_value' method. + + + + + Cached name for the 'bezier_track_set_key_in_handle' method. + + + + + Cached name for the 'bezier_track_set_key_out_handle' method. + + + + + Cached name for the 'bezier_track_get_key_value' method. + + + + + Cached name for the 'bezier_track_get_key_in_handle' method. + + + + + Cached name for the 'bezier_track_get_key_out_handle' method. + + + + + Cached name for the 'bezier_track_interpolate' method. + + + + + Cached name for the 'audio_track_insert_key' method. + + + + + Cached name for the 'audio_track_set_key_stream' method. + + + + + Cached name for the 'audio_track_set_key_start_offset' method. + + + + + Cached name for the 'audio_track_set_key_end_offset' method. + + + + + Cached name for the 'audio_track_get_key_stream' method. + + + + + Cached name for the 'audio_track_get_key_start_offset' method. + + + + + Cached name for the 'audio_track_get_key_end_offset' method. + + + + + Cached name for the 'audio_track_set_use_blend' method. + + + + + Cached name for the 'audio_track_is_use_blend' method. + + + + + Cached name for the 'animation_track_insert_key' method. + + + + + Cached name for the 'animation_track_set_key_animation' method. + + + + + Cached name for the 'animation_track_get_key_animation' method. + + + + + Cached name for the 'add_marker' method. + + + + + Cached name for the 'remove_marker' method. + + + + + Cached name for the 'has_marker' method. + + + + + Cached name for the 'get_marker_at_time' method. + + + + + Cached name for the 'get_next_marker' method. + + + + + Cached name for the 'get_prev_marker' method. + + + + + Cached name for the 'get_marker_time' method. + + + + + Cached name for the 'get_marker_names' method. + + + + + Cached name for the 'get_marker_color' method. + + + + + Cached name for the 'set_marker_color' method. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_loop_mode' method. + + + + + Cached name for the 'get_loop_mode' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'copy_track' method. + + + + + Cached name for the 'optimize' method. + + + + + Cached name for the 'compress' method. + + + + + Cached name for the 'is_capture_included' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An animation library stores a set of animations accessible through keys, for use with nodes. + + + + + Adds the to the library, accessible by the key . + + + + + Removes the with the key . + + + + + Changes the key of the associated with the key to . + + + + + Returns if the library stores an with as the key. + + + + + Returns the with the key . If the animation does not exist, is returned and an error is logged. + + + + + Returns the keys for the s stored in the library. + + + + + Returns the key count for the s stored in the library. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an is added, under the key name. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an stored with the key name is removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the key for an is changed, from name to toName. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when there's a change in one of the animations, e.g. tracks are added, moved or have changed paths. name is the key of the animation that was changed. + See also , which this acts as a relay for. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_animation' method. + + + + + Cached name for the 'remove_animation' method. + + + + + Cached name for the 'rename_animation' method. + + + + + Cached name for the 'has_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'get_animation_list' method. + + + + + Cached name for the 'get_animation_list_size' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'animation_added' signal. + + + + + Cached name for the 'animation_removed' signal. + + + + + Cached name for the 'animation_renamed' signal. + + + + + Cached name for the 'animation_changed' signal. + + + + + Base class for and 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 . + + + + + Process animation during physics frames (see ). This is especially useful when animating physics bodies. + + + + + Process animation during process frames (see ). + + + + + Do not process animation. Use to process the animation manually. + + + + + 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. + + + + + Make method calls immediately when reached in the animation. + + + + + An track value takes precedence when blending or track values and track values. + + + + + An or track value takes precedence when blending the or track values and the track values. This is the default behavior for . + + + + + Always treat the track value as with . This is the default behavior for . + If a value track has un-interpolatable type key values, it is internally converted to use with . + Un-interpolatable type list: + - + - + - + - + - + - + - + - + and are treated as during blending and rounded when the result is retrieved. + It is same for arrays and vectors with them such as or , they are treated as or . Also note that for arrays, the size is also interpolated. + and are interpolated between character codes and lengths, but note that there is a difference in algorithm between interpolation between keys and interpolation by blending. + + + + + If , the will be processing. + + + + + If , the blending uses the deterministic algorithm. The total weight is not normalized and the result is accumulated with an initial value (0 or a "RESET" animation if present). + This means that if the total amount of blending is 0.0, the result is equal to the "RESET" animation. + If the number of tracks between the blended animations is different, the animation with the missing track is treated as if it had the initial value. + If , The blend does not use the deterministic algorithm. The total weight is normalized and always 1.0. If the number of tracks between the blended animations is different, nothing is done about the animation that is missing a track. + Note: In , the blending with , , or the weight greater than 1.0 may produce unexpected results. + For example, if blends two nodes with the amount 1.0, then total weight is 2.0 but it will be normalized to make the total amount 1.0 and the result will be equal to with the amount 0.5. + + + + + This is used by the editor. If set to , the scene will be saved with the effects of the reset animation (the animation with the key "RESET") applied as if it had been seeked to time 0, with the editor keeping the values that the scene had before saving. + This makes it more convenient to preview and edit animations in the editor, as changes to the scene will not be saved as long as they are set in the reset animation. + + + + + The node which node path references will travel from. + + + + + The path to the Animation track used for root motion. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. The uses the same format as , but note that a bone must be specified. + If the track has type , , or the transformation will be canceled visually, and the animation will appear to stay in place. See also , , , and . + + + + + If , value is extracted as a local translation value before blending. In other words, it is treated like the translation is done after the rotation. + + + + + The number of possible simultaneous sounds for each of the assigned AudioStreamPlayers. + For example, if this value is 32 and the animation has two audio tracks, the two s assigned can play simultaneously up to 32 voices each. + + + + + The process notification in which to update animations. + + + + + The call mode used for "Call Method" tracks. + + + + + Ordinarily, tracks can be set to to update infrequently, usually when using nearest interpolation. + However, when blending with several results are considered. The specify it explicitly. See also . + To make the blended results look good, it is recommended to set this to to update every frame during blending. Other values exist for compatibility and they are fine if there is no blending, but not so, may produce artifacts. + + + + + A virtual function for processing after getting a key during playback. + + + + + Adds to the animation player, under the key . + AnimationMixer has a global library by default with an empty string as key. For adding an animation to the global library: + + + + + + Removes the associated with the key . + + + + + Moves the associated with the key to the key . + + + + + Returns if the stores an with key . + + + + + Returns the first with key or if not found. + To get the 's global animation library, use get_animation_library(""). + + + + + Returns the list of stored library keys. + + + + + Returns if the stores an with key . + + + + + Returns the with the key . If the animation does not exist, is returned and an error is logged. + + + + + Returns the list of stored animation keys. + + + + + Retrieve the motion delta of position with the as a that can be used elsewhere. + If is not a path to a track of type , returns Vector3(0, 0, 0). + See also and . + The most basic example is applying position to : + + By using this in combination with , you can apply the root motion position more correctly to account for the rotation of the node. + + If is , return the pre-multiplied translation value with the inverted rotation. + In this case, the code can be written as follows: + + + + + + Retrieve the motion delta of rotation with the as a that can be used elsewhere. + If is not a path to a track of type , returns Quaternion(0, 0, 0, 1). + See also and . + The most basic example is applying rotation to : + + + + + + Retrieve the motion delta of scale with the as a that can be used elsewhere. + If is not a path to a track of type , returns Vector3(0, 0, 0). + See also and . + The most basic example is applying scale to : + + + + + + Retrieve the blended value of the position tracks with the as a that can be used elsewhere. + This is useful in cases where you want to respect the initial key values of the animation. + For example, if an animation with only one key Vector3(0, 0, 0) is played in the previous frame and then an animation with only one key Vector3(1, 0, 1) is played in the next frame, the difference can be calculated as follows: + + However, if the animation loops, an unintended discrete change may occur, so this is only useful for some simple use cases. + + + + + Retrieve the blended value of the rotation tracks with the as a that can be used elsewhere. + This is necessary to apply the root motion position correctly, taking rotation into account. See also . + Also, this is useful in cases where you want to respect the initial key values of the animation. + For example, if an animation with only one key Quaternion(0, 0, 0, 1) is played in the previous frame and then an animation with only one key Quaternion(0, 0.707, 0, 0.707) is played in the next frame, the difference can be calculated as follows: + + However, if the animation loops, an unintended discrete change may occur, so this is only useful for some simple use cases. + + + + + Retrieve the blended value of the scale tracks with the as a that can be used elsewhere. + For example, if an animation with only one key Vector3(1, 1, 1) is played in the previous frame and then an animation with only one key Vector3(2, 2, 2) is played in the next frame, the difference can be calculated as follows: + + However, if the animation loops, an unintended discrete change may occur, so this is only useful for some simple use cases. + + + + + caches animated nodes. It may not notice if a node disappears; forces it to update the cache again. + + + + + Manually advance the animations by the specified time (in seconds). + + + + + If the animation track specified by has an option , stores current values of the objects indicated by the track path as a cache. If there is already a captured cache, the old cache is discarded. + After this it will interpolate with current animation blending result during the playback process for the time specified by , working like a crossfade. + You can specify as the curve for the interpolation. For better results, it may be appropriate to specify for cases where the first key of the track begins with a non-zero value or where the key value does not change, and for cases where the key value changes linearly. + + + + + Returns the key of or an empty if not found. + + + + + Returns the key for the that contains or an empty if not found. + + + + + A virtual function for processing after getting a key during playback. + + + + + Notifies when an animation list is changed. + + + + + Notifies when the animation libraries have changed. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when an animation finished playing. + Note: This signal is not emitted if an animation is looping. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when an animation starts playing. + + + + + Notifies when the caches have been cleared, either automatically, or manually via . + + + + + Notifies when the blending result related have been applied to the target objects. + + + + + Notifies when the property related process have been updated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'active' property. + + + + + Cached name for the 'deterministic' property. + + + + + Cached name for the 'reset_on_save' property. + + + + + Cached name for the 'root_node' property. + + + + + Cached name for the 'root_motion_track' property. + + + + + Cached name for the 'root_motion_local' property. + + + + + Cached name for the 'audio_max_polyphony' property. + + + + + Cached name for the 'callback_mode_process' property. + + + + + Cached name for the 'callback_mode_method' property. + + + + + Cached name for the 'callback_mode_discrete' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_post_process_key_value' method. + + + + + Cached name for the 'add_animation_library' method. + + + + + Cached name for the 'remove_animation_library' method. + + + + + Cached name for the 'rename_animation_library' method. + + + + + Cached name for the 'has_animation_library' method. + + + + + Cached name for the 'get_animation_library' method. + + + + + Cached name for the 'get_animation_library_list' method. + + + + + Cached name for the 'has_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'get_animation_list' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'set_deterministic' method. + + + + + Cached name for the 'is_deterministic' method. + + + + + Cached name for the 'set_root_node' method. + + + + + Cached name for the 'get_root_node' method. + + + + + Cached name for the 'set_callback_mode_process' method. + + + + + Cached name for the 'get_callback_mode_process' method. + + + + + Cached name for the 'set_callback_mode_method' method. + + + + + Cached name for the 'get_callback_mode_method' method. + + + + + Cached name for the 'set_callback_mode_discrete' method. + + + + + Cached name for the 'get_callback_mode_discrete' method. + + + + + Cached name for the 'set_audio_max_polyphony' method. + + + + + Cached name for the 'get_audio_max_polyphony' method. + + + + + Cached name for the 'set_root_motion_track' method. + + + + + Cached name for the 'get_root_motion_track' method. + + + + + Cached name for the 'set_root_motion_local' method. + + + + + Cached name for the 'is_root_motion_local' method. + + + + + Cached name for the 'get_root_motion_position' method. + + + + + Cached name for the 'get_root_motion_rotation' method. + + + + + Cached name for the 'get_root_motion_scale' method. + + + + + Cached name for the 'get_root_motion_position_accumulator' method. + + + + + Cached name for the 'get_root_motion_rotation_accumulator' method. + + + + + Cached name for the 'get_root_motion_scale_accumulator' method. + + + + + Cached name for the 'clear_caches' method. + + + + + Cached name for the 'advance' method. + + + + + Cached name for the 'capture' method. + + + + + Cached name for the 'set_reset_on_save_enabled' method. + + + + + Cached name for the 'is_reset_on_save_enabled' method. + + + + + Cached name for the 'find_animation' method. + + + + + Cached name for the 'find_animation_library' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'animation_list_changed' signal. + + + + + Cached name for the 'animation_libraries_updated' signal. + + + + + Cached name for the 'animation_finished' signal. + + + + + Cached name for the 'animation_started' signal. + + + + + Cached name for the 'caches_cleared' signal. + + + + + Cached name for the 'mixer_applied' signal. + + + + + Cached name for the 'mixer_updated' signal. + + + + + A resource to add to an . Blends two animations additively based on the amount value. + If the amount is greater than 1.0, the animation connected to "in" port is blended with the amplified animation connected to "add" port. + If the amount is less than 0.0, the animation connected to "in" port is blended with the inverted animation connected to "add" port. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Blends two animations out of three additively out of three based on the amount value. + This animation node has three inputs: + - The base animation to add to + - A "-add" animation to blend with when the blend amount is negative + - A "+add" animation to blend with when the blend amount is positive + If the absolute value of the amount is greater than 1.0, the animation connected to "in" port is blended with the amplified animation connected to "-add"/"+add" port. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Only has one output port using the property. Used as an input for s that blend animations together. + + + + + Plays animation in forward direction. + + + + + Plays animation in backward direction. + + + + + Animation to use as an output. It is one of the animations provided by . + + + + + Determines the playback direction of the animation. + + + + + If , on receiving a request to play an animation from the start, the first frame is not drawn, but only processed, and playback starts from the next frame. + See also the notes of . + + + + + If , provides an animation based on the resource with some parameters adjusted. + + + + + If is , offset the start position of the animation. + + + + + If , scales the time so that the length specified in is one cycle. + This is useful for matching the periods of walking and running animations. + If , the original animation length is respected. If you set the loop to , the animation will loop in . + + + + + If is , offset the start position of the animation. + This is useful for adjusting which foot steps first in 3D walking animations. + + + + + If is , override the loop settings of the original resource with the value. + Note: If the isn't set to looping, the option will not be respected. If you cannot get the expected behavior, consider duplicating the resource and changing the loop settings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'animation' property. + + + + + Cached name for the 'play_mode' property. + + + + + Cached name for the 'advance_on_start' property. + + + + + Cached name for the 'use_custom_timeline' property. + + + + + Cached name for the 'timeline_length' property. + + + + + Cached name for the 'stretch_time_scale' property. + + + + + Cached name for the 'start_offset' property. + + + + + Cached name for the 'loop_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_animation' method. + + + + + Cached name for the 'get_animation' method. + + + + + Cached name for the 'set_play_mode' method. + + + + + Cached name for the 'get_play_mode' method. + + + + + Cached name for the 'set_advance_on_start' method. + + + + + Cached name for the 'is_advance_on_start' method. + + + + + Cached name for the 'set_use_custom_timeline' method. + + + + + Cached name for the 'is_using_custom_timeline' method. + + + + + Cached name for the 'set_timeline_length' method. + + + + + Cached name for the 'get_timeline_length' method. + + + + + Cached name for the 'set_stretch_time_scale' method. + + + + + Cached name for the 'is_stretching_time_scale' method. + + + + + Cached name for the 'set_start_offset' method. + + + + + Cached name for the 'get_start_offset' method. + + + + + Cached name for the 'set_loop_mode' method. + + + + + Cached name for the 'get_loop_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Blends two animations linearly based on the amount value. + In general, the blend value should be in the [0.0, 1.0] range. Values outside of this range can blend amplified or inverted animations, however, works better for this purpose. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . Blends two animations out of three linearly out of three based on the amount value. + This animation node has three inputs: + - The base animation to blend with + - A "-blend" animation to blend with when the blend amount is negative value + - A "+blend" animation to blend with when the blend amount is positive value + In general, the blend value should be in the [-1.0, 1.0] range. Values outside of this range can blend amplified animations, however, works better for this purpose. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource used by . + represents a virtual axis on which any type of s can be added using . Outputs the linear blend of the two s adjacent to the current value. + You can set the extents of the axis with and . + + + + + The interpolation between animations is linear. + + + + + The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations. + + + + + Similar to , but starts the new animation at the last animation's playback position. + + + + + The blend space's axis's lower limit for the points' position. See . + + + + + The blend space's axis's upper limit for the points' position. See . + + + + + Position increment to snap to when moving a point on the axis. + + + + + Label of the virtual axis of the blend space. + + + + + Controls the interpolation between animations. See constants. + + + + + If , the blended animations' frame are stopped when the blend value is 0. + If , forcing the blended animations to advance frame. + + + + + Adds a new point that represents a on the virtual axis at a given position set by . You can insert it at a specific index using the argument. If you use the default value for , the point is inserted at the end of the blend points array. + + + + + Updates the position of the point at index on the blend axis. + + + + + Returns the position of the point at index . + + + + + Changes the referenced by the point at index . + + + + + Returns the referenced by the point at index . + + + + + Removes the point at index from the blend axis. + + + + + Returns the number of points on the blend axis. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'min_space' property. + + + + + Cached name for the 'max_space' property. + + + + + Cached name for the 'snap' property. + + + + + Cached name for the 'value_label' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'sync' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_point' method. + + + + + Cached name for the 'set_blend_point_position' method. + + + + + Cached name for the 'get_blend_point_position' method. + + + + + Cached name for the 'set_blend_point_node' method. + + + + + Cached name for the 'get_blend_point_node' method. + + + + + Cached name for the 'remove_blend_point' method. + + + + + Cached name for the 'get_blend_point_count' method. + + + + + Cached name for the 'set_min_space' method. + + + + + Cached name for the 'get_min_space' method. + + + + + Cached name for the 'set_max_space' method. + + + + + Cached name for the 'get_max_space' method. + + + + + Cached name for the 'set_snap' method. + + + + + Cached name for the 'get_snap' method. + + + + + Cached name for the 'set_value_label' method. + + + + + Cached name for the 'get_value_label' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_use_sync' method. + + + + + Cached name for the 'is_using_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource used by . + represents a virtual 2D space on which s are placed. Outputs the linear blend of the three adjacent animations using a weight. Adjacent in this context means the three s making up the triangle that contains the current value. + You can add vertices to the blend space with and automatically triangulate it by setting to . Otherwise, use and to triangulate the blend space by hand. + + + + + The interpolation between animations is linear. + + + + + The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations. + + + + + Similar to , but starts the new animation at the last animation's playback position. + + + + + If , the blend space is triangulated automatically. The mesh updates every time you add or remove points with and . + + + + + The blend space's X and Y axes' lower limit for the points' position. See . + + + + + The blend space's X and Y axes' upper limit for the points' position. See . + + + + + Position increment to snap to when moving a point. + + + + + Name of the blend space's X axis. + + + + + Name of the blend space's Y axis. + + + + + Controls the interpolation between animations. See constants. + + + + + If , the blended animations' frame are stopped when the blend value is 0. + If , forcing the blended animations to advance frame. + + + + + Adds a new point that represents a at the position set by . You can insert it at a specific index using the argument. If you use the default value for , the point is inserted at the end of the blend points array. + + + + + Updates the position of the point at index in the blend space. + + + + + Returns the position of the point at index . + + + + + Changes the referenced by the point at index . + + + + + Returns the referenced by the point at index . + + + + + Removes the point at index from the blend space. + + + + + Returns the number of points in the blend space. + + + + + Creates a new triangle using three points , , and . Triangles can overlap. You can insert the triangle at a specific index using the argument. If you use the default value for , the point is inserted at the end of the blend points array. + + + + + Returns the position of the point at index in the triangle of index . + + + + + Removes the triangle at index from the blend space. + + + + + Returns the number of triangles in the blend space. + + + + + Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'auto_triangles' property. + + + + + Cached name for the 'triangles' property. + + + + + Cached name for the 'min_space' property. + + + + + Cached name for the 'max_space' property. + + + + + Cached name for the 'snap' property. + + + + + Cached name for the 'x_label' property. + + + + + Cached name for the 'y_label' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'sync' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_point' method. + + + + + Cached name for the 'set_blend_point_position' method. + + + + + Cached name for the 'get_blend_point_position' method. + + + + + Cached name for the 'set_blend_point_node' method. + + + + + Cached name for the 'get_blend_point_node' method. + + + + + Cached name for the 'remove_blend_point' method. + + + + + Cached name for the 'get_blend_point_count' method. + + + + + Cached name for the 'add_triangle' method. + + + + + Cached name for the 'get_triangle_point' method. + + + + + Cached name for the 'remove_triangle' method. + + + + + Cached name for the 'get_triangle_count' method. + + + + + Cached name for the 'set_min_space' method. + + + + + Cached name for the 'get_min_space' method. + + + + + Cached name for the 'set_max_space' method. + + + + + Cached name for the 'get_max_space' method. + + + + + Cached name for the 'set_snap' method. + + + + + Cached name for the 'get_snap' method. + + + + + Cached name for the 'set_x_label' method. + + + + + Cached name for the 'get_x_label' method. + + + + + Cached name for the 'set_y_label' method. + + + + + Cached name for the 'get_y_label' method. + + + + + Cached name for the '_set_triangles' method. + + + + + Cached name for the '_get_triangles' method. + + + + + Cached name for the 'set_auto_triangles' method. + + + + + Cached name for the 'get_auto_triangles' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_use_sync' method. + + + + + Cached name for the 'is_using_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'triangles_updated' signal. + + + + + This animation node may contain a sub-tree of any other type animation nodes, such as , , , , etc. This is one of the most commonly used animation node roots. + An node named output is created by default. + + + + + The connection was successful. + + + + + The input node is . + + + + + The specified input port is out of range. + + + + + The output node is . + + + + + Input and output nodes are the same. + + + + + The specified connection already exists. + + + + + The global offset of all sub animation nodes. + + + + + Adds an at the given . The is used to identify the created sub animation node later. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns the sub animation node with the specified . + + + + + Removes a sub animation node. + + + + + Changes the name of a sub animation node. + + + + + Returns if a sub animation node with specified exists. + + + + + Connects the output of an as input for another , at the input port specified by . + + + + + Disconnects the animation node connected to the specified input. + + + + + Modifies the position of a sub animation node. + + + + + Returns the position of the sub animation node with the specified . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the input port information is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'graph_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'rename_node' method. + + + + + Cached name for the 'has_node' method. + + + + + Cached name for the 'connect_node' method. + + + + + Cached name for the 'disconnect_node' method. + + + + + Cached name for the 'set_node_position' method. + + + + + Cached name for the 'get_node_position' method. + + + + + Cached name for the 'set_graph_offset' method. + + + + + Cached name for the 'get_graph_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'node_changed' signal. + + + + + exposes the APIs of to allow users to extend it from GDScript, C#, or C++. This class is not meant to be used directly, but to be extended by other classes. It is used to create custom nodes for the system. + + + + + A version of the method that is meant to be overridden by custom nodes. It returns a [] with the processed animation data. + The [] parameter contains the playback information, containing the following values encoded as floating point numbers (in order): playback time and delta, start and end times, whether a seek was requested (encoded as a float greater than 0), whether the seek request was externally requested (encoded as a float greater than 0), the current (encoded as a float), and the current blend weight. + The function must return a [] of the node's time info, containing the following values (in order): animation length, time position, delta, (encoded as a float), whether the animation is about to end (encoded as a float greater than 0) and whether the animation is infinite (encoded as a float greater than 0). All values must be included in the returned array. + + + + + Returns if the animation for the given is looping. + + + + + Returns if the animation for the given is looping. + + + + + Returns the animation's remaining time for the given node info. For looping animations, it will only return the remaining time if is , a large integer value will be returned otherwise. + + + + + Returns the animation's remaining time for the given node info. For looping animations, it will only return the remaining time if is , a large integer value will be returned otherwise. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_animation_node' method. + + + + + Cached name for the 'is_looping' method. + + + + + Cached name for the 'get_remaining_time' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource to add to an . This animation node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters. + After setting the request and changing the animation playback, the one-shot node automatically clears the request on the next process frame by setting its request value to . + + // 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"); + + + + + + The default state of the request. Nothing is done. + + + + + The request to play the animation connected to "shot" port. + + + + + The request to stop the animation connected to "shot" port. + + + + + The request to fade out the animation connected to "shot" port. + + + + + Blends two animations. See also . + + + + + Blends two animations additively. See also . + + + + + The blend type. + + + + + The fade-in duration. For example, setting this to 1.0 for a 5 second length animation will produce a cross-fade that starts at 0 second and ends at 1 second during the animation. + Note: transitions the current state after the end of the fading. When is considered as the most upstream, so the is scaled depending on the downstream delta. For example, if this value is set to 1.0 and a with a value of 2.0 is chained downstream, the actual processing time will be 0.5 second. + + + + + Determines how cross-fading between animations is eased. If empty, the transition will be linear. Should be a unit . + + + + + The fade-out duration. For example, setting this to 1.0 for a 5 second length animation will produce a cross-fade that starts at 4 second and ends at 5 second during the animation. + Note: transitions the current state after the end of the fading. When is considered as the most upstream, so the is scaled depending on the downstream delta. For example, if this value is set to 1.0 and an with a value of 2.0 is chained downstream, the actual processing time will be 0.5 second. + + + + + Determines how cross-fading between animations is eased. If empty, the transition will be linear. Should be a unit . + + + + + If , breaks the loop at the end of the loop cycle for transition, even if the animation is looping. + + + + + If , the sub-animation will restart automatically after finishing. + In other words, to start auto restarting, the animation must be played once with the request. The request stops the auto restarting, but it does not disable the itself. So, the request will start auto restarting again. + + + + + The delay after which the automatic restart is triggered, in seconds. + + + + + If is , a random additional delay (in seconds) between 0 and this value will be added to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mix_mode' property. + + + + + Cached name for the 'fadein_time' property. + + + + + Cached name for the 'fadein_curve' property. + + + + + Cached name for the 'fadeout_time' property. + + + + + Cached name for the 'fadeout_curve' property. + + + + + Cached name for the 'break_loop_at_end' property. + + + + + Cached name for the 'autorestart' property. + + + + + Cached name for the 'autorestart_delay' property. + + + + + Cached name for the 'autorestart_random_delay' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fadein_time' method. + + + + + Cached name for the 'get_fadein_time' method. + + + + + Cached name for the 'set_fadein_curve' method. + + + + + Cached name for the 'get_fadein_curve' method. + + + + + Cached name for the 'set_fadeout_time' method. + + + + + Cached name for the 'get_fadeout_time' method. + + + + + Cached name for the 'set_fadeout_curve' method. + + + + + Cached name for the 'get_fadeout_curve' method. + + + + + Cached name for the 'set_break_loop_at_end' method. + + + + + Cached name for the 'is_loop_broken_at_end' method. + + + + + Cached name for the 'set_autorestart' method. + + + + + Cached name for the 'has_autorestart' method. + + + + + Cached name for the 'set_autorestart_delay' method. + + + + + Cached name for the 'get_autorestart_delay' method. + + + + + Cached name for the 'set_autorestart_random_delay' method. + + + + + Cached name for the 'get_autorestart_random_delay' method. + + + + + Cached name for the 'set_mix_mode' method. + + + + + Cached name for the 'get_mix_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node created automatically in an that outputs the final animation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains multiple 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 object from the node to control it programmatically. + + var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback; + stateMachine.Travel("some_state"); + + + + + + Seeking to the beginning is treated as playing from the start state. Transition to the end state is treated as exiting the state machine. + + + + + 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. + + + + + 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 of or in the parent or ancestor. + + + + + This property can define the process of transitions for different use cases. See also . + + + + + If , allows teleport to the self state with . When the reset option is enabled in , the animation is restarted. If , nothing happens on the teleportation to the self state. + + + + + If , treat the cross-fade to the start and end nodes as a blend with the RESET animation. + In most cases, when additional cross-fades are performed in the parent of the state machine, setting this property to and matching the cross-fade time of the parent and the state machine's start node and end node gives good results. + + + + + Adds a new animation node to the graph. The is used for display in the editor. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Replaces the given animation node with a new animation node. + + + + + Returns the animation node with the given name. + + + + + Deletes the given animation node from the graph. + + + + + Renames the given animation node. + + + + + Returns if the graph contains the given animation node. + + + + + Returns the given animation node's name. + + + + + Sets the animation node's coordinates. Used for display in the editor. + + + + + Returns the given animation node's coordinates. Used for display in the editor. + + + + + Returns if there is a transition between the given animation nodes. + + + + + Adds a transition between the given animation nodes. + + + + + Returns the given transition. + + + + + Returns the given transition's start node. + + + + + Returns the given transition's end node. + + + + + Returns the number of connections in the graph. + + + + + Deletes the given transition by index. + + + + + Deletes the transition between the two specified animation nodes. + + + + + Sets the draw offset of the graph. Used for display in the editor. + + + + + Returns the draw offset of the graph. Used for display in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'state_machine_type' property. + + + + + Cached name for the 'allow_transition_to_self' property. + + + + + Cached name for the 'reset_ends' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'replace_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'rename_node' method. + + + + + Cached name for the 'has_node' method. + + + + + Cached name for the 'get_node_name' method. + + + + + Cached name for the 'set_node_position' method. + + + + + Cached name for the 'get_node_position' method. + + + + + Cached name for the 'has_transition' method. + + + + + Cached name for the 'add_transition' method. + + + + + Cached name for the 'get_transition' method. + + + + + Cached name for the 'get_transition_from' method. + + + + + Cached name for the 'get_transition_to' method. + + + + + Cached name for the 'get_transition_count' method. + + + + + Cached name for the 'remove_transition_by_index' method. + + + + + Cached name for the 'remove_transition' method. + + + + + Cached name for the 'set_graph_offset' method. + + + + + Cached name for the 'get_graph_offset' method. + + + + + Cached name for the 'set_state_machine_type' method. + + + + + Cached name for the 'get_state_machine_type' method. + + + + + Cached name for the 'set_allow_transition_to_self' method. + + + + + Cached name for the 'is_allow_transition_to_self' method. + + + + + Cached name for the 'set_reset_ends' method. + + + + + Cached name for the 'are_ends_reset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows control of state machines created with . Retrieve with $AnimationTree.get("parameters/playback"). + + var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback").As<AnimationNodeStateMachinePlayback>(); + stateMachine.Travel("some_state"); + + + + + + Transitions from the current state to another one, following the shortest path. + If the path does not connect from the current state, the animation will play after the state teleports. + If is , the animation is played from the beginning when the travel cause a teleportation. + + + + + Starts playing the given animation. + If is , the animation is played from the beginning. + + + + + If there is a next path by travel or auto advance, immediately transitions from the current state to the next state. + + + + + Stops the currently playing animation. + + + + + Returns if an animation is playing. + + + + + Returns the currently playing animation state. + Note: When using a cross-fade, the current state changes to the next state immediately after the cross-fade begins. + + + + + Returns the playback position within the current animation state. + + + + + Returns the current state length. + Note: It is possible that any can be nodes as well as animations. This means that there can be multiple animations within a single state. Which animation length has priority depends on the nodes connected inside it. Also, if a transition does not reset, the remaining length at that point will be returned. + + + + + Returns the starting state of currently fading animation. + + + + + Returns the current travel path as computed internally by the A* algorithm. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'travel' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'next' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_current_node' method. + + + + + Cached name for the 'get_current_play_position' method. + + + + + Cached name for the 'get_current_length' method. + + + + + Cached name for the 'get_fading_from_node' method. + + + + + Cached name for the 'get_travel_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The path generated when using is limited to the nodes connected by . + You can set the timing and conditions of the transition in detail. + + + + + Switch to the next state immediately. The current state will end and blend into the beginning of the new one. + + + + + Switch to the next state immediately, but will seek the new state to the playback position of the old state. + + + + + Wait for the current state playback to end, then switch to the beginning of the next state animation. + + + + + Don't use this transition. + + + + + Only use this transition during . + + + + + Automatically use this transition if the and checks are (if assigned). + + + + + The time to cross-fade between this state and the next. + Note: transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When is considered as the most upstream, so the is not scaled depending on the downstream delta. See also . + + + + + Ease curve for better control over cross-fade between this state and the next. Should be a unit . + + + + + If , breaks the loop at the end of the loop cycle for transition, even if the animation is looping. + + + + + If , the destination animation is played back from the beginning when switched. + + + + + Lower priority transitions are preferred when travelling through the tree via or is set to . + + + + + The transition type. + + + + + Determines whether the transition should be disabled, enabled when using , or traversed automatically if the and checks are (if assigned). + + + + + Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the that can be controlled from code (see Using AnimationTree). For example, if is an and is set to "idle": + + GetNode<AnimationTree>("animation_tree").Set("parameters/conditions/idle", IsOnFloor && (LinearVelocity.X == 0)); + + + + + + Use an expression as a condition for state machine transitions. It is possible to create complex animation advance conditions for switching between states and gives much greater flexibility for creating complex state machines by directly interfacing with the script code. + + + + + Emitted when is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'xfade_time' property. + + + + + Cached name for the 'xfade_curve' property. + + + + + Cached name for the 'break_loop_at_end' property. + + + + + Cached name for the 'reset' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'switch_mode' property. + + + + + Cached name for the 'advance_mode' property. + + + + + Cached name for the 'advance_condition' property. + + + + + Cached name for the 'advance_expression' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_switch_mode' method. + + + + + Cached name for the 'get_switch_mode' method. + + + + + Cached name for the 'set_advance_mode' method. + + + + + Cached name for the 'get_advance_mode' method. + + + + + Cached name for the 'set_advance_condition' method. + + + + + Cached name for the 'get_advance_condition' method. + + + + + Cached name for the 'set_xfade_time' method. + + + + + Cached name for the 'get_xfade_time' method. + + + + + Cached name for the 'set_xfade_curve' method. + + + + + Cached name for the 'get_xfade_curve' method. + + + + + Cached name for the 'set_break_loop_at_end' method. + + + + + Cached name for the 'is_loop_broken_at_end' method. + + + + + Cached name for the 'set_reset' method. + + + + + Cached name for the 'is_reset' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'set_advance_expression' method. + + + + + Cached name for the 'get_advance_expression' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'advance_condition_changed' signal. + + + + + A resource to add to an . 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 or . + In general, the blend value should be in the [0.0, 1.0] range, but values outside of this range can be used for amplified or inverted animations. + Note: This calculation is different from using a negative value in , since the transformation matrices do not satisfy the commutative law. multiplies the transformation matrix of the inverted animation from the left side, while negative multiplies it from the right side. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An animation node used to combine, mix, or blend two or more animations together while keeping them synchronized within an . + + + + + If , the blended animations' frame are stopped when the blend value is 0. + If , forcing the blended animations to advance frame. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sync' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_use_sync' method. + + + + + Cached name for the 'is_using_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows to scale the speed of the animation (or reverse it) in any child s. Setting it to 0.0 will pause the animation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 from the start or a certain playback position inside the . + After setting the time and changing the animation playback, the time seek node automatically goes into sleep mode on the next process frame by setting its seek_request value to -1.0. + + // Play child animation from the start. + animationTree.Set("parameters/TimeSeek/seek_request", 0.0); + + // Play child animation from 12 second timestamp. + animationTree.Set("parameters/TimeSeek/seek_request", 12.0); + + + + + + If , some processes are executed to handle keys between seeks, such as calculating root motion and finding the nearest discrete key. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'explicit_elapse' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_explicit_elapse' method. + + + + + Cached name for the 'is_explicit_elapse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Simple state machine for cases which don't require a more advanced . Animations can be connected to the inputs and transition times can be specified. + After setting the request and changing the animation playback, the transition node automatically clears the request on the next process frame by setting its transition_request value to empty. + Note: When using a cross-fade, current_state and current_index change to the next state immediately after the cross-fade begins. + + // Play child animation connected to "state_2" port. + animationTree.Set("parameters/Transition/transition_request", "state_2"); + + // Get current state name (read-only). + animationTree.Get("parameters/Transition/current_state"); + + // Get current state index (read-only). + animationTree.Get("parameters/Transition/current_index"); + + + + + + Cross-fading time (in seconds) between each animation connected to the inputs. + Note: transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When is considered as the most upstream, so the is not scaled depending on the downstream delta. See also . + + + + + Determines how cross-fading between animations is eased. If empty, the transition will be linear. Should be a unit . + + + + + If , allows transition to the self state. When the reset option is enabled in input, the animation is restarted. If , nothing happens on the transition to the self state. + + + + + The number of enabled input ports for this animation node. + + + + + Enables or disables auto-advance for the given index. If enabled, state changes to the next input after playing the animation once. If enabled for the last input state, it loops to the first. + + + + + Returns if auto-advance is enabled for the given index. + + + + + If , breaks the loop at the end of the loop cycle for transition, even if the animation is looping. + + + + + Returns whether the animation breaks the loop at the end of the loop cycle for transition. + + + + + If , the destination animation is restarted when the animation transitions. + + + + + Returns whether the animation restarts when the animation transitions from the other animation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'xfade_time' property. + + + + + Cached name for the 'xfade_curve' property. + + + + + Cached name for the 'allow_transition_to_self' property. + + + + + Cached name for the 'input_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_input_count' method. + + + + + Cached name for the 'set_input_as_auto_advance' method. + + + + + Cached name for the 'is_input_set_as_auto_advance' method. + + + + + Cached name for the 'set_input_break_loop_at_end' method. + + + + + Cached name for the 'is_input_loop_broken_at_end' method. + + + + + Cached name for the 'set_input_reset' method. + + + + + Cached name for the 'is_input_reset' method. + + + + + Cached name for the 'set_xfade_time' method. + + + + + Cached name for the 'get_xfade_time' method. + + + + + Cached name for the 'set_xfade_curve' method. + + + + + Cached name for the 'get_xfade_curve' method. + + + + + Cached name for the 'set_allow_transition_to_self' method. + + + + + Cached name for the 'is_allow_transition_to_self' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a base class for s that hold a complete animation. A complete animation refers to the output of an in an or the output of another . Used for or in other s. + Examples of built-in root nodes include (allows blending nodes between each other using various modes), (allows to configure blending and transitions between nodes using a state machine pattern), (allows linear blending between three s), (allows linear blending only between two s). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a region of 2D space defined by one or multiple or child nodes. It detects when other 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. + Note: Areas and bodies created with might not interact as expected with s, and might not emit signals or track objects correctly. + + + + + This area does not affect gravity/damping. + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order). + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order), ignoring any lower priority areas. + + + + + This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas. + + + + + This area replaces any gravity/damping calculated so far (in order), but keeps calculating the rest of the areas. + + + + + If , the area detects bodies or areas entering and exiting it. + + + + + If , other monitoring areas can detect this area. + + + + + The area's priority. Higher priority areas are processed first. The 's physics is always processed last, after all areas. + + + + + Override mode for gravity calculations within this area. See for possible values. + + + + + If , gravity is calculated from a point (set via ). See also . + + + + + The distance at which the gravity strength is equal to . For example, on a planet 100 pixels in radius with a surface gravity of 4.0 px/s², set the 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 this is set to 0.0, the gravity will be constant regardless of distance. + + + + + If gravity is a point (see ), this will be the point of attraction. + + + + + The area's gravity vector (not normalized). + + + + + The area's gravity intensity (in pixels per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction. + + + + + Override mode for linear damping calculations within this area. See for possible values. + + + + + The rate at which objects stop moving in this area. Represents the linear velocity lost per second. + See ProjectSettings.physics/2d/default_linear_damp for more details about damping. + + + + + Override mode for angular damping calculations within this area. See for possible values. + + + + + The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. + See ProjectSettings.physics/2d/default_angular_damp for more details about damping. + + + + + If , the area's audio bus overrides the default audio bus. + + + + + The name of the area's audio bus. + + + + + Returns a list of intersecting s and s. The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns a list of intersecting s. The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s or s, otherwise returns . The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s, otherwise returns . The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if the given physics body intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + The argument can either be a or a instance. While TileMaps are not physics bodies themselves, they register their tiles with collision shapes as a virtual physics body. + + + + + Returns if the given intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, the list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body enters a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + localShapeIndex and bodyShapeIndex contain indices of the interacting shapes from this area and the interacting body, respectively. bodyRid contains the of the body. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body exits a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body enters this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body exits this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area enters a shape of this area. Requires to be set to . + localShapeIndex and areaShapeIndex contain indices of the interacting shapes from this area and the other area, respectively. areaRid contains the of the other area. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area exits a shape of this area. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area enters this area. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area exits this area. Requires to be set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'monitoring' property. + + + + + Cached name for the 'monitorable' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'gravity_space_override' property. + + + + + Cached name for the 'gravity_point' property. + + + + + Cached name for the 'gravity_point_unit_distance' property. + + + + + Cached name for the 'gravity_point_center' property. + + + + + Cached name for the 'gravity_direction' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'linear_damp_space_override' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_damp_space_override' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'audio_bus_override' property. + + + + + Cached name for the 'audio_bus_name' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gravity_space_override_mode' method. + + + + + Cached name for the 'get_gravity_space_override_mode' method. + + + + + Cached name for the 'set_gravity_is_point' method. + + + + + Cached name for the 'is_gravity_a_point' method. + + + + + Cached name for the 'set_gravity_point_unit_distance' method. + + + + + Cached name for the 'get_gravity_point_unit_distance' method. + + + + + Cached name for the 'set_gravity_point_center' method. + + + + + Cached name for the 'get_gravity_point_center' method. + + + + + Cached name for the 'set_gravity_direction' method. + + + + + Cached name for the 'get_gravity_direction' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_linear_damp_space_override_mode' method. + + + + + Cached name for the 'get_linear_damp_space_override_mode' method. + + + + + Cached name for the 'set_angular_damp_space_override_mode' method. + + + + + Cached name for the 'get_angular_damp_space_override_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'set_monitoring' method. + + + + + Cached name for the 'is_monitoring' method. + + + + + Cached name for the 'set_monitorable' method. + + + + + Cached name for the 'is_monitorable' method. + + + + + Cached name for the 'get_overlapping_bodies' method. + + + + + Cached name for the 'get_overlapping_areas' method. + + + + + Cached name for the 'has_overlapping_bodies' method. + + + + + Cached name for the 'has_overlapping_areas' method. + + + + + Cached name for the 'overlaps_body' method. + + + + + Cached name for the 'overlaps_area' method. + + + + + Cached name for the 'set_audio_bus_name' method. + + + + + Cached name for the 'get_audio_bus_name' method. + + + + + Cached name for the 'set_audio_bus_override' method. + + + + + Cached name for the 'is_overriding_audio_bus' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'area_shape_entered' signal. + + + + + Cached name for the 'area_shape_exited' signal. + + + + + Cached name for the 'area_entered' signal. + + + + + Cached name for the 'area_exited' signal. + + + + + is a region of 3D space defined by one or multiple or child nodes. It detects when other 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. + Note: Areas and bodies created with might not interact as expected with s, and might not emit signals or track objects correctly. + Warning: Using a inside a child of this node (created e.g. by using the Create Trimesh Collision Sibling option in the Mesh menu that appears when selecting a node) may give unexpected results, since this collision shape is hollow. If this is not desired, it has to be split into multiple s or primitive shapes like , or in some cases it may be replaceable by a . + + + + + This area does not affect gravity/damping. + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order). + + + + + This area adds its gravity/damping values to whatever has been calculated so far (in order), ignoring any lower priority areas. + + + + + This area replaces any gravity/damping, even the defaults, ignoring any lower priority areas. + + + + + This area replaces any gravity/damping calculated so far (in order), but keeps calculating the rest of the areas. + + + + + If , the area detects bodies or areas entering and exiting it. + + + + + If , other monitoring areas can detect this area. + + + + + The area's priority. Higher priority areas are processed first. The 's physics is always processed last, after all areas. + + + + + Override mode for gravity calculations within this area. See for possible values. + + + + + If , gravity is calculated from a point (set via ). See also . + + + + + The distance at which the gravity strength is equal to . For example, on a planet 100 meters in radius with a surface gravity of 4.0 m/s², set the 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. + + + + + If gravity is a point (see ), this will be the point of attraction. + + + + + The area's gravity vector (not normalized). + + + + + The area's gravity intensity (in meters per second squared). This value multiplies the gravity direction. This is useful to alter the force of gravity without altering its direction. + + + + + Override mode for linear damping calculations within this area. See for possible values. + + + + + The rate at which objects stop moving in this area. Represents the linear velocity lost per second. + See ProjectSettings.physics/3d/default_linear_damp for more details about damping. + + + + + Override mode for angular damping calculations within this area. See for possible values. + + + + + The rate at which objects stop spinning in this area. Represents the angular velocity lost per second. + See ProjectSettings.physics/3d/default_angular_damp for more details about damping. + + + + + The magnitude of area-specific wind force. + Note: This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + The exponential rate at which wind force decreases with distance from its origin. + Note: This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + The which is used to specify the direction and origin of an area-specific wind force. The direction is opposite to the z-axis of the 's local transform, and its origin is the origin of the 's local transform. + Note: This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + If , the area's audio bus overrides the default audio bus. + + + + + The name of the area's audio bus. + + + + + If , the area applies reverb to its associated audio. + + + + + The name of the reverb bus to use for this area's associated audio. + + + + + The degree to which this area applies reverb to its associated audio. Ranges from 0 to 1 with 0.1 precision. + + + + + The degree to which this area's reverb is a uniform effect. Ranges from 0 to 1 with 0.1 precision. + + + + + Returns a list of intersecting s and s. The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns a list of intersecting s. The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) this list is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s or s, otherwise returns . The overlapping body's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping bodies is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if intersecting any s, otherwise returns . The overlapping area's must be part of this area's in order to be detected. + For performance reasons (collisions are all processed at the same time) the list of overlapping areas is modified once during the physics step, not immediately after objects are moved. Consider using signals instead. + + + + + Returns if the given physics body intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + The argument can either be a or a instance. While GridMaps are not physics body themselves, they register their tiles with collision shapes as a virtual physics body. + + + + + Returns if the given intersects or overlaps this , otherwise. + Note: The result of this test is not immediate after moving objects. For performance, list of overlaps is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body enters a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + localShapeIndex and bodyShapeIndex contain indices of the interacting shapes from this area and the interacting body, respectively. bodyRid contains the of the body. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received body exits a shape of this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body enters this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received body exits this area. body can be a or a . s are detected if their has collision shapes configured. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area enters a shape of this area. Requires to be set to . + localShapeIndex and areaShapeIndex contain indices of the interacting shapes from this area and the other area, respectively. areaRid contains the of the other area. These values can be used with the . + Example: Get the node from the shape index: + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a of the received area exits a shape of this area. Requires to be set to . + See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area enters this area. Requires to be set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the received area exits this area. Requires to be set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'monitoring' property. + + + + + Cached name for the 'monitorable' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'gravity_space_override' property. + + + + + Cached name for the 'gravity_point' property. + + + + + Cached name for the 'gravity_point_unit_distance' property. + + + + + Cached name for the 'gravity_point_center' property. + + + + + Cached name for the 'gravity_direction' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'linear_damp_space_override' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_damp_space_override' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'wind_force_magnitude' property. + + + + + Cached name for the 'wind_attenuation_factor' property. + + + + + Cached name for the 'wind_source_path' property. + + + + + Cached name for the 'audio_bus_override' property. + + + + + Cached name for the 'audio_bus_name' property. + + + + + Cached name for the 'reverb_bus_enabled' property. + + + + + Cached name for the 'reverb_bus_name' property. + + + + + Cached name for the 'reverb_bus_amount' property. + + + + + Cached name for the 'reverb_bus_uniformity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gravity_space_override_mode' method. + + + + + Cached name for the 'get_gravity_space_override_mode' method. + + + + + Cached name for the 'set_gravity_is_point' method. + + + + + Cached name for the 'is_gravity_a_point' method. + + + + + Cached name for the 'set_gravity_point_unit_distance' method. + + + + + Cached name for the 'get_gravity_point_unit_distance' method. + + + + + Cached name for the 'set_gravity_point_center' method. + + + + + Cached name for the 'get_gravity_point_center' method. + + + + + Cached name for the 'set_gravity_direction' method. + + + + + Cached name for the 'get_gravity_direction' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_linear_damp_space_override_mode' method. + + + + + Cached name for the 'get_linear_damp_space_override_mode' method. + + + + + Cached name for the 'set_angular_damp_space_override_mode' method. + + + + + Cached name for the 'get_angular_damp_space_override_mode' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'set_wind_force_magnitude' method. + + + + + Cached name for the 'get_wind_force_magnitude' method. + + + + + Cached name for the 'set_wind_attenuation_factor' method. + + + + + Cached name for the 'get_wind_attenuation_factor' method. + + + + + Cached name for the 'set_wind_source_path' method. + + + + + Cached name for the 'get_wind_source_path' method. + + + + + Cached name for the 'set_monitorable' method. + + + + + Cached name for the 'is_monitorable' method. + + + + + Cached name for the 'set_monitoring' method. + + + + + Cached name for the 'is_monitoring' method. + + + + + Cached name for the 'get_overlapping_bodies' method. + + + + + Cached name for the 'get_overlapping_areas' method. + + + + + Cached name for the 'has_overlapping_bodies' method. + + + + + Cached name for the 'has_overlapping_areas' method. + + + + + Cached name for the 'overlaps_body' method. + + + + + Cached name for the 'overlaps_area' method. + + + + + Cached name for the 'set_audio_bus_override' method. + + + + + Cached name for the 'is_overriding_audio_bus' method. + + + + + Cached name for the 'set_audio_bus_name' method. + + + + + Cached name for the 'get_audio_bus_name' method. + + + + + Cached name for the 'set_use_reverb_bus' method. + + + + + Cached name for the 'is_using_reverb_bus' method. + + + + + Cached name for the 'set_reverb_bus_name' method. + + + + + Cached name for the 'get_reverb_bus_name' method. + + + + + Cached name for the 'set_reverb_amount' method. + + + + + Cached name for the 'get_reverb_amount' method. + + + + + Cached name for the 'set_reverb_uniformity' method. + + + + + Cached name for the 'get_reverb_uniformity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'area_shape_entered' signal. + + + + + Cached name for the 'area_shape_exited' signal. + + + + + Cached name for the 'area_entered' signal. + + + + + Cached name for the 'area_exited' signal. + + + + + The is used to construct a by specifying the attributes as arrays. + The most basic example is the creation of a single triangle: + + var vertices = new Vector3[] + { + new Vector3(0, 1, 0), + new Vector3(1, 0, 0), + new Vector3(0, 0, 1), + }; + + // Initialize the ArrayMesh. + var arrMesh = new ArrayMesh(); + var arrays = new Godot.Collections.Array(); + arrays.Resize((int)Mesh.ArrayType.Max); + arrays[(int)Mesh.ArrayType.Vertex] = vertices; + + // Create the Mesh. + arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, arrays); + var m = new MeshInstance3D(); + m.Mesh = arrMesh; + + The is ready to be added to the to be shown. + See also , and for procedural geometry generation. + Note: Godot uses clockwise winding order for front faces of triangle primitive modes. + + + + + Sets the blend shape mode to one of . + + + + + Overrides the with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices. + + + + + An optional mesh which can be used for rendering shadows and the depth prepass. Can be used to increase performance by supplying a mesh with fused vertices and only vertex position data (without normals, UVs, colors, etc.). + Note: This mesh must have exactly the same vertex positions as the source mesh (including the source mesh's LODs, if present). If vertex positions differ, then the mesh will not draw correctly. + + + + + Adds name for a blend shape that will be added with . Must be called before surface is added. + + + + + Returns the number of blend shapes that the holds. + + + + + Returns the name of the blend shape at this index. + + + + + Sets the name of the blend shape at this index. + + + + + Removes all blend shapes from this . + + + + + Creates a new surface. will become the surf_idx for this new surface. + Surfaces are created to be rendered using a , which may be any of the values defined in . + The argument is an array of arrays. Each of the elements contains an array with some of the mesh data for this surface as described by the corresponding member of or if it is not used by the surface. For example, arrays[0] is the array of vertices. That first vertex sub-array is always required; the others are optional. Adding an index array puts this surface into "index mode" where the vertex and other arrays become the sources of data and the index array defines the vertex order. All sub-arrays must have the same length as the vertex array (or be an exact multiple of the vertex array's length, when multiple elements of a sub-array correspond to a single vertex) or be empty, except for if it is used. + The argument is an array of vertex data for each blend shape. Each element is an array of the same structure as , but , , and are set if and only if they are set in and all other entries are . + The argument is a dictionary with keys and [] values. Each entry in the dictionary represents an LOD level of the surface, where the value is the array to use for the LOD level and the key is roughly proportional to the distance at which the LOD stats being used. I.e., increasing the key of an LOD also increases the distance that the objects has to be from the camera before the LOD is used. + The argument is the bitwise or of, as required: One value of left shifted by ARRAY_FORMAT_CUSTOMn_SHIFT for each custom channel in use, , , or . + Note: When using indices, it is recommended to only use points, lines, or triangles. + + + + + Removes all surfaces from this . + + + + + Returns the length in vertices of the vertex array in the requested surface (see ). + + + + + Returns the length in indices of the index array in the requested surface (see ). + + + + + Returns the format mask of the requested surface (see ). + + + + + Returns the primitive type of the requested surface (see ). + + + + + Returns the index of the first surface with this name held within this . If none are found, -1 is returned. + + + + + Sets a name for a given surface. + + + + + Gets the name assigned to this surface. + + + + + Regenerates tangents for each of the 's surfaces. + + + + + Performs a UV unwrap on the to prepare the mesh for lightmapping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_blend_shape_names' property. + + + + + Cached name for the '_surfaces' property. + + + + + Cached name for the 'blend_shape_mode' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'shadow_mesh' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_blend_shape' method. + + + + + Cached name for the 'get_blend_shape_count' method. + + + + + Cached name for the 'get_blend_shape_name' method. + + + + + Cached name for the 'set_blend_shape_name' method. + + + + + Cached name for the 'clear_blend_shapes' method. + + + + + Cached name for the 'set_blend_shape_mode' method. + + + + + Cached name for the 'get_blend_shape_mode' method. + + + + + Cached name for the 'add_surface_from_arrays' method. + + + + + Cached name for the 'clear_surfaces' method. + + + + + Cached name for the 'surface_update_vertex_region' method. + + + + + Cached name for the 'surface_update_attribute_region' method. + + + + + Cached name for the 'surface_update_skin_region' method. + + + + + Cached name for the 'surface_get_array_len' method. + + + + + Cached name for the 'surface_get_array_index_len' method. + + + + + Cached name for the 'surface_get_format' method. + + + + + Cached name for the 'surface_get_primitive_type' method. + + + + + Cached name for the 'surface_find_by_name' method. + + + + + Cached name for the 'surface_set_name' method. + + + + + Cached name for the 'surface_get_name' method. + + + + + Cached name for the 'regen_normal_maps' method. + + + + + Cached name for the 'lightmap_unwrap' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached name for the 'set_shadow_mesh' method. + + + + + Cached name for the 'get_shadow_mesh' method. + + + + + Cached name for the '_set_blend_shape_names' method. + + + + + Cached name for the '_get_blend_shape_names' method. + + + + + Cached name for the '_set_surfaces' method. + + + + + Cached name for the '_get_surfaces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores an arbitrary 3D polygon shape that can be used by the engine's occlusion culling system. This is analogous to , but for occluders. + See 's documentation for instructions on setting up occlusion culling. + + + + + The occluder's vertex positions in local 3D coordinates. + Note: The occluder is always updated after setting this value. If creating occluders procedurally, consider using instead to avoid updating the occluder twice when it's created. + + + + + The occluder's index position. Indices determine which points from the array should be drawn, and in which order. + Note: The occluder is always updated after setting this value. If creating occluders procedurally, consider using instead to avoid updating the occluder twice when it's created. + + + + + Sets and , while updating the final occluder only once after both values are set. + + + + + Sets and , while updating the final occluder only once after both values are set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'indices' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_arrays' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'set_indices' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The height of child controls is automatically adjusted based on the width of the container. + + + + + The width of child controls is automatically adjusted based on the height of the container. + + + + + The bounding rectangle of child controls is automatically adjusted to fit inside the container while keeping the aspect ratio. + + + + + 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 is enabled, this allows to show only the container's area restricted by its own bounding rectangle. + + + + + Aligns child controls with the beginning (left or top) of the container. + + + + + Aligns child controls with the center of the container. + + + + + Aligns child controls with the end (right or bottom) of the container. + + + + + The aspect ratio to enforce on child controls. This is the width divided by the height. The ratio depends on the . + + + + + The stretch mode used to align child controls. + + + + + Specifies the horizontal relative position of child controls. + + + + + Specifies the vertical relative position of child controls. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'ratio' property. + + + + + Cached name for the 'stretch_mode' property. + + + + + Cached name for the 'alignment_horizontal' property. + + + + + Cached name for the 'alignment_vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ratio' method. + + + + + Cached name for the 'get_ratio' method. + + + + + Cached name for the 'set_stretch_mode' method. + + + + + Cached name for the 'get_stretch_mode' method. + + + + + Cached name for the 'set_alignment_horizontal' method. + + + + + Cached name for the 'get_alignment_horizontal' method. + + + + + Cached name for the 'set_alignment_vertical' method. + + + + + Cached name for the 'get_alignment_vertical' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + resource that draws only part of its texture, as defined by the . An additional can also be set, which is useful for small adjustments. + Multiple resources can be cropped from the same . Packing many smaller textures into a singular large texture helps to optimize video memory costs and render calls. + Note: cannot be used in an , and will not tile properly in nodes such as or . To tile an , modify its instead. + + + + + The texture that contains the atlas. Can be any type inheriting from , including another . + + + + + The region used to draw the . If either dimension of the region's size is 0, the value from size will be used for that axis instead. + + + + + The margin around the . Useful for small adjustments. If the Rect2.size of this property ("w" and "h" in the editor) is set, the drawn texture is resized to fit within the margin. + + + + + If , the area outside of the is clipped to avoid bleeding of the surrounding texture pixels. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'atlas' property. + + + + + Cached name for the 'region' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'filter_clip' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_atlas' method. + + + + + Cached name for the 'get_atlas' method. + + + + + Cached name for the 'set_region' method. + + + + + Cached name for the 'get_region' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_filter_clip' method. + + + + + Cached name for the 'has_filter_clip' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores position, muting, solo, bypass, effects, effect position, volume, and the connections between buses. See for usage. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The base for every audio effect. In the editor, an audio effect can be added to the current bus layout through the Audio panel. At run-time, it is also possible to manipulate audio effects through , , and . + When applied on a bus, an audio effect creates a corresponding . The instance is directly responsible for manipulating the sound, based on the original audio effect's properties. + + + + + Override this method to customize the created when this effect is applied on a bus in the editor's Audio panel, or through . + + extends AudioEffect + + @export var strength = 4.0 + + func _instantiate(): + var effect = CustomAudioEffectInstance.new() + effect.base = self + + return effect + + Note: It is recommended to keep a reference to the original in the new instance. Depending on the implementation this allows the effect instance to listen for changes at run-time and be modified accordingly. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_instantiate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Increases or decreases the volume being routed through the audio bus. + + + + + Amount of amplification in decibels. Positive values make the sound louder, negative values make it quieter. Value can range from -80 to 24. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'volume_db' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Limits the frequencies in a range around the and allows frequencies outside of this range to pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Attenuates the frequencies inside of a range around the and cuts frequencies outside of this band. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and process it as needed, for example to capture data from an , 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. + Unlike , this effect only returns the raw audio samples instead of encoding them into an . + + + + + Length of the internal ring buffer, in seconds. Setting the buffer length will have no effect if already initialized. + + + + + Returns if at least audio frames are available to read in the internal ring buffer. + + + + + Gets the next audio samples from the internal ring buffer. + Returns a [] containing exactly audio samples if available, or an empty [] if insufficient data was available. + The samples are signed floating-point PCM between -1 and 1. You will have to scale them if you want to use them as 8 or 16-bit integer samples. (v = 0x7fff * samples[0].x) + + + + + Clears the internal ring buffer. + Note: Calling this during a capture can cause the loss of samples which causes popping in the playback. + + + + + Returns the number of frames available to read using . + + + + + Returns the number of audio frames discarded from the audio bus due to full buffer. + + + + + Returns the total size of the internal ring buffer in frames. + + + + + Returns the number of audio frames inserted from the audio bus. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'can_get_buffer' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'clear_buffer' method. + + + + + Cached name for the 'set_buffer_length' method. + + + + + Cached name for the 'get_buffer_length' method. + + + + + Cached name for the 'get_frames_available' method. + + + + + Cached name for the 'get_discarded_frames' method. + + + + + Cached name for the 'get_buffer_length_frames' method. + + + + + Cached name for the 'get_pushed_frames' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Adds a chorus audio effect. The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter. + + + + + The number of voices in the effect. + + + + + The effect's raw signal. + + + + + The effect's processed signal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'voice_count' property. + + + + + Cached name for the 'dry' property. + + + + + Cached name for the 'wet' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_voice_count' method. + + + + + Cached name for the 'get_voice_count' method. + + + + + Cached name for the 'set_voice_delay_ms' method. + + + + + Cached name for the 'get_voice_delay_ms' method. + + + + + Cached name for the 'set_voice_rate_hz' method. + + + + + Cached name for the 'get_voice_rate_hz' method. + + + + + Cached name for the 'set_voice_depth_ms' method. + + + + + Cached name for the 'get_voice_depth_ms' method. + + + + + Cached name for the 'set_voice_level_db' method. + + + + + Cached name for the 'get_voice_level_db' method. + + + + + Cached name for the 'set_voice_cutoff_hz' method. + + + + + Cached name for the 'get_voice_cutoff_hz' method. + + + + + Cached name for the 'set_voice_pan' method. + + + + + Cached name for the 'get_voice_pan' method. + + + + + Cached name for the 'set_wet' method. + + + + + Cached name for the 'get_wet' method. + + + + + Cached name for the 'set_dry' method. + + + + + Cached name for the 'get_dry' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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. + + + + + The level above which compression is applied to the audio. Value can range from -60 to 0. + + + + + Amount of compression applied to the audio once it passes the threshold level. The higher the ratio, the more the loud parts of the audio will be compressed. Value can range from 1 to 48. + + + + + Gain applied to the output signal. + + + + + Compressor's reaction time when the signal exceeds the threshold, in microseconds. Value can range from 20 to 2000. + + + + + Compressor's delay time to stop reducing the signal after the signal level falls below the threshold, in milliseconds. Value can range from 20 to 2000. + + + + + Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet). + + + + + Reduce the sound level using another audio bus for threshold detection. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'threshold' property. + + + + + Cached name for the 'ratio' property. + + + + + Cached name for the 'gain' property. + + + + + Cached name for the 'attack_us' property. + + + + + Cached name for the 'release_ms' property. + + + + + Cached name for the 'mix' property. + + + + + Cached name for the 'sidechain' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_threshold' method. + + + + + Cached name for the 'get_threshold' method. + + + + + Cached name for the 'set_ratio' method. + + + + + Cached name for the 'get_ratio' method. + + + + + Cached name for the 'set_gain' method. + + + + + Cached name for the 'get_gain' method. + + + + + Cached name for the 'set_attack_us' method. + + + + + Cached name for the 'get_attack_us' method. + + + + + Cached name for the 'set_release_ms' method. + + + + + Cached name for the 'get_release_ms' method. + + + + + Cached name for the 'set_mix' method. + + + + + Cached name for the 'get_mix' method. + + + + + Cached name for the 'set_sidechain' method. + + + + + Cached name for the 'get_sidechain' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Output percent of original sound. At 0, only delayed sounds are output. Value can range from 0 to 1. + + + + + If , the first tap will be enabled. + + + + + First tap delay time in milliseconds. + + + + + Sound level for the first tap. + + + + + Pan position for the first tap. Value can range from -1 (fully left) to 1 (fully right). + + + + + If , the second tap will be enabled. + + + + + Second tap delay time in milliseconds. + + + + + Sound level for the second tap. + + + + + Pan position for the second tap. Value can range from -1 (fully left) to 1 (fully right). + + + + + If , feedback is enabled. + + + + + Feedback delay time in milliseconds. + + + + + Sound level for feedback. + + + + + Low-pass filter for feedback, in Hz. Frequencies below this value are filtered out of the source signal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'dry' property. + + + + + Cached name for the 'tap1_active' property. + + + + + Cached name for the 'tap1_delay_ms' property. + + + + + Cached name for the 'tap1_level_db' property. + + + + + Cached name for the 'tap1_pan' property. + + + + + Cached name for the 'tap2_active' property. + + + + + Cached name for the 'tap2_delay_ms' property. + + + + + Cached name for the 'tap2_level_db' property. + + + + + Cached name for the 'tap2_pan' property. + + + + + Cached name for the 'feedback_active' property. + + + + + Cached name for the 'feedback_delay_ms' property. + + + + + Cached name for the 'feedback_level_db' property. + + + + + Cached name for the 'feedback_lowpass' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_dry' method. + + + + + Cached name for the 'get_dry' method. + + + + + Cached name for the 'set_tap1_active' method. + + + + + Cached name for the 'is_tap1_active' method. + + + + + Cached name for the 'set_tap1_delay_ms' method. + + + + + Cached name for the 'get_tap1_delay_ms' method. + + + + + Cached name for the 'set_tap1_level_db' method. + + + + + Cached name for the 'get_tap1_level_db' method. + + + + + Cached name for the 'set_tap1_pan' method. + + + + + Cached name for the 'get_tap1_pan' method. + + + + + Cached name for the 'set_tap2_active' method. + + + + + Cached name for the 'is_tap2_active' method. + + + + + Cached name for the 'set_tap2_delay_ms' method. + + + + + Cached name for the 'get_tap2_delay_ms' method. + + + + + Cached name for the 'set_tap2_level_db' method. + + + + + Cached name for the 'get_tap2_level_db' method. + + + + + Cached name for the 'set_tap2_pan' method. + + + + + Cached name for the 'get_tap2_pan' method. + + + + + Cached name for the 'set_feedback_active' method. + + + + + Cached name for the 'is_feedback_active' method. + + + + + Cached name for the 'set_feedback_delay_ms' method. + + + + + Cached name for the 'get_feedback_delay_ms' method. + + + + + Cached name for the 'set_feedback_level_db' method. + + + + + Cached name for the 'get_feedback_level_db' method. + + + + + Cached name for the 'set_feedback_lowpass' method. + + + + + Cached name for the 'get_feedback_lowpass' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Digital distortion effect which cuts off peaks at the top and bottom of the waveform. + + + + + Low-resolution digital distortion effect (bit depth reduction). You can use it to emulate the sound of early digital audio devices. + + + + + Emulates the warm distortion produced by a field effect transistor, which is commonly used in solid-state musical instrument amplifiers. The property has no effect in this mode. + + + + + Waveshaper distortions are used mainly by electronic musicians to achieve an extra-abrasive sound. + + + + + Distortion type. + + + + + Increases or decreases the volume before the effect, in decibels. Value can range from -60 to 60. + + + + + High-pass filter, in Hz. Frequencies higher than this value will not be affected by the distortion. Value can range from 1 to 20000. + + + + + Distortion power. Value can range from 0 to 1. + + + + + Increases or decreases the volume after the effect, in decibels. Value can range from -80 to 24. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'pre_gain' property. + + + + + Cached name for the 'keep_hf_hz' property. + + + + + Cached name for the 'drive' property. + + + + + Cached name for the 'post_gain' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_pre_gain' method. + + + + + Cached name for the 'get_pre_gain' method. + + + + + Cached name for the 'set_keep_hf_hz' method. + + + + + Cached name for the 'get_keep_hf_hz' method. + + + + + Cached name for the 'set_drive' method. + + + + + Cached name for the 'get_drive' method. + + + + + Cached name for the 'set_post_gain' method. + + + + + Cached name for the 'get_post_gain' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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). + + + + + Sets band's gain at the specified index, in dB. + + + + + Returns the band's gain at the specified index, in dB. + + + + + Returns the number of bands of the equalizer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_band_gain_db' method. + + + + + Cached name for the 'get_band_gain_db' method. + + + + + Cached name for the 'get_band_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows frequencies other than the to pass. + + + + + Cutting off at 6dB per octave. + + + + + Cutting off at 12dB per octave. + + + + + Cutting off at 18dB per octave. + + + + + Cutting off at 24dB per octave. + + + + + Threshold frequency for the filter, in Hz. + + + + + Amount of boost in the frequency range near the cutoff frequency. + + + + + Gain amount of the frequencies after the filter. + + + + + Steepness of the cutoff curve in dB per octave, also known as the order of the filter. Higher orders have a more aggressive cutoff. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'cutoff_hz' property. + + + + + Cached name for the 'resonance' property. + + + + + Cached name for the 'gain' property. + + + + + Cached name for the 'db' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cutoff' method. + + + + + Cached name for the 'get_cutoff' method. + + + + + Cached name for the 'set_resonance' method. + + + + + Cached name for the 'get_resonance' method. + + + + + Cached name for the 'set_gain' method. + + + + + Cached name for the 'get_gain' method. + + + + + Cached name for the 'set_db' method. + + + + + Cached name for the 'get_db' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A limiter is an effect designed to disallow sound from going over a given dB threshold. Hard limiters predict volume peaks, and will smoothly apply gain reduction when a peak crosses the ceiling threshold to prevent clipping and distortion. It preserves the waveform and prevents it from crossing the ceiling threshold. Adding one in the Master bus is recommended as a safety measure to prevent sudden volume peaks from occurring, and to prevent distortion caused by clipping. + + + + + Gain to apply before limiting, in decibels. + + + + + The waveform's maximum allowed value, in decibels. This value can range from -24.0 to 0.0. + The default value of -0.3 prevents potential inter-sample peaks (ISP) from crossing over 0 dB, which can cause slight distortion on some older hardware. + + + + + Time it takes in seconds for the gain reduction to fully release. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pre_gain_db' property. + + + + + Cached name for the 'ceiling_db' property. + + + + + Cached name for the 'release' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ceiling_db' method. + + + + + Cached name for the 'get_ceiling_db' method. + + + + + Cached name for the 'set_pre_gain_db' method. + + + + + Cached name for the 'get_pre_gain_db' method. + + + + + Cached name for the 'set_release' method. + + + + + Cached name for the 'get_release' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cuts frequencies lower than the and allows higher frequencies to pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Reduces all frequencies above the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An audio effect instance manipulates the audio it receives for a given effect. This instance is automatically created by an when it is added to a bus, and should usually not be created directly. If necessary, it can be fetched at run-time with . + + + + + Override this method to customize the processing behavior of this effect instance. + Should return to force the to always call _process, even if the bus has been muted or cannot otherwise be heard. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_silence' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The waveform's maximum allowed value, in decibels. Value can range from -20 to -0.1. + + + + + Threshold from which the limiter begins to be active, in decibels. Value can range from -30 to 0. + + + + + Applies a gain to the limited waves, in decibels. Value can range from 0 to 6. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'ceiling_db' property. + + + + + Cached name for the 'threshold_db' property. + + + + + Cached name for the 'soft_clip_db' property. + + + + + Cached name for the 'soft_clip_ratio' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ceiling_db' method. + + + + + Cached name for the 'get_ceiling_db' method. + + + + + Cached name for the 'set_threshold_db' method. + + + + + Cached name for the 'get_threshold_db' method. + + + + + Cached name for the 'set_soft_clip_db' method. + + + + + Cached name for the 'get_soft_clip_db' method. + + + + + Cached name for the 'set_soft_clip_ratio' method. + + + + + Cached name for the 'get_soft_clip_ratio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cuts frequencies higher than the and allows lower frequencies to pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Reduces all frequencies below the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Attenuates frequencies in a narrow band around the and cuts frequencies outside of this range. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Determines how much of an audio signal is sent to the left and right buses. + + + + + Pan position. Value can range from -1 (fully left) to 1 (fully right). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pan' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pan' method. + + + + + Cached name for the 'get_pan' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Combines phase-shifted signals with the original signal. The movement of the phase-shifted signals is controlled using a low-frequency oscillator. + + + + + Determines the minimum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000. + + + + + Determines the maximum frequency affected by the LFO modulations, in Hz. Value can range from 10 to 10000. + + + + + Adjusts the rate in Hz at which the effect sweeps up and down across the frequency range. + + + + + Output percent of modified sound. Value can range from 0.1 to 0.9. + + + + + Governs how high the filter frequencies sweep. Low value will primarily affect bass frequencies. High value can sweep high into the treble. Value can range from 0.1 to 4. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'range_min_hz' property. + + + + + Cached name for the 'range_max_hz' property. + + + + + Cached name for the 'rate_hz' property. + + + + + Cached name for the 'feedback' property. + + + + + Cached name for the 'depth' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_range_min_hz' method. + + + + + Cached name for the 'get_range_min_hz' method. + + + + + Cached name for the 'set_range_max_hz' method. + + + + + Cached name for the 'get_range_max_hz' method. + + + + + Cached name for the 'set_rate_hz' method. + + + + + Cached name for the 'get_rate_hz' method. + + + + + Cached name for the 'set_feedback' method. + + + + + Cached name for the 'get_feedback' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows modulation of pitch independently of tempo. All frequencies can be increased/decreased with minimal effect on transients. + + + + + Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time. + + + + + Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time. + + + + + Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time. + + + + + Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time. + + + + + Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time. + + + + + Represents the size of the enum. + + + + + The pitch scale to use. 1.0 is the default pitch and plays sounds unaffected. can range from 0.0 (infinitely low pitch, inaudible) to 16 (16 times higher than the initial pitch). + + + + + The oversampling factor to use. Higher values result in better quality, but are more demanding on the CPU and may cause audio cracking if the CPU can't keep up. + + + + + The size of the Fast Fourier transform buffer. Higher values smooth out the effect over time, but have greater latency. The effects of this higher latency are especially noticeable on sounds that have sudden amplitude changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'oversampling' property. + + + + + Cached name for the 'fft_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'set_oversampling' method. + + + + + Cached name for the 'get_oversampling' method. + + + + + Cached name for the 'set_fft_size' method. + + + + + Cached name for the 'get_fft_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Allows the user to record the sound from an audio bus into an . When used on the "Master" audio bus, this includes all audio output by Godot. + Unlike , this effect encodes the recording with the given format (8-bit, 16-bit, or compressed) instead of giving access to the raw audio samples. + Can be used (with an ) to record from a microphone. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Specifies the format in which the sample will be recorded. See for available formats. + + + + + If , the sound will be recorded. Note that restarting the recording will remove the previously recorded sample. + + + + + Returns whether the recording is active or not. + + + + + Returns the recorded sample. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_recording_active' method. + + + + + Cached name for the 'is_recording_active' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_recording' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Simulates the sound of acoustic environments such as rooms, concert halls, caverns, or an open spaces. + + + + + Time between the original signal and the early reflections of the reverb signal, in milliseconds. + + + + + Output percent of predelay. Value can range from 0 to 1. + + + + + Dimensions of simulated room. Bigger means more echoes. Value can range from 0 to 1. + + + + + Defines how reflective the imaginary room's walls are. Value can range from 0 to 1. + + + + + Widens or narrows the stereo image of the reverb tail. 1 means fully widens. Value can range from 0 to 1. + + + + + High-pass filter passes signals with a frequency higher than a certain cutoff frequency and attenuates signals with frequencies lower than the cutoff frequency. Value can range from 0 to 1. + + + + + Output percent of original sound. At 0, only modified sound is outputted. Value can range from 0 to 1. + + + + + Output percent of modified sound. At 0, only original sound is outputted. Value can range from 0 to 1. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'predelay_msec' property. + + + + + Cached name for the 'predelay_feedback' property. + + + + + Cached name for the 'room_size' property. + + + + + Cached name for the 'damping' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'hipass' property. + + + + + Cached name for the 'dry' property. + + + + + Cached name for the 'wet' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_predelay_msec' method. + + + + + Cached name for the 'get_predelay_msec' method. + + + + + Cached name for the 'set_predelay_feedback' method. + + + + + Cached name for the 'get_predelay_feedback' method. + + + + + Cached name for the 'set_room_size' method. + + + + + Cached name for the 'get_room_size' method. + + + + + Cached name for the 'set_damping' method. + + + + + Cached name for the 'get_damping' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_dry' method. + + + + + Cached name for the 'get_dry' method. + + + + + Cached name for the 'set_wet' method. + + + + + Cached name for the 'get_wet' method. + + + + + Cached name for the 'set_hpf' method. + + + + + Cached name for the 'get_hpf' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This audio effect does not affect sound output, but can be used for real-time audio visualizations. + This resource configures an , which performs the actual analysis at runtime. An instance can be obtained with . + See also for procedurally generating sounds. + + + + + Use a buffer of 256 samples for the Fast Fourier transform. Lowest latency, but least stable over time. + + + + + Use a buffer of 512 samples for the Fast Fourier transform. Low latency, but less stable over time. + + + + + Use a buffer of 1024 samples for the Fast Fourier transform. This is a compromise between latency and stability over time. + + + + + Use a buffer of 2048 samples for the Fast Fourier transform. High latency, but stable over time. + + + + + Use a buffer of 4096 samples for the Fast Fourier transform. Highest latency, but most stable over time. + + + + + Represents the size of the enum. + + + + + The length of the buffer to keep (in seconds). Higher values keep data around for longer, but require more memory. + + + + + The size of the Fast Fourier transform buffer. Higher values smooth out the spectrum analysis over time, but have greater latency. The effects of this higher latency are especially noticeable with sudden amplitude changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer_length' property. + + + + + Cached name for the 'tap_back_pos' property. + + + + + Cached name for the 'fft_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_buffer_length' method. + + + + + Cached name for the 'get_buffer_length' method. + + + + + Cached name for the 'set_tap_back_pos' method. + + + + + Cached name for the 'get_tap_back_pos' method. + + + + + Cached name for the 'set_fft_size' method. + + + + + Cached name for the 'get_fft_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The runtime part of an , which can be used to query the magnitude of a frequency range on its host bus. + An instance of this class can be obtained with . + + + + + Use the average value across the frequency range as magnitude. + + + + + Use the maximum value of the frequency range as magnitude. + + + + + Returns the magnitude of the frequencies from to in linear energy as a Vector2. The x component of the return value represents the left stereo channel, and y represents the right channel. + determines how the frequency range will be processed. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_magnitude_for_frequency_range' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An audio effect that can be used to adjust the intensity of stereo panning. + + + + + Amplifies the difference between stereo channels, increasing or decreasing existing panning. A value of 0.0 will downmix stereo to mono. Does not affect a mono signal. + + + + + Widens sound stage through phase shifting in conjunction with . Just delays the right channel if is 0. + + + + + Widens sound stage through phase shifting in conjunction with . Just pans sound to the left channel if is 0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pan_pullout' property. + + + + + Cached name for the 'time_pullout_ms' property. + + + + + Cached name for the 'surround' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pan_pullout' method. + + + + + Cached name for the 'get_pan_pullout' method. + + + + + Cached name for the 'set_time_pullout' method. + + + + + Cached name for the 'get_time_pullout' method. + + + + + Cached name for the 'set_surround' method. + + + + + Cached name for the 'get_surround' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Once added to the scene tree and enabled using , this node will override the location sounds are heard from. Only one can be current. Using will disable the previous . + If there is no active in the current , center of the screen will be used as a hearing point for the audio. needs to be inside to function. + + + + + Makes the active, setting it as the hearing point for the sounds. If there is already another active , it will be disabled. + This method will have no effect if the is not added to . + + + + + Disables the . If it's not set as current, this method will have no effect. + + + + + Returns if this is currently active. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'clear_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Once added to the scene tree and enabled using , this node will override the location sounds are heard from. This can be used to listen from a location different from the . + + + + + Enables the listener. This will override the current camera's listener. + + + + + Disables the listener to use the current camera's listener instead. + + + + + Returns if the listener was made current using , otherwise. + Note: There may be more than one AudioListener3D marked as "current" in the scene tree, but only the one that was made current last will be used. + + + + + Returns the listener's global orthonormalized . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'clear_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached name for the 'get_listener_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for audio samples. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Meta class for playing back audio samples. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface. + + + + + Two or fewer speakers were detected. + + + + + A 3.1 channel surround setup was detected. + + + + + A 5.1 channel surround setup was detected. + + + + + A 7.1 channel surround setup was detected. + + + + + The playback will be considered of the type declared at ProjectSettings.audio/general/default_playback_type. + + + + + Force the playback to be considered as a stream. + + + + + Force the playback to be considered as a sample. This can provide lower latency and more stable playback (with less risk of audio crackling), at the cost of having less flexibility. + Note: Only currently supported on the web platform. + Note: s are not supported when playback is considered as a sample. + + + + + Represents the size of the enum. + + + + + Number of available audio buses. + + + + + Name of the current device for audio output (see ). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value "Default" will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to "Default". + + + + + Name of the current device for audio input (see ). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value "Default" will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to "Default". + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Scales the rate at which audio is played (i.e. setting it to 0.5 will make the audio be played at half its speed). See also to affect the general simulation speed, which is independent from . + + + + + Removes the bus at index . + + + + + Adds a bus at . + + + + + Moves the bus from index to index . + + + + + Sets the name of the bus at index to . + + + + + Returns the name of the bus with the index . + + + + + Returns the index of the bus with the name . Returns -1 if no bus with the specified name exist. + + + + + Returns the number of channels of the bus at index . + + + + + Sets the volume of the bus at index to . + + + + + Returns the volume of the bus at index in dB. + + + + + Connects the output of the bus at to the bus named . + + + + + Returns the name of the bus that the bus at index sends to. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is bypassing effects. + + + + + If , the bus at index is bypassing effects. + + + + + Adds an effect to the bus at . + + + + + Removes the effect at index from the bus at index . + + + + + Returns the number of effects on the bus at . + + + + + Returns the at position in bus . + + + + + Returns the assigned to the given bus and effect indices (and optionally channel). + + + + + Swaps the position of two effects in bus . + + + + + If , the effect at index on the bus at index is enabled. + + + + + If , the effect at index on the bus at index is enabled. + + + + + Returns the peak volume of the left speaker at bus index and channel index . + + + + + Returns the peak volume of the right speaker at bus index and channel index . + + + + + Locks the audio driver's main loop. + Note: Remember to unlock it afterwards. + + + + + Unlocks the audio driver's main loop. (After locking it, you should always unlock it.) + + + + + Returns the speaker configuration. + + + + + Returns the sample rate at the output of the . + + + + + Returns the sample rate at the input of the . + + + + + Returns the name of the current audio driver. The default usually depends on the operating system, but may be overridden via the --audio-driver command line argument. --headless also automatically sets the audio driver to Dummy. See also ProjectSettings.audio/driver/driver. + + + + + Returns the names of all audio output devices detected on the system. + + + + + Returns the relative time until the next mix occurs. + + + + + Returns the relative time since the last mix occurred. + + + + + Returns the audio driver's effective output latency. This is based on ProjectSettings.audio/driver/output_latency, but the exact returned value will differ depending on the operating system and audio driver. + Note: This can be expensive; it is not recommended to call every frame. + + + + + Returns the names of all audio input devices detected on the system. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Overwrites the currently used . + + + + + Generates an using the available buses and effects. + + + + + If set to , all instances of will call every mix step. + Note: This is enabled by default in the editor, as it is used by editor plugins for the audio stream previews. + + + + + If , the stream is registered as a sample. The engine will not have to register it before playing the sample. + If , the stream will have to be registered before playing it. To prevent lag spikes, register the stream as sample with . + + + + + Forces the registration of a stream as a sample. + Note: Lag spikes may occur when calling this method, especially on single-threaded builds. It is suggested to call this method while loading assets, where the lag spike could be masked, instead of registering the sample right before it needs to be played. + + + + + Emitted when an audio bus is added, deleted, or moved. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the audio bus at busIndex is renamed from oldName to newName. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bus_count' property. + + + + + Cached name for the 'output_device' property. + + + + + Cached name for the 'input_device' property. + + + + + Cached name for the 'playback_speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bus_count' method. + + + + + Cached name for the 'get_bus_count' method. + + + + + Cached name for the 'remove_bus' method. + + + + + Cached name for the 'add_bus' method. + + + + + Cached name for the 'move_bus' method. + + + + + Cached name for the 'set_bus_name' method. + + + + + Cached name for the 'get_bus_name' method. + + + + + Cached name for the 'get_bus_index' method. + + + + + Cached name for the 'get_bus_channels' method. + + + + + Cached name for the 'set_bus_volume_db' method. + + + + + Cached name for the 'get_bus_volume_db' method. + + + + + Cached name for the 'set_bus_send' method. + + + + + Cached name for the 'get_bus_send' method. + + + + + Cached name for the 'set_bus_solo' method. + + + + + Cached name for the 'is_bus_solo' method. + + + + + Cached name for the 'set_bus_mute' method. + + + + + Cached name for the 'is_bus_mute' method. + + + + + Cached name for the 'set_bus_bypass_effects' method. + + + + + Cached name for the 'is_bus_bypassing_effects' method. + + + + + Cached name for the 'add_bus_effect' method. + + + + + Cached name for the 'remove_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_count' method. + + + + + Cached name for the 'get_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_instance' method. + + + + + Cached name for the 'swap_bus_effects' method. + + + + + Cached name for the 'set_bus_effect_enabled' method. + + + + + Cached name for the 'is_bus_effect_enabled' method. + + + + + Cached name for the 'get_bus_peak_volume_left_db' method. + + + + + Cached name for the 'get_bus_peak_volume_right_db' method. + + + + + Cached name for the 'set_playback_speed_scale' method. + + + + + Cached name for the 'get_playback_speed_scale' method. + + + + + Cached name for the 'lock' method. + + + + + Cached name for the 'unlock' method. + + + + + Cached name for the 'get_speaker_mode' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'get_input_mix_rate' method. + + + + + Cached name for the 'get_driver_name' method. + + + + + Cached name for the 'get_output_device_list' method. + + + + + Cached name for the 'get_output_device' method. + + + + + Cached name for the 'set_output_device' method. + + + + + Cached name for the 'get_time_to_next_mix' method. + + + + + Cached name for the 'get_time_since_last_mix' method. + + + + + Cached name for the 'get_output_latency' method. + + + + + Cached name for the 'get_input_device_list' method. + + + + + Cached name for the 'get_input_device' method. + + + + + Cached name for the 'set_input_device' method. + + + + + Cached name for the 'set_bus_layout' method. + + + + + Cached name for the 'generate_bus_layout' method. + + + + + Cached name for the 'set_enable_tagging_used_audio_streams' method. + + + + + Cached name for the 'is_stream_registered_as_sample' method. + + + + + Cached name for the 'register_stream_as_sample' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bus_layout_changed' signal. + + + + + Cached name for the 'bus_renamed' signal. + + + + + is a low-level server interface for audio access. It is in charge of creating sample data (playable audio) as well as its playback via a voice interface. + + + + + Number of available audio buses. + + + + + Name of the current device for audio output (see ). On systems with multiple audio outputs (such as analog, USB and HDMI audio), this can be used to select the audio output device. The value "Default" will play audio on the system-wide default audio output. If an invalid device name is set, the value will be reverted back to "Default". + + + + + Name of the current device for audio input (see ). On systems with multiple audio inputs (such as analog, USB and HDMI audio), this can be used to select the audio input device. The value "Default" will record audio on the system-wide default audio input. If an invalid device name is set, the value will be reverted back to "Default". + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Scales the rate at which audio is played (i.e. setting it to 0.5 will make the audio be played at half its speed). See also to affect the general simulation speed, which is independent from . + + + + + Removes the bus at index . + + + + + Adds a bus at . + + + + + Moves the bus from index to index . + + + + + Sets the name of the bus at index to . + + + + + Returns the name of the bus with the index . + + + + + Returns the index of the bus with the name . Returns -1 if no bus with the specified name exist. + + + + + Returns the number of channels of the bus at index . + + + + + Sets the volume of the bus at index to . + + + + + Returns the volume of the bus at index in dB. + + + + + Connects the output of the bus at to the bus named . + + + + + Returns the name of the bus that the bus at index sends to. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is in solo mode. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is muted. + + + + + If , the bus at index is bypassing effects. + + + + + If , the bus at index is bypassing effects. + + + + + Adds an effect to the bus at . + + + + + Removes the effect at index from the bus at index . + + + + + Returns the number of effects on the bus at . + + + + + Returns the at position in bus . + + + + + Returns the assigned to the given bus and effect indices (and optionally channel). + + + + + Swaps the position of two effects in bus . + + + + + If , the effect at index on the bus at index is enabled. + + + + + If , the effect at index on the bus at index is enabled. + + + + + Returns the peak volume of the left speaker at bus index and channel index . + + + + + Returns the peak volume of the right speaker at bus index and channel index . + + + + + Locks the audio driver's main loop. + Note: Remember to unlock it afterwards. + + + + + Unlocks the audio driver's main loop. (After locking it, you should always unlock it.) + + + + + Returns the speaker configuration. + + + + + Returns the sample rate at the output of the . + + + + + Returns the sample rate at the input of the . + + + + + Returns the name of the current audio driver. The default usually depends on the operating system, but may be overridden via the --audio-driver command line argument. --headless also automatically sets the audio driver to Dummy. See also ProjectSettings.audio/driver/driver. + + + + + Returns the names of all audio output devices detected on the system. + + + + + Returns the relative time until the next mix occurs. + + + + + Returns the relative time since the last mix occurred. + + + + + Returns the audio driver's effective output latency. This is based on ProjectSettings.audio/driver/output_latency, but the exact returned value will differ depending on the operating system and audio driver. + Note: This can be expensive; it is not recommended to call every frame. + + + + + Returns the names of all audio input devices detected on the system. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Overwrites the currently used . + + + + + Generates an using the available buses and effects. + + + + + If set to , all instances of will call every mix step. + Note: This is enabled by default in the editor, as it is used by editor plugins for the audio stream previews. + + + + + If , the stream is registered as a sample. The engine will not have to register it before playing the sample. + If , the stream will have to be registered before playing it. To prevent lag spikes, register the stream as sample with . + + + + + Forces the registration of a stream as a sample. + Note: Lag spikes may occur when calling this method, especially on single-threaded builds. It is suggested to call this method while loading assets, where the lag spike could be masked, instead of registering the sample right before it needs to be played. + + + + + Emitted when an audio bus is added, deleted, or moved. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the audio bus at busIndex is renamed from oldName to newName. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bus_count' property. + + + + + Cached name for the 'output_device' property. + + + + + Cached name for the 'input_device' property. + + + + + Cached name for the 'playback_speed_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bus_count' method. + + + + + Cached name for the 'get_bus_count' method. + + + + + Cached name for the 'remove_bus' method. + + + + + Cached name for the 'add_bus' method. + + + + + Cached name for the 'move_bus' method. + + + + + Cached name for the 'set_bus_name' method. + + + + + Cached name for the 'get_bus_name' method. + + + + + Cached name for the 'get_bus_index' method. + + + + + Cached name for the 'get_bus_channels' method. + + + + + Cached name for the 'set_bus_volume_db' method. + + + + + Cached name for the 'get_bus_volume_db' method. + + + + + Cached name for the 'set_bus_send' method. + + + + + Cached name for the 'get_bus_send' method. + + + + + Cached name for the 'set_bus_solo' method. + + + + + Cached name for the 'is_bus_solo' method. + + + + + Cached name for the 'set_bus_mute' method. + + + + + Cached name for the 'is_bus_mute' method. + + + + + Cached name for the 'set_bus_bypass_effects' method. + + + + + Cached name for the 'is_bus_bypassing_effects' method. + + + + + Cached name for the 'add_bus_effect' method. + + + + + Cached name for the 'remove_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_count' method. + + + + + Cached name for the 'get_bus_effect' method. + + + + + Cached name for the 'get_bus_effect_instance' method. + + + + + Cached name for the 'swap_bus_effects' method. + + + + + Cached name for the 'set_bus_effect_enabled' method. + + + + + Cached name for the 'is_bus_effect_enabled' method. + + + + + Cached name for the 'get_bus_peak_volume_left_db' method. + + + + + Cached name for the 'get_bus_peak_volume_right_db' method. + + + + + Cached name for the 'set_playback_speed_scale' method. + + + + + Cached name for the 'get_playback_speed_scale' method. + + + + + Cached name for the 'lock' method. + + + + + Cached name for the 'unlock' method. + + + + + Cached name for the 'get_speaker_mode' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'get_input_mix_rate' method. + + + + + Cached name for the 'get_driver_name' method. + + + + + Cached name for the 'get_output_device_list' method. + + + + + Cached name for the 'get_output_device' method. + + + + + Cached name for the 'set_output_device' method. + + + + + Cached name for the 'get_time_to_next_mix' method. + + + + + Cached name for the 'get_time_since_last_mix' method. + + + + + Cached name for the 'get_output_latency' method. + + + + + Cached name for the 'get_input_device_list' method. + + + + + Cached name for the 'get_input_device' method. + + + + + Cached name for the 'set_input_device' method. + + + + + Cached name for the 'set_bus_layout' method. + + + + + Cached name for the 'generate_bus_layout' method. + + + + + Cached name for the 'set_enable_tagging_used_audio_streams' method. + + + + + Cached name for the 'is_stream_registered_as_sample' method. + + + + + Cached name for the 'register_stream_as_sample' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bus_layout_changed' signal. + + + + + Cached name for the 'bus_renamed' signal. + + + + + Base class for audio streams. Audio streams are used for sound effects and music playback, and support WAV (via ) and Ogg (via ) file formats. + + + + + Override this method to return the bar beats of this stream. + + + + + 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 (, for example). + + + + + 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 (, for example). + + + + + Override this method to customize the returned value of . Should return the length of this audio stream, in seconds. + + + + + Return the controllable parameters of this stream. This array contains dictionaries with a property info description format (see ). Additionally, the default value for this parameter must be added tho each dictionary in "default_value" field. + + + + + Override this method to customize the name assigned to this audio stream. Unused by the engine. + + + + + Override this method to return if this stream has a loop. + + + + + Override this method to customize the returned value of . Should return a new created when the stream is played (such as by an ). + + + + + Override this method to customize the returned value of . Should return if this audio stream only supports one channel. + + + + + Returns the length of the audio stream in seconds. + + + + + Returns if this audio stream only supports one channel (monophony), or if the audio stream supports two or more channels (polyphony). + + + + + Returns a newly created intended to play this audio stream. Useful for when you want to extend but call from an internally held AudioStream subresource. An example of this can be found in the source code for AudioStreamRandomPitch::instantiate_playback. + + + + + Returns if the current can be used as a sample. Only static streams can be sampled. + + + + + Generates an based on the current stream. + + + + + Returns if the stream is a collection of other streams, otherwise. + + + + + Signal to be emitted to notify when the parameter list changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_bar_beats' method. + + + + + Cached name for the '_get_beat_count' method. + + + + + Cached name for the '_get_bpm' method. + + + + + Cached name for the '_get_length' method. + + + + + Cached name for the '_get_parameter_list' method. + + + + + Cached name for the '_get_stream_name' method. + + + + + Cached name for the '_has_loop' method. + + + + + Cached name for the '_instantiate_playback' method. + + + + + Cached name for the '_is_monophonic' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'is_monophonic' method. + + + + + Cached name for the 'instantiate_playback' method. + + + + + Cached name for the 'can_be_sampled' method. + + + + + Cached name for the 'generate_sample' method. + + + + + Cached name for the 'is_meta_stream' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'parameter_list_changed' signal. + + + + + 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 . + Here's a sample on how to use it to generate a sine wave: + + [Export] public AudioStreamPlayer Player { get; set; } + + private AudioStreamGeneratorPlayback _playback; // Will hold the AudioStreamGeneratorPlayback. + private float _sampleHz; + private float _pulseHz = 440.0f; // The frequency of the sound wave. + + public override void _Ready() + { + if (Player.Stream is AudioStreamGenerator generator) // Type as a generator to access MixRate. + { + _sampleHz = generator.MixRate; + Player.Play(); + _playback = (AudioStreamGeneratorPlayback)Player.GetStreamPlayback(); + FillBuffer(); + } + } + + public void FillBuffer() + { + double phase = 0.0; + float increment = _pulseHz / _sampleHz; + int framesAvailable = _playback.GetFramesAvailable(); + + for (int i = 0; i < framesAvailable; i++) + { + _playback.PushFrame(Vector2.One * (float)Mathf.Sin(phase * Mathf.Tau)); + phase = Mathf.PosMod(phase + increment, 1.0); + } + } + + In the example above, the "AudioStreamPlayer" node must use an as its stream. The fill_buffer function provides audio data for approximating a sine wave. + See also for performing real-time audio spectrum analysis. + Note: Due to performance constraints, this class is best used from C# or from a compiled language via GDExtension. If you still want to use this class from GDScript, consider using a lower such as 11,025 Hz or 22,050 Hz. + + + + + The sample rate to use (in Hz). Higher values are more demanding for the CPU to generate, but result in better quality. + In games, common sample rates in use are 11025, 16000, 22050, 32000, 44100, and 48000. + According to the Nyquist-Shannon sampling theorem, there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are generating lower-pitched sounds such as voices, lower sample rates such as 32000 or 22050 may be usable with no loss in quality. + + + + + The length of the buffer to generate (in seconds). Lower values result in less latency, but require the script to generate audio data faster, resulting in increased CPU usage and more risk for audio cracking if the CPU can't keep up. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mix_rate' property. + + + + + Cached name for the 'buffer_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mix_rate' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'set_buffer_length' method. + + + + + Cached name for the 'get_buffer_length' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is meant to be used with to play back the generated audio in real-time. + + + + + Pushes a single audio data frame to the buffer. This is usually less efficient than in C# and compiled languages via GDExtension, but may be more efficient in GDScript. + + + + + Returns if a buffer of the size can be pushed to the audio sample data buffer without overflowing it, otherwise. + + + + + Pushes several audio data frames to the buffer. This is usually more efficient than in C# and compiled languages via GDExtension, but may be less efficient in GDScript. + + + + + Pushes several audio data frames to the buffer. This is usually more efficient than in C# and compiled languages via GDExtension, but may be less efficient in GDScript. + + + + + Returns the number of frames that can be pushed to the audio sample data buffer without overflowing it. If the result is 0, the buffer is full. + + + + + Returns the number of times the playback skipped due to a buffer underrun in the audio sample data. This value is reset at the start of the playback. + + + + + Clears the audio sample data buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'push_frame' method. + + + + + Cached name for the 'can_push_buffer' method. + + + + + Cached name for the 'push_buffer' method. + + + + + Cached name for the 'get_frames_available' method. + + + + + Cached name for the 'get_skips' method. + + + + + Cached name for the 'clear_buffer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is an audio stream that can playback music interactively, combining clips and a transition table. Clips must be added first, and then the transition rules via the . Additionally, this stream exports a property parameter to control the playback via , , or . + The way this is used is by filling a number of clips, then configuring the transition table. From there, clips are selected for playback and the music will smoothly go from the current to the new one while using the corresponding transition rule defined in the transition table. + + + + + This constant describes that any clip is valid for a specific transition as either source or destination. + + + + + Start transition as soon as possible, don't wait for any specific time position. + + + + + Transition when the clip playback position reaches the next beat. + + + + + Transition when the clip playback position reaches the next bar. + + + + + Transition when the current clip finished playing. + + + + + Transition to the same position in the destination clip. This is useful when both clips have exactly the same length and the music should fade between them. + + + + + Transition to the start of the destination clip. + + + + + Do not use fade for the transition. This is useful when transitioning from a clip-end to clip-beginning, and each clip has their begin/end. + + + + + Use a fade-in in the next clip, let the current clip finish. + + + + + Use a fade-out in the current clip, the next clip will start by itself. + + + + + Use a cross-fade between clips. + + + + + Use automatic fade logic depending on the transition from/to. It is recommended to use this by default. + + + + + Disable auto-advance (default). + + + + + Enable auto-advance, a clip must be specified. + + + + + Enable auto-advance, but instead of specifying a clip, the playback will return to hold (see ). + + + + + Amount of clips contained in this interactive player. + + + + + Index of the initial clip, which will be played first when this stream is played. + + + + + Set the name of the current clip (for easier identification). + + + + + Return the name of a clip. + + + + + Set the associated with the current clip. + + + + + Return the associated with a clip. + + + + + Set whether a clip will auto-advance by changing the auto-advance mode. + + + + + Return whether a clip has auto-advance enabled. See . + + + + + Set the index of the next clip towards which this clip will auto advance to when finished. If the clip being played loops, then auto-advance will be ignored. + + + + + Return the clip towards which the clip referenced by will auto-advance to. + + + + + Add a transition between two clips. Provide the indices of the source and destination clips, or use the constant to indicate that transition happens to/from any clip to this one. + * indicates the moment in the current clip the transition will begin after triggered. + * indicates the time in the next clip that the playback will start from. + * indicates how the fade will happen between clips. If unsure, just use which uses the most common type of fade for each situation. + * indicates how many beats the fade will take. Using decimals is allowed. + * indicates that there will be a filler clip used between the source and destination clips. + * the index of the filler clip. + * If is used, then this clip will be remembered. This can be used together with to return to this clip after another is done playing. + + + + + Returns if a given transition exists (was added via ). + + + + + Erase a transition by providing and clip indices. can be used for either argument or both. + + + + + Return the list of transitions (from, to interleaved). + + + + + Return the source time position for a transition (see ). + + + + + Return the destination time position for a transition (see ). + + + + + Return the mode for a transition (see ). + + + + + Return the time (in beats) for a transition (see ). + + + + + Return whether a transition uses the filler clip functionality (see ). + + + + + Return the filler clip for a transition (see ). + + + + + Return whether a transition uses the hold previous functionality (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'clip_count' property. + + + + + Cached name for the 'initial_clip' property. + + + + + Cached name for the '_transitions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_clip_count' method. + + + + + Cached name for the 'get_clip_count' method. + + + + + Cached name for the 'set_initial_clip' method. + + + + + Cached name for the 'get_initial_clip' method. + + + + + Cached name for the 'set_clip_name' method. + + + + + Cached name for the 'get_clip_name' method. + + + + + Cached name for the 'set_clip_stream' method. + + + + + Cached name for the 'get_clip_stream' method. + + + + + Cached name for the 'set_clip_auto_advance' method. + + + + + Cached name for the 'get_clip_auto_advance' method. + + + + + Cached name for the 'set_clip_auto_advance_next_clip' method. + + + + + Cached name for the 'get_clip_auto_advance_next_clip' method. + + + + + Cached name for the 'add_transition' method. + + + + + Cached name for the 'has_transition' method. + + + + + Cached name for the 'erase_transition' method. + + + + + Cached name for the 'get_transition_list' method. + + + + + Cached name for the 'get_transition_from_time' method. + + + + + Cached name for the 'get_transition_to_time' method. + + + + + Cached name for the 'get_transition_fade_mode' method. + + + + + Cached name for the 'get_transition_fade_beats' method. + + + + + Cached name for the 'is_transition_using_filler_clip' method. + + + + + Cached name for the 'get_transition_filler_clip' method. + + + + + Cached name for the 'is_transition_holding_previous' method. + + + + + Cached name for the '_set_transitions' method. + + + + + Cached name for the '_get_transitions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MP3 audio stream driver. See if you want to load an MP3 file at run-time. + + + + + Contains the audio data in bytes. + You can load a file without having to import it beforehand using the code snippet below. Keep in mind that this snippet loads the whole file into memory and may not be ideal for huge files (hundreds of megabytes or more). + + public AudioStreamMP3 LoadMP3(string path) + { + using var file = FileAccess.Open(path, FileAccess.ModeFlags.Read); + var sound = new AudioStreamMP3(); + sound.Data = file.GetBuffer(file.GetLength()); + return sound; + } + + + + + + If , the stream will automatically loop when it reaches the end. + + + + + Time in seconds at which the stream starts after being looped. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'bpm' property. + + + + + Cached name for the 'beat_count' property. + + + + + Cached name for the 'bar_beats' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'loop_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_loop_offset' method. + + + + + Cached name for the 'get_loop_offset' method. + + + + + Cached name for the 'set_bpm' method. + + + + + Cached name for the 'get_bpm' method. + + + + + Cached name for the 'set_beat_count' method. + + + + + Cached name for the 'get_beat_count' method. + + + + + Cached name for the 'set_bar_beats' method. + + + + + Cached name for the 'get_bar_beats' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + When used directly in an node, plays back microphone input in real-time. This can be used in conjunction with to process the data or save it. + Note: ProjectSettings.audio/driver/enable_input must be for audio input to work. See also that setting's description for caveats related to permissions and operating system privacy settings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The AudioStreamOggVorbis class is a specialized 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 class. + + + + + Contains the raw Ogg data for this stream. + + + + + If , the audio will play again from the specified once it is done playing. Useful for ambient sounds and background music. + + + + + Time in seconds at which the stream starts after being looped. + + + + + Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer must contain Ogg Vorbis data. + + + + + Creates a new AudioStreamOggVorbis instance from the given buffer. The buffer must contain Ogg Vorbis data. + + + + + Creates a new AudioStreamOggVorbis instance from the given file path. The file must be in Ogg Vorbis format. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'packet_sequence' property. + + + + + Cached name for the 'bpm' property. + + + + + Cached name for the 'beat_count' property. + + + + + Cached name for the 'bar_beats' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'loop_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_from_buffer' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached name for the 'set_packet_sequence' method. + + + + + Cached name for the 'get_packet_sequence' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_loop_offset' method. + + + + + Cached name for the 'get_loop_offset' method. + + + + + Cached name for the 'set_bpm' method. + + + + + Cached name for the 'get_bpm' method. + + + + + Cached name for the 'set_beat_count' method. + + + + + Cached name for the 'get_beat_count' method. + + + + + Cached name for the 'set_bar_beats' method. + + + + + Cached name for the 'get_bar_beats' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Can play, loop, pause a scroll through audio. See and for usage. + + + + + Overridable method. Should return how many times this audio stream has looped. Most built-in playbacks always return 0. + + + + + Return the current value of a playback parameter by name (see ). + + + + + Overridable method. Should return the current progress along the audio stream, in seconds. + + + + + Overridable method. Should return if this playback is active and playing its audio stream. + + + + + Override this method to customize what happens when seeking this audio stream at the given , such as by calling . + + + + + Set the current value of a playback parameter by name (see ). + + + + + Override this method to customize what happens when the playback starts at the given position, such as by calling . + + + + + Override this method to customize what happens when the playback is stopped, such as by calling . + + + + + Overridable method. Called whenever the audio stream is mixed if the playback is active and has been set to . Editor plugins may use this method to "tag" the current position along the audio stream and display it in a preview. + + + + + Associates to this for playing back the audio sample of this stream. + + + + + Returns the associated with this for playing back the audio sample of this stream. + + + + + Mixes up to of audio from the stream from the current position, at a rate of , advancing the stream. + Returns a [] where each element holds the left and right channel volume levels of each frame. + Note: Can return fewer frames than requested, make sure to use the size of the return value. + + + + + Starts the stream from the given , in seconds. + + + + + Seeks the stream at the given , in seconds. + + + + + Stops the stream. + + + + + Returns the number of times the stream has looped. + + + + + Returns the current position in the stream, in seconds. + + + + + Returns if the stream is playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_loop_count' method. + + + + + Cached name for the '_get_parameter' method. + + + + + Cached name for the '_get_playback_position' method. + + + + + Cached name for the '_is_playing' method. + + + + + Cached name for the '_seek' method. + + + + + Cached name for the '_set_parameter' method. + + + + + Cached name for the '_start' method. + + + + + Cached name for the '_stop' method. + + + + + Cached name for the '_tag_used_streams' method. + + + + + Cached name for the 'set_sample_playback' method. + + + + + Cached name for the 'get_sample_playback' method. + + + + + Cached name for the 'mix_audio' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'get_loop_count' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Playback component of . Contains functions to change the currently played clip. + + + + + Switch to a clip (by name). + + + + + Switch to a clip (by index). + + + + + Return the index of the currently playing clip. You can use this to get the name of the currently playing clip with . + Example: Get the currently playing clip name from inside an node. + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'switch_to_clip_by_name' method. + + + + + Cached name for the 'switch_to_clip' method. + + + + + Cached name for the 'get_current_clip_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Playback instance for . After setting the stream property of , , or , the playback instance can be obtained by calling , or methods. + + + + + Returned by in case it could not allocate a stream for playback. + + + + + Play an at a given offset, volume, pitch scale, playback type, and bus. Playback starts immediately. + The return value is a unique integer ID that is associated to this playback stream and which can be used to control it. + This ID becomes invalid when the stream ends (if it does not loop), when the is stopped, or when is called. + This function returns if the amount of streams currently playing equals . If you need a higher amount of maximum polyphony, raise this value. + + + + + Change the stream volume (in db). The argument is an integer ID returned by . + + + + + Change the stream pitch scale. The argument is an integer ID returned by . + + + + + Returns if the stream associated with the given integer ID is still playing. Check for information on when this ID becomes invalid. + + + + + Stop a stream. The argument is an integer ID returned by , which becomes invalid after calling this function. + + + + + Play an at a given offset, volume, pitch scale, playback type, and bus. Playback starts immediately. + The return value is a unique integer ID that is associated to this playback stream and which can be used to control it. + This ID becomes invalid when the stream ends (if it does not loop), when the is stopped, or when is called. + This function returns if the amount of streams currently playing equals . If you need a higher amount of maximum polyphony, raise this value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'play_stream' method. + + + + + Cached name for the 'set_stream_volume' method. + + + + + Cached name for the 'set_stream_pitch_scale' method. + + + + + Cached name for the 'is_stream_playing' method. + + + + + Cached name for the 'stop_stream' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_stream_sampling_rate' method. + + + + + Cached name for the 'begin_resample' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node plays an audio stream non-positionally. It is ideal for user interfaces, menus, or background music. + To use this node, needs to be set to a valid resource. Playing more than one sound at the same time is also supported, see . + If you need to play audio at a specific position, use or instead. + + + + + The audio will be played only on the first channel. This is the default. + + + + + The audio will be played on all surround channels. + + + + + The audio will be played on the second channel, which is usually the center. + + + + + The resource to be played. Setting this property stops all currently playing sounds. If left empty, the does not work. + + + + + Volume of sound, in decibel. This is an offset of the 's volume. + Note: To convert between decibel and linear energy (like most volume sliders do), use @GlobalScope.db_to_linear and @GlobalScope.linear_to_db. + + + + + The audio's pitch and tempo, as a multiplier of the 's sample rate. A value of 2.0 doubles the audio's pitch, while a value of 0.5 halves the pitch. + + + + + If , this node is playing sounds. Setting this property has the same effect as and . + + + + + If , this node calls when entering the tree. + + + + + If , the sounds are paused. Setting to resumes all sounds. + Note: This property is automatically changed when exiting or entering the tree, or this node is paused (see ). + + + + + The mix target channels, as one of the constants. Has no effect when two speakers or less are detected (see ). + + + + + The maximum number of sounds this node can play at the same time. Calling after this value is reached will cut off the oldest sounds. + + + + + The target bus name. All sounds from this node will be playing on this bus. + Note: At runtime, if no bus with the given name exists, all sounds will fall back on "Master". See also . + + + + + The playback type of the stream player. If set other than to the default value, it will force that playback type. + + + + + Plays a sound from the beginning, or the given in seconds. + + + + + Restarts all sounds to be played from the given , in seconds. Does nothing if no sounds are playing. + + + + + Stops all sounds from this node. + + + + + Returns the position in the of the latest sound, in seconds. Returns 0.0 if no sounds are playing. + Note: The position is not always accurate, as the does not mix audio every processed frame. To get more accurate results, add to the returned position. + Note: This method always returns 0.0 if the is an , since it can have multiple clips playing at once. + + + + + Returns if any sound is active, even if is set to . See also and . + + + + + Returns the latest of this node, usually the most recently created by . If no sounds are playing, this method fails and returns an empty playback. + + + + + Emitted when a sound finishes playing without interruptions. This signal is not emitted when calling , or when exiting the tree while sounds are playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'playing' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'stream_paused' property. + + + + + Cached name for the 'mix_target' property. + + + + + Cached name for the 'max_polyphony' property. + + + + + Cached name for the 'bus' property. + + + + + Cached name for the 'playback_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'is_autoplay_enabled' method. + + + + + Cached name for the 'set_mix_target' method. + + + + + Cached name for the 'get_mix_target' method. + + + + + Cached name for the 'set_playing' method. + + + + + Cached name for the 'set_stream_paused' method. + + + + + Cached name for the 'get_stream_paused' method. + + + + + Cached name for the 'set_max_polyphony' method. + + + + + Cached name for the 'get_max_polyphony' method. + + + + + Cached name for the 'has_stream_playback' method. + + + + + Cached name for the 'get_stream_playback' method. + + + + + Cached name for the 'set_playback_type' method. + + + + + Cached name for the 'get_playback_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 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 node to the scene and enabling it by calling on it. + See also to play a sound non-positionally. + Note: Hiding an node does not disable its audio output. To temporarily disable an 's audio output, set to a very low value like -100 (which isn't audible to human hearing). + + + + + The object to be played. + + + + + Base volume before attenuation. + + + + + The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate. + + + + + If , audio is playing or is queued to be played (see ). + + + + + If , audio plays when added to scene tree. + + + + + If , the playback is paused. You can resume it by setting to . + + + + + Maximum distance from which audio is still hearable. + + + + + The volume is attenuated over distance with this as an exponent. + + + + + The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds. + + + + + Scales the panning strength for this node by multiplying the base ProjectSettings.audio/general/2d_panning_strength with this factor. Higher values will pan audio from left to right more dramatically than lower values. + + + + + Bus on which this audio is playing. + Note: When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to "Master". + + + + + Determines which layers affect the sound for reverb and audio bus effects. Areas can be used to redirect s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater. + + + + + The playback type of the stream player. If set other than to the default value, it will force that playback type. + + + + + Queues the audio to play on the next physics frame, from the given position , in seconds. + + + + + Sets the position from which audio will be played, in seconds. + + + + + Stops the audio. + + + + + Returns the position in the . + + + + + Returns whether the can return the object or not. + + + + + Returns the object associated with this . + + + + + Emitted when the audio stops playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'playing' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'stream_paused' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached name for the 'attenuation' property. + + + + + Cached name for the 'max_polyphony' property. + + + + + Cached name for the 'panning_strength' property. + + + + + Cached name for the 'bus' property. + + + + + Cached name for the 'area_mask' property. + + + + + Cached name for the 'playback_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'is_autoplay_enabled' method. + + + + + Cached name for the 'set_playing' method. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached name for the 'set_attenuation' method. + + + + + Cached name for the 'get_attenuation' method. + + + + + Cached name for the 'set_area_mask' method. + + + + + Cached name for the 'get_area_mask' method. + + + + + Cached name for the 'set_stream_paused' method. + + + + + Cached name for the 'get_stream_paused' method. + + + + + Cached name for the 'set_max_polyphony' method. + + + + + Cached name for the 'get_max_polyphony' method. + + + + + Cached name for the 'set_panning_strength' method. + + + + + Cached name for the 'get_panning_strength' method. + + + + + Cached name for the 'has_stream_playback' method. + + + + + Cached name for the 'get_stream_playback' method. + + + + + Cached name for the 'set_playback_type' method. + + + + + Cached name for the 'get_playback_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 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 to 20500. + By default, audio is heard from the camera position. This can be changed by adding an node to the scene and enabling it by calling on it. + See also to play a sound non-positionally. + Note: Hiding an node does not disable its audio output. To temporarily disable an 's audio output, set to a very low value like -100 (which isn't audible to human hearing). + + + + + Attenuation of loudness according to linear distance. + + + + + Attenuation of loudness according to squared distance. + + + + + Attenuation of loudness according to logarithmic distance. + + + + + No attenuation of loudness according to distance. The sound will still be heard positionally, unlike an . can be combined with a value greater than 0.0 to achieve linear attenuation clamped to a sphere of a defined size. + + + + + Disables doppler tracking. + + + + + Executes doppler tracking during process frames (see ). + + + + + Executes doppler tracking during physics frames (see ). + + + + + The resource to be played. + + + + + Decides if audio should get quieter with distance linearly, quadratically, logarithmically, or not be affected by distance, effectively disabling attenuation. + + + + + The base sound level before attenuation, in decibels. + + + + + The factor for the attenuation effect. Higher values make the sound audible over a larger distance. + + + + + Sets the absolute maximum of the sound level, in decibels. + + + + + The pitch and the tempo of the audio, as a multiplier of the audio sample's sample rate. + + + + + If , audio is playing or is queued to be played (see ). + + + + + If , audio plays when the AudioStreamPlayer3D node is added to scene tree. + + + + + If , the playback is paused. You can resume it by setting to . + + + + + The distance past which the sound can no longer be heard at all. Only has an effect if set to a value greater than 0.0. works in tandem with . However, unlike whose behavior depends on the , always works in a linear fashion. This can be used to prevent the from requiring audio mixing when the listener is far away, which saves CPU resources. + + + + + The maximum number of sounds this node can play at the same time. Playing additional sounds after this value is reached will cut off the oldest sounds. + + + + + Scales the panning strength for this node by multiplying the base ProjectSettings.audio/general/3d_panning_strength with this factor. Higher values will pan audio from left to right more dramatically than lower values. + + + + + The bus on which this audio is playing. + Note: When setting this property, keep in mind that no validation is performed to see if the given name matches an existing bus. This is because audio bus layouts might be loaded after this property is set. If this given name can't be resolved at runtime, it will fall back to "Master". + + + + + Determines which layers affect the sound for reverb and audio bus effects. Areas can be used to redirect s so that they play in a certain audio bus. An example of how you might use this is making a "water" area so that sounds played in the water are redirected through an audio bus to make them sound like they are being played underwater. + + + + + The playback type of the stream player. If set other than to the default value, it will force that playback type. + + + + + If , the audio should be attenuated according to the direction of the sound. + + + + + The angle in which the audio reaches a listener unattenuated. + + + + + Attenuation factor used if listener is outside of and is set, in decibels. + + + + + The cutoff frequency of the attenuation low-pass filter, in Hz. A sound above this frequency is attenuated more than a sound below this frequency. To disable this effect, set this to 20500 as this frequency is above the human hearing limit. + + + + + Amount how much the filter affects the loudness, in decibels. + + + + + Decides in which step the Doppler effect should be calculated. + + + + + Queues the audio to play on the next physics frame, from the given position , in seconds. + + + + + Sets the position from which audio will be played, in seconds. + + + + + Stops the audio. + + + + + Returns the position in the . + + + + + Returns whether the can return the object or not. + + + + + Returns the object associated with this . + + + + + Emitted when the audio stops playing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'attenuation_model' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'unit_size' property. + + + + + Cached name for the 'max_db' property. + + + + + Cached name for the 'pitch_scale' property. + + + + + Cached name for the 'playing' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'stream_paused' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached name for the 'max_polyphony' property. + + + + + Cached name for the 'panning_strength' property. + + + + + Cached name for the 'bus' property. + + + + + Cached name for the 'area_mask' property. + + + + + Cached name for the 'playback_type' property. + + + + + Cached name for the 'emission_angle_enabled' property. + + + + + Cached name for the 'emission_angle_degrees' property. + + + + + Cached name for the 'emission_angle_filter_attenuation_db' property. + + + + + Cached name for the 'attenuation_filter_cutoff_hz' property. + + + + + Cached name for the 'attenuation_filter_db' property. + + + + + Cached name for the 'doppler_tracking' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_unit_size' method. + + + + + Cached name for the 'get_unit_size' method. + + + + + Cached name for the 'set_max_db' method. + + + + + Cached name for the 'get_max_db' method. + + + + + Cached name for the 'set_pitch_scale' method. + + + + + Cached name for the 'get_pitch_scale' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'get_playback_position' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'is_autoplay_enabled' method. + + + + + Cached name for the 'set_playing' method. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached name for the 'set_area_mask' method. + + + + + Cached name for the 'get_area_mask' method. + + + + + Cached name for the 'set_emission_angle' method. + + + + + Cached name for the 'get_emission_angle' method. + + + + + Cached name for the 'set_emission_angle_enabled' method. + + + + + Cached name for the 'is_emission_angle_enabled' method. + + + + + Cached name for the 'set_emission_angle_filter_attenuation_db' method. + + + + + Cached name for the 'get_emission_angle_filter_attenuation_db' method. + + + + + Cached name for the 'set_attenuation_filter_cutoff_hz' method. + + + + + Cached name for the 'get_attenuation_filter_cutoff_hz' method. + + + + + Cached name for the 'set_attenuation_filter_db' method. + + + + + Cached name for the 'get_attenuation_filter_db' method. + + + + + Cached name for the 'set_attenuation_model' method. + + + + + Cached name for the 'get_attenuation_model' method. + + + + + Cached name for the 'set_doppler_tracking' method. + + + + + Cached name for the 'get_doppler_tracking' method. + + + + + Cached name for the 'set_stream_paused' method. + + + + + Cached name for the 'get_stream_paused' method. + + + + + Cached name for the 'set_max_polyphony' method. + + + + + Cached name for the 'get_max_polyphony' method. + + + + + Cached name for the 'set_panning_strength' method. + + + + + Cached name for the 'get_panning_strength' method. + + + + + Cached name for the 'has_stream_playback' method. + + + + + Cached name for the 'get_stream_playback' method. + + + + + Cached name for the 'set_playback_type' method. + + + + + Cached name for the 'get_playback_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + Maximum amount of streams supported in the playlist. + + + + + If , the playlist will shuffle each time playback starts and each time it loops. + + + + + If , the playlist will loop, otherwise the playlist will end when the last stream is finished. + + + + + Fade time used when a stream ends, when going to the next one. Streams are expected to have an extra bit of audio after the end to help with fading. + + + + + Amount of streams in the playlist. + + + + + Returns the BPM of the playlist, which can vary depending on the clip being played. + + + + + Sets the stream at playback position index. + + + + + Returns the stream at playback position index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shuffle' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'fade_time' property. + + + + + Cached name for the 'stream_count' property. + + + + + Cached name for the 'stream_0' property. + + + + + Cached name for the 'stream_1' property. + + + + + Cached name for the 'stream_2' property. + + + + + Cached name for the 'stream_3' property. + + + + + Cached name for the 'stream_4' property. + + + + + Cached name for the 'stream_5' property. + + + + + Cached name for the 'stream_6' property. + + + + + Cached name for the 'stream_7' property. + + + + + Cached name for the 'stream_8' property. + + + + + Cached name for the 'stream_9' property. + + + + + Cached name for the 'stream_10' property. + + + + + Cached name for the 'stream_11' property. + + + + + Cached name for the 'stream_12' property. + + + + + Cached name for the 'stream_13' property. + + + + + Cached name for the 'stream_14' property. + + + + + Cached name for the 'stream_15' property. + + + + + Cached name for the 'stream_16' property. + + + + + Cached name for the 'stream_17' property. + + + + + Cached name for the 'stream_18' property. + + + + + Cached name for the 'stream_19' property. + + + + + Cached name for the 'stream_20' property. + + + + + Cached name for the 'stream_21' property. + + + + + Cached name for the 'stream_22' property. + + + + + Cached name for the 'stream_23' property. + + + + + Cached name for the 'stream_24' property. + + + + + Cached name for the 'stream_25' property. + + + + + Cached name for the 'stream_26' property. + + + + + Cached name for the 'stream_27' property. + + + + + Cached name for the 'stream_28' property. + + + + + Cached name for the 'stream_29' property. + + + + + Cached name for the 'stream_30' property. + + + + + Cached name for the 'stream_31' property. + + + + + Cached name for the 'stream_32' property. + + + + + Cached name for the 'stream_33' property. + + + + + Cached name for the 'stream_34' property. + + + + + Cached name for the 'stream_35' property. + + + + + Cached name for the 'stream_36' property. + + + + + Cached name for the 'stream_37' property. + + + + + Cached name for the 'stream_38' property. + + + + + Cached name for the 'stream_39' property. + + + + + Cached name for the 'stream_40' property. + + + + + Cached name for the 'stream_41' property. + + + + + Cached name for the 'stream_42' property. + + + + + Cached name for the 'stream_43' property. + + + + + Cached name for the 'stream_44' property. + + + + + Cached name for the 'stream_45' property. + + + + + Cached name for the 'stream_46' property. + + + + + Cached name for the 'stream_47' property. + + + + + Cached name for the 'stream_48' property. + + + + + Cached name for the 'stream_49' property. + + + + + Cached name for the 'stream_50' property. + + + + + Cached name for the 'stream_51' property. + + + + + Cached name for the 'stream_52' property. + + + + + Cached name for the 'stream_53' property. + + + + + Cached name for the 'stream_54' property. + + + + + Cached name for the 'stream_55' property. + + + + + Cached name for the 'stream_56' property. + + + + + Cached name for the 'stream_57' property. + + + + + Cached name for the 'stream_58' property. + + + + + Cached name for the 'stream_59' property. + + + + + Cached name for the 'stream_60' property. + + + + + Cached name for the 'stream_61' property. + + + + + Cached name for the 'stream_62' property. + + + + + Cached name for the 'stream_63' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream_count' method. + + + + + Cached name for the 'get_stream_count' method. + + + + + Cached name for the 'get_bpm' method. + + + + + Cached name for the 'set_list_stream' method. + + + + + Cached name for the 'get_list_stream' method. + + + + + Cached name for the 'set_shuffle' method. + + + + + Cached name for the 'get_shuffle' method. + + + + + Cached name for the 'set_fade_time' method. + + + + + Cached name for the 'get_fade_time' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + AudioStream that lets the user play custom streams at any time from code, simultaneously using a single player. + Playback control is done via the instance set inside the player, which can be obtained via , or methods. Obtaining the playback instance is only valid after the stream property is set as an in those players. + + + + + Maximum amount of simultaneous streams that can be played. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'polyphony' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polyphony' method. + + + + + Cached name for the 'get_polyphony' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Picks a random AudioStream from the pool, depending on the playback mode, and applies random pitch shifting and volume shifting during playback. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Controls how this AudioStreamRandomizer picks which AudioStream to play next. + + + + + The intensity of random pitch variation. A value of 1 means no variation. + + + + + The intensity of random volume variation. A value of 0 means no variation. + + + + + The number of streams in the stream pool. + + + + + Insert a stream at the specified index. If the index is less than zero, the insertion occurs at the end of the underlying pool. + + + + + Move a stream from one index to another. + + + + + Remove the stream at the specified index. + + + + + Set the AudioStream at the specified index. + + + + + Returns the stream at the specified index. + + + + + Set the probability weight of the stream at the specified index. The higher this value, the more likely that the randomizer will choose this stream during random playback modes. + + + + + Returns the probability weight associated with the stream at the given index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'playback_mode' property. + + + + + Cached name for the 'random_pitch' property. + + + + + Cached name for the 'random_volume_offset_db' property. + + + + + Cached name for the 'streams_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_stream' method. + + + + + Cached name for the 'move_stream' method. + + + + + Cached name for the 'remove_stream' method. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'set_stream_probability_weight' method. + + + + + Cached name for the 'get_stream_probability_weight' method. + + + + + Cached name for the 'set_streams_count' method. + + + + + Cached name for the 'get_streams_count' method. + + + + + Cached name for the 'set_random_pitch' method. + + + + + Cached name for the 'get_random_pitch' method. + + + + + Cached name for the 'set_random_volume_offset_db' method. + + + + + Cached name for the 'get_random_volume_offset_db' method. + + + + + Cached name for the 'set_playback_mode' method. + + + + + Cached name for the 'get_playback_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a stream that can be fitted with sub-streams, which will be played in-sync. The streams being at exactly the same time when play is pressed, and will end when the last of them ends. If one of the sub-streams loops, then playback will continue. + + + + + Maximum amount of streams that can be synchronized. + + + + + Set the total amount of streams that will be played back synchronized. + + + + + Set one of the synchronized streams, by index. + + + + + Get one of the synchronized streams, by index. + + + + + Set the volume of one of the synchronized streams, by index. + + + + + Get the volume of one of the synchronized streams, by index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stream_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream_count' method. + + + + + Cached name for the 'get_stream_count' method. + + + + + Cached name for the 'set_sync_stream' method. + + + + + Cached name for the 'get_sync_stream' method. + + + + + Cached name for the 'set_sync_stream_volume' method. + + + + + Cached name for the 'get_sync_stream_volume' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + AudioStreamWAV stores sound samples loaded from WAV files. To play the stored sound, use an (for non-positional audio) or / (for positional audio). The sound can be looped. + This class can also be used to store dynamically-generated PCM audio data. See also for procedural audio generation. + + + + + 8-bit PCM audio codec. + + + + + 16-bit PCM audio codec. + + + + + Audio is lossily compressed as IMA ADPCM. + + + + + Audio is lossily compressed as Quite OK Audio. + + + + + Audio does not loop. + + + + + Audio loops the data between and , playing forward only. + + + + + Audio loops the data between and , playing back and forth. + + + + + Audio loops the data between and , playing backward only. + + + + + Contains the audio data in bytes. + Note: If is set to , this property expects signed 8-bit PCM data. To convert from unsigned 8-bit PCM, subtract 128 from each byte. + Note: If is set to , this property expects data from a full QOA file. + + + + + Audio format. See constants for values. + + + + + The loop mode. See constants for values. + + + + + The loop start point (in number of samples, relative to the beginning of the stream). + + + + + The loop end point (in number of samples, relative to the beginning of the stream). + + + + + The sample rate for mixing this audio. Higher values require more storage space, but result in better quality. + In games, common sample rates in use are 11025, 16000, 22050, 32000, 44100, and 48000. + According to the Nyquist-Shannon sampling theorem, there is no quality difference to human hearing when going past 40,000 Hz (since most humans can only hear up to ~20,000 Hz, often less). If you are using lower-pitched sounds such as voices, lower sample rates such as 32000 or 22050 may be usable with no loss in quality. + + + + + If , audio is stereo. + + + + + Creates a new instance from the given file path. The keys and values of match the properties of ResourceImporterWav. + Example: Load the first file dropped as a WAV and play it: + + @onready var audio_player = $AudioStreamPlayer + + func _ready(): + get_window().files_dropped.connect(_on_files_dropped) + + func _on_files_dropped(files): + if files[0].get_extension() == "wav": + audio_player.stream = AudioStreamWAV.load_from_file(files[0], { + "force/max_rate": true, + "force/max_rate_hz": 11025 + }) + audio_player.play() + + + + + + Creates a new instance from the given buffer. The keys and values of match the properties of ResourceImporterWav. + The usage of is identical to . + + + + + Creates a new instance from the given buffer. The keys and values of match the properties of ResourceImporterWav. + The usage of is identical to . + + + + + Saves the AudioStreamWAV as a WAV file to . Samples with IMA ADPCM or Quite OK Audio formats can't be saved. + Note: A .wav extension is automatically appended to if it is missing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'loop_mode' property. + + + + + Cached name for the 'loop_begin' property. + + + + + Cached name for the 'loop_end' property. + + + + + Cached name for the 'mix_rate' property. + + + + + Cached name for the 'stereo' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached name for the 'load_from_buffer' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_loop_mode' method. + + + + + Cached name for the 'get_loop_mode' method. + + + + + Cached name for the 'set_loop_begin' method. + + + + + Cached name for the 'get_loop_begin' method. + + + + + Cached name for the 'set_loop_end' method. + + + + + Cached name for the 'get_loop_end' method. + + + + + Cached name for the 'set_mix_rate' method. + + + + + Cached name for the 'get_mix_rate' method. + + + + + Cached name for the 'set_stereo' method. + + + + + Cached name for the 'is_stereo' method. + + + + + Cached name for the 'save_to_wav' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node for back-buffering the currently-displayed screen. The region defined in the node is buffered with the content of the screen it covers, or the entire screen according to the . It can be accessed in shader scripts using the screen texture (i.e. a uniform sampler with hint_screen_texture). + Note: Since this node inherits from (and not ), anchors and margins won't apply to child -derived nodes. This can be problematic when resizing the window. To avoid this, add -derived nodes as siblings to the node instead of adding them as children. + + + + + Disables the buffering mode. This means the node will directly use the portion of screen it covers. + + + + + buffers a rectangular region. + + + + + buffers the entire screen. + + + + + Buffer mode. See constants. + + + + + The area covered by the . Only used if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'copy_mode' property. + + + + + Cached name for the 'rect' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rect' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached name for the 'set_copy_mode' method. + + + + + Cached name for the 'get_copy_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for GUI buttons. It doesn't display anything by itself. + + + + + The normal state (i.e. not pressed, not hovered, not toggled and enabled) of buttons. + + + + + The state of buttons are pressed. + + + + + The state of buttons are hovered. + + + + + The state of buttons are disabled. + + + + + The state of buttons are both hovered and pressed. + + + + + Require just a press to consider the button clicked. + + + + + Require a press and a subsequent release before considering the button clicked. + + + + + If , the button is in disabled state and can't be clicked or toggled. + + + + + If , the button is in toggle mode. Makes the button flip state between pressed and unpressed each time its area is clicked. + + + + + If , the button's state is pressed. Means the button is pressed down or toggled (if is active). Only works if is . + Note: Changing the value of will result in to be emitted. If you want to change the pressed state without emitting that signal, use . + + + + + Determines when the button is considered clicked, one of the constants. + + + + + Binary mask to choose which mouse buttons this button will respond to. + To allow both left-click and right-click, use MOUSE_BUTTON_MASK_LEFT | MOUSE_BUTTON_MASK_RIGHT. + + + + + If , the button stays pressed when moving the cursor outside the button while pressing it. + Note: This property only affects the button's visual appearance. Signals will be emitted at the same moment regardless of this property's value. + + + + + The associated with the button. Not to be confused with node groups. + Note: The button will be configured as a radio button if a is assigned to it. + + + + + associated to the button. + + + + + If , the button will highlight for a short amount of time when its shortcut is activated. If and is , the shortcut will activate without any visual feedback. + + + + + If , the button will add information about its shortcut in the tooltip. + Note: This property does nothing when the tooltip control is customized using . + + + + + Called when the button is pressed. If you need to know the button's pressed state (and is active), use instead. + + + + + Called when the button is toggled (only if is active). + + + + + Changes the state of the button, without emitting . Use when you just want to change the state of the button without sending the pressed event (e.g. when initializing scene). Only works if is . + Note: This method doesn't unpress other buttons in . + + + + + Returns if the mouse has entered the button and has not left it yet. + + + + + Returns the visual state used to draw the button. This is useful mainly when implementing your own draw code by either overriding _draw() or connecting to "draw" signal. The visual state of the button is defined by the enum. + + + + + Emitted when the button is toggled or pressed. This is on if is and on otherwise. + If you need to know the button's pressed state (and is active), use instead. + + + + + Emitted when the button stops being held down. + + + + + Emitted when the button starts being held down. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the button was just toggled between pressed and normal states (only if is active). The new state is contained in the toggledOn argument. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'toggle_mode' property. + + + + + Cached name for the 'button_pressed' property. + + + + + Cached name for the 'action_mode' property. + + + + + Cached name for the 'button_mask' property. + + + + + Cached name for the 'keep_pressed_outside' property. + + + + + Cached name for the 'button_group' property. + + + + + Cached name for the 'shortcut' property. + + + + + Cached name for the 'shortcut_feedback' property. + + + + + Cached name for the 'shortcut_in_tooltip' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_pressed' method. + + + + + Cached name for the '_toggled' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'is_pressed' method. + + + + + Cached name for the 'set_pressed_no_signal' method. + + + + + Cached name for the 'is_hovered' method. + + + + + Cached name for the 'set_toggle_mode' method. + + + + + Cached name for the 'is_toggle_mode' method. + + + + + Cached name for the 'set_shortcut_in_tooltip' method. + + + + + Cached name for the 'is_shortcut_in_tooltip_enabled' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_action_mode' method. + + + + + Cached name for the 'get_action_mode' method. + + + + + Cached name for the 'set_button_mask' method. + + + + + Cached name for the 'get_button_mask' method. + + + + + Cached name for the 'get_draw_mode' method. + + + + + Cached name for the 'set_keep_pressed_outside' method. + + + + + Cached name for the 'is_keep_pressed_outside' method. + + + + + Cached name for the 'set_shortcut_feedback' method. + + + + + Cached name for the 'is_shortcut_feedback' method. + + + + + Cached name for the 'set_shortcut' method. + + + + + Cached name for the 'get_shortcut' method. + + + + + Cached name for the 'set_button_group' method. + + + + + Cached name for the 'get_button_group' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + Cached name for the 'button_up' signal. + + + + + Cached name for the 'button_down' signal. + + + + + Cached name for the 'toggled' signal. + + + + + 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. + + + + + Texture specifying per-pixel color. + + + + + Texture specifying per-pixel metallic value. + + + + + Texture specifying per-pixel roughness value. + + + + + Texture specifying per-pixel emission color. + + + + + Texture specifying per-pixel normal vector. + + + + + Texture specifying per-pixel rim value. + + + + + Texture specifying per-pixel clearcoat value. + + + + + Texture specifying per-pixel flowmap direction for use with . + + + + + Texture specifying per-pixel ambient occlusion value. + + + + + Texture specifying per-pixel height. + + + + + Texture specifying per-pixel subsurface scattering. + + + + + Texture specifying per-pixel transmittance for subsurface scattering. + + + + + Texture specifying per-pixel backlight color. + + + + + Texture specifying per-pixel refraction strength. + + + + + Texture specifying per-pixel detail mask blending value. + + + + + Texture specifying per-pixel detail color. + + + + + Texture specifying per-pixel detail normal. + + + + + Texture holding ambient occlusion, roughness, and metallic. + + + + + Represents the size of the enum. + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). This makes the texture look pixelated from up close, and smooth from a distance. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). This makes the texture look smooth from up close, and smooth from a distance. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + Represents the size of the enum. + + + + + Use UV with the detail texture. + + + + + Use UV2 with the detail texture. + + + + + The material will not use transparency. This is the fastest to render. + + + + + The material will use the texture's alpha values for transparency. This is the slowest to render, and disables shadow casting. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Represents the size of the enum. + + + + + The object will not receive shadows. This is the fastest to render, but it disables all interactions with lights. + + + + + The object will be shaded per pixel. Useful for realistic shading effects. + + + + + The object will be shaded per vertex. Useful when you want cheaper shaders and do not care about visual quality. + + + + + Represents the size of the enum. + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Constant for setting . + + + + + Represents the size of the enum. + + + + + Default blend mode. The color of the object is blended over the background based on the object's alpha value. + + + + + The color of the object is added to the background. + + + + + The color of the object is subtracted from the background. + + + + + The color of the object is multiplied by the background. + + + + + The color of the object is added to the background and the alpha channel is used to mask out the background. This is effectively a hybrid of the blend mix and add modes, useful for effects like fire where you want the flame to add but the smoke to mix. By default, this works with unshaded materials using premultiplied textures. For shaded materials, use the PREMUL_ALPHA_FACTOR built-in so that lighting can be modulated as well. + + + + + Disables Alpha AntiAliasing for the material. + + + + + Enables AlphaToCoverage. Alpha values in the material are passed to the AntiAliasing sample mask. + + + + + Enables AlphaToCoverage and forces all non-zero alpha values to 1. Alpha values in the material are passed to the AntiAliasing sample mask. + + + + + Default depth draw mode. Depth is drawn only for opaque objects during the opaque prepass (if any) and during the opaque pass. + + + + + 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. + Note: This does not influence whether transparent objects are included in the depth prepass or not. For that, see . + + + + + Objects will not write their depth to the depth buffer, even during the depth prepass (if enabled). + + + + + 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. + + + + + 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. + + + + + No face culling is performed; both the front face and back face will be visible. + + + + + 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. + + + + + Set ALBEDO to the per-vertex color specified in the mesh. + + + + + Vertex colors are considered to be stored in sRGB color space and are converted to linear color space during rendering. See also . + Note: Only effective when using the Forward+ and Mobile rendering methods. + + + + + Uses point size to alter the size of primitive points. Also changes the albedo texture lookup to use POINT_COORD instead of UV. + + + + + Object is scaled by depth so that it always appears the same size on screen. + + + + + Shader will keep the scale set for the mesh. Otherwise the scale is lost when billboarding. Only applies when is . + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV. + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV2. + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV. + + + + + Use triplanar texture lookup for all texture lookups that would normally use UV2. + + + + + Use UV2 coordinates to look up from the . + + + + + Use UV2 coordinates to look up from the . + + + + + Forces the shader to convert albedo from sRGB space to linear space. See also . + + + + + Disables receiving shadows from other objects. + + + + + Disables receiving ambient light. + + + + + Enables the shadow to opacity feature. + + + + + 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. + + + + + Invert values read from a depth texture to convert them to height values (heightmap). + + + + + Enables the skin mode for subsurface scattering which is used to improve the look of subsurface scattering when used for human skin. + + + + + Enables parts of the shader required for trails to function. This also requires using a mesh with appropriate skinning, such as or . Enabling this feature outside of materials used in meshes will break material rendering. + + + + + Enables multichannel signed distance field rendering shader. + + + + + Disables receiving depth-based or volumetric fog. + + + + + Represents the size of the enum. + + + + + Default diffuse scattering algorithm. + + + + + Diffuse scattering ignores roughness. + + + + + Extends Lambert to cover more than 90 degrees when roughness increases. + + + + + Uses a hard cut for lighting, with smoothing affected by roughness. + + + + + Default specular blob. + + + + + Toon blob which changes size based on roughness. + + + + + No specular blob. This is slightly faster to render than other specular modes. + + + + + Billboard mode is disabled. + + + + + The object's Z axis will always face the camera. + + + + + The object's X axis will always face the camera. + + + + + Used for particle systems when assigned to and nodes (flipbook animation). Enables particles_anim_* properties. + The or should also be set to a value bigger than zero for the animation to play. + + + + + Used to read from the red channel of a texture. + + + + + Used to read from the green channel of a texture. + + + + + Used to read from the blue channel of a texture. + + + + + Used to read from the alpha channel of a texture. + + + + + Used to read from the linear (non-perceptual) average of the red, green and blue channels of a texture. + + + + + Adds the emission color to the color from the emission texture. + + + + + Multiplies the emission color by the color from the emission texture. + + + + + Do not use distance fade. + + + + + Smoothly fades the object out based on each pixel's distance from the camera using the alpha channel. + + + + + 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 . + + + + + 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 and . + + + + + The material's transparency mode. Some transparency modes will disable shadow casting. Any transparency mode other than has a greater performance impact compared to opaque rendering. See also . + + + + + Threshold at which the alpha scissor will discard values. Higher values will result in more pixels being discarded. If the material becomes too opaque at a distance, try increasing . If the material disappears at a distance, try decreasing . + + + + + The hashing scale for Alpha Hash. Recommended values between 0 and 2. + + + + + The type of alpha antialiasing to apply. See . + + + + + Threshold at which antialiasing will be applied on the alpha channel. + + + + + The material's blend mode. + Note: Values other than Mix force the object into the transparent pipeline. See . + + + + + Determines which side of the triangle to cull depending on whether the triangle faces towards or away from the camera. See . + + + + + Determines when depth rendering takes place. See . See also . + + + + + If , depth testing is disabled and the object will be drawn in render order. + + + + + Sets whether the shading takes place, per-pixel, per-vertex or unshaded. Per-vertex lighting is faster, making it the best choice for mobile applications, however it looks considerably worse than per-pixel. Unshaded rendering is the fastest, but disables all interactions with lights. + + + + + The algorithm used for diffuse light scattering. See . + + + + + The method for rendering the specular blob. See . + Note: only applies to the specular blob. It does not affect specular reflections from the sky, screen-space reflections, , SDFGI or s. To disable reflections from these sources as well, set to 0.0 instead. + + + + + If , the object receives no ambient light. + + + + + If , the object will not be affected by fog (neither volumetric nor depth fog). This is useful for unshaded or transparent materials (e.g. particles), which without this setting will be affected even if fully transparent. + + + + + If , the vertex color is used as albedo color. + + + + + If , vertex colors are considered to be stored in sRGB color space and are converted to linear color space during rendering. If , vertex colors are considered to be stored in linear color space and are rendered as-is. See also . + Note: Only effective when using the Forward+ and Mobile rendering methods, not Compatibility. + + + + + The material's base color. + Note: If is and a texture is specified, will not modulate the detail texture. This can be used to color partial areas of a material by not specifying an albedo texture and using a transparent texture instead. + + + + + Texture to multiply by . Used for basic texturing of objects. + If the texture appears unexpectedly too dark or too bright, check . + + + + + If , forces a conversion of the from sRGB color space to linear color space. See also . + This should only be enabled when needed (typically when using a as ). If is when it shouldn't be, the texture will appear to be too dark. If is when it shouldn't be, the texture will appear to be too bright. + + + + + Enables multichannel signed distance field rendering shader. Use and to configure MSDF parameters. + + + + + The Occlusion/Roughness/Metallic texture to use. This is a more efficient replacement of , and in . Ambient occlusion is stored in the red channel. Roughness map is stored in the green channel. Metallic map is stored in the blue channel. The alpha channel is ignored. + + + + + A high value makes the material appear more like a metal. Non-metals use their albedo as the diffuse color and add diffuse to the specular reflection. With non-metals, the reflection appears on top of the albedo color. Metals use their albedo as a multiplier to the specular reflection and set the diffuse color to black resulting in a tinted reflection. Materials work better when fully metal or fully non-metal, values between 0 and 1 should only be used for blending between metal and non-metal sections. To alter the amount of reflection use . + + + + + Adjusts the strength of specular reflections. Specular reflections are composed of scene reflections and the specular lobe which is the bright spot that is reflected from light sources. When set to 0.0, no specular reflections will be visible. This differs from the as only applies to the specular lobe from the light source. + Note: Unlike , this is not energy-conserving, so it should be left at 0.5 in most cases. See also . + + + + + Texture used to specify metallic for an object. This is multiplied by . + + + + + Specifies the channel of the in which the metallic information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + Surface reflection. A value of 0 represents a perfect mirror while a value of 1 completely blurs the reflection. See also . + + + + + Texture used to control the roughness per-pixel. Multiplied by . + + + + + Specifies the channel of the in which the roughness information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + If , the body emits light. Emitting light makes the object appear brighter. The object can also cast light on other objects if a , SDFGI, or is used and this object is used in baked lighting. + + + + + The emitted light's color. See . + + + + + Multiplier for emitted light. See . + + + + + Luminance of emitted light, measured in nits (candela per square meter). Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. The default is roughly equivalent to an indoor lightbulb. + + + + + Sets how interacts with . Can either add or multiply. See for options. + + + + + Use UV2 to read from the . + + + + + Texture that specifies how much surface emits light at a given point. + + + + + If , normal mapping is enabled. This has a slight performance cost, especially on mobile GPUs. + + + + + The strength of the normal map's effect. + + + + + Texture used to specify the normal at a given pixel. The only uses the red and green channels; the blue and alpha channels are ignored. The normal read from is oriented around the surface normal provided by the . + Note: The mesh must have both normals and tangents defined in its vertex data. Otherwise, the normal map won't render correctly and will only appear to darken the whole surface. If creating geometry with , you can use and to automatically generate normals and tangents respectively. + Note: Godot expects the normal map to use X+, Y+, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines. + Note: If is , the texture is drawn below the . To display a normal map above the texture, use instead. + + + + + If , rim effect is enabled. Rim lighting increases the brightness at glancing angles on an object. + Note: Rim lighting is not visible if the material's is . + + + + + Sets the strength of the rim lighting effect. + + + + + The amount of to blend light and albedo color when rendering rim effect. If 0 the light color is used, while 1 means albedo color is used. An intermediate value generally works best. + + + + + Texture used to set the strength of the rim lighting effect per-pixel. Multiplied by . + + + + + If , clearcoat rendering is enabled. Adds a secondary transparent pass to the lighting calculation resulting in an added specular blob. This makes materials appear as if they have a clear layer on them that can be either glossy or rough. + Note: Clearcoat rendering is not visible if the material's is . + + + + + Sets the strength of the clearcoat effect. Setting to 0 looks the same as disabling the clearcoat effect. + + + + + Sets the roughness of the clearcoat pass. A higher value results in a rougher clearcoat while a lower value results in a smoother clearcoat. + + + + + Texture that defines the strength of the clearcoat effect and the glossiness of the clearcoat. Strength is specified in the red channel while glossiness is specified in the green channel. + + + + + If , anisotropy is enabled. Anisotropy changes the shape of the specular blob and aligns it to tangent space. This is useful for brushed aluminum and hair reflections. + Note: Mesh tangents are needed for anisotropy to work. If the mesh does not contain tangents, the anisotropy effect will appear broken. + Note: Material anisotropy should not to be confused with anisotropic texture filtering, which can be enabled by setting to . + + + + + The strength of the anisotropy effect. This is multiplied by 's alpha channel if a texture is defined there and the texture contains an alpha channel. + + + + + Texture that offsets the tangent map for anisotropy calculations and optionally controls the anisotropy effect (if an alpha channel is present). The flowmap texture is expected to be a derivative map, with the red channel representing distortion on the X axis and green channel representing distortion on the Y axis. Values below 0.5 will result in negative distortion, whereas values above 0.5 will result in positive distortion. + If present, the texture's alpha channel will be used to multiply the strength of the effect. Fully opaque pixels will keep the anisotropy effect's original strength while fully transparent pixels will disable the anisotropy effect entirely. The flowmap texture's blue channel is ignored. + + + + + If , ambient occlusion is enabled. Ambient occlusion darkens areas based on the . + + + + + Amount that ambient occlusion affects lighting from lights. If 0, ambient occlusion only affects ambient light. If 1, ambient occlusion affects lights just as much as it affects ambient light. This can be used to impact the strength of the ambient occlusion effect, but typically looks unrealistic. + + + + + Texture that defines the amount of ambient occlusion for a given point on the object. + + + + + If , use UV2 coordinates to look up from the . + + + + + Specifies the channel of the in which the ambient occlusion information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored metallic in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + If , height mapping is enabled (also called "parallax mapping" or "depth mapping"). See also . Height mapping is a demanding feature on the GPU, so it should only be used on materials where it makes a significant visual difference. + Note: Height mapping is not supported if triplanar mapping is used on the same material. The value of will be ignored if is enabled. + + + + + The heightmap scale to use for the parallax effect (see ). The default value is tuned so that the highest point (value = 255) appears to be 5 cm higher than the lowest point (value = 0). Higher values result in a deeper appearance, but may result in artifacts appearing when looking at the material from oblique angles, especially when the camera moves. Negative values can be used to invert the parallax effect, but this is different from inverting the texture using as the material will also appear to be "closer" to the camera. In most cases, should be kept to a positive value. + Note: If the height map effect looks strange regardless of this value, try adjusting and . See also for recommendations on authoring heightmap textures, as the way the heightmap texture is authored affects how behaves. + + + + + If , uses parallax occlusion mapping to represent depth in the material instead of simple offset mapping (see ). This results in a more convincing depth effect, but is much more expensive on the GPU. Only enable this on materials where it makes a significant visual difference. + + + + + The number of layers to use for parallax occlusion mapping when the camera is far away from the material. Higher values result in a more convincing depth effect, especially in materials that have steep height changes. Higher values have a significant cost on the GPU, so it should only be increased on materials where it makes a significant visual difference. + Note: Only effective if is . + + + + + The number of layers to use for parallax occlusion mapping when the camera is up close to the material. Higher values result in a more convincing depth effect, especially in materials that have steep height changes. Higher values have a significant cost on the GPU, so it should only be increased on materials where it makes a significant visual difference. + Note: Only effective if is . + + + + + If , flips the mesh's tangent vectors when interpreting the height map. If the heightmap effect looks strange when the camera moves (even with a reasonable ), try setting this to . + + + + + If , flips the mesh's binormal vectors when interpreting the height map. If the heightmap effect looks strange when the camera moves (even with a reasonable ), try setting this to . + + + + + The texture to use as a height map. See also . + For best results, the texture should be normalized (with reduced to compensate). In GIMP, this can be done using Colors > Auto > Equalize. If the texture only uses a small part of its available range, the parallax effect may look strange, especially when the camera moves. + Note: To reduce memory usage and improve loading times, you may be able to use a lower-resolution heightmap texture as most heightmaps are only comprised of low-frequency data. + + + + + If , interprets the height map texture as a depth map, with brighter values appearing to be "lower" in altitude compared to darker values. + This can be enabled for compatibility with some materials authored for Godot 3.x. This is not necessary if the Invert import option was used to invert the depth map in Godot 3.x, in which case should remain . + + + + + If , subsurface scattering is enabled. Emulates light that penetrates an object's surface, is scattered, and then emerges. Subsurface scattering quality is controlled by ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality. + + + + + The strength of the subsurface scattering effect. The depth of the effect is also controlled by ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale, which is set globally. + + + + + If , subsurface scattering will use a special mode optimized for the color and density of human skin, such as boosting the intensity of the red channel in subsurface scattering. + + + + + Texture used to control the subsurface scattering strength. Stored in the red texture channel. Multiplied by . + + + + + If , enables subsurface scattering transmittance. Only effective if is . See also . + + + + + The color to multiply the subsurface scattering transmittance effect with. Ignored if is . + + + + + The texture to use for multiplying the intensity of the subsurface scattering transmittance intensity. See also . Ignored if is . + + + + + The depth of the subsurface scattering transmittance effect. + + + + + The intensity of the subsurface scattering transmittance effect. + + + + + If , the backlight effect is enabled. See also . + + + + + The color used by the backlight effect. Represents the light passing through an object. + + + + + Texture used to control the backlight effect per-pixel. Added to . + + + + + If , the refraction effect is enabled. Distorts transparency based on light from behind the object. + + + + + The strength of the refraction effect. + + + + + Texture that controls the strength of the refraction per-pixel. Multiplied by . + + + + + Specifies the channel of the in which the refraction information is stored. This is useful when you store the information for multiple effects in a single texture. For example if you stored refraction in the red channel, roughness in the blue, and ambient occlusion in the green you could reduce the number of textures you use. + + + + + If , enables the detail overlay. Detail is a second texture that gets mixed over the surface of the object based on and 's alpha channel. This can be used to add variation to objects, or to blend between two different albedo/normal textures. + + + + + Texture used to specify how the detail textures get blended with the base textures. can be used together with 's alpha channel (if any). + + + + + Specifies how the should blend with the current ALBEDO. See for options. + + + + + Specifies whether to use UV or UV2 for the detail layer. See for options. + + + + + Texture that specifies the color of the detail overlay. 's alpha channel is used as a mask, even when the material is opaque. To use a dedicated texture as a mask, see . + Note: is not modulated by . + + + + + Texture that specifies the per-pixel normal of the detail overlay. The texture only uses the red and green channels; the blue and alpha channels are ignored. The normal read from is oriented around the surface normal provided by the . + Note: Godot expects the normal map to use X+, Y+, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines. + + + + + How much to scale the UV coordinates. This is multiplied by UV in the vertex function. The Z component is used when is enabled, but it is not used anywhere else. + + + + + How much to offset the UV coordinates. This amount will be added to UV in the vertex function. This can be used to offset a texture. The Z component is used when is enabled, but it is not used anywhere else. + + + + + If , instead of using UV textures will use a triplanar texture lookup to determine how to apply textures. Triplanar uses the orientation of the object's surface to blend between texture coordinates. It reads from the source texture 3 times, once for each axis and then blends between the results based on how closely the pixel aligns with each axis. This is often used for natural features to get a realistic blend of materials. Because triplanar texturing requires many more texture reads per-pixel it is much slower than normal UV texturing. Additionally, because it is blending the texture between the three axes, it is unsuitable when you are trying to achieve crisp texturing. + + + + + A lower number blends the texture more softly while a higher number blends the texture more sharply. + Note: is clamped between 0.0 and 150.0 (inclusive) as values outside that range can look broken depending on the mesh. + + + + + If , triplanar mapping for UV is calculated in world space rather than object local space. See also . + + + + + How much to scale the UV2 coordinates. This is multiplied by UV2 in the vertex function. The Z component is used when is enabled, but it is not used anywhere else. + + + + + How much to offset the UV2 coordinates. This amount will be added to UV2 in the vertex function. This can be used to offset a texture. The Z component is used when is enabled, but it is not used anywhere else. + + + + + If , instead of using UV2 textures will use a triplanar texture lookup to determine how to apply textures. Triplanar uses the orientation of the object's surface to blend between texture coordinates. It reads from the source texture 3 times, once for each axis and then blends between the results based on how closely the pixel aligns with each axis. This is often used for natural features to get a realistic blend of materials. Because triplanar texturing requires many more texture reads per-pixel it is much slower than normal UV texturing. Additionally, because it is blending the texture between the three axes, it is unsuitable when you are trying to achieve crisp texturing. + + + + + A lower number blends the texture more softly while a higher number blends the texture more sharply. + Note: is clamped between 0.0 and 150.0 (inclusive) as values outside that range can look broken depending on the mesh. + + + + + If , triplanar mapping for UV2 is calculated in world space rather than object local space. See also . + + + + + Filter flags for the texture. See for options. + Note: is always sampled with linear filtering, even if nearest-neighbor filtering is selected here. This is to ensure the heightmap effect looks as intended. If you need sharper height transitions between pixels, resize the heightmap texture in an image editor with nearest-neighbor filtering. + + + + + Repeat flags for the texture. See for options. + + + + + If , the object receives no shadow that would otherwise be cast onto it. + + + + + If , enables the "shadow to opacity" render mode where lighting modifies the alpha so shadowed areas are opaque and non-shadowed areas are transparent. Useful for overlaying shadows onto a camera feed in AR. + + + + + Controls how the object faces the camera. See . + Note: Billboard mode is not suitable for VR because the left-right vector of the camera is not horizontal when the screen is attached to your head instead of on the table. See GitHub issue #41567 for details. + + + + + If , the shader will keep the scale set for the mesh. Otherwise, the scale is lost when billboarding. Only applies when is not . + + + + + The number of horizontal frames in the particle sprite sheet. Only enabled when using . See . + + + + + The number of vertical frames in the particle sprite sheet. Only enabled when using . See . + + + + + If , particle animations are looped. Only enabled when using . See . + + + + + If , enables the vertex grow setting. This can be used to create mesh-based outlines using a second material pass and its set to . See also . + Note: Vertex growth cannot create new vertices, which means that visible gaps may occur in sharp corners. This can be alleviated by designing the mesh to use smooth normals exclusively using face weighted normals in the 3D authoring software. In this case, grow will be able to join every outline together, just like in the original mesh. + + + + + Grows object vertices in the direction of their normals. Only effective if is . + + + + + If , the object is rendered at the same size regardless of distance. + + + + + If , render point size can be changed. + Note: This is only effective for objects whose geometry is point-based rather than triangle-based. See also . + + + + + The point size in pixels. See . + + + + + If , enables parts of the shader required for trails to function. This also requires using a mesh with appropriate skinning, such as or . Enabling this feature outside of materials used in meshes will break material rendering. + + + + + If , the proximity fade effect is enabled. The proximity fade effect fades out each pixel based on its distance to another object. + + + + + Distance over which the fade effect takes place. The larger the distance the longer it takes for an object to fade. + + + + + The width of the range around the shape between the minimum and maximum representable signed distance. + + + + + The width of the shape outline. + + + + + Specifies which type of fade to use. Can be any of the s. + + + + + Distance at which the object starts to become visible. If the object is less than this distance away, it will be invisible. + Note: If is greater than , the behavior will be reversed. The object will start to fade away at and will fully disappear once it reaches . + + + + + Distance at which the object appears fully opaque. + Note: If is less than , the behavior will be reversed. The object will start to fade away at and will fully disappear once it reaches . + + + + + If , enables the specified flag. Flags are optional behavior that can be turned on and off. Only one flag can be enabled at a time with this function, the flag enumerators cannot be bit-masked together to enable or disable multiple flags at once. Flags can also be enabled by setting the corresponding member to . See enumerator for options. + + + + + Returns , if the specified flag is enabled. See enumerator for options. + + + + + If , enables the specified . Many features that are available in s need to be enabled before use. This way the cost for using the feature is only incurred when specified. Features can also be enabled by setting the corresponding member to . + + + + + Returns , if the specified is enabled. + + + + + Sets the texture for the slot specified by . See for available slots. + + + + + Returns the associated with the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transparency' property. + + + + + Cached name for the 'alpha_scissor_threshold' property. + + + + + Cached name for the 'alpha_hash_scale' property. + + + + + Cached name for the 'alpha_antialiasing_mode' property. + + + + + Cached name for the 'alpha_antialiasing_edge' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'cull_mode' property. + + + + + Cached name for the 'depth_draw_mode' property. + + + + + Cached name for the 'no_depth_test' property. + + + + + Cached name for the 'shading_mode' property. + + + + + Cached name for the 'diffuse_mode' property. + + + + + Cached name for the 'specular_mode' property. + + + + + Cached name for the 'disable_ambient_light' property. + + + + + Cached name for the 'disable_fog' property. + + + + + Cached name for the 'vertex_color_use_as_albedo' property. + + + + + Cached name for the 'vertex_color_is_srgb' property. + + + + + Cached name for the 'albedo_color' property. + + + + + Cached name for the 'albedo_texture' property. + + + + + Cached name for the 'albedo_texture_force_srgb' property. + + + + + Cached name for the 'albedo_texture_msdf' property. + + + + + Cached name for the 'orm_texture' property. + + + + + Cached name for the 'metallic' property. + + + + + Cached name for the 'metallic_specular' property. + + + + + Cached name for the 'metallic_texture' property. + + + + + Cached name for the 'metallic_texture_channel' property. + + + + + Cached name for the 'roughness' property. + + + + + Cached name for the 'roughness_texture' property. + + + + + Cached name for the 'roughness_texture_channel' property. + + + + + Cached name for the 'emission_enabled' property. + + + + + Cached name for the 'emission' property. + + + + + Cached name for the 'emission_energy_multiplier' property. + + + + + Cached name for the 'emission_intensity' property. + + + + + Cached name for the 'emission_operator' property. + + + + + Cached name for the 'emission_on_uv2' property. + + + + + Cached name for the 'emission_texture' property. + + + + + Cached name for the 'normal_enabled' property. + + + + + Cached name for the 'normal_scale' property. + + + + + Cached name for the 'normal_texture' property. + + + + + Cached name for the 'rim_enabled' property. + + + + + Cached name for the 'rim' property. + + + + + Cached name for the 'rim_tint' property. + + + + + Cached name for the 'rim_texture' property. + + + + + Cached name for the 'clearcoat_enabled' property. + + + + + Cached name for the 'clearcoat' property. + + + + + Cached name for the 'clearcoat_roughness' property. + + + + + Cached name for the 'clearcoat_texture' property. + + + + + Cached name for the 'anisotropy_enabled' property. + + + + + Cached name for the 'anisotropy' property. + + + + + Cached name for the 'anisotropy_flowmap' property. + + + + + Cached name for the 'ao_enabled' property. + + + + + Cached name for the 'ao_light_affect' property. + + + + + Cached name for the 'ao_texture' property. + + + + + Cached name for the 'ao_on_uv2' property. + + + + + Cached name for the 'ao_texture_channel' property. + + + + + Cached name for the 'heightmap_enabled' property. + + + + + Cached name for the 'heightmap_scale' property. + + + + + Cached name for the 'heightmap_deep_parallax' property. + + + + + Cached name for the 'heightmap_min_layers' property. + + + + + Cached name for the 'heightmap_max_layers' property. + + + + + Cached name for the 'heightmap_flip_tangent' property. + + + + + Cached name for the 'heightmap_flip_binormal' property. + + + + + Cached name for the 'heightmap_texture' property. + + + + + Cached name for the 'heightmap_flip_texture' property. + + + + + Cached name for the 'subsurf_scatter_enabled' property. + + + + + Cached name for the 'subsurf_scatter_strength' property. + + + + + Cached name for the 'subsurf_scatter_skin_mode' property. + + + + + Cached name for the 'subsurf_scatter_texture' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_enabled' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_color' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_texture' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_depth' property. + + + + + Cached name for the 'subsurf_scatter_transmittance_boost' property. + + + + + Cached name for the 'backlight_enabled' property. + + + + + Cached name for the 'backlight' property. + + + + + Cached name for the 'backlight_texture' property. + + + + + Cached name for the 'refraction_enabled' property. + + + + + Cached name for the 'refraction_scale' property. + + + + + Cached name for the 'refraction_texture' property. + + + + + Cached name for the 'refraction_texture_channel' property. + + + + + Cached name for the 'detail_enabled' property. + + + + + Cached name for the 'detail_mask' property. + + + + + Cached name for the 'detail_blend_mode' property. + + + + + Cached name for the 'detail_uv_layer' property. + + + + + Cached name for the 'detail_albedo' property. + + + + + Cached name for the 'detail_normal' property. + + + + + Cached name for the 'uv1_scale' property. + + + + + Cached name for the 'uv1_offset' property. + + + + + Cached name for the 'uv1_triplanar' property. + + + + + Cached name for the 'uv1_triplanar_sharpness' property. + + + + + Cached name for the 'uv1_world_triplanar' property. + + + + + Cached name for the 'uv2_scale' property. + + + + + Cached name for the 'uv2_offset' property. + + + + + Cached name for the 'uv2_triplanar' property. + + + + + Cached name for the 'uv2_triplanar_sharpness' property. + + + + + Cached name for the 'uv2_world_triplanar' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached name for the 'disable_receive_shadows' property. + + + + + Cached name for the 'shadow_to_opacity' property. + + + + + Cached name for the 'billboard_mode' property. + + + + + Cached name for the 'billboard_keep_scale' property. + + + + + Cached name for the 'particles_anim_h_frames' property. + + + + + Cached name for the 'particles_anim_v_frames' property. + + + + + Cached name for the 'particles_anim_loop' property. + + + + + Cached name for the 'grow' property. + + + + + Cached name for the 'grow_amount' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'use_point_size' property. + + + + + Cached name for the 'point_size' property. + + + + + Cached name for the 'use_particle_trails' property. + + + + + Cached name for the 'proximity_fade_enabled' property. + + + + + Cached name for the 'proximity_fade_distance' property. + + + + + Cached name for the 'msdf_pixel_range' property. + + + + + Cached name for the 'msdf_outline_size' property. + + + + + Cached name for the 'distance_fade_mode' property. + + + + + Cached name for the 'distance_fade_min_distance' property. + + + + + Cached name for the 'distance_fade_max_distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_albedo' method. + + + + + Cached name for the 'get_albedo' method. + + + + + Cached name for the 'set_transparency' method. + + + + + Cached name for the 'get_transparency' method. + + + + + Cached name for the 'set_alpha_antialiasing' method. + + + + + Cached name for the 'get_alpha_antialiasing' method. + + + + + Cached name for the 'set_alpha_antialiasing_edge' method. + + + + + Cached name for the 'get_alpha_antialiasing_edge' method. + + + + + Cached name for the 'set_shading_mode' method. + + + + + Cached name for the 'get_shading_mode' method. + + + + + Cached name for the 'set_specular' method. + + + + + Cached name for the 'get_specular' method. + + + + + Cached name for the 'set_metallic' method. + + + + + Cached name for the 'get_metallic' method. + + + + + Cached name for the 'set_roughness' method. + + + + + Cached name for the 'get_roughness' method. + + + + + Cached name for the 'set_emission' method. + + + + + Cached name for the 'get_emission' method. + + + + + Cached name for the 'set_emission_energy_multiplier' method. + + + + + Cached name for the 'get_emission_energy_multiplier' method. + + + + + Cached name for the 'set_emission_intensity' method. + + + + + Cached name for the 'get_emission_intensity' method. + + + + + Cached name for the 'set_normal_scale' method. + + + + + Cached name for the 'get_normal_scale' method. + + + + + Cached name for the 'set_rim' method. + + + + + Cached name for the 'get_rim' method. + + + + + Cached name for the 'set_rim_tint' method. + + + + + Cached name for the 'get_rim_tint' method. + + + + + Cached name for the 'set_clearcoat' method. + + + + + Cached name for the 'get_clearcoat' method. + + + + + Cached name for the 'set_clearcoat_roughness' method. + + + + + Cached name for the 'get_clearcoat_roughness' method. + + + + + Cached name for the 'set_anisotropy' method. + + + + + Cached name for the 'get_anisotropy' method. + + + + + Cached name for the 'set_heightmap_scale' method. + + + + + Cached name for the 'get_heightmap_scale' method. + + + + + Cached name for the 'set_subsurface_scattering_strength' method. + + + + + Cached name for the 'get_subsurface_scattering_strength' method. + + + + + Cached name for the 'set_transmittance_color' method. + + + + + Cached name for the 'get_transmittance_color' method. + + + + + Cached name for the 'set_transmittance_depth' method. + + + + + Cached name for the 'get_transmittance_depth' method. + + + + + Cached name for the 'set_transmittance_boost' method. + + + + + Cached name for the 'get_transmittance_boost' method. + + + + + Cached name for the 'set_backlight' method. + + + + + Cached name for the 'get_backlight' method. + + + + + Cached name for the 'set_refraction' method. + + + + + Cached name for the 'get_refraction' method. + + + + + Cached name for the 'set_point_size' method. + + + + + Cached name for the 'get_point_size' method. + + + + + Cached name for the 'set_detail_uv' method. + + + + + Cached name for the 'get_detail_uv' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_depth_draw_mode' method. + + + + + Cached name for the 'get_depth_draw_mode' method. + + + + + Cached name for the 'set_cull_mode' method. + + + + + Cached name for the 'get_cull_mode' method. + + + + + Cached name for the 'set_diffuse_mode' method. + + + + + Cached name for the 'get_diffuse_mode' method. + + + + + Cached name for the 'set_specular_mode' method. + + + + + Cached name for the 'get_specular_mode' method. + + + + + Cached name for the 'set_flag' method. + + + + + Cached name for the 'get_flag' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_feature' method. + + + + + Cached name for the 'get_feature' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_detail_blend_mode' method. + + + + + Cached name for the 'get_detail_blend_mode' method. + + + + + Cached name for the 'set_uv1_scale' method. + + + + + Cached name for the 'get_uv1_scale' method. + + + + + Cached name for the 'set_uv1_offset' method. + + + + + Cached name for the 'get_uv1_offset' method. + + + + + Cached name for the 'set_uv1_triplanar_blend_sharpness' method. + + + + + Cached name for the 'get_uv1_triplanar_blend_sharpness' method. + + + + + Cached name for the 'set_uv2_scale' method. + + + + + Cached name for the 'get_uv2_scale' method. + + + + + Cached name for the 'set_uv2_offset' method. + + + + + Cached name for the 'get_uv2_offset' method. + + + + + Cached name for the 'set_uv2_triplanar_blend_sharpness' method. + + + + + Cached name for the 'get_uv2_triplanar_blend_sharpness' method. + + + + + Cached name for the 'set_billboard_mode' method. + + + + + Cached name for the 'get_billboard_mode' method. + + + + + Cached name for the 'set_particles_anim_h_frames' method. + + + + + Cached name for the 'get_particles_anim_h_frames' method. + + + + + Cached name for the 'set_particles_anim_v_frames' method. + + + + + Cached name for the 'get_particles_anim_v_frames' method. + + + + + Cached name for the 'set_particles_anim_loop' method. + + + + + Cached name for the 'get_particles_anim_loop' method. + + + + + Cached name for the 'set_heightmap_deep_parallax' method. + + + + + Cached name for the 'is_heightmap_deep_parallax_enabled' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_min_layers' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_min_layers' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_max_layers' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_max_layers' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_flip_tangent' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_flip_tangent' method. + + + + + Cached name for the 'set_heightmap_deep_parallax_flip_binormal' method. + + + + + Cached name for the 'get_heightmap_deep_parallax_flip_binormal' method. + + + + + Cached name for the 'set_grow' method. + + + + + Cached name for the 'get_grow' method. + + + + + Cached name for the 'set_emission_operator' method. + + + + + Cached name for the 'get_emission_operator' method. + + + + + Cached name for the 'set_ao_light_affect' method. + + + + + Cached name for the 'get_ao_light_affect' method. + + + + + Cached name for the 'set_alpha_scissor_threshold' method. + + + + + Cached name for the 'get_alpha_scissor_threshold' method. + + + + + Cached name for the 'set_alpha_hash_scale' method. + + + + + Cached name for the 'get_alpha_hash_scale' method. + + + + + Cached name for the 'set_grow_enabled' method. + + + + + Cached name for the 'is_grow_enabled' method. + + + + + Cached name for the 'set_metallic_texture_channel' method. + + + + + Cached name for the 'get_metallic_texture_channel' method. + + + + + Cached name for the 'set_roughness_texture_channel' method. + + + + + Cached name for the 'get_roughness_texture_channel' method. + + + + + Cached name for the 'set_ao_texture_channel' method. + + + + + Cached name for the 'get_ao_texture_channel' method. + + + + + Cached name for the 'set_refraction_texture_channel' method. + + + + + Cached name for the 'get_refraction_texture_channel' method. + + + + + Cached name for the 'set_proximity_fade_enabled' method. + + + + + Cached name for the 'is_proximity_fade_enabled' method. + + + + + Cached name for the 'set_proximity_fade_distance' method. + + + + + Cached name for the 'get_proximity_fade_distance' method. + + + + + Cached name for the 'set_msdf_pixel_range' method. + + + + + Cached name for the 'get_msdf_pixel_range' method. + + + + + Cached name for the 'set_msdf_outline_size' method. + + + + + Cached name for the 'get_msdf_outline_size' method. + + + + + Cached name for the 'set_distance_fade' method. + + + + + Cached name for the 'get_distance_fade' method. + + + + + Cached name for the 'set_distance_fade_max_distance' method. + + + + + Cached name for the 'get_distance_fade_max_distance' method. + + + + + Cached name for the 'set_distance_fade_min_distance' method. + + + + + Cached name for the 'get_distance_fade_min_distance' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Creates a bitmap with the specified size, filled with . + + + + + Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to if the alpha value of the image at that position is equal to or less, and in other case. + + + + + Sets the bitmap's element at the specified position, to the specified value. + + + + + Sets the bitmap's element at the specified position, to the specified value. + + + + + Returns bitmap's value at the specified position. + + + + + Returns bitmap's value at the specified position. + + + + + Sets a rectangular portion of the bitmap to the specified value. + + + + + Returns the number of bitmap elements that are set to . + + + + + Returns bitmap's dimensions. + + + + + Resizes the image to . + + + + + Applies morphological dilation or erosion to the bitmap. If is positive, dilation is applied to the bitmap. If is negative, erosion is applied to the bitmap. defines the area where the morphological operation is applied. Pixels located outside the are unaffected by . + + + + + Returns an image of the same size as the bitmap and with a of type . bits of the bitmap are being converted into white pixels, and bits into black. + + + + + Creates an of polygons covering a rectangular portion of the bitmap. It uses a marching squares algorithm, followed by Ramer-Douglas-Peucker (RDP) reduction of the number of vertices. Each polygon is described as a [] of its vertices. + To get polygons covering the whole bitmap, pass: + + Rect2(Vector2(), get_size()) + + is passed to RDP to control how accurately the polygons cover the bitmap: a lower corresponds to more points in the polygons. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'create_from_image_alpha' method. + + + + + Cached name for the 'set_bitv' method. + + + + + Cached name for the 'set_bit' method. + + + + + Cached name for the 'get_bitv' method. + + + + + Cached name for the 'get_bit' method. + + + + + Cached name for the 'set_bit_rect' method. + + + + + Cached name for the 'get_true_bit_count' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'grow_mask' method. + + + + + Cached name for the 'convert_to_image' method. + + + + + Cached name for the 'opaque_to_polygons' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A hierarchy of s can be bound to a to control and animate other nodes. + You can use and nodes to animate 2D meshes created with the UV editor. + Each bone has a transform that you can reset to with . 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. + + + + + Rest transform of the bone. You can reset the node's transforms to this value using . + + + + + Resets the bone to the rest pose. This is equivalent to setting to . + + + + + Returns the node's if it doesn't have a parent, or its rest pose relative to its parent. + + + + + Returns the node's index as part of the entire skeleton. See . + + + + + When set to , the node will attempt to automatically calculate the bone angle and length using the first child node, if one exists. If none exist, the cannot automatically calculate these values and will print a warning. + + + + + Returns whether this is going to autocalculate its length and bone angle using its first child node, if one exists. If there are no children, then it cannot autocalculate these values and will print a warning. + + + + + Sets the length of the bone in the . + + + + + Returns the length of the bone in the node. + + + + + Sets the bone angle for the . This is typically set to the rotation from the to a child node. + Note: This is different from the 's rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the 's . + + + + + Returns the angle of the bone in the . + Note: This is different from the 's rotation. The bone's angle is the rotation of the bone shown by the gizmo, which is unaffected by the 's . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'rest' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rest' method. + + + + + Cached name for the 'get_rest' method. + + + + + Cached name for the 'apply_rest' method. + + + + + Cached name for the 'get_skeleton_rest' method. + + + + + Cached name for the 'get_index_in_skeleton' method. + + + + + Cached name for the 'set_autocalculate_length_and_angle' method. + + + + + Cached name for the 'get_autocalculate_length_and_angle' method. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_bone_angle' method. + + + + + Cached name for the 'get_bone_angle' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node selects a bone in a and attaches to it. This means that the node will either dynamically copy or override the 3D transform of the selected bone. + + + + + The name of the attached bone. + + + + + The index of the attached bone. + + + + + Whether the BoneAttachment3D node will override the bone pose of the bone it is attached to. When set to , the BoneAttachment3D node can change the pose of the bone. When set to , the BoneAttachment3D will always be set to the bone's transform. + Note: This override performs interruptively in the skeleton update process using signals due to the old design. It may cause unintended behavior when used at the same time with . + + + + + Get parent or external node if found. + + + + + A function that is called automatically when the is updated. This function is where the node updates its position so it is correctly bound when it is not set to override the bone pose. + + + + + Sets whether the BoneAttachment3D node will use an external node rather than attempting to use its parent node as the . When set to , the BoneAttachment3D node will use the external node set in . + + + + + Returns whether the BoneAttachment3D node is using an external rather than attempting to use its parent node as the . + + + + + Sets the to the external skeleton that the BoneAttachment3D node should use. See to enable the external node. + + + + + Returns the to the external node, if one has been set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bone_name' property. + + + + + Cached name for the 'bone_idx' property. + + + + + Cached name for the 'override_pose' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone_idx' method. + + + + + Cached name for the 'get_bone_idx' method. + + + + + Cached name for the 'on_skeleton_update' method. + + + + + Cached name for the 'set_override_pose' method. + + + + + Cached name for the 'get_override_pose' method. + + + + + Cached name for the 'set_use_external_skeleton' method. + + + + + Cached name for the 'get_use_external_skeleton' method. + + + + + Cached name for the 'set_external_skeleton' method. + + + + + Cached name for the 'get_external_skeleton' method. + + + + + Cached name for the 'on_bone_pose_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class contains a dictionary that uses a list of bone names in as key names. + By assigning the actual bone name as the key value, it maps the to the . + + + + + A of the mapping target. Key names in the are synchronized with it. + + + + + Returns a skeleton bone name is mapped to . + In the retargeting process, the returned bone name is the bone name of the source skeleton. + + + + + Maps a skeleton bone name to . + In the retargeting process, the setting bone name is the bone name of the source skeleton. + + + + + Returns a profile bone name having . If not found, an empty will be returned. + In the retargeting process, the returned bone name is the bone name of the target skeleton. + + + + + This signal is emitted when change the key value in the . This is used to validate mapping and to update editor. + + + + + This signal is emitted when change the value in profile or change the reference of profile. This is used to update key names in the and to redraw the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'profile' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_profile' method. + + + + + Cached name for the 'set_profile' method. + + + + + Cached name for the 'get_skeleton_bone_name' method. + + + + + Cached name for the 'set_skeleton_bone_name' method. + + + + + Cached name for the 'find_profile_bone_name' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bone_map_updated' signal. + + + + + Cached name for the 'profile_updated' signal. + + + + + A container that arranges its child controls horizontally or vertically, rearranging them automatically when their minimum size changes. + + + + + 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). + + + + + The child controls will be centered in the container. + + + + + 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). + + + + + The alignment of the container's children (must be one of , , or ). + + + + + If , the will arrange its children vertically, rather than horizontally. + Can't be changed when using and . + + + + + Adds a node to the box as a spacer. If is , it will insert the node in front of all other children. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_spacer' method. + + + + + Cached name for the 'set_alignment' method. + + + + + Cached name for the 'get_alignment' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generate an axis-aligned box . + The box's UV layout is arranged in a 3×2 layout that allows texturing each face individually. To apply the same texture on all faces, change the material's UV property to Vector3(3, 2, 1). This is equivalent to adding UV *= vec2(3.0, 2.0) in a vertex shader. + Note: When using a large textured (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase , and until you no longer notice UV jittering. + + + + + The box's width, height and depth. + + + + + Number of extra edge loops inserted along the X axis. + + + + + Number of extra edge loops inserted along the Y axis. + + + + + Number of extra edge loops inserted along the Z axis. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'subdivide_width' property. + + + + + Cached name for the 'subdivide_height' property. + + + + + Cached name for the 'subdivide_depth' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_subdivide_width' method. + + + + + Cached name for the 'get_subdivide_width' method. + + + + + Cached name for the 'set_subdivide_height' method. + + + + + Cached name for the 'get_subdivide_height' method. + + + + + Cached name for the 'set_subdivide_depth' method. + + + + + Cached name for the 'get_subdivide_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a cuboid shape that can be used by the engine's occlusion culling system. + See 's documentation for instructions on setting up occlusion culling. + + + + + The box's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D box shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than and , but slower than . + + + + + The box's width, height and depth. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the standard themed button. It can contain text and an icon, and it will display them according to the current . + Example: Create a button and connect a method that will be called when the button is pressed: + + public override void _Ready() + { + var button = new Button(); + button.Text = "Click me"; + button.Pressed += ButtonPressed; + AddChild(button); + } + + private void ButtonPressed() + { + GD.Print("Hello world!"); + } + + See also which contains common properties and methods associated with this node. + Note: Buttons do not detect touch input and therefore don't support multitouch, since mouse emulation can only press one button at a given time. Use for buttons that trigger gameplay movement or actions. + + + + + The button's text that will be displayed inside the button's area. + + + + + Button's icon, if text is present the icon will be placed before the text. + To edit margin and spacing of the icon, use h_separation theme property and content_margin_* properties of the used es. + + + + + Flat buttons don't display decoration. + + + + + Text alignment policy for the button's text, use one of the constants. + + + + + Sets the clipping behavior when the text exceeds the node's bounding rectangle. See for a description of all modes. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. + + + + + If , text that is too large to fit the button is clipped horizontally. If , the button will always be wide enough to hold the text. The text is not vertically clipped, and the button's height is not affected by this property. + + + + + Specifies if the icon should be aligned horizontally to the left, right, or center of a button. Uses the same constants as the text alignment. If centered horizontally and vertically, text will draw on top of the icon. + + + + + Specifies if the icon should be aligned vertically to the top, bottom, or center of a button. Uses the same constants as the text alignment. If centered horizontally and vertically, text will draw on top of the icon. + + + + + When enabled, the button's icon will expand/shrink to fit the button's size while keeping its aspect. See also icon_max_width. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'icon' property. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'clip_text' property. + + + + + Cached name for the 'icon_alignment' property. + + + + + Cached name for the 'vertical_icon_alignment' property. + + + + + Cached name for the 'expand_icon' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_button_icon' method. + + + + + Cached name for the 'get_button_icon' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_clip_text' method. + + + + + Cached name for the 'get_clip_text' method. + + + + + Cached name for the 'set_text_alignment' method. + + + + + Cached name for the 'get_text_alignment' method. + + + + + Cached name for the 'set_icon_alignment' method. + + + + + Cached name for the 'get_icon_alignment' method. + + + + + Cached name for the 'set_vertical_icon_alignment' method. + + + + + Cached name for the 'get_vertical_icon_alignment' method. + + + + + Cached name for the 'set_expand_icon' method. + + + + + Cached name for the 'is_expand_icon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A group of -derived buttons. The buttons in a are treated like radio buttons: No more than one button can be pressed at a time. Some types of buttons (such as ) may have a special appearance in this state. + Every member of a should have set to . + + + + + If , it is possible to unpress all buttons in this . + + + + + Returns the current pressed button. + + + + + Returns an of s who have this as their (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the buttons of the group is pressed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'allow_unpress' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_pressed_button' method. + + + + + Cached name for the 'get_buttons' method. + + + + + Cached name for the 'set_allow_unpress' method. + + + + + Cached name for the 'is_allow_unpress' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + CPU-based 2D particle node used to create a variety of particle systems and effects. + See also , which provides the same functionality with hardware acceleration, but may not run on older devices. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Use with , , and to set initial velocity properties. + + + + + Use with , , and to set angular velocity properties. + + + + + Use with , , and to set orbital velocity properties. + + + + + Use with , , and to set linear acceleration properties. + + + + + Use with , , and to set radial acceleration properties. + + + + + Use with , , and to set tangential acceleration properties. + + + + + Use with , , and to set damping properties. + + + + + Use with , , and to set angle properties. + + + + + Use with , , and to set scale properties. + + + + + Use with , , and to set hue variation properties. + + + + + Use with , , and to set animation speed properties. + + + + + Use with , , and to set animation offset properties. + + + + + Represents the size of the enum. + + + + + Use with to set . + + + + + Present for consistency with 3D particle nodes, not used in 2D. + + + + + Present for consistency with 3D particle nodes, not used in 2D. + + + + + Represents the size of the enum. + + + + + All particles will be emitted from a single point. + + + + + Particles will be emitted in the volume of a sphere flattened to two dimensions. + + + + + Particles will be emitted on the surface of a sphere flattened to two dimensions. + + + + + Particles will be emitted in the area of a rectangle. + + + + + Particles will be emitted at a position chosen randomly among . Particle color will be modulated by . + + + + + Particles will be emitted at a position chosen randomly among . Particle velocity and rotation will be set based on . Particle color will be modulated by . + + + + + Represents the size of the enum. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle until after all active particles finish processing. You can use the signal to be notified once all active particles finish processing. + + + + + Number of particles emitted in one emission cycle. + + + + + Amount of time each particle will exist. + + + + + If , only one emission cycle occurs. If set during a cycle, emission will stop at the cycle's end. + + + + + Particle system starts as if it had already run for this many seconds. + + + + + Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins. + + + + + Emission lifetime randomness ratio. + + + + + Particle lifetime randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + + + + + Particle texture. If , particles will be squares. + + + + + Particles will be emitted inside this region. See for possible values. + + + + + The sphere's radius if is set to . + + + + + The rectangle's extents if is set to . + + + + + Sets the initial positions to spawn particles when using or . + + + + + Sets the direction the particles will be emitted in when using . + + + + + Sets the s to modulate particles by when using or . + + + + + Align Y axis of particle with the direction of its velocity. + + + + + Unit vector specifying the particles' emission direction. + + + + + Each particle's initial direction range from +spread to -spread degrees. + + + + + Gravity applied to every particle. + + + + + Minimum equivalent of . + + + + + Maximum initial velocity magnitude for each particle. Direction comes from and . + + + + + Minimum equivalent of . + + + + + Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. + + + + + Each particle's angular velocity will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second. + + + + + Each particle's orbital velocity will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum linear acceleration applied to each particle in the direction of motion. + + + + + Each particle's linear acceleration will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative. + + + + + Each particle's radial acceleration will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion. + + + + + Each particle's tangential acceleration will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + The maximum rate at which particles lose velocity. For example value of 100 means that the particle will go from 100 velocity to 0 in 1 second. + + + + + Damping will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum initial rotation applied to each particle, in degrees. + + + + + Each particle's rotation will be animated along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum initial scale applied to each particle. + + + + + Each particle's scale will vary along this . Should be a unit . + + + + + If , the scale curve will be split into x and y components. See and . + + + + + Each particle's horizontal scale will vary along this . Should be a unit . + must be enabled. + + + + + Each particle's vertical scale will vary along this . Should be a unit . + must be enabled. + + + + + Each particle's initial color. If is defined, it will be multiplied by this color. + + + + + Each particle's color will vary along this (multiplied with ). + + + + + Each particle's initial color will vary along this (multiplied with ). + + + + + Minimum equivalent of . + + + + + Maximum initial hue variation applied to each particle. It will shift the particle color's hue. + + + + + Each particle's hue will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum particle animation speed. Animation speed of 1 means that the particles will make full 0 to 1 offset cycle during lifetime, 2 means 2 cycles etc. + With animation speed greater than 1, remember to enable property if you want the animation to repeat. + + + + + Each particle's animation speed will vary along this . Should be a unit . + + + + + Minimum equivalent of . + + + + + Maximum animation offset that corresponds to frame index in the texture. 0 is the first frame, 1 is the last one. See . + + + + + Each particle's animation offset will vary along this . Should be a unit . + + + + + Restarts the particle emitter. + + + + + Sets the minimum value for the given parameter. + + + + + Returns the minimum value range for the given parameter. + + + + + Sets the maximum value for the given parameter. + + + + + Returns the maximum value range for the given parameter. + + + + + Sets the of the parameter specified by . Should be a unit . + + + + + Returns the of the parameter specified by . + + + + + Enables or disables the given flag (see for options). + + + + + Returns the enabled state of the given particle flag (see for options). + + + + + Sets this node's properties to match a given node with an assigned . + + + + + Emitted when all active particles have finished processing. When is disabled, particles will process continuously, so this is never emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'lifetime_randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'emission_shape' property. + + + + + Cached name for the 'emission_sphere_radius' property. + + + + + Cached name for the 'emission_rect_extents' property. + + + + + Cached name for the 'emission_points' property. + + + + + Cached name for the 'emission_normals' property. + + + + + Cached name for the 'emission_colors' property. + + + + + Cached name for the 'particle_flag_align_y' property. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'initial_velocity_min' property. + + + + + Cached name for the 'initial_velocity_max' property. + + + + + Cached name for the 'angular_velocity_min' property. + + + + + Cached name for the 'angular_velocity_max' property. + + + + + Cached name for the 'angular_velocity_curve' property. + + + + + Cached name for the 'orbit_velocity_min' property. + + + + + Cached name for the 'orbit_velocity_max' property. + + + + + Cached name for the 'orbit_velocity_curve' property. + + + + + Cached name for the 'linear_accel_min' property. + + + + + Cached name for the 'linear_accel_max' property. + + + + + Cached name for the 'linear_accel_curve' property. + + + + + Cached name for the 'radial_accel_min' property. + + + + + Cached name for the 'radial_accel_max' property. + + + + + Cached name for the 'radial_accel_curve' property. + + + + + Cached name for the 'tangential_accel_min' property. + + + + + Cached name for the 'tangential_accel_max' property. + + + + + Cached name for the 'tangential_accel_curve' property. + + + + + Cached name for the 'damping_min' property. + + + + + Cached name for the 'damping_max' property. + + + + + Cached name for the 'damping_curve' property. + + + + + Cached name for the 'angle_min' property. + + + + + Cached name for the 'angle_max' property. + + + + + Cached name for the 'angle_curve' property. + + + + + Cached name for the 'scale_amount_min' property. + + + + + Cached name for the 'scale_amount_max' property. + + + + + Cached name for the 'scale_amount_curve' property. + + + + + Cached name for the 'split_scale' property. + + + + + Cached name for the 'scale_curve_x' property. + + + + + Cached name for the 'scale_curve_y' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'color_initial_ramp' property. + + + + + Cached name for the 'hue_variation_min' property. + + + + + Cached name for the 'hue_variation_max' property. + + + + + Cached name for the 'hue_variation_curve' property. + + + + + Cached name for the 'anim_speed_min' property. + + + + + Cached name for the 'anim_speed_max' property. + + + + + Cached name for the 'anim_speed_curve' property. + + + + + Cached name for the 'anim_offset_min' property. + + + + + Cached name for the 'anim_offset_max' property. + + + + + Cached name for the 'anim_offset_curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_lifetime_randomness' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_lifetime_randomness' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_param_min' method. + + + + + Cached name for the 'get_param_min' method. + + + + + Cached name for the 'set_param_max' method. + + + + + Cached name for the 'get_param_max' method. + + + + + Cached name for the 'set_param_curve' method. + + + + + Cached name for the 'get_param_curve' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_color_initial_ramp' method. + + + + + Cached name for the 'get_color_initial_ramp' method. + + + + + Cached name for the 'set_particle_flag' method. + + + + + Cached name for the 'get_particle_flag' method. + + + + + Cached name for the 'set_emission_shape' method. + + + + + Cached name for the 'get_emission_shape' method. + + + + + Cached name for the 'set_emission_sphere_radius' method. + + + + + Cached name for the 'get_emission_sphere_radius' method. + + + + + Cached name for the 'set_emission_rect_extents' method. + + + + + Cached name for the 'get_emission_rect_extents' method. + + + + + Cached name for the 'set_emission_points' method. + + + + + Cached name for the 'get_emission_points' method. + + + + + Cached name for the 'set_emission_normals' method. + + + + + Cached name for the 'get_emission_normals' method. + + + + + Cached name for the 'set_emission_colors' method. + + + + + Cached name for the 'get_emission_colors' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_split_scale' method. + + + + + Cached name for the 'set_split_scale' method. + + + + + Cached name for the 'get_scale_curve_x' method. + + + + + Cached name for the 'set_scale_curve_x' method. + + + + + Cached name for the 'get_scale_curve_y' method. + + + + + Cached name for the 'set_scale_curve_y' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + CPU-based 3D particle node used to create a variety of particle systems and effects. + See also , which provides the same functionality with hardware acceleration, but may not run on older devices. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Particles are drawn in order of depth. + + + + + Use with , , and to set initial velocity properties. + + + + + Use with , , and to set angular velocity properties. + + + + + Use with , , and to set orbital velocity properties. + + + + + Use with , , and to set linear acceleration properties. + + + + + Use with , , and to set radial acceleration properties. + + + + + Use with , , and to set tangential acceleration properties. + + + + + Use with , , and to set damping properties. + + + + + Use with , , and to set angle properties. + + + + + Use with , , and to set scale properties. + + + + + Use with , , and to set hue variation properties. + + + + + Use with , , and to set animation speed properties. + + + + + Use with , , and to set animation offset properties. + + + + + Represents the size of the enum. + + + + + Use with to set . + + + + + Use with to set . + + + + + Use with to set . + + + + + Represents the size of the enum. + + + + + All particles will be emitted from a single point. + + + + + Particles will be emitted in the volume of a sphere. + + + + + Particles will be emitted on the surface of a sphere. + + + + + Particles will be emitted in the volume of a box. + + + + + Particles will be emitted at a position chosen randomly among . Particle color will be modulated by . + + + + + Particles will be emitted at a position chosen randomly among . Particle velocity and rotation will be set based on . Particle color will be modulated by . + + + + + Particles will be emitted in a ring or cylinder. + + + + + Represents the size of the enum. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle until after all active particles finish processing. You can use the signal to be notified once all active particles finish processing. + + + + + Number of particles emitted in one emission cycle. + + + + + Amount of time each particle will exist. + + + + + If , only one emission cycle occurs. If set during a cycle, emission will stop at the cycle's end. + + + + + Particle system starts as if it had already run for this many seconds. + + + + + Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins. + + + + + Emission lifetime randomness ratio. + + + + + Particle lifetime randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + The that determines the node's region which needs to be visible on screen for the particle system to be active. + Grow the box if particles suddenly appear/disappear when the node enters/exits the screen. The can be grown via code or with the Particles → Generate AABB editor tool. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + + + + + The used for each particle. If , particles will be spheres. + + + + + Particles will be emitted inside this region. See for possible values. + + + + + The sphere's radius if is set to . + + + + + The rectangle's extents if is set to . + + + + + Sets the initial positions to spawn particles when using or . + + + + + Sets the direction the particles will be emitted in when using . + + + + + Sets the s to modulate particles by when using or . + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + The axis of the ring when using the emitter . + + + + + The height of the ring when using the emitter . + + + + + The radius of the ring when using the emitter . + + + + + The inner radius of the ring when using the emitter . + + + + + The angle of the cone when using the emitter . The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. + Note: Depending on , the angle may be clamped if the ring's end is reached to form a perfect cone. + + + + + Align Y axis of particle with the direction of its velocity. + + + + + If , particles rotate around Y axis by . + + + + + If , particles will not move on the Z axis. + + + + + Unit vector specifying the particles' emission direction. + + + + + Each particle's initial direction range from +spread to -spread degrees. Applied to X/Z plane and Y/Z planes. + + + + + Amount of in Y/Z plane. A value of 1 restricts particles to X/Z plane. + + + + + Gravity applied to every particle. + + + + + Minimum value of the initial velocity. + + + + + Maximum value of the initial velocity. + + + + + Minimum initial angular velocity (rotation speed) applied to each particle in degrees per second. + + + + + Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. + + + + + Each particle's angular velocity (rotation speed) will vary along this over its lifetime. Should be a unit . + + + + + Minimum orbit velocity. + + + + + Maximum orbit velocity. + + + + + Each particle's orbital velocity will vary along this . Should be a unit . + + + + + Minimum linear acceleration. + + + + + Maximum linear acceleration. + + + + + Each particle's linear acceleration will vary along this . Should be a unit . + + + + + Minimum radial acceleration. + + + + + Maximum radial acceleration. + + + + + Each particle's radial acceleration will vary along this . Should be a unit . + + + + + Minimum tangent acceleration. + + + + + Maximum tangent acceleration. + + + + + Each particle's tangential acceleration will vary along this . Should be a unit . + + + + + Minimum damping. + + + + + Maximum damping. + + + + + Damping will vary along this . Should be a unit . + + + + + Minimum angle. + + + + + Maximum angle. + + + + + Each particle's rotation will be animated along this . Should be a unit . + + + + + Minimum scale. + + + + + Maximum scale. + + + + + Each particle's scale will vary along this . Should be a unit . + + + + + If set to , three different scale curves can be specified, one per scale axis. + + + + + Curve for the scale over life, along the x axis. + + + + + Curve for the scale over life, along the y axis. + + + + + Curve for the scale over life, along the z axis. + + + + + Each particle's initial color. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's color will vary along this over its lifetime (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's initial color will vary along this (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Minimum hue variation. + + + + + Maximum hue variation. + + + + + Each particle's hue will vary along this . Should be a unit . + + + + + Minimum particle animation speed. + + + + + Maximum particle animation speed. + + + + + Each particle's animation speed will vary along this . Should be a unit . + + + + + Minimum animation offset. + + + + + Maximum animation offset. + + + + + Each particle's animation offset will vary along this . Should be a unit . + + + + + Restarts the particle emitter. + + + + + Returns the axis-aligned bounding box that contains all the particles that are active in the current frame. + + + + + Sets the minimum value for the given parameter. + + + + + Returns the minimum value range for the given parameter. + + + + + Sets the maximum value for the given parameter. + + + + + Returns the maximum value range for the given parameter. + + + + + Sets the of the parameter specified by . Should be a unit . + + + + + Returns the of the parameter specified by . + + + + + Enables or disables the given particle flag (see for options). + + + + + Returns the enabled state of the given particle flag (see for options). + + + + + Sets this node's properties to match a given node with an assigned . + + + + + Emitted when all active particles have finished processing. When is disabled, particles will process continuously, so this is never emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'lifetime_randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'visibility_aabb' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'emission_shape' property. + + + + + Cached name for the 'emission_sphere_radius' property. + + + + + Cached name for the 'emission_box_extents' property. + + + + + Cached name for the 'emission_points' property. + + + + + Cached name for the 'emission_normals' property. + + + + + Cached name for the 'emission_colors' property. + + + + + Cached name for the 'emission_ring_axis' property. + + + + + Cached name for the 'emission_ring_height' property. + + + + + Cached name for the 'emission_ring_radius' property. + + + + + Cached name for the 'emission_ring_inner_radius' property. + + + + + Cached name for the 'emission_ring_cone_angle' property. + + + + + Cached name for the 'particle_flag_align_y' property. + + + + + Cached name for the 'particle_flag_rotate_y' property. + + + + + Cached name for the 'particle_flag_disable_z' property. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'flatness' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'initial_velocity_min' property. + + + + + Cached name for the 'initial_velocity_max' property. + + + + + Cached name for the 'angular_velocity_min' property. + + + + + Cached name for the 'angular_velocity_max' property. + + + + + Cached name for the 'angular_velocity_curve' property. + + + + + Cached name for the 'orbit_velocity_min' property. + + + + + Cached name for the 'orbit_velocity_max' property. + + + + + Cached name for the 'orbit_velocity_curve' property. + + + + + Cached name for the 'linear_accel_min' property. + + + + + Cached name for the 'linear_accel_max' property. + + + + + Cached name for the 'linear_accel_curve' property. + + + + + Cached name for the 'radial_accel_min' property. + + + + + Cached name for the 'radial_accel_max' property. + + + + + Cached name for the 'radial_accel_curve' property. + + + + + Cached name for the 'tangential_accel_min' property. + + + + + Cached name for the 'tangential_accel_max' property. + + + + + Cached name for the 'tangential_accel_curve' property. + + + + + Cached name for the 'damping_min' property. + + + + + Cached name for the 'damping_max' property. + + + + + Cached name for the 'damping_curve' property. + + + + + Cached name for the 'angle_min' property. + + + + + Cached name for the 'angle_max' property. + + + + + Cached name for the 'angle_curve' property. + + + + + Cached name for the 'scale_amount_min' property. + + + + + Cached name for the 'scale_amount_max' property. + + + + + Cached name for the 'scale_amount_curve' property. + + + + + Cached name for the 'split_scale' property. + + + + + Cached name for the 'scale_curve_x' property. + + + + + Cached name for the 'scale_curve_y' property. + + + + + Cached name for the 'scale_curve_z' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'color_initial_ramp' property. + + + + + Cached name for the 'hue_variation_min' property. + + + + + Cached name for the 'hue_variation_max' property. + + + + + Cached name for the 'hue_variation_curve' property. + + + + + Cached name for the 'anim_speed_min' property. + + + + + Cached name for the 'anim_speed_max' property. + + + + + Cached name for the 'anim_speed_curve' property. + + + + + Cached name for the 'anim_offset_min' property. + + + + + Cached name for the 'anim_offset_max' property. + + + + + Cached name for the 'anim_offset_curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_visibility_aabb' method. + + + + + Cached name for the 'set_lifetime_randomness' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_visibility_aabb' method. + + + + + Cached name for the 'get_lifetime_randomness' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'capture_aabb' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_flatness' method. + + + + + Cached name for the 'get_flatness' method. + + + + + Cached name for the 'set_param_min' method. + + + + + Cached name for the 'get_param_min' method. + + + + + Cached name for the 'set_param_max' method. + + + + + Cached name for the 'get_param_max' method. + + + + + Cached name for the 'set_param_curve' method. + + + + + Cached name for the 'get_param_curve' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_color_initial_ramp' method. + + + + + Cached name for the 'get_color_initial_ramp' method. + + + + + Cached name for the 'set_particle_flag' method. + + + + + Cached name for the 'get_particle_flag' method. + + + + + Cached name for the 'set_emission_shape' method. + + + + + Cached name for the 'get_emission_shape' method. + + + + + Cached name for the 'set_emission_sphere_radius' method. + + + + + Cached name for the 'get_emission_sphere_radius' method. + + + + + Cached name for the 'set_emission_box_extents' method. + + + + + Cached name for the 'get_emission_box_extents' method. + + + + + Cached name for the 'set_emission_points' method. + + + + + Cached name for the 'get_emission_points' method. + + + + + Cached name for the 'set_emission_normals' method. + + + + + Cached name for the 'get_emission_normals' method. + + + + + Cached name for the 'set_emission_colors' method. + + + + + Cached name for the 'get_emission_colors' method. + + + + + Cached name for the 'set_emission_ring_axis' method. + + + + + Cached name for the 'get_emission_ring_axis' method. + + + + + Cached name for the 'set_emission_ring_height' method. + + + + + Cached name for the 'get_emission_ring_height' method. + + + + + Cached name for the 'set_emission_ring_radius' method. + + + + + Cached name for the 'get_emission_ring_radius' method. + + + + + Cached name for the 'set_emission_ring_inner_radius' method. + + + + + Cached name for the 'get_emission_ring_inner_radius' method. + + + + + Cached name for the 'set_emission_ring_cone_angle' method. + + + + + Cached name for the 'get_emission_ring_cone_angle' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_split_scale' method. + + + + + Cached name for the 'set_split_scale' method. + + + + + Cached name for the 'get_scale_curve_x' method. + + + + + Cached name for the 'set_scale_curve_x' method. + + + + + Cached name for the 'get_scale_curve_y' method. + + + + + Cached name for the 'set_scale_curve_y' method. + + + + + Cached name for the 'get_scale_curve_z' method. + + + + + Cached name for the 'set_scale_curve_z' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + This node allows you to create a box for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The box's width, height and depth. + + + + + The material used to render the box. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + For complex arrangements of shapes, it is sometimes needed to add structure to your CSG nodes. The CSGCombiner3D node allows you to create this structure. The node encapsulates the result of the CSG operations of its children. In this way, it is possible to do operations on one set of shapes that are children of one CSGCombiner3D node, and a set of separate operations on a second set of shapes that are children of a second CSGCombiner3D node, and then do an operation that takes the two end results as its input to create the final shape. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node allows you to create a cylinder (or cone) for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The radius of the cylinder. + + + + + The height of the cylinder. + + + + + The number of sides of the cylinder, the higher this number the more detail there will be in the cylinder. + + + + + If a cone is created, the will only apply to one side. + + + + + If the normals of the cylinder are set to give a smooth effect making the cylinder seem rounded. If the cylinder will have a flat shaded look. + + + + + The material used to render the cylinder. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'sides' property. + + + + + Cached name for the 'cone' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_sides' method. + + + + + Cached name for the 'get_sides' method. + + + + + Cached name for the 'set_cone' method. + + + + + Cached name for the 'is_cone' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This CSG node allows you to use any mesh resource as a CSG shape, provided it is manifold. A manifold shape is closed, does not self-intersect, does not contain internal faces and has no edges that connect to more than two faces. See also for drawing 2D extruded polygons to be used as CSG nodes. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The resource to use as a CSG shape. + Note: Some types such as , , , and are excluded from the type hint for this property, as these primitives are non-manifold and thus not compatible with the CSG algorithm. + Note: When using an , all vertex attributes except , and are left unused. Only and will be passed to the GPU. + is only used to determine which faces require the use of flat shading. By default, CSGMesh will ignore the mesh's vertex normals, recalculate them for each vertex and use a smooth shader. If a flat shader is required for a face, ensure that all vertex normals of the face are approximately equal. + + + + + The used in drawing the CSG shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An array of 2D points is extruded to quickly and easily create a variety of 3D meshes. See also for using 3D meshes as CSG nodes. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The shape is extruded along the negative Z axis. + + + + + The shape is extruded by rotating it around the Y axis. + + + + + The shape is extruded along the specified in . + + + + + The shape is not rotated. + Note: Requires the path Z coordinates to continually decrease to ensure viable shapes. + + + + + The shape is rotated along the path, but it is not rotated around the path axis. + Note: Requires the path Z coordinates to continually decrease to ensure viable shapes. + + + + + The shape follows the path and its rotations around the path axis. + + + + + When is set to , will determine the distance, in meters, each interval of the path will extrude. + + + + + When is set to , will subdivide the polygons along the path. + + + + + The point array that defines the 2D polygon that is extruded. This can be a convex or concave polygon with 3 or more points. The polygon must not have any intersecting edges. Otherwise, triangulation will fail and no mesh will be generated. + Note: If only 1 or 2 points are defined in , no mesh will be generated. + + + + + The used to extrude the . + + + + + When is , the depth of the extrusion. + + + + + When is , the total number of degrees the is rotated when extruding. + + + + + When is , the number of extrusions made. + + + + + When is , the location of the object used to extrude the . + + + + + When is , this will determine if the interval should be by distance () or subdivision fractions (). + + + + + When is , the path interval or ratio of path points to extrusions. + + + + + When is , extrusions that are less than this angle, will be merged together to reduce polygon count. + + + + + When is , the path rotation method used to rotate the as it is extruded. + + + + + When is , if the of the is used as the starting point for the extrusions, not the of the . + + + + + When is , by default, the top half of the is stretched along the entire length of the extruded shape. If the top half of the material is repeated every step of the extrusion. + + + + + When is , this is the distance along the path, in meters, the texture coordinates will tile. When set to 0, texture coordinates will match geometry exactly with no tiling. + + + + + When is , if the ends of the path are joined, by adding an extrusion between the last and first points of the path. + + + + + If , applies smooth shading to the extrusions. + + + + + Material to use for the resulting mesh. The UV maps the top half of the material to the extruded shape (U along the length of the extrusions and V around the outline of the ), the bottom-left quarter to the front end face, and the bottom-right quarter to the back end face. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'spin_degrees' property. + + + + + Cached name for the 'spin_sides' property. + + + + + Cached name for the 'path_node' property. + + + + + Cached name for the 'path_interval_type' property. + + + + + Cached name for the 'path_interval' property. + + + + + Cached name for the 'path_simplify_angle' property. + + + + + Cached name for the 'path_rotation' property. + + + + + Cached name for the 'path_local' property. + + + + + Cached name for the 'path_continuous_u' property. + + + + + Cached name for the 'path_u_distance' property. + + + + + Cached name for the 'path_joined' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_spin_degrees' method. + + + + + Cached name for the 'get_spin_degrees' method. + + + + + Cached name for the 'set_spin_sides' method. + + + + + Cached name for the 'get_spin_sides' method. + + + + + Cached name for the 'set_path_node' method. + + + + + Cached name for the 'get_path_node' method. + + + + + Cached name for the 'set_path_interval_type' method. + + + + + Cached name for the 'get_path_interval_type' method. + + + + + Cached name for the 'set_path_interval' method. + + + + + Cached name for the 'get_path_interval' method. + + + + + Cached name for the 'set_path_simplify_angle' method. + + + + + Cached name for the 'get_path_simplify_angle' method. + + + + + Cached name for the 'set_path_rotation' method. + + + + + Cached name for the 'get_path_rotation' method. + + + + + Cached name for the 'set_path_local' method. + + + + + Cached name for the 'is_path_local' method. + + + + + Cached name for the 'set_path_continuous_u' method. + + + + + Cached name for the 'is_path_continuous_u' method. + + + + + Cached name for the 'set_path_u_distance' method. + + + + + Cached name for the 'get_path_u_distance' method. + + + + + Cached name for the 'set_path_joined' method. + + + + + Cached name for the 'is_path_joined' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Parent class for various CSG primitives. It contains code and functionality that is common between them. It cannot be used directly. Instead use one of the various classes that inherit from it. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flip_faces' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_flip_faces' method. + + + + + Cached name for the 'get_flip_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the CSG base class that provides CSG operation support to the various CSG nodes in Godot. + Performance: CSG nodes are only intended for prototyping as they have a significant CPU performance cost. + Consider baking final CSG operation results into static geometry that replaces the CSG nodes. + Individual CSG root node results can be baked to nodes with static resources with the editor menu that appears when a CSG root node is selected. + Individual CSG root nodes can also be baked to static resources with scripts by calling for the visual mesh or for the physics collision. + Entire scenes of CSG nodes can be baked to static geometry and exported with the editor gltf scene exporter. + + + + + Geometry of both primitives is merged, intersecting geometry is removed. + + + + + Only intersecting geometry remains, the rest is removed. + + + + + The second shape is subtracted from the first, leaving a dent with its shape. + + + + + The operation that is performed on this shape. This is ignored for the first CSG child node as the operation is between this node and the previous child of this nodes parent. + + + + + This property does nothing. + + + + + Calculate tangents for the CSG shape which allows the use of normal maps. This is only applied on the root shape, this setting is ignored on any child. + + + + + Adds a collision shape to the physics engine for our CSG shape. This will always act like a static body. Note that the collision shape is still active even if the CSG shape itself is hidden. See also and . + + + + + The physics layers this area is in. + Collidable objects can exist in any of 32 different layers. These layers work like a tagging system, and are not visual. A collidable can use these layers to select with which objects it can collide, using the collision_mask property. + A contact is detected if object A is in any of the layers that object B scans, or object B is in any layer scanned by object A. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this CSG shape scans for collisions. Only effective if is . See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. Only effective if is . The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + Returns if this is a root shape and is thus the object that is rendered. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Returns an with two elements, the first is the of this node and the second is the root of this node. Only works when this node is the root shape. + + + + + Returns a baked static of this node's CSG operation result. Materials from involved CSG nodes are added as extra mesh surfaces. Returns an empty mesh if the node is not a CSG root node or has no valid geometry. + + + + + Returns a baked physics of this node's CSG operation result. Returns an empty shape if the node is not a CSG root node or has no valid geometry. + Performance: If the CSG operation results in a very detailed geometry with many faces physics performance will be very slow. Concave shapes should in general only be used for static level geometry and not with dynamic objects that are moving. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operation' property. + + + + + Cached name for the 'snap' property. + + + + + Cached name for the 'calculate_tangents' property. + + + + + Cached name for the 'use_collision' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_root_shape' method. + + + + + Cached name for the 'set_operation' method. + + + + + Cached name for the 'get_operation' method. + + + + + Cached name for the 'set_snap' method. + + + + + Cached name for the 'get_snap' method. + + + + + Cached name for the 'set_use_collision' method. + + + + + Cached name for the 'is_using_collision' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_calculate_tangents' method. + + + + + Cached name for the 'is_calculating_tangents' method. + + + + + Cached name for the 'get_meshes' method. + + + + + Cached name for the 'bake_static_mesh' method. + + + + + Cached name for the 'bake_collision_shape' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node allows you to create a sphere for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + Radius of the sphere. + + + + + Number of vertical slices for the sphere. + + + + + Number of horizontal slices for the sphere. + + + + + If the normals of the sphere are set to give a smooth effect making the sphere seem rounded. If the sphere will have a flat shaded look. + + + + + The material used to render the sphere. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node allows you to create a torus for use with the CSG system. + Note: CSG nodes are intended to be used for level prototyping. Creating CSG nodes has a significant CPU cost compared to creating a with a . Moving a CSG node within another CSG node also has a significant CPU cost, so it should be avoided during gameplay. + + + + + The inner radius of the torus. + + + + + The outer radius of the torus. + + + + + The number of slices the torus is constructed of. + + + + + The number of edges each ring of the torus is constructed of. + + + + + If the normals of the torus are set to give a smooth effect making the torus seem rounded. If the torus will have a flat shaded look. + + + + + The material used to render the torus. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'inner_radius' property. + + + + + Cached name for the 'outer_radius' property. + + + + + Cached name for the 'sides' property. + + + + + Cached name for the 'ring_sides' property. + + + + + Cached name for the 'smooth_faces' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_inner_radius' method. + + + + + Cached name for the 'get_inner_radius' method. + + + + + Cached name for the 'set_outer_radius' method. + + + + + Cached name for the 'get_outer_radius' method. + + + + + Cached name for the 'set_sides' method. + + + + + Cached name for the 'get_sides' method. + + + + + Cached name for the 'set_ring_sides' method. + + + + + Cached name for the 'get_ring_sides' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_smooth_faces' method. + + + + + Cached name for the 'get_smooth_faces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class represents a C# script. It is the C# equivalent of the class and is only available in Mono-enabled Godot builds. + + + + + Returns a new instance of the script. + + + + + Returns a new instance of the script. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'new' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is used to call a method in a tweening sequence. See for more usage information. + The tweener will finish automatically if the callback's target object is freed. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Makes the callback call delayed by given time in seconds. + Example: Call after 2 seconds: + + var tween = get_tree().create_tween() + tween.tween_callback(queue_free).set_delay(2) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_delay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 -based nodes. + Cameras register themselves in the nearest 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 and change the transform of the canvas by setting in (you can obtain the current by using ). + Note that the node's position doesn't represent the actual position of the screen, which may differ due to applied smoothing or limits. You can use to get the real position. + + + + + The camera's position is fixed so that the top-left corner is always at the origin. + + + + + The camera's position takes into account vertical/horizontal offsets and the screen size. + + + + + The camera updates during physics frames (see ). + + + + + The camera updates during process frames (see ). + + + + + The camera's relative offset. Useful for looking around or camera shake animations. The offsetted camera can go past the limits defined in , , and . + + + + + The Camera2D's anchor point. See constants. + + + + + If , the camera's rendered view is not affected by its and . + + + + + Controls whether the camera can be active or not. If , the will become the main camera when it enters the scene tree and there is no active camera currently (see ). + When the camera is currently active and is set to , the next enabled in the scene tree will become active. + + + + + The camera's zoom. A zoom of Vector(2, 2) doubles the size seen in the viewport. A zoom of Vector(0.5, 0.5) halves the size seen in the viewport. + Note: does not take zoom into account. This means that zooming in/out will cause bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated unless the font is part of a that makes it ignore camera zoom. To ensure text remains crisp regardless of zoom, you can enable MSDF font rendering by enabling ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (applies to the default project font only), or enabling Multichannel Signed Distance Field in the import options of a DynamicFont for custom fonts. On system fonts, can be enabled in the inspector. + + + + + The custom node attached to the . If or not a , uses the default viewport instead. + + + + + The camera's process callback. See . + + + + + Left scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + Top scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + Right scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + Bottom scroll limit in pixels. The camera stops moving when reaching this value, but can push the view past the limit. + + + + + If , the camera smoothly stops when reaches its limits. + This property has no effect if is . + Note: To immediately update the camera's position to be within limits without smoothing, even with this setting enabled, invoke . + + + + + If , the camera's view smoothly moves towards its target position at . + + + + + Speed in pixels per second of the camera's smoothing effect when is . + + + + + If , the camera's view smoothly rotates, via asymptotic smoothing, to align with its target rotation at . + Note: This property has no effect if is . + + + + + The angular, asymptotic speed of the camera's rotation smoothing effect when is . + + + + + If , the camera only moves when reaching the horizontal (left and right) drag margins. If , the camera moves horizontally regardless of margins. + + + + + If , the camera only moves when reaching the vertical (top and bottom) drag margins. If , the camera moves vertically regardless of the drag margins. + + + + + The relative horizontal drag offset of the camera between the right (-1) and left (1) drag margins. + Note: Used to set the initial horizontal drag offset; determine the current offset; or force the current offset. It's not automatically updated when is or the drag margins are changed. + + + + + The relative vertical drag offset of the camera between the bottom (-1) and top (1) drag margins. + Note: Used to set the initial vertical drag offset; determine the current offset; or force the current offset. It's not automatically updated when is or the drag margins are changed. + + + + + Left margin needed to drag the camera. A value of 1 makes the camera move only when reaching the left edge of the screen. + + + + + Top margin needed to drag the camera. A value of 1 makes the camera move only when reaching the top edge of the screen. + + + + + Right margin needed to drag the camera. A value of 1 makes the camera move only when reaching the right edge of the screen. + + + + + Bottom margin needed to drag the camera. A value of 1 makes the camera move only when reaching the bottom edge of the screen. + + + + + If , draws the camera's screen rectangle in the editor. + + + + + If , draws the camera's limits rectangle in the editor. + + + + + If , draws the camera's drag margin rectangle in the editor. + + + + + Forces this to become the current active one. must be . + + + + + Returns if this is the active camera (see ). + + + + + Sets the camera limit for the specified . See also , , , and . + + + + + Returns the camera limit for the specified . See also , , , and . + + + + + Sets the specified 's margin. See also , , , and . + + + + + Returns the specified 's margin. See also , , , and . + + + + + Returns this camera's target position, in global coordinates. + Note: The returned value is not the same as , as it is affected by the drag properties. It is also not the same as the current position if is (see ). + + + + + Returns the center of the screen from this camera's point of view, in global coordinates. + Note: The exact targeted position of the camera may be different. See . + + + + + Forces the camera to update scroll immediately. + + + + + Sets the camera's position immediately to its current smoothing destination. + This method has no effect if is . + + + + + Aligns the camera to the tracked node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'anchor_mode' property. + + + + + Cached name for the 'ignore_rotation' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'zoom' property. + + + + + Cached name for the 'custom_viewport' property. + + + + + Cached name for the 'process_callback' property. + + + + + Cached name for the 'limit_left' property. + + + + + Cached name for the 'limit_top' property. + + + + + Cached name for the 'limit_right' property. + + + + + Cached name for the 'limit_bottom' property. + + + + + Cached name for the 'limit_smoothed' property. + + + + + Cached name for the 'position_smoothing_enabled' property. + + + + + Cached name for the 'position_smoothing_speed' property. + + + + + Cached name for the 'rotation_smoothing_enabled' property. + + + + + Cached name for the 'rotation_smoothing_speed' property. + + + + + Cached name for the 'drag_horizontal_enabled' property. + + + + + Cached name for the 'drag_vertical_enabled' property. + + + + + Cached name for the 'drag_horizontal_offset' property. + + + + + Cached name for the 'drag_vertical_offset' property. + + + + + Cached name for the 'drag_left_margin' property. + + + + + Cached name for the 'drag_top_margin' property. + + + + + Cached name for the 'drag_right_margin' property. + + + + + Cached name for the 'drag_bottom_margin' property. + + + + + Cached name for the 'editor_draw_screen' property. + + + + + Cached name for the 'editor_draw_limits' property. + + + + + Cached name for the 'editor_draw_drag_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_anchor_mode' method. + + + + + Cached name for the 'get_anchor_mode' method. + + + + + Cached name for the 'set_ignore_rotation' method. + + + + + Cached name for the 'is_ignoring_rotation' method. + + + + + Cached name for the 'set_process_callback' method. + + + + + Cached name for the 'get_process_callback' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached name for the 'set_limit' method. + + + + + Cached name for the 'get_limit' method. + + + + + Cached name for the 'set_limit_smoothing_enabled' method. + + + + + Cached name for the 'is_limit_smoothing_enabled' method. + + + + + Cached name for the 'set_drag_vertical_enabled' method. + + + + + Cached name for the 'is_drag_vertical_enabled' method. + + + + + Cached name for the 'set_drag_horizontal_enabled' method. + + + + + Cached name for the 'is_drag_horizontal_enabled' method. + + + + + Cached name for the 'set_drag_vertical_offset' method. + + + + + Cached name for the 'get_drag_vertical_offset' method. + + + + + Cached name for the 'set_drag_horizontal_offset' method. + + + + + Cached name for the 'get_drag_horizontal_offset' method. + + + + + Cached name for the 'set_drag_margin' method. + + + + + Cached name for the 'get_drag_margin' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'get_screen_center_position' method. + + + + + Cached name for the 'set_zoom' method. + + + + + Cached name for the 'get_zoom' method. + + + + + Cached name for the 'set_custom_viewport' method. + + + + + Cached name for the 'get_custom_viewport' method. + + + + + Cached name for the 'set_position_smoothing_speed' method. + + + + + Cached name for the 'get_position_smoothing_speed' method. + + + + + Cached name for the 'set_position_smoothing_enabled' method. + + + + + Cached name for the 'is_position_smoothing_enabled' method. + + + + + Cached name for the 'set_rotation_smoothing_enabled' method. + + + + + Cached name for the 'is_rotation_smoothing_enabled' method. + + + + + Cached name for the 'set_rotation_smoothing_speed' method. + + + + + Cached name for the 'get_rotation_smoothing_speed' method. + + + + + Cached name for the 'force_update_scroll' method. + + + + + Cached name for the 'reset_smoothing' method. + + + + + Cached name for the 'align' method. + + + + + Cached name for the 'set_screen_drawing_enabled' method. + + + + + Cached name for the 'is_screen_drawing_enabled' method. + + + + + Cached name for the 'set_limit_drawing_enabled' method. + + + + + Cached name for the 'is_limit_drawing_enabled' method. + + + + + Cached name for the 'set_margin_drawing_enabled' method. + + + + + Cached name for the 'is_margin_drawing_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a special node that displays what is visible from its current location. Cameras register themselves in the nearest 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 , and, without one, a scene registered in that (or higher viewports) can't be displayed. + + + + + Perspective projection. Objects on the screen becomes smaller when they are far away. + + + + + Orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + + + + + Frustum projection. This mode allows adjusting to create "tilted frustum" effects. + + + + + 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. + + + + + 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. + + + + + Disables Doppler effect simulation (default). + + + + + Simulate Doppler effect by tracking positions of objects that are changed in _process. Changes in the relative velocity of this camera compared to those objects affect how audio is perceived (changing the audio's ). + + + + + Simulate Doppler effect by tracking positions of objects that are changed in _physics_process. Changes in the relative velocity of this camera compared to those objects affect how audio is perceived (changing the audio's ). + + + + + The axis to lock during / adjustments. Can be either or . + + + + + The culling mask that describes which are rendered by this camera. By default, all 20 user-visible layers are rendered. + Note: Since the allows for 32 layers to be stored in total, there are an additional 12 layers that are only used internally by the engine and aren't exposed in the editor. Setting using a script allows you to toggle those reserved layers, which can be useful for editor plugins. + To adjust more easily using a script, use and . + Note: , SDFGI and will always take all layers into account to determine what contributes to global illumination. If this is an issue, set to for meshes and to for lights to exclude them from global illumination. + + + + + The to use for this camera. + + + + + The to use for this camera. + + + + + The to use for this camera. + + + + + The horizontal (X) offset of the camera viewport. + + + + + The vertical (Y) offset of the camera viewport. + + + + + If not , this camera will simulate the Doppler effect for objects changed in particular _process methods. See for possible values. + + + + + The camera's projection mode. In mode, objects' Z distance from the camera's local space scales their perceived size. + + + + + If , the ancestor is currently using this camera. + If multiple cameras are in the scene, one will always be made current. For example, if two nodes are present in the scene and only one is current, setting one camera's to will cause the other camera to be made current. + + + + + The camera's field of view angle (in degrees). Only applicable in perspective mode. Since locks one axis, sets the other axis' field of view angle. + For reference, the default vertical field of view value (75.0) is equivalent to a horizontal FOV of: + - ~91.31 degrees in a 4:3 viewport + - ~101.67 degrees in a 16:10 viewport + - ~107.51 degrees in a 16:9 viewport + - ~121.63 degrees in a 21:9 viewport + + + + + The camera's size in meters measured as the diameter of the width or height, depending on . Only applicable in orthogonal and frustum modes. + + + + + The camera's frustum offset. This can be changed from the default to create "tilted frustum" effects such as Y-shearing. + Note: Only effective if is . + + + + + The distance to the near culling boundary for this camera relative to its local Z axis. Lower values allow the camera to see objects more up close to its origin, at the cost of lower precision across the entire range. Values lower than the default can lead to increased Z-fighting. + + + + + The distance to the far culling boundary for this camera relative to its local Z axis. Higher values allow the camera to see further away, while decreasing can improve performance if it results in objects being partially or fully culled. + + + + + Returns a normal vector in world space, that is the result of projecting a point on the rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. + + + + + Returns a normal vector from the screen point location directed along the camera. Orthogonal cameras are normalized. Perspective cameras account for perspective, screen width/height, etc. + + + + + Returns a 3D position in world space, that is the result of projecting a point on the rectangle by the inverse camera projection. This is useful for casting rays in the form of (origin, normal) for object intersection or picking. + + + + + Returns the 2D coordinate in the rectangle that maps to the given 3D point in world space. + Note: When using this to position GUI elements over a 3D viewport, use to prevent them from appearing if the 3D point is behind the camera: + + # This code block is part of a script that inherits from Node3D. + # `control` is a reference to a node inheriting from Control. + control.visible = not get_viewport().get_camera_3d().is_position_behind(global_transform.origin) + control.position = get_viewport().get_camera_3d().unproject_position(global_transform.origin) + + + + + + Returns if the given position is behind the camera (the blue part of the linked diagram). See this diagram for an overview of position query methods. + Note: A position which returns may still be outside the camera's field of view. + + + + + Returns the 3D point in world space that maps to the given 2D coordinate in the rectangle on a plane that is the given distance into the scene away from the camera. + + + + + Sets the camera projection to perspective mode (see ), by specifying a (field of view) angle in degrees, and the and clip planes in world space units. + + + + + Sets the camera projection to orthogonal mode (see ), by specifying a , and the and clip planes in world space units. (As a hint, 2D games often use this projection, with values specified in pixels.) + + + + + Sets the camera projection to frustum mode (see ), by specifying a , an , and the and clip planes in world space units. See also . + + + + + Makes this camera the current camera for the (see class description). If the camera node is outside the scene tree, it will attempt to become current once it's added. + + + + + If this is the current camera, remove it from being current. If is , request to make the next camera current, if any. + + + + + Returns the transform of the camera plus the vertical () and horizontal () offsets; and any other adjustments made to the position and orientation of the camera by subclassed cameras such as . + + + + + Returns the projection matrix that this camera uses to render to its associated viewport. The camera must be part of the scene tree to function. + + + + + Returns the camera's frustum planes in world space units as an array of s in the following order: near, far, left, top, right, bottom. Not to be confused with . + + + + + Returns if the given position is inside the camera's frustum (the green part of the linked diagram). See this diagram for an overview of position query methods. + + + + + Returns the camera's RID from the . + + + + + Returns the RID of a pyramid shape encompassing the camera's view frustum, ignoring the camera's near plane. The tip of the pyramid represents the position of the camera. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 20. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 20. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'keep_aspect' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached name for the 'environment' property. + + + + + Cached name for the 'attributes' property. + + + + + Cached name for the 'compositor' property. + + + + + Cached name for the 'h_offset' property. + + + + + Cached name for the 'v_offset' property. + + + + + Cached name for the 'doppler_tracking' property. + + + + + Cached name for the 'projection' property. + + + + + Cached name for the 'current' property. + + + + + Cached name for the 'fov' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'frustum_offset' property. + + + + + Cached name for the 'near' property. + + + + + Cached name for the 'far' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'project_ray_normal' method. + + + + + Cached name for the 'project_local_ray_normal' method. + + + + + Cached name for the 'project_ray_origin' method. + + + + + Cached name for the 'unproject_position' method. + + + + + Cached name for the 'is_position_behind' method. + + + + + Cached name for the 'project_position' method. + + + + + Cached name for the 'set_perspective' method. + + + + + Cached name for the 'set_orthogonal' method. + + + + + Cached name for the 'set_frustum' method. + + + + + Cached name for the 'make_current' method. + + + + + Cached name for the 'clear_current' method. + + + + + Cached name for the 'set_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached name for the 'get_camera_transform' method. + + + + + Cached name for the 'get_camera_projection' method. + + + + + Cached name for the 'get_fov' method. + + + + + Cached name for the 'get_frustum_offset' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_far' method. + + + + + Cached name for the 'get_near' method. + + + + + Cached name for the 'set_fov' method. + + + + + Cached name for the 'set_frustum_offset' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'set_far' method. + + + + + Cached name for the 'set_near' method. + + + + + Cached name for the 'get_projection' method. + + + + + Cached name for the 'set_projection' method. + + + + + Cached name for the 'set_h_offset' method. + + + + + Cached name for the 'get_h_offset' method. + + + + + Cached name for the 'set_v_offset' method. + + + + + Cached name for the 'get_v_offset' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_attributes' method. + + + + + Cached name for the 'get_attributes' method. + + + + + Cached name for the 'set_compositor' method. + + + + + Cached name for the 'get_compositor' method. + + + + + Cached name for the 'set_keep_aspect_mode' method. + + + + + Cached name for the 'get_keep_aspect_mode' method. + + + + + Cached name for the 'set_doppler_tracking' method. + + + + + Cached name for the 'get_doppler_tracking' method. + + + + + Cached name for the 'get_frustum' method. + + + + + Cached name for the 'is_position_in_frustum' method. + + + + + Cached name for the 'get_camera_rid' method. + + + + + Cached name for the 'get_pyramid_shape_rid' method. + + + + + Cached name for the 'set_cull_mask_value' method. + + + + + Cached name for the 'get_cull_mask_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Controls camera-specific attributes such as depth of field and exposure override. + When used in a it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own , including the editor camera. When used in a it will override any set in the . When used in or , only the exposure settings will be used. + See also for general 3D environment settings. + This is a pure virtual class that is inherited by and . + + + + + Sensitivity of camera sensors, measured in ISO. A higher sensitivity results in a brighter image. + If is , this can be used as a method of exposure compensation, doubling the value will increase the exposure value (measured in EV100) by 1 stop. + Note: Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. + + + + + Multiplier for the exposure amount. A higher value results in a brighter image. + + + + + If , enables the tonemapping auto exposure mode of the scene renderer. If , the renderer will automatically determine the exposure setting to adapt to the scene's illumination and the observed light. + + + + + The scale of the auto exposure effect. Affects the intensity of auto exposure. + + + + + The speed of the auto exposure effect. Affects the time needed for the camera to perform auto exposure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'exposure_sensitivity' property. + + + + + Cached name for the 'exposure_multiplier' property. + + + + + Cached name for the 'auto_exposure_enabled' property. + + + + + Cached name for the 'auto_exposure_scale' property. + + + + + Cached name for the 'auto_exposure_speed' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_exposure_multiplier' method. + + + + + Cached name for the 'get_exposure_multiplier' method. + + + + + Cached name for the 'set_exposure_sensitivity' method. + + + + + Cached name for the 'get_exposure_sensitivity' method. + + + + + Cached name for the 'set_auto_exposure_enabled' method. + + + + + Cached name for the 'is_auto_exposure_enabled' method. + + + + + Cached name for the 'set_auto_exposure_speed' method. + + + + + Cached name for the 'get_auto_exposure_speed' method. + + + + + Cached name for the 'set_auto_exposure_scale' method. + + + + + Cached name for the 'get_auto_exposure_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own , including the editor camera. When used in a it will override any set in the and will override the s , , , and properties. When used in or , only the exposure settings will be used. + The default settings are intended for use in an outdoor environment, tips for settings for use in an indoor environment can be found in each setting's documentation. + Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Distance from camera of object that will be in focus, measured in meters. Internally this will be clamped to be at least 1 millimeter larger than . + + + + + Distance between camera lens and camera aperture, measured in millimeters. Controls field of view and depth of field. A larger focal length will result in a smaller field of view and a narrower depth of field meaning fewer objects will be in focus. A smaller focal length will result in a wider field of view and a larger depth of field meaning more objects will be in focus. When attached to a as its , it will override the property and the property. + + + + + Override value for . Used internally when calculating depth of field. When attached to a as its , it will override the property. + + + + + Override value for . Used internally when calculating depth of field. When attached to a as its , it will override the property. + + + + + Size of the aperture of the camera, measured in f-stops. An f-stop is a unitless ratio between the focal length of the camera and the diameter of the aperture. A high aperture setting will result in a smaller aperture which leads to a dimmer image and sharper focus. A low aperture results in a wide aperture which lets in more light resulting in a brighter, less-focused image. Default is appropriate for outdoors at daytime (i.e. for use with a default ), for indoor lighting, a value between 2 and 4 is more appropriate. + Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. + + + + + Time for shutter to open and close, evaluated as 1 / shutter_speed seconds. A higher value will allow less light (leading to a darker image), while a lower value will allow more light (leading to a brighter image). + Only available when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. + + + + + The minimum luminance (in EV100) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing above a certain brightness, resulting in a cut off point where the scene will remain dark. + + + + + The maximum luminance (in EV100) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing below a certain brightness, resulting in a cut off point where the scene will remain bright. + + + + + Returns the vertical field of view that corresponds to the . This value is calculated internally whenever is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'frustum_focus_distance' property. + + + + + Cached name for the 'frustum_focal_length' property. + + + + + Cached name for the 'frustum_near' property. + + + + + Cached name for the 'frustum_far' property. + + + + + Cached name for the 'exposure_aperture' property. + + + + + Cached name for the 'exposure_shutter_speed' property. + + + + + Cached name for the 'auto_exposure_min_exposure_value' property. + + + + + Cached name for the 'auto_exposure_max_exposure_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_aperture' method. + + + + + Cached name for the 'get_aperture' method. + + + + + Cached name for the 'set_shutter_speed' method. + + + + + Cached name for the 'get_shutter_speed' method. + + + + + Cached name for the 'set_focal_length' method. + + + + + Cached name for the 'get_focal_length' method. + + + + + Cached name for the 'set_focus_distance' method. + + + + + Cached name for the 'get_focus_distance' method. + + + + + Cached name for the 'set_near' method. + + + + + Cached name for the 'get_near' method. + + + + + Cached name for the 'set_far' method. + + + + + Cached name for the 'get_far' method. + + + + + Cached name for the 'get_fov' method. + + + + + Cached name for the 'set_auto_exposure_max_exposure_value' method. + + + + + Cached name for the 'get_auto_exposure_max_exposure_value' method. + + + + + Cached name for the 'set_auto_exposure_min_exposure_value' method. + + + + + Cached name for the 'get_auto_exposure_min_exposure_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Controls camera-specific attributes such as auto-exposure, depth of field, and exposure override. + When used in a it provides default settings for exposure, auto-exposure, and depth of field that will be used by all cameras without their own , including the editor camera. When used in a it will override any set in the . When used in or , only the exposure settings will be used. + + + + + Enables depth of field blur for objects further than . Strength of blur is controlled by and modulated by . + Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Objects further from the by this amount will be blurred by the depth of field effect. Measured in meters. + + + + + When positive, distance over which (starting from ) blur effect will scale from 0 to . When negative, uses physically-based scaling so depth of field effect will scale from 0 at and will increase in a physically accurate way as objects get further from the . + + + + + Enables depth of field blur for objects closer than . Strength of blur is controlled by and modulated by . + Note: Depth of field blur is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Objects closer from the by this amount will be blurred by the depth of field effect. Measured in meters. + + + + + When positive, distance over which blur effect will scale from 0 to , ending at . When negative, uses physically-based scaling so depth of field effect will scale from 0 at and will increase in a physically accurate way as objects get closer to the . + + + + + Sets the maximum amount of blur. When using physically-based blur amounts, will instead act as a multiplier. High values lead to an increased amount of blurriness, but can be much more expensive to calculate. It is best to keep this as low as possible for a given art style. + + + + + The minimum sensitivity (in ISO) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing above a certain brightness, resulting in a cut off point where the scene will remain dark. + + + + + The maximum sensitivity (in ISO) used when calculating auto exposure. When calculating scene average luminance, color values will be clamped to at least this value. This limits the auto-exposure from exposing below a certain brightness, resulting in a cut off point where the scene will remain bright. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'dof_blur_far_enabled' property. + + + + + Cached name for the 'dof_blur_far_distance' property. + + + + + Cached name for the 'dof_blur_far_transition' property. + + + + + Cached name for the 'dof_blur_near_enabled' property. + + + + + Cached name for the 'dof_blur_near_distance' property. + + + + + Cached name for the 'dof_blur_near_transition' property. + + + + + Cached name for the 'dof_blur_amount' property. + + + + + Cached name for the 'auto_exposure_min_sensitivity' property. + + + + + Cached name for the 'auto_exposure_max_sensitivity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_dof_blur_far_enabled' method. + + + + + Cached name for the 'is_dof_blur_far_enabled' method. + + + + + Cached name for the 'set_dof_blur_far_distance' method. + + + + + Cached name for the 'get_dof_blur_far_distance' method. + + + + + Cached name for the 'set_dof_blur_far_transition' method. + + + + + Cached name for the 'get_dof_blur_far_transition' method. + + + + + Cached name for the 'set_dof_blur_near_enabled' method. + + + + + Cached name for the 'is_dof_blur_near_enabled' method. + + + + + Cached name for the 'set_dof_blur_near_distance' method. + + + + + Cached name for the 'get_dof_blur_near_distance' method. + + + + + Cached name for the 'set_dof_blur_near_transition' method. + + + + + Cached name for the 'get_dof_blur_near_transition' method. + + + + + Cached name for the 'set_dof_blur_amount' method. + + + + + Cached name for the 'get_dof_blur_amount' method. + + + + + Cached name for the 'set_auto_exposure_max_sensitivity' method. + + + + + Cached name for the 'get_auto_exposure_max_sensitivity' method. + + + + + Cached name for the 'set_auto_exposure_min_sensitivity' method. + + + + + Cached name for the 'get_auto_exposure_min_sensitivity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + Note: Many cameras will return YCbCr images which are split into two textures and need to be combined in a shader. Godot does this automatically for you if you set the environment to show the camera image in the background. + Note: This class is currently only implemented on Linux, macOS, and iOS. On other platforms no s will be available. To get a on iOS, the camera plugin from godot-ios-plugins is required. + + + + + No image set for the feed. + + + + + Feed supplies RGB images. + + + + + Feed supplies YCbCr images that need to be converted to RGB. + + + + + Feed supplies separate Y and CbCr images that need to be combined and converted to RGB. + + + + + Feed supplies external image. + + + + + Unspecified position. + + + + + Camera is mounted at the front of the device. + + + + + Camera is mounted at the back of the device. + + + + + If , the feed is active. + + + + + The transform applied to the camera's image. + + + + + Formats supported by the feed. Each entry is a describing format parameters. + + + + + Called when the camera feed is activated. + + + + + Called when the camera feed is deactivated. + + + + + Returns the unique ID for this feed. + + + + + Returns the camera's name. + + + + + Sets the camera's name. + + + + + Returns the position of camera on the device. + + + + + Sets the position of this camera. + + + + + Sets RGB image for this feed. + + + + + Sets YCbCr image for this feed. + + + + + Sets the feed as external feed provided by another library. + + + + + Returns the texture backend ID (usable by some external libraries that need a handle to a texture to write data). + + + + + Returns feed image data type. + + + + + Sets the feed format parameters for the given index in the array. Returns on success. By default YUYV encoded stream is transformed to FEED_RGB. YUYV encoded stream output format can be changed with .output value: + separate will result in FEED_YCBCR_SEP + grayscale will result in desaturated FEED_RGB + copy will result in FEED_YCBCR + + + + + Emitted when a new frame is available. + + + + + Emitted when the format has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'feed_is_active' property. + + + + + Cached name for the 'feed_transform' property. + + + + + Cached name for the 'formats' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_activate_feed' method. + + + + + Cached name for the '_deactivate_feed' method. + + + + + Cached name for the 'get_id' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'set_rgb_image' method. + + + + + Cached name for the 'set_ycbcr_image' method. + + + + + Cached name for the 'set_external' method. + + + + + Cached name for the 'get_texture_tex_id' method. + + + + + Cached name for the 'get_datatype' method. + + + + + Cached name for the 'get_formats' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'format_changed' signal. + + + + + The keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone. + It is notably used to provide AR modules with a video feed from the camera. + Note: This class is currently only implemented on Linux, macOS, and iOS. On other platforms no s will be available. To get a on iOS, the camera plugin from godot-ios-plugins is required. + + + + + The RGBA camera image. + + + + + The YCbCr camera image. + + + + + The Y component camera image. + + + + + The CbCr component camera image. + + + + + Returns the corresponding to the camera with the given . + + + + + Returns the number of s registered. + + + + + Returns an array of s. + + + + + Adds the camera to the camera server. + + + + + Removes the specified camera . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is added (e.g. a webcam is plugged in). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is removed (e.g. a webcam is unplugged). + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_feed' method. + + + + + Cached name for the 'get_feed_count' method. + + + + + Cached name for the 'feeds' method. + + + + + Cached name for the 'add_feed' method. + + + + + Cached name for the 'remove_feed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'camera_feed_added' signal. + + + + + Cached name for the 'camera_feed_removed' signal. + + + + + The keeps track of different cameras accessible in Godot. These are external cameras such as webcams or the cameras on your phone. + It is notably used to provide AR modules with a video feed from the camera. + Note: This class is currently only implemented on Linux, macOS, and iOS. On other platforms no s will be available. To get a on iOS, the camera plugin from godot-ios-plugins is required. + + + + + Returns the corresponding to the camera with the given . + + + + + Returns the number of s registered. + + + + + Returns an array of s. + + + + + Adds the camera to the camera server. + + + + + Removes the specified camera . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is added (e.g. a webcam is plugged in). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a is removed (e.g. a webcam is unplugged). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_feed' method. + + + + + Cached name for the 'get_feed_count' method. + + + + + Cached name for the 'feeds' method. + + + + + Cached name for the 'add_feed' method. + + + + + Cached name for the 'remove_feed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'camera_feed_added' signal. + + + + + Cached name for the 'camera_feed_removed' signal. + + + + + This texture gives access to the camera texture provided by a . + Note: Many cameras supply YCbCr images which need to be converted in a shader. + + + + + The ID of the for which we want to display the image. + + + + + Which image within the we want access to, important if the camera image is split in a Y and CbCr component. + + + + + Convenience property that gives access to the active property of the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'camera_feed_id' property. + + + + + Cached name for the 'which_feed' property. + + + + + Cached name for the 'camera_is_active' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_camera_feed_id' method. + + + + + Cached name for the 'get_camera_feed_id' method. + + + + + Cached name for the 'set_which_feed' method. + + + + + Cached name for the 'get_which_feed' method. + + + + + Cached name for the 'set_camera_active' method. + + + + + Cached name for the 'get_camera_active' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Child nodes of a are drawn as a single object. It allows to e.g. draw overlapping translucent 2D nodes without blending (set property of to achieve this effect). + Note: The uses a custom shader to read from the backbuffer to draw its children. Assigning a to the overrides the builtin shader. To duplicate the behavior of the builtin shader in a custom use the following: + + shader_type canvas_item; + render_mode unshaded; + + uniform sampler2D screen_texture : hint_screen_texture, repeat_disable, filter_nearest; + + void fragment() { + vec4 c = textureLod(screen_texture, SCREEN_UV, 0.0); + + if (c.a > 0.0001) { + c.rgb /= c.a; + } + + COLOR *= c; + } + + Note: Since and both utilize the backbuffer, children of a who have their set to anything other than will not function correctly. + + + + + Sets the size of a margin used to expand the drawable rect of this . The size of the is determined by fitting a rect around its children then expanding that rect by . This increases both the backbuffer area used and the area covered by the both of which can reduce performance. This should be kept as small as possible and should only be expanded when an increased size is needed (e.g. for custom shader effects). + + + + + Sets the size of the margin used to expand the clearing rect of this . This expands the area of the backbuffer that will be used by the . A smaller margin will reduce the area of the backbuffer used which can increase performance, however if is enabled, a small margin may result in mipmap errors at the edge of the . Accordingly, this should be left as small as possible, but should be increased if artifacts appear along the edges of the canvas group. + + + + + If , calculates mipmaps for the backbuffer before drawing the so that mipmaps can be used in a custom attached to the . Generating mipmaps has a performance cost so this should not be enabled unless required. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fit_margin' property. + + + + + Cached name for the 'clear_margin' property. + + + + + Cached name for the 'use_mipmaps' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fit_margin' method. + + + + + Cached name for the 'get_fit_margin' method. + + + + + Cached name for the 'set_clear_margin' method. + + + + + Cached name for the 'get_clear_margin' method. + + + + + Cached name for the 'set_use_mipmaps' method. + + + + + Cached name for the 'is_using_mipmaps' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for everything in 2D space. Canvas items are laid out in a tree; children inherit and extend their parent's transform. is extended by for GUI-related nodes, and by for 2D game objects. + Any can draw. For this, is called by the engine, then 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 are provided (see draw_* functions). However, they can only be used inside , its corresponding or methods connected to the signal. + Canvas items are drawn in tree order on their canvas layer. By default, children are on top of their parents, so a root will be drawn behind everything. This behavior can be changed on a per-item basis. + A can be hidden, which will also hide its children. By adjusting various other properties of a , you can also modulate its color (via or ), change its Z-index, blend mode, and more. + Note that properties like transform, modulation, and visibility are only propagated to direct child nodes. If there is a non- node in between, like or , the nodes below will have an independent position and chain. See also . + + + + + The 's global transform has changed. This notification is only received if enabled by . + + + + + The 's local transform has changed. This notification is only received if enabled by . + + + + + The is requested to draw (see ). + + + + + The 's visibility has changed. + + + + + The has entered the canvas. + + + + + The has exited the canvas. + + + + + The 's active changed. + + + + + The will inherit the filter from its parent. + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + Represents the size of the enum. + + + + + The will inherit the filter from its parent. + + + + + Texture will not repeat. + + + + + Texture will repeat normally. + + + + + Texture will repeat in a 2×2 tiled mode, where elements at even positions are mirrored. + + + + + Represents the size of the enum. + + + + + Child draws over parent and is not clipped. + + + + + Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn. + + + + + Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area. + + + + + Represents the size of the enum. + + + + + If , this may be drawn. Whether this is actually drawn depends on the visibility of all of its ancestors. In other words: this will be drawn when returns and all ancestors share at least one with this . + Note: For controls that inherit , the correct way to make them visible is to call one of the multiple popup*() functions instead. + + + + + The color applied to this . This property does affect child s, unlike which only affects the node itself. + + + + + The color applied to this . This property does not affect child s, unlike which affects both the node itself and its children. + Note: Internal children (e.g. sliders in or tab bar in ) are also not affected by this property (see include_internal parameter of and other similar methods). + + + + + If , the object draws behind its parent. + + + + + If , this will not inherit its transform from parent s. Its draw order will also be changed to make it draw on top of other s that do not have set to . The will effectively act as if it was placed as a child of a bare . + + + + + Allows the current node to clip child nodes, essentially acting as a mask. + Note: Clipping nodes cannot be nested or placed within s. If an ancestor of this node clips its children or is a , then this node's clip mode should be set to to avoid unexpected behavior. + + + + + The rendering layers in which this responds to nodes. + + + + + The rendering layer in which this is rendered by nodes. A will render a if it and all its parents share a layer with the 's canvas cull mask. + + + + + Controls the order in which the nodes render. A node with a higher Z index will display in front of others. Must be between and (inclusive). + Note: Changing the Z index of a only affects the drawing order, not the order in which input events are handled. This can be useful to implement certain UI animations, e.g. a menu where hovered items are scaled and should overlap others. + + + + + If , the node's Z index is relative to its parent's Z index. If this node's Z index is 2 and its parent's effective Z index is 3, then this node's effective Z index will be 2 + 3 = 5. + + + + + If , this and child nodes with a higher Y position are rendered in front of nodes with a lower Y position. If , this and child nodes are rendered normally in scene tree order. + With Y-sorting enabled on a parent node ('A') but disabled on a child node ('B'), the child node ('B') is sorted but its children ('C1', 'C2', etc.) render together on the same Y position as the child node ('B'). This allows you to organize the render order of a scene without changing the scene tree. + Nodes sort relative to each other only if they are on the same . + + + + + The texture filtering mode to use on this . + + + + + The texture repeating mode to use on this . + + + + + The material applied to this . + + + + + If , the parent 's property is used as this one's material. + + + + + Called when has been requested to redraw (after is called, either manually or by the engine). + Corresponds to the notification in . + + + + + Returns the canvas item RID used by for this item. + + + + + Returns if the node is present in the , its property is and all its ancestors are also visible. If any ancestor is hidden, this node will not be visible in the scene tree, and is therefore not drawn (see ). + Visibility is checked only in parent nodes that inherit from , , and . If the parent is of any other type (such as , , or ), it is assumed to be visible. + Note: This method does not take into account, so even if this method returns the node might end up not being rendered. + + + + + Show the if it's currently hidden. This is equivalent to setting to . For controls that inherit , the correct way to make them visible is to call one of the multiple popup*() functions instead. + + + + + Hide the if it's currently visible. This is equivalent to setting to . + + + + + Queues the to redraw. During idle time, if is visible, is sent and is called. This only occurs once per frame, even if this method has been called multiple times. + + + + + Moves this node to display on top of its siblings. + Internally, the node is moved to the bottom of parent's child list. The method has no effect on nodes without a parent. + + + + + Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also and . + If is negative, then a two-point primitive will be drawn instead of a four-point one. This means that when the CanvasItem is scaled, the line will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws a dashed line from a 2D point to another, with a given color and width. See also and . + If is negative, then a two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the line parts will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is greater than 0.0. + + + + + Draws interconnected line segments with a uniform and and optional antialiasing (supported only for positive ). When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws interconnected line segments with a uniform and and optional antialiasing (supported only for positive ). When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws interconnected line segments with a uniform , point-by-point coloring, and optional antialiasing (supported only for positive ). Colors assigned to line points match by index between and , i.e. each line segment is filled with a gradient between the colors of the endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws interconnected line segments with a uniform , point-by-point coloring, and optional antialiasing (supported only for positive ). Colors assigned to line points match by index between and , i.e. each line segment is filled with a gradient between the colors of the endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw disconnected lines, use instead. See also . + If is negative, it will be ignored and the polyline will be drawn using . This means that when the CanvasItem is scaled, the polyline will remain thin. If this behavior is not desired, then pass a positive like 1.0. + + + + + Draws an unfilled arc between the given angles with a uniform and and optional antialiasing (supported only for positive ). The larger the value of , the smoother the curve. See also . + If is negative, it will be ignored and the arc will be drawn using . This means that when the CanvasItem is scaled, the arc will remain thin. If this behavior is not desired, then pass a positive like 1.0. + The arc is drawn from towards the value of so in clockwise direction if start_angle < end_angle and counter-clockwise otherwise. Passing the same angles but in reversed order will produce the same arc. If absolute difference of and is greater than @GDScript.TAU radians, then a full circle arc is drawn (i.e. arc will not overlap itself). + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws a rectangle. If is , the rectangle will be filled with the specified. If is , the rectangle will be drawn as a stroke with the and specified. See also . + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + Note: Unfilled rectangles drawn with a negative may not display perfectly. For example, corners may be missing or brighter due to overlapping lines (for a translucent ). + + + + + Draws a circle. See also , , and . + If is , the circle will be filled with the specified. If is , the circle will be drawn as a stroke with the and specified. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + + + + + Draws a texture at a given position. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle at a given position, optionally modulated by a color. If is , the texture will have its X and Y coordinates swapped. See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle from a texture's region (specified by ) at a given position, optionally modulated by a color. If is , the texture will have its X and Y coordinates swapped. See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle region of the multi-channel signed distance field texture at a given position, optionally modulated by a color. See for more information and caveats about MSDF font rendering. + If is positive, each alpha channel value of pixel in region is set to maximum value of true distance in the radius. + Value of the should the same that was used during distance field texture generation. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a textured rectangle region of the font texture with LCD subpixel anti-aliasing at a given position, optionally modulated by a color. + Texture is drawn using the following blend operation, blend mode of the is ignored: + + dst.r = texture.r * modulate.r * modulate.a + dst.r * (1.0 - texture.r * modulate.a); + dst.g = texture.g * modulate.g * modulate.a + dst.g * (1.0 - texture.g * modulate.a); + dst.b = texture.b * modulate.b * modulate.a + dst.b * (1.0 - texture.b * modulate.a); + dst.a = modulate.a + dst.a * (1.0 - modulate.a); + + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a styled rectangle. + + + + + Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. See also , , , and . + + + + + Draws a custom primitive. 1 point for a point, 2 points for a line, 3 points for a triangle, and 4 points for a quad. If 0 points or more than 4 points are specified, nothing will be drawn and an error message will be printed. See also , , , and . + + + + + Draws a solid polygon of any number of points, convex or concave. Unlike , each point's color can be changed individually. See also and . If you need more flexibility (such as being able to use bones), use instead. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a solid polygon of any number of points, convex or concave. Unlike , each point's color can be changed individually. See also and . If you need more flexibility (such as being able to use bones), use instead. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws a colored polygon of any number of points, convex or concave. Unlike , a single color must be specified for the whole polygon. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a colored polygon of any number of points, convex or concave. Unlike , a single color must be specified for the whole polygon. + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws using the specified at the (bottom-left corner using the baseline of the font). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + Example: Draw "Hello world", using the project's default font: + + // If using this method in a script that redraws constantly, move the + // `default_font` declaration to a member variable assigned in `_Ready()` + // so the Control is only created once. + Font defaultFont = ThemeDB.FallbackFont; + int defaultFontSize = ThemeDB.FallbackFontSize; + DrawString(defaultFont, new Vector2(64, 64), "Hello world", HORIZONTAL_ALIGNMENT_LEFT, -1, defaultFontSize); + + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks into lines and draws it using the specified at the (top-left corner). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws outline using the specified at the (bottom-left corner using the baseline of the font). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks to the lines and draws text outline using the specified at the (top-left corner). The text will have its color multiplied by . If is greater than or equal to 0, the text will be clipped if it exceeds the specified width. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a string first character using a custom font. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a string first character outline using a custom font. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a in 2D, using the provided texture. See for related documentation. + + If the parameter is null, then the default value is Transform2D.Identity. + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a in 2D with the provided texture. See for related documentation. + + + + + Sets a custom transform for drawing via components. Anything drawn afterwards will be transformed by this. + Note: does not take into account. This means that scaling up/down will cause bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated. To ensure text remains crisp regardless of scale, you can enable MSDF font rendering by enabling ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (applies to the default project font only), or enabling Multichannel Signed Distance Field in the import options of a DynamicFont for custom fonts. On system fonts, can be enabled in the inspector. + + If the parameter is null, then the default value is new Vector2(1.0f, 1.0f). + + + + Sets a custom transform for drawing via matrix. Anything drawn afterwards will be transformed by this. + + + + + Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly. + + + + + After submitting all animations slices via , this function can be used to revert drawing to its default state (all subsequent drawing commands will be visible). If you don't care about this particular use case, usage of this function after submitting the slices is not required. + + + + + Returns the transform matrix of this item. + + + + + Returns the global transform matrix of this item, i.e. the combined transform up to the topmost node. The topmost item is a that either has no parent, has non- parent or it has enabled. + + + + + Returns the transform from the local coordinate system of this to the s coordinate system. + + + + + Returns the transform from the coordinate system of the canvas, this item is in, to the s embedders coordinate system. + + + + + Returns the viewport's boundaries as a . + + + + + Returns the transform from the coordinate system of the canvas, this item is in, to the s coordinate system. + + + + + Returns the transform of this in global screen coordinates (i.e. taking window position into account). Mostly useful for editor plugins. + Equals to if the window is embedded (see ). + + + + + Returns the mouse's position in this using the local coordinate system of this . + + + + + Returns the mouse's position in the that this is in using the coordinate system of the . + Note: For screen-space coordinates (e.g. when using a non-embedded ), you can use . + + + + + Returns the of the canvas where this item is in. + + + + + Returns the that contains this node, or if the node is not in any . + + + + + Returns the where this item is in. + + + + + If is , this node will receive when its local transform changes. + + + + + Returns if local transform notifications are communicated to children. + + + + + If is , this node will receive when its global transform changes. + + + + + Returns if global transform notifications are communicated to children. + + + + + Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations. + + + + + Transforms from the viewport's coordinates to this node's local coordinates. + For the opposite operation, use . + + var viewport_point = get_global_transform_with_canvas() * local_point + + + + + + Transformations issued by 's inputs are applied in local space instead of global space. + + + + + Set/clear individual bits on the rendering visibility layer. This simplifies editing this 's visibility layer. + + + + + Returns an individual bit on the rendering visibility layer. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and segment-by-segment coloring. Each segment is defined by two consecutive points from array and a corresponding color from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints and has colors[i] color. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws multiple disconnected lines with a uniform and . Each line is defined by two consecutive points from array, i.e. i-th segment consists of points[2 * i], points[2 * i + 1] endpoints. When drawing large amounts of lines, this is faster than using individual calls. To draw interconnected lines, use instead. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + Note: is only effective if is greater than 0.0. + + + + + Draws a dashed line from a 2D point to another, with a given color and width. See also and . + If is negative, then a two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the line parts will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is greater than 0.0. + + + + + Draws a rectangle. If is , the rectangle will be filled with the specified. If is , the rectangle will be drawn as a stroke with the and specified. See also . + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + Note: Unfilled rectangles drawn with a negative may not display perfectly. For example, corners may be missing or brighter due to overlapping lines (for a translucent ). + + + + + Draws a circle. See also , , and . + If is , the circle will be filled with the specified. If is , the circle will be drawn as a stroke with the and specified. + If is negative, then two-point primitives will be drawn instead of a four-point ones. This means that when the CanvasItem is scaled, the lines will remain thin. If this behavior is not desired, then pass a positive like 1.0. + If is , half transparent "feathers" will be attached to the boundary, making outlines smooth. + Note: is only effective if is . + + + + + Emitted when the must redraw, after the related notification, and before is called. + Note: Deferred connections do not allow drawing through the draw_* methods. + + + + + Emitted when the 's visibility changes, either because its own property changed or because its visibility in the tree changed (see ). + + + + + Emitted when the is hidden, i.e. it's no longer visible in the tree (see ). + + + + + Emitted when the 's boundaries (position or size) change, or when an action took place that may have affected these boundaries (e.g. changing ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'self_modulate' property. + + + + + Cached name for the 'show_behind_parent' property. + + + + + Cached name for the 'top_level' property. + + + + + Cached name for the 'clip_children' property. + + + + + Cached name for the 'light_mask' property. + + + + + Cached name for the 'visibility_layer' property. + + + + + Cached name for the 'z_index' property. + + + + + Cached name for the 'z_as_relative' property. + + + + + Cached name for the 'y_sort_enabled' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached name for the 'material' property. + + + + + Cached name for the 'use_parent_material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw' method. + + + + + Cached name for the 'get_canvas_item' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'is_visible_in_tree' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'queue_redraw' method. + + + + + Cached name for the 'move_to_front' method. + + + + + Cached name for the 'set_as_top_level' method. + + + + + Cached name for the 'is_set_as_top_level' method. + + + + + Cached name for the 'set_light_mask' method. + + + + + Cached name for the 'get_light_mask' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_self_modulate' method. + + + + + Cached name for the 'get_self_modulate' method. + + + + + Cached name for the 'set_z_index' method. + + + + + Cached name for the 'get_z_index' method. + + + + + Cached name for the 'set_z_as_relative' method. + + + + + Cached name for the 'is_z_relative' method. + + + + + Cached name for the 'set_y_sort_enabled' method. + + + + + Cached name for the 'is_y_sort_enabled' method. + + + + + Cached name for the 'set_draw_behind_parent' method. + + + + + Cached name for the 'is_draw_behind_parent_enabled' method. + + + + + Cached name for the 'draw_line' method. + + + + + Cached name for the 'draw_dashed_line' method. + + + + + Cached name for the 'draw_polyline' method. + + + + + Cached name for the 'draw_polyline_colors' method. + + + + + Cached name for the 'draw_arc' method. + + + + + Cached name for the 'draw_multiline' method. + + + + + Cached name for the 'draw_multiline_colors' method. + + + + + Cached name for the 'draw_rect' method. + + + + + Cached name for the 'draw_circle' method. + + + + + Cached name for the 'draw_texture' method. + + + + + Cached name for the 'draw_texture_rect' method. + + + + + Cached name for the 'draw_texture_rect_region' method. + + + + + Cached name for the 'draw_msdf_texture_rect_region' method. + + + + + Cached name for the 'draw_lcd_texture_rect_region' method. + + + + + Cached name for the 'draw_style_box' method. + + + + + Cached name for the 'draw_primitive' method. + + + + + Cached name for the 'draw_polygon' method. + + + + + Cached name for the 'draw_colored_polygon' method. + + + + + Cached name for the 'draw_string' method. + + + + + Cached name for the 'draw_multiline_string' method. + + + + + Cached name for the 'draw_string_outline' method. + + + + + Cached name for the 'draw_multiline_string_outline' method. + + + + + Cached name for the 'draw_char' method. + + + + + Cached name for the 'draw_char_outline' method. + + + + + Cached name for the 'draw_mesh' method. + + + + + Cached name for the 'draw_multimesh' method. + + + + + Cached name for the 'draw_set_transform' method. + + + + + Cached name for the 'draw_set_transform_matrix' method. + + + + + Cached name for the 'draw_animation_slice' method. + + + + + Cached name for the 'draw_end_animation' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_global_transform' method. + + + + + Cached name for the 'get_global_transform_with_canvas' method. + + + + + Cached name for the 'get_viewport_transform' method. + + + + + Cached name for the 'get_viewport_rect' method. + + + + + Cached name for the 'get_canvas_transform' method. + + + + + Cached name for the 'get_screen_transform' method. + + + + + Cached name for the 'get_local_mouse_position' method. + + + + + Cached name for the 'get_global_mouse_position' method. + + + + + Cached name for the 'get_canvas' method. + + + + + Cached name for the 'get_canvas_layer_node' method. + + + + + Cached name for the 'get_world_2d' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_use_parent_material' method. + + + + + Cached name for the 'get_use_parent_material' method. + + + + + Cached name for the 'set_notify_local_transform' method. + + + + + Cached name for the 'is_local_transform_notification_enabled' method. + + + + + Cached name for the 'set_notify_transform' method. + + + + + Cached name for the 'is_transform_notification_enabled' method. + + + + + Cached name for the 'force_update_transform' method. + + + + + Cached name for the 'make_canvas_position_local' method. + + + + + Cached name for the 'make_input_local' method. + + + + + Cached name for the 'set_visibility_layer' method. + + + + + Cached name for the 'get_visibility_layer' method. + + + + + Cached name for the 'set_visibility_layer_bit' method. + + + + + Cached name for the 'get_visibility_layer_bit' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_texture_repeat' method. + + + + + Cached name for the 'get_texture_repeat' method. + + + + + Cached name for the 'set_clip_children_mode' method. + + + + + Cached name for the 'get_clip_children_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'draw' signal. + + + + + Cached name for the 'visibility_changed' signal. + + + + + Cached name for the 'hidden' signal. + + + + + Cached name for the 'item_rect_changed' signal. + + + + + s provide a means of modifying the textures associated with a CanvasItem. They specialize in describing blend and lighting behaviors for textures. Use a to more fully customize a material's interactions with a . + + + + + Mix blending mode. Colors are assumed to be independent of the alpha (opacity) value. + + + + + Additive blending mode. + + + + + Subtractive blending mode. + + + + + Multiplicative blending mode. + + + + + Mix blending mode. Colors are assumed to be premultiplied by the alpha (opacity) value. + + + + + Render the material using both light and non-light sensitive material properties. + + + + + Render the material as if there were no light. + + + + + Render the material as if there were only light. + + + + + The manner in which a material's rendering is applied to underlying textures. + + + + + The manner in which material reacts to lighting. + + + + + If , enable spritesheet-based animation features when assigned to and nodes. The or should also be set to a positive value for the animation to play. + This property (and other particles_anim_* properties that depend on it) has no effect on other types of nodes. + + + + + The number of columns in the spritesheet assigned as for a or . + Note: This property is only used and visible in the editor if is . + + + + + The number of rows in the spritesheet assigned as for a or . + Note: This property is only used and visible in the editor if is . + + + + + If , the particles animation will loop. + Note: This property is only used and visible in the editor if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'light_mode' property. + + + + + Cached name for the 'particles_animation' property. + + + + + Cached name for the 'particles_anim_h_frames' property. + + + + + Cached name for the 'particles_anim_v_frames' property. + + + + + Cached name for the 'particles_anim_loop' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_light_mode' method. + + + + + Cached name for the 'get_light_mode' method. + + + + + Cached name for the 'set_particles_animation' method. + + + + + Cached name for the 'get_particles_animation' method. + + + + + Cached name for the 'set_particles_anim_h_frames' method. + + + + + Cached name for the 'get_particles_anim_h_frames' method. + + + + + Cached name for the 'set_particles_anim_v_frames' method. + + + + + Cached name for the 'get_particles_anim_v_frames' method. + + + + + Cached name for the 'set_particles_anim_loop' method. + + + + + Cached name for the 'get_particles_anim_loop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + -derived nodes that are direct or indirect children of a will be drawn in that layer. The layer is a numeric index that defines the draw order. The default 2D scene renders with index 0, so a with index -1 will be drawn below, and a with index 1 will be drawn above. This order will hold regardless of the of the nodes within each layer. + s can be hidden and they can also optionally follow the viewport. This makes them useful for HUDs like health bar overlays (on layers 1 and higher) or backgrounds (on layers -1 and lower). + Note: Embedded s are placed on layer 1024. s on layers 1025 and higher appear in front of embedded windows. + Note: Each is drawn on one specific and cannot be shared between multiple s, see . When using multiple s, for example in a split-screen game, you need create an individual for each you want it to be drawn on. + + + + + Layer index for draw order. Lower values are drawn behind higher values. + Note: If multiple CanvasLayers have the same layer index, children of one CanvasLayer are drawn behind the children of the other CanvasLayer. Which CanvasLayer is drawn in front is non-deterministic. + + + + + If , any under this will be hidden. + Unlike , visibility of a isn't propagated to underlying layers. + + + + + The layer's base offset. + + + + + The layer's rotation in radians. + + + + + The layer's scale. + + + + + The layer's transform. + + + + + The custom node assigned to the . If , uses the default viewport instead. + + + + + If enabled, the stays in a fixed position on the screen. If disabled, the maintains its position in world space. + Together with , this can be used for a pseudo-3D effect. + + + + + Scales the layer when using . Layers moving into the foreground should have increasing scales, while layers moving into the background should have decreasing scales. + + + + + Shows any under this . This is equivalent to setting to . + + + + + Hides any under this . This is equivalent to setting to . + + + + + Returns the transform from the s coordinate system to the s coordinate system. + + + + + Returns the RID of the canvas used by this layer. + + + + + Emitted when visibility of the layer is changed. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'layer' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'custom_viewport' property. + + + + + Cached name for the 'follow_viewport_enabled' property. + + + + + Cached name for the 'follow_viewport_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_layer' method. + + + + + Cached name for the 'get_layer' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_final_transform' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'set_follow_viewport' method. + + + + + Cached name for the 'is_following_viewport' method. + + + + + Cached name for the 'set_follow_viewport_scale' method. + + + + + Cached name for the 'get_follow_viewport_scale' method. + + + + + Cached name for the 'set_custom_viewport' method. + + + + + Cached name for the 'get_custom_viewport' method. + + + + + Cached name for the 'get_canvas' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'visibility_changed' signal. + + + + + applies a color tint to all nodes on a canvas. Only one can be used to tint a canvas, but s can be used to render things independently. + + + + + The tint color to apply. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an alternative to for 2D rendering. It allows using normal maps and specular maps in any node that inherits from . also allows overriding the texture's filter and repeat mode independently of the node's properties (or the project settings). + Note: cannot be used in 3D. It will not display correctly when applied to any , such as or . For physically-based materials in 3D, use instead. + + + + + The diffuse (color) texture to use. This is the main texture you want to set in most cases. + + + + + The normal map texture to use. Only has a visible effect if s are affecting this . + Note: Godot expects the normal map to use X+, Y+, and Z+ coordinates. See this page for a comparison of normal map coordinates expected by popular engines. + + + + + The specular map to use for specular reflections. This should be a grayscale or colored texture, with brighter areas resulting in a higher value. Using a colored allows controlling specular shininess on a per-channel basis. Only has a visible effect if s are affecting this . + + + + + The multiplier for specular reflection colors. The 's color is also taken into account when determining the reflection color. Only has a visible effect if s are affecting this . + + + + + The specular exponent for specular reflections. Higher values result in a more glossy/"wet" look, with reflections becoming more localized and less visible overall. The default value of 1.0 disables specular reflections entirely. Only has a visible effect if s are affecting this . + + + + + The texture filtering mode to use when drawing this . + + + + + The texture repeat mode to use when drawing this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'diffuse_texture' property. + + + + + Cached name for the 'normal_texture' property. + + + + + Cached name for the 'specular_texture' property. + + + + + Cached name for the 'specular_color' property. + + + + + Cached name for the 'specular_shininess' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_diffuse_texture' method. + + + + + Cached name for the 'get_diffuse_texture' method. + + + + + Cached name for the 'set_normal_texture' method. + + + + + Cached name for the 'get_normal_texture' method. + + + + + Cached name for the 'set_specular_texture' method. + + + + + Cached name for the 'get_specular_texture' method. + + + + + Cached name for the 'set_specular_color' method. + + + + + Cached name for the 'get_specular_color' method. + + + + + Cached name for the 'set_specular_shininess' method. + + + + + Cached name for the 'get_specular_shininess' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_texture_repeat' method. + + + + + Cached name for the 'get_texture_repeat' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a capsule-shaped . + + + + + Radius of the capsule mesh. + + + + + Total height of the capsule mesh (including the hemispherical ends). + + + + + Number of radial segments on the capsule mesh. + + + + + Number of rings along the height of the capsule. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D capsule shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against, but it is slower than and . + + + + + The capsule's radius. + + + + + The capsule's height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D capsule shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than , but slower than and . + + + + + The capsule's radius. + + + + + The capsule's height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a container that keeps all of its child controls in its center at their minimum size. + + + + + If , centers children relative to the 's top left corner. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'use_top_left' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_use_top_left' method. + + + + + Cached name for the 'is_using_top_left' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By setting various properties on this object, you can control how individual characters will be displayed in a . + + + + + The current transform of the current glyph. It can be overridden (for example, by driving the position and rotation from a curve). You can also alter the existing value to apply transforms on top of other effects. + + + + + Absolute character range in the string, corresponding to the glyph. Setting this property won't affect drawing. + + + + + The time elapsed since the was added to the scene tree (in seconds). Time stops when the is paused (see ). Resets when the text in the is changed. + Note: Time still passes while the is hidden. + + + + + If , the character will be drawn. If , the character will be hidden. Characters around hidden characters will reflow to take the space of hidden characters. If this is not desired, set their to Color(1, 1, 1, 0) instead. + + + + + If , FX transform is called for outline drawing. Setting this property won't affect drawing. + + + + + The position offset the character will be drawn with (in pixels). + + + + + The color the character will be drawn with. + + + + + Contains the arguments passed in the opening BBCode tag. By default, arguments are strings; if their contents match a type such as , or , they will be converted automatically. Color codes in the form #rrggbb or #rgb will be converted to an opaque . String arguments may not contain spaces, even if they're quoted. If present, quotes will also be present in the final string. + For example, the opening BBCode tag [example foo=hello bar=true baz=42 color=#ffffff] will map to the following : + + {"foo": "hello", "bar": true, "baz": 42, "color": Color(1, 1, 1, 1)} + + + + + + Font specific glyph index. + + + + + Number of glyphs in the grapheme cluster. This value is set in the first glyph of a cluster. Setting this property won't affect drawing. + + + + + Glyph flags. See for more info. Setting this property won't affect drawing. + + + + + The character offset of the glyph, relative to the current custom block. Setting this property won't affect drawing. + + + + + Font resource used to render glyph. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'range' property. + + + + + Cached name for the 'elapsed_time' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'outline' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'env' property. + + + + + Cached name for the 'glyph_index' property. + + + + + Cached name for the 'glyph_count' property. + + + + + Cached name for the 'glyph_flags' property. + + + + + Cached name for the 'relative_index' property. + + + + + Cached name for the 'font' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_range' method. + + + + + Cached name for the 'set_range' method. + + + + + Cached name for the 'get_elapsed_time' method. + + + + + Cached name for the 'set_elapsed_time' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'set_visibility' method. + + + + + Cached name for the 'is_outline' method. + + + + + Cached name for the 'set_outline' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_glyph_index' method. + + + + + Cached name for the 'set_glyph_index' method. + + + + + Cached name for the 'get_relative_index' method. + + + + + Cached name for the 'set_relative_index' method. + + + + + Cached name for the 'get_glyph_count' method. + + + + + Cached name for the 'set_glyph_count' method. + + + + + Cached name for the 'get_glyph_flags' method. + + + + + Cached name for the 'set_glyph_flags' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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) in addition to the general collision detection provided by . 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, is simpler to configure. + + + + + 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. + + + + + Apply when there is no notion of floor or ceiling. All collisions will be reported as on_wall. In this mode, when you slide, the speed will always be constant. This mode is suitable for top-down games. + + + + + Add the last platform velocity to the when you leave a moving platform. + + + + + Add the last platform velocity to the 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. + + + + + Do nothing when leaving a platform. + + + + + Sets the motion mode which defines the behavior of . See constants for available modes. + + + + + Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling . Defaults to Vector2.UP. As the vector will be normalized it can't be equal to Vector2.ZERO, if you want all collisions to be reported as walls, consider using as . + + + + + Current velocity vector in pixels per second, used and modified during calls to . + + + + + If , during a jump against the ceiling, the body will slide, if it will be stopped and will fall vertically. + + + + + Maximum number of times the body can change direction before it stops when calling . + + + + + Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. This property only affects movement when is . + + + + + If , the body will not slide on slopes when calling when the body is standing still. + If , the body will slide on floor's slopes when applies a downward force. + + + + + If (by default), the body will move faster on downward slopes and slower on upward slopes. + If , the body will always move at the same speed on the ground no matter the slope. Note that you need to use to stick along a downward slope at constant speed. + + + + + If , the body will be able to move on the floor only. This option avoids to be able to walk on walls, it will however allow to slide down along them. + + + + + Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling . The default value equals 45 degrees. + + + + + Sets a snapping distance. When set to a value different from 0.0, the body is kept attached to slopes when calling . The snapping vector is determined by the given distance along the opposite direction of the . + As long as the snapping vector is in contact with the ground and the body moves against , the body will remain attached to the surface. Snapping is not applied if the body moves along , meaning it contains vertical rising velocity, so it will be able to detach from the ground when jumping or when the body is pushed up by something. If you want to apply a snap without taking into account the velocity, use . + + + + + Sets the behavior to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See constants for available behavior. + + + + + Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the . By default, all floor bodies are detected and propagate their velocity. + + + + + Collision layers that will be included for detecting wall bodies that will act as moving platforms to be followed by the . By default, all wall bodies are ignored. + + + + + Extra margin used for collision recovery when calling . + If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. + A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. + A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies. + + + + + Moves the body based on . If the body collides with another, it will slide along the other body (by default only on floor) rather than stop immediately. If the other body is a or , it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. + Modifies if a slide collision occurred. To get the latest collision call , for detailed information about collisions that occurred, use . + When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions. + The general behavior and available properties change according to the . + Returns if the body collided, otherwise, returns . + + + + + Allows to manually apply a snap to the floor regardless of the body's velocity. This function does nothing when returns . + + + + + Returns if the body collided with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided only with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided only with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns if the body collided only with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns the collision normal of the floor at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the collision normal of the wall at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the last motion applied to the during the last call to . The movement can be split into multiple motions when sliding occurs, and this method return the last one, which is useful to retrieve the current direction of the movement. + + + + + Returns the travel (position delta) that occurred during the last call to . + + + + + Returns the current real velocity since the last call to . For example, when you climb a slope, you will move diagonally even though the velocity is horizontal. This method returns the diagonal movement, as opposed to which returns the requested velocity. + + + + + Returns the floor's collision angle at the last collision point according to , which is Vector2.UP by default. This value is always positive and only valid after calling and when returns . + + If the parameter is null, then the default value is new Vector2(0.0f, -1.0f). + + + + Returns the linear velocity of the platform at the last collision point. Only valid after calling . + + + + + Returns the number of times the body collided and changed direction during the last call to . + + + + + Returns a , which contains information about a collision that occurred during the last call to . Since the body can collide several times in a single call to , you must specify the index of the collision in the range 0 to ( - 1). + Example: Iterate through the collisions with a for loop: + + for (int i = 0; i < GetSlideCollisionCount(); i++) + { + KinematicCollision2D collision = GetSlideCollision(i); + GD.Print("Collided with: ", (collision.GetCollider() as Node).Name); + } + + + + + + Returns a , which contains information about the latest collision that occurred during the last call to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_mode' property. + + + + + Cached name for the 'up_direction' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'slide_on_ceiling' property. + + + + + Cached name for the 'max_slides' property. + + + + + Cached name for the 'wall_min_slide_angle' property. + + + + + Cached name for the 'floor_stop_on_slope' property. + + + + + Cached name for the 'floor_constant_speed' property. + + + + + Cached name for the 'floor_block_on_wall' property. + + + + + Cached name for the 'floor_max_angle' property. + + + + + Cached name for the 'floor_snap_length' property. + + + + + Cached name for the 'platform_on_leave' property. + + + + + Cached name for the 'platform_floor_layers' property. + + + + + Cached name for the 'platform_wall_layers' property. + + + + + Cached name for the 'safe_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_slide' method. + + + + + Cached name for the 'apply_floor_snap' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_safe_margin' method. + + + + + Cached name for the 'get_safe_margin' method. + + + + + Cached name for the 'is_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_constant_speed_enabled' method. + + + + + Cached name for the 'is_floor_constant_speed_enabled' method. + + + + + Cached name for the 'set_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'is_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'set_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'is_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'set_platform_floor_layers' method. + + + + + Cached name for the 'get_platform_floor_layers' method. + + + + + Cached name for the 'set_platform_wall_layers' method. + + + + + Cached name for the 'get_platform_wall_layers' method. + + + + + Cached name for the 'get_max_slides' method. + + + + + Cached name for the 'set_max_slides' method. + + + + + Cached name for the 'get_floor_max_angle' method. + + + + + Cached name for the 'set_floor_max_angle' method. + + + + + Cached name for the 'get_floor_snap_length' method. + + + + + Cached name for the 'set_floor_snap_length' method. + + + + + Cached name for the 'get_wall_min_slide_angle' method. + + + + + Cached name for the 'set_wall_min_slide_angle' method. + + + + + Cached name for the 'get_up_direction' method. + + + + + Cached name for the 'set_up_direction' method. + + + + + Cached name for the 'set_motion_mode' method. + + + + + Cached name for the 'get_motion_mode' method. + + + + + Cached name for the 'set_platform_on_leave' method. + + + + + Cached name for the 'get_platform_on_leave' method. + + + + + Cached name for the 'is_on_floor' method. + + + + + Cached name for the 'is_on_floor_only' method. + + + + + Cached name for the 'is_on_ceiling' method. + + + + + Cached name for the 'is_on_ceiling_only' method. + + + + + Cached name for the 'is_on_wall' method. + + + + + Cached name for the 'is_on_wall_only' method. + + + + + Cached name for the 'get_floor_normal' method. + + + + + Cached name for the 'get_wall_normal' method. + + + + + Cached name for the 'get_last_motion' method. + + + + + Cached name for the 'get_position_delta' method. + + + + + Cached name for the 'get_real_velocity' method. + + + + + Cached name for the 'get_floor_angle' method. + + + + + Cached name for the 'get_platform_velocity' method. + + + + + Cached name for the 'get_slide_collision_count' method. + + + + + Cached name for the 'get_slide_collision' method. + + + + + Cached name for the 'get_last_slide_collision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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) in addition to the general collision detection provided by . 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, is simpler to configure. + + + + + 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. + + + + + Apply when there is no notion of floor or ceiling. All collisions will be reported as on_wall. In this mode, when you slide, the speed will always be constant. This mode is suitable for games without ground like space games. + + + + + Add the last platform velocity to the when you leave a moving platform. + + + + + Add the last platform velocity to the 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. + + + + + Do nothing when leaving a platform. + + + + + Sets the motion mode which defines the behavior of . See constants for available modes. + + + + + Vector pointing upwards, used to determine what is a wall and what is a floor (or a ceiling) when calling . Defaults to Vector3.UP. As the vector will be normalized it can't be equal to Vector3.ZERO, if you want all collisions to be reported as walls, consider using as . + + + + + If , during a jump against the ceiling, the body will slide, if it will be stopped and will fall vertically. + + + + + Current velocity vector (typically meters per second), used and modified during calls to . + + + + + Maximum number of times the body can change direction before it stops when calling . + + + + + Minimum angle (in radians) where the body is allowed to slide when it encounters a slope. The default value equals 15 degrees. When is , it only affects movement if is . + + + + + If , the body will not slide on slopes when calling when the body is standing still. + If , the body will slide on floor's slopes when applies a downward force. + + + + + If (by default), the body will move faster on downward slopes and slower on upward slopes. + If , the body will always move at the same speed on the ground no matter the slope. Note that you need to use to stick along a downward slope at constant speed. + + + + + If , the body will be able to move on the floor only. This option avoids to be able to walk on walls, it will however allow to slide down along them. + + + + + Maximum angle (in radians) where a slope is still considered a floor (or a ceiling), rather than a wall, when calling . The default value equals 45 degrees. + + + + + Sets a snapping distance. When set to a value different from 0.0, the body is kept attached to slopes when calling . The snapping vector is determined by the given distance along the opposite direction of the . + As long as the snapping vector is in contact with the ground and the body moves against , the body will remain attached to the surface. Snapping is not applied if the body moves along , meaning it contains vertical rising velocity, so it will be able to detach from the ground when jumping or when the body is pushed up by something. If you want to apply a snap without taking into account the velocity, use . + + + + + Sets the behavior to apply when you leave a moving platform. By default, to be physically accurate, when you leave the last platform velocity is applied. See constants for available behavior. + + + + + Collision layers that will be included for detecting floor bodies that will act as moving platforms to be followed by the . By default, all floor bodies are detected and propagate their velocity. + + + + + Collision layers that will be included for detecting wall bodies that will act as moving platforms to be followed by the . By default, all wall bodies are ignored. + + + + + Extra margin used for collision recovery when calling . + If the body is at least this close to another body, it will consider them to be colliding and will be pushed away before performing the actual motion. + A higher value means it's more flexible for detecting collision, which helps with consistently detecting walls and floors. + A lower value forces the collision algorithm to use more exact detection, so it can be used in cases that specifically require precision, e.g at very low scale to avoid visible jittering, or for stability with a stack of character bodies. + + + + + Moves the body based on . If the body collides with another, it will slide along the other body rather than stop immediately. If the other body is a or , it will also be affected by the motion of the other body. You can use this to make moving and rotating platforms, or to make nodes push other nodes. + Modifies if a slide collision occurred. To get the latest collision call , for more detailed information about collisions that occurred, use . + When the body touches a moving platform, the platform's velocity is automatically added to the body motion. If a collision occurs due to the platform's motion, it will always be first in the slide collisions. + Returns if the body collided, otherwise, returns . + + + + + Allows to manually apply a snap to the floor regardless of the body's velocity. This function does nothing when returns . + + + + + Returns if the body collided with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided only with the floor on the last call of . Otherwise, returns . The and are used to determine whether a surface is "floor" or not. + + + + + Returns if the body collided with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided only with the ceiling on the last call of . Otherwise, returns . The and are used to determine whether a surface is "ceiling" or not. + + + + + Returns if the body collided with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns if the body collided only with a wall on the last call of . Otherwise, returns . The and are used to determine whether a surface is "wall" or not. + + + + + Returns the collision normal of the floor at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the collision normal of the wall at the last collision point. Only valid after calling and when returns . + Warning: The collision normal is not always the same as the surface normal. + + + + + Returns the last motion applied to the during the last call to . The movement can be split into multiple motions when sliding occurs, and this method return the last one, which is useful to retrieve the current direction of the movement. + + + + + Returns the travel (position delta) that occurred during the last call to . + + + + + Returns the current real velocity since the last call to . For example, when you climb a slope, you will move diagonally even though the velocity is horizontal. This method returns the diagonal movement, as opposed to which returns the requested velocity. + + + + + Returns the floor's collision angle at the last collision point according to , which is Vector3.UP by default. This value is always positive and only valid after calling and when returns . + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Returns the linear velocity of the platform at the last collision point. Only valid after calling . + + + + + Returns the angular velocity of the platform at the last collision point. Only valid after calling . + + + + + Returns the number of times the body collided and changed direction during the last call to . + + + + + Returns a , which contains information about a collision that occurred during the last call to . Since the body can collide several times in a single call to , you must specify the index of the collision in the range 0 to ( - 1). + + + + + Returns a , which contains information about the latest collision that occurred during the last call to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_mode' property. + + + + + Cached name for the 'up_direction' property. + + + + + Cached name for the 'slide_on_ceiling' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'max_slides' property. + + + + + Cached name for the 'wall_min_slide_angle' property. + + + + + Cached name for the 'floor_stop_on_slope' property. + + + + + Cached name for the 'floor_constant_speed' property. + + + + + Cached name for the 'floor_block_on_wall' property. + + + + + Cached name for the 'floor_max_angle' property. + + + + + Cached name for the 'floor_snap_length' property. + + + + + Cached name for the 'platform_on_leave' property. + + + + + Cached name for the 'platform_floor_layers' property. + + + + + Cached name for the 'platform_wall_layers' property. + + + + + Cached name for the 'safe_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_slide' method. + + + + + Cached name for the 'apply_floor_snap' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_safe_margin' method. + + + + + Cached name for the 'get_safe_margin' method. + + + + + Cached name for the 'is_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_stop_on_slope_enabled' method. + + + + + Cached name for the 'set_floor_constant_speed_enabled' method. + + + + + Cached name for the 'is_floor_constant_speed_enabled' method. + + + + + Cached name for the 'set_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'is_floor_block_on_wall_enabled' method. + + + + + Cached name for the 'set_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'is_slide_on_ceiling_enabled' method. + + + + + Cached name for the 'set_platform_floor_layers' method. + + + + + Cached name for the 'get_platform_floor_layers' method. + + + + + Cached name for the 'set_platform_wall_layers' method. + + + + + Cached name for the 'get_platform_wall_layers' method. + + + + + Cached name for the 'get_max_slides' method. + + + + + Cached name for the 'set_max_slides' method. + + + + + Cached name for the 'get_floor_max_angle' method. + + + + + Cached name for the 'set_floor_max_angle' method. + + + + + Cached name for the 'get_floor_snap_length' method. + + + + + Cached name for the 'set_floor_snap_length' method. + + + + + Cached name for the 'get_wall_min_slide_angle' method. + + + + + Cached name for the 'set_wall_min_slide_angle' method. + + + + + Cached name for the 'get_up_direction' method. + + + + + Cached name for the 'set_up_direction' method. + + + + + Cached name for the 'set_motion_mode' method. + + + + + Cached name for the 'get_motion_mode' method. + + + + + Cached name for the 'set_platform_on_leave' method. + + + + + Cached name for the 'get_platform_on_leave' method. + + + + + Cached name for the 'is_on_floor' method. + + + + + Cached name for the 'is_on_floor_only' method. + + + + + Cached name for the 'is_on_ceiling' method. + + + + + Cached name for the 'is_on_ceiling_only' method. + + + + + Cached name for the 'is_on_wall' method. + + + + + Cached name for the 'is_on_wall_only' method. + + + + + Cached name for the 'get_floor_normal' method. + + + + + Cached name for the 'get_wall_normal' method. + + + + + Cached name for the 'get_last_motion' method. + + + + + Cached name for the 'get_position_delta' method. + + + + + Cached name for the 'get_real_velocity' method. + + + + + Cached name for the 'get_floor_angle' method. + + + + + Cached name for the 'get_platform_velocity' method. + + + + + Cached name for the 'get_platform_angular_velocity' method. + + + + + Cached name for the 'get_slide_collision_count' method. + + + + + Cached name for the 'get_slide_collision' method. + + + + + Cached name for the 'get_last_slide_collision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows the user to choose one of only two possible options. It's similar to in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use when toggling it has no immediate effect on something. For example, it could be used when toggling it will only do something once a confirmation button is pressed. + See also which contains common properties and methods associated with this node. + When specifies a , changes its appearance to that of a radio button and uses the various radio_* theme properties. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a toggle button displayed as a check field. It's similar to in functionality, but it has a different appearance. To follow established UX patterns, it's recommended to use when toggling it has an immediate effect on something. For example, it can be used when pressing it shows or hides advanced settings, without asking the user to confirm this action. + See also which contains common properties and methods associated with this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D circle shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than and . + + + + + The circle's radius. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides access to metadata stored for every available class. + + + + + Native Core class type. + + + + + Native Editor class type. + + + + + GDExtension class type. + + + + + GDExtension Editor class type. + + + + + Unknown class type. + + + + + Returns the names of all the classes available. + + + + + Returns the names of all the classes that directly or indirectly inherit from . + + + + + Returns the parent class of . + + + + + Returns whether the specified is available or not. + + + + + Returns whether is an ancestor of or not. + + + + + Returns if objects can be instantiated from the specified , otherwise returns . + + + + + Creates an instance of . + + + + + Returns the API type of . See . + + + + + Returns whether or its ancestry has a signal called or not. + + + + + Returns the data of or its ancestry. The returned value is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + + + + + Returns an array with all the signals of or its ancestry if is . Every element of the array is a as described in . + + + + + Returns an array with all the properties of or its ancestry if is . + + + + + Returns the getter method name of of . + + + + + Returns the setter method name of of . + + + + + Returns the value of of or its ancestry. + + + + + Sets value of to . + + + + + Returns the default value of of or its ancestor classes. + + + + + Returns whether (or its ancestry if is ) has a method called or not. + + + + + Returns the number of arguments of the method of or its ancestry if is . + + + + + Returns an array with all the methods of or its ancestry if is . Every element of the array is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + Note: In exported release builds the debug info is not available, so the returned dictionaries will contain only method names. + + + + + Calls a static method on a class. + + + + + Calls a static method on a class. + + + + + Returns an array with the names all the integer constants of or its ancestry. + + + + + Returns whether or its ancestry has an integer constant called or not. + + + + + Returns the value of the integer constant of or its ancestry. Always returns 0 when the constant could not be found. + + + + + Returns whether or its ancestry has an enum called or not. + + + + + Returns an array with all the enums of or its ancestry. + + + + + Returns an array with all the keys in of or its ancestry. + + + + + Returns which enum the integer constant of or its ancestry belongs to. + + + + + Returns whether (or its ancestor classes if is ) has an enum called that is a bitfield. + + + + + Returns whether this is enabled or not. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_class_list' method. + + + + + Cached name for the 'get_inheriters_from_class' method. + + + + + Cached name for the 'get_parent_class' method. + + + + + Cached name for the 'class_exists' method. + + + + + Cached name for the 'is_parent_class' method. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the 'instantiate' method. + + + + + Cached name for the 'class_get_api_type' method. + + + + + Cached name for the 'class_has_signal' method. + + + + + Cached name for the 'class_get_signal' method. + + + + + Cached name for the 'class_get_signal_list' method. + + + + + Cached name for the 'class_get_property_list' method. + + + + + Cached name for the 'class_get_property_getter' method. + + + + + Cached name for the 'class_get_property_setter' method. + + + + + Cached name for the 'class_get_property' method. + + + + + Cached name for the 'class_set_property' method. + + + + + Cached name for the 'class_get_property_default_value' method. + + + + + Cached name for the 'class_has_method' method. + + + + + Cached name for the 'class_get_method_argument_count' method. + + + + + Cached name for the 'class_get_method_list' method. + + + + + Cached name for the 'class_call_static' method. + + + + + Cached name for the 'class_get_integer_constant_list' method. + + + + + Cached name for the 'class_has_integer_constant' method. + + + + + Cached name for the 'class_get_integer_constant' method. + + + + + Cached name for the 'class_has_enum' method. + + + + + Cached name for the 'class_get_enum_list' method. + + + + + Cached name for the 'class_get_enum_constants' method. + + + + + Cached name for the 'class_get_integer_constant_enum' method. + + + + + Cached name for the 'is_class_enum_bitfield' method. + + + + + Cached name for the 'is_class_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides access to metadata stored for every available class. + + + + + Returns the names of all the classes available. + + + + + Returns the names of all the classes that directly or indirectly inherit from . + + + + + Returns the parent class of . + + + + + Returns whether the specified is available or not. + + + + + Returns whether is an ancestor of or not. + + + + + Returns if objects can be instantiated from the specified , otherwise returns . + + + + + Creates an instance of . + + + + + Returns the API type of . See . + + + + + Returns whether or its ancestry has a signal called or not. + + + + + Returns the data of or its ancestry. The returned value is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + + + + + Returns an array with all the signals of or its ancestry if is . Every element of the array is a as described in . + + + + + Returns an array with all the properties of or its ancestry if is . + + + + + Returns the getter method name of of . + + + + + Returns the setter method name of of . + + + + + Returns the value of of or its ancestry. + + + + + Sets value of to . + + + + + Returns the default value of of or its ancestor classes. + + + + + Returns whether (or its ancestry if is ) has a method called or not. + + + + + Returns the number of arguments of the method of or its ancestry if is . + + + + + Returns an array with all the methods of or its ancestry if is . Every element of the array is a with the following keys: args, default_args, flags, id, name, return: (class_name, hint, hint_string, name, type, usage). + Note: In exported release builds the debug info is not available, so the returned dictionaries will contain only method names. + + + + + Calls a static method on a class. + + + + + Calls a static method on a class. + + + + + Returns an array with the names all the integer constants of or its ancestry. + + + + + Returns whether or its ancestry has an integer constant called or not. + + + + + Returns the value of the integer constant of or its ancestry. Always returns 0 when the constant could not be found. + + + + + Returns whether or its ancestry has an enum called or not. + + + + + Returns an array with all the enums of or its ancestry. + + + + + Returns an array with all the keys in of or its ancestry. + + + + + Returns which enum the integer constant of or its ancestry belongs to. + + + + + Returns whether (or its ancestor classes if is ) has an enum called that is a bitfield. + + + + + Returns whether this is enabled or not. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_class_list' method. + + + + + Cached name for the 'get_inheriters_from_class' method. + + + + + Cached name for the 'get_parent_class' method. + + + + + Cached name for the 'class_exists' method. + + + + + Cached name for the 'is_parent_class' method. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the 'instantiate' method. + + + + + Cached name for the 'class_get_api_type' method. + + + + + Cached name for the 'class_has_signal' method. + + + + + Cached name for the 'class_get_signal' method. + + + + + Cached name for the 'class_get_signal_list' method. + + + + + Cached name for the 'class_get_property_list' method. + + + + + Cached name for the 'class_get_property_getter' method. + + + + + Cached name for the 'class_get_property_setter' method. + + + + + Cached name for the 'class_get_property' method. + + + + + Cached name for the 'class_set_property' method. + + + + + Cached name for the 'class_get_property_default_value' method. + + + + + Cached name for the 'class_has_method' method. + + + + + Cached name for the 'class_get_method_argument_count' method. + + + + + Cached name for the 'class_get_method_list' method. + + + + + Cached name for the 'class_call_static' method. + + + + + Cached name for the 'class_get_integer_constant_list' method. + + + + + Cached name for the 'class_has_integer_constant' method. + + + + + Cached name for the 'class_get_integer_constant' method. + + + + + Cached name for the 'class_has_enum' method. + + + + + Cached name for the 'class_get_enum_list' method. + + + + + Cached name for the 'class_get_enum_constants' method. + + + + + Cached name for the 'class_get_integer_constant_enum' method. + + + + + Cached name for the 'is_class_enum_bitfield' method. + + + + + Cached name for the 'is_class_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By adjusting various properties of this resource, you can change the colors of strings, comments, numbers, and other text patterns inside a control. + + + + + Sets the color for numbers. + + + + + Sets the color for symbols. + + + + + Sets color for functions. A function is a non-keyword string followed by a '('. + + + + + Sets color for member variables. A member variable is non-keyword, non-function string proceeded with a '.'. + + + + + Sets the keyword colors. All existing keywords will be removed. The key is the keyword. The value is the keyword color. + + + + + Sets the member keyword colors. All existing member keyword will be removed. The key is the member keyword. The value is the member keyword color. + + + + + Sets the color regions. All existing regions will be removed. The key is the region start and end key, separated by a space. The value is the region color. + + + + + Sets the color for a keyword. + The keyword cannot contain any symbols except '_'. + + + + + Removes the keyword. + + + + + Returns if the keyword exists, else . + + + + + Returns the color for a keyword. + + + + + Removes all keywords. + + + + + Sets the color for a member keyword. + The member keyword cannot contain any symbols except '_'. + It will not be highlighted if preceded by a '.'. + + + + + Removes the member keyword. + + + + + Returns if the member keyword exists, else . + + + + + Returns the color for a member keyword. + + + + + Removes all member keywords. + + + + + Adds a color region (such as for comments or strings) from to . Both keys should be symbols, and must not be shared with other delimiters. + If is or is an empty , the region does not carry over to the next line. + + + + + Removes the color region that uses that start key. + + + + + Returns if the start key exists, else . + + + + + Removes all color regions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'number_color' property. + + + + + Cached name for the 'symbol_color' property. + + + + + Cached name for the 'function_color' property. + + + + + Cached name for the 'member_variable_color' property. + + + + + Cached name for the 'keyword_colors' property. + + + + + Cached name for the 'member_keyword_colors' property. + + + + + Cached name for the 'color_regions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_keyword_color' method. + + + + + Cached name for the 'remove_keyword_color' method. + + + + + Cached name for the 'has_keyword_color' method. + + + + + Cached name for the 'get_keyword_color' method. + + + + + Cached name for the 'set_keyword_colors' method. + + + + + Cached name for the 'clear_keyword_colors' method. + + + + + Cached name for the 'get_keyword_colors' method. + + + + + Cached name for the 'add_member_keyword_color' method. + + + + + Cached name for the 'remove_member_keyword_color' method. + + + + + Cached name for the 'has_member_keyword_color' method. + + + + + Cached name for the 'get_member_keyword_color' method. + + + + + Cached name for the 'set_member_keyword_colors' method. + + + + + Cached name for the 'clear_member_keyword_colors' method. + + + + + Cached name for the 'get_member_keyword_colors' method. + + + + + Cached name for the 'add_color_region' method. + + + + + Cached name for the 'remove_color_region' method. + + + + + Cached name for the 'has_color_region' method. + + + + + Cached name for the 'set_color_regions' method. + + + + + Cached name for the 'clear_color_regions' method. + + + + + Cached name for the 'get_color_regions' method. + + + + + Cached name for the 'set_function_color' method. + + + + + Cached name for the 'get_function_color' method. + + + + + Cached name for the 'set_number_color' method. + + + + + Cached name for the 'get_number_color' method. + + + + + Cached name for the 'set_symbol_color' method. + + + + + Cached name for the 'get_symbol_color' method. + + + + + Cached name for the 'set_member_variable_color' method. + + + + + Cached name for the 'get_member_variable_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for 2D physics objects. can hold any number of s for collision. Each shape must be assigned to a shape owner. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the shape_owner_* methods. + Note: Only collisions between objects within the same canvas ( canvas or ) are supported. The behavior of collisions between objects in different canvases is undefined. + + + + + When is set to , remove from the physics simulation to stop all physics interactions with this . + Automatically re-added to the physics simulation when the is processed again. + + + + + When is set to , make the body static. Doesn't affect . can't be affected by forces or other bodies while static. + Automatically set back to its original mode when the is processed again. + + + + + When is set to , do not affect the physics simulation. + + + + + Defines the behavior in physics when is set to . See for more details about the different modes. + + + + + The physics layers this CollisionObject2D is in. Collision objects can exist in one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this CollisionObject2D scans. Collision objects can scan one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + If , this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one bit to be set. + + + + + Accepts unhandled s. is the child index of the clicked . Connect to to easily pick up these events. + Note: requires to be and at least one bit to be set. + + + + + Called when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Called when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Called when the mouse pointer enters any of this object's shapes or moves from one shape to another. is the child index of the newly entered . Requires to be and at least one bit to be called. + + + + + Called when the mouse pointer exits any of this object's shapes. is the child index of the exited . Requires to be and at least one bit to be called. + + + + + Returns the object's . + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Creates a new shape owner for the given object. Returns owner_id of the new owner for future reference. + + + + + Removes the given shape owner. + + + + + Returns an of owner_id identifiers. You can use these ids in other methods that take owner_id as an argument. + + + + + Sets the of the given shape owner. + + + + + Returns the shape owner's . + + + + + Returns the parent object of the given shape owner. + + + + + If , disables the given shape owner. + + + + + If , the shape owner and its shapes are disabled. + + + + + If is , collisions for the shape owner originating from this will not be reported to collided with s. + + + + + Returns if collisions for the shape owner originating from this will not be reported to collided with s. + + + + + Sets the one_way_collision_margin of the shape owner identified by given to pixels. + + + + + Returns the one_way_collision_margin of the shape owner identified by given . + + + + + Adds a to the shape owner. + + + + + Returns the number of shapes the given shape owner contains. + + + + + Returns the with the given ID from the given shape owner. + + + + + Returns the child index of the with the given ID from the given shape owner. + + + + + Removes a shape from the given shape owner. + + + + + Removes all shapes from the shape owner. + + + + + Returns the owner_id of the given shape. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an input event occurs. Requires to be and at least one bit to be set. See for details. + + + + + Emitted when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this signal to be emitted. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Emitted when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this signal to be emitted. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the mouse pointer enters any of this object's shapes or moves from one shape to another. shapeIdx is the child index of the newly entered . Requires to be and at least one bit to be set. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the mouse pointer exits any of this object's shapes. shapeIdx is the child index of the exited . Requires to be and at least one bit to be set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disable_mode' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached name for the 'input_pickable' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_input_event' method. + + + + + Cached name for the '_mouse_enter' method. + + + + + Cached name for the '_mouse_exit' method. + + + + + Cached name for the '_mouse_shape_enter' method. + + + + + Cached name for the '_mouse_shape_exit' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_disable_mode' method. + + + + + Cached name for the 'get_disable_mode' method. + + + + + Cached name for the 'set_pickable' method. + + + + + Cached name for the 'is_pickable' method. + + + + + Cached name for the 'create_shape_owner' method. + + + + + Cached name for the 'remove_shape_owner' method. + + + + + Cached name for the 'get_shape_owners' method. + + + + + Cached name for the 'shape_owner_set_transform' method. + + + + + Cached name for the 'shape_owner_get_transform' method. + + + + + Cached name for the 'shape_owner_get_owner' method. + + + + + Cached name for the 'shape_owner_set_disabled' method. + + + + + Cached name for the 'is_shape_owner_disabled' method. + + + + + Cached name for the 'shape_owner_set_one_way_collision' method. + + + + + Cached name for the 'is_shape_owner_one_way_collision_enabled' method. + + + + + Cached name for the 'shape_owner_set_one_way_collision_margin' method. + + + + + Cached name for the 'get_shape_owner_one_way_collision_margin' method. + + + + + Cached name for the 'shape_owner_add_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_count' method. + + + + + Cached name for the 'shape_owner_get_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_index' method. + + + + + Cached name for the 'shape_owner_remove_shape' method. + + + + + Cached name for the 'shape_owner_clear_shapes' method. + + + + + Cached name for the 'shape_find_owner' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'input_event' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + Cached name for the 'mouse_shape_entered' signal. + + + + + Cached name for the 'mouse_shape_exited' signal. + + + + + Abstract base class for 3D physics objects. can hold any number of s for collision. Each shape must be assigned to a shape owner. Shape owners are not nodes and do not appear in the editor, but are accessible through code using the shape_owner_* methods. + Warning: With a non-uniform scale, this node will likely not behave as expected. It is advised to keep its scale the same on all axes and adjust its collision shape(s) instead. + + + + + When is set to , remove from the physics simulation to stop all physics interactions with this . + Automatically re-added to the physics simulation when the is processed again. + + + + + When is set to , make the body static. Doesn't affect . can't be affected by forces or other bodies while static. + Automatically set back to its original mode when the is processed again. + + + + + When is set to , do not affect the physics simulation. + + + + + Defines the behavior in physics when is set to . See for more details about the different modes. + + + + + The physics layers this CollisionObject3D is in. Collision objects can exist in one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this CollisionObject3D scans. Collision objects can scan one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + If , this object is pickable. A pickable object can detect the mouse pointer entering/leaving, and if the mouse is inside it, report input events. Requires at least one bit to be set. + + + + + If , the will continue to receive input events as the mouse is dragged across its shapes. + + + + + Receives unhandled s. is the location in world space of the mouse pointer on the surface of the shape with index and is the normal vector of the surface at that point. Connect to the signal to easily pick up these events. + Note: requires to be and at least one bit to be set. + + + + + Called when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Called when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. Note that moving between different shapes within a single won't cause this function to be called. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Returns the object's . + + + + + Creates a new shape owner for the given object. Returns owner_id of the new owner for future reference. + + + + + Removes the given shape owner. + + + + + Returns an of owner_id identifiers. You can use these ids in other methods that take owner_id as an argument. + + + + + Sets the of the given shape owner. + + + + + Returns the shape owner's . + + + + + Returns the parent object of the given shape owner. + + + + + If , disables the given shape owner. + + + + + If , the shape owner and its shapes are disabled. + + + + + Adds a to the shape owner. + + + + + Returns the number of shapes the given shape owner contains. + + + + + Returns the with the given ID from the given shape owner. + + + + + Returns the child index of the with the given ID from the given shape owner. + + + + + Removes a shape from the given shape owner. + + + + + Removes all shapes from the shape owner. + + + + + Returns the owner_id of the given shape. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the object receives an unhandled . eventPosition is the location in world space of the mouse pointer on the surface of the shape with index shapeIdx and normal is the normal vector of the surface at that point. + + + + + Emitted when the mouse pointer enters any of this object's shapes. Requires to be and at least one bit to be set. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Emitted when the mouse pointer exits all this object's shapes. Requires to be and at least one bit to be set. + Note: Due to the lack of continuous collision detection, this signal may not be emitted in the expected order if the mouse moves fast enough and the 's area is small. This signal may also not be emitted if another is overlapping the in question. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disable_mode' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached name for the 'input_ray_pickable' property. + + + + + Cached name for the 'input_capture_on_drag' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_input_event' method. + + + + + Cached name for the '_mouse_enter' method. + + + + + Cached name for the '_mouse_exit' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_disable_mode' method. + + + + + Cached name for the 'get_disable_mode' method. + + + + + Cached name for the 'set_ray_pickable' method. + + + + + Cached name for the 'is_ray_pickable' method. + + + + + Cached name for the 'set_capture_input_on_drag' method. + + + + + Cached name for the 'get_capture_input_on_drag' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'create_shape_owner' method. + + + + + Cached name for the 'remove_shape_owner' method. + + + + + Cached name for the 'get_shape_owners' method. + + + + + Cached name for the 'shape_owner_set_transform' method. + + + + + Cached name for the 'shape_owner_get_transform' method. + + + + + Cached name for the 'shape_owner_get_owner' method. + + + + + Cached name for the 'shape_owner_set_disabled' method. + + + + + Cached name for the 'is_shape_owner_disabled' method. + + + + + Cached name for the 'shape_owner_add_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_count' method. + + + + + Cached name for the 'shape_owner_get_shape' method. + + + + + Cached name for the 'shape_owner_get_shape_index' method. + + + + + Cached name for the 'shape_owner_remove_shape' method. + + + + + Cached name for the 'shape_owner_clear_shapes' method. + + + + + Cached name for the 'shape_find_owner' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'input_event' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + A node that provides a polygon shape to a parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an , turn into a solid object, or give a hollow shape to a . + Warning: A non-uniformly scaled will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead. + + + + + Collisions will include the polygon and its contained area. In this mode the node has the same effect as several nodes, one for each convex shape in the convex decomposition of the polygon (but without the overhead of multiple nodes). + + + + + Collisions will only include the polygon edges. In this mode the node has the same effect as a single 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). + + + + + Collision build mode. Use one of the constants. + + + + + The polygon's list of vertices. Each point will be connected to the next, and the final point will be connected to the first. + Note: The returned vertices are in the local coordinate space of the given . + + + + + If , no collisions will be detected. + + + + + If , only edges that face up, relative to 's rotation, will collide with other objects. + Note: This property has no effect if this is a child of an node. + + + + + The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the polygon at a high velocity. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'build_mode' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'one_way_collision' property. + + + + + Cached name for the 'one_way_collision_margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_build_mode' method. + + + + + Cached name for the 'get_build_mode' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_one_way_collision' method. + + + + + Cached name for the 'is_one_way_collision_enabled' method. + + + + + Cached name for the 'set_one_way_collision_margin' method. + + + + + Cached name for the 'get_one_way_collision_margin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node that provides a thickened polygon shape (a prism) to a parent and allows to edit it. The polygon can be concave or convex. This can give a detection shape to an or turn into a solid object. + Warning: A non-uniformly scaled will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its shape resource instead. + + + + + Length that the resulting collision extends in either direction perpendicular to its 2D polygon. + + + + + If , no collision will be produced. + + + + + Array of vertices which define the 2D polygon in the local XY plane. + + + + + The collision margin for the generated . See for more details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node that provides a to a parent and allows to edit it. This can give a detection shape to an or turn a into a solid object. + + + + + The actual shape owned by this collision shape. + + + + + A disabled collision shape has no effect in the world. This property should be changed with . + + + + + Sets whether this collision shape should only detect collision on one side (top or bottom). + Note: This property has no effect if this is a child of an node. + + + + + The margin used for one-way collision (in pixels). Higher values will make the shape thicker, and work better for colliders that enter the shape at a high velocity. + + + + + The collision shape color that is displayed in the editor, or in the running project if Debug > Visible Collision Shapes is checked at the top of the editor. + Note: The default value is ProjectSettings.debug/shapes/collision/shape_color. The Color(0, 0, 0, 0) value documented here is a placeholder, and not the actual default debug color. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'one_way_collision' property. + + + + + Cached name for the 'one_way_collision_margin' property. + + + + + Cached name for the 'debug_color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'set_one_way_collision' method. + + + + + Cached name for the 'is_one_way_collision_enabled' method. + + + + + Cached name for the 'set_one_way_collision_margin' method. + + + + + Cached name for the 'get_one_way_collision_margin' method. + + + + + Cached name for the 'set_debug_color' method. + + + + + Cached name for the 'get_debug_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node that provides a to a parent and allows to edit it. This can give a detection shape to an or turn a into a solid object. + Warning: A non-uniformly scaled will likely not behave as expected. Make sure to keep its scale the same on all axes and adjust its resource instead. + + + + + The actual shape owned by this collision shape. + + + + + A disabled collision shape has no effect in the world. + + + + + The collision shape color that is displayed in the editor, or in the running project if Debug > Visible Collision Shapes is checked at the top of the editor. + Note: The default value is ProjectSettings.debug/shapes/collision/shape_color. The Color(0, 0, 0, 0) value documented here is a placeholder, and not the actual default debug color. + + + + + If , when the shape is displayed, it will show a solid fill color in addition to its wireframe. + + + + + This method does nothing. + + + + + Sets the collision shape's shape to the addition of all its convexed siblings geometry. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'disabled' property. + + + + + Cached name for the 'debug_color' property. + + + + + Cached name for the 'debug_fill' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resource_changed' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_disabled' method. + + + + + Cached name for the 'is_disabled' method. + + + + + Cached name for the 'make_convex_from_siblings' method. + + + + + Cached name for the 'set_debug_color' method. + + + + + Cached name for the 'get_debug_color' method. + + + + + Cached name for the 'set_enable_debug_fill' method. + + + + + Cached name for the 'get_enable_debug_fill' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The resource is designed to store and manage a collection of colors. This resource is useful in scenarios where a predefined set of colors is required, such as for creating themes, designing user interfaces, or managing game assets. The built-in control can also make use of without additional code. + + + + + A [] containing the colors in the palette. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'colors' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_colors' method. + + + + + Cached name for the 'get_colors' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets. + Note: This control is the color picker widget itself. You can use a instead if you need a button that brings up a in a popup. + + + + + Allows editing the color with Red/Green/Blue sliders. + + + + + Allows editing the color with Hue/Saturation/Value sliders. + + + + + 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). + + + + + 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. + Okhsv and Okhsl color spaces + + + + + HSV Color Model rectangle color space. + + + + + HSV Color Model rectangle color space with a wheel. + + + + + HSV Color Model circle color space. Use Saturation as a radius. + + + + + HSL OK Color Model circle color space. + + + + + The color space shape and the shape select button are hidden. Can't be selected from the shapes popup. + + + + + The currently selected color. + + + + + If , shows an alpha channel slider (opacity). + + + + + The currently selected color mode. See . + + + + + If , the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues). + + + + + The shape of the color space view. See . + + + + + If , it's possible to add presets under Swatches. If , the button to add presets is disabled. + + + + + If , the color sampler and color preview are visible. + + + + + If , the color mode buttons are visible. + + + + + If , the color sliders are visible. + + + + + If , the hex color code input field is visible. + + + + + If , the Swatches and Recent Colors presets are visible. + + + + + Adds the given color to a list of color presets. The presets are displayed in the color picker and the user will be able to select them. + Note: The presets list is only for this color picker. + + + + + Removes the given color from the list of color presets of this color picker. + + + + + Returns the list of colors in the presets of the color picker. + + + + + Adds the given color to a list of color recent presets so that it can be picked later. Recent presets are the colors that were picked recently, a new preset is automatically created and added to recent presets when you pick a new color. + Note: The recent presets list is only for this color picker. + + + + + Removes the given color from the list of color recent presets of this color picker. + + + + + Returns the list of colors in the recent presets of the color picker. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the color is changed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a preset is added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a preset is removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'edit_alpha' property. + + + + + Cached name for the 'color_mode' property. + + + + + Cached name for the 'deferred_mode' property. + + + + + Cached name for the 'picker_shape' property. + + + + + Cached name for the 'can_add_swatches' property. + + + + + Cached name for the 'sampler_visible' property. + + + + + Cached name for the 'color_modes_visible' property. + + + + + Cached name for the 'sliders_visible' property. + + + + + Cached name for the 'hex_visible' property. + + + + + Cached name for the 'presets_visible' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pick_color' method. + + + + + Cached name for the 'get_pick_color' method. + + + + + Cached name for the 'set_deferred_mode' method. + + + + + Cached name for the 'is_deferred_mode' method. + + + + + Cached name for the 'set_color_mode' method. + + + + + Cached name for the 'get_color_mode' method. + + + + + Cached name for the 'set_edit_alpha' method. + + + + + Cached name for the 'is_editing_alpha' method. + + + + + Cached name for the 'set_can_add_swatches' method. + + + + + Cached name for the 'are_swatches_enabled' method. + + + + + Cached name for the 'set_presets_visible' method. + + + + + Cached name for the 'are_presets_visible' method. + + + + + Cached name for the 'set_modes_visible' method. + + + + + Cached name for the 'are_modes_visible' method. + + + + + Cached name for the 'set_sampler_visible' method. + + + + + Cached name for the 'is_sampler_visible' method. + + + + + Cached name for the 'set_sliders_visible' method. + + + + + Cached name for the 'are_sliders_visible' method. + + + + + Cached name for the 'set_hex_visible' method. + + + + + Cached name for the 'is_hex_visible' method. + + + + + Cached name for the 'add_preset' method. + + + + + Cached name for the 'erase_preset' method. + + + + + Cached name for the 'get_presets' method. + + + + + Cached name for the 'add_recent_preset' method. + + + + + Cached name for the 'erase_recent_preset' method. + + + + + Cached name for the 'get_recent_presets' method. + + + + + Cached name for the 'set_picker_shape' method. + + + + + Cached name for the 'get_picker_shape' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'color_changed' signal. + + + + + Cached name for the 'preset_added' signal. + + + + + Cached name for the 'preset_removed' signal. + + + + + Encapsulates a , making it accessible by pressing a button. Pressing the button will toggle the 's visibility. + See also which contains common properties and methods associated with this node. + Note: By default, the button may not be wide enough for the color preview swatch to be visible. Make sure to set to a big enough value to give the button enough space. + + + + + The currently selected color. + + + + + If , the alpha channel in the displayed will be visible. + + + + + Returns the that this node toggles. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns the control's which allows you to connect to popup signals. This allows you to handle events when the ColorPicker is shown or hidden. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the color changes. + + + + + Emitted when the is closed. + + + + + Emitted when the is created (the button is pressed for the first time). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'edit_alpha' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pick_color' method. + + + + + Cached name for the 'get_pick_color' method. + + + + + Cached name for the 'get_picker' method. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'set_edit_alpha' method. + + + + + Cached name for the 'is_editing_alpha' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'color_changed' signal. + + + + + Cached name for the 'popup_closed' signal. + + + + + Cached name for the 'picker_created' signal. + + + + + Displays a rectangle filled with a solid . If you need to display the border alone, consider using a instead. + + + + + The fill color of the rectangle. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The compositor resource stores attributes used to customize how a is rendered. + + + + + The custom s that are applied during rendering of viewports using this compositor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'compositor_effects' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_compositor_effects' method. + + + + + Cached name for the 'get_compositor_effects' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource defines a custom rendering effect that can be applied to s through the viewports' . You can implement a callback that is called during rendering at a given stage of the rendering pipeline and allows you to insert additional passes. Note that this callback happens on the rendering thread. CompositorEffect is an abstract base class and must be extended to implement specific rendering logic. + + + + + The callback is called before our opaque rendering pass, but after depth prepass (if applicable). + + + + + The callback is called after our opaque rendering pass, but before our sky is rendered. + + + + + The callback is called after our sky is rendered, but before our back buffers are created (and if enabled, before subsurface scattering and/or screen space reflections). + + + + + The callback is called before our transparent rendering pass, but after our sky is rendered and we've created our back buffers. + + + + + The callback is called after our transparent rendering pass, but before any built-in post-processing effects and output to our render target. + + + + + Represents the size of the enum. + + + + + If this rendering effect is applied to any viewport it is added to. + + + + + The type of effect that is implemented, determines at what stage of rendering the callback is called. + + + + + If and MSAA is enabled, this will trigger a color buffer resolve before the effect is run. + Note: In , to access the resolved buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var color_buffer = render_scene_buffers.get_texture("render_buffers", "color") + + + + + + If and MSAA is enabled, this will trigger a depth buffer resolve before the effect is run. + Note: In , to access the resolved buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var depth_buffer = render_scene_buffers.get_texture("render_buffers", "depth") + + + + + + If this triggers motion vectors being calculated during the opaque render state. + Note: In , to access the motion vector buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var motion_buffer = render_scene_buffers.get_velocity_texture() + + + + + + If this triggers normal and roughness data to be output during our depth pre-pass, only applicable for the Forward+ renderer. + Note: In , to access the roughness buffer use: + + var render_scene_buffers = render_data.get_render_scene_buffers() + var roughness_buffer = render_scene_buffers.get_texture("forward_clustered", "normal_roughness") + + The raw normal and roughness buffer is stored in an optimized format, different than the one available in Spatial shaders. When sampling the buffer, a conversion function must be applied. Use this function, copied from here: + + vec4 normal_roughness_compatibility(vec4 p_normal_roughness) { + float roughness = p_normal_roughness.w; + if (roughness > 0.5) { + roughness = 1.0 - roughness; + } + roughness /= (127.0 / 255.0); + return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, roughness); + } + + + + + + If this triggers specular data being rendered to a separate buffer and combined after effects have been applied, only applicable for the Forward+ renderer. + + + + + Implement this function with your custom rendering code. should always match the effect callback type you've specified in . provides access to the rendering state, it is only valid during rendering and should not be stored. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'effect_callback_type' property. + + + + + Cached name for the 'access_resolved_color' property. + + + + + Cached name for the 'access_resolved_depth' property. + + + + + Cached name for the 'needs_motion_vectors' property. + + + + + Cached name for the 'needs_normal_roughness' property. + + + + + Cached name for the 'needs_separate_specular' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_render_callback' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'get_enabled' method. + + + + + Cached name for the 'set_effect_callback_type' method. + + + + + Cached name for the 'get_effect_callback_type' method. + + + + + Cached name for the 'set_access_resolved_color' method. + + + + + Cached name for the 'get_access_resolved_color' method. + + + + + Cached name for the 'set_access_resolved_depth' method. + + + + + Cached name for the 'get_access_resolved_depth' method. + + + + + Cached name for the 'set_needs_motion_vectors' method. + + + + + Cached name for the 'get_needs_motion_vectors' method. + + + + + Cached name for the 'set_needs_normal_roughness' method. + + + + + Cached name for the 'get_needs_normal_roughness' method. + + + + + Cached name for the 'set_needs_separate_specular' method. + + + + + Cached name for the 'get_needs_separate_specular' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A cubemap that is loaded from a .ccube file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods: + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + See for a general description of cubemaps. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A cubemap array that is loaded from a .ccubearray file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods: + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + See for a general description of cubemap arrays. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture that is loaded from a .ctex file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods (including a lack of any compression): + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + + + + + The 's file path to a .ctex file. + + + + + Loads the texture from the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'load_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_load_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture array that is loaded from a .ctexarray file. This file format is internal to Godot; it is created by importing other image formats with the import system. can use one of 4 compression methods: + - Lossless (WebP or PNG, uncompressed on the GPU) + - Lossy (WebP, uncompressed on the GPU) + - VRAM Compressed (compressed on the GPU) + - VRAM Uncompressed (uncompressed on the GPU) + - Basis Universal (compressed on the GPU. Lower file sizes than VRAM Compressed, but slower to compress and lower quality than VRAM Compressed) + Only VRAM Compressed actually reduces the memory usage on the GPU. The Lossless and Lossy compression methods will reduce the required storage on disk, but they will not reduce memory usage on the GPU as the texture is sent to the GPU uncompressed. + Using VRAM Compressed also improves loading times, as VRAM-compressed textures are faster to load compared to textures using lossless or lossy compression. VRAM compression can exhibit noticeable artifacts and is intended to be used for 3D rendering, not 2D. + See for a general description of texture arrays. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the VRAM-compressed counterpart of . The file extension for files is .ctex3d. This file format is internal to Godot; it is created by importing other image formats with the import system. + 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 for a general description of 3D textures. + + + + + The 's file path to a .ctex3d file. + + + + + Loads the texture from the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'load_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_load_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also . + + + + + The path the texture should be loaded from. + + + + + Loads the texture at . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'load_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_load_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D polyline shape, intended for use in physics. Used internally in when it's in mode. + Being just a collection of interconnected line segments, 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, is hollow even if the interconnected line segments do enclose an area, which often makes it unsuitable for physics or detection. + Note: When used for collision, is intended to work with static nodes like and will likely not behave well for s or s in a mode other than Static. + Warning: Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. is hollow, so it won't detect a collision. + Performance: Due to its complexity, is the slowest 2D collision shape to check collisions against. Its use should generally be limited to level geometry. If the polyline is closed, 's mode can be used, which decomposes the polygon into convex ones; see 's documentation for instructions. + + + + + The array of points that make up the 's line segments. The array (of length divisible by two) is naturally divided into pairs (one pair for each segment); each pair consists of the starting point of a segment and the endpoint of a segment. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_segments' method. + + + + + Cached name for the 'get_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D trimesh shape, intended for use in physics. Usually used to provide a shape for a . + Being just a collection of interconnected triangles, 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, is hollow even if the interconnected triangles do enclose a volume, which often makes it unsuitable for physics or detection. + Note: When used for collision, is intended to work with static nodes like and will likely not behave well for s or s in a mode other than Static. + Warning: Physics bodies that are small have a chance to clip through this shape when moving fast. This happens because on one frame, the physics body may be on the "outside" of the shape, and on the next frame it may be "inside" it. is hollow, so it won't detect a collision. + Performance: Due to its complexity, is the slowest 3D collision shape to check collisions against. Its use should generally be limited to level geometry. For convex geometry, should be used. For dynamic physics bodies that need concave collision, several s can be used to represent its collision by using convex decomposition; see 's documentation for instructions. + + + + + If set to , collisions occur on both sides of the concave shape faces. Otherwise they occur only along the face normals. + + + + + Sets the faces of the trimesh shape from an array of vertices. The array should be composed of triples such that each triple of vertices defines a triangle. + + + + + Sets the faces of the trimesh shape from an array of vertices. The array should be composed of triples such that each triple of vertices defines a triangle. + + + + + Returns the faces of the trimesh shape as an array of vertices. The array (of length divisible by three) is naturally divided into triples; each triple of vertices defines a triangle. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'backface_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_faces' method. + + + + + Cached name for the 'get_faces' method. + + + + + Cached name for the 'set_backface_collision_enabled' method. + + + + + Cached name for the 'is_backface_collision_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . 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. + + + + + 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 . + If below 0.05, this behavior is locked. + + + + + Twist is the rotation around the twist axis, this value defined how far the joint can twist. + Twist is locked if below 0.05. + + + + + The speed with which the swing or twist will take place. + The higher, the faster. + + + + + The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint. + + + + + Defines, how fast the swing- and twist-speed-difference on both sides gets synced. + + + + + Represents the size of the enum. + + + + + 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 . + If below 0.05, this behavior is locked. + + + + + Twist is the rotation around the twist axis, this value defined how far the joint can twist. + Twist is locked if below 0.05. + + + + + The speed with which the swing or twist will take place. + The higher, the faster. + + + + + The ease with which the joint starts to twist. If it's too low, it takes more force to start twisting the joint. + + + + + Defines, how fast the swing- and twist-speed-difference on both sides gets synced. + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'swing_span' property. + + + + + Cached name for the 'twist_span' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'softness' property. + + + + + Cached name for the 'relaxation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This helper class can be used to store values on the filesystem using INI-style formatting. The stored values are identified by a section and a key: + + [section] + some_key=42 + string_example="Hello World3D!" + a_vector=Vector3(1, 0, 2) + + The stored data can be saved to or parsed from a file, though ConfigFile objects can also be used directly without accessing the filesystem. + The following example shows how to create a simple and save it on disc: + + // Create new ConfigFile object. + var config = new ConfigFile(); + + // Store some values. + config.SetValue("Player1", "player_name", "Steve"); + config.SetValue("Player1", "best_score", 10); + config.SetValue("Player2", "player_name", "V3geta"); + config.SetValue("Player2", "best_score", 9001); + + // Save it to a file (overwrite if already exists). + config.Save("user://scores.cfg"); + + This example shows how the above file could be loaded: + + var score_data = new Godot.Collections.Dictionary(); + var config = new ConfigFile(); + + // Load data from a file. + Error err = config.Load("user://scores.cfg"); + + // If the file didn't load, ignore it. + if (err != Error.Ok) + { + return; + } + + // Iterate over all sections. + foreach (String player in config.GetSections()) + { + // Fetch the data for each section. + var player_name = (String)config.GetValue(player, "player_name"); + var player_score = (int)config.GetValue(player, "best_score"); + score_data[player_name] = player_score; + } + + Any operation that mutates the ConfigFile such as , , or , only changes what is loaded in memory. If you want to write the change to a file, you have to save the changes with , , or . + Keep in mind that section and property names can't contain spaces. Anything after a space will be ignored on save and on load. + ConfigFiles can also contain manually written comment lines starting with a semicolon (;). Those lines will be ignored when parsing the file. Note that comments will be lost when saving the ConfigFile. This can still be useful for dedicated server configuration files, which are typically never overwritten without explicit user action. + Note: The file extension given to a ConfigFile does not have any impact on its formatting or behavior. By convention, the .cfg extension is used here, but any other extension such as .ini is also valid. Since neither .cfg nor .ini are standardized, Godot's ConfigFile formatting may differ from files written by other programs. + + + + + Assigns a value to the specified key of the specified section. If either the section or the key do not exist, they are created. Passing a value deletes the specified key if it exists, and deletes the section if it ends up empty once the key has been removed. + + + + + Returns the current value for the specified section and key. If either the section or the key do not exist, the method returns the fallback value. If is not specified or set to , an error is also raised. + + + + + Returns if the specified section exists. + + + + + Returns if the specified section-key pair exists. + + + + + Returns an array of all defined section identifiers. + + + + + Returns an array of all defined key identifiers in the specified section. Raises an error and returns an empty array if the section does not exist. + + + + + Deletes the specified section along with all the key-value pairs inside. Raises an error if the section does not exist. + + + + + Deletes the specified key in a section. Raises an error if either the section or the key do not exist. + + + + + Loads the config file specified as a parameter. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Parses the passed string as the contents of a config file. The string is parsed and loaded in the ConfigFile object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the file specified as a parameter. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Obtain the text version of this config file (the same text that would be written to a file). + + + + + Loads the encrypted config file specified as a parameter, using the provided to decrypt it. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Loads the encrypted config file specified as a parameter, using the provided to decrypt it. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Loads the encrypted config file specified as a parameter, using the provided to decrypt it. The file's contents are parsed and loaded in the object which the method was called on. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the AES-256 encrypted file specified as a parameter, using the provided to encrypt it. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the AES-256 encrypted file specified as a parameter, using the provided to encrypt it. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Saves the contents of the object to the AES-256 encrypted file specified as a parameter, using the provided to encrypt it. The output file uses an INI-style structure. + Returns on success, or one of the other values if the operation failed. + + + + + Removes the entire contents of the config. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_value' method. + + + + + Cached name for the 'get_value' method. + + + + + Cached name for the 'has_section' method. + + + + + Cached name for the 'has_section_key' method. + + + + + Cached name for the 'get_sections' method. + + + + + Cached name for the 'get_section_keys' method. + + + + + Cached name for the 'erase_section' method. + + + + + Cached name for the 'erase_section_key' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'parse' method. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'encode_to_text' method. + + + + + Cached name for the 'load_encrypted' method. + + + + + Cached name for the 'load_encrypted_pass' method. + + + + + Cached name for the 'save_encrypted' method. + + + + + Cached name for the 'save_encrypted_pass' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A dialog used for confirmation of actions. This window is similar to , but pressing its Cancel button can have a different outcome from pressing the OK button. The order of the two buttons varies depending on the host OS. + To get cancel action, you can use: + + GetCancelButton().Pressed += OnCanceled; + + + + + + The text displayed by the cancel button (see ). + + + + + Returns the cancel button. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'cancel_button_text' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cancel_button' method. + + + + + Cached name for the 'set_cancel_button_text' method. + + + + + Cached name for the 'get_cancel_button_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for all GUI containers. A automatically arranges its child controls in a certain way. This class can be inherited to make custom container types. + + + + + Notification just before children are going to be sorted, in case there's something to process beforehand. + + + + + Notification for when sorting the children, it must be obeyed immediately. + + + + + Implement to return a list of allowed horizontal 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. + Note: Having no size flags is equal to having . As such, this value is always implicitly allowed. + + + + + Implement to return a list of allowed vertical 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. + Note: Having no size flags is equal to having . As such, this value is always implicitly allowed. + + + + + Queue resort of the contained children. This is called automatically anyway, but can be called upon request. + + + + + Fit a child control in a given rect. This is mainly a helper for creating custom container classes. + + + + + Emitted when children are going to be sorted. + + + + + Emitted when sorting the children is needed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_allowed_size_flags_horizontal' method. + + + + + Cached name for the '_get_allowed_size_flags_vertical' method. + + + + + Cached name for the 'queue_sort' method. + + + + + Cached name for the 'fit_child_in_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pre_sort_children' signal. + + + + + Cached name for the 'sort_children' signal. + + + + + Base class for all UI-related nodes. 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 and nodes. + Note: Since both and inherit from , they share several concepts from the class such as the and properties. + User Interface nodes and input + Godot propagates input events via viewports. Each is responsible for propagating s to their child nodes. As the is a , this already happens automatically for all UI elements in your game. + Input events are propagated through the from the root node to all child nodes by calling . For UI elements specifically, it makes more sense to override the virtual method , which filters out unrelated input events, such as by checking z-order, , focus, or if the event was inside of the control's bounding box. + Call so no other node receives the event. Once you accept an input, it becomes handled so will not process it. + Only one node can be in focus. Only the node in focus will receive events. To get the focus, call . nodes lose focus when another node grabs it, or if you hide the node in focus. + Sets to to tell a node to ignore mouse or touch events. You'll need it if you place an icon on top of a button. + resources change the control's appearance. The of a node affects all of its direct and indirect children (as long as a chain of controls is uninterrupted). To override some of the theme items, call one of the add_theme_*_override methods, like . You can also override theme items in the Inspector. + Note: Theme items are not properties. This means you can't access their values using and . Instead, use the get_theme_* and add_theme_*_override methods provided by this class. + + + + + Sent when the node changes size. Use to get the new size. + + + + + Sent when the mouse cursor enters the control's (or any child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the mouse cursor leaves the control's (and all child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the mouse cursor enters the control's visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the mouse cursor leaves the control's visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect which Control receives the notification. + See also . + + + + + Sent when the node grabs focus. + + + + + Sent when the node loses focus. + + + + + Sent when the node needs to refresh its theme items. This happens in one of the following cases: + - The property is changed on this node or any of its ancestors. + - The property is changed on this node. + - One of the node's theme property overrides is changed. + - The node enters the scene tree. + Note: As an optimization, this notification won't be sent from changes that occur while this node is outside of the scene tree. Instead, all of the theme item updates can be applied at once when the node enters the scene tree. + Note: This notification is received alongside , so if you are instantiating a scene, the child nodes will not be initialized yet. You can use it to setup theming for this node, child nodes created from script, or if you want to access child nodes added in the editor, make sure the node is ready using . + + func _notification(what): + if what == NOTIFICATION_THEME_CHANGED: + if not is_node_ready(): + await ready # Wait until ready signal. + $Label.add_theme_color_override("font_color", Color.YELLOW) + + + + + + Sent when this node is inside a which has begun being scrolled when dragging the scrollable area with a touch event. This notification is not sent when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Sent when this node is inside a which has stopped being scrolled when dragging the scrollable area with a touch event. This notification is not sent when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Sent when control layout direction is changed. + + + + + The node cannot grab focus. Use with . + + + + + The node can only grab focus on mouse clicks. Use with . + + + + + 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 . + + + + + Show the system's arrow mouse cursor when the user hovers the node. Use with . + + + + + 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. + + + + + Show the system's pointing hand mouse cursor when the user hovers the node. + + + + + Show the system's cross mouse cursor when the user hovers the node. + + + + + Show the system's wait mouse cursor when the user hovers the node. Often an hourglass. + + + + + Show the system's busy mouse cursor when the user hovers the node. Often an arrow with a small hourglass. + + + + + 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. + + + + + 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. + + + + + Show the system's forbidden mouse cursor when the user hovers the node. Often a crossed circle. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 . It tells the user they can resize the window or the panel both horizontally and vertically. + + + + + 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. + + + + + Show the system's vertical split mouse cursor when the user hovers the node. On Windows, it's the same as . + + + + + Show the system's horizontal split mouse cursor when the user hovers the node. On Windows, it's the same as . + + + + + Show the system's help mouse cursor when the user hovers the node, a question mark. + + + + + Snap all 4 anchors to the top-left of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the top-right of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the bottom-left of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the bottom-right of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the left edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the top edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the right edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the bottom edge of the parent control's bounds. Use with . + + + + + Snap all 4 anchors to the center of the parent control's bounds. Use with . + + + + + 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 . + + + + + 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 . + + + + + 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 . + + + + + 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 . + + + + + Snap all 4 anchors to a vertical line that cuts the parent control in half. Use with . + + + + + Snap all 4 anchors to a horizontal line that cuts the parent control in half. Use with . + + + + + 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 will fit its parent control. Use with . + + + + + The control will be resized to its minimum size. + + + + + The control's width will not change. + + + + + The control's height will not change. + + + + + The control's size will not change. + + + + + Tells the parent to align the node with its start, either the top or the left edge. It is mutually exclusive with and other shrink size flags, but can be used with in some containers. Use with and . + Note: Setting this flag is equal to not having any size flags. + + + + + Tells the parent 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 and . + + + + + Tells the parent 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 . Use with and . + + + + + Sets the node's size flags to both fill and expand. See and for more information. + + + + + Tells the parent to center the node in the available space. It is mutually exclusive with and other shrink size flags, but can be used with in some containers. Use with and . + + + + + Tells the parent to align the node with its end, either the bottom or the right edge. It is mutually exclusive with and other shrink size flags, but can be used with in some containers. Use with and . + + + + + The control will receive mouse movement input events and mouse button input events if clicked on through . The control will also receive the and 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. + + + + + The control will receive mouse movement input events and mouse button input events if clicked on through . The control will also receive the and signals. + If this control does not handle the event, the event will propagate up to its parent control if it has one. The event is bubbled up the node hierarchy until it reaches a non-, a control with , or a with enabled. This will allow signals to fire in all controls it reaches. If no control handled it, the event will be passed to for further processing. + + + + + The control will not receive any mouse movement input events nor mouse button input events through . The control will also not receive the nor signals. This will not block other controls from receiving these events or firing the signals. Ignored events will not be handled automatically. If a child has and an event was passed to this control, the event will further propagate up to the control's parent. + Note: If the control has received but not , changing the to will cause to be emitted. + + + + + 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. + + + + + 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. + + + + + The control will grow in both directions equally to make up if its minimum size is changed to be greater than its current size. + + + + + Snaps one of the 4 anchor's sides to the origin of the node's Rect, in the top left. Use it with one of the anchor_* member variables, like . To change all 4 anchors at once, use . + + + + + Snaps one of the 4 anchor's sides to the end of the node's Rect, in the bottom right. Use it with one of the anchor_* member variables, like . To change all 4 anchors at once, use . + + + + + Automatic layout direction, determined from the parent control layout direction. + + + + + Automatic layout direction, determined from the current locale. + + + + + Left-to-right layout direction. + + + + + Right-to-left layout direction. + + + + + Automatic layout direction, determined from the system locale. + + + + + Represents the size of the enum. + + + + + Text writing direction is the same as layout direction. + + + + + Automatic text writing direction, determined from the current locale and text content. + + + + + Left-to-right text writing direction. + + + + + Right-to-left text writing direction. + + + + + Enables whether rendering of based children should be clipped to this control's rectangle. If , parts of a child which would be visibly outside of this control's rectangle will not be rendered and won't receive input. + + + + + The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size. Note that nodes have their internal minimum size returned by . It depends on the control's contents, like text, textures, or style boxes. The actual minimum size is the maximum value of this property and the internal minimum size (see ). + + + + + Controls layout direction and text writing direction. Right-to-left layouts are necessary for certain languages (e.g. Arabic and Hebrew). + + + + + Anchors the left edge of the node to the origin, the center or the end of its parent control. It changes how the left offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Anchors the top edge of the node to the origin, the center or the end of its parent control. It changes how the top offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Anchors the right edge of the node to the origin, the center or the end of its parent control. It changes how the right offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Anchors the bottom edge of the node to the origin, the center, or the end of its parent control. It changes how the bottom offset updates when the node moves or changes size. You can use one of the constants for convenience. + + + + + Distance between the node's left edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Distance between the node's top edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Distance between the node's right edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Distance between the node's bottom edge and its parent control, based on . + Offsets are often controlled by one or multiple parent nodes, so you should not modify them manually if your node is a direct child of a . Offsets update automatically when you move or resize the node. + + + + + Controls the direction on the horizontal axis in which the control should grow if its horizontal minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size. + + + + + Controls the direction on the vertical axis in which the control should grow if its vertical minimum size is changed to be greater than its current size, as the control always has to be at least the minimum size. + + + + + The size of the node's bounding rectangle, in the node's coordinate system. nodes update this property automatically. + + + + + The node's position, relative to its containing node. It corresponds to the rectangle's top-left corner. The property is not affected by . + + + + + The node's global position, relative to the world (usually to the ). + + + + + The node's rotation around its pivot, in radians. See to change the pivot's position. + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use . + + + + + Helper property to access in degrees instead of radians. + + + + + The node's scale, relative to its . Change this property to scale the node around its . The Control's will also scale according to this value. + Note: This property is mainly intended to be used for animation purposes. To support multiple resolutions in your project, use an appropriate viewport stretch mode as described in the documentation instead of scaling Controls individually. + Note: does not take into account. This means that scaling up/down will cause bitmap fonts and rasterized (non-MSDF) dynamic fonts to appear blurry or pixelated. To ensure text remains crisp regardless of scale, you can enable MSDF font rendering by enabling ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (applies to the default project font only), or enabling Multichannel Signed Distance Field in the import options of a DynamicFont for custom fonts. On system fonts, can be enabled in the inspector. + Note: If the Control node is a child of a node, the scale will be reset to Vector2(1, 1) when the scene is instantiated. To set the Control's scale when it's instantiated, wait for one frame using await get_tree().process_frame then set its property. + + + + + By default, the node's pivot is its top-left corner. When you change its or , it will rotate or scale around this pivot. Set this property to / 2 to pivot around the Control's center. + + + + + Tells the parent nodes how they should resize and place the node on the X axis. Use a combination of the constants to change the flags. See the constants to learn what each does. + + + + + Tells the parent nodes how they should resize and place the node on the Y axis. Use a combination of the constants to change the flags. See the constants to learn what each does. + + + + + If the node and at least one of its neighbors uses the size flag, the parent will let it take more or less space depending on this property. If this node has a stretch ratio of 2 and its neighbor a ratio of 1, this node will take two thirds of the available space. + + + + + If , automatically converts code line numbers, list indices, and values from the Western Arabic (0..9) to the numeral systems used in current locale. + Note: Numbers within the text are not automatically converted, it can be done manually, using . + + + + + Toggles if any text should automatically change to its translated version depending on the current locale. + + + + + The default tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the property is not . The time required for the tooltip to appear can be changed with the ProjectSettings.gui/timers/tooltip_delay_sec setting. + This string is the default return value of . Override to generate tooltip text dynamically. Override to customize the tooltip interface and behavior. + The tooltip popup will use either a default implementation, or a custom one that you can provide by overriding . The default tooltip includes a and whose theme properties can be customized using methods with the "TooltipPanel" and "TooltipLabel" respectively. For example: + + var styleBox = new StyleBoxFlat(); + styleBox.SetBgColor(new Color(1, 1, 0)); + styleBox.SetBorderWidthAll(2); + // We assume here that the `Theme` property has been assigned a custom Theme beforehand. + Theme.SetStyleBox("panel", "TooltipPanel", styleBox); + Theme.SetColor("font_color", "TooltipLabel", new Color(0, 1, 1)); + + + + + + Defines if tooltip text should automatically change to its translated version depending on the current locale. Uses the same auto translate mode as this control when set to . + Note: Tooltips customized using do not use this auto translate mode automatically. + + + + + Tells Godot which node it should give focus to if the user presses the left arrow on the keyboard or left on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_left input action. The node must be a . If this property is not set, Godot will give focus to the closest to the left of this one. + + + + + Tells Godot which node it should give focus to if the user presses the top arrow on the keyboard or top on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_up input action. The node must be a . If this property is not set, Godot will give focus to the closest to the top of this one. + + + + + Tells Godot which node it should give focus to if the user presses the right arrow on the keyboard or right on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_right input action. The node must be a . If this property is not set, Godot will give focus to the closest to the right of this one. + + + + + Tells Godot which node it should give focus to if the user presses the down arrow on the keyboard or down on a gamepad by default. You can change the key by editing the ProjectSettings.input/ui_down input action. The node must be a . If this property is not set, Godot will give focus to the closest to the bottom of this one. + + + + + Tells Godot which node it should give focus to if the user presses Tab on a keyboard by default. You can change the key by editing the ProjectSettings.input/ui_focus_next input action. + If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree. + + + + + Tells Godot which node it should give focus to if the user presses Shift + Tab on a keyboard by default. You can change the key by editing the ProjectSettings.input/ui_focus_prev input action. + If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree. + + + + + The focus access mode for the control (None, Click or All). Only one Control can be focused at the same time, and it will receive keyboard, gamepad, and mouse signals. + + + + + Controls whether the control will be able to receive mouse button input events through and how these events should be handled. Also controls whether the control can receive the , and signals. See the constants to learn what each does. + + + + + When enabled, scroll wheel events processed by will be passed to the parent control even if is set to . + You should disable it on the root of your UI if you do not want scroll events to go to the processing. + Note: Because this property defaults to , this allows nested scrollable containers to work out of the box. + + + + + The default cursor shape for this control. Useful for Godot plugins and applications or games that use the system's mouse cursors. + Note: On Linux, shapes may vary depending on the cursor theme of the system. + + + + + The which must be a parent of the focused for the shortcut to be activated. If , the shortcut can be activated when any control is focused (a global shortcut). This allows shortcuts to be accepted only when the user has a certain area of the GUI focused. + + + + + The resource this node and all its and children use. If a child node has its own resource set, theme items are merged with child's definitions having higher priority. + Note: styles will have no effect unless the window is embedded. + + + + + The name of a theme type variation used by this to look up its own theme items. When empty, the class name of the node is used (e.g. Button for the control), as well as the class names of all parent classes (in order of inheritance). + When set, this property gives the highest priority to the type of the specified name. This type can in turn extend another type, forming a dependency chain. See . If the theme item cannot be found using this type or its base types, lookup falls back on the class names. + Note: To look up 's own items use various get_theme_* methods without specifying theme_type. + Note: Theme items are looked for in the tree order, from branch to root, where each node is checked for its property. The earliest match against any type/class name is returned. The project-level Theme and the default Theme are checked last. + + + + + Godot calls this method to test if from a control's can be dropped at . is local to this control. + This method should only be used to test the data. Process the data in . + + 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"); + } + + + + + + Godot calls this method to pass you the from a control's result. Godot first calls to test if is allowed to drop at where is local to this control. + + public override bool _CanDropData(Vector2 atPosition, Variant data) + { + return data.VariantType == Variant.Type.Dictionary && data.AsGodotDictionary().ContainsKey("color"); + } + + public override void _DropData(Vector2 atPosition, Variant data) + { + Color color = data.AsGodotDictionary()["color"].AsColor(); + } + + + + + + Godot calls this method to get data that can be dragged and dropped onto controls that expect drop data. Returns if there is no data to drag. Controls that want to receive drop data should implement and . is local to this control. Drag may be forced with . + A preview that will follow the mouse that should represent the data can be set with . A good time to set the preview is in this method. + + 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; + } + + + + + + Virtual method to be implemented by the user. Returns the minimum size for this control. Alternative to 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 Vector2.ZERO. + Note: This method will not be called when the script is attached to a node that already overrides its minimum size (e.g. , , etc.). It can only be used with most basic GUI nodes, like , , etc. + + + + + Virtual method to be implemented by the user. Returns the tooltip text for the position in control's local coordinates, which will typically appear when the cursor is resting over this control. See . + Note: If this method returns an empty and is not overridden, no tooltip is displayed. + + + + + Virtual method to be implemented by the user. Override this method to handle and accept inputs on UI elements. See also . + Example: Click on the control to print a message: + + 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:"); + } + } + } + + If the inherits , this method will not be called when: + - the control's is set to ; + - the control is obstructed by another control on top, that doesn't have set to ; + - the control's parent has set to or has accepted the event; + - the control's parent has enabled and the 's position is outside the parent's rectangle; + - the 's position is outside the control (see ). + Note: The 's position is relative to this control's origin. + + + + + Virtual method to be implemented by the user. Returns whether the given is inside this control. + If not overridden, default behavior is checking if the point is within control's Rect. + Note: If you want to check if a point is inside the control, you can use Rect2(Vector2.ZERO, size).has_point(point). + + + + + Virtual method to be implemented by the user. Returns a node that should be used as a tooltip instead of the default one. is the return value of . + The returned node must be of type 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 or a non-Control node is returned, the default tooltip will be used instead. + The returned node will be added as child to a , so you should only provide the contents of that panel. That can be themed using for the type "TooltipPanel" (see for an example). + Note: The tooltip is shrunk to minimal size. If you want to ensure it's fully visible, you might want to set its to some non-zero value. + Note: The node (and any relevant children) should have their set to when returned, otherwise, the viewport that instantiates it will not be able to calculate its minimum size reliably. + Note: If overridden, this method is called even if returns an empty string. When this happens with the default tooltip, it is not displayed. To copy this behavior, return in this method when is empty. + Example: Use a constructed node as a tooltip: + + public override Control _MakeCustomTooltip(string forText) + { + var label = new Label(); + label.Text = forText; + return label; + } + + Example: Usa a scene instance as a tooltip: + + 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; + } + + + + + + User defined BiDi algorithm override function. + Returns an of text ranges and text base directions, in the left-to-right order. Ranges should cover full source without overlaps. BiDi algorithm will be used on each range separately. + + + + + Marks an input event as handled. Once you accept an input event, it stops propagating, even to nodes listening to or . + Note: This does not affect the methods in , only the way events are propagated. + + + + + Returns the minimum size for this control. See . + + + + + Returns combined minimum size from and . + + + + + Sets the anchors to a from enum. This is the code equivalent to using the Layout menu in the 2D editor. + If is , control's position will also be updated. + + + + + Sets the offsets to a from enum. This is the code equivalent to using the Layout menu in the 2D editor. + Use parameter with constants from to better determine the resulting size of the . Constant size will be ignored if used with presets that change size, e.g. . + Use parameter to determine the gap between the and the edges. + + + + + Sets both anchor preset and offset preset. See and . + + + + + Sets the anchor for the specified to . A setter method for , , and . + If is , offsets aren't updated after this operation. + If is and the opposite anchor overlaps this anchor, the opposite one will have its value overridden. For example, when setting left anchor to 1 and the right anchor has value of 0.5, the right anchor will also get value of 1. If was , the left anchor would get value 0.5. + + + + + Returns the anchor for the specified . A getter method for , , and . + + + + + Sets the offset for the specified to . A setter method for , , and . + + + + + Returns the offset for the specified . A getter method for , , and . + + + + + Works the same as , but instead of keep_offset argument and automatic update of offset, it allows to set the offset yourself (see ). + + + + + Sets and at the same time. Equivalent of changing . + + + + + Sets and at the same time. + + + + + Sets the to given . + If is , control's anchors will be updated instead of offsets. + + + + + Sets the size (see ). + If is , control's anchors will be updated instead of offsets. + + + + + Resets the size to . This is equivalent to calling set_size(Vector2()) (or any size below the minimum). + + + + + Sets the to given . + If is , control's anchors will be updated instead of offsets. + + + + + Returns and . See also . + + + + + Returns and . + + + + + Returns the width/height occupied in the parent control. + + + + + Returns the position of this in global screen coordinates (i.e. taking window position into account). Mostly useful for editor plugins. + Equals to if the window is embedded (see ). + Example: Show a popup at the mouse position: + + popup_menu.position = get_screen_position() + get_local_mouse_position() + popup_menu.reset_size() + popup_menu.popup() + + + + + + Returns the position and size of the control in the coordinate system of the containing node. See , and . + Note: If is not the default rotation, the resulting size is not meaningful. + Note: Setting to can lead to rounding inaccuracies between the displayed control and the returned . + + + + + Returns the position and size of the control relative to the containing canvas. See and . + Note: If the node itself or any parent between the node and the canvas have a non default rotation or skew, the resulting size is likely not meaningful. + Note: Setting to can lead to rounding inaccuracies between the displayed control and the returned . + + + + + Returns if this is the current focused control. See . + + + + + Steal the focus from another control and become the focused control (see ). + Note: Using this method together with Callable.call_deferred makes it more reliable, especially when called inside . + + + + + Give up the focus. No other control will be able to receive input. + + + + + Finds the previous (above in the tree) that can receive the focus. + + + + + Finds the next (below in the tree) that can receive the focus. + + + + + Finds the next that can receive the focus on the specified . + Note: This is different from , which returns the path of a specified focus neighbor. + + + + + Prevents *_theme_*_override methods from emitting until is called. + + + + + Ends a bulk theme override update. See . + + + + + Creates a local override for a theme icon with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + Example: Modify a property in a by duplicating it: + + // The snippet below assumes the child node "MyButton" has a StyleBoxFlat assigned. + // Resources are shared across instances, so we need to duplicate it + // to avoid modifying the appearance of all other buttons. + StyleBoxFlat newStyleboxNormal = GetNode<Button>("MyButton").GetThemeStylebox("normal").Duplicate() as StyleBoxFlat; + newStyleboxNormal.BorderWidthTop = 3; + newStyleboxNormal.BorderColor = new Color(0, 1, 0.5f); + GetNode<Button>("MyButton").AddThemeStyleboxOverride("normal", newStyleboxNormal); + // Remove the stylebox override. + GetNode<Button>("MyButton").RemoveThemeStyleboxOverride("normal"); + + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme font size with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + Example: Override a 's color and reset it later: + + // Given the child Label node "MyLabel", override its font color with a custom value. + GetNode<Label>("MyLabel").AddThemeColorOverride("font_color", new Color(1, 0.5f, 0)); + // Reset the font color of the child label. + GetNode<Label>("MyLabel").RemoveThemeColorOverride("font_color"); + // Alternatively it can be overridden with the default value from the Label type. + GetNode<Label>("MyLabel").AddThemeColorOverride("font_color", GetThemeColor("font_color", "Label")); + + + + + + Creates a local override for a theme constant with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Removes a local override for a theme icon with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme font size with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme constant with the specified previously added by or via the Inspector dock. + + + + + Returns an icon from the first matching in the tree if that has an icon item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a stylebox item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a font item with the specified and . + See for details. + + + + + Returns a font size from the first matching in the tree if that has a font size item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a color item with the specified and . If is omitted the class name of the current control is used as the type, or if it is defined. If the type is a class name its parent classes are also checked, in order of inheritance. If the type is a variation its base types are checked, in order of dependency, then the control's class name and its parent classes are checked. + For the current control its local overrides are considered first (see ), then its assigned . After the current control, each parent control and its assigned are considered; controls without a assigned are skipped. If no matching is found in the tree, the custom project (see ProjectSettings.gui/theme/custom) and the default are used (see ). + + public override void _Ready() + { + // Get the font color defined for the current Control's class, if it exists. + Modulate = GetThemeColor("font_color"); + // Get the font color defined for the Button class. + Modulate = GetThemeColor("font_color", "Button"); + } + + + + + + Returns a constant from the first matching in the tree if that has a constant item with the specified and . + See for details. + + + + + Returns if there is a local override for a theme icon with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme font size with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme constant with the specified in this node. + See . + + + + + Returns if there is a matching in the tree that has an icon item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a stylebox item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font size item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a color item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a constant item with the specified and . + See for details. + + + + + Returns the default base scale value from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font size value from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the parent control node. + + + + + Returns the tooltip text for the position in control's local coordinates, which will typically appear when the cursor is resting over this control. By default, it returns . + This method can be overridden to customize its behavior. See . + Note: If this method returns an empty and is not overridden, no tooltip is displayed. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns the mouse cursor shape the control displays on mouse hover. See . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Sets the focus neighbor for the specified to the at node path. A setter method for , , and . + + + + + Returns the focus neighbor for the specified . A getter method for , , and . + Note: To find the next on the specific , even if a neighbor is not assigned, use . + + + + + Forces drag and bypasses and by passing and . Drag will start even if the mouse is neither over nor pressed on this control. + The methods and must be implemented on controls that want to receive drop data. + + + + + Creates an that attempts to click the control. If the event is received, the control gains focus. + + public override void _Process(double delta) + { + GrabClickFocus(); // When clicking another Control node, this node will be clicked instead. + } + + + + + + Sets the given callables to be used instead of the control's own drag-and-drop virtual methods. If a callable is empty, its respective virtual method is used as normal. + The arguments for each callable should be exactly the same as their respective virtual methods, which would be: + - corresponds to and requires a ; + - corresponds to and requires both a and a ; + - corresponds to and requires both a and a . + + + + + Shows the given control at the mouse pointer. A good time to call this method is in . The control must not be in the scene tree. You should not free the control, and you should not keep a reference to the control beyond the duration of the drag. It will be deleted automatically after the drag has ended. + + [Export] + private Color _color = new Color(1, 0, 0, 1); + + public override Variant _GetDragData(Vector2 atPosition) + { + // Use a control that is not in the tree + var cpb = new ColorPickerButton(); + cpb.Color = _color; + cpb.Size = new Vector2(50, 50); + SetDragPreview(cpb); + return _color; + } + + + + + + Returns if a drag operation is successful. Alternative to . + Best used with . + + + + + Moves the mouse cursor to , relative to of this . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + Invalidates the size cache in this node and in parent nodes up to top level. Intended to be used with when the return value is changed. Setting directly calls this method automatically. + + + + + Returns if layout is right-to-left. + + + + + Emitted when the control changes size. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node receives an . + + + + + Emitted when the mouse cursor enters the control's (or any child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect, which Control receives the signal. + + + + + Emitted when the mouse cursor leaves the control's (and all child control's) visible area, that is not occluded behind other Controls or Windows, provided its lets the event reach it and regardless if it's currently focused or not. + Note: doesn't affect, which Control receives the signal. + Note: If you want to check whether the mouse truly left the area, ignoring any top nodes, you can use code like this: + + func _on_mouse_exited(): + if not Rect2(Vector2(), size).has_point(get_local_mouse_position()): + # Not hovering over area. + + + + + + Emitted when the node gains focus. + + + + + Emitted when the node loses focus. + + + + + Emitted when one of the size flags changes. See and . + + + + + Emitted when the node's minimum size changes. + + + + + Emitted when the notification is sent. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'clip_contents' property. + + + + + Cached name for the 'custom_minimum_size' property. + + + + + Cached name for the 'layout_direction' property. + + + + + Cached name for the 'layout_mode' property. + + + + + Cached name for the 'anchors_preset' property. + + + + + Cached name for the 'anchor_left' property. + + + + + Cached name for the 'anchor_top' property. + + + + + Cached name for the 'anchor_right' property. + + + + + Cached name for the 'anchor_bottom' property. + + + + + Cached name for the 'offset_left' property. + + + + + Cached name for the 'offset_top' property. + + + + + Cached name for the 'offset_right' property. + + + + + Cached name for the 'offset_bottom' property. + + + + + Cached name for the 'grow_horizontal' property. + + + + + Cached name for the 'grow_vertical' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'rotation_degrees' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'pivot_offset' property. + + + + + Cached name for the 'size_flags_horizontal' property. + + + + + Cached name for the 'size_flags_vertical' property. + + + + + Cached name for the 'size_flags_stretch_ratio' property. + + + + + Cached name for the 'localize_numeral_system' property. + + + + + Cached name for the 'auto_translate' property. + + + + + Cached name for the 'tooltip_text' property. + + + + + Cached name for the 'tooltip_auto_translate_mode' property. + + + + + Cached name for the 'focus_neighbor_left' property. + + + + + Cached name for the 'focus_neighbor_top' property. + + + + + Cached name for the 'focus_neighbor_right' property. + + + + + Cached name for the 'focus_neighbor_bottom' property. + + + + + Cached name for the 'focus_next' property. + + + + + Cached name for the 'focus_previous' property. + + + + + Cached name for the 'focus_mode' property. + + + + + Cached name for the 'mouse_filter' property. + + + + + Cached name for the 'mouse_force_pass_scroll_events' property. + + + + + Cached name for the 'mouse_default_cursor_shape' property. + + + + + Cached name for the 'shortcut_context' property. + + + + + Cached name for the 'theme' property. + + + + + Cached name for the 'theme_type_variation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_drop_data' method. + + + + + Cached name for the '_drop_data' method. + + + + + Cached name for the '_get_drag_data' method. + + + + + Cached name for the '_get_minimum_size' method. + + + + + Cached name for the '_get_tooltip' method. + + + + + Cached name for the '_gui_input' method. + + + + + Cached name for the '_has_point' method. + + + + + Cached name for the '_make_custom_tooltip' method. + + + + + Cached name for the '_structured_text_parser' method. + + + + + Cached name for the 'accept_event' method. + + + + + Cached name for the 'get_minimum_size' method. + + + + + Cached name for the 'get_combined_minimum_size' method. + + + + + Cached name for the '_set_layout_mode' method. + + + + + Cached name for the '_get_layout_mode' method. + + + + + Cached name for the '_set_anchors_layout_preset' method. + + + + + Cached name for the '_get_anchors_layout_preset' method. + + + + + Cached name for the 'set_anchors_preset' method. + + + + + Cached name for the 'set_offsets_preset' method. + + + + + Cached name for the 'set_anchors_and_offsets_preset' method. + + + + + Cached name for the '_set_anchor' method. + + + + + Cached name for the 'set_anchor' method. + + + + + Cached name for the 'get_anchor' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_anchor_and_offset' method. + + + + + Cached name for the 'set_begin' method. + + + + + Cached name for the 'set_end' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the '_set_position' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'reset_size' method. + + + + + Cached name for the '_set_size' method. + + + + + Cached name for the 'set_custom_minimum_size' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the '_set_global_position' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'set_rotation_degrees' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'set_pivot_offset' method. + + + + + Cached name for the 'get_begin' method. + + + + + Cached name for the 'get_end' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'get_rotation_degrees' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'get_pivot_offset' method. + + + + + Cached name for the 'get_custom_minimum_size' method. + + + + + Cached name for the 'get_parent_area_size' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached name for the 'get_screen_position' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached name for the 'get_global_rect' method. + + + + + Cached name for the 'set_focus_mode' method. + + + + + Cached name for the 'get_focus_mode' method. + + + + + Cached name for the 'has_focus' method. + + + + + Cached name for the 'grab_focus' method. + + + + + Cached name for the 'release_focus' method. + + + + + Cached name for the 'find_prev_valid_focus' method. + + + + + Cached name for the 'find_next_valid_focus' method. + + + + + Cached name for the 'find_valid_focus_neighbor' method. + + + + + Cached name for the 'set_h_size_flags' method. + + + + + Cached name for the 'get_h_size_flags' method. + + + + + Cached name for the 'set_stretch_ratio' method. + + + + + Cached name for the 'get_stretch_ratio' method. + + + + + Cached name for the 'set_v_size_flags' method. + + + + + Cached name for the 'get_v_size_flags' method. + + + + + Cached name for the 'set_theme' method. + + + + + Cached name for the 'get_theme' method. + + + + + Cached name for the 'set_theme_type_variation' method. + + + + + Cached name for the 'get_theme_type_variation' method. + + + + + Cached name for the 'begin_bulk_theme_override' method. + + + + + Cached name for the 'end_bulk_theme_override' method. + + + + + Cached name for the 'add_theme_icon_override' method. + + + + + Cached name for the 'add_theme_stylebox_override' method. + + + + + Cached name for the 'add_theme_font_override' method. + + + + + Cached name for the 'add_theme_font_size_override' method. + + + + + Cached name for the 'add_theme_color_override' method. + + + + + Cached name for the 'add_theme_constant_override' method. + + + + + Cached name for the 'remove_theme_icon_override' method. + + + + + Cached name for the 'remove_theme_stylebox_override' method. + + + + + Cached name for the 'remove_theme_font_override' method. + + + + + Cached name for the 'remove_theme_font_size_override' method. + + + + + Cached name for the 'remove_theme_color_override' method. + + + + + Cached name for the 'remove_theme_constant_override' method. + + + + + Cached name for the 'get_theme_icon' method. + + + + + Cached name for the 'get_theme_stylebox' method. + + + + + Cached name for the 'get_theme_font' method. + + + + + Cached name for the 'get_theme_font_size' method. + + + + + Cached name for the 'get_theme_color' method. + + + + + Cached name for the 'get_theme_constant' method. + + + + + Cached name for the 'has_theme_icon_override' method. + + + + + Cached name for the 'has_theme_stylebox_override' method. + + + + + Cached name for the 'has_theme_font_override' method. + + + + + Cached name for the 'has_theme_font_size_override' method. + + + + + Cached name for the 'has_theme_color_override' method. + + + + + Cached name for the 'has_theme_constant_override' method. + + + + + Cached name for the 'has_theme_icon' method. + + + + + Cached name for the 'has_theme_stylebox' method. + + + + + Cached name for the 'has_theme_font' method. + + + + + Cached name for the 'has_theme_font_size' method. + + + + + Cached name for the 'has_theme_color' method. + + + + + Cached name for the 'has_theme_constant' method. + + + + + Cached name for the 'get_theme_default_base_scale' method. + + + + + Cached name for the 'get_theme_default_font' method. + + + + + Cached name for the 'get_theme_default_font_size' method. + + + + + Cached name for the 'get_parent_control' method. + + + + + Cached name for the 'set_h_grow_direction' method. + + + + + Cached name for the 'get_h_grow_direction' method. + + + + + Cached name for the 'set_v_grow_direction' method. + + + + + Cached name for the 'get_v_grow_direction' method. + + + + + Cached name for the 'set_tooltip_auto_translate_mode' method. + + + + + Cached name for the 'get_tooltip_auto_translate_mode' method. + + + + + Cached name for the 'set_tooltip_text' method. + + + + + Cached name for the 'get_tooltip_text' method. + + + + + Cached name for the 'get_tooltip' method. + + + + + Cached name for the 'set_default_cursor_shape' method. + + + + + Cached name for the 'get_default_cursor_shape' method. + + + + + Cached name for the 'get_cursor_shape' method. + + + + + Cached name for the 'set_focus_neighbor' method. + + + + + Cached name for the 'get_focus_neighbor' method. + + + + + Cached name for the 'set_focus_next' method. + + + + + Cached name for the 'get_focus_next' method. + + + + + Cached name for the 'set_focus_previous' method. + + + + + Cached name for the 'get_focus_previous' method. + + + + + Cached name for the 'force_drag' method. + + + + + Cached name for the 'set_mouse_filter' method. + + + + + Cached name for the 'get_mouse_filter' method. + + + + + Cached name for the 'set_force_pass_scroll_events' method. + + + + + Cached name for the 'is_force_pass_scroll_events' method. + + + + + Cached name for the 'set_clip_contents' method. + + + + + Cached name for the 'is_clipping_contents' method. + + + + + Cached name for the 'grab_click_focus' method. + + + + + Cached name for the 'set_drag_forwarding' method. + + + + + Cached name for the 'set_drag_preview' method. + + + + + Cached name for the 'is_drag_successful' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'set_shortcut_context' method. + + + + + Cached name for the 'get_shortcut_context' method. + + + + + Cached name for the 'update_minimum_size' method. + + + + + Cached name for the 'set_layout_direction' method. + + + + + Cached name for the 'get_layout_direction' method. + + + + + Cached name for the 'is_layout_rtl' method. + + + + + Cached name for the 'set_auto_translate' method. + + + + + Cached name for the 'is_auto_translating' method. + + + + + Cached name for the 'set_localize_numeral_system' method. + + + + + Cached name for the 'is_localizing_numeral_system' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'resized' signal. + + + + + Cached name for the 'gui_input' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + Cached name for the 'focus_entered' signal. + + + + + Cached name for the 'focus_exited' signal. + + + + + Cached name for the 'size_flags_changed' signal. + + + + + Cached name for the 'minimum_size_changed' signal. + + + + + Cached name for the 'theme_changed' signal. + + + + + A 2D convex polygon shape, intended for use in physics. Used internally in when it's in mode. + is solid, which means it detects collisions from objects that are fully inside it, unlike which is hollow. This makes it more suitable for both detection and physics. + Convex decomposition: A concave polygon can be split up into several convex polygons. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several nodes or by using the node in mode. To generate a collision polygon from a sprite, select the node, go to the Sprite2D menu that appears above the viewport, and choose Create Polygon2D Sibling. + Performance: is faster to check collisions against compared to , but it is slower than primitive collision shapes such as and . Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes. + + + + + The polygon's list of vertices that form a convex hull. Can be in either clockwise or counterclockwise order. + Warning: Only set this property to a list of points that actually form a convex hull. Use to generate the convex hull of an arbitrary set of points. + + + + + Based on the set of points provided, this assigns the property using the convex hull algorithm, removing all unneeded points. See for details. + + + + + Based on the set of points provided, this assigns the property using the convex hull algorithm, removing all unneeded points. See for details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'points' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_point_cloud' method. + + + + + Cached name for the 'set_points' method. + + + + + Cached name for the 'get_points' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D convex polyhedron shape, intended for use in physics. Usually used to provide a shape for a . + is solid, which means it detects collisions from objects that are fully inside it, unlike which is hollow. This makes it more suitable for both detection and physics. + Convex decomposition: A concave polyhedron can be split up into several convex polyhedra. This allows dynamic physics bodies to have complex concave collisions (at a performance cost) and can be achieved by using several nodes. To generate a convex decomposition from a mesh, select the node, go to the Mesh menu that appears above the viewport, and choose Create Multiple Convex Collision Siblings. Alternatively, can be called in a script to perform this decomposition at run-time. + Performance: is faster to check collisions against compared to , but it is slower than primitive collision shapes such as and . Its use should generally be limited to medium-sized objects that cannot have their collision accurately represented by primitive shapes. + + + + + The list of 3D points forming the convex polygon shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'points' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_points' method. + + + + + Cached name for the 'get_points' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 s. + + using Godot; + using System.Diagnostics; + + Crypto crypto = new Crypto(); + + // Generate new RSA key. + CryptoKey key = crypto.GenerateRsa(4096); + + // Generate new self-signed certificate with the given key. + X509Certificate 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); + + + + + + Generates a [] of cryptographically secure random bytes with given . + + + + + Generates an RSA that can be used for creating self-signed certificates and passed to . + + + + + Generates a self-signed from the given and . The certificate validity will be defined by and (first valid date and last valid date). The must contain at least "CN=" (common name, i.e. the domain name), "O=" (organization, i.e. your company name), "C=" (country, i.e. 2 lettered ISO-3166 code of the country the organization is based in). + A small example to generate an RSA key and an X509 self-signed certificate. + + var crypto = new Crypto(); + // Generate 4096 bits RSA key. + CryptoKey key = crypto.GenerateRsa(4096); + // Generate self-signed certificate using the given key. + X509Certificate cert = crypto.GenerateSelfSignedCertificate(key, "CN=mydomain.com,O=My Game Company,C=IT"); + + + + + + Sign a given of type with the provided private . + + + + + Sign a given of type with the provided private . + + + + + Verify that a given for of type against the provided public . + + + + + Verify that a given for of type against the provided public . + + + + + Encrypt the given with the provided public . + Note: The maximum size of accepted plaintext is limited by the key size. + + + + + Encrypt the given with the provided public . + Note: The maximum size of accepted plaintext is limited by the key size. + + + + + Decrypt the given with the provided private . + Note: The maximum size of accepted ciphertext is limited by the key size. + + + + + Decrypt the given with the provided private . + Note: The maximum size of accepted ciphertext is limited by the key size. + + + + + Generates an HMAC digest of using . The parameter is the hashing algorithm that is used for the inner and outer hashes. + Currently, only and are supported. + + + + + Generates an HMAC digest of using . The parameter is the hashing algorithm that is used for the inner and outer hashes. + Currently, only and are supported. + + + + + Compares two []s for equality without leaking timing information in order to prevent timing attacks. + See this blog post for more information. + + + + + Compares two []s for equality without leaking timing information in order to prevent timing attacks. + See this blog post for more information. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'generate_random_bytes' method. + + + + + Cached name for the 'generate_rsa' method. + + + + + Cached name for the 'generate_self_signed_certificate' method. + + + + + Cached name for the 'sign' method. + + + + + Cached name for the 'verify' method. + + + + + Cached name for the 'encrypt' method. + + + + + Cached name for the 'decrypt' method. + + + + + Cached name for the 'hmac_digest' method. + + + + + Cached name for the 'constant_time_compare' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The CryptoKey class represents a cryptographic key. Keys can be loaded and saved like any other . + They can be used to generate a self-signed via and as private key in along with the appropriate certificate. + + + + + Saves a key to the given . If is , only the public key will be saved. + Note: should be a "*.pub" file if is , a "*.key" file otherwise. + + + + + Loads a key from . If is , only the public key will be loaded. + Note: should be a "*.pub" file if is , a "*.key" file otherwise. + + + + + Returns if this CryptoKey only has the public part, and not the private one. + + + + + Returns a string containing the key in PEM format. If is , only the public key will be included. + + + + + Loads a key from the given . If is , only the public key will be loaded. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'is_public_only' method. + + + + + Cached name for the 'save_to_string' method. + + + + + Cached name for the 'load_from_string' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A cubemap is made of 6 textures organized in layers. They are typically used for faking reflections in 3D rendering (see ). 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 resources. + To create such a texture file yourself, reimport your image files using the Godot Editor import presets. The expected image order is X+, X-, Y+, Y-, Z+, Z- (in Godot's coordinate system, so Y+ is "up" and Z- is "forward"). You can use one of the following templates as a base: + - 2×3 cubemap template (default layout option) + - 3×2 cubemap template + - 1×6 cubemap template + - 6×1 cubemap template + Note: Godot doesn't support using cubemaps in a . To use a cubemap as a skybox, convert the default to a using the Convert to ShaderMaterial resource dropdown option, then replace its code with the following: + + shader_type sky; + + uniform samplerCube source_panorama : filter_linear, source_color, hint_default_black; + uniform float exposure : hint_range(0, 128) = 1.0; + + void sky() { + // If importing a cubemap from another engine, you may need to flip one of the `EYEDIR` components below + // by replacing it with `-EYEDIR`. + vec3 eyedir = vec3(EYEDIR.x, EYEDIR.y, EYEDIR.z); + COLOR = texture(source_panorama, eyedir).rgb * exposure; + } + + After replacing the shader code and saving, specify the imported Cubemap resource in the Shader Parameters section of the ShaderMaterial in the inspector. + Alternatively, you can use this tool to convert a cubemap to an equirectangular sky map and use as usual. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + s are made of an array of s. Like 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 s is that they can be accessed in shader code using a single texture reference. In other words, you can pass multiple s into a shader using a single . s are allocated in adjacent cache regions on the GPU, which makes s the most efficient way to store multiple s. + Note: Godot uses s internally for many effects, including the if you set ProjectSettings.rendering/reflections/sky_reflections/texture_array_reflections to . To create such a texture file yourself, reimport your image files using the import presets of the File System dock. + Note: is not supported in the Compatibility renderer. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource describes a mathematical curve by defining a set of points and tangents at each point. By default, it ranges between 0 and 1 on the X and Y axes, but these ranges can be changed. + Please note that many resources and nodes assume they are given unit curves. A unit curve is a curve whose domain (the X axis) is between 0 and 1. Some examples of unit curve usage are and . + + + + + The tangent on this side of the point is user-defined. + + + + + The curve calculates the tangent on this side of the point as the slope halfway towards the adjacent point. + + + + + The total number of available tangent modes. + + + + + The minimum domain (x-coordinate) that points can have. + + + + + The maximum domain (x-coordinate) that points can have. + + + + + The minimum value (y-coordinate) that points can have. Tangents can cause lower values between points. + + + + + The maximum value (y-coordinate) that points can have. Tangents can cause higher values between points. + + + + + The number of points to include in the baked (i.e. cached) curve data. + + + + + The number of points describing the curve. + + + + + Adds a point to the curve. For each side, if the *_mode is , the *_tangent angle (in degrees) uses the slope of the curve halfway to the adjacent point. Allows custom assignments to the *_tangent angle if *_mode is set to . + + + + + Removes the point at from the curve. + + + + + Removes all points from the curve. + + + + + Returns the curve coordinates for the point at . + + + + + Assigns the vertical position to the point at . + + + + + Sets the offset from 0.5. + + + + + Returns the Y value for the point that would exist at the X position along the curve. + + + + + Returns the Y value for the point that would exist at the X position along the curve using the baked cache. Bakes the curve's points if not already baked. + + + + + Returns the left tangent angle (in degrees) for the point at . + + + + + Returns the right tangent angle (in degrees) for the point at . + + + + + Returns the left for the point at . + + + + + Returns the right for the point at . + + + + + Sets the left tangent angle for the point at to . + + + + + Sets the right tangent angle for the point at to . + + + + + Sets the left for the point at to . + + + + + Sets the right for the point at to . + + + + + Returns the difference between and . + + + + + Returns the difference between and . + + + + + Removes duplicate points, i.e. points that are less than 0.00001 units (engine epsilon value) away from their neighbor on the curve. + + + + + Recomputes the baked cache of points for the curve. + + + + + Emitted when or is changed. + + + + + Emitted when or is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'min_domain' property. + + + + + Cached name for the 'max_domain' property. + + + + + Cached name for the 'min_value' property. + + + + + Cached name for the 'max_value' property. + + + + + Cached name for the '_limits' property. + + + + + Cached name for the 'bake_resolution' property. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'point_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_value' method. + + + + + Cached name for the 'set_point_offset' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'sample_baked' method. + + + + + Cached name for the 'get_point_left_tangent' method. + + + + + Cached name for the 'get_point_right_tangent' method. + + + + + Cached name for the 'get_point_left_mode' method. + + + + + Cached name for the 'get_point_right_mode' method. + + + + + Cached name for the 'set_point_left_tangent' method. + + + + + Cached name for the 'set_point_right_tangent' method. + + + + + Cached name for the 'set_point_left_mode' method. + + + + + Cached name for the 'set_point_right_mode' method. + + + + + Cached name for the 'get_min_value' method. + + + + + Cached name for the 'set_min_value' method. + + + + + Cached name for the 'get_max_value' method. + + + + + Cached name for the 'set_max_value' method. + + + + + Cached name for the 'get_value_range' method. + + + + + Cached name for the 'get_min_domain' method. + + + + + Cached name for the 'set_min_domain' method. + + + + + Cached name for the 'get_max_domain' method. + + + + + Cached name for the 'set_max_domain' method. + + + + + Cached name for the 'get_domain_range' method. + + + + + Cached name for the '_get_limits' method. + + + + + Cached name for the '_set_limits' method. + + + + + Cached name for the 'clean_dupes' method. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'get_bake_resolution' method. + + + + + Cached name for the 'set_bake_resolution' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'range_changed' signal. + + + + + Cached name for the 'domain_changed' signal. + + + + + This class describes a Bézier curve in 2D space. It is mainly used to give a shape to a , but can be manually sampled for other purposes. + It keeps a cache of precalculated points along the curve, to speed up further calculations. + + + + + The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the or function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care. + + + + + The number of points describing the curve. + + + + + Adds a point with the specified relative to the curve's own position, with control points and . Appends the new point at the end of the point list. + If is given, the new point is inserted before the existing point identified by index . Every existing point starting from is shifted further down the list of points. The index must be greater than or equal to 0 and must not exceed the number of existing points in the line. See . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Sets the position for the vertex . If the index is out of bounds, the function sends an error to the console. + + + + + Returns the position of the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0). + + + + + Sets the position of the control point leading to the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading to the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0). + + + + + Sets the position of the control point leading out of the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading out of the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0). + + + + + Deletes the point from the curve. Sends an error to the console if is out of bounds. + + + + + Removes all points from the curve. + + + + + Returns the position between the vertex and the vertex idx + 1, where controls if the point is the first vertex (t = 0.0), the last vertex (t = 1.0), or in between. Values of outside the range (0.0 <= t <= 1.0) give strange, but predictable results. + If is out of bounds it is truncated to the first or last vertex, and is ignored. If the curve has no points, the function sends an error to the console, and returns (0, 0). + + + + + Returns the position at the vertex . It calls using the integer part of as idx, and its fractional part as t. + + + + + Returns the total length of the curve, based on the cached points. Given enough density (see ), it should be approximate enough. + + + + + Returns a point within the curve at position , where is measured as a pixel distance along the curve. + To do that, it finds the two cached points where the lies between, then interpolates the values. This interpolation is cubic if is set to , or linear if set to . + Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough). + + + + + Similar to , but returns that includes a rotation along the curve, with Transform2D.origin as the point position and the Transform2D.x vector pointing in the direction of the path at that point. Returns an empty transform if the length of the curve is 0. + + var baked = curve.sample_baked_with_rotation(offset) + # The returned Transform2D can be set directly. + transform = baked + # You can also read the origin and rotation separately from the returned Transform2D. + position = baked.get_origin() + rotation = baked.get_rotation() + + + + + + Returns the cache of points as a []. + + + + + Returns the closest point on baked segments (in curve's local space) to . + must be in this curve's local space. + + + + + Returns the closest offset to . This offset is meant to be used in . + must be in this curve's local space. + + + + + Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts. + This approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough. + controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided. + + + + + Returns a list of points along the curve, with almost uniform density. controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls the maximal distance between two neighboring points, before the segment has to be subdivided. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bake_interval' property. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'point_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_in' method. + + + + + Cached name for the 'get_point_in' method. + + + + + Cached name for the 'set_point_out' method. + + + + + Cached name for the 'get_point_out' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'samplef' method. + + + + + Cached name for the 'set_bake_interval' method. + + + + + Cached name for the 'get_bake_interval' method. + + + + + Cached name for the 'get_baked_length' method. + + + + + Cached name for the 'sample_baked' method. + + + + + Cached name for the 'sample_baked_with_rotation' method. + + + + + Cached name for the 'get_baked_points' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_offset' method. + + + + + Cached name for the 'tessellate' method. + + + + + Cached name for the 'tessellate_even_length' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class describes a Bézier curve in 3D space. It is mainly used to give a shape to a , but can be manually sampled for other purposes. + It keeps a cache of precalculated points along the curve, to speed up further calculations. + + + + + If , and the curve has more than 2 control points, the last point and the first one will be connected in a loop. + + + + + The distance in meters between two adjacent cached points. Changing it forces the cache to be recomputed the next time the or function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care. + + + + + The number of points describing the curve. + + + + + If , the curve will bake up vectors used for orientation. This is used when is set to . Changing it forces the cache to be recomputed. + + + + + Adds a point with the specified relative to the curve's own position, with control points and . Appends the new point at the end of the point list. + If is given, the new point is inserted before the existing point identified by index . Every existing point starting from is shifted further down the list of points. The index must be greater than or equal to 0 and must not exceed the number of existing points in the line. See . + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Sets the position for the vertex . If the index is out of bounds, the function sends an error to the console. + + + + + Returns the position of the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0). + + + + + Sets the tilt angle in radians for the point . If the index is out of bounds, the function sends an error to the console. + The tilt controls the rotation along the look-at axis an object traveling the path would have. In the case of a curve controlling a , this tilt is an offset over the natural tilt the calculates. + + + + + Returns the tilt angle in radians for the point . If the index is out of bounds, the function sends an error to the console, and returns 0. + + + + + Sets the position of the control point leading to the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading to the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0). + + + + + Sets the position of the control point leading out of the vertex . If the index is out of bounds, the function sends an error to the console. The position is relative to the vertex. + + + + + Returns the position of the control point leading out of the vertex . The returned position is relative to the vertex . If the index is out of bounds, the function sends an error to the console, and returns (0, 0, 0). + + + + + Deletes the point from the curve. Sends an error to the console if is out of bounds. + + + + + Removes all points from the curve. + + + + + Returns the position between the vertex and the vertex idx + 1, where controls if the point is the first vertex (t = 0.0), the last vertex (t = 1.0), or in between. Values of outside the range (0.0 >= t <=1) give strange, but predictable results. + If is out of bounds it is truncated to the first or last vertex, and is ignored. If the curve has no points, the function sends an error to the console, and returns (0, 0, 0). + + + + + Returns the position at the vertex . It calls using the integer part of as idx, and its fractional part as t. + + + + + Returns the total length of the curve, based on the cached points. Given enough density (see ), it should be approximate enough. + + + + + Returns a point within the curve at position , where is measured as a distance in 3D units along the curve. To do that, it finds the two cached points where the lies between, then interpolates the values. This interpolation is cubic if is set to , or linear if set to . + Cubic interpolation tends to follow the curves better, but linear is faster (and often, precise enough). + + + + + Returns a with origin as point position, basis.x as sideway vector, basis.y as up vector, basis.z as forward vector. When the curve length is 0, there is no reasonable way to calculate the rotation, all vectors aligned with global space axes. See also . + + + + + Returns an up vector within the curve at position , where is measured as a distance in 3D units along the curve. To do that, it finds the two cached up vectors where the lies between, then interpolates the values. If is , an interpolated tilt is applied to the interpolated up vector. + If the curve has no up vectors, the function sends an error to the console, and returns (0, 1, 0). + + + + + Returns the cache of points as a []. + + + + + Returns the cache of tilts as a []. + + + + + Returns the cache of up vectors as a []. + If is , the cache will be empty. + + + + + Returns the closest point on baked segments (in curve's local space) to . + must be in this curve's local space. + + + + + Returns the closest offset to . This offset is meant to be used in or . + must be in this curve's local space. + + + + + Returns a list of points along the curve, with a curvature controlled point density. That is, the curvier parts will have more points than the straighter parts. + This approximation makes straight segments between each point, then subdivides those segments until the resulting shape is similar enough. + controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls how many degrees the midpoint of a segment may deviate from the real curve, before the segment has to be subdivided. + + + + + Returns a list of points along the curve, with almost uniform density. controls how many subdivisions a curve segment may face before it is considered approximate enough. Each subdivision splits the segment in half, so the default 5 stages may mean up to 32 subdivisions per curve segment. Increase with care! + controls the maximal distance between two neighboring points, before the segment has to be subdivided. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'closed' property. + + + + + Cached name for the 'bake_interval' property. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'point_count' property. + + + + + Cached name for the 'up_vector_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'set_point_tilt' method. + + + + + Cached name for the 'get_point_tilt' method. + + + + + Cached name for the 'set_point_in' method. + + + + + Cached name for the 'get_point_in' method. + + + + + Cached name for the 'set_point_out' method. + + + + + Cached name for the 'get_point_out' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'samplef' method. + + + + + Cached name for the 'set_closed' method. + + + + + Cached name for the 'is_closed' method. + + + + + Cached name for the 'set_bake_interval' method. + + + + + Cached name for the 'get_bake_interval' method. + + + + + Cached name for the 'set_up_vector_enabled' method. + + + + + Cached name for the 'is_up_vector_enabled' method. + + + + + Cached name for the 'get_baked_length' method. + + + + + Cached name for the 'sample_baked' method. + + + + + Cached name for the 'sample_baked_with_rotation' method. + + + + + Cached name for the 'sample_baked_up_vector' method. + + + + + Cached name for the 'get_baked_points' method. + + + + + Cached name for the 'get_baked_tilts' method. + + + + + Cached name for the 'get_baked_up_vectors' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'get_closest_offset' method. + + + + + Cached name for the 'tessellate' method. + + + + + Cached name for the 'tessellate_even_length' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 1D texture where pixel brightness corresponds to points on a unit 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 instead. See also and . + + + + + 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. + + + + + Store the curve only in the red channel. This saves video memory, but some custom shaders may not be able to work with this. + + + + + The width of the texture (in pixels). Higher values make it possible to represent high-frequency data better (such as sudden direction changes), at the cost of increased generation time and memory usage. + + + + + The format the texture should be generated with. When passing a CurveTexture as an input to a , this may need to be adjusted. + + + + + The that is rendered onto the texture. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'texture_mode' property. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached name for the 'set_texture_mode' method. + + + + + Cached name for the 'get_texture_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 1D texture where the red, green, and blue color channels correspond to points on 3 unit resources. Compared to using separate 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 instead. See also and . + + + + + The width of the texture (in pixels). Higher values make it possible to represent high-frequency data better (such as sudden direction changes), at the cost of increased generation time and memory usage. + + + + + The that is rendered onto the texture's red channel. Should be a unit . + + + + + The that is rendered onto the texture's green channel. Should be a unit . + + + + + The that is rendered onto the texture's blue channel. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'curve_x' property. + + + + + Cached name for the 'curve_y' property. + + + + + Cached name for the 'curve_z' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_curve_x' method. + + + + + Cached name for the 'get_curve_x' method. + + + + + Cached name for the 'set_curve_y' method. + + + + + Cached name for the 'get_curve_y' method. + + + + + Cached name for the 'set_curve_z' method. + + + + + Cached name for the 'get_curve_z' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a cylindrical . This class can be used to create cones by setting either the or properties to 0.0. + + + + + Top radius of the cylinder. If set to 0.0, the top faces will not be generated, resulting in a conic shape. See also . + + + + + Bottom radius of the cylinder. If set to 0.0, the bottom faces will not be generated, resulting in a conic shape. See also . + + + + + Full height of the cylinder. + + + + + Number of radial segments on the cylinder. Higher values result in a more detailed cylinder/cone at the cost of performance. + + + + + Number of edge rings along the height of the cylinder. Changing does not have any visual impact unless a shader or procedural mesh tool is used to alter the vertex data. Higher values result in more subdivisions, which can be used to create smoother-looking effects with shaders or procedural mesh tools (at the cost of performance). When not altering the vertex data using a shader or procedural mesh tool, should be kept to its default value. + + + + + If , generates a cap at the top of the cylinder. This can be set to to speed up generation and rendering when the cap is never seen by the camera. See also . + Note: If is 0.0, cap generation is always skipped even if is . + + + + + If , generates a cap at the bottom of the cylinder. This can be set to to speed up generation and rendering when the cap is never seen by the camera. See also . + Note: If is 0.0, cap generation is always skipped even if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'top_radius' property. + + + + + Cached name for the 'bottom_radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'cap_top' property. + + + + + Cached name for the 'cap_bottom' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_top_radius' method. + + + + + Cached name for the 'get_top_radius' method. + + + + + Cached name for the 'set_bottom_radius' method. + + + + + Cached name for the 'get_bottom_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_cap_top' method. + + + + + Cached name for the 'is_cap_top' method. + + + + + Cached name for the 'set_cap_bottom' method. + + + + + Cached name for the 'is_cap_bottom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D cylinder shape, intended for use in physics. Usually used to provide a shape for a . + Note: There are several known bugs with cylinder collision shapes. Using or instead is recommended. + Performance: is fast to check collisions against, but it is slower than , , and . + + + + + The cylinder's height. + + + + + The cylinder's radius. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used to store the state of a DTLS server. Upon it converts connected to accepting them via as DTLS clients. Under the hood, this class is used to store the DTLS state and cookies of the server. The reason of why the state and cookies are needed is outside of the scope of this documentation. + Below a small example of how to use it: + + // ServerNode.cs + using Godot; + + public partial class ServerNode : Node + { + private DtlsServer _dtls = new DtlsServer(); + private UdpServer _server = new UdpServer(); + private Godot.Collections.Array<PacketPeerDtls> _peers = new Godot.Collections.Array<PacketPeerDtls>(); + + public override void _Ready() + { + _server.Listen(4242); + var key = GD.Load<CryptoKey>("key.key"); // Your private key. + var cert = GD.Load<X509Certificate>("cert.crt"); // Your X509 certificate. + _dtls.Setup(key, cert); + } + + public override void _Process(double delta) + { + while (Server.IsConnectionAvailable()) + { + PacketPeerUdp peer = _server.TakeConnection(); + PacketPeerDtls dtlsPeer = _dtls.TakeConnection(peer); + if (dtlsPeer.GetStatus() != PacketPeerDtls.Status.Handshaking) + { + continue; // It is normal that 50% of the connections fails due to cookie exchange. + } + GD.Print("Peer connected!"); + _peers.Add(dtlsPeer); + } + + foreach (var p in _peers) + { + p.Poll(); // Must poll to update the state. + if (p.GetStatus() == PacketPeerDtls.Status.Connected) + { + while (p.GetAvailablePacketCount() > 0) + { + GD.Print($"Received Message From Client: {p.GetPacket().GetStringFromUtf8()}"); + p.PutPacket("Hello DTLS Client".ToUtf8Buffer()); + } + } + } + } + } + + + // ClientNode.cs + using Godot; + using System.Text; + + public partial class ClientNode : Node + { + private PacketPeerDtls _dtls = new PacketPeerDtls(); + private PacketPeerUdp _udp = new PacketPeerUdp(); + private bool _connected = false; + + public override void _Ready() + { + _udp.ConnectToHost("127.0.0.1", 4242); + _dtls.ConnectToPeer(_udp, validateCerts: false); // Use true in production for certificate validation! + } + + public override void _Process(double delta) + { + _dtls.Poll(); + if (_dtls.GetStatus() == PacketPeerDtls.Status.Connected) + { + if (!_connected) + { + // Try to contact server + _dtls.PutPacket("The Answer Is..42!".ToUtf8Buffer()); + } + while (_dtls.GetAvailablePacketCount() > 0) + { + GD.Print($"Connected: {_dtls.GetPacket().GetStringFromUtf8()}"); + _connected = true; + } + } + } + } + + + + + + Setup the DTLS server to use the given . See . + + + + + Try to initiate the DTLS handshake with the given which must be already connected (see ). + Note: You must check that the state of the return PacketPeerUDP is , as it is normal that 50% of the new connections will be invalid due to cookie exchange. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached name for the 'take_connection' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The spring joint's maximum length. The two attached bodies cannot stretch it past this value. + + + + + When the bodies attached to the spring joint move they stretch or squash it. The joint always tries to resize towards this length. + + + + + The higher the value, the less the bodies attached to the joint will deform it. The joint applies an opposing force to the bodies, the product of the stiffness multiplied by the size difference from its resting length. + + + + + The spring joint's damping ratio. A value between 0 and 1. When the two bodies move into different directions the system tries to align them to the spring axis again. A high value forces the attached bodies to align faster. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'rest_length' property. + + + + + Cached name for the 'stiffness' property. + + + + + Cached name for the 'damping' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_rest_length' method. + + + + + Cached name for the 'get_rest_length' method. + + + + + Cached name for the 'set_stiffness' method. + + + + + Cached name for the 'get_stiffness' method. + + + + + Cached name for the 'set_damping' method. + + + + + Cached name for the 'get_damping' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + s are used to project a texture onto a in the scene. Use Decals to add detail to a scene without affecting the underlying . 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 and a group of s specifying , normal, ORM (ambient occlusion, roughness, metallic), and emission. Decals are projected within their 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 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. + Note: Decals cannot affect an underlying material's transparency, regardless of its transparency mode (alpha blend, alpha scissor, alpha hash, opaque pre-pass). This means translucent or transparent areas of a material will remain translucent or transparent even if an opaque decal is applied on them. + Note: Decals are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 decals can be displayed on each mesh resource. Attempting to display more than 8 decals on a single mesh resource will result in decals flickering in and out as the camera moves. + Note: When using the Mobile rendering method, decals will only correctly affect meshes whose visibility AABB intersects with the decal's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the decal may not be visible on the mesh. + + + + + corresponding to . + + + + + corresponding to . + + + + + corresponding to . + + + + + corresponding to . + + + + + Max size of enum. + + + + + Sets the size of the used by the decal. All dimensions must be set to a value greater than zero (they will be clamped to 0.001 if this is not the case). The AABB goes from -size/2 to size/2. + Note: To improve culling efficiency of "hard surface" decals, set their and to 0.0 and set the Y component of the as low as possible. This will reduce the decals' AABB size without affecting their appearance. + + + + + with the base of the Decal. Either this or the must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + + + + + with the per-pixel normal map for the decal. Use this to add extra detail to decals. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + Note: Setting this texture alone will not result in a visible decal, as must also be set. To create a normal-only decal, load an albedo texture into and set to 0.0. The albedo texture's alpha channel will be used to determine where the underlying surface's normal map should be overridden (and its intensity). + + + + + storing ambient occlusion, roughness, and metallic for the decal. Use this to add extra detail to decals. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + Note: Setting this texture alone will not result in a visible decal, as must also be set. To create an ORM-only decal, load an albedo texture into and set to 0.0. The albedo texture's alpha channel will be used to determine where the underlying surface's ORM map should be overridden (and its intensity). + + + + + with the emission of the Decal. Either this or the must be set for the Decal to be visible. Use the alpha channel like a mask to smoothly blend the edges of the decal with the underlying object. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for textures is set globally with ProjectSettings.rendering/textures/decals/filter. + + + + + Energy multiplier for the emission texture. This will make the decal emit light at a higher or lower intensity, independently of the albedo color. See also . + + + + + Changes the of the Decal by multiplying the albedo and emission colors with this value. The alpha component is only taken into account when multiplying the albedo color, not the emission color. See also and to change the emission and albedo intensity independently of each other. + + + + + Blends the albedo of the decal with albedo of the underlying mesh. This can be set to 0.0 to create a decal that only affects normal or ORM. In this case, an albedo texture is still required as its alpha channel will determine where the normal and ORM will be overridden. See also . + + + + + Fades the Decal if the angle between the Decal's and the target surface becomes too large. A value of 0 projects the Decal regardless of angle, a value of 1 limits the Decal to surfaces that are nearly perpendicular. + Note: Setting to a value greater than 0.0 has a small performance cost due to the added normal angle computations. + + + + + Sets the curve over which the decal will fade as the surface gets further from the center of the . Only positive values are valid (negative values will be clamped to 0.0). See also . + + + + + Sets the curve over which the decal will fade as the surface gets further from the center of the . Only positive values are valid (negative values will be clamped to 0.0). See also . + + + + + If , decals will smoothly fade away when far from the active starting at . The Decal will fade out over + , after which it will be culled and not sent to the shader at all. Use this to reduce the number of active Decals in a scene and thus improve performance. + + + + + The distance from the camera at which the Decal begins to fade away (in 3D units). + + + + + The distance over which the Decal fades (in 3D units). The Decal becomes slowly more transparent over this distance and is completely invisible at the end. Higher values result in a smoother fade-out transition, which is more suited when the camera moves fast. + + + + + Specifies which this decal will project on. By default, Decals affect all layers. This is used so you can specify which types of objects receive the Decal and which do not. This is especially useful so you can ensure that dynamic objects don't accidentally receive a Decal intended for the terrain under them. + + + + + Sets the associated with the specified . This is a convenience method, in most cases you should access the texture directly. + For example, instead of $Decal.set_texture(Decal.TEXTURE_ALBEDO, albedo_tex), use $Decal.texture_albedo = albedo_tex. + One case where this is better than accessing the texture directly is when you want to copy one Decal's textures to another. For example: + + for (int i = 0; i < (int)Decal.DecalTexture.Max; i++) + { + GetNode<Decal>("NewDecal").SetTexture(i, GetNode<Decal>("OldDecal").GetTexture(i)); + } + + + + + + Returns the associated with the specified . This is a convenience method, in most cases you should access the texture directly. + For example, instead of albedo_tex = $Decal.get_texture(Decal.TEXTURE_ALBEDO), use albedo_tex = $Decal.texture_albedo. + One case where this is better than accessing the texture directly is when you want to copy one Decal's textures to another. For example: + + for (int i = 0; i < (int)Decal.DecalTexture.Max; i++) + { + GetNode<Decal>("NewDecal").SetTexture(i, GetNode<Decal>("OldDecal").GetTexture(i)); + } + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'texture_albedo' property. + + + + + Cached name for the 'texture_normal' property. + + + + + Cached name for the 'texture_orm' property. + + + + + Cached name for the 'texture_emission' property. + + + + + Cached name for the 'emission_energy' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'albedo_mix' property. + + + + + Cached name for the 'normal_fade' property. + + + + + Cached name for the 'upper_fade' property. + + + + + Cached name for the 'lower_fade' property. + + + + + Cached name for the 'distance_fade_enabled' property. + + + + + Cached name for the 'distance_fade_begin' property. + + + + + Cached name for the 'distance_fade_length' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_emission_energy' method. + + + + + Cached name for the 'get_emission_energy' method. + + + + + Cached name for the 'set_albedo_mix' method. + + + + + Cached name for the 'get_albedo_mix' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_upper_fade' method. + + + + + Cached name for the 'get_upper_fade' method. + + + + + Cached name for the 'set_lower_fade' method. + + + + + Cached name for the 'get_lower_fade' method. + + + + + Cached name for the 'set_normal_fade' method. + + + + + Cached name for the 'get_normal_fade' method. + + + + + Cached name for the 'set_enable_distance_fade' method. + + + + + Cached name for the 'is_distance_fade_enabled' method. + + + + + Cached name for the 'set_distance_fade_begin' method. + + + + + Cached name for the 'get_distance_fade_begin' method. + + + + + Cached name for the 'set_distance_fade_length' method. + + + + + Cached name for the 'get_distance_fade_length' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used to manage directories and their content, even outside of the project folder. + 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 . Static methods only support absolute paths (including res:// and user://). + + # Standard + var dir = DirAccess.open("user://levels") + dir.make_dir("world1") + # Static + DirAccess.make_dir_absolute("user://levels/world1") + + Note: Accessing project ("res://") directories once exported may behave unexpectedly as some files are converted to engine-specific formats and their original source files may not be present in the expected PCK package. Because of this, to access resources in an exported project, it is recommended to use instead of . + Here is an example on how to iterate through the files of a directory: + + public void DirContents(string path) + { + using var dir = DirAccess.Open(path); + if (dir != null) + { + dir.ListDirBegin(); + string fileName = dir.GetNext(); + while (fileName != "") + { + if (dir.CurrentIsDir()) + { + GD.Print($"Found directory: {fileName}"); + } + else + { + GD.Print($"Found file: {fileName}"); + } + fileName = dir.GetNext(); + } + } + else + { + GD.Print("An error occurred when trying to access the path."); + } + } + + Keep in mind that file names may change or be remapped after export. If you want to see the actual resource file list as it appears in the editor, use instead. + + + + + If , . and .. are included when navigating the directory. + Affects and . + + + + + If , hidden files are included when navigating the directory. + Affects , and . + + + + + Creates a new object and opens an existing directory of the filesystem. The argument can be within the project tree (res://folder), the user directory (user://folder) or an absolute path of the user filesystem (e.g. /tmp/folder or C:\tmp\folder). + Returns if opening the directory failed. You can use to check the error that occurred. + + + + + Returns the result of the last call in the current thread. + + + + + Creates a temporary directory. This directory will be freed when the returned is freed. + If is not empty, it will be prefixed to the directory name, separated by a -. + If is , the directory is not deleted when the returned is freed. + Returns if opening the directory failed. You can use to check the error that occurred. + + + + + Initializes the stream used to list all files and directories using the function, closing the currently opened stream if needed. Once the stream has been processed, it should typically be closed with . + Affected by and . + Note: The order of files and directories returned by this method is not deterministic, and can vary between operating systems. If you want a list of all files or folders sorted alphabetically, use or . + + + + + Returns the next element (file or directory) in the current directory. + The name of the file or directory is returned (and not its full path). Once the stream has been fully processed, the method returns an empty and closes the stream automatically (i.e. would not be mandatory in such a case). + + + + + Returns whether the current item processed with the last call is a directory (. and .. are considered directories). + + + + + Closes the current stream opened with (whether it has been fully processed with does not matter). + + + + + Returns a [] containing filenames of the directory contents, excluding directories. The array is sorted alphabetically. + Affected by . + Note: When used on a res:// path in an exported project, only the files actually included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level .godot/ folder, only paths to *.gd and *.import files are returned (plus a few files such as project.godot or project.binary and the project icon). In an exported project, the list of returned files will also vary depending on whether ProjectSettings.editor/export/convert_text_resources_to_binary is . + + + + + Returns a [] containing filenames of the directory contents, excluding directories, at the given . The array is sorted alphabetically. + Use if you want more control of what gets included. + Note: When used on a res:// path in an exported project, only the files included in the PCK at the given folder level are returned. In practice, this means that since imported resources are stored in a top-level .godot/ folder, only paths to .gd and .import files are returned (plus a few other files, such as project.godot or project.binary and the project icon). In an exported project, the list of returned files will also vary depending on ProjectSettings.editor/export/convert_text_resources_to_binary. + + + + + Returns a [] containing filenames of the directory contents, excluding files. The array is sorted alphabetically. + Affected by and . + Note: The returned directories in the editor and after exporting in the res:// directory may differ as some files are converted to engine-specific formats when exported. + + + + + Returns a [] containing filenames of the directory contents, excluding files, at the given . The array is sorted alphabetically. + Use if you want more control of what gets included. + Note: The returned directories in the editor and after exporting in the res:// directory may differ as some files are converted to engine-specific formats when exported. + + + + + On Windows, returns the number of drives (partitions) mounted on the current filesystem. + On macOS, returns the number of mounted volumes. + On Linux, returns the number of mounted volumes and GTK 3 bookmarks. + On other platforms, the method returns 0. + + + + + On Windows, returns the name of the drive (partition) passed as an argument (e.g. C:). + On macOS, returns the path to the mounted volume passed as an argument. + On Linux, returns the path to the mounted volume or GTK 3 bookmark passed as an argument. + On other platforms, or if the requested drive does not exist, the method returns an empty String. + + + + + Returns the currently opened directory's drive index. See to convert returned index to the name of the drive. + + + + + Changes the currently opened directory to the one passed as an argument. The argument can be relative to the current directory (e.g. newdir or ../newdir), or an absolute path (e.g. /tmp/newdir or res://somedir/newdir). + Returns one of the code constants ( on success). + Note: The new directory must be within the same scope, e.g. when you had opened a directory inside res://, you can't change it to user:// directory. If you need to open a directory in another access scope, use to create a new instance instead. + + + + + Returns the absolute path to the currently opened directory (e.g. res://folder or C:\tmp\folder). + + + + + Creates a directory. The argument can be relative to the current directory, or an absolute path. The target directory should be placed in an already existing directory (to create the full path recursively, see ). + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Creates a target directory and all necessary intermediate directories in its path, by calling recursively. The argument can be relative to the current directory, or an absolute path. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Returns whether the target file exists. The argument can be relative to the current directory, or an absolute path. + For a static equivalent, use . + Note: Many resources types are imported (e.g. textures or sound files), and their source asset will not be included in the exported game, as only the imported version is used. See for an alternative approach that takes resource remapping into account. + + + + + Returns whether the target directory exists. The argument can be relative to the current directory, or an absolute path. + Note: The returned in the editor and after exporting when used on a path in the res:// directory may be different. Some files are converted to engine-specific formats when exported, potentially changing the directory structure. + + + + + Static version of . Supports only absolute paths. + Note: The returned in the editor and after exporting when used on a path in the res:// directory may be different. Some files are converted to engine-specific formats when exported, potentially changing the directory structure. + + + + + Returns the available space on the current directory's disk, in bytes. Returns 0 if the platform-specific method to query the available space fails. + + + + + Copies the file to the destination. Both arguments should be paths to files, either relative or absolute. If the destination file exists and is not access-protected, it will be overwritten. + If is different than -1, the Unix permissions for the destination path will be set to the provided value, if available on the current operating system. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Renames (move) the file or directory to the destination. Both arguments should be paths to files or directories, either relative or absolute. If the destination file or directory exists and is not access-protected, it will be overwritten. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Permanently deletes the target file or an empty directory. The argument can be relative to the current directory, or an absolute path. If the target directory is not empty, the operation will fail. + If you don't want to delete the file/directory permanently, use instead. + Returns one of the code constants ( on success). + + + + + Static version of . Supports only absolute paths. + + + + + Returns if the file or directory is a symbolic link, directory junction, or other reparse point. + Note: This method is implemented on macOS, Linux, and Windows. + + + + + Returns target of the symbolic link. + Note: This method is implemented on macOS, Linux, and Windows. + + + + + Creates symbolic link between files or folders. + Note: On Windows, this method works only if the application is running with elevated privileges or Developer Mode is enabled. + Note: This method is implemented on macOS, Linux, and Windows. + + + + + Returns if the directory is a macOS bundle. + Note: This method is implemented on macOS. + + + + + Returns if the file system or directory use case sensitive file names. + Note: This method is implemented on macOS, Linux (for EXT4 and F2FS filesystems only) and Windows. On other platforms, it always returns . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'include_navigational' property. + + + + + Cached name for the 'include_hidden' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'get_open_error' method. + + + + + Cached name for the 'create_temp' method. + + + + + Cached name for the 'list_dir_begin' method. + + + + + Cached name for the 'get_next' method. + + + + + Cached name for the 'current_is_dir' method. + + + + + Cached name for the 'list_dir_end' method. + + + + + Cached name for the 'get_files' method. + + + + + Cached name for the 'get_files_at' method. + + + + + Cached name for the 'get_directories' method. + + + + + Cached name for the 'get_directories_at' method. + + + + + Cached name for the 'get_drive_count' method. + + + + + Cached name for the 'get_drive_name' method. + + + + + Cached name for the 'get_current_drive' method. + + + + + Cached name for the 'change_dir' method. + + + + + Cached name for the 'get_current_dir' method. + + + + + Cached name for the 'make_dir' method. + + + + + Cached name for the 'make_dir_absolute' method. + + + + + Cached name for the 'make_dir_recursive' method. + + + + + Cached name for the 'make_dir_recursive_absolute' method. + + + + + Cached name for the 'file_exists' method. + + + + + Cached name for the 'dir_exists' method. + + + + + Cached name for the 'dir_exists_absolute' method. + + + + + Cached name for the 'get_space_left' method. + + + + + Cached name for the 'copy' method. + + + + + Cached name for the 'copy_absolute' method. + + + + + Cached name for the 'rename' method. + + + + + Cached name for the 'rename_absolute' method. + + + + + Cached name for the 'remove' method. + + + + + Cached name for the 'remove_absolute' method. + + + + + Cached name for the 'is_link' method. + + + + + Cached name for the 'read_link' method. + + + + + Cached name for the 'create_link' method. + + + + + Cached name for the 'is_bundle' method. + + + + + Cached name for the 'set_include_navigational' method. + + + + + Cached name for the 'get_include_navigational' method. + + + + + Cached name for the 'set_include_hidden' method. + + + + + Cached name for the 'get_include_hidden' method. + + + + + Cached name for the 'is_case_sensitive' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A directional light is a type of node that models an infinite number of parallel rays covering the entire scene. It is used for lights with strong intensity that are located far away from the scene (for example: to model sunlight or moonlight). + Note: 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 . + + + + + The height of the light. Used with 2D normal mapping. Ranges from 0 (parallel to the plane) to 1 (perpendicular to the plane). + + + + + The maximum distance from the camera center objects can be before their shadows are culled (in pixels). Decreasing this value can prevent objects located outside the camera from casting shadows (while also improving performance). is not taken into account by , which means that at higher zoom values, shadows will appear to fade out sooner when zooming onto a given point. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A directional light is a type of 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. + + + + + 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. + + + + + Splits the view frustum in 2 areas, each with its own shadow map. This shadow mode is a compromise between and in terms of performance. + + + + + Splits the view frustum in 4 areas, each with its own shadow map. This is the slowest directional shadow mode. + + + + + Makes the light visible in both scene lighting and sky rendering. + + + + + 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. + + + + + 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). + + + + + The light's shadow rendering algorithm. See . + + + + + The distance from camera to shadow split 1. Relative to . Only used when is or . + + + + + The distance from shadow split 1 to split 2. Relative to . Only used when is . + + + + + The distance from shadow split 2 to split 3. Relative to . Only used when is . + + + + + If , shadow detail is sacrificed in exchange for smoother transitions between splits. Enabling shadow blend splitting also has a moderate performance cost. This is ignored when is . + + + + + Proportion of at which point the shadow starts to fade. At , the shadow will disappear. The default value is a balance between smooth fading and distant shadow visibility. If the camera moves fast and the is low, consider lowering below 0.8 to make shadow transitions less noticeable. On the other hand, if you tuned to cover the entire scene, you can set to 1.0 to prevent the shadow from fading in the distance (it will suddenly cut off instead). + + + + + 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). + + + + + 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 0 turns off the pancaking effect. + + + + + Set whether this is visible in the sky, in the scene, or both in the sky and in the scene. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'directional_shadow_mode' property. + + + + + Cached name for the 'directional_shadow_split_1' property. + + + + + Cached name for the 'directional_shadow_split_2' property. + + + + + Cached name for the 'directional_shadow_split_3' property. + + + + + Cached name for the 'directional_shadow_blend_splits' property. + + + + + Cached name for the 'directional_shadow_fade_start' property. + + + + + Cached name for the 'directional_shadow_max_distance' property. + + + + + Cached name for the 'directional_shadow_pancake_size' property. + + + + + Cached name for the 'sky_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shadow_mode' method. + + + + + Cached name for the 'get_shadow_mode' method. + + + + + Cached name for the 'set_blend_splits' method. + + + + + Cached name for the 'is_blend_splits_enabled' method. + + + + + Cached name for the 'set_sky_mode' method. + + + + + Cached name for the 'get_sky_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles everything related to window management. It is separated from as a single operating system may support multiple display servers. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + Represents the screen containing the mouse pointer. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + Represents the screen containing the window with the keyboard focus. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + Represents the primary screen. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + Represents the screen where the main window is located. This is usually the default value in functions that allow specifying one of several screens. + Note: On Linux (Wayland), this constant always represents the screen at index 0. + + + + + The ID of the main window spawned by the engine, which can be passed to methods expecting a window_id. + + + + + The ID that refers to a nonexistent window. This is returned by some methods if no window matches the requested result. + + + + + The ID that refers to a nonexistent application status indicator. + + + + + Display server supports global menu. This allows the application to display its menu items in the operating system's top bar. macOS + + + + + Display server supports multiple windows that can be moved outside of the main window. Windows, macOS, Linux (X11) + + + + + Display server supports touchscreen input. Windows, Linux (X11), Android, iOS, Web + + + + + Display server supports mouse input. Windows, macOS, Linux (X11/Wayland), Android, Web + + + + + Display server supports warping mouse coordinates to keep the mouse cursor constrained within an area, but looping when one of the edges is reached. Windows, macOS, Linux (X11/Wayland) + + + + + Display server supports setting and getting clipboard data. See also . Windows, macOS, Linux (X11/Wayland), Android, iOS, Web + + + + + Display server supports popping up a virtual keyboard when requested to input text without a physical keyboard. Android, iOS, Web + + + + + Display server supports setting the mouse cursor shape to be different from the default. Windows, macOS, Linux (X11/Wayland), Android, Web + + + + + Display server supports setting the mouse cursor shape to a custom image. Windows, macOS, Linux (X11/Wayland), Web + + + + + Display server supports spawning text dialogs using the operating system's native look-and-feel. See . Windows, macOS + + + + + Display server supports Input Method Editor, which is commonly used for inputting Chinese/Japanese/Korean text. This is handled by the operating system, rather than by Godot. Windows, macOS, Linux (X11) + + + + + Display server supports windows can use per-pixel transparency to make windows behind them partially or fully visible. Windows, macOS, Linux (X11/Wayland) + + + + + Display server supports querying the operating system's display scale factor. This allows for reliable 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). Windows, Linux (Wayland), macOS + + + + + Display server supports changing the window icon (usually displayed in the top-left corner). Windows, macOS, Linux (X11) + + + + + Display server supports changing the window icon (usually displayed in the top-left corner). Windows, macOS + + + + + Display server supports changing the screen orientation. Android, iOS + + + + + Display server supports V-Sync status can be changed from the default (which is forced to be enabled platforms not supporting this feature). Windows, macOS, Linux (X11/Wayland) + + + + + Display server supports Primary clipboard can be used. This is a different clipboard from . Linux (X11/Wayland) + + + + + Display server supports text-to-speech. See tts_* methods. Windows, macOS, Linux (X11/Wayland), Android, iOS, Web + + + + + Display server supports expanding window content to the title. See . macOS + + + + + Display server supports reading screen pixels. See . + + + + + Display server supports application status indicators. + + + + + Display server supports native help system search callbacks. See . + + + + + Display server supports spawning text input dialogs using the operating system's native look-and-feel. See . Windows, macOS + + + + + Display server supports spawning dialogs for selecting files or directories using the operating system's native look-and-feel. See . Windows, macOS, Linux (X11/Wayland), Android + + + + + The display server supports all features of , with the added functionality of Options and native dialog file access to res:// and user:// paths. See and . Windows, macOS, Linux (X11/Wayland) + + + + + The display server supports initiating window drag operation on demand. See . + + + + + Display server supports window flag. + + + + + Makes the mouse cursor visible if it is hidden. + + + + + Makes the mouse cursor hidden if it is visible. + + + + + Captures the mouse. The mouse will be hidden and its position locked at the center of the window manager's window. + Note: If you want to process the mouse's movement in this mode, you need to use . + + + + + Confines the mouse cursor to the game window, and make it visible. + + + + + Confines the mouse cursor to the game window, and make it hidden. + + + + + Default landscape orientation. + + + + + Default portrait orientation. + + + + + Reverse landscape orientation (upside down). + + + + + Reverse portrait orientation (upside down). + + + + + Automatic landscape orientation (default or reverse depending on sensor). + + + + + Automatic portrait orientation (default or reverse depending on sensor). + + + + + Automatic landscape or portrait orientation (default or reverse depending on sensor). + + + + + Default text virtual keyboard. + + + + + Multiline virtual keyboard. + + + + + Virtual number keypad, useful for PIN entry. + + + + + Virtual number keypad, useful for entering fractional numbers. + + + + + Virtual phone number keypad. + + + + + Virtual keyboard with additional keys to assist with typing email addresses. + + + + + Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization. + Note: This is not supported on Web. Instead, this behaves identically to . + + + + + Virtual keyboard with additional keys to assist with typing URLs. + + + + + Arrow cursor shape. This is the default when not pointing anything that overrides the mouse cursor, such as a or . + + + + + I-beam cursor shape. This is used by default when hovering a control that accepts text input, such as or . + + + + + Pointing hand cursor shape. This is used by default when hovering a or a URL tag in a . + + + + + 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. + + + + + Wait cursor. On most cursor themes, this displays a spinning icon besides the arrow. Intended to be used for non-blocking operations (when the user can do something else at the moment). See also . + + + + + Wait cursor. On most cursor themes, this replaces 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 . + + + + + Dragging hand cursor. This is displayed during drag-and-drop operations. See also . + + + + + "Can drop" cursor. This is displayed during drag-and-drop operations if hovering over a 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 . + + + + + Forbidden cursor. This is displayed during drag-and-drop operations if the hovered can't accept the drag-and-drop event. + + + + + Vertical resize cursor. Intended to be displayed when the hovered can be vertically resized using the mouse. See also . + + + + + Horizontal resize cursor. Intended to be displayed when the hovered can be horizontally resized using the mouse. See also . + + + + + Secondary diagonal resize cursor (top-right/bottom-left). Intended to be displayed when the hovered can be resized on both axes at once using the mouse. + + + + + Main diagonal resize cursor (top-left/bottom-right). Intended to be displayed when the hovered can be resized on both axes at once using the mouse. + + + + + Move cursor. Intended to be displayed when the hovered can be moved using the mouse. + + + + + Vertical split cursor. This is displayed when hovering a with splits that can be vertically resized using the mouse, such as . On some cursor themes, this cursor may have the same appearance as . + + + + + Horizontal split cursor. This is displayed when hovering a with splits that can be horizontally resized using the mouse, such as . On some cursor themes, this cursor may have the same appearance as . + + + + + 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. + + + + + Represents the size of the enum. + + + + + The native file dialog allows selecting one, and only one file. + + + + + The native file dialog allows selecting multiple files. + + + + + The native file dialog only allows selecting a directory, disallowing the selection of any file. + + + + + The native file dialog allows selecting one file or directory. + + + + + The native file dialog will warn when a file exists. + + + + + Windowed mode, i.e. doesn't occupy the whole screen (unless set to the size of the screen). + + + + + Minimized window mode, i.e. is not visible and available on window manager's window list. Normally happens when the minimize button is pressed. + + + + + Maximized window mode, i.e. will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Multi-window full-screen mode has a 1px border of the ProjectSettings.rendering/environment/defaults/default_clear_color color. + On macOS: A new desktop is used to display the running project. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Depending on video driver, full screen transition might cause screens to go black for a moment. + On macOS: 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. + On Linux (X11): Exclusive full screen mode bypasses compositor. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + The window can't be resized by dragging its resize grip. It's still possible to resize the window using . This flag is ignored for full screen windows. + + + + + The window do not have native title bar and other decorations. This flag is ignored for full-screen windows. + + + + + The window is floating on top of all other windows. This flag is ignored for full-screen windows. + + + + + The window background can be transparent. + Note: This flag has no effect if returns . + Note: Transparency support is implemented on Linux (X11/Wayland), macOS, and Windows, but availability might vary depending on GPU driver, display manager, and compositor capabilities. + + + + + The window can't be focused. No-focus window will ignore all input, except mouse clicks. + + + + + Window is part of menu or 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 ). + + + + + 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 to adjust minimize/maximize/close buttons offset. + Use to determine area under the title bar that is not covered by decorations. + Note: This flag is implemented only on macOS. + + + + + All mouse events are passed to the underlying window of the same application. + + + + + Window style is overridden, forcing sharp corners. + Note: This flag is implemented only on Windows (11). + + + + + Windows is excluded from screenshots taken by , , and . + Note: This flag is implemented on macOS and Windows. + Note: Setting this flag will NOT prevent other apps from capturing an image, it should not be used as a security measure. + + + + + Max value of the . + + + + + Sent when the mouse pointer enters the window. + + + + + Sent when the mouse pointer exits the window. + + + + + Sent when the window grabs focus. + + + + + Sent when the window loses focus. + + + + + Sent when the user has attempted to close the window (e.g. close button is pressed). + + + + + Sent when the device "Back" button is pressed. + Note: This event is implemented only on Android. + + + + + Sent when the window is moved to the display with different DPI, or display DPI is changed. + Note: This flag is implemented only on macOS. + + + + + Sent when the window title bar decoration is changed (e.g. is set or window entered/exited full screen mode). + Note: This flag is implemented only on macOS. + + + + + No vertical synchronization, which means the engine will display frames as fast as possible (tearing may be visible). Framerate is unlimited (regardless of ). + + + + + 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 ). + + + + + Behaves like 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 ). Behaves like when using the Compatibility rendering method. + + + + + 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 ). + Although not guaranteed, the images can be rendered as fast as possible, which may reduce input lag (also called "Fast" V-Sync mode). works best when at least twice as many frames as the display refresh rate are rendered. Behaves like when using the Compatibility rendering method. + + + + + Display handle: + - Linux (X11): X11::Display* for the display. + - Linux (Wayland): wl_display for the display. + - Android: EGLDisplay for the display. + + + + + Window handle: + - Windows: HWND for the window. + - Linux (X11): X11::Window* for the window. + - Linux (Wayland): wl_surface for the window. + - macOS: NSWindow* for the window. + - iOS: UIViewController* for the view controller. + - Android: jObject for the activity. + + + + + Window view: + - Windows: HDC for the window (only with the Compatibility renderer). + - macOS: NSView* for the window main view. + - iOS: UIView* for the window main view. + + + + + OpenGL context (only with the Compatibility renderer): + - Windows: HGLRC for the window (native GL), or EGLContext for the window (ANGLE). + - Linux (X11): GLXContext* for the window. + - Linux (Wayland): EGLContext for the window. + - macOS: NSOpenGLContext* for the window (native GL), or EGLContext for the window (ANGLE). + - Android: EGLContext for the window. + + + + + - Windows: EGLDisplay for the window (ANGLE). + - macOS: EGLDisplay for the window (ANGLE). + - Linux (Wayland): EGLDisplay for the window. + + + + + - Windows: EGLConfig for the window (ANGLE). + - macOS: EGLConfig for the window (ANGLE). + - Linux (Wayland): EGLConfig for the window. + + + + + Utterance has begun to be spoken. + + + + + Utterance was successfully finished. + + + + + Utterance was canceled, or TTS service was unable to process it. + + + + + Utterance reached a word or sentence boundary. + + + + + Returns if the specified is supported by the current , otherwise. + + + + + Returns the name of the currently in use. Most operating systems only have a single , but Linux has access to more than one (currently X11 and Wayland). + The names of built-in display servers are Windows, macOS, X11 (Linux), Wayland (Linux), Android, iOS, web (HTML5), and headless (when started with the --headless command line argument). + + + + + Sets native help system search callbacks. + has the following arguments: String search_string, int result_limit and return a with "key, display name" pairs for the search results. Called when the user enters search terms in the Help menu. + has the following arguments: String key. Called when the user selects a search result in the Help menu. + Note: This method is implemented only on macOS. + + + + + Registers callables to emit when the menu is respectively about to show or closed. Callback methods should have zero arguments. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the ID of the global menu root that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a separator between items to the global menu with ID . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checked. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Returns the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented only on macOS. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns the icon of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented only on macOS. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Sets the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets the submenu of the item at index . The submenu is the ID of a global menu root that would be shown when the item is clicked. + Note: This method is implemented only on macOS. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented only on macOS. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Replaces the icon of the specified . + Note: This method is implemented only on macOS. + Note: This method is not supported by macOS "_dock" menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu with ID . + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented only on macOS. + + + + + Removes all items from the global menu with ID . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns Dictionary of supported system menu IDs and names. + Note: This method is implemented only on macOS. + + + + + Returns if the synthesizer is generating speech, or have utterance waiting in the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if the synthesizer is in a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an of voice information dictionaries. + Each contains two entries: + - name is voice name. + - id is voice identifier. + - language is language code in lang_Variant format. The lang part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The Variant part is an engine-dependent string describing country, region or/and dialect. + Note that Godot depends on system libraries for text-to-speech functionality. These libraries are installed by default on Windows and macOS, but not on all Linux distributions. If they are not present, this method will return an empty list. This applies to both Godot users on Linux, as well as end-users on Linux running Godot games that use text-to-speech. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an [] of voice identifiers for the . + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds an utterance to the queue. If is , the queue is cleared first. + - identifier is one of the "id" values returned by or one of the values returned by . + - ranges from 0 (lowest) to 100 (highest). + - ranges from 0.0 (lowest) to 2.0 (highest), 1.0 is default pitch for the current voice. + - ranges from 0.1 (lowest) to 10.0 (highest), 1.0 is a normal speaking rate. Other values act as a percentage relative. + - is passed as a parameter to the callback functions. + Note: On Windows and Linux (X11/Wayland), utterance can use SSML markup. SSML support is engine and voice dependent. If the engine does not support SSML, you should strip out all XML markup before calling . + Note: The granularity of pitch, rate, and volume is engine and voice dependent. Values may be truncated. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Puts the synthesizer into a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Resumes the synthesizer if it was paused. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Stops synthesis in progress and removes all utterances from the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Linux), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds a callback, which is called when the utterance has started, finished, canceled or reached a text boundary. + - , , and callable's method should take one parameter, the utterance ID. + - callable's method should take two parameters, the index of the character and the utterance ID. + Note: The granularity of the boundary callbacks is engine dependent. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if OS supports dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns if OS is using dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns OS theme accent color. Returns Color(0, 0, 0, 0), if accent color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Returns the OS theme base color (default control background). Returns Color(0, 0, 0, 0) if the base color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Sets the that should be called when system theme settings are changed. Callback method should have zero arguments. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Sets the current mouse mode. See also . + + + + + Returns the current mouse mode. See also . + + + + + Sets the mouse cursor position to the given relative to an origin at the upper left corner of the currently focused game Window Manager window. + Note: is only supported on Windows, macOS, and Linux (X11/Wayland). It has no effect on Android, iOS, and Web. + + + + + Returns the mouse cursor's current position in screen coordinates. + + + + + Returns the current state of mouse buttons (whether each button is pressed) as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the user's clipboard content to the given string. + + + + + Returns the user's clipboard as a string if possible. + + + + + Returns the user's clipboard as an image if possible. + Note: This method uses the copied pixel data, e.g. from a image editing software or a web browser, not an image file copied from file explorer. + + + + + Returns if there is a text content on the user's clipboard. + + + + + Returns if there is an image content on the user's clipboard. + + + + + Sets the user's primary clipboard content to the given string. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns the user's primary clipboard as a string if possible. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns an of , each of which is the bounding rectangle for a display cutout or notch. These are non-functional areas on edge-to-edge screens used by cameras and sensors. Returns an empty array if the device does not have cutouts. See also . + Note: Currently only implemented on Android. Other platforms will return an empty array even if they do have display cutouts or notches. + + + + + Returns the unobscured area of the display where interactive controls should be rendered. See also . + + + + + Returns the number of displays available. + + + + + Returns index of the primary screen. + + + + + Returns the index of the screen containing the window with the keyboard focus, or the primary screen if there's no focused window. + + + + + Returns the index of the screen that overlaps the most with the given rectangle. Returns -1 if the rectangle doesn't overlap with any screen or has no area. + + + + + Returns the screen's top-left corner position in pixels. On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also . + Note: On Linux (Wayland) this method always returns (0, 0). + + + + + Returns the screen's size in pixels. See also and . + + + + + Returns the portion of the screen that is not obstructed by a status bar in pixels. See also . + + + + + Returns the dots per inch density of the specified screen. If is (the default value), a screen with the main window will be used. + Note: On macOS, returned value is inaccurate if fractional display scaling mode is used. + Note: On Android devices, the actual screen densities are grouped into six generalized densities: + + ldpi - 120 dpi + mdpi - 160 dpi + hdpi - 240 dpi + xhdpi - 320 dpi + xxhdpi - 480 dpi + xxxhdpi - 640 dpi + + Note: This method is implemented on Android, Linux (X11/Wayland), macOS and Windows. Returns 72 on unsupported platforms. + + + + + Returns the scale factor of the specified screen by index. + Note: On macOS, the returned value is 2.0 for hiDPI (Retina) screens, and 1.0 for all other cases. + Note: On Linux (Wayland), the returned value is accurate only when is . Due to API limitations, passing a direct index will return a rounded-up integer, if the screen has a fractional scale (e.g. 1.25 would get rounded up to 2.0). + Note: This method is implemented on Android, iOS, Web, macOS, and Linux (Wayland). + + + + + Returns if touch events are available (Android or iOS), the capability is detected on the Web platform or if ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is . + + + + + Returns the greatest scale factor of all screens. + Note: On macOS returned value is 2.0 if there is at least one hiDPI (Retina) screen in the system, and 1.0 in all other cases. + Note: This method is implemented only on macOS. + + + + + Returns the current refresh rate of the specified screen. If is (the default value), a screen with the main window will be used. + Note: Returns -1.0 if the DisplayServer fails to find the refresh rate for the specified screen. On Web, will always return -1.0 as there is no way to retrieve the refresh rate on that platform. + To fallback to a default refresh rate if the method fails, try: + + var refresh_rate = DisplayServer.screen_get_refresh_rate() + if refresh_rate < 0: + refresh_rate = 60.0 + + + + + + Returns color of the display pixel at the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the screen . + Note: This method is implemented on macOS and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Sets the 's . See also . + Note: On iOS, this method has no effect if ProjectSettings.display/window/handheld/orientation is not set to . + + + + + Returns the 's current orientation. See also . + Note: This method is implemented on Android and iOS. + + + + + Sets whether the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns if the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns the list of Godot window IDs belonging to this process. + Note: Native dialogs are not included in this list. + + + + + Returns the ID of the window at the specified screen (in pixels). On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + + + + + Returns internal structure pointers for use in plugins. + Note: This method is implemented on Android, Linux (X11/Wayland), macOS, and Windows. + + + + + Returns ID of the active popup window, or if there is none. + + + + + Sets the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. Clicking this area will not auto-close this popup. + + + + + Returns the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. + + + + + Sets the title of the given window to . + Note: It's recommended to change this value using instead. + Note: Avoid changing the window title every frame, as this can cause performance issues on certain window managers. Try to change the window title only a few times per second at most. + + + + + Returns the estimated window title bar size (including text and window buttons) for the window specified by (in pixels). This method does not change the window title. + Note: This method is implemented on macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Returns the screen the window specified by is currently positioned on. If the screen overlaps multiple displays, the screen where the window's center is located is returned. See also . + + + + + Moves the window specified by to the specified . See also . + + + + + Returns the position of the client area of the given window on the screen. + + + + + Returns the position of the given window on the screen including the borders drawn by the operating system. See also . + + + + + Sets the position of the given window to . On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also and . + Note: It's recommended to change this value using instead. + Note: On Linux (Wayland): this method is a no-op. + + + + + Returns the size of the window specified by (in pixels), excluding the borders drawn by the operating system. This is also called the "client area". See also , and . + + + + + Sets the size of the given window to (in pixels). See also and . + Note: It's recommended to change this value using instead. + + + + + Sets the that will be called when the window specified by is moved or resized. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that will be called when an event occurs in the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when any is sent to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when text is entered using the virtual keyboard to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when files are dropped from the operating system's file manager to the window specified by . should take one [] argument, which is the list of dropped files. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + Note: This method is implemented on Windows, macOS, Linux (X11/Wayland), and Web. + + + + + Returns the of the the is attached to. + + + + + Returns the window's maximum size (in pixels). See also . + + + + + Sets the maximum size of the window specified by in pixels. Normally, the user will not be able to drag the window to make it larger than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the window's minimum size (in pixels). See also . + + + + + Sets the minimum size for the given window to in pixels. Normally, the user will not be able to drag the window to make it smaller than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: By default, the main window has a minimum size of Vector2i(64, 64). This prevents issues that can arise when the window is resized to a near-zero size. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the size of the window specified by (in pixels), including the borders drawn by the operating system. See also . + + + + + Returns the mode of the given window. + + + + + Sets window mode for the given window to . See for possible values and how each mode behaves. + Note: On Android, setting it to or will enable immersive mode. + Note: Setting the window to full screen forcibly sets the borderless flag to , so make sure to set it back to when not wanted. + + + + + Enables or disables the given window's given . See for possible values and their behavior. + + + + + Returns the current value of the given window's . + + + + + When flag is set, set offset to the center of the first titlebar button. + Note: This flag is implemented only on macOS. + + + + + Returns left margins (x), right margins (y) and height (z) of the title that are safe to use (contains no buttons or other elements) when flag is set. + + + + + Makes the window specified by request attention, which is materialized by the window title and taskbar entry blinking until the window is focused. This usually has no visible effect if the window is currently focused. The exact behavior varies depending on the operating system. + + + + + Moves the window specified by to the foreground, so that it is visible over other windows. + + + + + Returns if the window specified by is focused. + + + + + Returns if anything can be drawn in the window specified by , otherwise. Using the --disable-render-loop command line argument or a headless build will return . + + + + + Sets window transient parent. Transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. + Note: It's recommended to change this value using instead. + Note: The behavior might be different depending on the platform. + + + + + If set to , this window will always stay on top of its parent window, parent window will ignore input while this window is opened. + Note: On macOS, exclusive windows are confined to the same space (virtual desktop or screen) as the parent window. + Note: This method is implemented on macOS and Windows. + + + + + Sets whether Input Method Editor should be enabled for the window specified by . See also . + + + + + Sets the position of the Input Method Editor popup for the specified . Only effective if was set to for the specified . + + + + + Sets the V-Sync mode of the given window. See also ProjectSettings.display/window/vsync/vsync_mode. + See for possible values and how they affect the behavior of your application. + Depending on the platform and used renderer, the engine will fall back to if the desired mode is not supported. + Note: V-Sync modes other than are only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Returns the V-Sync mode of the given window. + + + + + Returns if the given window can be maximized (the maximize button is enabled). + + + + + Returns , if double-click on a window title should maximize it. + Note: This method is implemented only on macOS. + + + + + Returns , if double-click on a window title should minimize it. + Note: This method is implemented only on macOS. + + + + + Starts a drag operation on the window with the given , using the current mouse position. Call this method when handling a mouse button being pressed to simulate a pressed event on the window's title bar. Using this method allows the window to participate in space switching, tiling, and other system features. + Note: This method is implemented on Linux(X11/Wayland), macOS, and Windows. + + + + + Returns the text selection in the Input Method Editor composition string, with the 's x component being the caret position and y being the length of the selection. + Note: This method is implemented only on macOS. + + + + + Returns the composition string contained within the Input Method Editor window. + Note: This method is implemented only on macOS. + + + + + Shows the virtual keyboard if the platform has one. + parameter is useful for implementing your own or , as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions). + parameter is the screen space of the edited text. + parameter allows configuring which type of virtual keyboard to show. + limits the number of characters that can be entered if different from -1. + can optionally define the current text cursor position if is not set. + and can optionally define the current text selection. + Note: This method is implemented on Android, iOS and Web. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Hides the virtual keyboard if it is shown, does nothing otherwise. + + + + + Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or if it is currently hidden. + + + + + Returns if hardware keyboard is connected. + Note: This method is implemented on Android and iOS, on other platforms this method always returns . + + + + + Sets the default mouse cursor shape. The cursor's appearance will vary depending on the user's operating system and mouse cursor theme. See also and . + + + + + Returns the default mouse cursor shape set by . + + + + + Sets a custom mouse cursor image for the given . This means the user's operating system and mouse cursor theme will no longer influence the mouse cursor's appearance. + can be either a or an , and it should not be larger than 256×256 to display correctly. Optionally, can be set to offset the image's position relative to the click point. By default, is set to the top-left corner of the image. See also . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns if positions of OK and Cancel buttons are swapped in dialogs. This is enabled by default on Windows to follow interface conventions, and be toggled by changing ProjectSettings.gui/common/swap_cancel_ok. + Note: This doesn't affect native dialogs such as the ones spawned by . + + + + + Allows the PID to steal focus from this window. In other words, this disables the operating system's focus stealing protection for the specified PID. + Note: This method is implemented only on Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text input dialog which uses the operating system's native look-and-feel. should accept a single parameter which contains the text field's contents. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS, Windows, and Android. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Plays the beep sound from the operative system, if possible. Because it comes from the OS, the beep sound will be audible even if the application is muted. It may also be disabled for the entire OS by the user. + Note: This method is implemented on macOS, Linux (X11/Wayland), and Windows. + + + + + Returns the number of keyboard layouts. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns active keyboard layout index. + Note: This method is implemented on Linux (X11/Wayland), macOS, and Windows. + + + + + Sets the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the ISO-639/BCP-47 language code of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the localized name of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to one in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to localized label printed on the key in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Perform window manager processing, including input flushing. See also , and . + + + + + Forces window manager processing while ignoring all s. See also . + Note: This method is implemented on Windows and macOS. + + + + + Sets the window icon (usually displayed in the top-left corner) in the operating system's native format. The file at must be in .ico format on Windows or .icns on macOS. By using specially crafted .ico or .icns icons, allows specifying different icons depending on the size the icon is displayed at. This size is determined by the operating system and user preferences (including the display scale factor). To use icons in other formats, use instead. + Note: Requires support for . + + + + + Sets the window icon (usually displayed in the top-left corner) with an . To use icons in the operating system's native format, use instead. + Note: Requires support for . + + + + + Creates a new application status indicator with the specified icon, tooltip, and activation callback. + should take two arguments: the pressed mouse button (one of the constants) and the click position in screen coordinates (a ). + + + + + Sets the application status indicator icon. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator tooltip. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator native popup menu. + Note: On macOS, the menu is activated by any mouse button. Its activation callback is not triggered. + Note: On Windows, the menu is activated by the right mouse button, selecting the status icon and pressing Shift + F10, or the applications key. The menu's activation callback for the other mouse buttons is still triggered. + Note: Native popup is only supported if supports the feature. + + + + + Sets the application status indicator activation callback. should take two arguments: mouse button index (one of values) and click position in screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Returns the rectangle for the given status indicator in screen coordinates. If the status indicator is not visible, returns an empty . + Note: This method is implemented on macOS and Windows. + + + + + Removes the application status indicator. + + + + + Returns the total number of available tablet drivers. + Note: This method is implemented only on Windows. + + + + + Returns the tablet driver name for the given index. + Note: This method is implemented only on Windows. + + + + + Returns current active tablet driver name. + Note: This method is implemented only on Windows. + + + + + Set active tablet driver name. + Supported drivers: + - winink: Windows Ink API, default (Windows 8.1+ required). + - wintab: Wacom Wintab API (compatible device driver required). + - dummy: Dummy driver, tablet input is disabled. + Note: This method is implemented only on Windows. + + + + + Returns if the window background can be made transparent. This method returns if ProjectSettings.display/window/per_pixel_transparency/allowed is set to , or if transparency is not supported by the renderer or OS compositor. + + + + + Registers an which represents an additional output that will be rendered too, beyond normal windows. The is only used as an identifier, which can be later passed to . + This can be used to prevent Godot from skipping rendering when no normal windows are visible. + + + + + Unregisters an representing an additional output, that was registered via . + + + + + Returns if any additional outputs have been registered via . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'help_set_search_callbacks' method. + + + + + Cached name for the 'global_menu_set_popup_callbacks' method. + + + + + Cached name for the 'global_menu_add_submenu_item' method. + + + + + Cached name for the 'global_menu_add_item' method. + + + + + Cached name for the 'global_menu_add_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_item' method. + + + + + Cached name for the 'global_menu_add_icon_check_item' method. + + + + + Cached name for the 'global_menu_add_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_multistate_item' method. + + + + + Cached name for the 'global_menu_add_separator' method. + + + + + Cached name for the 'global_menu_get_item_index_from_text' method. + + + + + Cached name for the 'global_menu_get_item_index_from_tag' method. + + + + + Cached name for the 'global_menu_is_item_checked' method. + + + + + Cached name for the 'global_menu_is_item_checkable' method. + + + + + Cached name for the 'global_menu_is_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_get_item_callback' method. + + + + + Cached name for the 'global_menu_get_item_key_callback' method. + + + + + Cached name for the 'global_menu_get_item_tag' method. + + + + + Cached name for the 'global_menu_get_item_text' method. + + + + + Cached name for the 'global_menu_get_item_submenu' method. + + + + + Cached name for the 'global_menu_get_item_accelerator' method. + + + + + Cached name for the 'global_menu_is_item_disabled' method. + + + + + Cached name for the 'global_menu_is_item_hidden' method. + + + + + Cached name for the 'global_menu_get_item_tooltip' method. + + + + + Cached name for the 'global_menu_get_item_state' method. + + + + + Cached name for the 'global_menu_get_item_max_states' method. + + + + + Cached name for the 'global_menu_get_item_icon' method. + + + + + Cached name for the 'global_menu_get_item_indentation_level' method. + + + + + Cached name for the 'global_menu_set_item_checked' method. + + + + + Cached name for the 'global_menu_set_item_checkable' method. + + + + + Cached name for the 'global_menu_set_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_set_item_callback' method. + + + + + Cached name for the 'global_menu_set_item_hover_callbacks' method. + + + + + Cached name for the 'global_menu_set_item_key_callback' method. + + + + + Cached name for the 'global_menu_set_item_tag' method. + + + + + Cached name for the 'global_menu_set_item_text' method. + + + + + Cached name for the 'global_menu_set_item_submenu' method. + + + + + Cached name for the 'global_menu_set_item_accelerator' method. + + + + + Cached name for the 'global_menu_set_item_disabled' method. + + + + + Cached name for the 'global_menu_set_item_hidden' method. + + + + + Cached name for the 'global_menu_set_item_tooltip' method. + + + + + Cached name for the 'global_menu_set_item_state' method. + + + + + Cached name for the 'global_menu_set_item_max_states' method. + + + + + Cached name for the 'global_menu_set_item_icon' method. + + + + + Cached name for the 'global_menu_set_item_indentation_level' method. + + + + + Cached name for the 'global_menu_get_item_count' method. + + + + + Cached name for the 'global_menu_remove_item' method. + + + + + Cached name for the 'global_menu_clear' method. + + + + + Cached name for the 'global_menu_get_system_menu_roots' method. + + + + + Cached name for the 'tts_is_speaking' method. + + + + + Cached name for the 'tts_is_paused' method. + + + + + Cached name for the 'tts_get_voices' method. + + + + + Cached name for the 'tts_get_voices_for_language' method. + + + + + Cached name for the 'tts_speak' method. + + + + + Cached name for the 'tts_pause' method. + + + + + Cached name for the 'tts_resume' method. + + + + + Cached name for the 'tts_stop' method. + + + + + Cached name for the 'tts_set_utterance_callback' method. + + + + + Cached name for the 'is_dark_mode_supported' method. + + + + + Cached name for the 'is_dark_mode' method. + + + + + Cached name for the 'get_accent_color' method. + + + + + Cached name for the 'get_base_color' method. + + + + + Cached name for the 'set_system_theme_change_callback' method. + + + + + Cached name for the 'mouse_set_mode' method. + + + + + Cached name for the 'mouse_get_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'mouse_get_position' method. + + + + + Cached name for the 'mouse_get_button_state' method. + + + + + Cached name for the 'clipboard_set' method. + + + + + Cached name for the 'clipboard_get' method. + + + + + Cached name for the 'clipboard_get_image' method. + + + + + Cached name for the 'clipboard_has' method. + + + + + Cached name for the 'clipboard_has_image' method. + + + + + Cached name for the 'clipboard_set_primary' method. + + + + + Cached name for the 'clipboard_get_primary' method. + + + + + Cached name for the 'get_display_cutouts' method. + + + + + Cached name for the 'get_display_safe_area' method. + + + + + Cached name for the 'get_screen_count' method. + + + + + Cached name for the 'get_primary_screen' method. + + + + + Cached name for the 'get_keyboard_focus_screen' method. + + + + + Cached name for the 'get_screen_from_rect' method. + + + + + Cached name for the 'screen_get_position' method. + + + + + Cached name for the 'screen_get_size' method. + + + + + Cached name for the 'screen_get_usable_rect' method. + + + + + Cached name for the 'screen_get_dpi' method. + + + + + Cached name for the 'screen_get_scale' method. + + + + + Cached name for the 'is_touchscreen_available' method. + + + + + Cached name for the 'screen_get_max_scale' method. + + + + + Cached name for the 'screen_get_refresh_rate' method. + + + + + Cached name for the 'screen_get_pixel' method. + + + + + Cached name for the 'screen_get_image' method. + + + + + Cached name for the 'screen_get_image_rect' method. + + + + + Cached name for the 'screen_set_orientation' method. + + + + + Cached name for the 'screen_get_orientation' method. + + + + + Cached name for the 'screen_set_keep_on' method. + + + + + Cached name for the 'screen_is_kept_on' method. + + + + + Cached name for the 'get_window_list' method. + + + + + Cached name for the 'get_window_at_screen_position' method. + + + + + Cached name for the 'window_get_native_handle' method. + + + + + Cached name for the 'window_get_active_popup' method. + + + + + Cached name for the 'window_set_popup_safe_rect' method. + + + + + Cached name for the 'window_get_popup_safe_rect' method. + + + + + Cached name for the 'window_set_title' method. + + + + + Cached name for the 'window_get_title_size' method. + + + + + Cached name for the 'window_set_mouse_passthrough' method. + + + + + Cached name for the 'window_get_current_screen' method. + + + + + Cached name for the 'window_set_current_screen' method. + + + + + Cached name for the 'window_get_position' method. + + + + + Cached name for the 'window_get_position_with_decorations' method. + + + + + Cached name for the 'window_set_position' method. + + + + + Cached name for the 'window_get_size' method. + + + + + Cached name for the 'window_set_size' method. + + + + + Cached name for the 'window_set_rect_changed_callback' method. + + + + + Cached name for the 'window_set_window_event_callback' method. + + + + + Cached name for the 'window_set_input_event_callback' method. + + + + + Cached name for the 'window_set_input_text_callback' method. + + + + + Cached name for the 'window_set_drop_files_callback' method. + + + + + Cached name for the 'window_get_attached_instance_id' method. + + + + + Cached name for the 'window_get_max_size' method. + + + + + Cached name for the 'window_set_max_size' method. + + + + + Cached name for the 'window_get_min_size' method. + + + + + Cached name for the 'window_set_min_size' method. + + + + + Cached name for the 'window_get_size_with_decorations' method. + + + + + Cached name for the 'window_get_mode' method. + + + + + Cached name for the 'window_set_mode' method. + + + + + Cached name for the 'window_set_flag' method. + + + + + Cached name for the 'window_get_flag' method. + + + + + Cached name for the 'window_set_window_buttons_offset' method. + + + + + Cached name for the 'window_get_safe_title_margins' method. + + + + + Cached name for the 'window_request_attention' method. + + + + + Cached name for the 'window_move_to_foreground' method. + + + + + Cached name for the 'window_is_focused' method. + + + + + Cached name for the 'window_can_draw' method. + + + + + Cached name for the 'window_set_transient' method. + + + + + Cached name for the 'window_set_exclusive' method. + + + + + Cached name for the 'window_set_ime_active' method. + + + + + Cached name for the 'window_set_ime_position' method. + + + + + Cached name for the 'window_set_vsync_mode' method. + + + + + Cached name for the 'window_get_vsync_mode' method. + + + + + Cached name for the 'window_is_maximize_allowed' method. + + + + + Cached name for the 'window_maximize_on_title_dbl_click' method. + + + + + Cached name for the 'window_minimize_on_title_dbl_click' method. + + + + + Cached name for the 'window_start_drag' method. + + + + + Cached name for the 'ime_get_selection' method. + + + + + Cached name for the 'ime_get_text' method. + + + + + Cached name for the 'virtual_keyboard_show' method. + + + + + Cached name for the 'virtual_keyboard_hide' method. + + + + + Cached name for the 'virtual_keyboard_get_height' method. + + + + + Cached name for the 'has_hardware_keyboard' method. + + + + + Cached name for the 'cursor_set_shape' method. + + + + + Cached name for the 'cursor_get_shape' method. + + + + + Cached name for the 'cursor_set_custom_image' method. + + + + + Cached name for the 'get_swap_cancel_ok' method. + + + + + Cached name for the 'enable_for_stealing_focus' method. + + + + + Cached name for the 'dialog_show' method. + + + + + Cached name for the 'dialog_input_text' method. + + + + + Cached name for the 'file_dialog_show' method. + + + + + Cached name for the 'file_dialog_with_options_show' method. + + + + + Cached name for the 'beep' method. + + + + + Cached name for the 'keyboard_get_layout_count' method. + + + + + Cached name for the 'keyboard_get_current_layout' method. + + + + + Cached name for the 'keyboard_set_current_layout' method. + + + + + Cached name for the 'keyboard_get_layout_language' method. + + + + + Cached name for the 'keyboard_get_layout_name' method. + + + + + Cached name for the 'keyboard_get_keycode_from_physical' method. + + + + + Cached name for the 'keyboard_get_label_from_physical' method. + + + + + Cached name for the 'process_events' method. + + + + + Cached name for the 'force_process_and_drop_events' method. + + + + + Cached name for the 'set_native_icon' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'create_status_indicator' method. + + + + + Cached name for the 'status_indicator_set_icon' method. + + + + + Cached name for the 'status_indicator_set_tooltip' method. + + + + + Cached name for the 'status_indicator_set_menu' method. + + + + + Cached name for the 'status_indicator_set_callback' method. + + + + + Cached name for the 'status_indicator_get_rect' method. + + + + + Cached name for the 'delete_status_indicator' method. + + + + + Cached name for the 'tablet_get_driver_count' method. + + + + + Cached name for the 'tablet_get_driver_name' method. + + + + + Cached name for the 'tablet_get_current_driver' method. + + + + + Cached name for the 'tablet_set_current_driver' method. + + + + + Cached name for the 'is_window_transparency_available' method. + + + + + Cached name for the 'register_additional_output' method. + + + + + Cached name for the 'unregister_additional_output' method. + + + + + Cached name for the 'has_additional_outputs' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles everything related to window management. It is separated from as a single operating system may support multiple display servers. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + Returns if the specified is supported by the current , otherwise. + + + + + Returns the name of the currently in use. Most operating systems only have a single , but Linux has access to more than one (currently X11 and Wayland). + The names of built-in display servers are Windows, macOS, X11 (Linux), Wayland (Linux), Android, iOS, web (HTML5), and headless (when started with the --headless command line argument). + + + + + Sets native help system search callbacks. + has the following arguments: String search_string, int result_limit and return a with "key, display name" pairs for the search results. Called when the user enters search terms in the Help menu. + has the following arguments: String key. Called when the user selects a search result in the Help menu. + Note: This method is implemented only on macOS. + + + + + Registers callables to emit when the menu is respectively about to show or closed. Callback methods should have zero arguments. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the ID of the global menu root that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new radio-checkable item with text and icon to the global menu with ID . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a new item with text to the global menu with ID . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Adds a separator between items to the global menu with ID . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checked. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Returns the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented only on macOS. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Returns the icon of the item at index . + Note: This method is implemented only on macOS. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented only on macOS. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented only on macOS. + + + + + Sets the text of the item at index . + Note: This method is implemented only on macOS. + + + + + Sets the submenu of the item at index . The submenu is the ID of a global menu root that would be shown when the item is clicked. + Note: This method is implemented only on macOS. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented only on macOS. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented only on macOS. + + + + + Replaces the icon of the specified . + Note: This method is implemented only on macOS. + Note: This method is not supported by macOS "_dock" menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu with ID . + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented only on macOS. + + + + + Removes all items from the global menu with ID . + Note: This method is implemented only on macOS. + Supported system menu IDs: + + "_main" - Main menu (macOS). + "_dock" - Dock popup menu (macOS). + "_apple" - Apple menu (macOS, custom items added before "Services"). + "_window" - Window menu (macOS, custom items added after "Bring All to Front"). + "_help" - Help menu (macOS). + + + + + + Returns Dictionary of supported system menu IDs and names. + Note: This method is implemented only on macOS. + + + + + Returns if the synthesizer is generating speech, or have utterance waiting in the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if the synthesizer is in a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an of voice information dictionaries. + Each contains two entries: + - name is voice name. + - id is voice identifier. + - language is language code in lang_Variant format. The lang part is a 2 or 3-letter code based on the ISO-639 standard, in lowercase. The Variant part is an engine-dependent string describing country, region or/and dialect. + Note that Godot depends on system libraries for text-to-speech functionality. These libraries are installed by default on Windows and macOS, but not on all Linux distributions. If they are not present, this method will return an empty list. This applies to both Godot users on Linux, as well as end-users on Linux running Godot games that use text-to-speech. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns an [] of voice identifiers for the . + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds an utterance to the queue. If is , the queue is cleared first. + - identifier is one of the "id" values returned by or one of the values returned by . + - ranges from 0 (lowest) to 100 (highest). + - ranges from 0.0 (lowest) to 2.0 (highest), 1.0 is default pitch for the current voice. + - ranges from 0.1 (lowest) to 10.0 (highest), 1.0 is a normal speaking rate. Other values act as a percentage relative. + - is passed as a parameter to the callback functions. + Note: On Windows and Linux (X11/Wayland), utterance can use SSML markup. SSML support is engine and voice dependent. If the engine does not support SSML, you should strip out all XML markup before calling . + Note: The granularity of pitch, rate, and volume is engine and voice dependent. Values may be truncated. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Puts the synthesizer into a paused state. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Resumes the synthesizer if it was paused. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Stops synthesis in progress and removes all utterances from the queue. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Linux), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Adds a callback, which is called when the utterance has started, finished, canceled or reached a text boundary. + - , , and callable's method should take one parameter, the utterance ID. + - callable's method should take two parameters, the index of the character and the utterance ID. + Note: The granularity of the boundary callbacks is engine dependent. + Note: This method is implemented on Android, iOS, Web, Linux (X11/Wayland), macOS, and Windows. + Note: ProjectSettings.audio/general/text_to_speech should be to use text-to-speech. + + + + + Returns if OS supports dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns if OS is using dark mode. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Returns OS theme accent color. Returns Color(0, 0, 0, 0), if accent color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Returns the OS theme base color (default control background). Returns Color(0, 0, 0, 0) if the base color is unknown. + Note: This method is implemented on macOS, Windows, and Android. + + + + + Sets the that should be called when system theme settings are changed. Callback method should have zero arguments. + Note: This method is implemented on Android, iOS, macOS, Windows, and Linux (X11/Wayland). + + + + + Sets the current mouse mode. See also . + + + + + Returns the current mouse mode. See also . + + + + + Sets the mouse cursor position to the given relative to an origin at the upper left corner of the currently focused game Window Manager window. + Note: is only supported on Windows, macOS, and Linux (X11/Wayland). It has no effect on Android, iOS, and Web. + + + + + Returns the mouse cursor's current position in screen coordinates. + + + + + Returns the current state of mouse buttons (whether each button is pressed) as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the user's clipboard content to the given string. + + + + + Returns the user's clipboard as a string if possible. + + + + + Returns the user's clipboard as an image if possible. + Note: This method uses the copied pixel data, e.g. from a image editing software or a web browser, not an image file copied from file explorer. + + + + + Returns if there is a text content on the user's clipboard. + + + + + Returns if there is an image content on the user's clipboard. + + + + + Sets the user's primary clipboard content to the given string. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns the user's primary clipboard as a string if possible. This is the clipboard that is set when the user selects text in any application, rather than when pressing Ctrl + C. The clipboard data can then be pasted by clicking the middle mouse button in any application that supports the primary clipboard mechanism. + Note: This method is only implemented on Linux (X11/Wayland). + + + + + Returns an of , each of which is the bounding rectangle for a display cutout or notch. These are non-functional areas on edge-to-edge screens used by cameras and sensors. Returns an empty array if the device does not have cutouts. See also . + Note: Currently only implemented on Android. Other platforms will return an empty array even if they do have display cutouts or notches. + + + + + Returns the unobscured area of the display where interactive controls should be rendered. See also . + + + + + Returns the number of displays available. + + + + + Returns index of the primary screen. + + + + + Returns the index of the screen containing the window with the keyboard focus, or the primary screen if there's no focused window. + + + + + Returns the index of the screen that overlaps the most with the given rectangle. Returns -1 if the rectangle doesn't overlap with any screen or has no area. + + + + + Returns the screen's top-left corner position in pixels. On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also . + Note: On Linux (Wayland) this method always returns (0, 0). + + + + + Returns the screen's size in pixels. See also and . + + + + + Returns the portion of the screen that is not obstructed by a status bar in pixels. See also . + + + + + Returns the dots per inch density of the specified screen. If is (the default value), a screen with the main window will be used. + Note: On macOS, returned value is inaccurate if fractional display scaling mode is used. + Note: On Android devices, the actual screen densities are grouped into six generalized densities: + + ldpi - 120 dpi + mdpi - 160 dpi + hdpi - 240 dpi + xhdpi - 320 dpi + xxhdpi - 480 dpi + xxxhdpi - 640 dpi + + Note: This method is implemented on Android, Linux (X11/Wayland), macOS and Windows. Returns 72 on unsupported platforms. + + + + + Returns the scale factor of the specified screen by index. + Note: On macOS, the returned value is 2.0 for hiDPI (Retina) screens, and 1.0 for all other cases. + Note: On Linux (Wayland), the returned value is accurate only when is . Due to API limitations, passing a direct index will return a rounded-up integer, if the screen has a fractional scale (e.g. 1.25 would get rounded up to 2.0). + Note: This method is implemented on Android, iOS, Web, macOS, and Linux (Wayland). + + + + + Returns if touch events are available (Android or iOS), the capability is detected on the Web platform or if ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is . + + + + + Returns the greatest scale factor of all screens. + Note: On macOS returned value is 2.0 if there is at least one hiDPI (Retina) screen in the system, and 1.0 in all other cases. + Note: This method is implemented only on macOS. + + + + + Returns the current refresh rate of the specified screen. If is (the default value), a screen with the main window will be used. + Note: Returns -1.0 if the DisplayServer fails to find the refresh rate for the specified screen. On Web, will always return -1.0 as there is no way to retrieve the refresh rate on that platform. + To fallback to a default refresh rate if the method fails, try: + + var refresh_rate = DisplayServer.screen_get_refresh_rate() + if refresh_rate < 0: + refresh_rate = 60.0 + + + + + + Returns color of the display pixel at the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the . + Note: This method is implemented on Linux (X11), macOS, and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Returns screenshot of the screen . + Note: This method is implemented on macOS and Windows. + Note: On macOS, this method requires "Screen Recording" permission, if permission is not granted it will return desktop wallpaper color. + + + + + Sets the 's . See also . + Note: On iOS, this method has no effect if ProjectSettings.display/window/handheld/orientation is not set to . + + + + + Returns the 's current orientation. See also . + Note: This method is implemented on Android and iOS. + + + + + Sets whether the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns if the screen should never be turned off by the operating system's power-saving measures. See also . + + + + + Returns the list of Godot window IDs belonging to this process. + Note: Native dialogs are not included in this list. + + + + + Returns the ID of the window at the specified screen (in pixels). On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + + + + + Returns internal structure pointers for use in plugins. + Note: This method is implemented on Android, Linux (X11/Wayland), macOS, and Windows. + + + + + Returns ID of the active popup window, or if there is none. + + + + + Sets the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. Clicking this area will not auto-close this popup. + + + + + Returns the bounding box of control, or menu item that was used to open the popup window, in the screen coordinate system. + + + + + Sets the title of the given window to . + Note: It's recommended to change this value using instead. + Note: Avoid changing the window title every frame, as this can cause performance issues on certain window managers. Try to change the window title only a few times per second at most. + + + + + Returns the estimated window title bar size (including text and window buttons) for the window specified by (in pixels). This method does not change the window title. + Note: This method is implemented on macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Path2D>("Path2D").Curve.GetBakedPoints()); + + // Set region, using Polygon2D node. + DisplayServer.WindowSetMousePassthrough(GetNode<Polygon2D>("Polygon2D").Polygon); + + // Reset region to default. + DisplayServer.WindowSetMousePassthrough(new Vector2[] {}); + + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This method is implemented on Linux (X11), macOS and Windows. + + + + + Returns the screen the window specified by is currently positioned on. If the screen overlaps multiple displays, the screen where the window's center is located is returned. See also . + + + + + Moves the window specified by to the specified . See also . + + + + + Returns the position of the client area of the given window on the screen. + + + + + Returns the position of the given window on the screen including the borders drawn by the operating system. See also . + + + + + Sets the position of the given window to . On multi-monitor setups, the screen position is relative to the virtual desktop area. On multi-monitor setups with different screen resolutions or orientations, the origin may be located outside any display like this: + + * (0, 0) +-------+ + | | + +-------------+ | | + | | | | + | | | | + +-------------+ +-------+ + + See also and . + Note: It's recommended to change this value using instead. + Note: On Linux (Wayland): this method is a no-op. + + + + + Returns the size of the window specified by (in pixels), excluding the borders drawn by the operating system. This is also called the "client area". See also , and . + + + + + Sets the size of the given window to (in pixels). See also and . + Note: It's recommended to change this value using instead. + + + + + Sets the that will be called when the window specified by is moved or resized. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that will be called when an event occurs in the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when any is sent to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when text is entered using the virtual keyboard to the window specified by . + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + + + + + Sets the that should be called when files are dropped from the operating system's file manager to the window specified by . should take one [] argument, which is the list of dropped files. + Warning: Advanced users only! Adding such a callback to a node will override its default implementation, which can introduce bugs. + Note: This method is implemented on Windows, macOS, Linux (X11/Wayland), and Web. + + + + + Returns the of the the is attached to. + + + + + Returns the window's maximum size (in pixels). See also . + + + + + Sets the maximum size of the window specified by in pixels. Normally, the user will not be able to drag the window to make it larger than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the window's minimum size (in pixels). See also . + + + + + Sets the minimum size for the given window to in pixels. Normally, the user will not be able to drag the window to make it smaller than the specified size. See also . + Note: It's recommended to change this value using instead. + Note: By default, the main window has a minimum size of Vector2i(64, 64). This prevents issues that can arise when the window is resized to a near-zero size. + Note: Using third-party tools, it is possible for users to disable window geometry restrictions and therefore bypass this limit. + + + + + Returns the size of the window specified by (in pixels), including the borders drawn by the operating system. See also . + + + + + Returns the mode of the given window. + + + + + Sets window mode for the given window to . See for possible values and how each mode behaves. + Note: On Android, setting it to or will enable immersive mode. + Note: Setting the window to full screen forcibly sets the borderless flag to , so make sure to set it back to when not wanted. + + + + + Enables or disables the given window's given . See for possible values and their behavior. + + + + + Returns the current value of the given window's . + + + + + When flag is set, set offset to the center of the first titlebar button. + Note: This flag is implemented only on macOS. + + + + + Returns left margins (x), right margins (y) and height (z) of the title that are safe to use (contains no buttons or other elements) when flag is set. + + + + + Makes the window specified by request attention, which is materialized by the window title and taskbar entry blinking until the window is focused. This usually has no visible effect if the window is currently focused. The exact behavior varies depending on the operating system. + + + + + Moves the window specified by to the foreground, so that it is visible over other windows. + + + + + Returns if the window specified by is focused. + + + + + Returns if anything can be drawn in the window specified by , otherwise. Using the --disable-render-loop command line argument or a headless build will return . + + + + + Sets window transient parent. Transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. + Note: It's recommended to change this value using instead. + Note: The behavior might be different depending on the platform. + + + + + If set to , this window will always stay on top of its parent window, parent window will ignore input while this window is opened. + Note: On macOS, exclusive windows are confined to the same space (virtual desktop or screen) as the parent window. + Note: This method is implemented on macOS and Windows. + + + + + Sets whether Input Method Editor should be enabled for the window specified by . See also . + + + + + Sets the position of the Input Method Editor popup for the specified . Only effective if was set to for the specified . + + + + + Sets the V-Sync mode of the given window. See also ProjectSettings.display/window/vsync/vsync_mode. + See for possible values and how they affect the behavior of your application. + Depending on the platform and used renderer, the engine will fall back to if the desired mode is not supported. + Note: V-Sync modes other than are only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Returns the V-Sync mode of the given window. + + + + + Returns if the given window can be maximized (the maximize button is enabled). + + + + + Returns , if double-click on a window title should maximize it. + Note: This method is implemented only on macOS. + + + + + Returns , if double-click on a window title should minimize it. + Note: This method is implemented only on macOS. + + + + + Starts a drag operation on the window with the given , using the current mouse position. Call this method when handling a mouse button being pressed to simulate a pressed event on the window's title bar. Using this method allows the window to participate in space switching, tiling, and other system features. + Note: This method is implemented on Linux(X11/Wayland), macOS, and Windows. + + + + + Returns the text selection in the Input Method Editor composition string, with the 's x component being the caret position and y being the length of the selection. + Note: This method is implemented only on macOS. + + + + + Returns the composition string contained within the Input Method Editor window. + Note: This method is implemented only on macOS. + + + + + Shows the virtual keyboard if the platform has one. + parameter is useful for implementing your own or , as it tells the virtual keyboard what text has already been typed (the virtual keyboard uses it for auto-correct and predictions). + parameter is the screen space of the edited text. + parameter allows configuring which type of virtual keyboard to show. + limits the number of characters that can be entered if different from -1. + can optionally define the current text cursor position if is not set. + and can optionally define the current text selection. + Note: This method is implemented on Android, iOS and Web. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Hides the virtual keyboard if it is shown, does nothing otherwise. + + + + + Returns the on-screen keyboard's height in pixels. Returns 0 if there is no keyboard or if it is currently hidden. + + + + + Returns if hardware keyboard is connected. + Note: This method is implemented on Android and iOS, on other platforms this method always returns . + + + + + Sets the default mouse cursor shape. The cursor's appearance will vary depending on the user's operating system and mouse cursor theme. See also and . + + + + + Returns the default mouse cursor shape set by . + + + + + Sets a custom mouse cursor image for the given . This means the user's operating system and mouse cursor theme will no longer influence the mouse cursor's appearance. + can be either a or an , and it should not be larger than 256×256 to display correctly. Optionally, can be set to offset the image's position relative to the click point. By default, is set to the top-left corner of the image. See also . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Returns if positions of OK and Cancel buttons are swapped in dialogs. This is enabled by default on Windows to follow interface conventions, and be toggled by changing ProjectSettings.gui/common/swap_cancel_ok. + Note: This doesn't affect native dialogs such as the ones spawned by . + + + + + Allows the PID to steal focus from this window. In other words, this disables the operating system's focus stealing protection for the specified PID. + Note: This method is implemented only on Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text dialog which uses the operating system's native look-and-feel. should accept a single parameter which corresponds to the index of the pressed button. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS and Windows. + + + + + Shows a text input dialog which uses the operating system's native look-and-feel. should accept a single parameter which contains the text field's contents. + Note: This method is implemented if the display server has the feature. Supported platforms include macOS, Windows, and Android. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int. On Android, callback argument selected_filter_index is always zero. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, macOS, and Android. + Note: might be ignored. + Note: On Android, the filter strings in the array should be specified using MIME types, for example:image/png, image/jpeg". Additionally, the is not supported on Android. + Note: On Android and Linux, is ignored. + Note: On Android and macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Displays OS native dialog for selecting files or directories in the file system with additional user selectable options. + Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. See also . + is array of s with the following keys: + - "name" - option's name . + - "values" - [] of values. If empty, boolean option (check box) is used. + - "default" - default selected option index () or default boolean value (). + Callbacks have the following arguments: status: bool, selected_paths: PackedStringArray, selected_filter_index: int, selected_option: Dictionary. + Note: This method is implemented if the display server has the feature. Supported platforms include Linux (X11/Wayland), Windows, and macOS. + Note: might be ignored. + Note: On Linux (X11), is ignored. + Note: On macOS, native file dialogs have no title. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + + + + + Plays the beep sound from the operative system, if possible. Because it comes from the OS, the beep sound will be audible even if the application is muted. It may also be disabled for the entire OS by the user. + Note: This method is implemented on macOS, Linux (X11/Wayland), and Windows. + + + + + Returns the number of keyboard layouts. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns active keyboard layout index. + Note: This method is implemented on Linux (X11/Wayland), macOS, and Windows. + + + + + Sets the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the ISO-639/BCP-47 language code of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Returns the localized name of the keyboard layout at position . + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to one in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Converts a physical (US QWERTY) to localized label printed on the key in the active keyboard layout. + Note: This method is implemented on Linux (X11/Wayland), macOS and Windows. + + + + + Perform window manager processing, including input flushing. See also , and . + + + + + Forces window manager processing while ignoring all s. See also . + Note: This method is implemented on Windows and macOS. + + + + + Sets the window icon (usually displayed in the top-left corner) in the operating system's native format. The file at must be in .ico format on Windows or .icns on macOS. By using specially crafted .ico or .icns icons, allows specifying different icons depending on the size the icon is displayed at. This size is determined by the operating system and user preferences (including the display scale factor). To use icons in other formats, use instead. + Note: Requires support for . + + + + + Sets the window icon (usually displayed in the top-left corner) with an . To use icons in the operating system's native format, use instead. + Note: Requires support for . + + + + + Creates a new application status indicator with the specified icon, tooltip, and activation callback. + should take two arguments: the pressed mouse button (one of the constants) and the click position in screen coordinates (a ). + + + + + Sets the application status indicator icon. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator tooltip. + Note: This method is implemented on macOS and Windows. + + + + + Sets the application status indicator native popup menu. + Note: On macOS, the menu is activated by any mouse button. Its activation callback is not triggered. + Note: On Windows, the menu is activated by the right mouse button, selecting the status icon and pressing Shift + F10, or the applications key. The menu's activation callback for the other mouse buttons is still triggered. + Note: Native popup is only supported if supports the feature. + + + + + Sets the application status indicator activation callback. should take two arguments: mouse button index (one of values) and click position in screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Returns the rectangle for the given status indicator in screen coordinates. If the status indicator is not visible, returns an empty . + Note: This method is implemented on macOS and Windows. + + + + + Removes the application status indicator. + + + + + Returns the total number of available tablet drivers. + Note: This method is implemented only on Windows. + + + + + Returns the tablet driver name for the given index. + Note: This method is implemented only on Windows. + + + + + Returns current active tablet driver name. + Note: This method is implemented only on Windows. + + + + + Set active tablet driver name. + Supported drivers: + - winink: Windows Ink API, default (Windows 8.1+ required). + - wintab: Wacom Wintab API (compatible device driver required). + - dummy: Dummy driver, tablet input is disabled. + Note: This method is implemented only on Windows. + + + + + Returns if the window background can be made transparent. This method returns if ProjectSettings.display/window/per_pixel_transparency/allowed is set to , or if transparency is not supported by the renderer or OS compositor. + + + + + Registers an which represents an additional output that will be rendered too, beyond normal windows. The is only used as an identifier, which can be later passed to . + This can be used to prevent Godot from skipping rendering when no normal windows are visible. + + + + + Unregisters an representing an additional output, that was registered via . + + + + + Returns if any additional outputs have been registered via . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'help_set_search_callbacks' method. + + + + + Cached name for the 'global_menu_set_popup_callbacks' method. + + + + + Cached name for the 'global_menu_add_submenu_item' method. + + + + + Cached name for the 'global_menu_add_item' method. + + + + + Cached name for the 'global_menu_add_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_item' method. + + + + + Cached name for the 'global_menu_add_icon_check_item' method. + + + + + Cached name for the 'global_menu_add_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_icon_radio_check_item' method. + + + + + Cached name for the 'global_menu_add_multistate_item' method. + + + + + Cached name for the 'global_menu_add_separator' method. + + + + + Cached name for the 'global_menu_get_item_index_from_text' method. + + + + + Cached name for the 'global_menu_get_item_index_from_tag' method. + + + + + Cached name for the 'global_menu_is_item_checked' method. + + + + + Cached name for the 'global_menu_is_item_checkable' method. + + + + + Cached name for the 'global_menu_is_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_get_item_callback' method. + + + + + Cached name for the 'global_menu_get_item_key_callback' method. + + + + + Cached name for the 'global_menu_get_item_tag' method. + + + + + Cached name for the 'global_menu_get_item_text' method. + + + + + Cached name for the 'global_menu_get_item_submenu' method. + + + + + Cached name for the 'global_menu_get_item_accelerator' method. + + + + + Cached name for the 'global_menu_is_item_disabled' method. + + + + + Cached name for the 'global_menu_is_item_hidden' method. + + + + + Cached name for the 'global_menu_get_item_tooltip' method. + + + + + Cached name for the 'global_menu_get_item_state' method. + + + + + Cached name for the 'global_menu_get_item_max_states' method. + + + + + Cached name for the 'global_menu_get_item_icon' method. + + + + + Cached name for the 'global_menu_get_item_indentation_level' method. + + + + + Cached name for the 'global_menu_set_item_checked' method. + + + + + Cached name for the 'global_menu_set_item_checkable' method. + + + + + Cached name for the 'global_menu_set_item_radio_checkable' method. + + + + + Cached name for the 'global_menu_set_item_callback' method. + + + + + Cached name for the 'global_menu_set_item_hover_callbacks' method. + + + + + Cached name for the 'global_menu_set_item_key_callback' method. + + + + + Cached name for the 'global_menu_set_item_tag' method. + + + + + Cached name for the 'global_menu_set_item_text' method. + + + + + Cached name for the 'global_menu_set_item_submenu' method. + + + + + Cached name for the 'global_menu_set_item_accelerator' method. + + + + + Cached name for the 'global_menu_set_item_disabled' method. + + + + + Cached name for the 'global_menu_set_item_hidden' method. + + + + + Cached name for the 'global_menu_set_item_tooltip' method. + + + + + Cached name for the 'global_menu_set_item_state' method. + + + + + Cached name for the 'global_menu_set_item_max_states' method. + + + + + Cached name for the 'global_menu_set_item_icon' method. + + + + + Cached name for the 'global_menu_set_item_indentation_level' method. + + + + + Cached name for the 'global_menu_get_item_count' method. + + + + + Cached name for the 'global_menu_remove_item' method. + + + + + Cached name for the 'global_menu_clear' method. + + + + + Cached name for the 'global_menu_get_system_menu_roots' method. + + + + + Cached name for the 'tts_is_speaking' method. + + + + + Cached name for the 'tts_is_paused' method. + + + + + Cached name for the 'tts_get_voices' method. + + + + + Cached name for the 'tts_get_voices_for_language' method. + + + + + Cached name for the 'tts_speak' method. + + + + + Cached name for the 'tts_pause' method. + + + + + Cached name for the 'tts_resume' method. + + + + + Cached name for the 'tts_stop' method. + + + + + Cached name for the 'tts_set_utterance_callback' method. + + + + + Cached name for the 'is_dark_mode_supported' method. + + + + + Cached name for the 'is_dark_mode' method. + + + + + Cached name for the 'get_accent_color' method. + + + + + Cached name for the 'get_base_color' method. + + + + + Cached name for the 'set_system_theme_change_callback' method. + + + + + Cached name for the 'mouse_set_mode' method. + + + + + Cached name for the 'mouse_get_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'mouse_get_position' method. + + + + + Cached name for the 'mouse_get_button_state' method. + + + + + Cached name for the 'clipboard_set' method. + + + + + Cached name for the 'clipboard_get' method. + + + + + Cached name for the 'clipboard_get_image' method. + + + + + Cached name for the 'clipboard_has' method. + + + + + Cached name for the 'clipboard_has_image' method. + + + + + Cached name for the 'clipboard_set_primary' method. + + + + + Cached name for the 'clipboard_get_primary' method. + + + + + Cached name for the 'get_display_cutouts' method. + + + + + Cached name for the 'get_display_safe_area' method. + + + + + Cached name for the 'get_screen_count' method. + + + + + Cached name for the 'get_primary_screen' method. + + + + + Cached name for the 'get_keyboard_focus_screen' method. + + + + + Cached name for the 'get_screen_from_rect' method. + + + + + Cached name for the 'screen_get_position' method. + + + + + Cached name for the 'screen_get_size' method. + + + + + Cached name for the 'screen_get_usable_rect' method. + + + + + Cached name for the 'screen_get_dpi' method. + + + + + Cached name for the 'screen_get_scale' method. + + + + + Cached name for the 'is_touchscreen_available' method. + + + + + Cached name for the 'screen_get_max_scale' method. + + + + + Cached name for the 'screen_get_refresh_rate' method. + + + + + Cached name for the 'screen_get_pixel' method. + + + + + Cached name for the 'screen_get_image' method. + + + + + Cached name for the 'screen_get_image_rect' method. + + + + + Cached name for the 'screen_set_orientation' method. + + + + + Cached name for the 'screen_get_orientation' method. + + + + + Cached name for the 'screen_set_keep_on' method. + + + + + Cached name for the 'screen_is_kept_on' method. + + + + + Cached name for the 'get_window_list' method. + + + + + Cached name for the 'get_window_at_screen_position' method. + + + + + Cached name for the 'window_get_native_handle' method. + + + + + Cached name for the 'window_get_active_popup' method. + + + + + Cached name for the 'window_set_popup_safe_rect' method. + + + + + Cached name for the 'window_get_popup_safe_rect' method. + + + + + Cached name for the 'window_set_title' method. + + + + + Cached name for the 'window_get_title_size' method. + + + + + Cached name for the 'window_set_mouse_passthrough' method. + + + + + Cached name for the 'window_get_current_screen' method. + + + + + Cached name for the 'window_set_current_screen' method. + + + + + Cached name for the 'window_get_position' method. + + + + + Cached name for the 'window_get_position_with_decorations' method. + + + + + Cached name for the 'window_set_position' method. + + + + + Cached name for the 'window_get_size' method. + + + + + Cached name for the 'window_set_size' method. + + + + + Cached name for the 'window_set_rect_changed_callback' method. + + + + + Cached name for the 'window_set_window_event_callback' method. + + + + + Cached name for the 'window_set_input_event_callback' method. + + + + + Cached name for the 'window_set_input_text_callback' method. + + + + + Cached name for the 'window_set_drop_files_callback' method. + + + + + Cached name for the 'window_get_attached_instance_id' method. + + + + + Cached name for the 'window_get_max_size' method. + + + + + Cached name for the 'window_set_max_size' method. + + + + + Cached name for the 'window_get_min_size' method. + + + + + Cached name for the 'window_set_min_size' method. + + + + + Cached name for the 'window_get_size_with_decorations' method. + + + + + Cached name for the 'window_get_mode' method. + + + + + Cached name for the 'window_set_mode' method. + + + + + Cached name for the 'window_set_flag' method. + + + + + Cached name for the 'window_get_flag' method. + + + + + Cached name for the 'window_set_window_buttons_offset' method. + + + + + Cached name for the 'window_get_safe_title_margins' method. + + + + + Cached name for the 'window_request_attention' method. + + + + + Cached name for the 'window_move_to_foreground' method. + + + + + Cached name for the 'window_is_focused' method. + + + + + Cached name for the 'window_can_draw' method. + + + + + Cached name for the 'window_set_transient' method. + + + + + Cached name for the 'window_set_exclusive' method. + + + + + Cached name for the 'window_set_ime_active' method. + + + + + Cached name for the 'window_set_ime_position' method. + + + + + Cached name for the 'window_set_vsync_mode' method. + + + + + Cached name for the 'window_get_vsync_mode' method. + + + + + Cached name for the 'window_is_maximize_allowed' method. + + + + + Cached name for the 'window_maximize_on_title_dbl_click' method. + + + + + Cached name for the 'window_minimize_on_title_dbl_click' method. + + + + + Cached name for the 'window_start_drag' method. + + + + + Cached name for the 'ime_get_selection' method. + + + + + Cached name for the 'ime_get_text' method. + + + + + Cached name for the 'virtual_keyboard_show' method. + + + + + Cached name for the 'virtual_keyboard_hide' method. + + + + + Cached name for the 'virtual_keyboard_get_height' method. + + + + + Cached name for the 'has_hardware_keyboard' method. + + + + + Cached name for the 'cursor_set_shape' method. + + + + + Cached name for the 'cursor_get_shape' method. + + + + + Cached name for the 'cursor_set_custom_image' method. + + + + + Cached name for the 'get_swap_cancel_ok' method. + + + + + Cached name for the 'enable_for_stealing_focus' method. + + + + + Cached name for the 'dialog_show' method. + + + + + Cached name for the 'dialog_input_text' method. + + + + + Cached name for the 'file_dialog_show' method. + + + + + Cached name for the 'file_dialog_with_options_show' method. + + + + + Cached name for the 'beep' method. + + + + + Cached name for the 'keyboard_get_layout_count' method. + + + + + Cached name for the 'keyboard_get_current_layout' method. + + + + + Cached name for the 'keyboard_set_current_layout' method. + + + + + Cached name for the 'keyboard_get_layout_language' method. + + + + + Cached name for the 'keyboard_get_layout_name' method. + + + + + Cached name for the 'keyboard_get_keycode_from_physical' method. + + + + + Cached name for the 'keyboard_get_label_from_physical' method. + + + + + Cached name for the 'process_events' method. + + + + + Cached name for the 'force_process_and_drop_events' method. + + + + + Cached name for the 'set_native_icon' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'create_status_indicator' method. + + + + + Cached name for the 'status_indicator_set_icon' method. + + + + + Cached name for the 'status_indicator_set_tooltip' method. + + + + + Cached name for the 'status_indicator_set_menu' method. + + + + + Cached name for the 'status_indicator_set_callback' method. + + + + + Cached name for the 'status_indicator_get_rect' method. + + + + + Cached name for the 'delete_status_indicator' method. + + + + + Cached name for the 'tablet_get_driver_count' method. + + + + + Cached name for the 'tablet_get_driver_name' method. + + + + + Cached name for the 'tablet_get_current_driver' method. + + + + + Cached name for the 'tablet_set_current_driver' method. + + + + + Cached name for the 'is_window_transparency_available' method. + + + + + Cached name for the 'register_additional_output' method. + + + + + Cached name for the 'unregister_additional_output' method. + + + + + Cached name for the 'has_additional_outputs' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol). + + + + + 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. + + + + + ENet's built-in range encoding. Works well on small packets, but is not the most efficient algorithm on packets larger than 4 KB. + + + + + FastLZ compression. This option uses less CPU resources compared to , at the expense of using more bandwidth. + + + + + Zlib compression. This option uses less bandwidth compared to , at the expense of using more CPU resources. + + + + + Zstandard 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. + + + + + An error occurred during . You will likely need to the host and recreate it. + + + + + No event occurred within the specified time limit. + + + + + A connection request initiated by enet_host_connect has completed. The array will contain the peer which successfully connected. + + + + + A peer has disconnected. This event is generated on a successful completion of a disconnect initiated by , if a peer has timed out, or if a connection request initialized by 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. + + + + + 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 . + + + + + Total data sent. + + + + + Total UDP packets sent. + + + + + Total data received. + + + + + Total UDP packets received. + + + + + Creates an ENetHost bound to the given and that allows up to connected peers, each allocating up to channels, optionally limiting bandwidth to and (if greater than zero). + Note: It is necessary to create a host in both client and server in order to establish a connection. + + + + + Creates an ENetHost that allows up to connected peers, each allocating up to channels, optionally limiting bandwidth to and (if greater than zero). + This method binds a random available dynamic UDP port on the host machine at the unspecified address. Use to specify the address and port. + Note: It is necessary to create a host in both client and server in order to establish a connection. + + + + + Destroys the host and all resources associated with it. + + + + + Initiates a connection to a foreign using the specified and allocating the requested . Optional can be passed during connection in the form of a 32 bit integer. + Note: You must call either or on both ends before calling this method. + + + + + Waits for events on this connection and shuttles packets between the host and its peers, with the given (in milliseconds). The returned will have 4 elements. An , the which generated the event, the event associated data (if any), the event associated channel (if any). If the generated event is , the received packet will be queued to the associated . + Call this function regularly to handle connections, disconnections, and to receive new packets. + Note: This method must be called on both ends involved in the event (sending and receiving hosts). + + + + + Sends any queued packets on the host specified to its designated peers. + + + + + Adjusts the bandwidth limits of a host. + + + + + Limits the maximum allowed channels of future incoming connections. + + + + + Queues a to be sent to all peers associated with the host over the specified . See FLAG_* constants for available packet flags. + + + + + Queues a to be sent to all peers associated with the host over the specified . See FLAG_* constants for available packet flags. + + + + + Sets the compression method used for network packets. These have different tradeoffs of compression speed versus bandwidth, you may need to test which one works best for your use case if you use compression at all. + Note: Most games' network design involve sending many small packets frequently (smaller than 4 KB each). If in doubt, it is recommended to keep the default compression algorithm as it works best on these small packets. + Note: The compression mode must be set to the same value on both the server and all its clients. Clients will fail to connect if the compression mode set on the client differs from the one set on the server. + + + + + Configure this ENetHost to use the custom Godot extension allowing DTLS encryption for ENet servers. Call this right after to have ENet expect peers to connect using DTLS. See . + + + + + Configure this ENetHost to use the custom Godot extension allowing DTLS encryption for ENet clients. Call this before to have ENet connect using DTLS validating the server certificate against . You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + + + + + Configures the DTLS server to automatically drop new connections. + Note: This method is only relevant after calling . + + + + + Returns and resets host statistics. See for more info. + + + + + Returns the maximum number of channels allowed for connected peers. + + + + + Returns the local port to which this peer is bound. + + + + + Returns the list of peers associated with this host. + Note: This list might include some peers that are not fully connected or are still being disconnected. + + + + + Sends a toward a destination from the address and port currently bound by this ENetConnection instance. + This is useful as it serves to establish entries in NAT routing tables on all devices between this bound instance and the public facing internet, allowing a prospective client's connection packets to be routed backward through the NAT device(s) between the public internet and this host. + This requires forward knowledge of a prospective client's address and communication port as seen by the public internet - after any NAT devices have handled their connection request. This information can be obtained by a STUN service, and must be handed off to your host by an entity that is not the prospective client. This will never work for a client behind a Symmetric NAT due to the nature of the Symmetric NAT routing algorithm, as their IP and Port cannot be known beforehand. + + + + + Sends a toward a destination from the address and port currently bound by this ENetConnection instance. + This is useful as it serves to establish entries in NAT routing tables on all devices between this bound instance and the public facing internet, allowing a prospective client's connection packets to be routed backward through the NAT device(s) between the public internet and this host. + This requires forward knowledge of a prospective client's address and communication port as seen by the public internet - after any NAT devices have handled their connection request. This information can be obtained by a STUN service, and must be handed off to your host by an entity that is not the prospective client. This will never work for a client behind a Symmetric NAT due to the nature of the Symmetric NAT routing algorithm, as their IP and Port cannot be known beforehand. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_host_bound' method. + + + + + Cached name for the 'create_host' method. + + + + + Cached name for the 'destroy' method. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'service' method. + + + + + Cached name for the 'flush' method. + + + + + Cached name for the 'bandwidth_limit' method. + + + + + Cached name for the 'channel_limit' method. + + + + + Cached name for the 'broadcast' method. + + + + + Cached name for the 'compress' method. + + + + + Cached name for the 'dtls_server_setup' method. + + + + + Cached name for the 'dtls_client_setup' method. + + + + + Cached name for the 'refuse_new_connections' method. + + + + + Cached name for the 'pop_statistic' method. + + + + + Cached name for the 'get_max_channels' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'get_peers' method. + + + + + Cached name for the 'socket_send' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A MultiplayerPeer implementation that should be passed to after being initialized as either a client, server, or mesh. Events can then be handled by connecting to signals. See for more information on the ENet library wrapper. + Note: ENet only uses UDP, not TCP. When forwarding the server port to make your server accessible on the public Internet, you only need to forward the server port in UDP. You can use the class to try to forward the server port automatically when starting the server. + + + + + The underlying created after and . + + + + + Create server that listens to connections via . The port needs to be an available, unused port between 0 and 65535. Note that ports below 1024 are privileged and may require elevated permissions depending on the platform. To change the interface the server listens on, use . The default IP is the wildcard "*", which listens on all available interfaces. is the maximum number of clients that are allowed at once, any number up to 4095 may be used, although the achievable number of simultaneous clients may be far lower and depends on the application. For additional details on the bandwidth parameters, see . Returns if a server was created, if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call first) or if the server could not be created. + + + + + Create client that connects to a server at using specified . The given address needs to be either a fully qualified domain name (e.g. "www.example.com") or an IP address in IPv4 or IPv6 format (e.g. "192.168.1.1"). The is the port the server is listening on. The parameter can be used to specify the number of ENet channels allocated for the connection. The and parameters can be used to limit the incoming and outgoing bandwidth to the given number of bytes per second. The default of 0 means unlimited bandwidth. Note that ENet will strategically drop packets on specific sides of a connection between peers to ensure the peer's bandwidth is not overwhelmed. The bandwidth parameters also determine the window size of a connection which limits the amount of reliable packets that may be in transit at any given time. Returns if a client was created, if this ENetMultiplayerPeer instance already has an open connection (in which case you need to call first) or if the client could not be created. If is specified, the client will also listen to the given port; this is useful for some NAT traversal techniques. + + + + + Initialize this in mesh mode. The provided will be used as the local peer network unique ID once assigned as the . In the mesh configuration you will need to set up each new peer manually using before calling . While this technique is more advanced, it allows for better control over the connection process (e.g. when dealing with NAT punch-through) and for better distribution of the network load (which would otherwise be more taxing on the server). + + + + + Add a new remote peer with the given connected to the given . + Note: The must have exactly one peer in the state. + + + + + The IP used when creating a server. This is set to the wildcard "*" by default, which binds to all available interfaces. The given IP needs to be in IPv4 or IPv6 address format, for example: "192.168.1.1". + + + + + Returns the associated to the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'host' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_server' method. + + + + + Cached name for the 'create_client' method. + + + + + Cached name for the 'create_mesh' method. + + + + + Cached name for the 'add_mesh_peer' method. + + + + + Cached name for the 'set_bind_ip' method. + + + + + Cached name for the 'get_host' method. + + + + + Cached name for the 'get_peer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A PacketPeer implementation representing a peer of an . + This class cannot be instantiated directly but can be retrieved during or via . + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The reference scale for packet loss. See and . + + + + + The reference value for throttle configuration. The default value is 32. See . + + + + + Mark the packet to be sent as reliable. + + + + + Mark the packet to be sent unsequenced (unreliable). + + + + + Mark the packet to be sent unreliable even if the packet is too big and needs fragmentation (increasing the chance of it being dropped). + + + + + The peer is disconnected. + + + + + The peer is currently attempting to connect. + + + + + The peer has acknowledged the connection request. + + + + + The peer is currently connecting. + + + + + The peer has successfully connected, but is not ready to communicate with yet (). + + + + + The peer is currently connected and ready to communicate with. + + + + + The peer is slated to disconnect after it has no more outgoing packets to send. + + + + + The peer is currently disconnecting. + + + + + The peer has acknowledged the disconnection request. + + + + + The peer has lost connection, but is not considered truly disconnected (as the peer didn't acknowledge the disconnection request). + + + + + Mean packet loss of reliable packets as a ratio with respect to the . + + + + + Packet loss variance. + + + + + 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. + + + + + Mean packet round trip time for reliable packets. + + + + + Variance of the mean round trip time. + + + + + Last recorded round trip time for a reliable packet. + + + + + Variance of the last trip time recorded. + + + + + The peer's current throttle status. + + + + + The maximum number of unreliable packets that should not be dropped. This value is always greater than or equal to 1. The initial value is equal to . + + + + + Internal value used to increment the packet throttle counter. The value is hardcoded to 7 and cannot be changed. You probably want to look at instead. + + + + + The time at which throttle statistics were last updated (in milliseconds since the connection started). The interval for throttle statistics updates is . + + + + + The throttle's acceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent more often. The default value is 2. + + + + + The throttle's deceleration factor. Higher values will make ENet adapt to fluctuating network conditions faster, causing unrelaible packets to be sent less often. The default value is 2. + + + + + 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 5000. + + + + + Request a disconnection from a peer. An will be generated during once the disconnection is complete. + + + + + Request a disconnection from a peer, but only after all queued outgoing packets are sent. An will be generated during once the disconnection is complete. + + + + + Force an immediate disconnection from a peer. No will be generated. The foreign peer is not guaranteed to receive the disconnect notification, and is reset immediately upon return from this function. + + + + + Sends a ping request to a peer. ENet automatically pings all connected peers at regular intervals, however, this function may be called to ensure more frequent ping requests. + + + + + Sets the in milliseconds at which pings will be sent to a peer. Pings are used both to monitor the liveness of the connection and also to dynamically adjust the throttle during periods of low traffic so that the throttle has reasonable responsiveness during traffic spikes. The default ping interval is 500 milliseconds. + + + + + Forcefully disconnects a peer. The foreign host represented by the peer is not notified of the disconnection and will timeout on its connection to the local host. + + + + + Queues a to be sent over the specified . See FLAG_* constants for available packet flags. + + + + + Queues a to be sent over the specified . See FLAG_* constants for available packet flags. + + + + + Configures throttle parameter for a peer. + Unreliable packets are dropped by ENet in response to the varying conditions of the Internet connection to the peer. The throttle represents a probability that an unreliable packet should not be dropped and thus sent by ENet to the peer. By measuring fluctuations in round trip times of reliable packets over the specified , ENet will either increase the probability by the amount specified in the parameter, or decrease it by the amount specified in the parameter (both are ratios to ). + When the throttle has a value of , no unreliable packets are dropped by ENet, and so 100% of all unreliable packets will be sent. + When the throttle has a value of 0, all unreliable packets are dropped by ENet, and so 0% of all unreliable packets will be sent. + Intermediate values for the throttle represent intermediate probabilities between 0% and 100% of unreliable packets being sent. The bandwidth limits of the local and foreign hosts are taken into account to determine a sensible limit for the throttle probability above which it should not raise even in the best of conditions. + + + + + Sets the timeout parameters for a peer. The timeout parameters control how and when a peer will timeout from a failure to acknowledge reliable traffic. Timeout values are expressed in milliseconds. + The is a factor that, multiplied by a value based on the average round trip time, will determine the timeout limit for a reliable packet. When that limit is reached, the timeout will be doubled, and the peer will be disconnected if that limit has reached . The parameter, on the other hand, defines a fixed timeout for which any packet must be acknowledged or the peer will be dropped. + + + + + Returns the ENet flags of the next packet in the received queue. See FLAG_* constants for available packet flags. Note that not all flags are replicated from the sending peer to the receiving peer. + + + + + Returns the IP address of this peer. + + + + + Returns the remote port of this peer. + + + + + Returns the requested for this peer. See . + + + + + Returns the current peer state. See . + + + + + Returns the number of channels allocated for communication with peer. + + + + + Returns if the peer is currently active (i.e. the associated is still valid). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'peer_disconnect' method. + + + + + Cached name for the 'peer_disconnect_later' method. + + + + + Cached name for the 'peer_disconnect_now' method. + + + + + Cached name for the 'ping' method. + + + + + Cached name for the 'ping_interval' method. + + + + + Cached name for the 'reset' method. + + + + + Cached name for the 'send' method. + + + + + Cached name for the 'throttle_configure' method. + + + + + Cached name for the 'set_timeout' method. + + + + + Cached name for the 'get_packet_flags' method. + + + + + Cached name for the 'get_remote_address' method. + + + + + Cached name for the 'get_remote_port' method. + + + + + Cached name for the 'get_statistic' method. + + + + + Cached name for the 'get_state' method. + + + + + Cached name for the 'get_channels' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Utility class which holds a reference to the internal identifier of an instance, as given by . This ID can then be used to retrieve the object instance with @GlobalScope.instance_from_id. + This class is used internally by the editor inspector and script debugger, but can also be used in plugins to pass and display objects as their IDs. + + + + + The identifier stored in this instance. The object instance can be retrieved with @GlobalScope.instance_from_id. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'object_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_object_id' method. + + + + + Cached name for the 'get_object_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others. It also stores information about the current build of Godot, such as the current version. + + + + + If , stops printing error and warning messages to the console and editor Output log. This can be used to hide error and warning messages during unit test suite runs. This property is equivalent to the ProjectSettings.application/run/disable_stderr project setting. + Note: This property does not impact the editor's Errors tab when running a project from the editor. + Warning: If set to anywhere in the project, important error messages may be hidden even if they are emitted from other scripts. In a @tool script, this will also impact the editor itself. Do not report bugs before ensuring error messages are enabled (as they are by default). + + + + + If , stops printing messages (for example using @GlobalScope.print) to the console, log files, and editor Output log. This property is equivalent to the ProjectSettings.application/run/disable_stdout project setting. + Note: This does not stop printing errors or warnings produced by scripts to the console or log files, for more details see . + + + + + The number of fixed iterations per second. This controls how often physics simulation and methods are run. This value should generally always be set to 60 or above, as Godot doesn't interpolate the physics step. As a result, values lower than 60 will look stuttery. This value can be increased to make input more reactive or work around collision tunneling issues, but keep in mind doing so will increase CPU usage. See also and ProjectSettings.physics/common/physics_ticks_per_second. + Note: Only physics ticks may be simulated per rendered frame at most. If more physics ticks have to be simulated per rendered frame to keep up with rendering, the project will appear to slow down (even if delta is used consistently in physics calculations). Therefore, it is recommended to also increase if increasing significantly above its default value. + + + + + The maximum number of physics steps that can be simulated each rendered frame. + Note: The default value is tuned to prevent expensive physics simulations from triggering even more expensive simulations indefinitely. However, the game will appear to slow down if the rendering FPS is less than 1 / max_physics_steps_per_frame of . This occurs even if delta is consistently used in physics calculations. To avoid this, increase if you have increased significantly above its default value. + + + + + The maximum number of frames that can be rendered every second (FPS). A value of 0 means the framerate is uncapped. + Limiting the FPS can be useful to reduce the host machine's power consumption, which reduces heat, noise emissions, and improves battery life. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled or Adaptive, the setting takes precedence and the max FPS number cannot exceed the monitor's refresh rate. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled, on monitors with variable refresh rate enabled (G-Sync/FreeSync), using an FPS limit a few frames lower than the monitor's refresh rate will reduce input lag while avoiding tearing. + See also and ProjectSettings.application/run/max_fps. + Note: The actual number of frames per second may still be below this value if the CPU or GPU cannot keep up with the project's logic and rendering. + Note: If ProjectSettings.display/window/vsync/vsync_mode is Disabled, limiting the FPS to a high value that can be consistently reached on the system can reduce input lag compared to an uncapped framerate. Since this works by ensuring the GPU load is lower than 100%, this latency reduction is only effective in GPU-bottlenecked scenarios, not CPU-bottlenecked scenarios. + + + + + The speed multiplier at which the in-game clock updates, compared to real time. For example, if set to 2.0 the game runs twice as fast, and if set to 0.5 the game runs half as fast. + This value affects , , and all other simulations that make use of delta time (such as and ). + Note: It's recommended to keep this property above 0.0, as the game may behave unexpectedly otherwise. + Note: This does not affect audio playback speed. Use to adjust audio playback speed independently of . + Note: This does not automatically adjust . With values above 1.0 physics simulation may become less precise, as each physics tick will stretch over a larger period of engine time. If you're modifying to speed up simulation by a large factor, consider also increasing to make the simulation more reliable. + + + + + How much physics ticks are synchronized with real time. If 0 or less, the ticks are fully synchronized. Higher values cause the in-game clock to deviate more from the real clock, but they smooth out framerate jitters. + Note: The default value of 0.5 should be good enough for most cases; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. + Note: When using a custom physics interpolation solution, or within a network game, it's recommended to disable the physics jitter fix by setting this property to 0. + + + + + Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation. + + + + + Returns the total number of frames drawn since the engine started. + Note: On headless platforms, or if rendering is disabled with --disable-render-loop via command line, this method always returns 0. See also . + + + + + Returns the average frames rendered every second (FPS), also known as the framerate. + + + + + Returns the total number of frames passed since the engine started. This number is increased every physics frame. See also . + This method can be used to run expensive logic less often without relying on a : + + public override void _PhysicsProcess(double delta) + { + base._PhysicsProcess(delta); + + if (Engine.GetPhysicsFrames() % 2 == 0) + { + // Run expensive logic only once every 2 physics frames here. + } + } + + + + + + Returns the total number of frames passed since the engine started. This number is increased every process frame, regardless of whether the render loop is enabled. See also and . + This method can be used to run expensive logic less often without relying on a : + + public override void _Process(double delta) + { + base._Process(delta); + + if (Engine.GetProcessFrames() % 5 == 0) + { + // Run expensive logic only once every 5 process (render) frames here. + } + } + + + + + + Returns the instance of the . This is usually the main and is the same as . + Note: The type instantiated as the main loop can changed with ProjectSettings.application/run/main_loop_type. + + + + + Returns the current engine version information as a containing the following entries: + - major - Major version number as an int; + - minor - Minor version number as an int; + - patch - Patch version number as an int; + - hex - Full version encoded as a hexadecimal int with one byte (2 hex digits) per number (see example below); + - status - Status (such as "beta", "rc1", "rc2", "stable", etc.) as a String; + - build - Build name (e.g. "custom_build") as a String; + - hash - Full Git commit hash as a String; + - timestamp - Holds the Git commit date UNIX timestamp in seconds as an int, or 0 if unavailable; + - string - major, minor, patch, status, and build in a single String. + The hex value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, "3.1.12" would be 0x03010C. + Note: The hex value is still an internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for quick version comparisons from code: + + if ((int)Engine.GetVersionInfo()["hex"] >= 0x040100) + { + // Do things specific to version 4.1 or later. + } + else + { + // Do things specific to versions before 4.1. + } + + + + + + Returns the engine author information as a , where each entry is an of strings with the names of notable contributors to the Godot Engine: lead_developers, founders, project_managers, and developers. + + + + + Returns an of dictionaries with copyright information for every component of Godot's source code. + Every contains a name identifier, and a parts array of dictionaries. It describes the component in detail with the following entries: + - files - of file paths from the source code affected by this component; + - copyright - of owners of this component; + - license - The license applied to this component (such as "Expat" or "CC-BY-4.0"). + + + + + Returns a of categorized donor names. Each entry is an of strings: + {platinum_sponsors, gold_sponsors, silver_sponsors, bronze_sponsors, mini_sponsors, gold_donors, silver_donors, bronze_donors} + + + + + Returns a of licenses used by Godot and included third party components. Each entry is a license name (such as "Expat") and its associated text. + + + + + Returns the full Godot license text. + + + + + Returns the name of the CPU architecture the Godot binary was built for. Possible return values include "x86_64", "x86_32", "arm64", "arm32", "rv64", "riscv", "ppc64", "ppc", "wasm64", and "wasm32". + To detect whether the current build is 64-bit, or the type of architecture, don't use the architecture name. Instead, use to check for the "64" feature tag, or tags such as "x86" or "arm". See the Feature Tags documentation for more details. + Note: This method does not return the name of the system's CPU architecture (like ). For example, when running an x86_32 Godot binary on an x86_64 system, the returned value will still be "x86_32". + + + + + Returns if the engine is inside the fixed physics process step of the main loop. + + func _enter_tree(): + # Depending on when the node is added to the tree, + # prints either "true" or "false". + print(Engine.is_in_physics_frame()) + + func _process(delta): + print(Engine.is_in_physics_frame()) # Prints false + + func _physics_process(delta): + print(Engine.is_in_physics_frame()) # Prints true + + + + + + Returns if a singleton with the given exists in the global scope. See also . + + GD.Print(Engine.HasSingleton("OS")); // Prints True + GD.Print(Engine.HasSingleton("Engine")); // Prints True + GD.Print(Engine.HasSingleton("AudioServer")); // Prints True + GD.Print(Engine.HasSingleton("Unknown")); // Prints False + + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Returns the global singleton with the given , or if it does not exist. Often used for plugins. See also and . + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Registers the given as a singleton, available globally under . Useful for plugins. + + + + + Removes the singleton registered under . The singleton object is not freed. Only works with user-defined singletons registered with . + + + + + Returns a list of names of all available global singletons. See also . + + + + + Registers a instance to be available with ScriptServer. + Returns: + - on success; + - if ScriptServer has reached the limit and cannot register any new language; + - if ScriptServer already contains a language with similar extension/name/type. + + + + + Unregisters the instance from ScriptServer. + Returns: + - on success; + - if the language is not registered in ScriptServer. + + + + + Returns the number of available script languages. Use with . + + + + + Returns an instance of a with the given . + + + + + Returns if the script is currently running inside the editor, otherwise returns . This is useful for @tool scripts to conditionally draw editor helpers, or prevent accidentally running "game" code that would affect the scene state while in the editor: + + if (Engine.IsEditorHint()) + DrawGizmos(); + else + SimulatePhysics(); + + See Running code in the editor in the documentation for more information. + Note: To detect whether the script is running on an editor build (such as when pressing F5), use with the "editor" argument instead. OS.has_feature("editor") evaluate to both when the script is running in the editor and when running the project from the editor, but returns when run from an exported project. + + + + + Returns the path to the 's output file, or an empty string if the engine wasn't started in Movie Maker mode. The default path can be changed in ProjectSettings.editor/movie_writer/movie_file. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'print_error_messages' property. + + + + + Cached name for the 'print_to_stdout' property. + + + + + Cached name for the 'physics_ticks_per_second' property. + + + + + Cached name for the 'max_physics_steps_per_frame' property. + + + + + Cached name for the 'max_fps' property. + + + + + Cached name for the 'time_scale' property. + + + + + Cached name for the 'physics_jitter_fix' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_physics_ticks_per_second' method. + + + + + Cached name for the 'get_physics_ticks_per_second' method. + + + + + Cached name for the 'set_max_physics_steps_per_frame' method. + + + + + Cached name for the 'get_max_physics_steps_per_frame' method. + + + + + Cached name for the 'set_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_interpolation_fraction' method. + + + + + Cached name for the 'set_max_fps' method. + + + + + Cached name for the 'get_max_fps' method. + + + + + Cached name for the 'set_time_scale' method. + + + + + Cached name for the 'get_time_scale' method. + + + + + Cached name for the 'get_frames_drawn' method. + + + + + Cached name for the 'get_frames_per_second' method. + + + + + Cached name for the 'get_physics_frames' method. + + + + + Cached name for the 'get_process_frames' method. + + + + + Cached name for the 'get_main_loop' method. + + + + + Cached name for the 'get_version_info' method. + + + + + Cached name for the 'get_author_info' method. + + + + + Cached name for the 'get_copyright_info' method. + + + + + Cached name for the 'get_donor_info' method. + + + + + Cached name for the 'get_license_info' method. + + + + + Cached name for the 'get_license_text' method. + + + + + Cached name for the 'get_architecture_name' method. + + + + + Cached name for the 'is_in_physics_frame' method. + + + + + Cached name for the 'has_singleton' method. + + + + + Cached name for the 'get_singleton' method. + + + + + Cached name for the 'register_singleton' method. + + + + + Cached name for the 'unregister_singleton' method. + + + + + Cached name for the 'get_singleton_list' method. + + + + + Cached name for the 'register_script_language' method. + + + + + Cached name for the 'unregister_script_language' method. + + + + + Cached name for the 'get_script_language_count' method. + + + + + Cached name for the 'get_script_language' method. + + + + + Cached name for the 'is_editor_hint' method. + + + + + Cached name for the 'get_write_movie_path' method. + + + + + Cached name for the 'set_print_to_stdout' method. + + + + + Cached name for the 'is_printing_to_stdout' method. + + + + + Cached name for the 'set_print_error_messages' method. + + + + + Cached name for the 'is_printing_error_messages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton allows you to query and modify the project's run-time parameters, such as frames per second, time scale, and others. It also stores information about the current build of Godot, such as the current version. + + + + + If , stops printing error and warning messages to the console and editor Output log. This can be used to hide error and warning messages during unit test suite runs. This property is equivalent to the ProjectSettings.application/run/disable_stderr project setting. + Note: This property does not impact the editor's Errors tab when running a project from the editor. + Warning: If set to anywhere in the project, important error messages may be hidden even if they are emitted from other scripts. In a @tool script, this will also impact the editor itself. Do not report bugs before ensuring error messages are enabled (as they are by default). + + + + + If , stops printing messages (for example using @GlobalScope.print) to the console, log files, and editor Output log. This property is equivalent to the ProjectSettings.application/run/disable_stdout project setting. + Note: This does not stop printing errors or warnings produced by scripts to the console or log files, for more details see . + + + + + The number of fixed iterations per second. This controls how often physics simulation and methods are run. This value should generally always be set to 60 or above, as Godot doesn't interpolate the physics step. As a result, values lower than 60 will look stuttery. This value can be increased to make input more reactive or work around collision tunneling issues, but keep in mind doing so will increase CPU usage. See also and ProjectSettings.physics/common/physics_ticks_per_second. + Note: Only physics ticks may be simulated per rendered frame at most. If more physics ticks have to be simulated per rendered frame to keep up with rendering, the project will appear to slow down (even if delta is used consistently in physics calculations). Therefore, it is recommended to also increase if increasing significantly above its default value. + + + + + The maximum number of physics steps that can be simulated each rendered frame. + Note: The default value is tuned to prevent expensive physics simulations from triggering even more expensive simulations indefinitely. However, the game will appear to slow down if the rendering FPS is less than 1 / max_physics_steps_per_frame of . This occurs even if delta is consistently used in physics calculations. To avoid this, increase if you have increased significantly above its default value. + + + + + The maximum number of frames that can be rendered every second (FPS). A value of 0 means the framerate is uncapped. + Limiting the FPS can be useful to reduce the host machine's power consumption, which reduces heat, noise emissions, and improves battery life. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled or Adaptive, the setting takes precedence and the max FPS number cannot exceed the monitor's refresh rate. + If ProjectSettings.display/window/vsync/vsync_mode is Enabled, on monitors with variable refresh rate enabled (G-Sync/FreeSync), using an FPS limit a few frames lower than the monitor's refresh rate will reduce input lag while avoiding tearing. + See also and ProjectSettings.application/run/max_fps. + Note: The actual number of frames per second may still be below this value if the CPU or GPU cannot keep up with the project's logic and rendering. + Note: If ProjectSettings.display/window/vsync/vsync_mode is Disabled, limiting the FPS to a high value that can be consistently reached on the system can reduce input lag compared to an uncapped framerate. Since this works by ensuring the GPU load is lower than 100%, this latency reduction is only effective in GPU-bottlenecked scenarios, not CPU-bottlenecked scenarios. + + + + + The speed multiplier at which the in-game clock updates, compared to real time. For example, if set to 2.0 the game runs twice as fast, and if set to 0.5 the game runs half as fast. + This value affects , , and all other simulations that make use of delta time (such as and ). + Note: It's recommended to keep this property above 0.0, as the game may behave unexpectedly otherwise. + Note: This does not affect audio playback speed. Use to adjust audio playback speed independently of . + Note: This does not automatically adjust . With values above 1.0 physics simulation may become less precise, as each physics tick will stretch over a larger period of engine time. If you're modifying to speed up simulation by a large factor, consider also increasing to make the simulation more reliable. + + + + + How much physics ticks are synchronized with real time. If 0 or less, the ticks are fully synchronized. Higher values cause the in-game clock to deviate more from the real clock, but they smooth out framerate jitters. + Note: The default value of 0.5 should be good enough for most cases; values above 2 could cause the game to react to dropped frames with a noticeable delay and are not recommended. + Note: When using a custom physics interpolation solution, or within a network game, it's recommended to disable the physics jitter fix by setting this property to 0. + + + + + Returns the fraction through the current physics tick we are at the time of rendering the frame. This can be used to implement fixed timestep interpolation. + + + + + Returns the total number of frames drawn since the engine started. + Note: On headless platforms, or if rendering is disabled with --disable-render-loop via command line, this method always returns 0. See also . + + + + + Returns the average frames rendered every second (FPS), also known as the framerate. + + + + + Returns the total number of frames passed since the engine started. This number is increased every physics frame. See also . + This method can be used to run expensive logic less often without relying on a : + + public override void _PhysicsProcess(double delta) + { + base._PhysicsProcess(delta); + + if (Engine.GetPhysicsFrames() % 2 == 0) + { + // Run expensive logic only once every 2 physics frames here. + } + } + + + + + + Returns the total number of frames passed since the engine started. This number is increased every process frame, regardless of whether the render loop is enabled. See also and . + This method can be used to run expensive logic less often without relying on a : + + public override void _Process(double delta) + { + base._Process(delta); + + if (Engine.GetProcessFrames() % 5 == 0) + { + // Run expensive logic only once every 5 process (render) frames here. + } + } + + + + + + Returns the instance of the . This is usually the main and is the same as . + Note: The type instantiated as the main loop can changed with ProjectSettings.application/run/main_loop_type. + + + + + Returns the current engine version information as a containing the following entries: + - major - Major version number as an int; + - minor - Minor version number as an int; + - patch - Patch version number as an int; + - hex - Full version encoded as a hexadecimal int with one byte (2 hex digits) per number (see example below); + - status - Status (such as "beta", "rc1", "rc2", "stable", etc.) as a String; + - build - Build name (e.g. "custom_build") as a String; + - hash - Full Git commit hash as a String; + - timestamp - Holds the Git commit date UNIX timestamp in seconds as an int, or 0 if unavailable; + - string - major, minor, patch, status, and build in a single String. + The hex value is encoded as follows, from left to right: one byte for the major, one byte for the minor, one byte for the patch version. For example, "3.1.12" would be 0x03010C. + Note: The hex value is still an internally, and printing it will give you its decimal representation, which is not particularly meaningful. Use hexadecimal literals for quick version comparisons from code: + + if ((int)Engine.GetVersionInfo()["hex"] >= 0x040100) + { + // Do things specific to version 4.1 or later. + } + else + { + // Do things specific to versions before 4.1. + } + + + + + + Returns the engine author information as a , where each entry is an of strings with the names of notable contributors to the Godot Engine: lead_developers, founders, project_managers, and developers. + + + + + Returns an of dictionaries with copyright information for every component of Godot's source code. + Every contains a name identifier, and a parts array of dictionaries. It describes the component in detail with the following entries: + - files - of file paths from the source code affected by this component; + - copyright - of owners of this component; + - license - The license applied to this component (such as "Expat" or "CC-BY-4.0"). + + + + + Returns a of categorized donor names. Each entry is an of strings: + {platinum_sponsors, gold_sponsors, silver_sponsors, bronze_sponsors, mini_sponsors, gold_donors, silver_donors, bronze_donors} + + + + + Returns a of licenses used by Godot and included third party components. Each entry is a license name (such as "Expat") and its associated text. + + + + + Returns the full Godot license text. + + + + + Returns the name of the CPU architecture the Godot binary was built for. Possible return values include "x86_64", "x86_32", "arm64", "arm32", "rv64", "riscv", "ppc64", "ppc", "wasm64", and "wasm32". + To detect whether the current build is 64-bit, or the type of architecture, don't use the architecture name. Instead, use to check for the "64" feature tag, or tags such as "x86" or "arm". See the Feature Tags documentation for more details. + Note: This method does not return the name of the system's CPU architecture (like ). For example, when running an x86_32 Godot binary on an x86_64 system, the returned value will still be "x86_32". + + + + + Returns if the engine is inside the fixed physics process step of the main loop. + + func _enter_tree(): + # Depending on when the node is added to the tree, + # prints either "true" or "false". + print(Engine.is_in_physics_frame()) + + func _process(delta): + print(Engine.is_in_physics_frame()) # Prints false + + func _physics_process(delta): + print(Engine.is_in_physics_frame()) # Prints true + + + + + + Returns if a singleton with the given exists in the global scope. See also . + + GD.Print(Engine.HasSingleton("OS")); // Prints True + GD.Print(Engine.HasSingleton("Engine")); // Prints True + GD.Print(Engine.HasSingleton("AudioServer")); // Prints True + GD.Print(Engine.HasSingleton("Unknown")); // Prints False + + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Returns the global singleton with the given , or if it does not exist. Often used for plugins. See also and . + Note: Global singletons are not the same as autoloaded nodes, which are configurable in the project settings. + + + + + Registers the given as a singleton, available globally under . Useful for plugins. + + + + + Removes the singleton registered under . The singleton object is not freed. Only works with user-defined singletons registered with . + + + + + Returns a list of names of all available global singletons. See also . + + + + + Registers a instance to be available with ScriptServer. + Returns: + - on success; + - if ScriptServer has reached the limit and cannot register any new language; + - if ScriptServer already contains a language with similar extension/name/type. + + + + + Unregisters the instance from ScriptServer. + Returns: + - on success; + - if the language is not registered in ScriptServer. + + + + + Returns the number of available script languages. Use with . + + + + + Returns an instance of a with the given . + + + + + Returns if the script is currently running inside the editor, otherwise returns . This is useful for @tool scripts to conditionally draw editor helpers, or prevent accidentally running "game" code that would affect the scene state while in the editor: + + if (Engine.IsEditorHint()) + DrawGizmos(); + else + SimulatePhysics(); + + See Running code in the editor in the documentation for more information. + Note: To detect whether the script is running on an editor build (such as when pressing F5), use with the "editor" argument instead. OS.has_feature("editor") evaluate to both when the script is running in the editor and when running the project from the editor, but returns when run from an exported project. + + + + + Returns the path to the 's output file, or an empty string if the engine wasn't started in Movie Maker mode. The default path can be changed in ProjectSettings.editor/movie_writer/movie_file. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'print_error_messages' property. + + + + + Cached name for the 'print_to_stdout' property. + + + + + Cached name for the 'physics_ticks_per_second' property. + + + + + Cached name for the 'max_physics_steps_per_frame' property. + + + + + Cached name for the 'max_fps' property. + + + + + Cached name for the 'time_scale' property. + + + + + Cached name for the 'physics_jitter_fix' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_physics_ticks_per_second' method. + + + + + Cached name for the 'get_physics_ticks_per_second' method. + + + + + Cached name for the 'set_max_physics_steps_per_frame' method. + + + + + Cached name for the 'get_max_physics_steps_per_frame' method. + + + + + Cached name for the 'set_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_jitter_fix' method. + + + + + Cached name for the 'get_physics_interpolation_fraction' method. + + + + + Cached name for the 'set_max_fps' method. + + + + + Cached name for the 'get_max_fps' method. + + + + + Cached name for the 'set_time_scale' method. + + + + + Cached name for the 'get_time_scale' method. + + + + + Cached name for the 'get_frames_drawn' method. + + + + + Cached name for the 'get_frames_per_second' method. + + + + + Cached name for the 'get_physics_frames' method. + + + + + Cached name for the 'get_process_frames' method. + + + + + Cached name for the 'get_main_loop' method. + + + + + Cached name for the 'get_version_info' method. + + + + + Cached name for the 'get_author_info' method. + + + + + Cached name for the 'get_copyright_info' method. + + + + + Cached name for the 'get_donor_info' method. + + + + + Cached name for the 'get_license_info' method. + + + + + Cached name for the 'get_license_text' method. + + + + + Cached name for the 'get_architecture_name' method. + + + + + Cached name for the 'is_in_physics_frame' method. + + + + + Cached name for the 'has_singleton' method. + + + + + Cached name for the 'get_singleton' method. + + + + + Cached name for the 'register_singleton' method. + + + + + Cached name for the 'unregister_singleton' method. + + + + + Cached name for the 'get_singleton_list' method. + + + + + Cached name for the 'register_script_language' method. + + + + + Cached name for the 'unregister_script_language' method. + + + + + Cached name for the 'get_script_language_count' method. + + + + + Cached name for the 'get_script_language' method. + + + + + Cached name for the 'is_editor_hint' method. + + + + + Cached name for the 'get_write_movie_path' method. + + + + + Cached name for the 'set_print_to_stdout' method. + + + + + Cached name for the 'is_printing_to_stdout' method. + + + + + Cached name for the 'set_print_error_messages' method. + + + + + Cached name for the 'is_printing_error_messages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers. + + + + + Returns if the debugger is active otherwise . + + + + + Registers a profiler with the given . See for more information. + + + + + Unregisters a profiler with given . + + + + + Returns if a profiler with the given name is present and active otherwise . + + + + + Returns if a profiler with the given name is present otherwise . + + + + + Calls the add callable of the profiler with given and . + + + + + Calls the toggle callable of the profiler with given and . Enables/Disables the same profiler depending on argument. + + + + + Registers a message capture with given . If is "my_message" then messages starting with "my_message:" will be called with the given callable. + The callable must accept a message string and a data array as argument. The callable should return if the message is recognized. + Note: The callable will receive the message with the prefix stripped, unlike EditorDebuggerPlugin._Capture. See the EditorDebuggerPlugin description for an example. + + + + + Unregisters the message capture with given . + + + + + Returns if a capture with the given name is present otherwise . + + + + + Forces a processing loop of debugger events. The purpose of this method is just processing events every now and then when the script might get too busy, so that bugs like infinite loops can be caught. + + + + + Sends a message with given and array. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Sets the current debugging lines that remain. + + + + + Returns the number of lines that remain. + + + + + Sets the current debugging depth. + + + + + Returns the current debug depth. + + + + + Returns if the given and represent an existing breakpoint. + + + + + Returns if the debugger is skipping breakpoints otherwise . + + + + + Inserts a new breakpoint with the given and . + + + + + Removes a breakpoint with the given and . + + + + + Clears all breakpoints. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'register_profiler' method. + + + + + Cached name for the 'unregister_profiler' method. + + + + + Cached name for the 'is_profiling' method. + + + + + Cached name for the 'has_profiler' method. + + + + + Cached name for the 'profiler_add_frame_data' method. + + + + + Cached name for the 'profiler_enable' method. + + + + + Cached name for the 'register_message_capture' method. + + + + + Cached name for the 'unregister_message_capture' method. + + + + + Cached name for the 'has_capture' method. + + + + + Cached name for the 'line_poll' method. + + + + + Cached name for the 'send_message' method. + + + + + Cached name for the 'debug' method. + + + + + Cached name for the 'script_debug' method. + + + + + Cached name for the 'set_lines_left' method. + + + + + Cached name for the 'get_lines_left' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'is_breakpoint' method. + + + + + Cached name for the 'is_skipping_breakpoints' method. + + + + + Cached name for the 'insert_breakpoint' method. + + + + + Cached name for the 'remove_breakpoint' method. + + + + + Cached name for the 'clear_breakpoints' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles the communication between the editor and the running game. It is active in the running game. Messages can be sent/received through it. It also manages the profilers. + + + + + Returns if the debugger is active otherwise . + + + + + Registers a profiler with the given . See for more information. + + + + + Unregisters a profiler with given . + + + + + Returns if a profiler with the given name is present and active otherwise . + + + + + Returns if a profiler with the given name is present otherwise . + + + + + Calls the add callable of the profiler with given and . + + + + + Calls the toggle callable of the profiler with given and . Enables/Disables the same profiler depending on argument. + + + + + Registers a message capture with given . If is "my_message" then messages starting with "my_message:" will be called with the given callable. + The callable must accept a message string and a data array as argument. The callable should return if the message is recognized. + Note: The callable will receive the message with the prefix stripped, unlike EditorDebuggerPlugin._Capture. See the EditorDebuggerPlugin description for an example. + + + + + Unregisters the message capture with given . + + + + + Returns if a capture with the given name is present otherwise . + + + + + Forces a processing loop of debugger events. The purpose of this method is just processing events every now and then when the script might get too busy, so that bugs like infinite loops can be caught. + + + + + Sends a message with given and array. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Starts a debug break in script execution, optionally specifying whether the program can continue based on and whether the break was due to a breakpoint. + + + + + Sets the current debugging lines that remain. + + + + + Returns the number of lines that remain. + + + + + Sets the current debugging depth. + + + + + Returns the current debug depth. + + + + + Returns if the given and represent an existing breakpoint. + + + + + Returns if the debugger is skipping breakpoints otherwise . + + + + + Inserts a new breakpoint with the given and . + + + + + Removes a breakpoint with the given and . + + + + + Clears all breakpoints. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'register_profiler' method. + + + + + Cached name for the 'unregister_profiler' method. + + + + + Cached name for the 'is_profiling' method. + + + + + Cached name for the 'has_profiler' method. + + + + + Cached name for the 'profiler_add_frame_data' method. + + + + + Cached name for the 'profiler_enable' method. + + + + + Cached name for the 'register_message_capture' method. + + + + + Cached name for the 'unregister_message_capture' method. + + + + + Cached name for the 'has_capture' method. + + + + + Cached name for the 'line_poll' method. + + + + + Cached name for the 'send_message' method. + + + + + Cached name for the 'debug' method. + + + + + Cached name for the 'script_debug' method. + + + + + Cached name for the 'set_lines_left' method. + + + + + Cached name for the 'get_lines_left' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'is_breakpoint' method. + + + + + Cached name for the 'is_skipping_breakpoints' method. + + + + + Cached name for the 'insert_breakpoint' method. + + + + + Cached name for the 'remove_breakpoint' method. + + + + + Cached name for the 'clear_breakpoints' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class can be used to implement custom profilers that are able to interact with the engine and editor debugger. + See and EditorDebuggerPlugin for more information. + + + + + Called when data is added to profiler using . + + + + + 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. + + + + + Called when the profiler is enabled/disabled, along with a set of . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_frame' method. + + + + + Cached name for the '_tick' method. + + + + + Cached name for the '_toggle' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource for environment nodes (like ) that define multiple environment operations (such as background or , 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 + + + + + Clears the background using the clear color defined in ProjectSettings.rendering/environment/defaults/default_clear_color. + + + + + Clears the background using a custom clear color. + + + + + Displays a user-defined sky in the background. + + + + + Displays a in the background. + + + + + 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. + + + + + Displays a camera feed in the background. + + + + + Represents the size of the enum. + + + + + Gather ambient light from whichever source is specified as the background. + + + + + Disable ambient light. This provides a slight performance boost over . + + + + + Specify a specific for ambient light. This provides a slight performance boost over . + + + + + Gather ambient light from the regardless of what the background is. + + + + + Use the background for reflections. + + + + + Disable reflections. This provides a slight performance boost over other options. + + + + + Use the for reflections regardless of what the background is. + + + + + 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. + + + + + Reinhard tonemapper operator. Performs a variation on rendered pixels' colors by this formula: color = color * (1 + color / (white * white)) / (1 + color). This avoids clipping bright highlights, but the resulting image can look a bit dull. When is left at the default value of 1.0 this is identical to while also being slightly less performant. + + + + + Filmic tonemapper operator. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than . + + + + + 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 and . + Note: This tonemapping operator is called "ACES Fitted" in Godot 3.x. + + + + + Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources. + + + + + Screen glow blending mode. Increases brightness, used frequently with bloom. + + + + + Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom). + + + + + 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. + + + + + Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect. + + + + + Use a physically-based fog model defined primarily by fog density. + + + + + Use a simple fog model defined by start and end positions and a custom curve. While not physically accurate, this model can be useful when you need more artistic control. + + + + + 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. + + + + + Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales. + + + + + 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. + + + + + The background mode. See for possible values. + + + + + The displayed for clear areas of the scene. Only effective when using the background mode. + + + + + Multiplier for background energy. Increase to make background brighter, decrease to make background dimmer. + + + + + Luminance of background measured in nits (candela per square meter). Only used when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is enabled. The default value is roughly equivalent to the sky at midday. + + + + + The maximum layer ID to display. Only effective when using the background mode. + + + + + The ID of the camera feed to show in the background. + + + + + The resource used for this . + + + + + If set to a value greater than 0.0, overrides the field of view to use for sky rendering. If set to 0.0, the same FOV as the current is used for sky rendering. + + + + + The rotation to use for sky rendering. + + + + + The ambient light source to use for rendering materials and global illumination. + + + + + The ambient light's . Only effective if is lower than 1.0 (exclusive). + + + + + Defines the amount of light that the sky brings on the scene. A value of 0.0 means that the sky's light emission has no effect on the scene illumination, thus all ambient illumination is provided by the ambient light. On the contrary, a value of 1.0 means that all the light that affects the scene is provided by the sky, thus the ambient light parameter has no effect on the scene. + Note: is internally clamped between 0.0 and 1.0 (inclusive). + + + + + The ambient light's energy. The higher the value, the stronger the light. Only effective if is lower than 1.0 (exclusive). + + + + + The reflected (specular) light source. + + + + + The tonemapping mode to use. Tonemapping is the process that "converts" HDR values to be suitable for rendering on an LDR display. (Godot doesn't support rendering on HDR displays yet.) + + + + + The default exposure used for tonemapping. Higher values result in a brighter image. See also . + + + + + The white reference value for tonemapping (also called "whitepoint"). Higher values can make highlights look less blown out, and will also slightly darken the whole scene as a result. Only effective if the isn't set to . See also . + + + + + If , screen-space reflections are enabled. Screen-space reflections are more accurate than reflections from s or s, but are slower and can't reflect surfaces occluded by others. + Note: SSR is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The maximum number of steps for screen-space reflections. Higher values are slower. + + + + + The fade-in distance for screen-space reflections. Affects the area from the reflected material to the screen-space reflection. Only positive values are valid (negative values will be clamped to 0.0). + + + + + The fade-out distance for screen-space reflections. Affects the area from the screen-space reflection to the "global" reflection. Only positive values are valid (negative values will be clamped to 0.0). + + + + + The depth tolerance for screen-space reflections. + + + + + If , the screen-space ambient occlusion effect is enabled. This darkens objects' corners and cavities to simulate ambient light not reaching the entire object as in real life. This works well for small, dynamic objects, but baked lighting or ambient occlusion textures will do a better job at displaying ambient occlusion on large static objects. Godot uses a form of SSAO called Adaptive Screen Space Ambient Occlusion which is itself a form of Horizon Based Ambient Occlusion. + Note: SSAO is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The distance at which objects can occlude each other when calculating screen-space ambient occlusion. Higher values will result in occlusion over a greater distance at the cost of performance and quality. + + + + + The primary screen-space ambient occlusion intensity. Acts as a multiplier for the screen-space ambient occlusion effect. A higher value results in darker occlusion. + + + + + The distribution of occlusion. A higher value results in darker occlusion, similar to , but with a sharper falloff. + + + + + Sets the strength of the additional level of detail for the screen-space ambient occlusion effect. A high value makes the detail pass more prominent, but it may contribute to aliasing in your final image. + + + + + The threshold for considering whether a given point on a surface is occluded or not represented as an angle from the horizon mapped into the 0.0-1.0 range. A value of 1.0 results in no occlusion. + + + + + The amount that the screen-space ambient occlusion effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry. + + + + + The screen-space ambient occlusion intensity in direct light. In real life, ambient occlusion only applies to indirect light, which means its effects can't be seen in direct light. Values higher than 0 will make the SSAO effect visible in direct light. + + + + + The screen-space ambient occlusion intensity on materials that have an AO texture defined. Values higher than 0 will make the SSAO effect visible in areas darkened by AO textures. + + + + + If , the screen-space indirect lighting effect is enabled. Screen space indirect lighting is a form of indirect lighting that allows diffuse light to bounce between nearby objects. Screen-space indirect lighting works very similarly to screen-space ambient occlusion, in that it only affects a limited range. It is intended to be used along with a form of proper global illumination like SDFGI or . Screen-space indirect lighting is not affected by individual light's . + Note: SSIL is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The distance that bounced lighting can travel when using the screen space indirect lighting effect. A larger value will result in light bouncing further in a scene, but may result in under-sampling artifacts which look like long spikes surrounding light sources. + + + + + The brightness multiplier for the screen-space indirect lighting effect. A higher value will result in brighter light. + + + + + The amount that the screen-space indirect lighting effect is allowed to blur over the edges of objects. Setting too high will result in aliasing around the edges of objects. Setting too low will make object edges appear blurry. + + + + + Amount of normal rejection used when calculating screen-space indirect lighting. Normal rejection uses the normal of a given sample point to reject samples that are facing away from the current pixel. Normal rejection is necessary to avoid light leaking when only one side of an object is illuminated. However, normal rejection can be disabled if light leaking is desirable, such as when the scene mostly contains emissive objects that emit light from faces that cannot be seen from the camera. + + + + + If , enables signed distance field global illumination for meshes that have their set to . SDFGI is a real-time global illumination technique that works well with procedurally generated and user-built levels, including in situations where geometry is created during gameplay. The signed distance field is automatically generated around the camera as it moves. Dynamic lights are supported, but dynamic occluders and emissive surfaces are not. + Note: SDFGI is only supported in the Forward+ rendering method, not Mobile or Compatibility. + Performance: SDFGI is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider instead). To improve SDFGI performance, enable ProjectSettings.rendering/global_illumination/gi/use_half_resolution in the Project Settings. + Note: Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. + + + + + If , SDFGI uses an occlusion detection approach to reduce light leaking. Occlusion may however introduce dark blotches in certain spots, which may be undesired in mostly outdoor scenes. has a performance impact and should only be enabled when needed. + + + + + If , SDFGI takes the environment lighting into account. This should be set to for interior scenes. + + + + + The energy multiplier applied to light every time it bounces from a surface when using SDFGI. Values greater than 0.0 will simulate multiple bounces, resulting in a more realistic appearance. Increasing generally has no performance impact. See also . + Note: Values greater than 0.5 can cause infinite feedback loops and should be avoided in scenes with bright materials. + Note: If is 0.0, indirect lighting will not be represented in reflections as light will only bounce one time. + + + + + The number of cascades to use for SDFGI (between 1 and 8). A higher number of cascades allows displaying SDFGI further away while preserving detail up close, at the cost of performance. When using SDFGI on small-scale levels, can often be decreased between 1 and 4 to improve performance. + + + + + The cell size to use for the closest SDFGI cascade (in 3D units). Lower values allow SDFGI to be more precise up close, at the cost of making SDFGI updates more demanding. This can cause stuttering when the camera moves fast. Higher values allow SDFGI to cover more ground, while also reducing the performance impact of SDFGI updates. + Note: This property is linked to and . Changing its value will automatically change those properties as well. + + + + + Note: This property is linked to and . Changing its value will automatically change those properties as well. + + + + + The maximum distance at which SDFGI is visible. Beyond this distance, environment lighting or other sources of GI such as will be used as a fallback. + Note: This property is linked to and . Changing its value will automatically change those properties as well. + + + + + The Y scale to use for SDFGI cells. Lower values will result in SDFGI cells being packed together more closely on the Y axis. This is used to balance between quality and covering a lot of vertical ground. should be set depending on how vertical your scene is (and how fast your camera may move on the Y axis). + + + + + The energy multiplier to use for SDFGI. Higher values will result in brighter indirect lighting and reflections. See also . + + + + + The normal bias to use for SDFGI probes. Increasing this value can reduce visible streaking artifacts on sloped surfaces, at the cost of increased light leaking. + + + + + The constant bias to use for SDFGI probes. Increasing this value can reduce visible streaking artifacts on sloped surfaces, at the cost of increased light leaking. + + + + + If , the glow effect is enabled. This simulates real world eye/camera behavior where bright pixels bleed onto surrounding pixels. + Note: When using the Mobile rendering method, glow looks different due to the lower dynamic range available in the Mobile rendering method. + Note: When using the Compatibility rendering method, glow uses a different implementation with some properties being unavailable and hidden from the inspector: glow_levels/*, , , , , , and . This implementation is optimized to run on low-end devices and is less flexible as a result. + + + + + If , glow levels will be normalized so that summed together their intensities equal 1.0. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The overall brightness multiplier of the glow effect. When using the Mobile rendering method (which only supports a lower dynamic range up to 2.0), this should be increased to 1.5 to compensate. + + + + + The strength of the glow effect. This applies as the glow is blurred across the screen and increases the distance and intensity of the blur. When using the Mobile rendering method, this should be increased to compensate for the lower dynamic range. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + When using the , this controls how much the source image is blended with the glow layer. A value of 0.0 makes the glow rendering invisible, while a value of 1.0 is equivalent to . + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The bloom's intensity. If set to a value higher than 0, this will make glow visible in areas darker than the . + + + + + The glow blending mode. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The lower threshold of the HDR glow. When using the Mobile rendering method (which only supports a lower dynamic range up to 2.0), this may need to be below 1.0 for glow to be visible. A value of 0.9 works well in this case. This value also needs to be decreased below 1.0 when using glow in 2D, as 2D rendering is performed in SDR. + + + + + The bleed scale of the HDR glow. + + + + + The higher threshold of the HDR glow. Areas brighter than this threshold will be clamped for the purposes of the glow effect. + + + + + How strong of an influence the should have on the overall glow effect. A strength of 0.0 means the glow map has no influence, while a strength of 1.0 means the glow map has full influence. + Note: If the glow map has black areas, a value of 1.0 can also turn off the glow effect entirely in specific areas of the screen. + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + The texture that should be used as a glow map to multiply the resulting glow color according to . This can be used to create a "lens dirt" effect. The texture's RGB color channels are used for modulation, but the alpha channel is ignored. + Note: The texture will be stretched to fit the screen. Therefore, it's recommended to use a texture with an aspect ratio that matches your project's base aspect ratio (typically 16:9). + Note: has no effect when using the Compatibility rendering method, due to this rendering method using a simpler glow implementation optimized for low-end devices. + + + + + If , fog effects are enabled. + + + + + The fog mode. See for possible values. + + + + + The fog's color. + + + + + The fog's brightness. Higher values result in brighter fog. + + + + + If set above 0.0, renders the scene's directional light(s) in the fog color depending on the view angle. This can be used to give the impression that the sun is "piercing" through the fog. + + + + + The fog density to be used. This is demonstrated in different ways depending on the mode chosen: + Exponential Fog Mode: Higher values result in denser fog. The fog rendering is exponential like in real life. + Depth Fog mode: The maximum intensity of the deep fog, effect will appear in the distance (relative to the camera). At 1.0 the fog will fully obscure the scene, at 0.0 the fog will not be visible. + + + + + If set above 0.0 (exclusive), blends between the fog's color and the color of the background , as read from the radiance cubemap. This has a small performance cost when set above 0.0. Must have set to . + This is useful to simulate aerial perspective in large scenes with low density fog. However, it is not very useful for high-density fog, as the sky will shine through. When set to 1.0, the fog color comes completely from the . If set to 0.0, aerial perspective is disabled. + Notice that this does not sample the directly, but rather the radiance cubemap. The cubemap is sampled at a mipmap level depending on the depth of the rendered pixel; the farther away, the higher the resolution of the sampled mipmap. This results in the actual color being a blurred version of the sky, with more blur closer to the camera. The highest mipmap resolution is used at a depth of . + + + + + The factor to use when affecting the sky with non-volumetric fog. 1.0 means that fog can fully obscure the sky. Lower values reduce the impact of fog on sky rendering, with 0.0 not affecting sky rendering at all. + Note: has no visual effect if is 1.0. + + + + + The height at which the height fog effect begins. + + + + + The density used to increase fog as height decreases. To make fog increase as height increases, use a negative value. + + + + + The fog depth's intensity curve. A number of presets are available in the Inspector by right-clicking the curve. Only available when is set to . + + + + + The fog's depth starting distance from the camera. Only available when is set to . + + + + + The fog's depth end distance from the camera. If this value is set to 0, it will be equal to the current camera's value. Only available when is set to . + + + + + Enables the volumetric fog effect. Volumetric fog uses a screen-aligned froxel buffer to calculate accurate volumetric scattering in the short to medium range. Volumetric fog interacts with s and lights to calculate localized and global fog. Volumetric fog uses a PBR single-scattering model based on extinction, scattering, and emission which it exposes to users as density, albedo, and emission. + Note: Volumetric fog is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + The base exponential density of the volumetric fog. Set this to the lowest density you want to have globally. s can be used to add to or subtract from this density in specific areas. Fog rendering is exponential as in real life. + A value of 0.0 disables global volumetric fog while allowing s to display volumetric fog in specific areas. + To make volumetric fog work as a volumetric lighting solution, set to the lowest non-zero value (0.0001) then increase lights' to values between 10000 and 100000 to compensate for the very low density. + + + + + The of the volumetric fog when interacting with lights. Mist and fog have an albedo close to Color(1, 1, 1, 1) while smoke has a darker albedo. + + + + + The emitted light from the volumetric fog. Even with emission, volumetric fog will not cast light onto other surfaces. Emission is useful to establish an ambient color. As the volumetric fog effect uses single-scattering only, fog tends to need a little bit of emission to soften the harsh shadows. + + + + + The brightness of the emitted light from the volumetric fog. + + + + + Scales the strength of Global Illumination used in the volumetric fog's albedo color. A value of 0.0 means that Global Illumination will not impact the volumetric fog. has a small performance cost when set above 0.0. + Note: This has no visible effect if is 0.0 or if is a fully black color. + Note: Only and SDFGI () are taken into account when using . Global illumination from , and SSIL (see ) will be ignored by volumetric fog. + + + + + The direction of scattered light as it goes through the volumetric fog. A value close to 1.0 means almost all light is scattered forward. A value close to 0.0 means light is scattered equally in all directions. A value close to -1.0 means light is scattered mostly backward. Fog and mist scatter light slightly forward, while smoke scatters light equally in all directions. + + + + + The distance over which the volumetric fog is computed. Increase to compute fog over a greater range, decrease to add more detail when a long range is not needed. For best quality fog, keep this as low as possible. See also ProjectSettings.rendering/environment/volumetric_fog/volume_depth. + + + + + The distribution of size down the length of the froxel buffer. A higher value compresses the froxels closer to the camera and places more detail closer to the camera. + + + + + Scales the strength of ambient light used in the volumetric fog. A value of 0.0 means that ambient light will not impact the volumetric fog. has a small performance cost when set above 0.0. + Note: This has no visible effect if is 0.0 or if is a fully black color. + + + + + The factor to use when affecting the sky with volumetric fog. 1.0 means that volumetric fog can fully obscure the sky. Lower values reduce the impact of volumetric fog on sky rendering, with 0.0 not affecting sky rendering at all. + Note: also affects s, even if is 0.0. If you notice s are disappearing when looking towards the sky, set to 1.0. + + + + + Enables temporal reprojection in the volumetric fog. Temporal reprojection blends the current frame's volumetric fog with the last frame's volumetric fog to smooth out jagged edges. The performance cost is minimal; however, it leads to moving s and s "ghosting" and leaving a trail behind them. When temporal reprojection is enabled, try to avoid moving s or s too fast. Short-lived dynamic lighting effects should have set to 0.0 to avoid ghosting. + + + + + The amount by which to blend the last frame with the current frame. A higher number results in smoother volumetric fog, but makes "ghosting" much worse. A lower value reduces ghosting but can result in the per-frame temporal jitter becoming visible. + + + + + If , enables the adjustment_* properties provided by this resource. If , modifications to the adjustment_* properties will have no effect on the rendered scene. + + + + + The global brightness value of the rendered scene. Effective only if is . + + + + + The global contrast value of the rendered scene (default value is 1). Effective only if is . + + + + + The global color saturation value of the rendered scene (default value is 1). Effective only if is . + + + + + The or lookup table (LUT) to use for the built-in post-process color grading. Can use a for a 1-dimensional LUT, or a for a more complex LUT. Effective only if is . + + + + + Sets the intensity of the glow level . A value above 0.0 enables the level. Each level relies on the previous level. This means that enabling higher glow levels will slow down the glow effect rendering, even if previous levels aren't enabled. + + + + + Returns the intensity of the glow level . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'background_mode' property. + + + + + Cached name for the 'background_color' property. + + + + + Cached name for the 'background_energy_multiplier' property. + + + + + Cached name for the 'background_intensity' property. + + + + + Cached name for the 'background_canvas_max_layer' property. + + + + + Cached name for the 'background_camera_feed_id' property. + + + + + Cached name for the 'sky' property. + + + + + Cached name for the 'sky_custom_fov' property. + + + + + Cached name for the 'sky_rotation' property. + + + + + Cached name for the 'ambient_light_source' property. + + + + + Cached name for the 'ambient_light_color' property. + + + + + Cached name for the 'ambient_light_sky_contribution' property. + + + + + Cached name for the 'ambient_light_energy' property. + + + + + Cached name for the 'reflected_light_source' property. + + + + + Cached name for the 'tonemap_mode' property. + + + + + Cached name for the 'tonemap_exposure' property. + + + + + Cached name for the 'tonemap_white' property. + + + + + Cached name for the 'ssr_enabled' property. + + + + + Cached name for the 'ssr_max_steps' property. + + + + + Cached name for the 'ssr_fade_in' property. + + + + + Cached name for the 'ssr_fade_out' property. + + + + + Cached name for the 'ssr_depth_tolerance' property. + + + + + Cached name for the 'ssao_enabled' property. + + + + + Cached name for the 'ssao_radius' property. + + + + + Cached name for the 'ssao_intensity' property. + + + + + Cached name for the 'ssao_power' property. + + + + + Cached name for the 'ssao_detail' property. + + + + + Cached name for the 'ssao_horizon' property. + + + + + Cached name for the 'ssao_sharpness' property. + + + + + Cached name for the 'ssao_light_affect' property. + + + + + Cached name for the 'ssao_ao_channel_affect' property. + + + + + Cached name for the 'ssil_enabled' property. + + + + + Cached name for the 'ssil_radius' property. + + + + + Cached name for the 'ssil_intensity' property. + + + + + Cached name for the 'ssil_sharpness' property. + + + + + Cached name for the 'ssil_normal_rejection' property. + + + + + Cached name for the 'sdfgi_enabled' property. + + + + + Cached name for the 'sdfgi_use_occlusion' property. + + + + + Cached name for the 'sdfgi_read_sky_light' property. + + + + + Cached name for the 'sdfgi_bounce_feedback' property. + + + + + Cached name for the 'sdfgi_cascades' property. + + + + + Cached name for the 'sdfgi_min_cell_size' property. + + + + + Cached name for the 'sdfgi_cascade0_distance' property. + + + + + Cached name for the 'sdfgi_max_distance' property. + + + + + Cached name for the 'sdfgi_y_scale' property. + + + + + Cached name for the 'sdfgi_energy' property. + + + + + Cached name for the 'sdfgi_normal_bias' property. + + + + + Cached name for the 'sdfgi_probe_bias' property. + + + + + Cached name for the 'glow_enabled' property. + + + + + Cached name for the 'glow_normalized' property. + + + + + Cached name for the 'glow_intensity' property. + + + + + Cached name for the 'glow_strength' property. + + + + + Cached name for the 'glow_mix' property. + + + + + Cached name for the 'glow_bloom' property. + + + + + Cached name for the 'glow_blend_mode' property. + + + + + Cached name for the 'glow_hdr_threshold' property. + + + + + Cached name for the 'glow_hdr_scale' property. + + + + + Cached name for the 'glow_hdr_luminance_cap' property. + + + + + Cached name for the 'glow_map_strength' property. + + + + + Cached name for the 'glow_map' property. + + + + + Cached name for the 'fog_enabled' property. + + + + + Cached name for the 'fog_mode' property. + + + + + Cached name for the 'fog_light_color' property. + + + + + Cached name for the 'fog_light_energy' property. + + + + + Cached name for the 'fog_sun_scatter' property. + + + + + Cached name for the 'fog_density' property. + + + + + Cached name for the 'fog_aerial_perspective' property. + + + + + Cached name for the 'fog_sky_affect' property. + + + + + Cached name for the 'fog_height' property. + + + + + Cached name for the 'fog_height_density' property. + + + + + Cached name for the 'fog_depth_curve' property. + + + + + Cached name for the 'fog_depth_begin' property. + + + + + Cached name for the 'fog_depth_end' property. + + + + + Cached name for the 'volumetric_fog_enabled' property. + + + + + Cached name for the 'volumetric_fog_density' property. + + + + + Cached name for the 'volumetric_fog_albedo' property. + + + + + Cached name for the 'volumetric_fog_emission' property. + + + + + Cached name for the 'volumetric_fog_emission_energy' property. + + + + + Cached name for the 'volumetric_fog_gi_inject' property. + + + + + Cached name for the 'volumetric_fog_anisotropy' property. + + + + + Cached name for the 'volumetric_fog_length' property. + + + + + Cached name for the 'volumetric_fog_detail_spread' property. + + + + + Cached name for the 'volumetric_fog_ambient_inject' property. + + + + + Cached name for the 'volumetric_fog_sky_affect' property. + + + + + Cached name for the 'volumetric_fog_temporal_reprojection_enabled' property. + + + + + Cached name for the 'volumetric_fog_temporal_reprojection_amount' property. + + + + + Cached name for the 'adjustment_enabled' property. + + + + + Cached name for the 'adjustment_brightness' property. + + + + + Cached name for the 'adjustment_contrast' property. + + + + + Cached name for the 'adjustment_saturation' property. + + + + + Cached name for the 'adjustment_color_correction' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_background' method. + + + + + Cached name for the 'get_background' method. + + + + + Cached name for the 'set_sky' method. + + + + + Cached name for the 'get_sky' method. + + + + + Cached name for the 'set_sky_custom_fov' method. + + + + + Cached name for the 'get_sky_custom_fov' method. + + + + + Cached name for the 'set_sky_rotation' method. + + + + + Cached name for the 'get_sky_rotation' method. + + + + + Cached name for the 'set_bg_color' method. + + + + + Cached name for the 'get_bg_color' method. + + + + + Cached name for the 'set_bg_energy_multiplier' method. + + + + + Cached name for the 'get_bg_energy_multiplier' method. + + + + + Cached name for the 'set_bg_intensity' method. + + + + + Cached name for the 'get_bg_intensity' method. + + + + + Cached name for the 'set_canvas_max_layer' method. + + + + + Cached name for the 'get_canvas_max_layer' method. + + + + + Cached name for the 'set_camera_feed_id' method. + + + + + Cached name for the 'get_camera_feed_id' method. + + + + + Cached name for the 'set_ambient_light_color' method. + + + + + Cached name for the 'get_ambient_light_color' method. + + + + + Cached name for the 'set_ambient_source' method. + + + + + Cached name for the 'get_ambient_source' method. + + + + + Cached name for the 'set_ambient_light_energy' method. + + + + + Cached name for the 'get_ambient_light_energy' method. + + + + + Cached name for the 'set_ambient_light_sky_contribution' method. + + + + + Cached name for the 'get_ambient_light_sky_contribution' method. + + + + + Cached name for the 'set_reflection_source' method. + + + + + Cached name for the 'get_reflection_source' method. + + + + + Cached name for the 'set_tonemapper' method. + + + + + Cached name for the 'get_tonemapper' method. + + + + + Cached name for the 'set_tonemap_exposure' method. + + + + + Cached name for the 'get_tonemap_exposure' method. + + + + + Cached name for the 'set_tonemap_white' method. + + + + + Cached name for the 'get_tonemap_white' method. + + + + + Cached name for the 'set_ssr_enabled' method. + + + + + Cached name for the 'is_ssr_enabled' method. + + + + + Cached name for the 'set_ssr_max_steps' method. + + + + + Cached name for the 'get_ssr_max_steps' method. + + + + + Cached name for the 'set_ssr_fade_in' method. + + + + + Cached name for the 'get_ssr_fade_in' method. + + + + + Cached name for the 'set_ssr_fade_out' method. + + + + + Cached name for the 'get_ssr_fade_out' method. + + + + + Cached name for the 'set_ssr_depth_tolerance' method. + + + + + Cached name for the 'get_ssr_depth_tolerance' method. + + + + + Cached name for the 'set_ssao_enabled' method. + + + + + Cached name for the 'is_ssao_enabled' method. + + + + + Cached name for the 'set_ssao_radius' method. + + + + + Cached name for the 'get_ssao_radius' method. + + + + + Cached name for the 'set_ssao_intensity' method. + + + + + Cached name for the 'get_ssao_intensity' method. + + + + + Cached name for the 'set_ssao_power' method. + + + + + Cached name for the 'get_ssao_power' method. + + + + + Cached name for the 'set_ssao_detail' method. + + + + + Cached name for the 'get_ssao_detail' method. + + + + + Cached name for the 'set_ssao_horizon' method. + + + + + Cached name for the 'get_ssao_horizon' method. + + + + + Cached name for the 'set_ssao_sharpness' method. + + + + + Cached name for the 'get_ssao_sharpness' method. + + + + + Cached name for the 'set_ssao_direct_light_affect' method. + + + + + Cached name for the 'get_ssao_direct_light_affect' method. + + + + + Cached name for the 'set_ssao_ao_channel_affect' method. + + + + + Cached name for the 'get_ssao_ao_channel_affect' method. + + + + + Cached name for the 'set_ssil_enabled' method. + + + + + Cached name for the 'is_ssil_enabled' method. + + + + + Cached name for the 'set_ssil_radius' method. + + + + + Cached name for the 'get_ssil_radius' method. + + + + + Cached name for the 'set_ssil_intensity' method. + + + + + Cached name for the 'get_ssil_intensity' method. + + + + + Cached name for the 'set_ssil_sharpness' method. + + + + + Cached name for the 'get_ssil_sharpness' method. + + + + + Cached name for the 'set_ssil_normal_rejection' method. + + + + + Cached name for the 'get_ssil_normal_rejection' method. + + + + + Cached name for the 'set_sdfgi_enabled' method. + + + + + Cached name for the 'is_sdfgi_enabled' method. + + + + + Cached name for the 'set_sdfgi_cascades' method. + + + + + Cached name for the 'get_sdfgi_cascades' method. + + + + + Cached name for the 'set_sdfgi_min_cell_size' method. + + + + + Cached name for the 'get_sdfgi_min_cell_size' method. + + + + + Cached name for the 'set_sdfgi_max_distance' method. + + + + + Cached name for the 'get_sdfgi_max_distance' method. + + + + + Cached name for the 'set_sdfgi_cascade0_distance' method. + + + + + Cached name for the 'get_sdfgi_cascade0_distance' method. + + + + + Cached name for the 'set_sdfgi_y_scale' method. + + + + + Cached name for the 'get_sdfgi_y_scale' method. + + + + + Cached name for the 'set_sdfgi_use_occlusion' method. + + + + + Cached name for the 'is_sdfgi_using_occlusion' method. + + + + + Cached name for the 'set_sdfgi_bounce_feedback' method. + + + + + Cached name for the 'get_sdfgi_bounce_feedback' method. + + + + + Cached name for the 'set_sdfgi_read_sky_light' method. + + + + + Cached name for the 'is_sdfgi_reading_sky_light' method. + + + + + Cached name for the 'set_sdfgi_energy' method. + + + + + Cached name for the 'get_sdfgi_energy' method. + + + + + Cached name for the 'set_sdfgi_normal_bias' method. + + + + + Cached name for the 'get_sdfgi_normal_bias' method. + + + + + Cached name for the 'set_sdfgi_probe_bias' method. + + + + + Cached name for the 'get_sdfgi_probe_bias' method. + + + + + Cached name for the 'set_glow_enabled' method. + + + + + Cached name for the 'is_glow_enabled' method. + + + + + Cached name for the 'set_glow_level' method. + + + + + Cached name for the 'get_glow_level' method. + + + + + Cached name for the 'set_glow_normalized' method. + + + + + Cached name for the 'is_glow_normalized' method. + + + + + Cached name for the 'set_glow_intensity' method. + + + + + Cached name for the 'get_glow_intensity' method. + + + + + Cached name for the 'set_glow_strength' method. + + + + + Cached name for the 'get_glow_strength' method. + + + + + Cached name for the 'set_glow_mix' method. + + + + + Cached name for the 'get_glow_mix' method. + + + + + Cached name for the 'set_glow_bloom' method. + + + + + Cached name for the 'get_glow_bloom' method. + + + + + Cached name for the 'set_glow_blend_mode' method. + + + + + Cached name for the 'get_glow_blend_mode' method. + + + + + Cached name for the 'set_glow_hdr_bleed_threshold' method. + + + + + Cached name for the 'get_glow_hdr_bleed_threshold' method. + + + + + Cached name for the 'set_glow_hdr_bleed_scale' method. + + + + + Cached name for the 'get_glow_hdr_bleed_scale' method. + + + + + Cached name for the 'set_glow_hdr_luminance_cap' method. + + + + + Cached name for the 'get_glow_hdr_luminance_cap' method. + + + + + Cached name for the 'set_glow_map_strength' method. + + + + + Cached name for the 'get_glow_map_strength' method. + + + + + Cached name for the 'set_glow_map' method. + + + + + Cached name for the 'get_glow_map' method. + + + + + Cached name for the 'set_fog_enabled' method. + + + + + Cached name for the 'is_fog_enabled' method. + + + + + Cached name for the 'set_fog_mode' method. + + + + + Cached name for the 'get_fog_mode' method. + + + + + Cached name for the 'set_fog_light_color' method. + + + + + Cached name for the 'get_fog_light_color' method. + + + + + Cached name for the 'set_fog_light_energy' method. + + + + + Cached name for the 'get_fog_light_energy' method. + + + + + Cached name for the 'set_fog_sun_scatter' method. + + + + + Cached name for the 'get_fog_sun_scatter' method. + + + + + Cached name for the 'set_fog_density' method. + + + + + Cached name for the 'get_fog_density' method. + + + + + Cached name for the 'set_fog_height' method. + + + + + Cached name for the 'get_fog_height' method. + + + + + Cached name for the 'set_fog_height_density' method. + + + + + Cached name for the 'get_fog_height_density' method. + + + + + Cached name for the 'set_fog_aerial_perspective' method. + + + + + Cached name for the 'get_fog_aerial_perspective' method. + + + + + Cached name for the 'set_fog_sky_affect' method. + + + + + Cached name for the 'get_fog_sky_affect' method. + + + + + Cached name for the 'set_fog_depth_curve' method. + + + + + Cached name for the 'get_fog_depth_curve' method. + + + + + Cached name for the 'set_fog_depth_begin' method. + + + + + Cached name for the 'get_fog_depth_begin' method. + + + + + Cached name for the 'set_fog_depth_end' method. + + + + + Cached name for the 'get_fog_depth_end' method. + + + + + Cached name for the 'set_volumetric_fog_enabled' method. + + + + + Cached name for the 'is_volumetric_fog_enabled' method. + + + + + Cached name for the 'set_volumetric_fog_emission' method. + + + + + Cached name for the 'get_volumetric_fog_emission' method. + + + + + Cached name for the 'set_volumetric_fog_albedo' method. + + + + + Cached name for the 'get_volumetric_fog_albedo' method. + + + + + Cached name for the 'set_volumetric_fog_density' method. + + + + + Cached name for the 'get_volumetric_fog_density' method. + + + + + Cached name for the 'set_volumetric_fog_emission_energy' method. + + + + + Cached name for the 'get_volumetric_fog_emission_energy' method. + + + + + Cached name for the 'set_volumetric_fog_anisotropy' method. + + + + + Cached name for the 'get_volumetric_fog_anisotropy' method. + + + + + Cached name for the 'set_volumetric_fog_length' method. + + + + + Cached name for the 'get_volumetric_fog_length' method. + + + + + Cached name for the 'set_volumetric_fog_detail_spread' method. + + + + + Cached name for the 'get_volumetric_fog_detail_spread' method. + + + + + Cached name for the 'set_volumetric_fog_gi_inject' method. + + + + + Cached name for the 'get_volumetric_fog_gi_inject' method. + + + + + Cached name for the 'set_volumetric_fog_ambient_inject' method. + + + + + Cached name for the 'get_volumetric_fog_ambient_inject' method. + + + + + Cached name for the 'set_volumetric_fog_sky_affect' method. + + + + + Cached name for the 'get_volumetric_fog_sky_affect' method. + + + + + Cached name for the 'set_volumetric_fog_temporal_reprojection_enabled' method. + + + + + Cached name for the 'is_volumetric_fog_temporal_reprojection_enabled' method. + + + + + Cached name for the 'set_volumetric_fog_temporal_reprojection_amount' method. + + + + + Cached name for the 'get_volumetric_fog_temporal_reprojection_amount' method. + + + + + Cached name for the 'set_adjustment_enabled' method. + + + + + Cached name for the 'is_adjustment_enabled' method. + + + + + Cached name for the 'set_adjustment_brightness' method. + + + + + Cached name for the 'get_adjustment_brightness' method. + + + + + Cached name for the 'set_adjustment_contrast' method. + + + + + Cached name for the 'get_adjustment_contrast' method. + + + + + Cached name for the 'set_adjustment_saturation' method. + + + + + Cached name for the 'get_adjustment_saturation' method. + + + + + Cached name for the 'set_adjustment_color_correction' method. + + + + + Cached name for the 'get_adjustment_color_correction' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An expression can be made of any arithmetic operation, built-in math function call, method call of a passed instance, or built-in type construction call. + An example expression text using the built-in math functions could be sqrt(pow(3, 2) + pow(4, 2)). + In the following example we use a node to write our expression and show the result. + + private Expression _expression = new Expression(); + + public override void _Ready() + { + GetNode<LineEdit>("LineEdit").TextSubmitted += OnTextEntered; + } + + private void OnTextEntered(string command) + { + Error error = _expression.Parse(command); + if (error != Error.Ok) + { + GD.Print(_expression.GetErrorText()); + return; + } + Variant result = _expression.Execute(); + if (!_expression.HasExecuteFailed()) + { + GetNode<LineEdit>("LineEdit").Text = result.ToString(); + } + } + + + + + + Parses the expression and returns an code. + You can optionally specify names of variables that may appear in the expression with , so that you can bind them when it gets executed. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Parses the expression and returns an code. + You can optionally specify names of variables that may appear in the expression with , so that you can bind them when it gets executed. + + + + + Executes the expression that was previously parsed by and returns the result. Before you use the returned object, you should check if the method failed by calling . + If you defined input variables in , you can specify their values in the inputs array, in the same order. + + + + + Returns if has failed. + + + + + Returns the error text if or has failed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'parse' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'has_execute_failed' method. + + + + + Cached name for the 'get_error_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Displays the content of an external buffer provided by the platform. + Requires the OES_EGL_image_external extension (OpenGL) or VK_ANDROID_external_memory_android_hardware_buffer extension (Vulkan). + Note: This is currently only supported in Android builds. + + + + + External texture size. + + + + + Returns the external texture ID. + Depending on your use case, you may need to pass this to platform APIs, for example, when creating an android.graphics.SurfaceTexture on Android. + + + + + Sets the external buffer ID. + Depending on your use case, you may need to call this with data received from a platform API, for example, SurfaceTexture.getHardwareBuffer() on Android. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_external_texture_id' method. + + + + + Cached name for the 'set_external_buffer_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The FBXDocument handles FBX documents. It provides methods to append data from buffers or files, generate scenes, and register/unregister document extensions. + When exporting FBX from Blender, use the "FBX Units Scale" option. The "FBX Units Scale" option sets the correct scale factor and avoids manual adjustments when re-importing into Blender, such as through glTF export. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The FBXState handles the state data imported from FBX files. + + + + + If , the import process used auxiliary nodes called geometry helper nodes. These nodes help preserve the pivots and transformations of the original 3D model during import. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'allow_geometry_helper_nodes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_allow_geometry_helper_nodes' method. + + + + + Cached name for the 'set_allow_geometry_helper_nodes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class generates noise using the FastNoiseLite library, which is a collection of several noise algorithms including Cellular, Perlin, Value, and more. + Most generated noise values are in the range of [-1, 1], but not always. Some of the cellular noise algorithms return results above 1. + + + + + A lattice of points are assigned random values then interpolated based on neighboring values. + + + + + 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. + + + + + A lattice of random gradients. Their dot products are interpolated to obtain values in between the lattices. + + + + + Cellular includes both Worley noise and Voronoi diagrams which creates various regions of the same value. + + + + + As opposed to , gradients exist in a simplex lattice rather than a grid lattice, avoiding directional artifacts. Internally uses FastNoiseLite's OpenSimplex2 noise type. + + + + + Modified, higher quality version of , but slower. Internally uses FastNoiseLite's OpenSimplex2S noise type. + + + + + No fractal noise. + + + + + Method using Fractional Brownian Motion to combine octaves into a fractal. + + + + + Method of combining octaves into a fractal resulting in a "ridged" look. + + + + + Method of combining octaves into a fractal with a ping pong effect. + + + + + Euclidean distance to the nearest point. + + + + + Squared Euclidean distance to the nearest point. + + + + + Manhattan distance (taxicab metric) to the nearest point. + + + + + Blend of and to give curved cell boundaries. + + + + + The cellular distance function will return the same value for all points within a cell. + + + + + The cellular distance function will return a value determined by the distance to the nearest point. + + + + + The cellular distance function returns the distance to the second-nearest point. + + + + + The distance to the nearest point is added to the distance to the second-nearest point. + + + + + The distance to the nearest point is subtracted from the distance to the second-nearest point. + + + + + The distance to the nearest point is multiplied with the distance to the second-nearest point. + + + + + The distance to the nearest point is divided by the distance to the second-nearest point. + + + + + The domain is warped using the simplex noise algorithm. + + + + + The domain is warped using a simplified version of the simplex noise algorithm. + + + + + The domain is warped using a simple noise grid (not as smooth as the other methods, but more performant). + + + + + No fractal noise for warping the space. + + + + + Warping the space progressively, octave for octave, resulting in a more "liquified" distortion. + + + + + Warping the space independently for each octave, resulting in a more chaotic distortion. + + + + + The noise algorithm used. See . + + + + + The random number seed for all noise types. + + + + + The frequency for all noise types. Low frequency results in smooth noise while high frequency results in rougher, more granular noise. + + + + + Translate the noise input coordinates by the given . + + + + + The method for combining octaves into a fractal. See . + + + + + The number of noise layers that are sampled to get the final value for fractal noise types. + + + + + Frequency multiplier between subsequent octaves. Increasing this value results in higher octaves producing noise with finer details and a rougher appearance. + + + + + Determines the strength of each subsequent layer of noise in fractal noise. + A low value places more emphasis on the lower frequency base layers, while a high value puts more emphasis on the higher frequency layers. + + + + + Higher weighting means higher octaves have less impact if lower octaves have a large impact. + + + + + Sets the strength of the fractal ping pong type. + + + + + Determines how the distance to the nearest/second-nearest point is computed. See for options. + + + + + Maximum distance a point can move off of its grid position. Set to 0 for an even grid. + + + + + Return type from cellular noise calculations. See . + + + + + If enabled, another FastNoiseLite instance is used to warp the space, resulting in a distortion of the noise. + + + + + Sets the warp algorithm. See . + + + + + Sets the maximum warp distance from the origin. + + + + + Frequency of the noise which warps the space. Low frequency results in smooth noise while high frequency results in rougher, more granular noise. + + + + + The method for combining octaves into a fractal which is used to warp the space. See . + + + + + The number of noise layers that are sampled to get the final value for the fractal noise which warps the space. + + + + + Octave lacunarity of the fractal noise which warps the space. Increasing this value results in higher octaves producing noise with finer details and a rougher appearance. + + + + + Determines the strength of each subsequent layer of the noise which is used to warp the space. + A low value places more emphasis on the lower frequency base layers, while a high value puts more emphasis on the higher frequency layers. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'noise_type' property. + + + + + Cached name for the 'seed' property. + + + + + Cached name for the 'frequency' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'fractal_type' property. + + + + + Cached name for the 'fractal_octaves' property. + + + + + Cached name for the 'fractal_lacunarity' property. + + + + + Cached name for the 'fractal_gain' property. + + + + + Cached name for the 'fractal_weighted_strength' property. + + + + + Cached name for the 'fractal_ping_pong_strength' property. + + + + + Cached name for the 'cellular_distance_function' property. + + + + + Cached name for the 'cellular_jitter' property. + + + + + Cached name for the 'cellular_return_type' property. + + + + + Cached name for the 'domain_warp_enabled' property. + + + + + Cached name for the 'domain_warp_type' property. + + + + + Cached name for the 'domain_warp_amplitude' property. + + + + + Cached name for the 'domain_warp_frequency' property. + + + + + Cached name for the 'domain_warp_fractal_type' property. + + + + + Cached name for the 'domain_warp_fractal_octaves' property. + + + + + Cached name for the 'domain_warp_fractal_lacunarity' property. + + + + + Cached name for the 'domain_warp_fractal_gain' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_noise_type' method. + + + + + Cached name for the 'get_noise_type' method. + + + + + Cached name for the 'set_seed' method. + + + + + Cached name for the 'get_seed' method. + + + + + Cached name for the 'set_frequency' method. + + + + + Cached name for the 'get_frequency' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_fractal_type' method. + + + + + Cached name for the 'get_fractal_type' method. + + + + + Cached name for the 'set_fractal_octaves' method. + + + + + Cached name for the 'get_fractal_octaves' method. + + + + + Cached name for the 'set_fractal_lacunarity' method. + + + + + Cached name for the 'get_fractal_lacunarity' method. + + + + + Cached name for the 'set_fractal_gain' method. + + + + + Cached name for the 'get_fractal_gain' method. + + + + + Cached name for the 'set_fractal_weighted_strength' method. + + + + + Cached name for the 'get_fractal_weighted_strength' method. + + + + + Cached name for the 'set_fractal_ping_pong_strength' method. + + + + + Cached name for the 'get_fractal_ping_pong_strength' method. + + + + + Cached name for the 'set_cellular_distance_function' method. + + + + + Cached name for the 'get_cellular_distance_function' method. + + + + + Cached name for the 'set_cellular_jitter' method. + + + + + Cached name for the 'get_cellular_jitter' method. + + + + + Cached name for the 'set_cellular_return_type' method. + + + + + Cached name for the 'get_cellular_return_type' method. + + + + + Cached name for the 'set_domain_warp_enabled' method. + + + + + Cached name for the 'is_domain_warp_enabled' method. + + + + + Cached name for the 'set_domain_warp_type' method. + + + + + Cached name for the 'get_domain_warp_type' method. + + + + + Cached name for the 'set_domain_warp_amplitude' method. + + + + + Cached name for the 'get_domain_warp_amplitude' method. + + + + + Cached name for the 'set_domain_warp_frequency' method. + + + + + Cached name for the 'get_domain_warp_frequency' method. + + + + + Cached name for the 'set_domain_warp_fractal_type' method. + + + + + Cached name for the 'get_domain_warp_fractal_type' method. + + + + + Cached name for the 'set_domain_warp_fractal_octaves' method. + + + + + Cached name for the 'get_domain_warp_fractal_octaves' method. + + + + + Cached name for the 'set_domain_warp_fractal_lacunarity' method. + + + + + Cached name for the 'get_domain_warp_fractal_lacunarity' method. + + + + + Cached name for the 'set_domain_warp_fractal_gain' method. + + + + + Cached name for the 'get_domain_warp_fractal_gain' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 storing game save data or player configuration files. + Here's a sample on how to write and read from a file: + + public void SaveToFile(string content) + { + using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Write); + file.StoreString(content); + } + + public string LoadFromFile() + { + using var file = FileAccess.Open("user://save_game.dat", FileAccess.ModeFlags.Read); + string content = file.GetAsText(); + return content; + } + + In the example above, the file will be saved in the user data folder as specified in the Data paths documentation. + will close when it's freed, which happens when it goes out of scope or when it gets assigned with . can be used to close it before then explicitly. In C# the reference must be disposed manually, which can be done with the using statement or by calling the Dispose method directly. + Note: To access project resources once exported, it is recommended to use instead of , as some files are converted to engine-specific formats and their original source files might not be present in the exported PCK package. If using , make sure the file is included in the export by changing its import mode to Keep File (exported as is) in the Import dock, or, for files where this option is not available, change the non-resource export filter in the Export dialog to include the file's extension (e.g. *.txt). + Note: Files are automatically closed only if the process exits "normally" (such as by clicking the window manager's close button or pressing Alt + F4). If you stop the project execution by pressing F8 while the project is running, the file won't be closed as the game process will be killed. You can work around this by calling at regular intervals. + + + + + Opens the file for read operations. The cursor is positioned at the beginning of the file. + + + + + Opens the file for write operations. The file is created if it does not exist, and truncated if it does. + Note: When creating a file it must be in an already existing directory. To recursively create directories for a file path, see . + + + + + Opens the file for read and write operations. Does not truncate the file. The cursor is positioned at the beginning of the file. + + + + + 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. + Note: When creating a file it must be in an already existing directory. To recursively create directories for a file path, see . + + + + + Uses the FastLZ compression method. + + + + + Uses the DEFLATE compression method. + + + + + Uses the Zstandard compression method. + + + + + Uses the gzip compression method. + + + + + Uses the brotli compression method (only decompression is supported). + + + + + Read for owner bit. + + + + + Write for owner bit. + + + + + Execute for owner bit. + + + + + Read for group bit. + + + + + Write for group bit. + + + + + Execute for group bit. + + + + + Read for other bit. + + + + + Write for other bit. + + + + + Execute for other bit. + + + + + Set user id on execution bit. + + + + + Set group id on execution bit. + + + + + Restricted deletion (sticky) bit. + + + + + If , the file is read with big-endian endianness. If , the file is read with little-endian endianness. If in doubt, leave this to as most files are written with little-endian endianness. + Note: is only about the file format, not the CPU type. The CPU endianness doesn't affect the default endianness for files written. + Note: This is always reset to whenever you open the file. Therefore, you must set after opening the file, not before. + + + + + Creates a new object and opens the file for writing or reading, depending on the flags. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a password to encrypt/decrypt it. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens a compressed file for reading or writing. + Note: can only read files that were saved by Godot, not third-party compression formats. See GitHub issue #28999 for a workaround. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Returns the result of the last call in the current thread. + + + + + Creates a temporary file. This file will be freed when the returned is freed. + If is not empty, it will be prefixed to the file name, separated by a -. + If is not empty, it will be appended to the temporary file name. + If is , the file is not deleted when the returned is freed. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Returns the whole file contents as a [] without any decoding. + Returns an empty [] if an error occurred while opening the file. You can use to check the error that occurred. + + + + + Returns the whole file contents as a . Text is interpreted as being UTF-8 encoded. + Returns an empty if an error occurred while opening the file. You can use to check the error that occurred. + + + + + Resizes the file to a specified length. The file must be open in a mode that permits writing. If the file is extended, NUL characters are appended. If the file is truncated, all data from the end file to the original length of the file is lost. + + + + + Writes the file's buffer to disk. Flushing is automatically performed when the file is closed. This means you don't need to call manually before closing a file. Still, calling can be used to ensure the data is safe even if the project crashes instead of being closed gracefully. + Note: Only call when you actually need it. Otherwise, it will decrease performance due to constant disk writes. + + + + + Returns the path as a for the current open file. + + + + + Returns the absolute path as a for the current open file. + + + + + Returns if the file is currently opened. + + + + + Changes the file reading/writing cursor to the specified position (in bytes from the beginning of the file). + + + + + Changes the file reading/writing cursor to the specified position (in bytes from the end of the file). + Note: This is an offset, so you should use negative numbers or the cursor will be at the end of the file. + + + + + Returns the file cursor's position. + + + + + Returns the size of the file in bytes. + + + + + Returns if the file cursor has already read past the end of the file. + Note: eof_reached() == false cannot be used to check whether there is more data available. To loop while there is more data available, use: + + while (file.GetPosition() < file.GetLength()) + { + // Read data + } + + + + + + Returns the next 8 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 16 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 32 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 64 bits from the file as an integer. See for details on what values can be stored and retrieved this way. + + + + + Returns the next 16 bits from the file as a half-precision floating-point number. + + + + + Returns the next 32 bits from the file as a floating-point number. + + + + + Returns the next 64 bits from the file as a floating-point number. + + + + + Returns the next bits from the file as a floating-point number. + + + + + Returns next bytes of the file as a []. + + + + + Returns the next line of the file as a . The returned string doesn't include newline (\n) or carriage return (\r) characters, but does include any other leading or trailing whitespace. + Text is interpreted as being UTF-8 encoded. + + + + + Returns the next value of the file in CSV (Comma-Separated Values) format. You can pass a different delimiter to use other than the default "," (comma). This delimiter must be one-character long, and cannot be a double quotation mark. + Text is interpreted as being UTF-8 encoded. Text values must be enclosed in double quotes if they include the delimiter character. Double quotes within a text value can be escaped by doubling their occurrence. + For example, the following CSV lines are valid and will be properly parsed as two strings each: + + Alice,"Hello, Bob!" + Bob,Alice! What a surprise! + Alice,"I thought you'd reply with ""Hello, world""." + + Note how the second line can omit the enclosing quotes as it does not include the delimiter. However it could very well use quotes, it was only written without for demonstration purposes. The third line must use "" for each quotation mark that needs to be interpreted as such instead of the end of a text value. + + + + + Returns the whole file as a . Text is interpreted as being UTF-8 encoded. + If is , carriage return characters (\r, CR) will be ignored when parsing the UTF-8, so that only line feed characters (\n, LF) represent a new line (Unix convention). + + + + + Returns an MD5 String representing the file at the given path or an empty on failure. + + + + + Returns an SHA-256 representing the file at the given path or an empty on failure. + + + + + Returns the last error that happened when trying to perform operations. Compare with the ERR_FILE_* constants from . + + + + + Returns the next value from the file. If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Stores an integer as 8 bits in the file. + Note: The should lie in the interval [0, 255]. Any other value will overflow and wrap around. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + To store a signed integer, use , or convert it manually (see for an example). + + + + + Stores an integer as 16 bits in the file. + Note: The should lie in the interval [0, 2^16 - 1]. Any other value will overflow and wrap around. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + To store a signed integer, use or store a signed integer from the interval [-2^15, 2^15 - 1] (i.e. keeping one bit for the signedness) and compute its sign manually when reading. For example: + + public override void _Ready() + { + using var f = FileAccess.Open("user://file.dat", FileAccess.ModeFlags.WriteRead); + f.Store16(unchecked((ushort)-42)); // This wraps around and stores 65494 (2^16 - 42). + f.Store16(121); // In bounds, will store 121. + f.Seek(0); // Go back to start to read the stored value. + ushort read1 = f.Get16(); // 65494 + ushort read2 = f.Get16(); // 121 + short converted1 = (short)read1; // -42 + short converted2 = (short)read2; // 121 + } + + + + + + Stores an integer as 32 bits in the file. + Note: The should lie in the interval [0, 2^32 - 1]. Any other value will overflow and wrap around. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + To store a signed integer, use , or convert it manually (see for an example). + + + + + Stores an integer as 64 bits in the file. + Note: The must lie in the interval [-2^63, 2^63 - 1] (i.e. be a valid value). + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores a half-precision floating-point number as 16 bits in the file. + + + + + Stores a floating-point number as 32 bits in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores a floating-point number as 64 bits in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores a floating-point number in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores the given array of bytes in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores the given array of bytes in the file. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores in the file followed by a newline character (\n), encoding the text as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Store the given [] in the file as a line formatted in the CSV (Comma-Separated Values) format. You can pass a different delimiter to use other than the default "," (comma). This delimiter must be one-character long. + Text will be encoded as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Store the given [] in the file as a line formatted in the CSV (Comma-Separated Values) format. You can pass a different delimiter to use other than the default "," (comma). This delimiter must be one-character long. + Text will be encoded as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores in the file without a newline character (\n), encoding the text as UTF-8. + Note: This method is intended to be used to write text files. The string is stored as a UTF-8 encoded buffer without string length or terminating zero, which means that it can't be loaded back easily. If you want to store a retrievable string in a binary file, consider using instead. For retrieving strings from a text file, you can use get_buffer(length).get_string_from_utf8() (if you know the length) or . + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores any Variant value in the file. If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + Note: Not all properties are included. Only properties that are configured with the flag set will be serialized. You can add a new usage flag to a property by overriding the method in your class. You can also check how property usage is configured by calling . See for the possible usage flags. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Stores the given as a line in the file in Pascal format (i.e. also store the length of the string). + Text will be encoded as UTF-8. + Note: If an error occurs, the resulting value of the file position indicator is indeterminate. + + + + + Returns a saved in Pascal format from the file. + Text is interpreted as being UTF-8 encoded. + + + + + Closes the currently opened file and prevents subsequent read/write operations. Use to persist the data to disk without closing the file. + Note: will automatically close when it's freed, which happens when it goes out of scope or when it gets assigned with . In C# the reference must be disposed after we are done using it, this can be done with the using statement or calling the Dispose method directly. + + + + + Returns if the file exists in the given path. + Note: Many resources types are imported (e.g. textures or sound files), and their source asset will not be included in the exported game, as only the imported version is used. See for an alternative approach that takes resource remapping into account. + For a non-static, relative equivalent, use . + + + + + Returns the last time the was modified in Unix timestamp format, or 0 on error. This Unix timestamp can be converted to another format using the singleton. + + + + + Returns file UNIX permissions. + Note: This method is implemented on iOS, Linux/BSD, and macOS. + + + + + Sets file UNIX permissions. + Note: This method is implemented on iOS, Linux/BSD, and macOS. + + + + + Returns , if file hidden attribute is set. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Sets file hidden attribute. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Sets file read only attribute. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Returns , if file read only attribute is set. + Note: This method is implemented on iOS, BSD, macOS, and Windows. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Creates a new object and opens an encrypted file in write or read mode. You need to pass a binary key to encrypt/decrypt it. + Note: The provided key must be 32 bytes long. + Returns if opening the file failed. You can use to check the error that occurred. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'big_endian' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'open_encrypted' method. + + + + + Cached name for the 'open_encrypted_with_pass' method. + + + + + Cached name for the 'open_compressed' method. + + + + + Cached name for the 'get_open_error' method. + + + + + Cached name for the 'create_temp' method. + + + + + Cached name for the 'get_file_as_bytes' method. + + + + + Cached name for the 'get_file_as_string' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the 'flush' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'get_path_absolute' method. + + + + + Cached name for the 'is_open' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'seek_end' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'eof_reached' method. + + + + + Cached name for the 'get_8' method. + + + + + Cached name for the 'get_16' method. + + + + + Cached name for the 'get_32' method. + + + + + Cached name for the 'get_64' method. + + + + + Cached name for the 'get_half' method. + + + + + Cached name for the 'get_float' method. + + + + + Cached name for the 'get_double' method. + + + + + Cached name for the 'get_real' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'get_line' method. + + + + + Cached name for the 'get_csv_line' method. + + + + + Cached name for the 'get_as_text' method. + + + + + Cached name for the 'get_md5' method. + + + + + Cached name for the 'get_sha256' method. + + + + + Cached name for the 'is_big_endian' method. + + + + + Cached name for the 'set_big_endian' method. + + + + + Cached name for the 'get_error' method. + + + + + Cached name for the 'get_var' method. + + + + + Cached name for the 'store_8' method. + + + + + Cached name for the 'store_16' method. + + + + + Cached name for the 'store_32' method. + + + + + Cached name for the 'store_64' method. + + + + + Cached name for the 'store_half' method. + + + + + Cached name for the 'store_float' method. + + + + + Cached name for the 'store_double' method. + + + + + Cached name for the 'store_real' method. + + + + + Cached name for the 'store_buffer' method. + + + + + Cached name for the 'store_line' method. + + + + + Cached name for the 'store_csv_line' method. + + + + + Cached name for the 'store_string' method. + + + + + Cached name for the 'store_var' method. + + + + + Cached name for the 'store_pascal_string' method. + + + + + Cached name for the 'get_pascal_string' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'file_exists' method. + + + + + Cached name for the 'get_modified_time' method. + + + + + Cached name for the 'get_unix_permissions' method. + + + + + Cached name for the 'set_unix_permissions' method. + + + + + Cached name for the 'get_hidden_attribute' method. + + + + + Cached name for the 'set_hidden_attribute' method. + + + + + Cached name for the 'set_read_only_attribute' method. + + + + + Cached name for the 'get_read_only_attribute' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a preset dialog used to choose files and directories in the filesystem. It supports filter masks. automatically sets its window title according to the . If you want to use a custom title, disable this by setting to . + + + + + The dialog allows selecting one, and only one file. + + + + + The dialog allows selecting multiple files. + + + + + The dialog only allows selecting a directory, disallowing the selection of any file. + + + + + The dialog allows selecting one file or directory. + + + + + The dialog will warn when a file exists. + + + + + The dialog only allows accessing files under the path (res://). + + + + + The dialog only allows accessing files under user data path (user://). + + + + + The dialog allows accessing files on the whole file system. + + + + + If , changing the property will set the window title accordingly (e.g. setting to will change the window title to "Open a File"). + + + + + The dialog's open or save mode, which affects the selection behavior. See . + + + + + The file system access scope. See constants. + Warning: In Web builds, FileDialog cannot access the host file system. In sandboxed Linux and macOS environments, is automatically used to allow limited access to host file system. + + + + + If non-empty, the given sub-folder will be "root" of this , i.e. user won't be able to go to its parent directory. + Note: This property is ignored by native file dialogs. + + + + + The available file type filters. Each filter string in the array should be formatted like this: *.txt,*.doc;Text Files. The description text of the filter is optional and can be omitted. + Note: For android native dialog, MIME types are used like this: image/*, application/pdf. + + + + + The filter for file names (case-insensitive). When set to a non-empty string, only files that contains the substring will be shown. can be edited by the user with the filter button at the top of the file dialog. + See also , which should be used to restrict the file types that can be selected instead of which is meant to be set by the user. + + + + + The number of additional s and es in the dialog. + + + + + If , the dialog will show hidden files. + Note: This property is ignored by native file dialogs on Android and Linux. + + + + + If , and if supported by the current , OS native dialog will be used instead of custom one. + Note: On Android, it is only supported when using . For access mode and , the system will fall back to custom FileDialog. + Note: On Linux and macOS, sandboxed apps always use native dialogs to access the host file system. + Note: On macOS, sandboxed apps will save security-scoped bookmarks to retain access to the opened folders across multiple sessions. Use to get a list of saved bookmarks. + Note: Native dialogs are isolated from the base process, file dialog properties can't be modified once the dialog is shown. + + + + + The current working directory of the file dialog. + Note: For native file dialogs, this property is only treated as a hint and may not be respected by specific OS implementations. + + + + + The currently selected file of the file dialog. + + + + + The currently selected file path of the file dialog. + + + + + Clear all the added filters in the dialog. + + + + + Adds a comma-delimited file name option to the with an optional , which restricts what files can be picked. + A should be of the form "filename.extension", where filename and extension can be * to match any string. Filters starting with . (i.e. empty filenames) are not allowed. + For example, a of "*.png, *.jpg" and a of "Images" results in filter text "Images (*.png, *.jpg)". + + + + + Clear the filter for file names. + + + + + Returns the name of the or with index . + + + + + Returns an array of values of the with index . + + + + + Returns the default value index of the or with index . + + + + + Sets the name of the or with index . + + + + + Sets the option values of the with index . + + + + + Sets the option values of the with index . + + + + + Sets the default value index of the or with index . + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Returns a with the selected values of the additional s and/or es. keys are names and values are selected value indices. + + + + + Returns the vertical box container of the dialog, custom controls can be added to it. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + Note: Changes to this node are ignored by native file dialogs, use to add custom elements to the dialog instead. + + + + + Returns the LineEdit for the selected file. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Clear all currently selected items in the dialog. + + + + + Invalidate and update the current dialog content list. + Note: This method does nothing on native file dialogs. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user selects a file by double-clicking it or pressing the OK button. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user selects multiple files. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user selects a directory. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the filter for file names changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode_overrides_title' property. + + + + + Cached name for the 'file_mode' property. + + + + + Cached name for the 'access' property. + + + + + Cached name for the 'root_subfolder' property. + + + + + Cached name for the 'filters' property. + + + + + Cached name for the 'filename_filter' property. + + + + + Cached name for the 'option_count' property. + + + + + Cached name for the 'show_hidden_files' property. + + + + + Cached name for the 'use_native_dialog' property. + + + + + Cached name for the 'current_dir' property. + + + + + Cached name for the 'current_file' property. + + + + + Cached name for the 'current_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear_filters' method. + + + + + Cached name for the 'add_filter' method. + + + + + Cached name for the 'set_filters' method. + + + + + Cached name for the 'get_filters' method. + + + + + Cached name for the 'clear_filename_filter' method. + + + + + Cached name for the 'set_filename_filter' method. + + + + + Cached name for the 'get_filename_filter' method. + + + + + Cached name for the 'get_option_name' method. + + + + + Cached name for the 'get_option_values' method. + + + + + Cached name for the 'get_option_default' method. + + + + + Cached name for the 'set_option_name' method. + + + + + Cached name for the 'set_option_values' method. + + + + + Cached name for the 'set_option_default' method. + + + + + Cached name for the 'set_option_count' method. + + + + + Cached name for the 'get_option_count' method. + + + + + Cached name for the 'add_option' method. + + + + + Cached name for the 'get_selected_options' method. + + + + + Cached name for the 'get_current_dir' method. + + + + + Cached name for the 'get_current_file' method. + + + + + Cached name for the 'get_current_path' method. + + + + + Cached name for the 'set_current_dir' method. + + + + + Cached name for the 'set_current_file' method. + + + + + Cached name for the 'set_current_path' method. + + + + + Cached name for the 'set_mode_overrides_title' method. + + + + + Cached name for the 'is_mode_overriding_title' method. + + + + + Cached name for the 'set_file_mode' method. + + + + + Cached name for the 'get_file_mode' method. + + + + + Cached name for the 'get_vbox' method. + + + + + Cached name for the 'get_line_edit' method. + + + + + Cached name for the 'set_access' method. + + + + + Cached name for the 'get_access' method. + + + + + Cached name for the 'set_root_subfolder' method. + + + + + Cached name for the 'get_root_subfolder' method. + + + + + Cached name for the 'set_show_hidden_files' method. + + + + + Cached name for the 'is_showing_hidden_files' method. + + + + + Cached name for the 'set_use_native_dialog' method. + + + + + Cached name for the 'get_use_native_dialog' method. + + + + + Cached name for the 'deselect_all' method. + + + + + Cached name for the 'invalidate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'file_selected' signal. + + + + + Cached name for the 'files_selected' signal. + + + + + Cached name for the 'dir_selected' signal. + + + + + Cached name for the 'filename_filter_changed' signal. + + + + + 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. + + + + + 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). + + + + + The child controls will be centered in the container. + + + + + 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). + + + + + The last partially filled row or column will wrap aligned to the previous row or column in accordance with . + + + + + The last partially filled row or column will wrap aligned to the beginning of the previous row or column. + + + + + The last partially filled row or column will wrap aligned to the center of the previous row or column. + + + + + The last partially filled row or column will wrap aligned to the end of the previous row or column. + + + + + The alignment of the container's children (must be one of , , or ). + + + + + The wrap behavior of the last, partially filled row or column (must be one of , , , or ). + + + + + If , the will arrange its children vertically, rather than horizontally. + Can't be changed when using and . + + + + + If , reverses fill direction. Horizontal s will fill rows bottom to top, vertical s will fill columns right to left. + When using a vertical with a right to left , columns will fill left to right instead. + + + + + Returns the current line count. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'last_wrap_alignment' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached name for the 'reverse_fill' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'set_alignment' method. + + + + + Cached name for the 'get_alignment' method. + + + + + Cached name for the 'set_last_wrap_alignment' method. + + + + + Cached name for the 'get_last_wrap_alignment' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached name for the 'set_reverse_fill' method. + + + + + Cached name for the 'is_reverse_fill' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource that can be used by s to draw volumetric effects. + If you need more advanced effects, use a custom fog shader. + + + + + The density of the . Denser objects are more opaque, but may suffer from under-sampling artifacts that look like stripes. Negative values can be used to subtract fog from other s or global volumetric fog. + Note: Due to limited precision, values between -0.001 and 0.001 (exclusive) act like 0.0. This does not apply to . + + + + + The single-scattering of the . Internally, is converted into single-scattering, which is additively blended with other s and the . + + + + + The of the light emitted by the . Emitted light will not cast light or shadows on other objects, but can be useful for modulating the of the independently from light sources. + + + + + The rate by which the height-based fog decreases in density as height increases in world space. A high falloff will result in a sharp transition, while a low falloff will result in a smoother transition. A value of 0.0 results in uniform-density fog. The height threshold is determined by the height of the associated . + + + + + The hardness of the edges of the . A higher value will result in softer edges, while a lower value will result in harder edges. + + + + + The 3D texture that is used to scale the of the . This can be used to vary fog density within the with any kind of static pattern. For animated effects, consider using a custom fog shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'density' property. + + + + + Cached name for the 'albedo' property. + + + + + Cached name for the 'emission' property. + + + + + Cached name for the 'height_falloff' property. + + + + + Cached name for the 'edge_fade' property. + + + + + Cached name for the 'density_texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_density' method. + + + + + Cached name for the 'get_density' method. + + + + + Cached name for the 'set_albedo' method. + + + + + Cached name for the 'get_albedo' method. + + + + + Cached name for the 'set_emission' method. + + + + + Cached name for the 'get_emission' method. + + + + + Cached name for the 'set_height_falloff' method. + + + + + Cached name for the 'get_height_falloff' method. + + + + + Cached name for the 'set_edge_fade' method. + + + + + Cached name for the 'get_edge_fade' method. + + + + + Cached name for the 'set_density_texture' method. + + + + + Cached name for the 'get_density_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + s are used to add localized fog into the global volumetric fog effect. s can also remove volumetric fog from specific areas if using a with a negative . + Performance of s is directly related to their relative size on the screen and the complexity of their attached . It is best to keep s relatively small and simple where possible. + Note: s only have a visible effect if is . If you don't want fog to be globally visible (but only within nodes), set to 0.0. + + + + + The size of the when is , , or . + Note: Thin fog volumes may appear to flicker when the camera moves or rotates. This can be alleviated by increasing ProjectSettings.rendering/environment/volumetric_fog/volume_depth (at a performance cost) or by decreasing (at no performance cost, but at the cost of lower fog range). Alternatively, the can be made thicker and use a lower density in the . + Note: If is or , the cone/cylinder will be adjusted to fit within the size. Non-uniform scaling of cone/cylinder shapes via the property is not supported, but you can scale the node instead. + + + + + The shape of the . This can be set to either , , , or . + + + + + The used by the . Can be either a built-in or a custom . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for different font types. It has methods for drawing text and font character introspection. + + + + + Array of fallback s to use as a substitute if a glyph is not found in this current . + If this array is empty in a , the 's fallbacks are used instead. + + + + + Returns RID of the font cache for specific variation. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Returns of valid s, which can be passed to the methods. + + + + + Returns the total average font height (ascent plus descent) in pixels. + Note: Real height of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the height of empty line). + + + + + Returns the average font ascent (number of pixels above the baseline). + Note: Real ascent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the ascent of empty line). + + + + + Returns the average font descent (number of pixels below the baseline). + Note: Real descent of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate (e.g. as the descent of empty line). + + + + + Returns average pixel offset of the underline below the baseline. + Note: Real underline position of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate. + + + + + Returns average thickness of the underline. + Note: Real underline thickness of the string is context-dependent and can be significantly different from the value returned by this function. Use it only as rough estimate. + + + + + Returns font family name. + + + + + Returns font style name. + + + + + Returns with OpenType font name strings (localized font names, version, description, license information, sample text, etc.). + + + + + Returns font style flags, see . + + + + + Returns weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Returns font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Returns the spacing for the given type (see ). + + + + + Returns a set of OpenType feature tags. More info: OpenType feature tags. + + + + + Sets LRU cache capacity for draw_* methods. + + + + + Returns the size of a bounding box of a single-line string, taking kerning, advance and subpixel positioning into account. See also and . + For example, to get the string size as displayed by a single-line Label, use: + + Label label = GetNode<Label>("Label"); + Vector2 stringSize = label.GetThemeFont("font").GetStringSize(label.Text, HorizontalAlignment.Left, -1, label.GetThemeFontSize("font_size")); + + Note: Since kerning, advance and subpixel positioning are taken into account by , using separate calls on substrings of a string then adding the results together will return a different result compared to using a single call on the full string. + Note: Real height of the string is context-dependent and can be significantly different from the value returned by . + + + + + Returns the size of a bounding box of a string broken into the lines, taking kerning and advance into account. + See also . + + + + + Draw into a canvas item using the font, at a given position, with color, optionally clipping the width and aligning horizontally. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks into lines using rules specified by and draws it into a canvas item using the font, at a given position, with color, optionally clipping the width and aligning horizontally. specifies the baseline of the first line, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw outline into a canvas item using the font, at a given position, with color and outline size, optionally clipping the width and aligning horizontally. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Breaks to the lines using rules specified by and draws text outline into a canvas item using the font, at a given position, with color and outline size, optionally clipping the width and aligning horizontally. specifies the baseline of the first line, not the top. To draw from the top, ascent must be added to the Y axis. + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns the size of a character. Does not take kerning into account. + Note: Do not use this function to calculate width of the string character by character, use or instead. The height returned is the font height (see also ) and has no relation to the glyph height. + + + + + Draw a single Unicode character into a canvas item using the font, at a given position, with color. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + Note: Do not use this function to draw strings character by character, use or instead. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw a single Unicode character outline into a canvas item using the font, at a given position, with color and outline size. specifies the baseline, not the top. To draw from the top, ascent must be added to the Y axis. + Note: Do not use this function to draw strings character by character, use or instead. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns if a Unicode is available in the font. + + + + + Returns a string containing all the characters available in the font. + If a given character is included in more than one font data source, it appears only once in the returned string. + + + + + Returns , if font supports given language (ISO 639 code). + + + + + Returns , if font supports given script (ISO 15924 code). + + + + + Returns list of OpenType features supported by font. + + + + + Returns list of supported variation coordinates, each coordinate is returned as tag: Vector3i(min_value,max_value,default_value). + Font variations allow for continuous change of glyph characteristics along some given design axis, such as weight, width or slant. + To print available variation axes of a variable font: + + var fv = FontVariation.new() + fv.base_font = load("res://RobotoFlex.ttf") + var variation_list = fv.get_supported_variation_list() + for tag in variation_list: + var name = TextServerManager.get_primary_interface().tag_to_name(tag) + var values = variation_list[tag] + print("variation axis: %s (%d)\n\tmin, max, default: %s" % [name, tag, values]) + + Note: To set and get variation coordinates of a , use . + + + + + Returns number of faces in the TrueType / OpenType collection. + + + + + Returns RID of the font cache for specific variation. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Returns RID of the font cache for specific variation. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fallbacks' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fallbacks' method. + + + + + Cached name for the 'get_fallbacks' method. + + + + + Cached name for the 'find_variation' method. + + + + + Cached name for the 'get_rids' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_ascent' method. + + + + + Cached name for the 'get_descent' method. + + + + + Cached name for the 'get_underline_position' method. + + + + + Cached name for the 'get_underline_thickness' method. + + + + + Cached name for the 'get_font_name' method. + + + + + Cached name for the 'get_font_style_name' method. + + + + + Cached name for the 'get_ot_name_strings' method. + + + + + Cached name for the 'get_font_style' method. + + + + + Cached name for the 'get_font_weight' method. + + + + + Cached name for the 'get_font_stretch' method. + + + + + Cached name for the 'get_spacing' method. + + + + + Cached name for the 'get_opentype_features' method. + + + + + Cached name for the 'set_cache_capacity' method. + + + + + Cached name for the 'get_string_size' method. + + + + + Cached name for the 'get_multiline_string_size' method. + + + + + Cached name for the 'draw_string' method. + + + + + Cached name for the 'draw_multiline_string' method. + + + + + Cached name for the 'draw_string_outline' method. + + + + + Cached name for the 'draw_multiline_string_outline' method. + + + + + Cached name for the 'get_char_size' method. + + + + + Cached name for the 'draw_char' method. + + + + + Cached name for the 'draw_char_outline' method. + + + + + Cached name for the 'has_char' method. + + + + + Cached name for the 'get_supported_chars' method. + + + + + Cached name for the 'is_language_supported' method. + + + + + Cached name for the 'is_script_supported' method. + + + + + Cached name for the 'get_supported_feature_list' method. + + + + + Cached name for the 'get_supported_variation_list' method. + + + + + Cached name for the 'get_face_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 s to use. + Use to access specific OpenType variation of the font, create simulated bold / slanted version, and draw lines of text. + For more complex text processing, use in conjunction with or . + Supported font formats: + - Dynamic font importer: TrueType (.ttf), TrueType collection (.ttc), OpenType (.otf), OpenType collection (.otc), WOFF (.woff), WOFF2 (.woff2), Type 1 (.pfb, .pfm). + - Bitmap font importer: AngelCode BMFont (.fnt, .font), text and binary (version 3) format variants. + - Monospace image font importer: All supported image formats. + Note: A character is a symbol that represents an item (letter, digit etc.) in an abstract way. + Note: A glyph is a bitmap or a shape used to draw one or more characters in a context-dependent manner. Glyph indices are bound to the specific font data source. + Note: If none of the font data sources contain glyphs for a character used in a string, the character in question will be replaced with a box displaying its hexadecimal code. + + var f = ResourceLoader.Load<FontFile>("res://BarlowCondensed-Bold.ttf"); + GetNode("Label").AddThemeFontOverride("font", f); + GetNode("Label").AddThemeFontSizeOverride("font_size", 64); + + + + + + Contents of the dynamic font source file. + + + + + If set to , generate mipmaps for the font textures. + + + + + If set to , embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). + + + + + Font anti-aliasing mode. + + + + + Font family name. + + + + + Font style name. + + + + + Font style flags, see . + + + + + Weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of higher memory usage and lower font rasterization speed. Use to automatically enable it based on the font size. + + + + + If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + If set to , glyphs of all sizes are rendered using single multichannel signed distance field (MSDF) generated from the dynamic font vector data. Since this approach does not rely on rasterizing the font every time its size changes, this allows for resizing the font in real-time without any performance penalty. Text will also not look grainy for s that are scaled down (or for s viewed from a long distance). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + Note: If using font outlines, must be set to at least twice the size of the largest font outline. + Note: MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts. + + + + + The width of the range around the shape between the minimum and maximum representable signed distance. If using font outlines, must be set to at least twice the size of the largest font outline. The default value of 16 allows outline sizes up to 8 to look correct. + + + + + Source font size used to generate MSDF textures. Higher values allow for more precision, but are slower to render and require more memory. Only increase this value if you notice a visible lack of precision in glyph rendering. + + + + + If set to , system fonts can be automatically used as fallbacks. + + + + + If set to , auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only (MSDF fonts don't support hinting). + + + + + Font hinting mode. Used by dynamic fonts only. + + + + + Font oversampling factor. If set to 0.0, the global oversampling factor is used instead. Used by dynamic fonts only (MSDF fonts ignore oversampling). + + + + + Font size, used only for the bitmap fonts. + + + + + Scaling mode, used only for the bitmap fonts with greater than zero. + + + + + Font OpenType feature set override. + + + + + Loads an AngelCode BMFont (.fnt, .font) bitmap font from file . + Warning: This method should only be used in the editor or in cases when you need to load external fonts at run-time, such as fonts located at the user:// directory. + + + + + Loads a TrueType (.ttf), OpenType (.otf), WOFF (.woff), WOFF2 (.woff2) or Type 1 (.pfb, .pfm) dynamic font from file . + Warning: This method should only be used in the editor or in cases when you need to load external fonts at run-time, such as fonts located at the user:// directory. + + + + + Returns number of the font cache entries. + + + + + Removes all font cache entries. + + + + + Removes specified font cache entry. + + + + + Returns list of the font sizes in the cache. Each size is with font size and outline size. + + + + + Removes all font sizes from the cache entry. + + + + + Removes specified font size from the cache entry. + + + + + Sets variation coordinates for the specified font cache entry. See for more info. + + + + + Returns variation coordinates for the specified font cache entry. See for more info. + + + + + Sets embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Returns embolden strength, if is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Sets 2D transform, applied to the font outlines, can be used for slanting, flipping, and rotating glyphs. + + + + + Returns 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs. + + + + + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Returns spacing for (see ) in pixels (not relative to the font size). + + + + + Sets extra baseline offset (as a fraction of font height). + + + + + Returns extra baseline offset (as a fraction of font height). + + + + + Sets an active face index in the TrueType / OpenType collection. + + + + + Returns an active face index in the TrueType / OpenType collection. + + + + + Sets the font ascent (number of pixels above the baseline). + + + + + Returns the font ascent (number of pixels above the baseline). + + + + + Sets the font descent (number of pixels below the baseline). + + + + + Returns the font descent (number of pixels below the baseline). + + + + + Sets pixel offset of the underline below the baseline. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Sets thickness of the underline in pixels. + + + + + Returns thickness of the underline in pixels. + + + + + Sets scaling factor of the color bitmap font. + + + + + Returns scaling factor of the color bitmap font. + + + + + Returns number of textures used by font cache entry. + + + + + Removes all textures from font cache entry. + Note: This function will not remove glyphs associated with the texture, use to remove them manually. + + + + + Removes specified texture from the cache entry. + Note: This function will not remove glyphs associated with the texture. Remove them manually using . + + + + + Sets font cache texture image. + + + + + Returns a copy of the font cache texture image. + + + + + Sets array containing glyph packing data. + + + + + Sets array containing glyph packing data. + + + + + Returns a copy of the array containing glyph packing data. + + + + + Returns list of rendered glyphs in the cache entry. + + + + + Removes all rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Removes specified rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Sets glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Returns glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Sets glyph offset from the baseline. + + + + + Returns glyph offset from the baseline. + + + + + Sets glyph size. + + + + + Returns glyph size. + + + + + Sets rectangle in the cache texture containing the glyph. + + + + + Returns rectangle in the cache texture containing the glyph. + + + + + Sets index of the cache texture containing the glyph. + + + + + Returns index of the cache texture containing the glyph. + + + + + Returns list of the kerning overrides. + + + + + Removes all kerning overrides. + + + + + Removes kerning override for the pair of glyphs. + + + + + Sets kerning for the pair of glyphs. + + + + + Returns kerning for the pair of glyphs. + + + + + Renders the range of characters to the font cache texture. + + + + + Renders specified glyph to the font cache texture. + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Remove language support override. + + + + + Returns list of language support overrides. + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Removes script support override. + + + + + Returns list of script support overrides. + + + + + Returns the glyph index of a , optionally modified by the . + + + + + Returns character code associated with , or 0 if is invalid. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached name for the 'generate_mipmaps' property. + + + + + Cached name for the 'disable_embedded_bitmaps' property. + + + + + Cached name for the 'antialiasing' property. + + + + + Cached name for the 'font_name' property. + + + + + Cached name for the 'style_name' property. + + + + + Cached name for the 'font_style' property. + + + + + Cached name for the 'font_weight' property. + + + + + Cached name for the 'font_stretch' property. + + + + + Cached name for the 'subpixel_positioning' property. + + + + + Cached name for the 'keep_rounding_remainders' property. + + + + + Cached name for the 'multichannel_signed_distance_field' property. + + + + + Cached name for the 'msdf_pixel_range' property. + + + + + Cached name for the 'msdf_size' property. + + + + + Cached name for the 'allow_system_fallback' property. + + + + + Cached name for the 'force_autohinter' property. + + + + + Cached name for the 'hinting' property. + + + + + Cached name for the 'oversampling' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'fixed_size_scale_mode' property. + + + + + Cached name for the 'opentype_feature_overrides' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_bitmap_font' method. + + + + + Cached name for the 'load_dynamic_font' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_font_name' method. + + + + + Cached name for the 'set_font_style_name' method. + + + + + Cached name for the 'set_font_style' method. + + + + + Cached name for the 'set_font_weight' method. + + + + + Cached name for the 'set_font_stretch' method. + + + + + Cached name for the 'set_antialiasing' method. + + + + + Cached name for the 'get_antialiasing' method. + + + + + Cached name for the 'set_disable_embedded_bitmaps' method. + + + + + Cached name for the 'get_disable_embedded_bitmaps' method. + + + + + Cached name for the 'set_generate_mipmaps' method. + + + + + Cached name for the 'get_generate_mipmaps' method. + + + + + Cached name for the 'set_multichannel_signed_distance_field' method. + + + + + Cached name for the 'is_multichannel_signed_distance_field' method. + + + + + Cached name for the 'set_msdf_pixel_range' method. + + + + + Cached name for the 'get_msdf_pixel_range' method. + + + + + Cached name for the 'set_msdf_size' method. + + + + + Cached name for the 'get_msdf_size' method. + + + + + Cached name for the 'set_fixed_size' method. + + + + + Cached name for the 'get_fixed_size' method. + + + + + Cached name for the 'set_fixed_size_scale_mode' method. + + + + + Cached name for the 'get_fixed_size_scale_mode' method. + + + + + Cached name for the 'set_allow_system_fallback' method. + + + + + Cached name for the 'is_allow_system_fallback' method. + + + + + Cached name for the 'set_force_autohinter' method. + + + + + Cached name for the 'is_force_autohinter' method. + + + + + Cached name for the 'set_hinting' method. + + + + + Cached name for the 'get_hinting' method. + + + + + Cached name for the 'set_subpixel_positioning' method. + + + + + Cached name for the 'get_subpixel_positioning' method. + + + + + Cached name for the 'set_keep_rounding_remainders' method. + + + + + Cached name for the 'get_keep_rounding_remainders' method. + + + + + Cached name for the 'set_oversampling' method. + + + + + Cached name for the 'get_oversampling' method. + + + + + Cached name for the 'get_cache_count' method. + + + + + Cached name for the 'clear_cache' method. + + + + + Cached name for the 'remove_cache' method. + + + + + Cached name for the 'get_size_cache_list' method. + + + + + Cached name for the 'clear_size_cache' method. + + + + + Cached name for the 'remove_size_cache' method. + + + + + Cached name for the 'set_variation_coordinates' method. + + + + + Cached name for the 'get_variation_coordinates' method. + + + + + Cached name for the 'set_embolden' method. + + + + + Cached name for the 'get_embolden' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_extra_spacing' method. + + + + + Cached name for the 'get_extra_spacing' method. + + + + + Cached name for the 'set_extra_baseline_offset' method. + + + + + Cached name for the 'get_extra_baseline_offset' method. + + + + + Cached name for the 'set_face_index' method. + + + + + Cached name for the 'get_face_index' method. + + + + + Cached name for the 'set_cache_ascent' method. + + + + + Cached name for the 'get_cache_ascent' method. + + + + + Cached name for the 'set_cache_descent' method. + + + + + Cached name for the 'get_cache_descent' method. + + + + + Cached name for the 'set_cache_underline_position' method. + + + + + Cached name for the 'get_cache_underline_position' method. + + + + + Cached name for the 'set_cache_underline_thickness' method. + + + + + Cached name for the 'get_cache_underline_thickness' method. + + + + + Cached name for the 'set_cache_scale' method. + + + + + Cached name for the 'get_cache_scale' method. + + + + + Cached name for the 'get_texture_count' method. + + + + + Cached name for the 'clear_textures' method. + + + + + Cached name for the 'remove_texture' method. + + + + + Cached name for the 'set_texture_image' method. + + + + + Cached name for the 'get_texture_image' method. + + + + + Cached name for the 'set_texture_offsets' method. + + + + + Cached name for the 'get_texture_offsets' method. + + + + + Cached name for the 'get_glyph_list' method. + + + + + Cached name for the 'clear_glyphs' method. + + + + + Cached name for the 'remove_glyph' method. + + + + + Cached name for the 'set_glyph_advance' method. + + + + + Cached name for the 'get_glyph_advance' method. + + + + + Cached name for the 'set_glyph_offset' method. + + + + + Cached name for the 'get_glyph_offset' method. + + + + + Cached name for the 'set_glyph_size' method. + + + + + Cached name for the 'get_glyph_size' method. + + + + + Cached name for the 'set_glyph_uv_rect' method. + + + + + Cached name for the 'get_glyph_uv_rect' method. + + + + + Cached name for the 'set_glyph_texture_idx' method. + + + + + Cached name for the 'get_glyph_texture_idx' method. + + + + + Cached name for the 'get_kerning_list' method. + + + + + Cached name for the 'clear_kerning_map' method. + + + + + Cached name for the 'remove_kerning' method. + + + + + Cached name for the 'set_kerning' method. + + + + + Cached name for the 'get_kerning' method. + + + + + Cached name for the 'render_range' method. + + + + + Cached name for the 'render_glyph' method. + + + + + Cached name for the 'set_language_support_override' method. + + + + + Cached name for the 'get_language_support_override' method. + + + + + Cached name for the 'remove_language_support_override' method. + + + + + Cached name for the 'get_language_support_overrides' method. + + + + + Cached name for the 'set_script_support_override' method. + + + + + Cached name for the 'get_script_support_override' method. + + + + + Cached name for the 'remove_script_support_override' method. + + + + + Cached name for the 'get_script_support_overrides' method. + + + + + Cached name for the 'set_opentype_feature_overrides' method. + + + + + Cached name for the 'get_opentype_feature_overrides' method. + + + + + Cached name for the 'get_glyph_index' method. + + + + + Cached name for the 'get_char_from_glyph_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides OpenType variations, simulated bold / slant, and additional font settings like OpenType features and extra spacing. + To use simulated bold font variant: + + var fv = new FontVariation(); + fv.SetBaseFont(ResourceLoader.Load<FontFile>("res://BarlowCondensed-Regular.ttf")); + fv.SetVariationEmbolden(1.2); + GetNode("Label").AddThemeFontOverride("font", fv); + GetNode("Label").AddThemeFontSizeOverride("font_size", 64); + + To set the coordinate of multiple variation axes: + + var fv = FontVariation.new(); + var ts = TextServerManager.get_primary_interface() + fv.base_font = load("res://BarlowCondensed-Regular.ttf") + fv.variation_opentype = { ts.name_to_tag("wght"): 900, ts.name_to_tag("custom_hght"): 900 } + + + + + + Base font used to create a variation. If not set, default font is used. + + + + + Font OpenType variation coordinates. More info: OpenType variation tags. + Note: This uses OpenType tags as keys. Variation axes can be identified both by tags (, e.g. 0x77678674) and names (, e.g. wght). Some axes might be accessible by multiple names. For example, wght refers to the same axis as weight. Tags on the other hand are unique. To convert between names and tags, use and . + Note: To get available variation axes of a font, use . + + + + + Active face index in the TrueType / OpenType collection file. + + + + + If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + Note: Emboldened fonts might have self-intersecting outlines, which will prevent MSDF fonts and from working correctly. + + + + + 2D transform, applied to the font outlines, can be used for slanting, flipping and rotating glyphs. + For example, to simulate italic typeface by slanting, apply the following transform Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0). + + + + + A set of OpenType feature tags. More info: OpenType feature tags. + + + + + Extra spacing between graphical glyphs. + + + + + Extra width of the space glyphs. + + + + + Extra spacing at the top of the line in pixels. + + + + + Extra spacing at the bottom of the line in pixels. + + + + + Extra baseline offset (as a fraction of font height). + + + + + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'base_font' property. + + + + + Cached name for the 'variation_opentype' property. + + + + + Cached name for the 'variation_face_index' property. + + + + + Cached name for the 'variation_embolden' property. + + + + + Cached name for the 'variation_transform' property. + + + + + Cached name for the 'opentype_features' property. + + + + + Cached name for the 'spacing_glyph' property. + + + + + Cached name for the 'spacing_space' property. + + + + + Cached name for the 'spacing_top' property. + + + + + Cached name for the 'spacing_bottom' property. + + + + + Cached name for the 'baseline_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_base_font' method. + + + + + Cached name for the 'get_base_font' method. + + + + + Cached name for the 'set_variation_opentype' method. + + + + + Cached name for the 'get_variation_opentype' method. + + + + + Cached name for the 'set_variation_embolden' method. + + + + + Cached name for the 'get_variation_embolden' method. + + + + + Cached name for the 'set_variation_face_index' method. + + + + + Cached name for the 'get_variation_face_index' method. + + + + + Cached name for the 'set_variation_transform' method. + + + + + Cached name for the 'get_variation_transform' method. + + + + + Cached name for the 'set_opentype_features' method. + + + + + Cached name for the 'set_spacing' method. + + + + + Cached name for the 'set_baseline_offset' method. + + + + + Cached name for the 'get_baseline_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Framebuffer cache manager for Rendering Device based renderers. Provides a way to create a framebuffer and reuse it in subsequent calls for as long as the used textures exists. Framebuffers will automatically be cleaned up when dependent objects are freed. + + + + + Creates, or obtains a cached, framebuffer. lists textures accessed. defines the subpasses and texture allocation, if left empty a single pass is created and textures are allocated depending on their usage flags. defines the number of views used when rendering. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cache_multipass' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The resource type represents a shared library which can expand the functionality of the engine. The singleton is responsible for loading, reloading, and unloading resources. + Note: GDExtension itself is not a scripting language and has no relation to resources. + + + + + The library is initialized at the same time as the core features of the engine. + + + + + The library is initialized at the same time as the engine's servers (such as or ). + + + + + The library is initialized at the same time as the engine's scene-related classes. + + + + + The library is initialized at the same time as the engine's editor classes. Only happens when loading the GDExtension in the editor. + + + + + Returns if this extension's library has been opened. + + + + + Returns the lowest level required for this extension to be properly initialized (see the enum). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_library_open' method. + + + + + Cached name for the 'get_minimum_library_initialization_level' method. + + + + + Cached name for the 'initialize_library' method. + + + + + Cached name for the 'close_library' method. + + + + + Cached name for the 'open_library' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The GDExtensionManager loads, initializes, and keeps track of all available libraries in the project. + Note: Do not worry about GDExtension unless you know what you are doing. + + + + + The extension has loaded successfully. + + + + + The extension has failed to load, possibly because it does not exist or has missing dependencies. + + + + + The extension has already been loaded. + + + + + The extension has not been loaded. + + + + + The extension requires the application to restart to fully load. + + + + + Loads an extension by absolute file path. The needs to point to a valid . Returns if successful. + + + + + Reloads the extension at the given file path. The needs to point to a valid , otherwise this method may return either or . + Note: You can only reload extensions in the editor. In release builds, this method always fails and returns . + + + + + Unloads an extension by file path. The needs to point to an already loaded , otherwise this method returns . + + + + + Returns if the extension at the given file has already been loaded successfully. See also . + + + + + Returns the file paths of all currently loaded extensions. + + + + + Returns the at the given file , or if it has not been loaded or does not exist. + + + + + Emitted after the editor has finished reloading one or more extensions. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after the editor has finished loading a new extension. + Note: This signal is only emitted in editor builds. + + + + + Represents the method that handles the event of a class. + + + + + Emitted before the editor starts unloading an extension. + Note: This signal is only emitted in editor builds. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_extension' method. + + + + + Cached name for the 'reload_extension' method. + + + + + Cached name for the 'unload_extension' method. + + + + + Cached name for the 'is_extension_loaded' method. + + + + + Cached name for the 'get_loaded_extensions' method. + + + + + Cached name for the 'get_extension' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'extensions_reloaded' signal. + + + + + Cached name for the 'extension_loaded' signal. + + + + + Cached name for the 'extension_unloading' signal. + + + + + The GDExtensionManager loads, initializes, and keeps track of all available libraries in the project. + Note: Do not worry about GDExtension unless you know what you are doing. + + + + + Loads an extension by absolute file path. The needs to point to a valid . Returns if successful. + + + + + Reloads the extension at the given file path. The needs to point to a valid , otherwise this method may return either or . + Note: You can only reload extensions in the editor. In release builds, this method always fails and returns . + + + + + Unloads an extension by file path. The needs to point to an already loaded , otherwise this method returns . + + + + + Returns if the extension at the given file has already been loaded successfully. See also . + + + + + Returns the file paths of all currently loaded extensions. + + + + + Returns the at the given file , or if it has not been loaded or does not exist. + + + + + Emitted after the editor has finished reloading one or more extensions. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after the editor has finished loading a new extension. + Note: This signal is only emitted in editor builds. + + + + + Represents the method that handles the event of a class. + + + + + Emitted before the editor starts unloading an extension. + Note: This signal is only emitted in editor builds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_extension' method. + + + + + Cached name for the 'reload_extension' method. + + + + + Cached name for the 'unload_extension' method. + + + + + Cached name for the 'is_extension_loaded' method. + + + + + Cached name for the 'get_loaded_extensions' method. + + + + + Cached name for the 'get_extension' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'extensions_reloaded' signal. + + + + + Cached name for the 'extension_loaded' signal. + + + + + Cached name for the 'extension_unloading' signal. + + + + + A script implemented in the GDScript programming language, saved with the .gd extension. The script extends the functionality of all objects that instantiate it. + Calling creates a new instance of the 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. + + + + + Returns a new instance of the script. + + var MyClass = load("myclass.gd") + var instance = MyClass.new() + print(instance.get_script() == MyClass) # Prints true + + + + + + Returns a new instance of the script. + + var MyClass = load("myclass.gd") + var instance = MyClass.new() + print(instance.get_script() == MyClass) # Prints true + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'new' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFAccessor is a data structure representing a glTF accessor that would be found in the "accessors" array. A buffer is a blob of binary data. A buffer view is a slice of a buffer. An accessor is a typed interpretation of the data in a buffer view. + Most custom data stored in glTF does not need accessors, only buffer views (see ). Accessors are for more advanced use cases such as interleaved mesh data encoded for the GPU. + + + + + Accessor type "SCALAR". For the glTF object model, this can be used to map to a single float, int, or bool value, or a float array. + + + + + Accessor type "VEC2". For the glTF object model, this maps to "float2", represented in the glTF JSON as an array of two floats. + + + + + Accessor type "VEC3". For the glTF object model, this maps to "float3", represented in the glTF JSON as an array of three floats. + + + + + Accessor type "VEC4". For the glTF object model, this maps to "float4", represented in the glTF JSON as an array of four floats. + + + + + Accessor type "MAT2". For the glTF object model, this maps to "float2x2", represented in the glTF JSON as an array of four floats. + + + + + Accessor type "MAT3". For the glTF object model, this maps to "float3x3", represented in the glTF JSON as an array of nine floats. + + + + + Accessor type "MAT4". For the glTF object model, this maps to "float4x4", represented in the glTF JSON as an array of sixteen floats. + + + + + Component type "NONE". This is not a valid component type, and is used to indicate that the component type is not set. + + + + + Component type "BYTE". The value is 0x1400 which comes from OpenGL. This indicates data is stored in 1-byte or 8-bit signed integers. This is a core part of the glTF specification. + + + + + Component type "UNSIGNED_BYTE". The value is 0x1401 which comes from OpenGL. This indicates data is stored in 1-byte or 8-bit unsigned integers. This is a core part of the glTF specification. + + + + + Component type "SHORT". The value is 0x1402 which comes from OpenGL. This indicates data is stored in 2-byte or 16-bit signed integers. This is a core part of the glTF specification. + + + + + Component type "UNSIGNED_SHORT". The value is 0x1403 which comes from OpenGL. This indicates data is stored in 2-byte or 16-bit unsigned integers. This is a core part of the glTF specification. + + + + + Component type "INT". The value is 0x1404 which comes from OpenGL. This indicates data is stored in 4-byte or 32-bit signed integers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "UNSIGNED_INT". The value is 0x1405 which comes from OpenGL. This indicates data is stored in 4-byte or 32-bit unsigned integers. This is a core part of the glTF specification. + + + + + Component type "FLOAT". The value is 0x1406 which comes from OpenGL. This indicates data is stored in 4-byte or 32-bit floating-point numbers. This is a core part of the glTF specification. + + + + + Component type "DOUBLE". The value is 0x140A which comes from OpenGL. This indicates data is stored in 8-byte or 64-bit floating-point numbers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "HALF_FLOAT". The value is 0x140B which comes from OpenGL. This indicates data is stored in 2-byte or 16-bit floating-point numbers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "LONG". The value is 0x140E which comes from OpenGL. This indicates data is stored in 8-byte or 64-bit signed integers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + Component type "UNSIGNED_LONG". The value is 0x140F which comes from OpenGL. This indicates data is stored in 8-byte or 64-bit unsigned integers. This is NOT a core part of the glTF specification, and may not be supported by all glTF importers. May be used by some extensions including KHR_interactivity. + + + + + The index of the buffer view this accessor is referencing. If -1, this accessor is not referencing any buffer view. + + + + + The offset relative to the start of the buffer view in bytes. + + + + + The glTF component type as an enum. See for possible values. Within the core glTF specification, a value of 5125 or "UNSIGNED_INT" must not be used for any accessor that is not referenced by mesh.primitive.indices. + + + + + Specifies whether integer data values are normalized before usage. + + + + + The number of elements referenced by this accessor. + + + + + The glTF accessor type as an enum. Possible values are 0 for "SCALAR", 1 for "VEC2", 2 for "VEC3", 3 for "VEC4", 4 for "MAT2", 5 for "MAT3", and 6 for "MAT4". + + + + + The glTF accessor type as an enum. Use instead. + + + + + Minimum value of each component in this accessor. + + + + + Maximum value of each component in this accessor. + + + + + Number of deviating accessor values stored in the sparse array. + + + + + The index of the buffer view with sparse indices. The referenced buffer view MUST NOT have its target or byteStride properties defined. The buffer view and the optional byteOffset MUST be aligned to the componentType byte length. + + + + + The offset relative to the start of the buffer view in bytes. + + + + + The indices component data type as an enum. Possible values are 5121 for "UNSIGNED_BYTE", 5123 for "UNSIGNED_SHORT", and 5125 for "UNSIGNED_INT". + + + + + The index of the bufferView with sparse values. The referenced buffer view MUST NOT have its target or byteStride properties defined. + + + + + The offset relative to the start of the bufferView in bytes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer_view' property. + + + + + Cached name for the 'byte_offset' property. + + + + + Cached name for the 'component_type' property. + + + + + Cached name for the 'normalized' property. + + + + + Cached name for the 'count' property. + + + + + Cached name for the 'accessor_type' property. + + + + + Cached name for the 'type' property. + + + + + Cached name for the 'min' property. + + + + + Cached name for the 'max' property. + + + + + Cached name for the 'sparse_count' property. + + + + + Cached name for the 'sparse_indices_buffer_view' property. + + + + + Cached name for the 'sparse_indices_byte_offset' property. + + + + + Cached name for the 'sparse_indices_component_type' property. + + + + + Cached name for the 'sparse_values_buffer_view' property. + + + + + Cached name for the 'sparse_values_byte_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_buffer_view' method. + + + + + Cached name for the 'set_buffer_view' method. + + + + + Cached name for the 'get_byte_offset' method. + + + + + Cached name for the 'set_byte_offset' method. + + + + + Cached name for the 'get_component_type' method. + + + + + Cached name for the 'set_component_type' method. + + + + + Cached name for the 'get_normalized' method. + + + + + Cached name for the 'set_normalized' method. + + + + + Cached name for the 'get_count' method. + + + + + Cached name for the 'set_count' method. + + + + + Cached name for the 'get_accessor_type' method. + + + + + Cached name for the 'set_accessor_type' method. + + + + + Cached name for the 'get_type' method. + + + + + Cached name for the 'set_type' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'get_sparse_count' method. + + + + + Cached name for the 'set_sparse_count' method. + + + + + Cached name for the 'get_sparse_indices_buffer_view' method. + + + + + Cached name for the 'set_sparse_indices_buffer_view' method. + + + + + Cached name for the 'get_sparse_indices_byte_offset' method. + + + + + Cached name for the 'set_sparse_indices_byte_offset' method. + + + + + Cached name for the 'get_sparse_indices_component_type' method. + + + + + Cached name for the 'set_sparse_indices_component_type' method. + + + + + Cached name for the 'get_sparse_values_buffer_view' method. + + + + + Cached name for the 'set_sparse_values_buffer_view' method. + + + + + Cached name for the 'get_sparse_values_byte_offset' method. + + + + + Cached name for the 'set_sparse_values_byte_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The original name of the animation. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_name' property. + + + + + Cached name for the 'loop' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_original_name' method. + + + + + Cached name for the 'set_original_name' method. + + + + + Cached name for the 'get_loop' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFBufferView is a data structure representing a glTF bufferView that would be found in the "bufferViews" array. A buffer is a blob of binary data. A buffer view is a slice of a buffer that can be used to identify and extract data from the buffer. + Most custom uses of buffers only need to use the , , and . The and properties are for more advanced use cases such as interleaved mesh data encoded for the GPU. + + + + + The index of the buffer this buffer view is referencing. If -1, this buffer view is not referencing any buffer. + + + + + The offset, in bytes, from the start of the buffer to the start of this buffer view. + + + + + The length, in bytes, of this buffer view. If 0, this buffer view is empty. + + + + + The stride, in bytes, between interleaved data. If -1, this buffer view is not interleaved. + + + + + if the GLTFBufferView's OpenGL GPU buffer type is an ELEMENT_ARRAY_BUFFER used for vertex indices (integer constant 34963). if the buffer type is any other value. See Buffers, BufferViews, and Accessors for possible values. This property is set on import and used on export. + + + + + if the GLTFBufferView's OpenGL GPU buffer type is an ARRAY_BUFFER used for vertex attributes (integer constant 34962). if the buffer type is any other value. See Buffers, BufferViews, and Accessors for possible values. This property is set on import and used on export. + + + + + Loads the buffer view data from the buffer referenced by this buffer view in the given . Interleaved data with a byte stride is not yet supported by this method. The data is returned as a []. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'buffer' property. + + + + + Cached name for the 'byte_offset' property. + + + + + Cached name for the 'byte_length' property. + + + + + Cached name for the 'byte_stride' property. + + + + + Cached name for the 'indices' property. + + + + + Cached name for the 'vertex_attributes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_buffer_view_data' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'set_buffer' method. + + + + + Cached name for the 'get_byte_offset' method. + + + + + Cached name for the 'set_byte_offset' method. + + + + + Cached name for the 'get_byte_length' method. + + + + + Cached name for the 'set_byte_length' method. + + + + + Cached name for the 'get_byte_stride' method. + + + + + Cached name for the 'set_byte_stride' method. + + + + + Cached name for the 'get_indices' method. + + + + + Cached name for the 'set_indices' method. + + + + + Cached name for the 'get_vertex_attributes' method. + + + + + Cached name for the 'set_vertex_attributes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a camera as defined by the base glTF spec. + + + + + If , the camera is in perspective mode. Otherwise, the camera is in orthographic/orthogonal mode. This maps to glTF's camera type property. See and the glTF spec for more information. + + + + + The FOV of the camera. This class and glTF define the camera FOV in radians, while Godot uses degrees. This maps to glTF's yfov property. This value is only used for perspective cameras, when is . + + + + + The size of the camera. This class and glTF define the camera size magnitude as a radius in meters, while Godot defines it as a diameter in meters. This maps to glTF's ymag property. This value is only used for orthographic/orthogonal cameras, when is . + + + + + The distance to the far culling boundary for this camera relative to its local Z axis, in meters. This maps to glTF's zfar property. + + + + + The distance to the near culling boundary for this camera relative to its local Z axis, in meters. This maps to glTF's znear property. + + + + + Create a new GLTFCamera instance from the given Godot node. + + + + + Converts this GLTFCamera instance into a Godot node. + + + + + Creates a new GLTFCamera instance by parsing the given . + + + + + Serializes this GLTFCamera instance into a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'perspective' property. + + + + + Cached name for the 'fov' property. + + + + + Cached name for the 'size_mag' property. + + + + + Cached name for the 'depth_far' property. + + + + + Cached name for the 'depth_near' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_perspective' method. + + + + + Cached name for the 'set_perspective' method. + + + + + Cached name for the 'get_fov' method. + + + + + Cached name for the 'set_fov' method. + + + + + Cached name for the 'get_size_mag' method. + + + + + Cached name for the 'set_size_mag' method. + + + + + Cached name for the 'get_depth_far' method. + + + + + Cached name for the 'set_depth_far' method. + + + + + Cached name for the 'get_depth_near' method. + + + + + Cached name for the 'set_depth_near' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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 objects. + GLTFDocument can be extended with arbitrary functionality by extending the class and registering it with GLTFDocument via . This allows for custom data to be imported and exported. + + + + + 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 GODOT_single_root glTF extension. This will be parsed the same as if the implementation does not support GODOT_single_root. + + + + + 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. + + + + + 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. + + + + + The user-friendly name of the export image format. This is used when exporting the glTF file, including writing to a file and writing to a byte array. + By default, Godot allows the following options: "None", "PNG", "JPEG", "Lossless WebP", and "Lossy WebP". Support for more image formats can be added in classes. + + + + + If is a lossy image format, this determines the lossy quality of the image. On a range of 0.0 to 1.0, where 0.0 is the lowest quality and 1.0 is the highest quality. A lossy quality of 1.0 is not the same as lossless. + + + + + How to process the root node during export. See for details. The default and recommended value is . + Note: Regardless of how the glTF file is exported, when importing, the root node type and name can be overridden in the scene import settings tab. + + + + + Takes a path to a glTF file and imports the data at that file path to the given object through the parameter. + Note: The tells where to find dependencies and can be empty. + + + + + Takes a [] defining a glTF and imports the data to the given object through the parameter. + Note: The tells where to find dependencies and can be empty. + + + + + Takes a [] defining a glTF and imports the data to the given object through the parameter. + Note: The tells where to find dependencies and can be empty. + + + + + Takes a Godot Engine scene node and exports it and its descendants to the given object through the parameter. + + + + + Takes a object through the parameter and returns a Godot Engine scene node. + The parameter overrides the bake_fps in . + + + + + Takes a object through the parameter and returns a glTF []. + + + + + Takes a object through the parameter and writes a glTF file to the filesystem. + Note: The extension of the glTF file determines if it is a .glb binary file or a .gltf text file. + + + + + Determines a mapping between the given glTF Object Model and the corresponding Godot node path(s) in the generated Godot scene. The details of this mapping are returned in a object. Additional mappings can be supplied via the callback method. + + + + + Determines a mapping between the given Godot and the corresponding glTF Object Model JSON pointer(s) in the generated glTF file. The details of this mapping are returned in a object. Additional mappings can be supplied via the callback method. + + + + + Registers the given instance with GLTFDocument. If is , this extension will be run first. Otherwise, it will be run last. + Note: Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the set_additional_data and get_additional_data methods in or . + + + + + Unregisters the given instance. + + + + + Returns a list of all support glTF extensions, including extensions supported directly by the engine, and extensions supported by user plugins registering classes. + Note: If this method is run before a GLTFDocumentExtension is registered, its extensions won't be included in the list. Be sure to only run this method after all extensions are registered. If you run this when the engine starts, consider waiting a frame before calling this method to ensure all extensions are registered. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'image_format' property. + + + + + Cached name for the 'lossy_quality' property. + + + + + Cached name for the 'root_node_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_image_format' method. + + + + + Cached name for the 'get_image_format' method. + + + + + Cached name for the 'set_lossy_quality' method. + + + + + Cached name for the 'get_lossy_quality' method. + + + + + Cached name for the 'set_root_node_mode' method. + + + + + Cached name for the 'get_root_node_mode' method. + + + + + Cached name for the 'append_from_file' method. + + + + + Cached name for the 'append_from_buffer' method. + + + + + Cached name for the 'append_from_scene' method. + + + + + Cached name for the 'generate_scene' method. + + + + + Cached name for the 'generate_buffer' method. + + + + + Cached name for the 'write_to_filesystem' method. + + + + + Cached name for the 'import_object_model_property' method. + + + + + Cached name for the 'export_object_model_property' method. + + + + + Cached name for the 'register_gltf_document_extension' method. + + + + + Cached name for the 'unregister_gltf_document_extension' method. + + + + + Cached name for the 'get_supported_gltf_extensions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Extends the functionality of the 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 . + Note: Like GLTFDocument itself, all GLTFDocumentExtension classes must be stateless in order to function properly. If you need to store data, use the set_additional_data and get_additional_data methods in or . + + + + + Part of the export process. This method is run after and before . + 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 . + + + + + Part of the export process. This method is run after and before . If this is used for exporting images, this runs after . + This method can be used to modify the final JSON of each node. Data should be primarily stored in prior to serializing the JSON, but the original Godot is also provided if available. may be if not available, such as when exporting glTF data not generated from a Godot scene. + + + + + Part of the export process. Allows GLTFDocumentExtension classes to provide mappings for properties of nodes in the Godot scene tree, to JSON pointers to glTF properties, as defined by the glTF object model. + Returns a instance that defines how the property should be mapped. If your extension can't handle the property, return or an instance without any JSON pointers (see ). You should use to set the types, and set the JSON pointer(s) using the property. + The parameters provide context for the property, including the NodePath, the Godot node, the GLTF node index, and the target object. The will be equal to if no sub-object can be found, otherwise it will point to a sub-object. For example, if the path is ^"A/B/C/MeshInstance3D:mesh:surface_0/material:emission_intensity", it will get the node, then the mesh, and then the material, so will be the resource, and will be 2 because 2 levels were traversed to get to the target. + + + + + 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. + + + + + Part of the export process. This method is run after and before . + This method can be used to modify the converted node data structures before serialization with any additional data from the scene tree. + + + + + 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 instance should be used for exporting a given glTF file. If , the export will use this instance. If not overridden, is returned. + + + + + Part of the export process. This method is run after and before . + This method can be used to alter the state before performing serialization. It runs every time when generating a buffer with or writing to the file system with . + + + + + Part of the import process. This method is run after and before . + 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. + Note: The parameter may be if this is the single root node. + + + + + Returns the file extension to use for saving image data into, for example, ".png". 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 class able to import the file. If not defined or empty, Godot will save the image into a PNG file. + + + + + Part of the export process. This method is run after and before . + 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 's is in this array. If this is selected as the image exporter, one of the or methods will run next, otherwise will run next. If the format name contains "Lossy", the lossy quality slider will be displayed. + + + + + Part of the import process. This method is run after and before . + 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. + + + + + Part of the import process. This method is run after and before . + This method can be used to make modifications to each of the generated Godot scene nodes. + + + + + Part of the import process. Allows GLTFDocumentExtension classes to provide mappings for JSON pointers to glTF properties, as defined by the glTF object model, to properties of nodes in the Godot scene tree. + Returns a instance that defines how the property should be mapped. If your extension can't handle the property, return or an instance without any NodePaths (see ). You should use to set the types, and function is useful for most simple cases. + In many cases, will contain the start of a path, allowing the extension to complete the path. For example, for /nodes/3/extensions/MY_ext/prop, Godot will pass you a NodePath that leads to node 3, so the GLTFDocumentExtension class only needs to resolve the last MY_ext/prop part of the path. In this example, the extension should check split.size() > 4 and split[0] == "nodes" and split[2] == "extensions" and split[3] == "MY_ext" at the start of the function to check if this JSON pointer applies to it, then it can use and handle split[4]. + + + + + 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. + + + + + Part of the import process. This method is run after and before . + This method can be used to modify any of the data imported so far after parsing each node, but before generating the scene or any of its nodes. + + + + + Part of the import process. This method is run after and before . + This method can be used to modify or read from any of the processed data structures, before generating the nodes and then running the final per-node import step. + + + + + 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 instance should be used for importing a given glTF file. If , the import will use this instance. If not overridden, is returned. + + + + + Part of the import process. This method is run after and before . + 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. + + + + + Part of the import process. This method is run after and before . + 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 . The return value should be a member of the enum. + + + + + Part of the import process. This method is run after and before . + 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. + + + + + Part of the export process. This method is run after and before . + This method is run when saving images separately from the glTF file. When images are embedded, runs instead. Note that these methods only run when this is selected as the image exporter. + + + + + Part of the export process. This method is run after and before . + This method is run when embedding images in the glTF file. When images are saved separately, runs instead. Note that these methods only run when this is selected as the image exporter. + This method must set the image MIME type in the with the "mimeType" key. For example, for a PNG image, it would be set to "image/png". The return value must be a [] containing the image data. + + + + + Part of the export process. This method is run after or , and before . Note that this method only runs when this is selected as the image exporter. + This method can be used to set up the extensions for the texture JSON by editing . The extension must also be added as used extension with , be sure to set required to if you are not providing a fallback. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_convert_scene_node' method. + + + + + Cached name for the '_export_node' method. + + + + + Cached name for the '_export_object_model_property' method. + + + + + Cached name for the '_export_post' method. + + + + + Cached name for the '_export_post_convert' method. + + + + + Cached name for the '_export_preflight' method. + + + + + Cached name for the '_export_preserialize' method. + + + + + Cached name for the '_generate_scene_node' method. + + + + + Cached name for the '_get_image_file_extension' method. + + + + + Cached name for the '_get_saveable_image_formats' method. + + + + + Cached name for the '_get_supported_extensions' method. + + + + + Cached name for the '_import_node' method. + + + + + Cached name for the '_import_object_model_property' method. + + + + + Cached name for the '_import_post' method. + + + + + Cached name for the '_import_post_parse' method. + + + + + Cached name for the '_import_pre_generate' method. + + + + + Cached name for the '_import_preflight' method. + + + + + Cached name for the '_parse_image_data' method. + + + + + Cached name for the '_parse_node_extensions' method. + + + + + Cached name for the '_parse_texture_json' method. + + + + + Cached name for the '_save_image_at_path' method. + + + + + Cached name for the '_serialize_image_to_bytes' method. + + + + + Cached name for the '_serialize_texture_json' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a light as defined by the KHR_lights_punctual glTF extension. + + + + + The of the light. Defaults to white. A black color causes the light to have no effect. + + + + + The intensity of the light. This is expressed in candelas (lumens per steradian) for point and spot lights, and lux (lumens per m²) for directional lights. When creating a Godot light, this value is converted to a unitless multiplier. + + + + + The type of the light. The values accepted by Godot are "point", "spot", and "directional", which correspond to Godot's , , and respectively. + + + + + The range of the light, beyond which the light has no effect. glTF lights with no range defined behave like physical lights (which have infinite range). When creating a Godot light, the range is clamped to 4096. + + + + + The inner angle of the cone in a spotlight. Must be less than or equal to the outer cone angle. + Within this angle, the light is at full brightness. Between the inner and outer cone angles, there is a transition from full brightness to zero brightness. When creating a Godot , the ratio between the inner and outer cone angles is used to calculate the attenuation of the light. + + + + + The outer angle of the cone in a spotlight. Must be greater than or equal to the inner angle. + At this angle, the light drops off to zero brightness. Between the inner and outer cone angles, there is a transition from full brightness to zero brightness. If this angle is a half turn, then the spotlight emits in all directions. When creating a Godot , the outer cone angle is used as the angle of the spotlight. + + + + + Create a new GLTFLight instance from the given Godot node. + + + + + Converts this GLTFLight instance into a Godot node. + + + + + Creates a new GLTFLight instance by parsing the given . + + + + + Serializes this GLTFLight instance into a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'intensity' property. + + + + + Cached name for the 'light_type' property. + + + + + Cached name for the 'range' property. + + + + + Cached name for the 'inner_cone_angle' property. + + + + + Cached name for the 'outer_cone_angle' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_intensity' method. + + + + + Cached name for the 'set_intensity' method. + + + + + Cached name for the 'get_light_type' method. + + + + + Cached name for the 'set_light_type' method. + + + + + Cached name for the 'get_range' method. + + + + + Cached name for the 'set_range' method. + + + + + Cached name for the 'get_inner_cone_angle' method. + + + + + Cached name for the 'set_inner_cone_angle' method. + + + + + Cached name for the 'get_outer_cone_angle' method. + + + + + Cached name for the 'set_outer_cone_angle' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFMesh handles 3D mesh data imported from glTF files. It includes properties for blend channels, blend weights, instance materials, and the mesh itself. + + + + + The original name of the mesh. + + + + + The object representing the mesh itself. + + + + + An array of floats representing the blend weights of the mesh. + + + + + An array of Material objects representing the materials used in the mesh. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_name' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'blend_weights' property. + + + + + Cached name for the 'instance_materials' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_original_name' method. + + + + + Cached name for the 'set_original_name' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_blend_weights' method. + + + + + Cached name for the 'set_blend_weights' method. + + + + + Cached name for the 'get_instance_materials' method. + + + + + Cached name for the 'set_instance_materials' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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 and . + + + + + The original name of the node. + + + + + The index of the parent node in the . If -1, this node is a root node. + + + + + How deep into the node hierarchy this node is. A root node will have a height of 0, its children will have a height of 1, and so on. If -1, the height has not been calculated. + + + + + The transform of the glTF node relative to its parent. This property is usually unused since the position, rotation, and scale properties are preferred. + + + + + If this glTF node is a mesh, the index of the in the that describes the mesh's properties. If -1, this node is not a mesh. + + + + + If this glTF node is a camera, the index of the in the that describes the camera's properties. If -1, this node is not a camera. + + + + + If this glTF node has a skin, the index of the in the that describes the skin's properties. If -1, this node does not have a skin. + + + + + If this glTF node has a skeleton, the index of the in the that describes the skeleton's properties. If -1, this node does not have a skeleton. + + + + + The position of the glTF node relative to its parent. + + + + + The rotation of the glTF node relative to its parent. + + + + + The scale of the glTF node relative to its parent. + + + + + The indices of the child nodes in the . If this glTF node has no children, this will be an empty array. + + + + + If this glTF node is a light, the index of the in the that describes the light's properties. If -1, this node is not a light. + + + + + Appends the given child node index to the array. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-node state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Returns the that this GLTF node will have in the Godot scene tree after being imported. This is useful when importing glTF object model pointers with , for handling extensions such as KHR_animation_pointer or KHR_interactivity. + If is , paths to skeleton bone glTF nodes will be resolved properly. For example, a path that would be ^"A/B/C/Bone1/Bone2/Bone3" if will become ^"A/B/C/Skeleton3D:Bone3". + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_name' property. + + + + + Cached name for the 'parent' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'xform' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'camera' property. + + + + + Cached name for the 'skin' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'children' property. + + + + + Cached name for the 'light' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_original_name' method. + + + + + Cached name for the 'set_original_name' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'set_parent' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_xform' method. + + + + + Cached name for the 'set_xform' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_camera' method. + + + + + Cached name for the 'set_camera' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_skeleton' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_children' method. + + + + + Cached name for the 'set_children' method. + + + + + Cached name for the 'append_child_index' method. + + + + + Cached name for the 'get_light' method. + + + + + Cached name for the 'set_light' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached name for the 'get_scene_node_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GLTFObjectModelProperty defines a mapping between a property in the glTF object model and a NodePath in the Godot scene tree. This can be used to animate properties in a glTF file using the KHR_animation_pointer extension, or to access them through an engine-agnostic script such as a behavior graph as defined by the KHR_interactivity extension. + The glTF property is identified by JSON pointer(s) stored in , while the Godot property it maps to is defined by . In most cases and will each only have one item, but in some cases a single glTF JSON pointer will map to multiple Godot properties, or a single Godot property will be mapped to multiple glTF JSON pointers, or it might be a many-to-many relationship. + objects can be used to define conversions between the data, such as when glTF defines an angle in radians and Godot uses degrees. The property defines the type of data stored in the glTF file as defined by the object model, see for possible values. + + + + + Unknown or not set object model type. If the object model type is set to this value, the real type still needs to be determined. + + + + + Object model type "bool". Represented in the glTF JSON as a boolean, and encoded in a as "SCALAR". When encoded in an accessor, a value of 0 is , and any other value is . + + + + + Object model type "float". Represented in the glTF JSON as a number, and encoded in a as "SCALAR". + + + + + Object model type "float[lb][rb]". Represented in the glTF JSON as an array of numbers, and encoded in a as "SCALAR". + + + + + Object model type "float2". Represented in the glTF JSON as an array of two numbers, and encoded in a as "VEC2". + + + + + Object model type "float3". Represented in the glTF JSON as an array of three numbers, and encoded in a as "VEC3". + + + + + Object model type "float4". Represented in the glTF JSON as an array of four numbers, and encoded in a as "VEC4". + + + + + Object model type "float2x2". Represented in the glTF JSON as an array of four numbers, and encoded in a as "MAT2". + + + + + Object model type "float3x3". Represented in the glTF JSON as an array of nine numbers, and encoded in a as "MAT3". + + + + + Object model type "float4x4". Represented in the glTF JSON as an array of sixteen numbers, and encoded in a as "MAT4". + + + + + Object model type "int". Represented in the glTF JSON as a number, and encoded in a as "SCALAR". The range of values is limited to signed integers. For KHR_interactivity, only 32-bit integers are supported. + + + + + If set, this will be used to convert the property value from the glTF object model to the value expected by the Godot property. This is useful when the glTF object model uses a different unit system, or when the data needs to be transformed in some way. If , the value will be copied as-is. + + + + + If set, this will be used to convert the property value from the Godot property to the value expected by the glTF object model. This is useful when the glTF object model uses a different unit system, or when the data needs to be transformed in some way. If , the value will be copied as-is. + + + + + An array of s that point to a property, or multiple properties, in the Godot scene tree. On import, this will either be set by , or by a class. For simple cases, use to add properties to this array. + In most cases will only have one item, but in some cases a single glTF JSON pointer will map to multiple Godot properties. For example, a or used on multiple glTF nodes will be represented by multiple Godot nodes. + + + + + The type of data stored in the glTF file as defined by the object model. This is a superset of the available accessor types, and determines the accessor type. See for possible values. + + + + + The glTF object model JSON pointers used to identify the property in the glTF object model. In most cases, there will be only one item in this array, but niche cases may require multiple pointers. The items are themselves arrays which represent the JSON pointer split into its components. + + + + + The type of data stored in the Godot property. This is the type of the property that the point to. + + + + + Appends a to . This can be used by classes to define how a glTF object model property maps to a Godot property, or multiple Godot properties. Prefer using for simple cases. Be sure to also call once (the order does not matter). + + + + + High-level wrapper over that handles the most common cases. It constructs a new using as a base and appends to the subpath. Be sure to also call once (the order does not matter). + + + + + The GLTF accessor type associated with this property's . See for possible values, and see for how the object model type maps to accessor types. + + + + + Returns if is not empty. This is used during import to determine if a can handle converting a glTF object model property to a Godot property. + + + + + Returns if is not empty. This is used during export to determine if a can handle converting a Godot property to a glTF object model property. + + + + + Sets the and properties. This is a convenience method to set both properties at once, since they are almost always known at the same time. This method should be called once. Calling it again with the same values will have no effect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gltf_to_godot_expression' property. + + + + + Cached name for the 'godot_to_gltf_expression' property. + + + + + Cached name for the 'node_paths' property. + + + + + Cached name for the 'object_model_type' property. + + + + + Cached name for the 'json_pointers' property. + + + + + Cached name for the 'variant_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'append_node_path' method. + + + + + Cached name for the 'append_path_to_property' method. + + + + + Cached name for the 'get_accessor_type' method. + + + + + Cached name for the 'get_gltf_to_godot_expression' method. + + + + + Cached name for the 'set_gltf_to_godot_expression' method. + + + + + Cached name for the 'get_godot_to_gltf_expression' method. + + + + + Cached name for the 'set_godot_to_gltf_expression' method. + + + + + Cached name for the 'get_node_paths' method. + + + + + Cached name for the 'has_node_paths' method. + + + + + Cached name for the 'set_node_paths' method. + + + + + Cached name for the 'get_object_model_type' method. + + + + + Cached name for the 'set_object_model_type' method. + + + + + Cached name for the 'get_json_pointers' method. + + + + + Cached name for the 'has_json_pointers' method. + + + + + Cached name for the 'set_json_pointers' method. + + + + + Cached name for the 'get_variant_type' method. + + + + + Cached name for the 'set_variant_type' method. + + + + + Cached name for the 'set_types' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a physics body as an intermediary between the OMI_physics_body 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. + + + + + The type of the body. When importing, this controls what type of node Godot should generate. Valid values are "static", "animatable", "character", "rigid", "vehicle", and "trigger". When exporting, this will be squashed down to one of "static", "kinematic", or "dynamic" motion types, or the "trigger" property. + + + + + The mass of the physics body, in kilograms. This is only used when the body type is "rigid" or "vehicle". + + + + + The linear velocity of the physics body, in meters per second. This is only used when the body type is "rigid" or "vehicle". + + + + + The angular velocity of the physics body, in radians per second. This is only used when the body type is "rigid" or "vehicle". + + + + + The center of mass of the body, in meters. This is in local space relative to the body. By default, the center of the mass is the body's origin. + + + + + The inertia strength of the physics body, in kilogram meter squared (kg⋅m²). This represents the inertia around the principle axes, the diagonal of the inertia tensor matrix. This is only used when the body type is "rigid" or "vehicle". + When converted to a Godot node, if this value is zero, then the inertia will be calculated automatically. + + + + + The inertia orientation of the physics body. This defines the rotation of the inertia's principle axes relative to the object's local axes. This is only used when the body type is "rigid" or "vehicle" and is set to a non-zero value. + + + + + The inertia tensor of the physics body, in kilogram meter squared (kg⋅m²). This is only used when the body type is "rigid" or "vehicle". + When converted to a Godot node, if this value is zero, then the inertia will be calculated automatically. + + + + + Creates a new GLTFPhysicsBody instance from the given Godot node. + + + + + Converts this GLTFPhysicsBody instance into a Godot node. + + + + + Creates a new GLTFPhysicsBody instance by parsing the given in the OMI_physics_body glTF extension format. + + + + + Serializes this GLTFPhysicsBody instance into a . It will be in the format expected by the OMI_physics_body glTF extension. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'body_type' property. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'inertia_diagonal' property. + + + + + Cached name for the 'inertia_orientation' property. + + + + + Cached name for the 'inertia_tensor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_body_type' method. + + + + + Cached name for the 'set_body_type' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'set_center_of_mass' method. + + + + + Cached name for the 'get_inertia_diagonal' method. + + + + + Cached name for the 'set_inertia_diagonal' method. + + + + + Cached name for the 'get_inertia_orientation' method. + + + + + Cached name for the 'set_inertia_orientation' method. + + + + + Cached name for the 'get_inertia_tensor' method. + + + + + Cached name for the 'set_inertia_tensor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a physics shape as defined by the OMI_physics_shape or OMI_collider glTF extensions. 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. + + + + + The type of shape this shape represents. Valid values are "box", "capsule", "cylinder", "sphere", "hull", and "trimesh". + + + + + The size of the shape, in meters. This is only used when the shape type is "box", and it represents the "diameter" of the box. This value should not be negative. + + + + + The radius of the shape, in meters. This is only used when the shape type is "capsule", "cylinder", or "sphere". This value should not be negative. + + + + + The height of the shape, in meters. This is only used when the shape type is "capsule" or "cylinder". This value should not be negative, and for "capsule" it should be at least twice the radius. + + + + + If , indicates that this shape is a trigger. For Godot, this means that the shape should be a child of an Area3D node. + This is the only variable not used in the method, it's intended to be used alongside when deciding where to add the generated node as a child. + + + + + The index of the shape's mesh in the glTF file. This is only used when the shape type is "hull" (convex hull) or "trimesh" (concave trimesh). + + + + + The resource of the shape. This is only used when the shape type is "hull" (convex hull) or "trimesh" (concave trimesh). + + + + + Creates a new GLTFPhysicsShape instance from the given Godot node. + + + + + Converts this GLTFPhysicsShape instance into a Godot node. + + + + + Creates a new GLTFPhysicsShape instance from the given Godot resource. + + + + + Converts this GLTFPhysicsShape instance into a Godot resource. + + + + + Creates a new GLTFPhysicsShape instance by parsing the given . + + + + + Serializes this GLTFPhysicsShape instance into a in the format defined by OMI_physics_shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape_type' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'is_trigger' property. + + + + + Cached name for the 'mesh_index' property. + + + + + Cached name for the 'importer_mesh' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from_node' method. + + + + + Cached name for the 'to_node' method. + + + + + Cached name for the 'from_resource' method. + + + + + Cached name for the 'to_resource' method. + + + + + Cached name for the 'from_dictionary' method. + + + + + Cached name for the 'to_dictionary' method. + + + + + Cached name for the 'get_shape_type' method. + + + + + Cached name for the 'set_shape_type' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_is_trigger' method. + + + + + Cached name for the 'set_is_trigger' method. + + + + + Cached name for the 'get_mesh_index' method. + + + + + Cached name for the 'set_mesh_index' method. + + + + + Cached name for the 'get_importer_mesh' method. + + + + + Cached name for the 'set_importer_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns a that maps skeleton bone indices to the indices of glTF nodes. This property is unused during import, and only set during export. In a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes. + + + + + Sets a that maps skeleton bone indices to the indices of glTF nodes. This property is unused during import, and only set during export. In a glTF file, a bone is a node, so Godot converts skeleton bones to glTF nodes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'joints' property. + + + + + Cached name for the 'roots' property. + + + + + Cached name for the 'unique_names' property. + + + + + Cached name for the 'godot_bone_node' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_joints' method. + + + + + Cached name for the 'set_joints' method. + + + + + Cached name for the 'get_roots' method. + + + + + Cached name for the 'set_roots' method. + + + + + Cached name for the 'get_godot_skeleton' method. + + + + + Cached name for the 'get_unique_names' method. + + + + + Cached name for the 'set_unique_names' method. + + + + + Cached name for the 'get_godot_bone_node' method. + + + + + Cached name for the 'set_godot_bone_node' method. + + + + + Cached name for the 'get_bone_attachment_count' method. + + + + + Cached name for the 'get_bone_attachment' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'skin_root' property. + + + + + Cached name for the 'joints_original' property. + + + + + Cached name for the 'inverse_binds' property. + + + + + Cached name for the 'joints' property. + + + + + Cached name for the 'non_joints' property. + + + + + Cached name for the 'roots' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached name for the 'joint_i_to_bone_i' property. + + + + + Cached name for the 'joint_i_to_name' property. + + + + + Cached name for the 'godot_skin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_skin_root' method. + + + + + Cached name for the 'set_skin_root' method. + + + + + Cached name for the 'get_joints_original' method. + + + + + Cached name for the 'set_joints_original' method. + + + + + Cached name for the 'get_inverse_binds' method. + + + + + Cached name for the 'set_inverse_binds' method. + + + + + Cached name for the 'get_joints' method. + + + + + Cached name for the 'set_joints' method. + + + + + Cached name for the 'get_non_joints' method. + + + + + Cached name for the 'set_non_joints' method. + + + + + Cached name for the 'get_roots' method. + + + + + Cached name for the 'set_roots' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_skeleton' method. + + + + + Cached name for the 'get_joint_i_to_bone_i' method. + + + + + Cached name for the 'set_joint_i_to_bone_i' method. + + + + + Cached name for the 'get_joint_i_to_name' method. + + + + + Cached name for the 'set_joint_i_to_name' method. + + + + + Cached name for the 'get_godot_skin' method. + + + + + Cached name for the 'set_godot_skin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The diffuse texture. + + + + + The reflected diffuse factor of the material. + + + + + The glossiness or smoothness of the material. + + + + + The specular RGB color of the material. The alpha channel is unused. + + + + + The specular-glossiness texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'diffuse_img' property. + + + + + Cached name for the 'diffuse_factor' property. + + + + + Cached name for the 'gloss_factor' property. + + + + + Cached name for the 'specular_factor' property. + + + + + Cached name for the 'spec_gloss_img' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_diffuse_img' method. + + + + + Cached name for the 'set_diffuse_img' method. + + + + + Cached name for the 'get_diffuse_factor' method. + + + + + Cached name for the 'set_diffuse_factor' method. + + + + + Cached name for the 'get_gloss_factor' method. + + + + + Cached name for the 'set_gloss_factor' method. + + + + + Cached name for the 'get_specular_factor' method. + + + + + Cached name for the 'set_specular_factor' method. + + + + + Cached name for the 'get_spec_gloss_img' method. + + + + + Cached name for the 'set_spec_gloss_img' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains all nodes and resources of a glTF file. This is used by as data storage, which allows and all classes to remain stateless. + GLTFState can be populated by 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 classes. This allows for custom data to be stored in the glTF file or for custom data to be converted to/from Godot nodes. + + + + + Discards all embedded textures and uses untextured materials. + + + + + Extracts embedded textures to be reimported and compressed. Editor only. Acts as uncompressed at runtime. + + + + + Embeds textures VRAM compressed with Basis Universal into the generated scene. + + + + + Embeds textures compressed losslessly into the generated scene, matching old behavior. + + + + + The original raw JSON document corresponding to this GLTFState. + + + + + The copyright string in the asset header of the glTF file. This is set during import if present and export if non-empty. See the glTF asset header documentation for more information. + + + + + The binary buffer attached to a .glb file. + + + + + The name of the scene. When importing, if not specified, this will be the file name. When exporting, if specified, the scene name will be saved to the glTF file. + + + + + The folder path associated with this glTF data. This is used to find other files the glTF file references, like images or binary buffers. This will be set during import when appending from a file, and will be set during export when writing to a file. + + + + + The file name associated with this glTF data. If it ends with .gltf, this is text-based glTF, otherwise this is binary GLB. This will be set during import when appending from a file, and will be set during export when writing to a file. If writing to a buffer, this will be an empty string. + + + + + The root nodes of the glTF file. Typically, a glTF file will only have one scene, and therefore one root node. However, a glTF file may have multiple scenes and therefore multiple root nodes, which will be generated as siblings of each other and as children of the root node of the generated Godot scene. + + + + + If , forces all GLTFNodes in the document to be bones of a single Godot node. + + + + + The baking fps of the animation for either import or export. + + + + + Appends an extension to the list of extensions used by this glTF file during serialization. If is , the extension will also be added to the list of required extensions. Do not run this in , as that stage is too late to add extensions. The final list is sorted alphabetically. + + + + + Appends the given byte array data to the buffers and creates a for it. The index of the destination is returned. If is , the buffers will first be searched for duplicate data, otherwise new bytes will always be appended. + + + + + Appends the given byte array data to the buffers and creates a for it. The index of the destination is returned. If is , the buffers will first be searched for duplicate data, otherwise new bytes will always be appended. + + + + + Append the given to the state, and return its new index. This can be used to export one Godot node as multiple glTF nodes, or inject new glTF nodes at import time. On import, this must be called before finishes for the parent node. On export, this must be called before runs for the parent node. + The parameter is the Godot scene node that corresponds to this glTF node. This is highly recommended to be set to a valid node, but may be if there is no corresponding Godot scene node. One Godot scene node may be used for multiple glTF nodes, so if exporting multiple glTF nodes for one Godot scene node, use the same Godot scene node for each. + The parameter is the index of the parent in the state. If -1, the node will be a root node, otherwise the new node will be added to the parent's list of children. The index will also be written to the property of the new node. + + + + + Returns an array of all s in the glTF file. These are the nodes that and refer to. This includes nodes that may not be generated in the Godot scene, or nodes that may generate multiple Godot scene nodes. + + + + + Sets the s in the state. These are the nodes that and refer to. Some of the nodes set here may not be generated in the Godot scene, or may generate multiple Godot scene nodes. + + + + + Returns an array of all es in the glTF file. These are the meshes that the index refers to. + + + + + Sets the es in the state. These are the meshes that the index refers to. + + + + + Returns the number of nodes in this . These nodes are only used during the export process when converting Godot nodes to glTF animations. + + + + + Returns the node with the given index. These nodes are only used during the export process when converting Godot nodes to glTF animations. + + + + + Retrieves the array of texture samplers that are used by the textures contained in the glTF. + + + + + Sets the array of texture samplers that are used by the textures contained in the glTF. + + + + + Gets the images of the glTF file as an array of s. These are the images that the index refers to. + + + + + Sets the images in the state stored as an array of s. This can be used during export. These are the images that the index refers to. + + + + + Returns an array of all s in the glTF file. These are the skins that the index refers to. + + + + + Sets the s in the state. These are the skins that the index refers to. + + + + + Returns an array of all s in the glTF file. These are the cameras that the index refers to. + + + + + Sets the s in the state. These are the cameras that the index refers to. + + + + + Returns an array of all s in the glTF file. These are the lights that the index refers to. + + + + + Sets the s in the state. These are the lights that the index refers to. + + + + + Returns an array of unique node names. This is used in both the import process and export process. + + + + + Sets the unique node names in the state. This is used in both the import process and export process. + + + + + Returns an array of unique animation names. This is only used during the import process. + + + + + Sets the unique animation names in the state. This is only used during the import process. + + + + + Returns an array of all s in the glTF file. These are the skeletons that the index refers to. + + + + + Sets the s in the state. These are the skeletons that the index refers to. + + + + + Returns an array of all s in the glTF file. When importing, these will be generated as animations in an node. When exporting, these will be generated from Godot nodes. + + + + + Sets the s in the state. When importing, these will be generated as animations in an node. When exporting, these will be generated from Godot nodes. + + + + + Returns the Godot scene node that corresponds to the same index as the it was generated from. This is the inverse of . Useful during the import process. + Note: Not every will have a scene node generated, and not every generated scene node will have a corresponding . If there is no scene node for this index, is returned. + + + + + Returns the index of the corresponding to this Godot scene node. This is the inverse of . Useful during the export process. + Note: Not every Godot scene node will have a corresponding , and not every will have a scene node generated. If there is no index for this scene node, -1 is returned. + + + + + Gets additional arbitrary data in this instance. This can be used to keep per-file state data in classes, which is important because they are stateless. + The argument should be the name (does not have to match the extension name in the glTF file), and the return value can be anything you set. If nothing was set, the return value is . + + + + + Sets additional arbitrary data in this instance. This can be used to keep per-file state data in classes, which is important because they are stateless. + The first argument should be the name (does not have to match the extension name in the glTF file), and the second argument can be anything you want. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'json' property. + + + + + Cached name for the 'major_version' property. + + + + + Cached name for the 'minor_version' property. + + + + + Cached name for the 'copyright' property. + + + + + Cached name for the 'glb_data' property. + + + + + Cached name for the 'use_named_skin_binds' property. + + + + + Cached name for the 'nodes' property. + + + + + Cached name for the 'buffers' property. + + + + + Cached name for the 'buffer_views' property. + + + + + Cached name for the 'accessors' property. + + + + + Cached name for the 'meshes' property. + + + + + Cached name for the 'materials' property. + + + + + Cached name for the 'scene_name' property. + + + + + Cached name for the 'base_path' property. + + + + + Cached name for the 'filename' property. + + + + + Cached name for the 'root_nodes' property. + + + + + Cached name for the 'textures' property. + + + + + Cached name for the 'texture_samplers' property. + + + + + Cached name for the 'images' property. + + + + + Cached name for the 'skins' property. + + + + + Cached name for the 'cameras' property. + + + + + Cached name for the 'lights' property. + + + + + Cached name for the 'unique_names' property. + + + + + Cached name for the 'unique_animation_names' property. + + + + + Cached name for the 'skeletons' property. + + + + + Cached name for the 'create_animations' property. + + + + + Cached name for the 'import_as_skeleton_bones' property. + + + + + Cached name for the 'animations' property. + + + + + Cached name for the 'handle_binary_image' property. + + + + + Cached name for the 'bake_fps' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_used_extension' method. + + + + + Cached name for the 'append_data_to_buffers' method. + + + + + Cached name for the 'append_gltf_node' method. + + + + + Cached name for the 'get_json' method. + + + + + Cached name for the 'set_json' method. + + + + + Cached name for the 'get_major_version' method. + + + + + Cached name for the 'set_major_version' method. + + + + + Cached name for the 'get_minor_version' method. + + + + + Cached name for the 'set_minor_version' method. + + + + + Cached name for the 'get_copyright' method. + + + + + Cached name for the 'set_copyright' method. + + + + + Cached name for the 'get_glb_data' method. + + + + + Cached name for the 'set_glb_data' method. + + + + + Cached name for the 'get_use_named_skin_binds' method. + + + + + Cached name for the 'set_use_named_skin_binds' method. + + + + + Cached name for the 'get_nodes' method. + + + + + Cached name for the 'set_nodes' method. + + + + + Cached name for the 'get_buffers' method. + + + + + Cached name for the 'set_buffers' method. + + + + + Cached name for the 'get_buffer_views' method. + + + + + Cached name for the 'set_buffer_views' method. + + + + + Cached name for the 'get_accessors' method. + + + + + Cached name for the 'set_accessors' method. + + + + + Cached name for the 'get_meshes' method. + + + + + Cached name for the 'set_meshes' method. + + + + + Cached name for the 'get_animation_players_count' method. + + + + + Cached name for the 'get_animation_player' method. + + + + + Cached name for the 'get_materials' method. + + + + + Cached name for the 'set_materials' method. + + + + + Cached name for the 'get_scene_name' method. + + + + + Cached name for the 'set_scene_name' method. + + + + + Cached name for the 'get_base_path' method. + + + + + Cached name for the 'set_base_path' method. + + + + + Cached name for the 'get_filename' method. + + + + + Cached name for the 'set_filename' method. + + + + + Cached name for the 'get_root_nodes' method. + + + + + Cached name for the 'set_root_nodes' method. + + + + + Cached name for the 'get_textures' method. + + + + + Cached name for the 'set_textures' method. + + + + + Cached name for the 'get_texture_samplers' method. + + + + + Cached name for the 'set_texture_samplers' method. + + + + + Cached name for the 'get_images' method. + + + + + Cached name for the 'set_images' method. + + + + + Cached name for the 'get_skins' method. + + + + + Cached name for the 'set_skins' method. + + + + + Cached name for the 'get_cameras' method. + + + + + Cached name for the 'set_cameras' method. + + + + + Cached name for the 'get_lights' method. + + + + + Cached name for the 'set_lights' method. + + + + + Cached name for the 'get_unique_names' method. + + + + + Cached name for the 'set_unique_names' method. + + + + + Cached name for the 'get_unique_animation_names' method. + + + + + Cached name for the 'set_unique_animation_names' method. + + + + + Cached name for the 'get_skeletons' method. + + + + + Cached name for the 'set_skeletons' method. + + + + + Cached name for the 'get_create_animations' method. + + + + + Cached name for the 'set_create_animations' method. + + + + + Cached name for the 'get_import_as_skeleton_bones' method. + + + + + Cached name for the 'set_import_as_skeleton_bones' method. + + + + + Cached name for the 'get_animations' method. + + + + + Cached name for the 'set_animations' method. + + + + + Cached name for the 'get_scene_node' method. + + + + + Cached name for the 'get_node_index' method. + + + + + Cached name for the 'get_additional_data' method. + + + + + Cached name for the 'set_additional_data' method. + + + + + Cached name for the 'get_handle_binary_image' method. + + + + + Cached name for the 'set_handle_binary_image' method. + + + + + Cached name for the 'set_bake_fps' method. + + + + + Cached name for the 'get_bake_fps' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The index of the image associated with this texture, see . If -1, then this texture does not have an image assigned. + + + + + ID of the texture sampler to use when sampling the image. If -1, then the default texture sampler is used (linear filtering, and repeat wrapping in both axes). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'src_image' property. + + + + + Cached name for the 'sampler' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_src_image' method. + + + + + Cached name for the 'set_src_image' method. + + + + + Cached name for the 'get_sampler' method. + + + + + Cached name for the 'set_sampler' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Texture's magnification filter, used when texture appears larger on screen than the source image. + + + + + Texture's minification filter, used when the texture appears smaller on screen than the source image. + + + + + Wrapping mode to use for S-axis (horizontal) texture coordinates. + + + + + Wrapping mode to use for T-axis (vertical) texture coordinates. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mag_filter' property. + + + + + Cached name for the 'min_filter' property. + + + + + Cached name for the 'wrap_s' property. + + + + + Cached name for the 'wrap_t' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_mag_filter' method. + + + + + Cached name for the 'set_mag_filter' method. + + + + + Cached name for the 'get_min_filter' method. + + + + + Cached name for the 'set_min_filter' method. + + + + + Cached name for the 'get_wrap_s' method. + + + + + Cached name for the 'set_wrap_s' method. + + + + + Cached name for the 'get_wrap_t' method. + + + + + Cached name for the 'set_wrap_t' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 2D particle node used to create a variety of particle systems and effects. features an emitter that generates some number of particles at a given rate. + Use the property to add a to configure particle appearance and behavior. Alternatively, you can add a which will be applied to all particles. + 2D particles can optionally collide with , but they don't collide with nodes. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front. + + + + + Particle starts at the specified position. + + + + + Particle starts with specified rotation and scale. + + + + + Particle starts with the specified velocity vector, which defines the emission direction and speed. + + + + + Particle starts with specified color. + + + + + Particle starts with specified CUSTOM data. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle unless all active particles have finished processing. Use the signal to be notified once all active particles finish processing. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting this to will not restart the emission cycle. + Tip: If your emitter needs to immediately restart emitting particles once signal is received, consider calling instead of setting . + + + + + The number of particles to emit in one emission cycle. The effective emission rate is (amount * amount_ratio) / lifetime particles per second. Higher values will increase GPU requirements, even if not all particles are visible at a given time or if is decreased. + Note: Changing this value will cause the particle system to restart. To avoid this, change instead. + + + + + The ratio of particles that should actually be emitted. If set to a value lower than 1.0, this will set the amount of emitted particles throughout the lifetime to amount * amount_ratio. Unlike changing , changing while emitting does not affect already-emitted particles and doesn't cause the particle system to restart. can be used to create effects that make the number of emitted particles vary over time. + Note: Reducing the has no performance benefit, since resources need to be allocated and processed for the total of particles regardless of the . If you don't intend to change the number of particles emitted while the particles are emitting, make sure is set to 1 and change to your liking instead. + + + + + Path to another node that will be used as a subemitter (see ). Subemitters can be used to achieve effects such as fireworks, sparks on collision, bubbles popping into water drops, and more. + Note: When is set, the target node will no longer emit particles on its own. + + + + + The amount of time each particle will exist (in seconds). The effective emission rate is (amount * amount_ratio) / lifetime particles per second. + + + + + Causes all the particles in this node to interpolate towards the end of their lifetime. + Note: This only works when used with a . It needs to be manually implemented for custom process shaders. + + + + + If , only one emission cycle occurs. If set during a cycle, emission will stop at the cycle's end. + + + + + Particle system starts as if it had already run for this many seconds. + Note: This can be very expensive if set to a high number as it requires running the particle shader a number of times equal to the (or 30, if is 0) for every second. In extreme cases it can even lead to a GPU crash due to the volume of work done in a single frame. + + + + + Particle system's running speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + How rapidly particles in an emission cycle are emitted. If greater than 0, there will be a gap in emissions before the next cycle begins. + + + + + Emission lifetime randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. + + + + + Enables particle interpolation, which makes the particle movement smoother when their is lower than the screen refresh rate. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + Multiplier for particle's collision radius. 1.0 corresponds to the size of the sprite. If particles appear to sink into the ground when colliding, increase this value. If particles appear to float when colliding, decrease this value. Only effective if is or . + Note: Particles always have a spherical collision shape. + + + + + The that determines the node's region which needs to be visible on screen for the particle system to be active. + Grow the rect if particles suddenly appear/disappear when the node enters/exits the screen. The can be grown via code or with the Particles → Generate Visibility Rect editor tool. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + + + + + If , enables particle trails using a mesh skinning system. + Note: Unlike , the number of trail sections and subdivisions is set with the and properties. + + + + + The amount of time the particle's trail should represent (in seconds). Only effective if is . + + + + + The number of sections to use for the particle trail rendering. Higher values can result in smoother trail curves, at the cost of performance due to increased mesh complexity. See also . Only effective if is . + + + + + The number of subdivisions to use for the particle trail rendering. Higher values can result in smoother trail curves, at the cost of performance due to increased mesh complexity. See also . Only effective if is . + + + + + Particle texture. If , particles will be squares with a size of 1×1 pixels. + Note: To use a flipbook texture, assign a new to the 's property, then enable and set , , and to match the flipbook texture. + + + + + for processing particles. Can be a or a . + + + + + Returns a rectangle containing the positions of all existing particles. + Note: When using threaded rendering this method synchronizes the rendering thread. Calling it often may have a negative impact on performance. + + + + + Restarts the particle emission cycle, clearing existing particles. To avoid particles vanishing from the viewport, wait for the signal before calling. + Note: The signal is only emitted by emitters. + + + + + Emits a single particle. Whether , , and are applied depends on the value of . See . + The default ParticleProcessMaterial will overwrite and use the contents of as (rotation, age, animation, lifetime). + Note: is only supported on the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Sets this node's properties to match a given node. + + + + + Emitted when all active particles have finished processing. To immediately restart the emission cycle, call . + This signal is never emitted when is disabled, as particles will be emitted and processed continuously. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting to will not restart the emission cycle. This delay is avoided by instead calling . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'amount_ratio' property. + + + + + Cached name for the 'sub_emitter' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'interp_to_end' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'interpolate' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'collision_base_size' property. + + + + + Cached name for the 'visibility_rect' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'trail_enabled' property. + + + + + Cached name for the 'trail_lifetime' property. + + + + + Cached name for the 'trail_sections' property. + + + + + Cached name for the 'trail_section_subdivisions' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'process_material' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_visibility_rect' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_interpolate' method. + + + + + Cached name for the 'set_process_material' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'set_collision_base_size' method. + + + + + Cached name for the 'set_interp_to_end' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_visibility_rect' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_interpolate' method. + + + + + Cached name for the 'get_process_material' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_collision_base_size' method. + + + + + Cached name for the 'get_interp_to_end' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'capture_rect' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'set_sub_emitter' method. + + + + + Cached name for the 'get_sub_emitter' method. + + + + + Cached name for the 'emit_particle' method. + + + + + Cached name for the 'set_trail_enabled' method. + + + + + Cached name for the 'set_trail_lifetime' method. + + + + + Cached name for the 'is_trail_enabled' method. + + + + + Cached name for the 'get_trail_lifetime' method. + + + + + Cached name for the 'set_trail_sections' method. + + + + + Cached name for the 'get_trail_sections' method. + + + + + Cached name for the 'set_trail_section_subdivisions' method. + + + + + Cached name for the 'get_trail_section_subdivisions' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached name for the 'set_amount_ratio' method. + + + + + Cached name for the 'get_amount_ratio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 3D particle node used to create a variety of particle systems and effects. features an emitter that generates some number of particles at a given rate. + Use to add a to configure particle appearance and behavior. Alternatively, you can add a which will be applied to all particles. + + + + + Maximum number of draw passes supported. + + + + + Particles are drawn in the order emitted. + + + + + Particles are drawn in order of remaining lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Particles are drawn in reverse order of remaining lifetime. In other words, the particle with the lowest lifetime is drawn at the front. + + + + + Particles are drawn in order of depth. + + + + + Particle starts at the specified position. + + + + + Particle starts with specified rotation and scale. + + + + + Particle starts with the specified velocity vector, which defines the emission direction and speed. + + + + + Particle starts with specified color. + + + + + Particle starts with specified CUSTOM data. + + + + + If , particles are being emitted. can be used to start and stop particles from emitting. However, if is setting to will not restart the emission cycle unless all active particles have finished processing. Use the signal to be notified once all active particles finish processing. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting this to will not restart the emission cycle. + Tip: If your emitter needs to immediately restart emitting particles once signal is received, consider calling instead of setting . + + + + + The number of particles to emit in one emission cycle. The effective emission rate is (amount * amount_ratio) / lifetime particles per second. Higher values will increase GPU requirements, even if not all particles are visible at a given time or if is decreased. + Note: Changing this value will cause the particle system to restart. To avoid this, change instead. + + + + + The ratio of particles that should actually be emitted. If set to a value lower than 1.0, this will set the amount of emitted particles throughout the lifetime to amount * amount_ratio. Unlike changing , changing while emitting does not affect already-emitted particles and doesn't cause the particle system to restart. can be used to create effects that make the number of emitted particles vary over time. + Note: Reducing the has no performance benefit, since resources need to be allocated and processed for the total of particles regardless of the . If you don't intend to change the number of particles emitted while the particles are emitting, make sure is set to 1 and change to your liking instead. + + + + + Path to another node that will be used as a subemitter (see ). Subemitters can be used to achieve effects such as fireworks, sparks on collision, bubbles popping into water drops, and more. + Note: When is set, the target node will no longer emit particles on its own. + + + + + The amount of time each particle will exist (in seconds). The effective emission rate is (amount * amount_ratio) / lifetime particles per second. + + + + + Causes all the particles in this node to interpolate towards the end of their lifetime. + Note: This only works when used with a . It needs to be manually implemented for custom process shaders. + + + + + If , only the number of particles equal to will be emitted. + + + + + Amount of time to preprocess the particles before animation starts. Lets you start the animation some time after particles have started emitting. + Note: This can be very expensive if set to a high number as it requires running the particle shader a number of times equal to the (or 30, if is 0) for every second. In extreme cases it can even lead to a GPU crash due to the volume of work done in a single frame. + + + + + Speed scaling ratio. A value of 0 can be used to pause the particles. + + + + + Time ratio between each emission. If 0, particles are emitted continuously. If 1, all particles are emitted simultaneously. + + + + + Emission randomness ratio. + + + + + The particle system's frame rate is fixed to a value. For example, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the simulation of the particle system itself. + + + + + Enables particle interpolation, which makes the particle movement smoother when their is lower than the screen refresh rate. + + + + + If , results in fractional delta calculation which has a smoother particles display effect. + + + + + The base diameter for particle collision in meters. If particles appear to sink into the ground when colliding, increase this value. If particles appear to float when colliding, decrease this value. Only effective if is or . + Note: Particles always have a spherical collision shape. + + + + + The that determines the node's region which needs to be visible on screen for the particle system to be active. is added on each of the AABB's axes. Particle collisions and attraction will only occur within this area. + Grow the box if particles suddenly appear/disappear when the node enters/exits the screen. The can be grown via code or with the Particles → Generate AABB editor tool. + Note: is overridden by if that property is set to a non-default value. + + + + + If , particles use the parent node's coordinate space (known as local coordinates). This will cause particles to move and rotate along the node (and its parents) when it is moved or rotated. If , particles use global coordinates; they will not move or rotate along the node (and its parents) when it is moved or rotated. + + + + + Particle draw order. Uses values. + Note: is the only option that supports motion vectors for effects like TAA. It is suggested to use this draw order if the particles are opaque to fix ghosting artifacts. + + + + + If , enables particle trails using a mesh skinning system. Designed to work with and . + Note: must also be enabled on the particle mesh's material. Otherwise, setting to will have no effect. + Note: Unlike , the number of trail sections and subdivisions is set in the or the 's properties. + + + + + The amount of time the particle's trail should represent (in seconds). Only effective if is . + + + + + for processing particles. Can be a or a . + + + + + The number of draw passes when rendering particles. + + + + + that is drawn for the first draw pass. + + + + + that is drawn for the second draw pass. + + + + + that is drawn for the third draw pass. + + + + + that is drawn for the fourth draw pass. + + + + + Sets the that is drawn at index . + + + + + Returns the that is drawn at index . + + + + + Restarts the particle emission cycle, clearing existing particles. To avoid particles vanishing from the viewport, wait for the signal before calling. + Note: The signal is only emitted by emitters. + + + + + Returns the axis-aligned bounding box that contains all the particles that are active in the current frame. + + + + + Emits a single particle. Whether , , and are applied depends on the value of . See . + The default ParticleProcessMaterial will overwrite and use the contents of as (rotation, age, animation, lifetime). + Note: is only supported on the Forward+ and Mobile rendering methods, not Compatibility. + + + + + Sets this node's properties to match a given node. + + + + + Emitted when all active particles have finished processing. To immediately restart the emission cycle, call . + This signal is never emitted when is disabled, as particles will be emitted and processed continuously. + Note: For emitters, due to the particles being computed on the GPU, there may be a short period after receiving the signal during which setting to will not restart the emission cycle. This delay is avoided by instead calling . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'emitting' property. + + + + + Cached name for the 'amount' property. + + + + + Cached name for the 'amount_ratio' property. + + + + + Cached name for the 'sub_emitter' property. + + + + + Cached name for the 'lifetime' property. + + + + + Cached name for the 'interp_to_end' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'preprocess' property. + + + + + Cached name for the 'speed_scale' property. + + + + + Cached name for the 'explosiveness' property. + + + + + Cached name for the 'randomness' property. + + + + + Cached name for the 'fixed_fps' property. + + + + + Cached name for the 'interpolate' property. + + + + + Cached name for the 'fract_delta' property. + + + + + Cached name for the 'collision_base_size' property. + + + + + Cached name for the 'visibility_aabb' property. + + + + + Cached name for the 'local_coords' property. + + + + + Cached name for the 'draw_order' property. + + + + + Cached name for the 'transform_align' property. + + + + + Cached name for the 'trail_enabled' property. + + + + + Cached name for the 'trail_lifetime' property. + + + + + Cached name for the 'process_material' property. + + + + + Cached name for the 'draw_passes' property. + + + + + Cached name for the 'draw_pass_1' property. + + + + + Cached name for the 'draw_pass_2' property. + + + + + Cached name for the 'draw_pass_3' property. + + + + + Cached name for the 'draw_pass_4' property. + + + + + Cached name for the 'draw_skin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_emitting' method. + + + + + Cached name for the 'set_amount' method. + + + + + Cached name for the 'set_lifetime' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'set_pre_process_time' method. + + + + + Cached name for the 'set_explosiveness_ratio' method. + + + + + Cached name for the 'set_randomness_ratio' method. + + + + + Cached name for the 'set_visibility_aabb' method. + + + + + Cached name for the 'set_use_local_coordinates' method. + + + + + Cached name for the 'set_fixed_fps' method. + + + + + Cached name for the 'set_fractional_delta' method. + + + + + Cached name for the 'set_interpolate' method. + + + + + Cached name for the 'set_process_material' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'set_collision_base_size' method. + + + + + Cached name for the 'set_interp_to_end' method. + + + + + Cached name for the 'is_emitting' method. + + + + + Cached name for the 'get_amount' method. + + + + + Cached name for the 'get_lifetime' method. + + + + + Cached name for the 'get_one_shot' method. + + + + + Cached name for the 'get_pre_process_time' method. + + + + + Cached name for the 'get_explosiveness_ratio' method. + + + + + Cached name for the 'get_randomness_ratio' method. + + + + + Cached name for the 'get_visibility_aabb' method. + + + + + Cached name for the 'get_use_local_coordinates' method. + + + + + Cached name for the 'get_fixed_fps' method. + + + + + Cached name for the 'get_fractional_delta' method. + + + + + Cached name for the 'get_interpolate' method. + + + + + Cached name for the 'get_process_material' method. + + + + + Cached name for the 'get_speed_scale' method. + + + + + Cached name for the 'get_collision_base_size' method. + + + + + Cached name for the 'get_interp_to_end' method. + + + + + Cached name for the 'set_draw_order' method. + + + + + Cached name for the 'get_draw_order' method. + + + + + Cached name for the 'set_draw_passes' method. + + + + + Cached name for the 'set_draw_pass_mesh' method. + + + + + Cached name for the 'get_draw_passes' method. + + + + + Cached name for the 'get_draw_pass_mesh' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'restart' method. + + + + + Cached name for the 'capture_aabb' method. + + + + + Cached name for the 'set_sub_emitter' method. + + + + + Cached name for the 'get_sub_emitter' method. + + + + + Cached name for the 'emit_particle' method. + + + + + Cached name for the 'set_trail_enabled' method. + + + + + Cached name for the 'set_trail_lifetime' method. + + + + + Cached name for the 'is_trail_enabled' method. + + + + + Cached name for the 'get_trail_lifetime' method. + + + + + Cached name for the 'set_transform_align' method. + + + + + Cached name for the 'get_transform_align' method. + + + + + Cached name for the 'convert_from_particles' method. + + + + + Cached name for the 'set_amount_ratio' method. + + + + + Cached name for the 'get_amount_ratio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + 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 to 0.0. + Note: Particle attractors only affect , not . + + + + + Adjusts the strength of the attractor. If is negative, particles will be pushed in the opposite direction. Particles will be pushed away from the attractor's origin if is 0.0, or towards local +Z if is greater than 0.0. + + + + + The particle attractor's attenuation. Higher values result in more gradual pushing of particles as they come closer to the attractor's origin. Zero or negative values will cause particles to be pushed very fast as soon as the touch the attractor's edges. + + + + + Adjusts how directional the attractor is. At 0.0, the attractor is not directional at all: it will attract particles towards its center. At 1.0, the attractor is fully directional: particles will always be pushed towards local -Z (or +Z if is negative). + Note: If is greater than 0.0, the direction in which particles are pushed can be changed by rotating the node. + + + + + The particle rendering layers () that will be affected by the attractor. By default, all particles are affected by an attractor. + After configuring particle nodes accordingly, specific layers can be unchecked to prevent certain particles from being affected by attractors. For example, this can be used if you're using an attractor as part of a spell effect but don't want the attractor to affect unrelated weather particles at the same position. + Particle attraction can also be disabled on a per-process material basis by setting on the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'strength' property. + + + + + Cached name for the 'attenuation' property. + + + + + Cached name for the 'directionality' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_strength' method. + + + + + Cached name for the 'get_strength' method. + + + + + Cached name for the 'set_attenuation' method. + + + + + Cached name for the 'get_attenuation' method. + + + + + Cached name for the 'set_directionality' method. + + + + + Cached name for the 'get_directionality' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A box-shaped attractor that influences particles from nodes. Can be used to attract particles towards its origin, or to push them away from its origin. + Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported. + Note: Particle attractors only affect , not . + + + + + The attractor box's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A spheroid-shaped attractor that influences particles from nodes. Can be used to attract particles towards its origin, or to push them away from its origin. + Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported. + Note: Particle attractors only affect , not . + + + + + The attractor sphere's radius in 3D units. + Note: Stretched ellipses can be obtained by using non-uniform scaling on the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A box-shaped attractor with varying directions and strengths defined in it that influences particles from nodes. + Unlike , uses a to affect attraction strength within the box. This can be used to create complex attraction scenarios where particles travel in different directions depending on their location. This can be useful for weather effects such as sandstorms. + Particle attractors work in real-time and can be moved, rotated and scaled during gameplay. Unlike collision shapes, non-uniform scaling of attractors is also supported. + Note: Particle attractors only affect , not . + + + + + The size of the vector field box in 3D units. + + + + + The 3D texture to be used. Values are linearly interpolated between the texture's pixels. + Note: To get better performance, the 3D texture's resolution should reflect the of the attractor. Since particle attraction is usually low-frequency data, the texture can be kept at a low resolution such as 64×64×64. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Particle collision shapes can be used to make particles stop or bounce against them. + Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported. + Particle collision shapes can be temporarily disabled by hiding them. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + Note: Particles pushed by a collider that is being moved will not be interpolated, which can result in visible stuttering. This can be alleviated by setting to 0 or a value that matches or exceeds the target framerate. + + + + + The particle rendering layers () that will be affected by the collision shape. By default, all particles that have set to or will be affected by a collision shape. + After configuring particle nodes accordingly, specific layers can be unchecked to prevent certain particles from being affected by colliders. For example, this can be used if you're using a collider as part of a spell effect but don't want the collider to affect unrelated weather particles at the same position. + Particle collision can also be disabled on a per-process material basis by setting on the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A box-shaped 3D particle collision shape affecting nodes. + Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + The collision box's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A real-time heightmap-shaped 3D particle collision shape affecting 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 , but it doesn't require a baking step. + can also be regenerated in real-time when it is moved, when the camera moves, or even continuously. This makes a good choice for weather effects such as rain and snow and games with highly dynamic geometry. However, this class is limited since heightmaps cannot represent overhangs (e.g. indoors or caves). + Note: must be on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + Generate a 256×256 heightmap. Intended for small-scale scenes, or larger scenes with no distant particles. + + + + + Generate a 512×512 heightmap. Intended for medium-scale scenes, or larger scenes with no distant particles. + + + + + Generate a 1024×1024 heightmap. Intended for large scenes with distant particles. + + + + + Generate a 2048×2048 heightmap. Intended for very large scenes with distant particles. + + + + + Generate a 4096×4096 heightmap. Intended for huge scenes with distant particles. + + + + + Generate a 8192×8192 heightmap. Intended for gigantic scenes with distant particles. + + + + + Represents the size of the enum. + + + + + Only update the heightmap when the node is moved, or when the camera moves if is . An update can be forced by slightly moving the in any direction, or by calling . + + + + + 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. + + + + + The collision heightmap's size in 3D units. To improve heightmap quality, should be set as small as possible while covering the parts of the scene you need. + + + + + Higher resolutions can represent small details more accurately in large scenes, at the cost of lower performance. If is , consider using the lowest resolution possible. + + + + + The update policy to use for the generated heightmap. + + + + + If , the will follow the current camera in global space. The does not need to be a child of the node for this to work. + Following the camera has a performance cost, as it will force the heightmap to update whenever the camera moves. Consider lowering to improve performance if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'resolution' property. + + + + + Cached name for the 'update_mode' property. + + + + + Cached name for the 'follow_camera_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_resolution' method. + + + + + Cached name for the 'get_resolution' method. + + + + + Cached name for the 'set_update_mode' method. + + + + + Cached name for the 'get_update_mode' method. + + + + + Cached name for the 'set_follow_camera_enabled' method. + + + + + Cached name for the 'is_follow_camera_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A baked signed distance field 3D particle collision shape affecting 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 , but it requires a baking step. + Baking: The signed distance field texture can be baked by selecting the node in the editor, then clicking Bake SDF at the top of the 3D viewport. Any visible s within the will be taken into account for baking, regardless of their . + Note: Baking a 's 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 s into its property in an exported project. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + Bake a 16×16×16 signed distance field. This is the fastest option, but also the least precise. + + + + + Bake a 32×32×32 signed distance field. + + + + + Bake a 64×64×64 signed distance field. + + + + + Bake a 128×128×128 signed distance field. + + + + + Bake a 256×256×256 signed distance field. + + + + + Bake a 512×512×512 signed distance field. This is the slowest option, but also the most precise. + + + + + Represents the size of the enum. + + + + + The collision SDF's size in 3D units. To improve SDF quality, the should be set as small as possible while covering the parts of the scene you need. + + + + + The bake resolution to use for the signed distance field . The texture must be baked again for changes to the property to be effective. Higher resolutions have a greater performance cost and take more time to bake. Higher resolutions also result in larger baked textures, leading to increased VRAM and storage space requirements. To improve performance and reduce bake times, use the lowest resolution possible for the object you're representing the collision of. + + + + + The collision shape's thickness. Unlike other particle colliders, is actually hollow on the inside. can be increased to prevent particles from tunneling through the collision shape at high speeds, or when the is moved. + + + + + The visual layers to account for when baking the particle collision SDF. Only s whose match with this will be included in the generated particle collision SDF. By default, all objects are taken into account for the particle collision SDF baking. + + + + + The 3D texture representing the signed distance field. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'resolution' property. + + + + + Cached name for the 'thickness' property. + + + + + Cached name for the 'bake_mask' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_resolution' method. + + + + + Cached name for the 'get_resolution' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_thickness' method. + + + + + Cached name for the 'get_thickness' method. + + + + + Cached name for the 'set_bake_mask' method. + + + + + Cached name for the 'get_bake_mask' method. + + + + + Cached name for the 'set_bake_mask_value' method. + + + + + Cached name for the 'get_bake_mask_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A sphere-shaped 3D particle collision shape affecting nodes. + Particle collision shapes work in real-time and can be moved, rotated and scaled during gameplay. Unlike attractors, non-uniform scaling of collision shapes is not supported. + Note: must be or on the 's process material for collision to work. + Note: Particle collision only affects , not . + + + + + The collision sphere's radius in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The (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. + + + + + The minimum difference between the pivot points' axes. + + + + + The maximum difference between the pivot points' axes. + + + + + A factor applied to the movement across the axes. The lower, the slower the movement. + + + + + The amount of restitution on the axes' movement. The lower, the more momentum gets lost. + + + + + The amount of damping that happens at the linear motion across the axes. + + + + + The velocity the linear motor will try to reach. + + + + + The maximum force the linear motor will apply while trying to reach the velocity target. + + + + + The minimum rotation in negative direction to break loose and rotate around the axes. + + + + + The minimum rotation in positive direction to break loose and rotate around the axes. + + + + + The speed of all rotations across the axes. + + + + + The amount of rotational damping across the axes. The lower, the more damping occurs. + + + + + The amount of rotational restitution across the axes. The lower, the more restitution occurs. + + + + + The maximum amount of force that can occur, when rotating around the axes. + + + + + When rotating across the axes, this error tolerance factor defines how much the correction gets slowed down. The lower, the slower. + + + + + Target speed for the motor at the axes. + + + + + Maximum acceleration for the motor at the axes. + + + + + Represents the size of the enum. + + + + + If enabled, linear motion is possible within the given limits. + + + + + If enabled, rotational motion is possible within the given limits. + + + + + If enabled, there is a rotational motor across these axes. + + + + + If enabled, there is a linear motor across these axes. + + + + + Represents the size of the enum. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param_x' method. + + + + + Cached name for the 'get_param_x' method. + + + + + Cached name for the 'set_param_y' method. + + + + + Cached name for the 'get_param_y' method. + + + + + Cached name for the 'set_param_z' method. + + + + + Cached name for the 'get_param_z' method. + + + + + Cached name for the 'set_flag_x' method. + + + + + Cached name for the 'get_flag_x' method. + + + + + Cached name for the 'set_flag_y' method. + + + + + Cached name for the 'get_flag_y' method. + + + + + Cached name for the 'set_flag_z' method. + + + + + Cached name for the 'get_flag_z' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 2D. + + + + + Create regions where either subject or clip polygons (or both) are filled. + + + + + Create regions where subject polygons are filled except where clip polygons are filled. + + + + + Create regions where both subject and clip polygons are filled. + + + + + Create regions where either subject or clip polygons are filled but not where both are filled. + + + + + Squaring is applied uniformally at all convex edge joins at 1 * delta. + + + + + While flattened paths can never perfectly trace an arc, they are approximated by a series of arc chords. + + + + + 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. + + + + + Endpoints are joined using the value and the path filled as a polygon. + + + + + Endpoints are joined using the value and the path filled as a polyline. + + + + + Endpoints are squared off with no extension. + + + + + Endpoints are squared off and extended by delta units. + + + + + Endpoints are rounded off and extended by delta units. + + + + + Returns if is inside the circle or if it's located exactly on the circle's boundary, otherwise returns . + + + + + Given the 2D segment (, ), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position and has radius . If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not). + + + + + Checks if the two segments (, ) and (, ) intersect. If yes, return the point of intersection as . If no intersection takes place, returns . + + + + + Returns the point of intersection between the two lines (, ) and (, ). Returns a , or if the lines are parallel. + from and dir are not endpoints of a line segment or ray but the slope (dir) and a known point (from) on that line. + + var fromA = Vector2.Zero; + var dirA = Vector2.Right; + var fromB = Vector2.Down; + + // Returns new Vector2(1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1)); + // Returns new Vector2(-1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1)); + // Returns null + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right); + + + + + + Given the two 2D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 2D point on the 2D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 2D point on the 2D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns if is inside the triangle specified by , and . + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Returns the Bresenham line between the and points. A Bresenham line is a series of pixels that draws a line and is always 1-pixel thick on every row and column of the drawing (never more, never less). + Example code to draw a line between two nodes using a series of calls: + + func _draw(): + for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB.position): + draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE) + + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_point_in_circle' method. + + + + + Cached name for the 'segment_intersects_circle' method. + + + + + Cached name for the 'segment_intersects_segment' method. + + + + + Cached name for the 'line_intersects_line' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'point_is_inside_triangle' method. + + + + + Cached name for the 'is_polygon_clockwise' method. + + + + + Cached name for the 'is_point_in_polygon' method. + + + + + Cached name for the 'triangulate_polygon' method. + + + + + Cached name for the 'triangulate_delaunay' method. + + + + + Cached name for the 'convex_hull' method. + + + + + Cached name for the 'decompose_polygon_in_convex' method. + + + + + Cached name for the 'merge_polygons' method. + + + + + Cached name for the 'clip_polygons' method. + + + + + Cached name for the 'intersect_polygons' method. + + + + + Cached name for the 'exclude_polygons' method. + + + + + Cached name for the 'clip_polyline_with_polygon' method. + + + + + Cached name for the 'intersect_polyline_with_polygon' method. + + + + + Cached name for the 'offset_polygon' method. + + + + + Cached name for the 'offset_polyline' method. + + + + + Cached name for the 'make_atlas' method. + + + + + Cached name for the 'bresenham_line' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 2D. + + + + + Returns if is inside the circle or if it's located exactly on the circle's boundary, otherwise returns . + + + + + Given the 2D segment (, ), returns the position on the segment (as a number between 0 and 1) at which the segment hits the circle that is located at position and has radius . If the segment does not intersect the circle, -1 is returned (this is also the case if the line extending the segment would intersect the circle, but the segment does not). + + + + + Checks if the two segments (, ) and (, ) intersect. If yes, return the point of intersection as . If no intersection takes place, returns . + + + + + Returns the point of intersection between the two lines (, ) and (, ). Returns a , or if the lines are parallel. + from and dir are not endpoints of a line segment or ray but the slope (dir) and a known point (from) on that line. + + var fromA = Vector2.Zero; + var dirA = Vector2.Right; + var fromB = Vector2.Down; + + // Returns new Vector2(1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(1, -1)); + // Returns new Vector2(-1, 0) + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, new Vector2(-1, -1)); + // Returns null + Geometry2D.LineIntersectsLine(fromA, dirA, fromB, Vector2.Right); + + + + + + Given the two 2D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 2D point on the 2D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 2D point on the 2D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns if is inside the triangle specified by , and . + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if 's vertices are ordered in clockwise order, otherwise returns . + Note: Assumes a Cartesian coordinate system where +x is right and +y is up. If using screen coordinates (+y is down), the result will need to be flipped (i.e. a result will indicate counter-clockwise). + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Returns if is inside or if it's located exactly on polygon's boundary, otherwise returns . + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the polygon specified by the points in . Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). Output triangles will always be counter clockwise, and the contour will be flipped if it's clockwise. If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Triangulates the area specified by discrete set of such that no point is inside the circumcircle of any resulting triangle. Returns a [] where each triangle consists of three consecutive point indices into (i.e. the returned array will have n * 3 elements, with n being the number of found triangles). If the triangulation did not succeed, an empty [] is returned. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Given an array of s, returns the convex hull as a list of points in counterclockwise order. The last point is the same as the first one. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Decomposes the into multiple convex hulls and returns an array of []. + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Merges (combines) and and returns an array of merged polygons. This performs between polygons. + The operation may result in an outer polygon (boundary) and multiple inner polygons (holes) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polygons. This performs between polygons. Returns an empty array if completely overlaps . + If is enclosed by , returns an outer polygon (boundary) and inner polygon (hole) which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Intersects with and returns an array of intersected polygons. This performs between polygons. In other words, returns common area shared by polygons. Returns an empty array if no intersection occurs. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Mutually excludes common area defined by intersection of and (see ) and returns an array of excluded polygons. This performs between polygons. In other words, returns all but common area between polygons. + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Clips against and returns an array of clipped polylines. This performs between the polyline and the polygon. This operation can be thought of as cutting a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Intersects with and returns an array of intersected polylines. This performs between the polyline and the polygon. This operation can be thought of as chopping a line with a closed shape. + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels). If is positive, makes the polygon grow outward. If is negative, shrinks the polygon inward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. Returns an empty array if is negative and the absolute value of it approximately exceeds the minimum bounding rectangle dimensions of the polygon. + Each polygon's vertices will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + Note: To translate the polygon's vertices specifically, multiply them to a : + + var polygon = new Vector2[] { new Vector2(0, 0), new Vector2(100, 0), new Vector2(100, 100), new Vector2(0, 100) }; + var offset = new Vector2(50, 50); + polygon = new Transform2D(0, offset) * polygon; + GD.Print((Variant)polygon); // Prints [(50, 50), (150, 50), (150, 150), (50, 150)] + + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Inflates or deflates by units (pixels), producing polygons. If is positive, makes the polyline grow outward. Returns an array of polygons because inflating/deflating may result in multiple discrete polygons. If is negative, returns an empty array. + Each polygon's vertices will be rounded as determined by , see . + Each polygon's endpoints will be rounded as determined by , see . + The operation may result in an outer polygon (boundary) and inner polygon (hole) produced which could be distinguished by calling . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Given an array of s representing tiles, builds an atlas. The returned dictionary has two keys: points is a [] that specifies the positions of each tile, size contains the overall size of the whole atlas as . + + + + + Returns the Bresenham line between the and points. A Bresenham line is a series of pixels that draws a line and is always 1-pixel thick on every row and column of the drawing (never more, never less). + Example code to draw a line between two nodes using a series of calls: + + func _draw(): + for pixel in Geometry2D.bresenham_line($MarkerA.position, $MarkerB.position): + draw_rect(Rect2(pixel, Vector2.ONE), Color.WHITE) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_point_in_circle' method. + + + + + Cached name for the 'segment_intersects_circle' method. + + + + + Cached name for the 'segment_intersects_segment' method. + + + + + Cached name for the 'line_intersects_line' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'point_is_inside_triangle' method. + + + + + Cached name for the 'is_polygon_clockwise' method. + + + + + Cached name for the 'is_point_in_polygon' method. + + + + + Cached name for the 'triangulate_polygon' method. + + + + + Cached name for the 'triangulate_delaunay' method. + + + + + Cached name for the 'convex_hull' method. + + + + + Cached name for the 'decompose_polygon_in_convex' method. + + + + + Cached name for the 'merge_polygons' method. + + + + + Cached name for the 'clip_polygons' method. + + + + + Cached name for the 'intersect_polygons' method. + + + + + Cached name for the 'exclude_polygons' method. + + + + + Cached name for the 'clip_polyline_with_polygon' method. + + + + + Cached name for the 'intersect_polyline_with_polygon' method. + + + + + Cached name for the 'offset_polygon' method. + + + + + Cached name for the 'offset_polyline' method. + + + + + Cached name for the 'make_atlas' method. + + + + + Cached name for the 'bresenham_line' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a set of helper functions to create geometric shapes, compute intersections between shapes, and process various other geometric operations in 3D. + + + + + Calculates and returns all the vertex points of a convex shape defined by an array of . + + + + + Returns an array with 6 s that describe the sides of a box centered at the origin. The box size is defined by , which represents one (positive) corner of the box (i.e. half its actual size). + + + + + Returns an array of s closely bounding a faceted cylinder centered at the origin with radius and height . The parameter defines how many planes will be generated for the round part of the cylinder. The parameter describes the axis along which the cylinder is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Returns an array of s closely bounding a faceted capsule centered at the origin with radius and height . The parameter defines how many planes will be generated for the side part of the capsule, whereas gives the number of latitudinal steps at the bottom and top of the capsule. The parameter describes the axis along which the capsule is oriented (0 for X, 1 for Y, 2 for Z). + + + + + Given the two 3D segments (, ) and (, ), finds those two points on the two segments that are closest to each other. Returns a [] that contains this point on (, ) as well the accompanying point on (, ). + + + + + Returns the 3D point on the 3D segment (, ) that is closest to . The returned point will always be inside the specified segment. + + + + + Returns the 3D point on the 3D line defined by (, ) that is closest to . The returned point can be inside the segment (, ) or outside of it, i.e. somewhere on the line extending from the segment. + + + + + Returns a containing weights based on how close a 3D position () is to a triangle's different vertices (, and ). This is useful for interpolating between the data of different vertices in a triangle. One example use case is using this to smoothly rotate over a mesh instead of relying solely on face normals. + Here is a more detailed explanation of barycentric coordinates. + + + + + Tests if the 3D ray starting at with the direction of intersects the triangle specified by , and . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Tests if the segment (, ) intersects the triangle , , . If yes, returns the point of intersection as . If no intersection takes place, returns . + + + + + Checks if the segment (, ) intersects the sphere that is located at and has radius . If no, returns an empty []. If yes, returns a [] containing the point of intersection and the sphere's normal at the point of intersection. + + + + + Checks if the segment (, ) intersects the cylinder with height that is centered at the origin and has radius . If no, returns an empty []. If an intersection takes place, the returned array contains the point of intersection and the cylinder's normal at the point of intersection. + + + + + Given a convex hull defined though the s in the array , tests if the segment (, ) intersects with that hull. If an intersection is found, returns a [] containing the point the intersection and the hull's normal. Otherwise, returns an empty array. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Clips the polygon defined by the points in against the and returns the points of the clipped polygon. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Tetrahedralizes the volume specified by a discrete set of in 3D space, ensuring that no point lies within the circumsphere of any resulting tetrahedron. The method returns a [] where each tetrahedron consists of four consecutive point indices into the array (resulting in an array with n * 4 elements, where n is the number of tetrahedra found). If the tetrahedralization is unsuccessful, an empty [] is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'compute_convex_mesh_points' method. + + + + + Cached name for the 'build_box_planes' method. + + + + + Cached name for the 'build_cylinder_planes' method. + + + + + Cached name for the 'build_capsule_planes' method. + + + + + Cached name for the 'get_closest_points_between_segments' method. + + + + + Cached name for the 'get_closest_point_to_segment' method. + + + + + Cached name for the 'get_closest_point_to_segment_uncapped' method. + + + + + Cached name for the 'get_triangle_barycentric_coords' method. + + + + + Cached name for the 'ray_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_triangle' method. + + + + + Cached name for the 'segment_intersects_sphere' method. + + + + + Cached name for the 'segment_intersects_cylinder' method. + + + + + Cached name for the 'segment_intersects_convex' method. + + + + + Cached name for the 'clip_polygon' method. + + + + + Cached name for the 'tetrahedralize_delaunay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base node for geometry-based visual instances. Shares some common functionality like visibility and custom materials. + + + + + Will not cast any shadows. Use this to improve performance for small geometry that is unlikely to cast noticeable shadows (such as debris). + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Disabled global illumination mode. Use for dynamic objects that do not contribute to global illumination (such as characters). When using and SDFGI, the geometry will receive indirect lighting and reflections but the geometry will not be considered in GI baking. + + + + + Baked global illumination mode. Use for static objects that contribute to global illumination (such as level geometry). This GI mode is effective when using , SDFGI and . + + + + + Dynamic global illumination mode. Use for dynamic objects that contribute to global illumination. This GI mode is only effective when using , but it has a higher performance impact than . When using other GI methods, this will act the same as . When using , the object will receive indirect lighting using lightmap probes instead of using the baked lightmap texture. + + + + + The standard texel density for lightmapping with . + + + + + Multiplies texel density by 2× for lightmapping with . To ensure consistency in texel density, use this when scaling a mesh by a factor between 1.5 and 3.0. + + + + + Multiplies texel density by 4× for lightmapping with . To ensure consistency in texel density, use this when scaling a mesh by a factor between 3.0 and 6.0. + + + + + Multiplies texel density by 8× for lightmapping with . To ensure consistency in texel density, use this when scaling a mesh by a factor greater than 6.0. + + + + + Represents the size of the enum. + + + + + 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 and for more information. + + + + + Will fade-out itself when reaching the limits of its own visibility range. This is slower than , but it can provide smoother transitions. The fading range is determined by and . + Note: Only supported when using the Forward+ rendering method. When using the Mobile or Compatibility rendering method, this mode acts like but with hysteresis disabled. + + + + + Will fade-in its visibility dependencies (see ) when reaching the limits of its own visibility range. This is slower than , but it can provide smoother transitions. The fading range is determined by and . + Note: Only supported when using the Forward+ rendering method. When using the Mobile or Compatibility rendering method, this mode acts like but with hysteresis disabled. + + + + + The material override for the whole geometry. + If a material is assigned to this property, it will be used instead of any material set in any material slot of the mesh. + + + + + The material overlay for the whole geometry. + If a material is assigned to this property, it will be rendered on top of any other active material for all the surfaces. + + + + + The transparency applied to the whole geometry (as a multiplier of the materials' existing transparency). 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting to a value greater than 0.0 (exclusive) will not disable shadow rendering. + In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in. + Note: is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are. + Note: Only supported when using the Forward+ rendering method. When using the Mobile or Compatibility rendering method, is ignored and is considered as always being 0.0. + + + + + The selected shadow casting flag. See for possible values. + + + + + The extra distance added to the GeometryInstance3D's bounding box () to increase its cull box. + + + + + Overrides the bounding box of this node with a custom one. This can be used to avoid the expensive recalculation that happens when a skeleton is used with a or to have precise control over the 's bounding box. To use the default AABB, set value to an with all fields set to 0.0. To avoid frustum culling, set to a very large AABB that covers your entire game world such as AABB(-10000, -10000, -10000, 20000, 20000, 20000). To disable all forms of culling (including occlusion culling), call on the 's . + + + + + Changes how quickly the mesh transitions to a lower level of detail. A value of 0 will force the mesh to its lowest level of detail, a value of 1 will use the default settings, and larger values will keep the mesh in a higher level of detail at farther distances. + Useful for testing level of detail transitions in the editor. + + + + + If , disables occlusion culling for this instance. Useful for gizmos that must be rendered even when occlusion culling is in use. + Note: does not affect frustum culling (which is what happens when an object is not visible given the camera's angle). To avoid frustum culling, set to a very large AABB that covers your entire game world such as AABB(-10000, -10000, -10000, 20000, 20000, 20000). + + + + + The global illumination mode to use for the whole geometry. To avoid inconsistent results, use a mode that matches the purpose of the mesh during gameplay (static/dynamic). + Note: Lights' bake mode will also affect the global illumination rendering. See . + + + + + The texel density to use for lightmapping in . Greater scale values provide higher resolution in the lightmap, which can result in sharper shadows for lights that have both direct and indirect light baked. However, greater scale values will also increase the space taken by the mesh in the lightmap texture, which increases the memory, storage, and bake time requirements. When using a single mesh at different scales, consider adjusting this value to keep the lightmap texel density consistent across meshes. + For example, doubling doubles the lightmap texture resolution for this object on each axis, so it will quadruple the texel count. + + + + + The texel density to use for lightmapping in . + + + + + Starting distance from which the GeometryInstance3D will be visible, taking into account as well. The default value of 0 is used to disable the range check. + + + + + Margin for the threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the threshold by this amount. + If is , this acts as a hysteresis distance. If is or , this acts as a fade transition distance and must be set to a value greater than 0.0 for the effect to be noticeable. + + + + + Distance from which the GeometryInstance3D will be hidden, taking into account as well. The default value of 0 is used to disable the range check. + + + + + Margin for the threshold. The GeometryInstance3D will only change its visibility state when it goes over or under the threshold by this amount. + If is , this acts as a hysteresis distance. If is or , this acts as a fade transition distance and must be set to a value greater than 0.0 for the effect to be noticeable. + + + + + Controls which instances will be faded when approaching the limits of the visibility range. See for possible values. + + + + + Set the value of a shader uniform for this instance only (per-instance uniform). See also to assign a uniform on all instances using the same . + Note: For a shader uniform to be assignable on a per-instance basis, it must be defined with instance uniform ... rather than uniform ... in the shader code. + Note: is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector). + Note: Per-instance shader uniforms are currently only available in 3D, so there is no 2D equivalent of this method. + + + + + Get the value of a shader parameter as set on this instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'material_override' property. + + + + + Cached name for the 'material_overlay' property. + + + + + Cached name for the 'transparency' property. + + + + + Cached name for the 'cast_shadow' property. + + + + + Cached name for the 'extra_cull_margin' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'lod_bias' property. + + + + + Cached name for the 'ignore_occlusion_culling' property. + + + + + Cached name for the 'gi_mode' property. + + + + + Cached name for the 'gi_lightmap_texel_scale' property. + + + + + Cached name for the 'gi_lightmap_scale' property. + + + + + Cached name for the 'visibility_range_begin' property. + + + + + Cached name for the 'visibility_range_begin_margin' property. + + + + + Cached name for the 'visibility_range_end' property. + + + + + Cached name for the 'visibility_range_end_margin' property. + + + + + Cached name for the 'visibility_range_fade_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_material_override' method. + + + + + Cached name for the 'get_material_override' method. + + + + + Cached name for the 'set_material_overlay' method. + + + + + Cached name for the 'get_material_overlay' method. + + + + + Cached name for the 'set_cast_shadows_setting' method. + + + + + Cached name for the 'get_cast_shadows_setting' method. + + + + + Cached name for the 'set_lod_bias' method. + + + + + Cached name for the 'get_lod_bias' method. + + + + + Cached name for the 'set_transparency' method. + + + + + Cached name for the 'get_transparency' method. + + + + + Cached name for the 'set_visibility_range_end_margin' method. + + + + + Cached name for the 'get_visibility_range_end_margin' method. + + + + + Cached name for the 'set_visibility_range_end' method. + + + + + Cached name for the 'get_visibility_range_end' method. + + + + + Cached name for the 'set_visibility_range_begin_margin' method. + + + + + Cached name for the 'get_visibility_range_begin_margin' method. + + + + + Cached name for the 'set_visibility_range_begin' method. + + + + + Cached name for the 'get_visibility_range_begin' method. + + + + + Cached name for the 'set_visibility_range_fade_mode' method. + + + + + Cached name for the 'get_visibility_range_fade_mode' method. + + + + + Cached name for the 'set_instance_shader_parameter' method. + + + + + Cached name for the 'get_instance_shader_parameter' method. + + + + + Cached name for the 'set_extra_cull_margin' method. + + + + + Cached name for the 'get_extra_cull_margin' method. + + + + + Cached name for the 'set_lightmap_texel_scale' method. + + + + + Cached name for the 'get_lightmap_texel_scale' method. + + + + + Cached name for the 'set_lightmap_scale' method. + + + + + Cached name for the 'get_lightmap_scale' method. + + + + + Cached name for the 'set_gi_mode' method. + + + + + Cached name for the 'get_gi_mode' method. + + + + + Cached name for the 'set_ignore_occlusion_culling' method. + + + + + Cached name for the 'is_ignoring_occlusion_culling' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource describes a color transition by defining a set of colored points and how to interpolate between them. + See also which supports more complex easing methods, but does not support colors. + + + + + Linear interpolation. + + + + + 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. + + + + + Cubic interpolation. + + + + + sRGB color space. + + + + + Linear sRGB color space. + + + + + Oklab color space. This color space provides a smooth and uniform-looking transition between colors. + + + + + The algorithm used to interpolate between points of the gradient. See for available modes. + + + + + The color space used to interpolate between points of the gradient. It does not affect the returned colors, which will always be in sRGB space. See for available modes. + Note: This setting has no effect when is set to . + + + + + Gradient's offsets as a []. + Note: Setting this property updates all offsets at once. To update any offset individually use . + + + + + Gradient's colors as a []. + Note: Setting this property updates all colors at once. To update any color individually use . + + + + + Adds the specified color to the gradient, with the specified offset. + + + + + Removes the color at index . + + + + + Sets the offset for the gradient color at index . + + + + + Returns the offset of the gradient color at index . + + + + + Reverses/mirrors the gradient. + Note: This method mirrors all points around the middle of the gradient, which may produce unexpected results when is set to . + + + + + Sets the color of the gradient color at index . + + + + + Returns the color of the gradient color at index . + + + + + Returns the interpolated color specified by . + + + + + Returns the number of colors in the gradient. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'interpolation_mode' property. + + + + + Cached name for the 'interpolation_color_space' property. + + + + + Cached name for the 'offsets' property. + + + + + Cached name for the 'colors' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'reverse' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'sample' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'set_offsets' method. + + + + + Cached name for the 'get_offsets' method. + + + + + Cached name for the 'set_colors' method. + + + + + Cached name for the 'get_colors' method. + + + + + Cached name for the 'set_interpolation_mode' method. + + + + + Cached name for the 'get_interpolation_mode' method. + + + + + Cached name for the 'set_interpolation_color_space' method. + + + + + Cached name for the 'get_interpolation_color_space' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 1D texture that obtains colors from a 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 , and . + + + + + The used to fill the texture. + + + + + The number of color samples that will be obtained from the . + + + + + If , the generated texture will support high dynamic range ( format). This allows for glow effects to work if is . If , the generated texture will use low dynamic range; overbright colors will be clamped ( format). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gradient' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'use_hdr' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gradient' method. + + + + + Cached name for the 'get_gradient' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_use_hdr' method. + + + + + Cached name for the 'is_using_hdr' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D texture that obtains colors from a 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 and ). See also , and . + + + + + The colors are linearly interpolated in a straight line. + + + + + The colors are linearly interpolated in a circular pattern. + + + + + The colors are linearly interpolated in a square pattern. + + + + + The gradient fill is restricted to the range defined by to offsets. + + + + + The texture is filled starting from to offsets, repeating the same pattern in both directions. + + + + + The texture is filled starting from to offsets, mirroring the pattern in both directions. + + + + + The used to fill the texture. + + + + + The number of horizontal color samples that will be obtained from the , which also represents the texture's width. + + + + + The number of vertical color samples that will be obtained from the , which also represents the texture's height. + + + + + If , the generated texture will support high dynamic range ( format). This allows for glow effects to work if is . If , the generated texture will use low dynamic range; overbright colors will be clamped ( format). + + + + + The gradient fill type, one of the values. The texture is filled by interpolating colors starting from to offsets. + + + + + The initial offset used to fill the texture specified in UV coordinates. + + + + + The final offset used to fill the texture specified in UV coordinates. + + + + + The gradient repeat type, one of the values. The texture is filled starting from to offsets by default, but the gradient fill can be repeated to cover the entire texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gradient' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'use_hdr' property. + + + + + Cached name for the 'fill' property. + + + + + Cached name for the 'fill_from' property. + + + + + Cached name for the 'fill_to' property. + + + + + Cached name for the 'repeat' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gradient' method. + + + + + Cached name for the 'get_gradient' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'set_use_hdr' method. + + + + + Cached name for the 'is_using_hdr' method. + + + + + Cached name for the 'set_fill' method. + + + + + Cached name for the 'get_fill' method. + + + + + Cached name for the 'set_fill_from' method. + + + + + Cached name for the 'get_fill_from' method. + + + + + Cached name for the 'set_fill_to' method. + + + + + Cached name for the 'get_fill_to' method. + + + + + Cached name for the 'set_repeat' method. + + + + + Cached name for the 'get_repeat' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows to create custom elements for a 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 . + + + + + The offset of the GraphElement, relative to the scroll offset of the . + + + + + If , the user can resize the GraphElement. + Note: Dragging the handle will only emit the and signals, the GraphElement needs to be resized manually. + + + + + If , the user can drag the GraphElement. + + + + + If , the user can select the GraphElement. + + + + + If , the GraphElement is selected. + + + + + Emitted when the GraphElement is selected. + + + + + Emitted when the GraphElement is deselected. + + + + + Emitted when displaying the GraphElement over other ones is requested. Happens on focusing (clicking into) the GraphElement. + + + + + Emitted when removing the GraphElement is requested. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when resizing the GraphElement is requested. Happens on dragging the resizer handle (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when releasing the mouse button after dragging the resizer handle (see ). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the GraphElement is dragged. + + + + + Emitted when the GraphElement is moved. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position_offset' property. + + + + + Cached name for the 'resizable' property. + + + + + Cached name for the 'draggable' property. + + + + + Cached name for the 'selectable' property. + + + + + Cached name for the 'selected' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_resizable' method. + + + + + Cached name for the 'is_resizable' method. + + + + + Cached name for the 'set_draggable' method. + + + + + Cached name for the 'is_draggable' method. + + + + + Cached name for the 'set_selectable' method. + + + + + Cached name for the 'is_selectable' method. + + + + + Cached name for the 'set_selected' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'set_position_offset' method. + + + + + Cached name for the 'get_position_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'node_selected' signal. + + + + + Cached name for the 'node_deselected' signal. + + + + + Cached name for the 'raise_request' signal. + + + + + Cached name for the 'delete_request' signal. + + + + + Cached name for the 'resize_request' signal. + + + + + Cached name for the 'resize_end' signal. + + + + + Cached name for the 'dragged' signal. + + + + + Cached name for the 'position_offset_changed' signal. + + + + + GraphFrame is a special to which other s can be attached. It can be configured to automatically resize to enclose all attached s. If the frame is moved, all the attached s inside it will be moved as well. + A GraphFrame is always kept behind the connection layer and other s inside a . + + + + + Title of the frame. + + + + + If , the frame's rect will be adjusted automatically to enclose all attached s. + + + + + The margin around the attached nodes that is used to calculate the size of the frame when is . + + + + + The margin inside the frame that can be used to drag the frame. + + + + + If , the tint color will be used to tint the frame. + + + + + The color of the frame when is . + + + + + Returns the used for the title bar, only containing a for displaying the title by default. + This can be used to add custom controls to the title bar such as option or close buttons. + + + + + Emitted when or changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'autoshrink_enabled' property. + + + + + Cached name for the 'autoshrink_margin' property. + + + + + Cached name for the 'drag_margin' property. + + + + + Cached name for the 'tint_color_enabled' property. + + + + + Cached name for the 'tint_color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'get_titlebar_hbox' method. + + + + + Cached name for the 'set_autoshrink_enabled' method. + + + + + Cached name for the 'is_autoshrink_enabled' method. + + + + + Cached name for the 'set_autoshrink_margin' method. + + + + + Cached name for the 'get_autoshrink_margin' method. + + + + + Cached name for the 'set_drag_margin' method. + + + + + Cached name for the 'get_drag_margin' method. + + + + + Cached name for the 'set_tint_color_enabled' method. + + + + + Cached name for the 'is_tint_color_enabled' method. + + + + + Cached name for the 'set_tint_color' method. + + + + + Cached name for the 'get_tint_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'autoshrink_changed' signal. + + + + + arranges its child controls in a grid layout. The number of columns is specified by the property, whereas the number of rows depends on how many are needed for the child controls. The number of rows and columns is preserved for every size of the container. + Note: only works with child nodes inheriting from . It won't rearrange child nodes inheriting from . + + + + + The number of columns in the . If modified, reorders its Control-derived children to accommodate the new layout. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'columns' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_columns' method. + + + + + Cached name for the 'get_columns' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 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 . All cells in the map have the same dimensions. + Internally, a GridMap is split into a sparse collection of octants for efficient rendering and physics processing. Every octant has the same dimensions and can contain several cells. + Note: GridMap doesn't extend and therefore can't be hidden or cull masked based on . If you make a light not affect the first layer, the whole GridMap won't be lit by the light in question. + + + + + Invalid cell item that can be used in to clear cells (or represent an empty cell in ). + + + + + The assigned . + + + + + Overrides the default friction and bounce physics properties for the whole . + + + + + The dimensions of the grid's cells. + This does not affect the size of the meshes. See . + + + + + The size of each octant measured in number of cells. This applies to all three axis. + + + + + If , grid items are centered on the X axis. + + + + + If , grid items are centered on the Y axis. + + + + + If , grid items are centered on the Z axis. + + + + + The scale of the cell items. + This does not affect the size of the grid cells themselves, only the items in them. This can be used to make cell items overlap their neighbors. + + + + + The physics layers this GridMap is in. + GridMaps act as static bodies, meaning they aren't affected by gravity or other forces. They only affect other physics bodies that collide with them. + + + + + The physics layers this GridMap detects collisions in. See Collision layers and masks in the documentation for more information. + + + + + The priority used to solve colliding when occurring penetration. The higher the priority is, the lower the penetration into the object will be. This can for example be used to prevent the player from breaking through the boundaries of a level. + + + + + If , this GridMap creates a navigation region for each cell that uses a item with a navigation mesh. The created navigation region will use the navigation layers bitmask assigned to the 's item. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Sets the of the navigation map this GridMap node should use for its cell baked navigation meshes. + + + + + Returns the of the navigation map this GridMap node uses for its cell baked navigation meshes. + This function returns always the map set on the GridMap node and not the map on the NavigationServer. If the map is changed directly with the NavigationServer API the GridMap node will not be aware of the map change. + + + + + Sets the mesh index for the cell referenced by its grid coordinates. + A negative item index such as will clear the cell. + Optionally, the item's orientation can be passed. For valid orientation values, see . + + + + + The item index located at the given grid coordinates. If the cell is empty, will be returned. + + + + + The orientation of the cell at the given grid coordinates. -1 is returned if the cell is empty. + + + + + Returns the basis that gives the specified cell its orientation. + + + + + Returns one of 24 possible rotations that lie along the vectors (x,y,z) with each component being either -1, 0, or 1. For further details, refer to the Godot source code. + + + + + This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1, 0, or 1, and returns the index (in the range from 0 to 23) of the point best representing the orientation of the object. For further details, refer to the Godot source code. + + + + + Returns the map coordinates of the cell containing the given . If is in global coordinates, consider using before passing it to this method. See also . + + + + + Returns the position of a grid cell in the GridMap's local coordinate space. To convert the returned value into global coordinates, use . See also . + + + + + This method does nothing. + + + + + Clear all cells. + + + + + Returns an array of with the non-empty cell coordinates in the grid map. + + + + + Returns an array of all cells with the given item index specified in . + + + + + Returns an array of and references corresponding to the non-empty cells in the grid. The transforms are specified in local space. + + + + + Returns an array of es and references of all bake meshes that exist within the current GridMap. + + + + + Returns of a baked mesh with the given . + + + + + Clears all baked meshes. See . + + + + + Bakes lightmap data for all meshes in the assigned . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when changes. + + + + + Emitted when the of this GridMap changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh_library' property. + + + + + Cached name for the 'physics_material' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'cell_octant_size' property. + + + + + Cached name for the 'cell_center_x' property. + + + + + Cached name for the 'cell_center_y' property. + + + + + Cached name for the 'cell_center_z' property. + + + + + Cached name for the 'cell_scale' property. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_priority' property. + + + + + Cached name for the 'bake_navigation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_collision_priority' method. + + + + + Cached name for the 'get_collision_priority' method. + + + + + Cached name for the 'set_physics_material' method. + + + + + Cached name for the 'get_physics_material' method. + + + + + Cached name for the 'set_bake_navigation' method. + + + + + Cached name for the 'is_baking_navigation' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_mesh_library' method. + + + + + Cached name for the 'get_mesh_library' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_cell_scale' method. + + + + + Cached name for the 'get_cell_scale' method. + + + + + Cached name for the 'set_octant_size' method. + + + + + Cached name for the 'get_octant_size' method. + + + + + Cached name for the 'set_cell_item' method. + + + + + Cached name for the 'get_cell_item' method. + + + + + Cached name for the 'get_cell_item_orientation' method. + + + + + Cached name for the 'get_cell_item_basis' method. + + + + + Cached name for the 'get_basis_with_orthogonal_index' method. + + + + + Cached name for the 'get_orthogonal_index_from_basis' method. + + + + + Cached name for the 'local_to_map' method. + + + + + Cached name for the 'map_to_local' method. + + + + + Cached name for the 'resource_changed' method. + + + + + Cached name for the 'set_center_x' method. + + + + + Cached name for the 'get_center_x' method. + + + + + Cached name for the 'set_center_y' method. + + + + + Cached name for the 'get_center_y' method. + + + + + Cached name for the 'set_center_z' method. + + + + + Cached name for the 'get_center_z' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_used_cells_by_item' method. + + + + + Cached name for the 'get_meshes' method. + + + + + Cached name for the 'get_bake_meshes' method. + + + + + Cached name for the 'get_bake_mesh_instance' method. + + + + + Cached name for the 'clear_baked_meshes' method. + + + + + Cached name for the 'make_baked_meshes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'cell_size_changed' signal. + + + + + Cached name for the 'changed' signal. + + + + + A physics joint that restricts the movement of two 2D physics bodies to a fixed axis. For example, a representing a piston base can be attached to a representing the piston head, moving up and down. + + + + + The groove's length. The groove is from the joint's origin towards along the joint's local Y axis. + + + + + The body B's initial anchor position defined by the joint's origin and a local offset along the joint's Y axis (along the groove). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'initial_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_initial_offset' method. + + + + + Cached name for the 'get_initial_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of that can only arrange its child controls horizontally. Child controls are rearranged automatically when their minimum size changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The HMACContext class is useful for advanced HMAC use cases, such as streaming the message as it supports creating the message over time rather than providing it all at once. + + using Godot; + using System.Diagnostics; + + public partial class MyNode : Node + { + private HmacContext _ctx = new HmacContext(); + + public override void _Ready() + { + byte[] key = "supersecret".ToUtf8Buffer(); + Error err = _ctx.Start(HashingContext.HashType.Sha256, key); + Debug.Assert(err == Error.Ok); + byte[] msg1 = "this is ".ToUtf8Buffer(); + byte[] msg2 = "super duper secret".ToUtf8Buffer(); + err = _ctx.Update(msg1); + Debug.Assert(err == Error.Ok); + err = _ctx.Update(msg2); + Debug.Assert(err == Error.Ok); + byte[] hmac = _ctx.Finish(); + GD.Print(hmac.HexEncode()); + } + } + + + + + + Initializes the HMACContext. This method cannot be called again on the same HMACContext until has been called. + + + + + Initializes the HMACContext. This method cannot be called again on the same HMACContext until has been called. + + + + + Updates the message to be HMACed. This can be called multiple times before is called to append to the message, but cannot be called until has been called. + + + + + Updates the message to be HMACed. This can be called multiple times before is called to append to the message, but cannot be called until has been called. + + + + + Returns the resulting HMAC. If the HMAC failed, an empty [] is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'finish' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal scrollbar, typically used to navigate through content that extends beyond the visible width of a control. It is a -based control and goes from left (min) to right (max). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal separator used for separating other controls that are arranged vertically. is purely visual and normally drawn as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal slider, used to adjust a value by moving a grabber along a horizontal axis. It is a -based control and goes from left (min) to right (max). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 node for a higher-level alternative. + Note: This client only needs to connect to a host once (see ) 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 for a full example and to get started. + A should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports Transport Layer Security (TLS), including server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side. + For more information on HTTP, see MDN's documentation on HTTP (or read RFC 2616 to get it straight from the source). + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead. + Note: When performing HTTP requests from a project exported to Web, keep in mind the remote server may not allow requests from foreign origins due to CORS. If you host the server in question, you should modify its backend to allow requests from foreign origins by adding the Access-Control-Allow-Origin: * HTTP header. + Note: TLS support is currently limited to TLSv1.2 and TLSv1.3. Attempting to connect to a server that only supports older (insecure) TLS versions will return an error. + Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period. + + + + + HTTP GET method. The GET method requests a representation of the specified resource. Requests using GET should only retrieve data. + + + + + 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. + + + + + 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. + + + + + 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). + + + + + HTTP DELETE method. The DELETE method requests to delete the specified resource. + + + + + HTTP OPTIONS method. The OPTIONS method asks for a description of the communication options for the target resource. Rarely used. + + + + + 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. + + + + + HTTP CONNECT method. The CONNECT method establishes a tunnel to the server identified by the target resource. Rarely used. + + + + + HTTP PATCH method. The PATCH method is used to apply partial modifications to a resource. + + + + + Represents the size of the enum. + + + + + Status: Disconnected from the server. + + + + + Status: Currently resolving the hostname for the given URL into an IP. + + + + + Status: DNS failure: Can't resolve the hostname for the given URL. + + + + + Status: Currently connecting to server. + + + + + Status: Can't connect to the server. + + + + + Status: Connection established. + + + + + Status: Currently sending request. + + + + + Status: HTTP body received. + + + + + Status: Error in HTTP connection. + + + + + Status: Error in TLS handshake. + + + + + HTTP status code 100 Continue. 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). + + + + + HTTP status code 101 Switching Protocol. Sent in response to an Upgrade request header by the client. Indicates the protocol the server is switching to. + + + + + HTTP status code 102 Processing (WebDAV). Indicates that the server has received and is processing the request, but no response is available yet. + + + + + HTTP status code 200 OK. The request has succeeded. Default response for successful requests. Meaning varies depending on the request: + - : The resource has been fetched and is transmitted in the message body. + - : The entity headers are in the message body. + - : The resource describing the result of the action is transmitted in the message body. + - : The message body contains the request message as received by the server. + + + + + HTTP status code 201 Created. 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. + + + + + HTTP status code 202 Accepted. 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. + + + + + HTTP status code 203 Non-Authoritative Information. 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. + + + + + HTTP status code 204 No Content. 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. + + + + + HTTP status code 205 Reset Content. 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. + + + + + HTTP status code 206 Partial Content. This response code is used because of a range header sent by the client to separate download into multiple streams. + + + + + HTTP status code 207 Multi-Status (WebDAV). A Multi-Status response conveys information about multiple resources in situations where multiple status codes might be appropriate. + + + + + HTTP status code 208 Already Reported (WebDAV). Used inside a DAV: propstat response element to avoid enumerating the internal members of multiple bindings to the same collection repeatedly. + + + + + HTTP status code 226 IM Used (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. + + + + + HTTP status code 300 Multiple Choice. 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. + + + + + HTTP status code 301 Moved Permanently. Redirection. This response code means the URI of requested resource has been changed. The new URI is usually included in the response. + + + + + HTTP status code 302 Found. 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. + + + + + HTTP status code 303 See Other. 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. + + + + + HTTP status code 304 Not Modified. 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 . + + + + + HTTP status code 305 Use Proxy. + + + + + HTTP status code 306 Switch Proxy. + + + + + HTTP status code 307 Temporary Redirect. 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. + + + + + HTTP status code 308 Permanent Redirect. 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. + + + + + HTTP status code 400 Bad Request. 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). + + + + + HTTP status code 401 Unauthorized. Credentials required. The request has not been applied because it lacks valid authentication credentials for the target resource. + + + + + HTTP status code 402 Payment Required. 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. + + + + + HTTP status code 403 Forbidden. The client does not have access rights to the content, i.e. they are unauthorized, so server is rejecting to give proper response. Unlike 401, the client's identity is known to the server. + + + + + HTTP status code 404 Not Found. 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. + + + + + HTTP status code 405 Method Not Allowed. 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. + + + + + HTTP status code 406 Not Acceptable. 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. + + + + + HTTP status code 407 Proxy Authentication Required. Similar to 401 Unauthorized, but it indicates that the client needs to authenticate itself in order to use a proxy. + + + + + HTTP status code 408 Request Timeout. The server did not receive a complete request message within the time that it was prepared to wait. + + + + + HTTP status code 409 Conflict. 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. + + + + + HTTP status code 410 Gone. The target resource is no longer available at the origin server and this condition is likely permanent. + + + + + HTTP status code 411 Length Required. The server refuses to accept the request without a defined Content-Length header. + + + + + HTTP status code 412 Precondition Failed. One or more conditions given in the request header fields evaluated to when tested on the server. + + + + + HTTP status code 413 Entity Too Large. The server is refusing to process a request because the request payload is larger than the server is willing or able to process. + + + + + HTTP status code 414 Request-URI Too Long. The server is refusing to service the request because the request-target is longer than the server is willing to interpret. + + + + + HTTP status code 415 Unsupported Media Type. 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. + + + + + HTTP status code 416 Requested Range Not Satisfiable. 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. + + + + + HTTP status code 417 Expectation Failed. The expectation given in the request's Expect header field could not be met by at least one of the inbound servers. + + + + + HTTP status code 418 I'm A Teapot. 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. + + + + + HTTP status code 421 Misdirected Request. 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. + + + + + HTTP status code 422 Unprocessable Entity (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. + + + + + HTTP status code 423 Locked (WebDAV). The source or destination resource of a method is locked. + + + + + HTTP status code 424 Failed Dependency (WebDAV). The method could not be performed on the resource because the requested action depended on another action and that action failed. + + + + + HTTP status code 426 Upgrade Required. 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. + + + + + HTTP status code 428 Precondition Required. The origin server requires the request to be conditional. + + + + + HTTP status code 429 Too Many Requests. 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. + + + + + HTTP status code 431 Request Header Fields Too Large. 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. + + + + + HTTP status code 451 Response Unavailable For Legal Reasons. The server is denying access to the resource as a consequence of a legal demand. + + + + + HTTP status code 500 Internal Server Error. The server encountered an unexpected condition that prevented it from fulfilling the request. + + + + + HTTP status code 501 Not Implemented. The server does not support the functionality required to fulfill the request. + + + + + HTTP status code 502 Bad Gateway. 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. + + + + + HTTP status code 503 Service Unavailable. 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. + + + + + HTTP status code 504 Gateway Timeout. 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. + + + + + HTTP status code 505 HTTP Version Not Supported. The server does not support, or refuses to support, the major version of HTTP that was used in the request message. + + + + + HTTP status code 506 Variant Also Negotiates. 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. + + + + + HTTP status code 507 Insufficient Storage. The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request. + + + + + HTTP status code 508 Loop Detected. 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. + + + + + HTTP status code 510 Not Extended. 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. + + + + + HTTP status code 511 Network Authentication Required. The client needs to authenticate to gain network access. + + + + + If , execution will block until all data is read from the response. + + + + + The connection to use for this client. + + + + + The size of the buffer used and maximum bytes to read per iteration. See . + + + + + Connects to a host. This needs to be done before any requests are sent. + If no is specified (or -1 is used), it is automatically set to 80 for HTTP and 443 for HTTPS. You can pass the optional parameter to customize the trusted certification authorities, or the common name verification when using HTTPS. See and . + + + + + Sends a raw request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + Sends the body data raw, as a byte array and does not encode it in any way. + + + + + Sends a raw request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + Sends the body data raw, as a byte array and does not encode it in any way. + + + + + Sends a request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + To create a POST request with query strings to push to the server, do: + + var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; + string queryString = new HttpClient().QueryStringFromDict(fields); + string[] headers = { "Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}" }; + var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString); + + Note: The parameter is ignored if is . This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See String.uri_encode for an example. + + + + + Sends a request to the connected host. + The URL parameter is usually just the part after the host, so for https://somehost.com/index.php, it is /index.php. When sending requests to an HTTP proxy server, it should be an absolute URL. For requests, * is also allowed. For requests, it should be the authority component (host:port). + Headers are HTTP request headers. For available HTTP methods, see . + To create a POST request with query strings to push to the server, do: + + var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; + string queryString = new HttpClient().QueryStringFromDict(fields); + string[] headers = { "Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}" }; + var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString); + + Note: The parameter is ignored if is . This is because GET methods can't contain request data. As a workaround, you can pass request data as a query string in the URL. See String.uri_encode for an example. + + + + + Closes the current connection, allowing reuse of this . + + + + + If , this has a response available. + + + + + If , this has a response that is chunked. + + + + + Returns the response's HTTP status code. + + + + + Returns the response headers. + + + + + Returns all response headers as a . Each entry is composed by the header name, and a containing the values separated by "; ". The casing is kept the same as the headers were received. + + { + "content-length": 12, + "Content-Type": "application/json; charset=UTF-8", + } + + + + + + Returns the response's body length. + Note: Some Web servers may not send a body length. In this case, the value returned will be -1. If using chunked transfer encoding, the body length will also be -1. + Note: This function always returns -1 on the Web platform due to browsers limitations. + + + + + Reads one chunk from the response. + + + + + Returns a constant. Need to call in order to get status updates. + + + + + This needs to be called in order to have any request processed. Check results with . + + + + + Sets the proxy server for HTTP requests. + The proxy server is unset if is empty or is -1. + + + + + Sets the proxy server for HTTPS requests. + The proxy server is unset if is empty or is -1. + + + + + Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.: + + var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } }; + string queryString = httpClient.QueryStringFromDict(fields); + // Returns "username=user&password=pass" + + Furthermore, if a key has a value, only the key itself is added, without equal sign and value. If the value is an array, for each value in it a pair with the same key is added. + + var fields = new Godot.Collections.Dictionary + { + { "single", 123 }, + { "notValued", default }, + { "multiple", new Godot.Collections.Array { 22, 33, 44 } }, + }; + string queryString = httpClient.QueryStringFromDict(fields); + // Returns "single=123&not_valued&multiple=22&multiple=33&multiple=44" + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'blocking_mode_enabled' property. + + + + + Cached name for the 'connection' property. + + + + + Cached name for the 'read_chunk_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'set_connection' method. + + + + + Cached name for the 'get_connection' method. + + + + + Cached name for the 'request_raw' method. + + + + + Cached name for the 'request' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'has_response' method. + + + + + Cached name for the 'is_response_chunked' method. + + + + + Cached name for the 'get_response_code' method. + + + + + Cached name for the 'get_response_headers' method. + + + + + Cached name for the 'get_response_headers_as_dictionary' method. + + + + + Cached name for the 'get_response_body_length' method. + + + + + Cached name for the 'read_response_body_chunk' method. + + + + + Cached name for the 'set_read_chunk_size' method. + + + + + Cached name for the 'get_read_chunk_size' method. + + + + + Cached name for the 'set_blocking_mode' method. + + + + + Cached name for the 'is_blocking_mode_enabled' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'set_http_proxy' method. + + + + + Cached name for the 'set_https_proxy' method. + + + + + Cached name for the 'query_string_from_dict' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node with the ability to send HTTP requests. Uses internally. + Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP. + Warning: See the notes and warnings on for limitations, especially regarding TLS security. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + Example: Contact a REST API and print one of its returned fields: + + public override void _Ready() + { + // Create an HTTP request node and connect its completion signal. + var httpRequest = new HttpRequest(); + AddChild(httpRequest); + httpRequest.RequestCompleted += HttpRequestCompleted; + + // Perform a GET request. The URL below returns JSON as of writing. + Error error = httpRequest.Request("https://httpbin.org/get"); + if (error != Error.Ok) + { + GD.PushError("An error occurred in the HTTP request."); + } + + // Perform a POST request. The URL below returns JSON as of writing. + // Note: Don't make simultaneous requests using a single HTTPRequest node. + // The snippet below is provided for reference only. + string body = new Json().Stringify(new Godot.Collections.Dictionary + { + { "name", "Godette" } + }); + error = httpRequest.Request("https://httpbin.org/post", null, HttpClient.Method.Post, body); + if (error != Error.Ok) + { + GD.PushError("An error occurred in the HTTP request."); + } + } + + // Called when the HTTP request is completed. + private void HttpRequestCompleted(long result, long responseCode, string[] headers, byte[] body) + { + var json = new Json(); + json.Parse(body.GetStringFromUtf8()); + var response = json.GetData().AsGodotDictionary(); + + // Will print the user agent string used by the HTTPRequest node (as recognized by httpbin.org). + GD.Print((response["headers"].AsGodotDictionary())["User-Agent"]); + } + + Example: Load an image using and display it: + + 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; + } + + Note: nodes will automatically handle decompression of response bodies. A Accept-Encoding header will be automatically added to each of your requests, unless one is already specified. Any response with a Content-Encoding: gzip header will automatically be decompressed and delivered to you as uncompressed bytes. + + + + + Request successful. + + + + + Request failed due to a mismatch between the expected and actual chunked body size during transfer. Possible causes include network errors, server misconfiguration, or issues with chunked encoding. + + + + + Request failed while connecting. + + + + + Request failed while resolving. + + + + + Request failed due to connection (read/write) error. + + + + + Request failed on TLS handshake. + + + + + Request does not have a response (yet). + + + + + Request exceeded its maximum size limit, see . + + + + + Request failed due to an error while decompressing the response body. Possible causes include unsupported or incorrect compression format, corrupted data, or incomplete transfer. + + + + + Request failed (currently unused). + + + + + HTTPRequest couldn't open the download file. + + + + + HTTPRequest couldn't write to the download file. + + + + + Request reached its maximum redirect limit, see . + + + + + Request failed due to a timeout. If you expect requests to take a long time, try increasing the value of or setting it to 0.0 to remove the timeout completely. + + + + + The file to download into. Will output any received file into it. + + + + + The size of the buffer used and maximum bytes to read per iteration. See . + Set this to a lower value (e.g. 4096 for 4 KiB) when downloading small files to decrease memory usage at the cost of download speeds. + + + + + If , multithreading is used to improve performance. + + + + + If , this header will be added to each request: Accept-Encoding: gzip, deflate telling servers that it's okay to compress response bodies. + Any Response body declaring a Content-Encoding of either gzip or deflate will then be automatically decompressed, and the uncompressed bytes will be delivered via . + If the user has specified their own Accept-Encoding header, then no header will be added regardless of . + If no header will be added, and no decompression will be performed on response bodies. The raw bytes of the response body will be returned via . + + + + + Maximum allowed size for response bodies. If the response body is compressed, this will be used as the maximum allowed size for the decompressed body. + + + + + Maximum number of allowed redirects. + + + + + The duration to wait in seconds before a request times out. If is set to 0.0 then the request will never time out. For simple requests, such as communication with a REST API, it is recommended that is set to a value suitable for the server response time (e.g. between 1.0 and 10.0). This will help prevent unwanted timeouts caused by variation in server response times while still allowing the application to detect when a request has timed out. For larger requests such as file downloads it is suggested the be set to 0.0, disabling the timeout functionality. This will help to prevent large transfers from failing due to exceeding the timeout value. + + + + + Creates request on the underlying . If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + Note: When is , the payload sent via might be ignored by the server or even cause the server to reject the request (check RFC 7231 section 4.3.1 for more details). As a workaround, you can send data as a query string in the URL (see String.uri_encode for an example). + Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Creates request on the underlying . If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + Note: When is , the payload sent via might be ignored by the server or even cause the server to reject the request (check RFC 7231 section 4.3.1 for more details). As a workaround, you can send data as a query string in the URL (see String.uri_encode for an example). + Note: It's recommended to use transport encryption (TLS) and to avoid sending sensitive information (such as login credentials) in HTTP GET URL parameters. Consider using HTTP POST requests or HTTP headers for such information instead. + + + + + Creates request on the underlying using a raw array of bytes for the request body. If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + + If the parameter is null, then the default value is Array.Empty<string>(). + If the parameter is null, then the default value is Array.Empty<byte>(). + + + + Creates request on the underlying using a raw array of bytes for the request body. If there is no configuration errors, it tries to connect using and passes parameters onto . + Returns if request is successfully created. (Does not imply that the server has responded), if not in the tree, if still processing previous request, if given string is not a valid URL format, or if not using thread and the cannot connect to host. + + + + + Cancels the current request. + + + + + Sets the to be used when connecting to an HTTPS server. See . + + + + + Returns the current status of the underlying . See . + + + + + Returns the number of bytes this HTTPRequest downloaded. + + + + + Returns the response body length. + Note: Some Web servers may not send a body length. In this case, the value returned will be -1. If using chunked transfer encoding, the body length will also be -1. + + + + + Sets the proxy server for HTTP requests. + The proxy server is unset if is empty or is -1. + + + + + Sets the proxy server for HTTPS requests. + The proxy server is unset if is empty or is -1. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a request is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'download_file' property. + + + + + Cached name for the 'download_chunk_size' property. + + + + + Cached name for the 'use_threads' property. + + + + + Cached name for the 'accept_gzip' property. + + + + + Cached name for the 'body_size_limit' property. + + + + + Cached name for the 'max_redirects' property. + + + + + Cached name for the 'timeout' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'request' method. + + + + + Cached name for the 'request_raw' method. + + + + + Cached name for the 'cancel_request' method. + + + + + Cached name for the 'set_tls_options' method. + + + + + Cached name for the 'get_http_client_status' method. + + + + + Cached name for the 'set_use_threads' method. + + + + + Cached name for the 'is_using_threads' method. + + + + + Cached name for the 'set_accept_gzip' method. + + + + + Cached name for the 'is_accepting_gzip' method. + + + + + Cached name for the 'set_body_size_limit' method. + + + + + Cached name for the 'get_body_size_limit' method. + + + + + Cached name for the 'set_max_redirects' method. + + + + + Cached name for the 'get_max_redirects' method. + + + + + Cached name for the 'set_download_file' method. + + + + + Cached name for the 'get_download_file' method. + + + + + Cached name for the 'get_downloaded_bytes' method. + + + + + Cached name for the 'get_body_size' method. + + + + + Cached name for the 'set_timeout' method. + + + + + Cached name for the 'get_timeout' method. + + + + + Cached name for the 'set_download_chunk_size' method. + + + + + Cached name for the 'get_download_chunk_size' method. + + + + + Cached name for the 'set_http_proxy' method. + + + + + Cached name for the 'set_https_proxy' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'request_completed' signal. + + + + + 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 shows the supported hashing algorithms. + + public const int ChunkSize = 1024; + + public void HashFile(string path) + { + // Check that file exists. + if (!FileAccess.FileExists(path)) + { + return; + } + // Start an 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.GetPosition() < file.GetLength()) + { + int remaining = (int)(file.GetLength() - file.GetPosition()); + ctx.Update(file.GetBuffer(Mathf.Min(remaining, ChunkSize))); + } + // Get the computed hash. + byte[] res = ctx.Finish(); + // Print the result as hex string and array. + GD.PrintT(res.HexEncode(), (Variant)res); + } + + + + + + Hashing algorithm: MD5. + + + + + Hashing algorithm: SHA-1. + + + + + Hashing algorithm: SHA-256. + + + + + Starts a new hash computation of the given (e.g. to start computation of an SHA-256). + + + + + Updates the computation with the given of data. + + + + + Updates the computation with the given of data. + + + + + Closes the current context, and return the computed hash. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'finish' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D heightmap shape, intended for use in physics. Usually used to provide a shape for a . This is useful for terrain, but it is limited as overhangs (such as caves) cannot be stored. Holes in a are created by assigning very low values to points in the desired area. + Performance: is faster to check collisions against than , but it is significantly slower than primitive shapes like . + A heightmap collision shape can also be build by using an reference: + + + + + + Number of vertices in the width of the height map. Changing this will resize the . + + + + + Number of vertices in the depth of the height map. Changing this will resize the . + + + + + Height map data. The array's size must be equal to multiplied by . + + + + + Returns the smallest height value found in . Recalculates only when changes. + + + + + Returns the largest height value found in . Recalculates only when changes. + + + + + Updates with data read from an reference. Automatically resizes heightmap and to fit the full image width and height. + The image needs to be in either (32 bit), (16 bit), or (8 bit). + Each image pixel is read in as a float on the range from 0.0 (black pixel) to 1.0 (white pixel). This range value gets remapped to and to form the final height value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'map_width' property. + + + + + Cached name for the 'map_depth' property. + + + + + Cached name for the 'map_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_map_width' method. + + + + + Cached name for the 'get_map_width' method. + + + + + Cached name for the 'set_map_depth' method. + + + + + Cached name for the 'get_map_depth' method. + + + + + Cached name for the 'set_map_data' method. + + + + + Cached name for the 'get_map_data' method. + + + + + Cached name for the 'get_min_height' method. + + + + + Cached name for the 'get_max_height' method. + + + + + Cached name for the 'update_map_data_from_image' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 representing a door hinge that a rotates around. + + + + + The speed with which the two bodies get pulled together when they move in different directions. + + + + + The maximum rotation. Only active if angular_limit/enable is . + + + + + The minimum rotation. Only active if angular_limit/enable is . + + + + + The speed with which the rotation across the axis perpendicular to the hinge gets corrected. + + + + + The lower this value, the more the rotation gets slowed down. + + + + + Target speed for the motor. + + + + + Maximum acceleration for the motor. + + + + + Represents the size of the enum. + + + + + If , the hinges maximum and minimum rotation, defined by angular_limit/lower and angular_limit/upper has effects. + + + + + When activated, a motor turns the hinge. + + + + + Represents the size of the enum. + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + If , enables the specified flag. + + + + + Returns the value of the specified flag. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached name for the 'set_flag' method. + + + + + Cached name for the 'get_flag' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see and ). IP provides DNS hostname resolution support, both blocking and threaded. + + + + + Maximum number of concurrent DNS resolver queries allowed, is returned if exceeded. + + + + + Invalid ID constant. Returned if is exceeded. + + + + + DNS hostname resolver status: No status. + + + + + DNS hostname resolver status: Waiting. + + + + + DNS hostname resolver status: Done. + + + + + DNS hostname resolver status: Error. + + + + + Address type: None. + + + + + Address type: Internet protocol version 4 (IPv4). + + + + + Address type: Internet protocol version 6 (IPv6). + + + + + Address type: Any. + + + + + Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the constant given as . + + + + + Resolves a given hostname in a blocking way. Addresses are returned as an of IPv4 or IPv6 addresses depending on . + + + + + Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the constant given as . Returns the queue ID if successful, or on error. + + + + + Returns a queued hostname's status as a constant, given its queue . + + + + + Returns a queued hostname's IP address, given its queue . Returns an empty string on error or if resolution hasn't happened yet (see ). + + + + + Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see ). + + + + + Removes a given item from the queue. This should be used to free a queue after it has completed to enable more queries to happen. + + + + + Returns all the user's current IPv4 and IPv6 addresses as an array. + + + + + Returns all network adapters as an array. + Each adapter is a dictionary of the form: + + { + "index": "1", # Interface index. + "name": "eth0", # Interface name. + "friendly": "Ethernet One", # A friendly name (might be empty). + "addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface. + } + + + + + + Removes all of a 's cached references. If no is given, all cached IP addresses are removed. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resolve_hostname' method. + + + + + Cached name for the 'resolve_hostname_addresses' method. + + + + + Cached name for the 'resolve_hostname_queue_item' method. + + + + + Cached name for the 'get_resolve_item_status' method. + + + + + Cached name for the 'get_resolve_item_address' method. + + + + + Cached name for the 'get_resolve_item_addresses' method. + + + + + Cached name for the 'erase_resolve_item' method. + + + + + Cached name for the 'get_local_addresses' method. + + + + + Cached name for the 'get_local_interfaces' method. + + + + + Cached name for the 'clear_cache' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + IP contains support functions for the Internet Protocol (IP). TCP/IP support is in different classes (see and ). IP provides DNS hostname resolution support, both blocking and threaded. + + + + + Returns a given hostname's IPv4 or IPv6 address when resolved (blocking-type method). The address type returned depends on the constant given as . + + + + + Resolves a given hostname in a blocking way. Addresses are returned as an of IPv4 or IPv6 addresses depending on . + + + + + Creates a queue item to resolve a hostname to an IPv4 or IPv6 address depending on the constant given as . Returns the queue ID if successful, or on error. + + + + + Returns a queued hostname's status as a constant, given its queue . + + + + + Returns a queued hostname's IP address, given its queue . Returns an empty string on error or if resolution hasn't happened yet (see ). + + + + + Returns resolved addresses, or an empty array if an error happened or resolution didn't happen yet (see ). + + + + + Removes a given item from the queue. This should be used to free a queue after it has completed to enable more queries to happen. + + + + + Returns all the user's current IPv4 and IPv6 addresses as an array. + + + + + Returns all network adapters as an array. + Each adapter is a dictionary of the form: + + { + "index": "1", # Interface index. + "name": "eth0", # Interface name. + "friendly": "Ethernet One", # A friendly name (might be empty). + "addresses": ["192.168.1.101"], # An array of IP addresses associated to this interface. + } + + + + + + Removes all of a 's cached references. If no is given, all cached IP addresses are removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resolve_hostname' method. + + + + + Cached name for the 'resolve_hostname_addresses' method. + + + + + Cached name for the 'resolve_hostname_queue_item' method. + + + + + Cached name for the 'get_resolve_item_status' method. + + + + + Cached name for the 'get_resolve_item_address' method. + + + + + Cached name for the 'get_resolve_item_addresses' method. + + + + + Cached name for the 'erase_resolve_item' method. + + + + + Cached name for the 'get_local_addresses' method. + + + + + Cached name for the 'get_local_interfaces' method. + + + + + Cached name for the 'clear_cache' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Native image datatype. Contains image data which can be converted to an and provides commonly used image processing methods. The maximum width and height for an are and . + An cannot be assigned to a texture property of an object directly (such as ), and has to be converted manually to an first. + Note: The maximum image size is 16384×16384 pixels due to graphics hardware limitations. Larger images may fail to import. + + + + + The maximal width allowed for resources. + + + + + The maximal height allowed for resources. + + + + + Texture format with a single 8-bit depth representing luminance. + + + + + OpenGL texture format with two values, luminance and alpha each stored with 8 bits. + + + + + OpenGL texture format RED with a single component and a bitdepth of 8. + + + + + OpenGL texture format RG with two components and a bitdepth of 8 for each. + + + + + OpenGL texture format RGB with three components, each with a bitdepth of 8. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + OpenGL texture format RGBA with four components, each with a bitdepth of 8. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + OpenGL texture format RGBA with four components, each with a bitdepth of 4. + + + + + OpenGL texture format RGB with three components. Red and blue have a bitdepth of 5, and green has a bitdepth of 6. + + + + + OpenGL texture format GL_R32F where there's one component, a 32-bit floating-point value. + + + + + OpenGL texture format GL_RG32F where there are two components, each a 32-bit floating-point values. + + + + + OpenGL texture format GL_RGB32F where there are three components, each a 32-bit floating-point values. + + + + + OpenGL texture format GL_RGBA32F where there are four components, each a 32-bit floating-point values. + + + + + OpenGL texture format GL_R16F where there's one component, a 16-bit "half-precision" floating-point value. + + + + + OpenGL texture format GL_RG16F where there are two components, each a 16-bit "half-precision" floating-point value. + + + + + OpenGL texture format GL_RGB16F where there are three components, each a 16-bit "half-precision" floating-point value. + + + + + OpenGL texture format GL_RGBA16F where there are four components, each a 16-bit "half-precision" floating-point value. + + + + + A special OpenGL texture format where the three color components have 9 bits of precision and all three share a single 5-bit exponent. + + + + + The S3TC 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. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + The S3TC 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. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + The S3TC 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. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Texture format that uses Red Green Texture Compression, normalizing the red channel data using the same compression algorithm that DXT5 uses for the alpha channel. + + + + + Texture format that uses Red Green Texture Compression, normalizing the red and green channel data using the same compression algorithm that DXT5 uses for the alpha channel. + + + + + Texture format that uses BPTC compression with unsigned normalized RGBA components. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Texture format that uses BPTC compression with signed floating-point RGB components. + + + + + Texture format that uses BPTC compression with unsigned floating-point RGB components. + + + + + Ericsson Texture Compression format 1, also referred to as "ETC1", and is part of the OpenGL ES graphics standard. This format cannot store an alpha channel. + + + + + Ericsson Texture Compression format 2 (R11_EAC variant), which provides one channel of unsigned data. + + + + + Ericsson Texture Compression format 2 (SIGNED_R11_EAC variant), which provides one channel of signed data. + + + + + Ericsson Texture Compression format 2 (RG11_EAC variant), which provides two channels of unsigned data. + + + + + Ericsson Texture Compression format 2 (SIGNED_RG11_EAC variant), which provides two channels of signed data. + + + + + Ericsson Texture Compression format 2 (RGB8 variant), which is a follow-up of ETC1 and compresses RGB888 data. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Ericsson Texture Compression format 2 (RGBA8variant), which compresses RGBA8888 data with full alpha support. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Ericsson Texture Compression format 2 (RGB8_PUNCHTHROUGH_ALPHA1 variant), which compresses RGBA data to make alpha either fully transparent or fully opaque. + Note: When creating an , an sRGB to linear color space conversion is performed. + + + + + Ericsson Texture Compression format 2 (RGBA8 variant), which compresses RA data and interprets it as two channels (red and green). See also . + + + + + The S3TC 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 . + + + + + Adaptive Scalable Texture Compression. This implements the 4×4 (high quality) mode. + + + + + Same format as , but with the hint to let the GPU know it is used for HDR. + + + + + Adaptive Scalable Texture Compression. This implements the 8×8 (low quality) mode. + + + + + Same format as , but with the hint to let the GPU know it is used for HDR. + + + + + Represents the size of the enum. + + + + + Performs nearest-neighbor interpolation. If the image is resized, it will be pixelated. + + + + + Performs bilinear interpolation. If the image is resized, it will be blurry. This mode is faster than , but it results in lower quality. + + + + + Performs cubic interpolation. If the image is resized, it will be blurry. This mode often gives better results compared to , at the cost of being slower. + + + + + Performs bilinear separately on the two most-suited mipmap levels, then linearly interpolates between them. + It's slower than , 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. + Note: If you intend to scale multiple copies of the original image, it's better to call ] 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. + + + + + Performs Lanczos interpolation. This is the slowest image resizing mode, but it typically gives the best results, especially when downscaling images. + + + + + Image does not have alpha. + + + + + Image stores alpha in a single bit. + + + + + Image uses alpha. + + + + + Use S3TC compression. + + + + + Use ETC compression. + + + + + Use ETC2 compression. + + + + + Use BPTC compression. + + + + + Use ASTC compression. + + + + + Represents the size of the enum. + + + + + The image only uses one channel for luminance (grayscale). + + + + + The image uses two channels for luminance and alpha, respectively. + + + + + The image only uses the red channel. + + + + + The image uses two channels for red and green. + + + + + The image uses three channels for red, green, and blue. + + + + + The image uses four channels for red, green, blue, and alpha. + + + + + Source texture (before compression) is a regular texture. Default for all textures. + + + + + Source texture (before compression) is in sRGB space. + + + + + Source texture (before compression) is a normal texture (e.g. it can be compressed into two channels). + + + + + Hint to indicate that the high quality 4×4 ASTC compression format should be used. + + + + + Hint to indicate that the low quality 8×8 ASTC compression format should be used. + + + + + Holds all the image's color data in a given format. See constants. + + + + + Returns the image's width. + + + + + Returns the image's height. + + + + + Returns the image's size (width and height). + + + + + Returns if the image has generated mipmaps. + + + + + Returns the image's format. See constants. + + + + + Returns a copy of the image's raw data. + + + + + Returns size (in bytes) of the image's raw data. + + + + + Converts the image's format. See constants. + + + + + Returns the number of mipmap levels or 0 if the image has no mipmaps. The largest main level image is not counted as a mipmap level by this method, so if you want to include it you can add 1 to this count. + + + + + Returns the offset where the image's mipmap with index is stored in the dictionary. + + + + + Resizes the image to the nearest power of 2 for the width and height. If is then set width and height to be the same. New pixels are calculated using the mode defined via constants. + + + + + Resizes the image to the given and . New pixels are calculated using the mode defined via constants. + + + + + Shrinks the image by a factor of 2 on each axis (this divides the pixel count by 4). + + + + + Crops the image to the given and . If the specified size is larger than the current size, the extra area is filled with black pixels. + + + + + Flips the image horizontally. + + + + + Flips the image vertically. + + + + + Generates mipmaps for the image. Mipmaps are precalculated lower-resolution copies of the image that are automatically used if the image needs to be scaled down when rendered. They help improve image quality and performance when rendering. This method returns an error if the image is compressed, in a custom format, or if the image's width/height is 0. Enabling when generating mipmaps for normal map textures will make sure all resulting vector values are normalized. + It is possible to check if the image has mipmaps by calling or . Calling on an image that already has mipmaps will replace existing mipmaps in the image. + + + + + Removes the image's mipmaps. + + + + + Creates an empty image of given size and format. See constants. If is , then generate mipmaps for this image. See the . + + + + + Creates an empty image of given size and format. See constants. If is , then generate mipmaps for this image. See the . + + + + + Creates a new image of given size and format. See constants. Fills the image with the given raw data. If is then loads mipmaps for this image from . See . + + + + + Creates a new image of given size and format. See constants. Fills the image with the given raw data. If is then loads mipmaps for this image from . See . + + + + + Overwrites data of an existing . Non-static equivalent of . + + + + + Overwrites data of an existing . Non-static equivalent of . + + + + + Returns if the image has no data. + + + + + Loads an image from file . See Supported image formats for a list of supported image formats and limitations. + Warning: This method should only be used in the editor or in cases when you need to load external images at run-time, such as images located at the user:// directory, and may not work in exported projects. + See also description for usage examples. + + + + + Creates a new and loads data from the specified file. + + + + + Saves the image as a PNG file to the file at . + + + + + Saves the image as a PNG file to a byte array. + + + + + Saves the image as a JPEG file to with the specified between 0.01 and 1.0 (inclusive). Higher values result in better-looking output at the cost of larger file sizes. Recommended values are between 0.75 and 0.90. Even at quality 1.00, JPEG compression remains lossy. + Note: JPEG does not save an alpha channel. If the contains an alpha channel, the image will still be saved, but the resulting JPEG file won't contain the alpha channel. + + + + + Saves the image as a JPEG file to a byte array with the specified between 0.01 and 1.0 (inclusive). Higher values result in better-looking output at the cost of larger byte array sizes (and therefore memory usage). Recommended values are between 0.75 and 0.90. Even at quality 1.00, JPEG compression remains lossy. + Note: JPEG does not save an alpha channel. If the contains an alpha channel, the image will still be saved, but the resulting byte array won't contain the alpha channel. + + + + + Saves the image as an EXR file to . If is and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return if Godot was compiled without the TinyEXR module. + Note: The TinyEXR module is disabled in non-editor builds, which means will return when it is called from an exported project. + + + + + Saves the image as an EXR file to a byte array. If is and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return an empty byte array if Godot was compiled without the TinyEXR module. + Note: The TinyEXR module is disabled in non-editor builds, which means will return an empty byte array when it is called from an exported project. + + + + + Saves the image as a WebP (Web Picture) file to the file at . By default it will save lossless. If is , the image will be saved lossy, using the setting between 0.0 and 1.0 (inclusive). Lossless WebP offers more efficient compression than PNG. + Note: The WebP format is limited to a size of 16383×16383 pixels, while PNG can save larger images. + + + + + Saves the image as a WebP (Web Picture) file to a byte array. By default it will save lossless. If is , the image will be saved lossy, using the setting between 0.0 and 1.0 (inclusive). Lossless WebP offers more efficient compression than PNG. + Note: The WebP format is limited to a size of 16383×16383 pixels, while PNG can save larger images. + + + + + Returns if the image has data for alpha values. Returns if all the alpha values are stored in a single bit. Returns if no data for alpha values is found. + + + + + Returns if all the image's pixels have an alpha value of 0. Returns if any pixel has an alpha value higher than 0. + + + + + Returns the color channels used by this image, as one of the constants. If the image is compressed, the original must be specified. + + + + + Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. + The parameter helps to pick the best compression method for DXT and ETC2 formats. It is ignored for ASTC compression. + For ASTC compression, the parameter must be supplied. + + + + + Compresses the image to use less memory. Can not directly access pixel data while the image is compressed. Returns error if the chosen compression mode is not available. + This is an alternative to that lets the user supply the channels used in order for the compressor to pick the best DXT and ETC2 formats. For other formats (non DXT or ETC2), this argument is ignored. + For ASTC compression, the parameter must be supplied. + + + + + Decompresses the image if it is VRAM compressed in a supported format. Returns if the format is supported, otherwise . + Note: The following formats can be decompressed: DXT, RGTC, BPTC. The formats ETC1 and ETC2 are not supported. + + + + + Returns if the image is compressed. + + + + + Rotates the image in the specified by 90 degrees. The width and height of the image must be greater than 1. If the width and height are not equal, the image will be resized. + + + + + Rotates the image by 180 degrees. The width and height of the image must be greater than 1. + + + + + Blends low-alpha pixels with nearby pixels. + + + + + Multiplies color values with alpha values. Resulting color values for a pixel are (color * alpha)/256. See also . + + + + + Converts the raw data from the sRGB colorspace to a linear scale. Only works on images with or formats. + + + + + Converts the entire image from the linear colorspace to the sRGB colorspace. Only works on images with or formats. + + + + + Converts the image's data to represent coordinates on a 3D plane. This is used when the image represents a normal map. A normal map can add lots of detail to a 3D surface without increasing the polygon count. + + + + + Converts a standard RGBE (Red Green Blue Exponent) image to an sRGB image. + + + + + Converts a bump map to a normal map. A bump map provides a height offset per-pixel, while a normal map provides a normal direction per pixel. + + + + + Compute image metrics on the current image and the compared image. + The dictionary contains max, mean, mean_squared, root_mean_squared and peak_snr. + + + + + Copies from image to this image at coordinates , clipped accordingly to both image bounds. This image and image must have the same format. with non-positive size is treated as empty. + Note: The alpha channel data in will overwrite the corresponding data in this image at the target position. To blend alpha channels, use instead. + + + + + Blits area from image to this image at the coordinates given by , clipped accordingly to both image bounds. pixel is copied onto if the corresponding pixel's alpha value is not 0. This image and image must have the same format. image and image must have the same size (width and height) but they can have different formats. with non-positive size is treated as empty. + + + + + Alpha-blends from image to this image at coordinates , clipped accordingly to both image bounds. This image and image must have the same format. with non-positive size is treated as empty. + + + + + Alpha-blends from image to this image using image at coordinates , clipped accordingly to both image bounds. Alpha channels are required for both and . pixels and pixels will blend if the corresponding mask pixel's alpha value is not 0. This image and image must have the same format. image and image must have the same size (width and height) but they can have different formats. with non-positive size is treated as empty. + + + + + Fills the image with . + + + + + Fills with . + + + + + Returns a enclosing the visible portion of the image, considering each pixel with a non-zero alpha channel as visible. + + + + + Returns a new that is a copy of this 's area specified with . + + + + + Copies image to this image. + + + + + Returns the color of the pixel at . + This is the same as , but with a argument instead of two integer arguments. + + + + + Returns the color of the pixel at (x, y). + This is the same as , but with two integer arguments instead of a argument. + + + + + Sets the of the pixel at to . + + int imgWidth = 10; + int imgHeight = 5; + var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8); + + img.SetPixelv(new Vector2I(1, 2), Colors.Red); // Sets the color at (1, 2) to red. + + This is the same as , but with a argument instead of two integer arguments. + + + + + Sets the of the pixel at (x, y) to . + + int imgWidth = 10; + int imgHeight = 5; + var img = Image.Create(imgWidth, imgHeight, false, Image.Format.Rgba8); + + img.SetPixel(1, 2, Colors.Red); // Sets the color at (1, 2) to red. + + This is the same as , but with a two integer arguments instead of a argument. + + + + + Adjusts this image's , , and by the given values. Does not work if the image is compressed (see ). + + + + + Loads an image from the binary contents of a PNG file. + + + + + Loads an image from the binary contents of a PNG file. + + + + + Loads an image from the binary contents of a JPEG file. + + + + + Loads an image from the binary contents of a JPEG file. + + + + + Loads an image from the binary contents of a WebP file. + + + + + Loads an image from the binary contents of a WebP file. + + + + + Loads an image from the binary contents of a TGA file. + Note: This method is only available in engine builds with the TGA module enabled. By default, the TGA module is enabled, but it can be disabled at build-time using the module_tga_enabled=no SCons option. + + + + + Loads an image from the binary contents of a TGA file. + Note: This method is only available in engine builds with the TGA module enabled. By default, the TGA module is enabled, but it can be disabled at build-time using the module_tga_enabled=no SCons option. + + + + + Loads an image from the binary contents of a BMP file. + Note: Godot's BMP module doesn't support 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported. + Note: This method is only available in engine builds with the BMP module enabled. By default, the BMP module is enabled, but it can be disabled at build-time using the module_bmp_enabled=no SCons option. + + + + + Loads an image from the binary contents of a BMP file. + Note: Godot's BMP module doesn't support 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported. + Note: This method is only available in engine builds with the BMP module enabled. By default, the BMP module is enabled, but it can be disabled at build-time using the module_bmp_enabled=no SCons option. + + + + + Loads an image from the binary contents of a KTX file. Unlike most image formats, KTX can store VRAM-compressed data and embed mipmaps. + Note: Godot's libktx implementation only supports 2D images. Cubemaps, texture arrays, and de-padding are not supported. + Note: This method is only available in engine builds with the KTX module enabled. By default, the KTX module is enabled, but it can be disabled at build-time using the module_ktx_enabled=no SCons option. + + + + + Loads an image from the binary contents of a KTX file. Unlike most image formats, KTX can store VRAM-compressed data and embed mipmaps. + Note: Godot's libktx implementation only supports 2D images. Cubemaps, texture arrays, and de-padding are not supported. + Note: This method is only available in engine builds with the KTX module enabled. By default, the KTX module is enabled, but it can be disabled at build-time using the module_ktx_enabled=no SCons option. + + + + + Loads an image from the UTF-8 binary contents of an uncompressed SVG file (.svg). + Note: Beware when using compressed SVG files (like .svgz), they need to be decompressed before loading. + Note: This method is only available in engine builds with the SVG module enabled. By default, the SVG module is enabled, but it can be disabled at build-time using the module_svg_enabled=no SCons option. + + + + + Loads an image from the UTF-8 binary contents of an uncompressed SVG file (.svg). + Note: Beware when using compressed SVG files (like .svgz), they need to be decompressed before loading. + Note: This method is only available in engine builds with the SVG module enabled. By default, the SVG module is enabled, but it can be disabled at build-time using the module_svg_enabled=no SCons option. + + + + + Loads an image from the string contents of an SVG file (.svg). + Note: This method is only available in engine builds with the SVG module enabled. By default, the SVG module is enabled, but it can be disabled at build-time using the module_svg_enabled=no SCons option. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'has_mipmaps' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'get_data_size' method. + + + + + Cached name for the 'convert' method. + + + + + Cached name for the 'get_mipmap_count' method. + + + + + Cached name for the 'get_mipmap_offset' method. + + + + + Cached name for the 'resize_to_po2' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the 'shrink_x2' method. + + + + + Cached name for the 'crop' method. + + + + + Cached name for the 'flip_x' method. + + + + + Cached name for the 'flip_y' method. + + + + + Cached name for the 'generate_mipmaps' method. + + + + + Cached name for the 'clear_mipmaps' method. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'create_empty' method. + + + + + Cached name for the 'create_from_data' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'is_empty' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached name for the 'save_png' method. + + + + + Cached name for the 'save_png_to_buffer' method. + + + + + Cached name for the 'save_jpg' method. + + + + + Cached name for the 'save_jpg_to_buffer' method. + + + + + Cached name for the 'save_exr' method. + + + + + Cached name for the 'save_exr_to_buffer' method. + + + + + Cached name for the 'save_webp' method. + + + + + Cached name for the 'save_webp_to_buffer' method. + + + + + Cached name for the 'detect_alpha' method. + + + + + Cached name for the 'is_invisible' method. + + + + + Cached name for the 'detect_used_channels' method. + + + + + Cached name for the 'compress' method. + + + + + Cached name for the 'compress_from_channels' method. + + + + + Cached name for the 'decompress' method. + + + + + Cached name for the 'is_compressed' method. + + + + + Cached name for the 'rotate_90' method. + + + + + Cached name for the 'rotate_180' method. + + + + + Cached name for the 'fix_alpha_edges' method. + + + + + Cached name for the 'premultiply_alpha' method. + + + + + Cached name for the 'srgb_to_linear' method. + + + + + Cached name for the 'linear_to_srgb' method. + + + + + Cached name for the 'normal_map_to_xy' method. + + + + + Cached name for the 'rgbe_to_srgb' method. + + + + + Cached name for the 'bump_map_to_normal_map' method. + + + + + Cached name for the 'compute_image_metrics' method. + + + + + Cached name for the 'blit_rect' method. + + + + + Cached name for the 'blit_rect_mask' method. + + + + + Cached name for the 'blend_rect' method. + + + + + Cached name for the 'blend_rect_mask' method. + + + + + Cached name for the 'fill' method. + + + + + Cached name for the 'fill_rect' method. + + + + + Cached name for the 'get_used_rect' method. + + + + + Cached name for the 'get_region' method. + + + + + Cached name for the 'copy_from' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'get_pixelv' method. + + + + + Cached name for the 'get_pixel' method. + + + + + Cached name for the 'set_pixelv' method. + + + + + Cached name for the 'set_pixel' method. + + + + + Cached name for the 'adjust_bcs' method. + + + + + Cached name for the 'load_png_from_buffer' method. + + + + + Cached name for the 'load_jpg_from_buffer' method. + + + + + Cached name for the 'load_webp_from_buffer' method. + + + + + Cached name for the 'load_tga_from_buffer' method. + + + + + Cached name for the 'load_bmp_from_buffer' method. + + + + + Cached name for the 'load_ktx_from_buffer' method. + + + + + Cached name for the 'load_svg_from_buffer' method. + + + + + Cached name for the 'load_svg_from_string' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 to register that loader during the initialization phase. + + + + + 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. + + + + + Loads the content of into the provided . + + + + + Add this format loader to the engine, allowing it to recognize the file extensions returned by . + + + + + Remove this format loader from the engine. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_load_image' method. + + + + + Cached name for the 'add_format_loader' method. + + + + + Cached name for the 'remove_format_loader' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A based on an . For an image to be displayed, an has to be created from it using the method: + + var image = Image.load_from_file("res://icon.svg") + var texture = ImageTexture.create_from_image(image) + $Sprite2D.texture = texture + + This way, textures can be created at run-time by loading images both from within the editor and externally. + Warning: Prefer to load imported textures with @GDScript.load over loading them from within the filesystem dynamically with , as it may not work in exported projects: + + var texture = load("res://icon.svg") + $Sprite2D.texture = texture + + This is because images have to be imported as a first to be loaded with @GDScript.load. If you'd still like to load an image file just like any other , import it as an resource instead, and then load it normally using the @GDScript.load method. + Note: The image can be retrieved from an imported texture using the method, which returns a copy of the image: + + var texture = load("res://icon.svg") + var image = texture.get_image() + + An is not meant to be operated from within the editor interface directly, and is mostly useful for rendering images on screen dynamically via code. If you need to generate images procedurally from within the editor, consider saving and importing images as custom texture resources implementing a new EditorImportPlugin. + Note: The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. + + + + + Creates a new and initializes it by allocating and setting the data from an . + + + + + Returns the format of the texture, one of . + + + + + Replaces the texture's data with a new . This will re-allocate new memory for the texture. + If you want to update the image, but don't need to change its parameters (format, size), use instead for better performance. + + + + + Replaces the texture's data with a new . + Note: The texture has to be created using or initialized first with the method before it can be updated. The new image dimensions, format, and mipmaps configuration should match the existing texture's image configuration. + Use this method over if you need to update the texture frequently, which is faster than allocating additional memory for a new texture each time. + + + + + Resizes the texture to the specified dimensions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_image' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_image' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the 'set_size_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a 3-dimensional that has a width, height, and depth. See also . + 3D textures are typically used to store density maps for , color correction LUTs for , vector fields for and collision maps for . 3D textures can also be used in custom shaders. + + + + + Creates the with specified , , and . See for options. If is , then generate mipmaps for the . + + + + + Replaces the texture's existing data with the layers specified in . The size of must match the parameters that were used for . In other words, the texture cannot be resized or have its format changed by calling . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_images' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'update' method. + + + + + Cached name for the '_get_images' method. + + + + + Cached name for the '_set_images' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for , and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also . + + + + + Creates an from an array of s. See for the expected data format. The first image decides the width, height, image format and mipmapping setting. The other images must have the same width, height, image format and mipmapping setting. + Each represents one layer. + + + + + Replaces the existing data at the given with this new image. + The given must have the same width, height, image format, and mipmapping flag as the rest of the referenced images. + If the image format is unsupported, it will be decompressed and converted to a similar and supported . + The update is immediate: it's synchronized with drawing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_images' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_images' method. + + + + + Cached name for the 'update_layer' method. + + + + + Cached name for the '_get_images' method. + + + + + Cached name for the '_set_images' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A mesh type optimized for creating geometry manually, similar to OpenGL 1.x immediate mode. + Here's a sample on how to generate a triangular face: + + var mesh = new ImmediateMesh(); + mesh.SurfaceBegin(Mesh.PrimitiveType.Triangles); + mesh.SurfaceAddVertex(Vector3.Left); + mesh.SurfaceAddVertex(Vector3.Forward); + mesh.SurfaceAddVertex(Vector3.Zero); + mesh.SurfaceEnd(); + + Note: Generating complex geometries with is highly inefficient. Instead, it is designed to generate simple geometry that changes often. + + + + + Begin a new surface. + + + + + Set the color attribute that will be pushed with the next vertex. + + + + + Set the normal attribute that will be pushed with the next vertex. + + + + + Set the tangent attribute that will be pushed with the next vertex. + + + + + Set the UV attribute that will be pushed with the next vertex. + + + + + Set the UV2 attribute that will be pushed with the next vertex. + + + + + Add a 3D vertex using the current attributes previously set. + + + + + Add a 2D vertex using the current attributes previously set. + + + + + End and commit current surface. Note that surface being created will not be visible until this function is called. + + + + + Clear all surfaces. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'surface_begin' method. + + + + + Cached name for the 'surface_set_color' method. + + + + + Cached name for the 'surface_set_normal' method. + + + + + Cached name for the 'surface_set_tangent' method. + + + + + Cached name for the 'surface_set_uv' method. + + + + + Cached name for the 'surface_set_uv2' method. + + + + + Cached name for the 'surface_add_vertex' method. + + + + + Cached name for the 'surface_add_vertex_2d' method. + + + + + Cached name for the 'surface_end' method. + + + + + Cached name for the 'clear_surfaces' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'skin' property. + + + + + Cached name for the 'skeleton_path' property. + + + + + Cached name for the 'layer_mask' property. + + + + + Cached name for the 'cast_shadow' property. + + + + + Cached name for the 'visibility_range_begin' property. + + + + + Cached name for the 'visibility_range_begin_margin' property. + + + + + Cached name for the 'visibility_range_end' property. + + + + + Cached name for the 'visibility_range_end_margin' property. + + + + + Cached name for the 'visibility_range_fade_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_skin' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached name for the 'set_skeleton_path' method. + + + + + Cached name for the 'get_skeleton_path' method. + + + + + Cached name for the 'set_layer_mask' method. + + + + + Cached name for the 'get_layer_mask' method. + + + + + Cached name for the 'set_cast_shadows_setting' method. + + + + + Cached name for the 'get_cast_shadows_setting' method. + + + + + Cached name for the 'set_visibility_range_end_margin' method. + + + + + Cached name for the 'get_visibility_range_end_margin' method. + + + + + Cached name for the 'set_visibility_range_end' method. + + + + + Cached name for the 'get_visibility_range_end' method. + + + + + Cached name for the 'set_visibility_range_begin_margin' method. + + + + + Cached name for the 'get_visibility_range_begin_margin' method. + + + + + Cached name for the 'set_visibility_range_begin' method. + + + + + Cached name for the 'get_visibility_range_begin' method. + + + + + Cached name for the 'set_visibility_range_fade_mode' method. + + + + + Cached name for the 'get_visibility_range_fade_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton handles key presses, mouse buttons and movement, gamepads, and input actions. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the class. + Note: 's methods reflect the global input state and are not affected by or , as those methods only deal with the way input is propagated in the . + + + + + Makes the mouse cursor visible if it is hidden. + + + + + Makes the mouse cursor hidden if it is visible. + + + + + Captures the mouse. The mouse will be hidden and its position locked at the center of the window manager's window. + Note: If you want to process the mouse's movement in this mode, you need to use . + + + + + Confines the mouse cursor to the game window, and make it visible. + + + + + Confines the mouse cursor to the game window, and make it hidden. + + + + + Arrow cursor. Standard, default pointing cursor. + + + + + I-beam cursor. Usually used to show where the text cursor will appear when the mouse is clicked. + + + + + Pointing hand cursor. Usually used to indicate the pointer is over a link or other interactable item. + + + + + Cross cursor. Typically appears over regions in which a drawing operation can be performed or for selections. + + + + + Wait cursor. Indicates that the application is busy performing an operation, and that it cannot be used during the operation (e.g. something is blocking its main thread). + + + + + Busy cursor. Indicates that the application is busy performing an operation, and that it is still usable during the operation. + + + + + Drag cursor. Usually displayed when dragging something. + Note: Windows lacks a dragging cursor, so is the same as for this platform. + + + + + Can drop cursor. Usually displayed when dragging something to indicate that it can be dropped at the current position. + + + + + Forbidden cursor. Indicates that the current action is forbidden (for example, when dragging something) or that the control at a position is disabled. + + + + + Vertical resize mouse cursor. A double-headed vertical arrow. It tells the user they can resize the window or the panel vertically. + + + + + Horizontal resize mouse cursor. A double-headed horizontal arrow. It tells the user they can resize the window or the panel horizontally. + + + + + 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. + + + + + Window resize mouse cursor. The cursor is a double-headed arrow that goes from the top left to the bottom right, the opposite of . It tells the user they can resize the window or the panel both horizontally and vertically. + + + + + Move cursor. Indicates that something can be moved. + + + + + Vertical split mouse cursor. On Windows, it's the same as . + + + + + Horizontal split mouse cursor. On Windows, it's the same as . + + + + + Help cursor. Usually a question mark. + + + + + Controls the mouse mode. See for more information. + + + + + If , similar input events sent by the operating system are accumulated. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS. + Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input. + Note: Input accumulation is enabled by default. + + + + + If , sends mouse input events when tapping or swiping on the touchscreen. See also ProjectSettings.input_devices/pointing/emulate_mouse_from_touch. + + + + + If , sends touch input events when clicking or dragging the mouse. See also ProjectSettings.input_devices/pointing/emulate_touch_from_mouse. + + + + + Returns if any action, key, joypad button, or mouse button is being pressed. This will also return if any action is simulated via code by calling . + + + + + Returns if you are pressing the Latin key in the current keyboard layout. You can pass a constant. + is only recommended over in non-game applications. This ensures that shortcut keys behave as expected depending on the user's keyboard layout, as keyboard shortcuts are generally dependent on the keyboard layout in non-game applications. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a constant. + is recommended over for in-game actions, as it will make W/A/S/D layouts work regardless of the user's keyboard layout. will also ensure that the top row number keys work on any keyboard layout. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key with the printed on it. You can pass a constant or any Unicode character code. + + + + + Returns if you are pressing the mouse button specified with . + + + + + Returns if you are pressing the joypad button (see ). + + + + + Returns if you are pressing the action event. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns when the user has started pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user pressed down the button. + This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Returning does not imply that the action is still pressed. An action can be pressed and released again rapidly, and will still be returned so as not to miss input. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns when the user stops pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user releases the button. + Note: Returning does not imply that the action is still not pressed. An action can be released and pressed again rapidly, and will still be returned so as not to miss input. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns a value between 0 and 1 representing the intensity of the given action. In a joypad, for example, the further away the axis (analog sticks or L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If the action is mapped to a control that has no axis such as the keyboard, the value returned will be 0 or 1. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns a value between 0 and 1 representing the raw intensity of the given action, ignoring the action's deadzone. In most cases, you should use instead. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Get axis input by specifying two actions, one negative and one positive. + This is a shorthand for writing Input.get_action_strength("positive_action") - Input.get_action_strength("negative_action"). + + + + + Gets an input vector by specifying four actions for the positive and negative X and Y axes. + This method is useful when getting vector input, such as from a joystick, directional pad, arrows, or WASD. The vector has its length limited to 1 and has a circular deadzone, which is useful for using vector input as movement. + By default, the deadzone is automatically calculated from the average of the action deadzones. However, you can override the deadzone to be whatever you want (on the range of 0 to 1). + + + + + Adds a new mapping entry (in SDL2 format) to the mapping database. Optionally update already connected devices. + + + + + Removes all mappings from the internal database that match the given GUID. + + + + + Returns if the system knows the specified device. This means that it sets all button and axis indices. Unknown joypads are not expected to match these constants, but you can still retrieve events from them. + + + + + Returns the current value of the joypad axis at given index (see ). + + + + + Returns the name of the joypad at the specified device index, e.g. PS4 Controller. Godot uses the SDL2 game controller database to determine gamepad names. + + + + + Returns an SDL2-compatible device GUID on platforms that use gamepad remapping, e.g. 030000004c050000c405000000010000. Returns an empty string if it cannot be found. Godot uses the SDL2 game controller database to determine gamepad names and mappings based on this GUID. + On Windows, all XInput joypad GUIDs will be overridden by Godot to __XINPUT_DEVICE__, because their mappings are the same. + + + + + Returns a dictionary with extra platform-specific information about the device, e.g. the raw gamepad name from the OS or the Steam Input index. + On Windows, the dictionary contains the following fields: + xinput_index: The index of the controller in the XInput system. Undefined for DirectInput devices. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + On Linux: + raw_name: The name of the controller as it came from the OS, before getting renamed by the godot controller database. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + steam_input_index: The Steam Input gamepad index, if the device is not a Steam Input device this key won't be present. + Note: The returned dictionary is always empty on Web, iOS, Android, and macOS. + + + + + Queries whether an input device should be ignored or not. Devices can be ignored by setting the environment variable SDL_GAMECONTROLLER_IGNORE_DEVICES. Read the SDL documentation for more information. + Note: Some 3rd party tools can contribute to the list of ignored devices. For example, SteamInput creates virtual devices from physical devices for remapping purposes. To avoid handling the same input device twice, the original device is added to the ignore list. + + + + + Returns an containing the device IDs of all currently connected joypads. + + + + + Returns the strength of the joypad vibration: x is the strength of the weak motor, and y is the strength of the strong motor. + + + + + Returns the duration of the current vibration effect in seconds. + + + + + Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. is the strength of the weak motor (between 0 and 1) and is the strength of the strong motor (between 0 and 1). is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely). The vibration can be stopped early by calling . + Note: Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds. + Note: For macOS, vibration is only supported in macOS 11 and later. + + + + + Stops the vibration of the joypad started with . + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Returns the gravity in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the acceleration in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note this method returns an empty when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the magnetic field strength in micro-Tesla for all axes of the device's magnetometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Sets the gravity value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the acceleration value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the magnetic field of the magnetometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the rotation rate of the gyroscope sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Returns the last mouse velocity. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns the last mouse velocity in screen coordinates. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the mouse position to the specified vector, provided in pixels and relative to an origin at the upper left corner of the currently focused Window Manager game window. + Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if is set to or . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + This will simulate pressing the specified action. + The strength can be used for non-boolean actions, it's ranged between 0 and 1 representing the intensity of the given action. + Note: This method will not cause any calls. It is intended to be used with and . If you want to simulate _input, use instead. + + + + + If the specified action is already pressed, this will release it. + + + + + Sets the default cursor shape to be used in the viewport instead of . + Note: If you want to change the default cursor shape for 's nodes, use instead. + Note: This method generates an to update cursor immediately. + + + + + Returns the currently assigned cursor shape (see ). + + + + + Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing to the image parameter resets to the system cursor. See for the list of shapes. + can be either or and its size must be lower than or equal to 256×256. To avoid rendering issues, sizes lower than or equal to 128×128 are recommended. + must be within 's size. + Note: s aren't supported as custom mouse cursors. If using an , only the first frame will be displayed. + Note: The Lossless, Lossy or Uncompressed compression modes are recommended. The Video RAM compression mode can be used, but it will be decompressed on the CPU, which means loading times are slowed down and no memory is saved compared to lossless modes. + Note: On the web platform, the maximum allowed cursor image size is 128×128. Cursor images larger than 32×32 will also only be displayed if the mouse cursor image is entirely located within the page for security reasons. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Feeds an to the game. Can be used to artificially trigger input events from code. Also generates calls. + + var cancelEvent = new InputEventAction(); + cancelEvent.Action = "ui_cancel"; + cancelEvent.Pressed = true; + Input.ParseInputEvent(cancelEvent); + + Note: Calling this function has no influence on the operating system. So for example sending an will not move the OS mouse cursor to the specified position (use instead) and sending Alt/Cmd + Tab as won't toggle between active windows. + + + + + Sends all input events which are in the current buffer to the game loop. These events may have been buffered as a result of accumulated input () or agile input flushing (ProjectSettings.input_devices/buffering/agile_event_flushing). + The engine will already do this itself at key execution points (at least once per frame). However, this can be useful in advanced cases where you want precise control over the timing of event handling. + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a joypad device has been connected or disconnected. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mouse_mode' property. + + + + + Cached name for the 'use_accumulated_input' property. + + + + + Cached name for the 'emulate_mouse_from_touch' property. + + + + + Cached name for the 'emulate_touch_from_mouse' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_anything_pressed' method. + + + + + Cached name for the 'is_key_pressed' method. + + + + + Cached name for the 'is_physical_key_pressed' method. + + + + + Cached name for the 'is_key_label_pressed' method. + + + + + Cached name for the 'is_mouse_button_pressed' method. + + + + + Cached name for the 'is_joy_button_pressed' method. + + + + + Cached name for the 'is_action_pressed' method. + + + + + Cached name for the 'is_action_just_pressed' method. + + + + + Cached name for the 'is_action_just_released' method. + + + + + Cached name for the 'get_action_strength' method. + + + + + Cached name for the 'get_action_raw_strength' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'get_vector' method. + + + + + Cached name for the 'add_joy_mapping' method. + + + + + Cached name for the 'remove_joy_mapping' method. + + + + + Cached name for the 'is_joy_known' method. + + + + + Cached name for the 'get_joy_axis' method. + + + + + Cached name for the 'get_joy_name' method. + + + + + Cached name for the 'get_joy_guid' method. + + + + + Cached name for the 'get_joy_info' method. + + + + + Cached name for the 'should_ignore_device' method. + + + + + Cached name for the 'get_connected_joypads' method. + + + + + Cached name for the 'get_joy_vibration_strength' method. + + + + + Cached name for the 'get_joy_vibration_duration' method. + + + + + Cached name for the 'start_joy_vibration' method. + + + + + Cached name for the 'stop_joy_vibration' method. + + + + + Cached name for the 'vibrate_handheld' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'get_accelerometer' method. + + + + + Cached name for the 'get_magnetometer' method. + + + + + Cached name for the 'get_gyroscope' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'set_accelerometer' method. + + + + + Cached name for the 'set_magnetometer' method. + + + + + Cached name for the 'set_gyroscope' method. + + + + + Cached name for the 'get_last_mouse_velocity' method. + + + + + Cached name for the 'get_last_mouse_screen_velocity' method. + + + + + Cached name for the 'get_mouse_button_mask' method. + + + + + Cached name for the 'set_mouse_mode' method. + + + + + Cached name for the 'get_mouse_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'action_press' method. + + + + + Cached name for the 'action_release' method. + + + + + Cached name for the 'set_default_cursor_shape' method. + + + + + Cached name for the 'get_current_cursor_shape' method. + + + + + Cached name for the 'set_custom_mouse_cursor' method. + + + + + Cached name for the 'parse_input_event' method. + + + + + Cached name for the 'set_use_accumulated_input' method. + + + + + Cached name for the 'is_using_accumulated_input' method. + + + + + Cached name for the 'flush_buffered_events' method. + + + + + Cached name for the 'set_emulate_mouse_from_touch' method. + + + + + Cached name for the 'is_emulating_mouse_from_touch' method. + + + + + Cached name for the 'set_emulate_touch_from_mouse' method. + + + + + Cached name for the 'is_emulating_touch_from_mouse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'joy_connection_changed' signal. + + + + + The singleton handles key presses, mouse buttons and movement, gamepads, and input actions. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the class. + Note: 's methods reflect the global input state and are not affected by or , as those methods only deal with the way input is propagated in the . + + + + + Controls the mouse mode. See for more information. + + + + + If , similar input events sent by the operating system are accumulated. When input accumulation is enabled, all input events generated during a frame will be merged and emitted when the frame is done rendering. Therefore, this limits the number of input method calls per second to the rendering FPS. + Input accumulation can be disabled to get slightly more precise/reactive input at the cost of increased CPU usage. In applications where drawing freehand lines is required, input accumulation should generally be disabled while the user is drawing the line to get results that closely follow the actual input. + Note: Input accumulation is enabled by default. + + + + + If , sends mouse input events when tapping or swiping on the touchscreen. See also ProjectSettings.input_devices/pointing/emulate_mouse_from_touch. + + + + + If , sends touch input events when clicking or dragging the mouse. See also ProjectSettings.input_devices/pointing/emulate_touch_from_mouse. + + + + + Returns if any action, key, joypad button, or mouse button is being pressed. This will also return if any action is simulated via code by calling . + + + + + Returns if you are pressing the Latin key in the current keyboard layout. You can pass a constant. + is only recommended over in non-game applications. This ensures that shortcut keys behave as expected depending on the user's keyboard layout, as keyboard shortcuts are generally dependent on the keyboard layout in non-game applications. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key in the physical location on the 101/102-key US QWERTY keyboard. You can pass a constant. + is recommended over for in-game actions, as it will make W/A/S/D layouts work regardless of the user's keyboard layout. will also ensure that the top row number keys work on any keyboard layout. If in doubt, use . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if you are pressing the key with the printed on it. You can pass a constant or any Unicode character code. + + + + + Returns if you are pressing the mouse button specified with . + + + + + Returns if you are pressing the joypad button (see ). + + + + + Returns if you are pressing the action event. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns when the user has started pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user pressed down the button. + This is useful for code that needs to run only once when an action is pressed, instead of every frame while it's pressed. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Returning does not imply that the action is still pressed. An action can be pressed and released again rapidly, and will still be returned so as not to miss input. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns when the user stops pressing the action event in the current frame or physics tick. It will only return on the frame or tick that the user releases the button. + Note: Returning does not imply that the action is still not pressed. An action can be released and pressed again rapidly, and will still be returned so as not to miss input. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: During input handling (e.g. ), use instead to query the action state of the current event. + + + + + Returns a value between 0 and 1 representing the intensity of the given action. In a joypad, for example, the further away the axis (analog sticks or L2, R2 triggers) is from the dead zone, the closer the value will be to 1. If the action is mapped to a control that has no axis such as the keyboard, the value returned will be 0 or 1. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns a value between 0 and 1 representing the raw intensity of the given action, ignoring the action's deadzone. In most cases, you should use instead. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Get axis input by specifying two actions, one negative and one positive. + This is a shorthand for writing Input.get_action_strength("positive_action") - Input.get_action_strength("negative_action"). + + + + + Gets an input vector by specifying four actions for the positive and negative X and Y axes. + This method is useful when getting vector input, such as from a joystick, directional pad, arrows, or WASD. The vector has its length limited to 1 and has a circular deadzone, which is useful for using vector input as movement. + By default, the deadzone is automatically calculated from the average of the action deadzones. However, you can override the deadzone to be whatever you want (on the range of 0 to 1). + + + + + Adds a new mapping entry (in SDL2 format) to the mapping database. Optionally update already connected devices. + + + + + Removes all mappings from the internal database that match the given GUID. + + + + + Returns if the system knows the specified device. This means that it sets all button and axis indices. Unknown joypads are not expected to match these constants, but you can still retrieve events from them. + + + + + Returns the current value of the joypad axis at given index (see ). + + + + + Returns the name of the joypad at the specified device index, e.g. PS4 Controller. Godot uses the SDL2 game controller database to determine gamepad names. + + + + + Returns an SDL2-compatible device GUID on platforms that use gamepad remapping, e.g. 030000004c050000c405000000010000. Returns an empty string if it cannot be found. Godot uses the SDL2 game controller database to determine gamepad names and mappings based on this GUID. + On Windows, all XInput joypad GUIDs will be overridden by Godot to __XINPUT_DEVICE__, because their mappings are the same. + + + + + Returns a dictionary with extra platform-specific information about the device, e.g. the raw gamepad name from the OS or the Steam Input index. + On Windows, the dictionary contains the following fields: + xinput_index: The index of the controller in the XInput system. Undefined for DirectInput devices. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + On Linux: + raw_name: The name of the controller as it came from the OS, before getting renamed by the godot controller database. + vendor_id: The USB vendor ID of the device. + product_id: The USB product ID of the device. + steam_input_index: The Steam Input gamepad index, if the device is not a Steam Input device this key won't be present. + Note: The returned dictionary is always empty on Web, iOS, Android, and macOS. + + + + + Queries whether an input device should be ignored or not. Devices can be ignored by setting the environment variable SDL_GAMECONTROLLER_IGNORE_DEVICES. Read the SDL documentation for more information. + Note: Some 3rd party tools can contribute to the list of ignored devices. For example, SteamInput creates virtual devices from physical devices for remapping purposes. To avoid handling the same input device twice, the original device is added to the ignore list. + + + + + Returns an containing the device IDs of all currently connected joypads. + + + + + Returns the strength of the joypad vibration: x is the strength of the weak motor, and y is the strength of the strong motor. + + + + + Returns the duration of the current vibration effect in seconds. + + + + + Starts to vibrate the joypad. Joypads usually come with two rumble motors, a strong and a weak one. is the strength of the weak motor (between 0 and 1) and is the strength of the strong motor (between 0 and 1). is the duration of the effect in seconds (a duration of 0 will try to play the vibration indefinitely). The vibration can be stopped early by calling . + Note: Not every hardware is compatible with long effect durations; it is recommended to restart an effect if it has to be played for more than a few seconds. + Note: For macOS, vibration is only supported in macOS 11 and later. + + + + + Stops the vibration of the joypad started with . + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Returns the gravity in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the acceleration in m/s² of the device's accelerometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note this method returns an empty when running from the editor even when your device has an accelerometer. You must export your project to a supported device to read values from the accelerometer. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the magnetic field strength in micro-Tesla for all axes of the device's magnetometer sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Returns the rotation rate in rad/s around a device's X, Y, and Z axes of the gyroscope sensor, if the device has one. Otherwise, the method returns Vector3.ZERO. + Note: This method only works on Android and iOS. On other platforms, it always returns Vector3.ZERO. + + + + + Sets the gravity value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the acceleration value of the accelerometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the magnetic field of the magnetometer sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Sets the value of the rotation rate of the gyroscope sensor. Can be used for debugging on devices without a hardware sensor, for example in an editor on a PC. + Note: This value can be immediately overwritten by the hardware sensor value on Android and iOS. + + + + + Returns the last mouse velocity. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns the last mouse velocity in screen coordinates. To provide a precise and jitter-free velocity, mouse velocity is only calculated every 0.1s. Therefore, mouse velocity will lag mouse movements. + + + + + Returns mouse buttons as a bitmask. If multiple mouse buttons are pressed at the same time, the bits are added together. Equivalent to . + + + + + Sets the mouse position to the specified vector, provided in pixels and relative to an origin at the upper left corner of the currently focused Window Manager game window. + Mouse position is clipped to the limits of the screen resolution, or to the limits of the game window if is set to or . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + This will simulate pressing the specified action. + The strength can be used for non-boolean actions, it's ranged between 0 and 1 representing the intensity of the given action. + Note: This method will not cause any calls. It is intended to be used with and . If you want to simulate _input, use instead. + + + + + If the specified action is already pressed, this will release it. + + + + + Sets the default cursor shape to be used in the viewport instead of . + Note: If you want to change the default cursor shape for 's nodes, use instead. + Note: This method generates an to update cursor immediately. + + + + + Returns the currently assigned cursor shape (see ). + + + + + Sets a custom mouse cursor image, which is only visible inside the game window. The hotspot can also be specified. Passing to the image parameter resets to the system cursor. See for the list of shapes. + can be either or and its size must be lower than or equal to 256×256. To avoid rendering issues, sizes lower than or equal to 128×128 are recommended. + must be within 's size. + Note: s aren't supported as custom mouse cursors. If using an , only the first frame will be displayed. + Note: The Lossless, Lossy or Uncompressed compression modes are recommended. The Video RAM compression mode can be used, but it will be decompressed on the CPU, which means loading times are slowed down and no memory is saved compared to lossless modes. + Note: On the web platform, the maximum allowed cursor image size is 128×128. Cursor images larger than 32×32 will also only be displayed if the mouse cursor image is entirely located within the page for security reasons. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Feeds an to the game. Can be used to artificially trigger input events from code. Also generates calls. + + var cancelEvent = new InputEventAction(); + cancelEvent.Action = "ui_cancel"; + cancelEvent.Pressed = true; + Input.ParseInputEvent(cancelEvent); + + Note: Calling this function has no influence on the operating system. So for example sending an will not move the OS mouse cursor to the specified position (use instead) and sending Alt/Cmd + Tab as won't toggle between active windows. + + + + + Sends all input events which are in the current buffer to the game loop. These events may have been buffered as a result of accumulated input () or agile input flushing (ProjectSettings.input_devices/buffering/agile_event_flushing). + The engine will already do this itself at key execution points (at least once per frame). However, this can be useful in advanced cases where you want precise control over the timing of event handling. + + + + + Vibrate the handheld device for the specified duration in milliseconds. + is the strength of the vibration, as a value between 0.0 and 1.0. If set to -1.0, the default vibration strength of the device is used. + Note: This method is implemented on Android, iOS, and Web. It has no effect on other platforms. + Note: For Android, requires enabling the VIBRATE permission in the export preset. Otherwise, will have no effect. + Note: For iOS, specifying the duration is only supported in iOS 13 and later. + Note: For Web, the amplitude cannot be changed. + Note: Some web browsers such as Safari and Firefox for Android do not support . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a joypad device has been connected or disconnected. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mouse_mode' property. + + + + + Cached name for the 'use_accumulated_input' property. + + + + + Cached name for the 'emulate_mouse_from_touch' property. + + + + + Cached name for the 'emulate_touch_from_mouse' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_anything_pressed' method. + + + + + Cached name for the 'is_key_pressed' method. + + + + + Cached name for the 'is_physical_key_pressed' method. + + + + + Cached name for the 'is_key_label_pressed' method. + + + + + Cached name for the 'is_mouse_button_pressed' method. + + + + + Cached name for the 'is_joy_button_pressed' method. + + + + + Cached name for the 'is_action_pressed' method. + + + + + Cached name for the 'is_action_just_pressed' method. + + + + + Cached name for the 'is_action_just_released' method. + + + + + Cached name for the 'get_action_strength' method. + + + + + Cached name for the 'get_action_raw_strength' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'get_vector' method. + + + + + Cached name for the 'add_joy_mapping' method. + + + + + Cached name for the 'remove_joy_mapping' method. + + + + + Cached name for the 'is_joy_known' method. + + + + + Cached name for the 'get_joy_axis' method. + + + + + Cached name for the 'get_joy_name' method. + + + + + Cached name for the 'get_joy_guid' method. + + + + + Cached name for the 'get_joy_info' method. + + + + + Cached name for the 'should_ignore_device' method. + + + + + Cached name for the 'get_connected_joypads' method. + + + + + Cached name for the 'get_joy_vibration_strength' method. + + + + + Cached name for the 'get_joy_vibration_duration' method. + + + + + Cached name for the 'start_joy_vibration' method. + + + + + Cached name for the 'stop_joy_vibration' method. + + + + + Cached name for the 'vibrate_handheld' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'get_accelerometer' method. + + + + + Cached name for the 'get_magnetometer' method. + + + + + Cached name for the 'get_gyroscope' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'set_accelerometer' method. + + + + + Cached name for the 'set_magnetometer' method. + + + + + Cached name for the 'set_gyroscope' method. + + + + + Cached name for the 'get_last_mouse_velocity' method. + + + + + Cached name for the 'get_last_mouse_screen_velocity' method. + + + + + Cached name for the 'get_mouse_button_mask' method. + + + + + Cached name for the 'set_mouse_mode' method. + + + + + Cached name for the 'get_mouse_mode' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'action_press' method. + + + + + Cached name for the 'action_release' method. + + + + + Cached name for the 'set_default_cursor_shape' method. + + + + + Cached name for the 'get_current_cursor_shape' method. + + + + + Cached name for the 'set_custom_mouse_cursor' method. + + + + + Cached name for the 'parse_input_event' method. + + + + + Cached name for the 'set_use_accumulated_input' method. + + + + + Cached name for the 'is_using_accumulated_input' method. + + + + + Cached name for the 'flush_buffered_events' method. + + + + + Cached name for the 'set_emulate_mouse_from_touch' method. + + + + + Cached name for the 'is_emulating_mouse_from_touch' method. + + + + + Cached name for the 'set_emulate_touch_from_mouse' method. + + + + + Cached name for the 'is_emulating_touch_from_mouse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'joy_connection_changed' signal. + + + + + Abstract base class of all types of input events. See . + + + + + Device ID used for emulated mouse input from a touchscreen, or for emulated touch input from a mouse. This can be used to distinguish emulated mouse input from physical mouse input, or emulated touch input from physical touch input. + + + + + The event's device ID. + Note: can be negative for special use cases that don't refer to devices physically present on the system. See . + + + + + Returns if this input event matches a pre-defined action of any type. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns if the given action is being pressed (and is not an echo event for events, unless is ). Not relevant for events of type or . + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if the given action is released (i.e. not pressed). Not relevant for events of type or . + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns a value between 0.0 and 1.0 depending on the given actions' state. Useful for getting the value of events of type . + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Returns if this input event has been canceled. + + + + + Returns if this input event is pressed. Not relevant for events of type or . + Note: Due to keyboard ghosting, may return even if one of the action's keys is pressed. See Input examples in the documentation for more information. + + + + + Returns if this input event is released. Not relevant for events of type or . + + + + + Returns if this input event is an echo event (only for events of type ). An echo event is a repeated key event sent when the user is holding down the key. Any other event type returns . + Note: The rate at which echo events are sent is typically around 20 events per second (after holding down the key for roughly half a second). However, the key repeat delay/speed can be changed by the user or disabled entirely in the operating system settings. To ensure your project works correctly on all configurations, do not assume the user has a specific key repeat configuration in your project's behavior. + + + + + Returns a representation of the event. + + + + + Returns if the specified matches this event. Only valid for action events i.e key (), button ( or ), axis or action () events. + If is , it ignores additional input modifiers for and events, and the direction for events. + Note: Only considers the event configuration (such as the keyboard key or joypad axis), not state information like , , , or . + + + + + Returns if this input event's type is one that can be assigned to an input action. + + + + + Returns if the given input event and this input event can be added together (only for events of type ). + The given input event's position, global position and speed will be copied. The resulting relative is a sum of both events. Both events' modifiers have to be identical. + + + + + Returns a copy of the given input event which has been offset by and transformed by . Relevant for events of type , , , , and . + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'device' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_device' method. + + + + + Cached name for the 'get_device' method. + + + + + Cached name for the 'is_action' method. + + + + + Cached name for the 'is_action_pressed' method. + + + + + Cached name for the 'is_action_released' method. + + + + + Cached name for the 'get_action_strength' method. + + + + + Cached name for the 'is_canceled' method. + + + + + Cached name for the 'is_pressed' method. + + + + + Cached name for the 'is_released' method. + + + + + Cached name for the 'is_echo' method. + + + + + Cached name for the 'as_text' method. + + + + + Cached name for the 'is_match' method. + + + + + Cached name for the 'is_action_type' method. + + + + + Cached name for the 'accumulate' method. + + + + + Cached name for the 'xformed_by' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains a generic action which can be targeted from several types of inputs. Actions and their events can be set in the Input Map tab in Project > Project Settings, or with the class. + Note: Unlike the other 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 , which are then received in . To check if a physical event matches an action from the Input Map, use and . + + + + + The action's name. Actions are accessed via this . + + + + + If , the action's state is pressed. If , the action's state is released. + + + + + The action's strength between 0 and 1. This value is considered as equal to 0 if pressed is . The event strength allows faking analog joypad motion events, by specifying how strongly the joypad axis is bent or pressed. + + + + + The real event index in action this event corresponds to (from events defined for this action in the ). If -1, a unique ID will be used and actions pressed with this ID will need to be released with another . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'strength' property. + + + + + Cached name for the 'event_index' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action' method. + + + + + Cached name for the 'get_action' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_strength' method. + + + + + Cached name for the 'get_strength' method. + + + + + Cached name for the 'set_event_index' method. + + + + + Cached name for the 'get_event_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + InputEventFromWindow represents events specifically received by windows. This includes mouse events, keyboard events in focused windows or touch screen actions. + + + + + The ID of a that received this event. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'window_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_window_id' method. + + + + + Cached name for the 'get_window_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The local gesture position relative to the . If used in , the position is relative to the current that received this gesture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Input event type for gamepad buttons. For gamepad analog sticks and joysticks, see . + + + + + Button identifier. One of the button constants. + + + + + If , the button's state is pressed. If , the button's state is released. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'button_index' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_button_index' method. + + + + + Cached name for the 'get_button_index' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about joystick motions. One represents one axis at a time. For gamepad buttons, see . + + + + + Axis identifier. Use one of the axis constants. + + + + + Current position of the joystick on the given axis. The value ranges from -1.0 to 1.0. A value of 0 means the axis is in its resting position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'axis' property. + + + + + Cached name for the 'axis_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_axis' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'set_axis_value' method. + + + + + Cached name for the 'get_axis_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An input event for keys on a keyboard. Supports key presses, key releases and events. It can also be received in . + Note: Events received from the keyboard usually have all properties set. Event mappings should have only one of the , or set. + When events are compared, properties are checked in the following priority - , and . Events with the first matching value will be considered equal. + + + + + If , the key's state is pressed. If , the key's state is released. + + + + + Latin label printed on the key in the current keyboard layout, which corresponds to one of the constants. + To get a human-readable representation of the , use OS.get_keycode_string(event.keycode) where event is the . + + +-----+ +-----+ + | Q | | Q | - "Q" - keycode + | Й | | ض | - "Й" and "ض" - key_label + +-----+ +-----+ + + + + + + Represents the physical location of a key on the 101/102-key US QWERTY keyboard, which corresponds to one of the constants. + To get a human-readable representation of the , use in combination with : + + public override void _Input(InputEvent @event) + { + if (@event is InputEventKey inputEventKey) + { + var keycode = DisplayServer.KeyboardGetKeycodeFromPhysical(inputEventKey.PhysicalKeycode); + GD.Print(OS.GetKeycodeString(keycode)); + } + } + + + + + + Represents the localized label printed on the key in the current keyboard layout, which corresponds to one of the constants or any valid Unicode character. + For keyboard layouts with a single label on the key, it is equivalent to . + To get a human-readable representation of the , use OS.get_keycode_string(event.key_label) where event is the . + + +-----+ +-----+ + | Q | | Q | - "Q" - keycode + | Й | | ض | - "Й" and "ض" - key_label + +-----+ +-----+ + + + + + + The key Unicode character code (when relevant), shifted by modifier keys. Unicode character codes for composite characters and complex scripts may not be available unless IME input mode is active. See for more information. + + + + + Represents the location of a key which has both left and right versions, such as Shift or Alt. + + + + + If , the key was already pressed before this event. An echo event is a repeated key event sent when the user is holding down the key. + Note: The rate at which echo events are sent is typically around 20 events per second (after holding down the key for roughly half a second). However, the key repeat delay/speed can be changed by the user or disabled entirely in the operating system settings. To ensure your project works correctly on all configurations, do not assume the user has a specific key repeat configuration in your project's behavior. + + + + + Returns the Latin keycode combined with modifier keys such as Shift or Alt. See also . + To get a human-readable representation of the with modifiers, use OS.get_keycode_string(event.get_keycode_with_modifiers()) where event is the . + + + + + Returns the physical keycode combined with modifier keys such as Shift or Alt. See also . + To get a human-readable representation of the with modifiers, use OS.get_keycode_string(event.get_physical_keycode_with_modifiers()) where event is the . + + + + + Returns the localized key label combined with modifier keys such as Shift or Alt. See also . + To get a human-readable representation of the with modifiers, use OS.get_keycode_string(event.get_key_label_with_modifiers()) where event is the . + + + + + Returns a representation of the event's and modifiers. + + + + + Returns a representation of the event's and modifiers. + + + + + Returns a representation of the event's and modifiers. + + + + + Returns a representation of the event's . This will be a blank string if the event is not specific to a location. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'keycode' property. + + + + + Cached name for the 'physical_keycode' property. + + + + + Cached name for the 'key_label' property. + + + + + Cached name for the 'unicode' property. + + + + + Cached name for the 'location' property. + + + + + Cached name for the 'echo' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_keycode' method. + + + + + Cached name for the 'get_keycode' method. + + + + + Cached name for the 'set_physical_keycode' method. + + + + + Cached name for the 'get_physical_keycode' method. + + + + + Cached name for the 'set_key_label' method. + + + + + Cached name for the 'get_key_label' method. + + + + + Cached name for the 'set_unicode' method. + + + + + Cached name for the 'get_unicode' method. + + + + + Cached name for the 'set_location' method. + + + + + Cached name for the 'get_location' method. + + + + + Cached name for the 'set_echo' method. + + + + + Cached name for the 'get_keycode_with_modifiers' method. + + + + + Cached name for the 'get_physical_keycode_with_modifiers' method. + + + + + Cached name for the 'get_key_label_with_modifiers' method. + + + + + Cached name for the 'as_text_keycode' method. + + + + + Cached name for the 'as_text_physical_keycode' method. + + + + + Cached name for the 'as_text_key_label' method. + + + + + Cached name for the 'as_text_location' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + InputEventMIDI stores information about messages from MIDI (Musical Instrument Digital Interface) devices. These may include musical keyboards, synthesizers, and drum machines. + MIDI messages can be received over a 5-pin MIDI connector or over USB. If your device supports both be sure to check the settings in the device to see which output it is using. + By default, Godot does not detect MIDI devices. You need to call , first. You can check which devices are detected with , and close the connection with . + + public override void _Ready() + { + OS.OpenMidiInputs(); + GD.Print(OS.GetConnectedMidiInputs()); + } + + public override void _Input(InputEvent inputEvent) + { + if (inputEvent is InputEventMidi midiEvent) + { + PrintMIDIInfo(midiEvent); + } + } + + private void PrintMIDIInfo(InputEventMidi midiEvent) + { + GD.Print(midiEvent); + GD.Print($"Channel {midiEvent.Channel}"); + GD.Print($"Message {midiEvent.Message}"); + GD.Print($"Pitch {midiEvent.Pitch}"); + GD.Print($"Velocity {midiEvent.Velocity}"); + GD.Print($"Instrument {midiEvent.Instrument}"); + GD.Print($"Pressure {midiEvent.Pressure}"); + GD.Print($"Controller number: {midiEvent.ControllerNumber}"); + GD.Print($"Controller value: {midiEvent.ControllerValue}"); + } + + Note: Godot does not support MIDI output, so there is no way to emit MIDI messages from Godot. Only MIDI input is supported. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . MIDI input will not work until the user accepts the permission request. + + + + + The MIDI channel of this message, ranging from 0 to 15. MIDI channel 9 is reserved for percussion instruments. + + + + + Represents the type of MIDI message (see the enum). + For more information, see the MIDI message status byte list chart. + + + + + The pitch index number of this MIDI message. This value ranges from 0 to 127. + On a piano, the middle C is 60, followed by a C-sharp (61), then a D (62), and so on. Each octave is split in offsets of 12. See the "MIDI note number" column of the piano key frequency chart a full list. + + + + + The velocity of the MIDI message. This value ranges from 0 to 127. For a musical keyboard, this corresponds to how quickly the key was pressed, and is rarely above 110 in practice. + Note: Some MIDI devices may send a message with 0 velocity and expect it to be treated the same as a message. If necessary, this can be handled with a few lines of code: + + func _input(event): + if event is InputEventMIDI: + if event.message == MIDI_MESSAGE_NOTE_ON and event.velocity > 0: + print("Note pressed!") + + + + + + The instrument (also called program or preset) used on this MIDI message. This value ranges from 0 to 127. + To see what each value means, refer to the General MIDI's instrument list. Keep in mind that the list is off by 1 because it does not begin from 0. A value of 0 corresponds to the acoustic grand piano. + + + + + The strength of the key being pressed. This value ranges from 0 to 127. + Note: For many devices, this value is always 0. Other devices such as musical keyboards may simulate pressure by changing the , instead. + + + + + The unique number of the controller, if is , otherwise this is 0. This value can be used to identify sliders for volume, balance, and panning, as well as switches and pedals on the MIDI device. See the General MIDI specification for a small list. + + + + + The value applied to the controller. If is , this value ranges from 0 to 127, otherwise it is 0. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'channel' property. + + + + + Cached name for the 'message' property. + + + + + Cached name for the 'pitch' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'instrument' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'controller_number' property. + + + + + Cached name for the 'controller_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_channel' method. + + + + + Cached name for the 'get_channel' method. + + + + + Cached name for the 'set_message' method. + + + + + Cached name for the 'get_message' method. + + + + + Cached name for the 'set_pitch' method. + + + + + Cached name for the 'get_pitch' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_instrument' method. + + + + + Cached name for the 'get_instrument' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_controller_number' method. + + + + + Cached name for the 'get_controller_number' method. + + + + + Cached name for the 'set_controller_value' method. + + + + + Cached name for the 'get_controller_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores the factor of a magnifying touch gesture. This is usually performed when the user pinches the touch screen and used for zooming in/out. + Note: On Android, this requires the ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures project setting to be enabled. + + + + + The amount (or delta) of the event. This value is closer to 1.0 the slower the gesture is performed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'factor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_factor' method. + + + + + Cached name for the 'get_factor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores general information about mouse events. + + + + + The mouse button mask identifier, one of or a bitwise combination of the button masks. + + + + + When received in or , returns the mouse's position in the this is in using the coordinate system of this . + When received in , returns the mouse's position in the using the local coordinate system of the . + + + + + When received in or , returns the mouse's position in the root using the coordinate system of the root . + When received in , returns the mouse's position in the that the is in using the coordinate system of the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'button_mask' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_button_mask' method. + + + + + Cached name for the 'get_button_mask' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about mouse click events. See . + Note: On Wear OS devices, rotary input is mapped to and . This can be changed to and with the ProjectSettings.input_devices/pointing/android/rotary_input_scroll_axis setting. + + + + + The amount (or delta) of the event. When used for high-precision scroll events, this indicates the scroll amount (vertical or horizontal). This is only supported on some platforms; the reported sensitivity varies depending on the platform. May be 0 if not supported. + + + + + The mouse button identifier, one of the button or button wheel constants. + + + + + If , the mouse button event has been canceled. + + + + + If , the mouse button's state is pressed. If , the mouse button's state is released. + + + + + If , the mouse button's state is a double-click. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'factor' property. + + + + + Cached name for the 'button_index' property. + + + + + Cached name for the 'canceled' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'double_click' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_factor' method. + + + + + Cached name for the 'get_factor' method. + + + + + Cached name for the 'set_button_index' method. + + + + + Cached name for the 'get_button_index' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_canceled' method. + + + + + Cached name for the 'set_double_click' method. + + + + + Cached name for the 'is_double_click' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about a mouse or a pen motion. This includes relative position, absolute position, and velocity. See . + Note: By default, this event is only emitted once per frame rendered at most. If you need more precise input reporting, set to to make events emitted as often as possible. If you use InputEventMouseMotion to draw lines, consider using as well to avoid visible gaps in lines if the user is moving the mouse quickly. + Note: This event may be emitted even when the mouse hasn't moved, either by the operating system or by Godot itself. If you really need to know if the mouse has moved (e.g. to suppress displaying a tooltip), you should check that relative.is_zero_approx() is . + + + + + Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from -1.0 to 1.0 for both axes. + + + + + Represents the pressure the user puts on the pen. Ranges from 0.0 to 1.0. + + + + + Returns when using the eraser end of a stylus pen. + Note: This property is implemented on Linux, macOS and Windows. + + + + + The mouse position relative to the previous position (position at the last frame). + Note: Since may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary. + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using in a script that handles mouse aiming with the mouse mode. To avoid this, use instead. + + + + + The unscaled mouse position relative to the previous position in the coordinate system of the screen (position at the last frame). + Note: Since may only be emitted when the mouse moves, it is not possible to reliably detect when the mouse has stopped moving by checking this property. A separate, short timer may be necessary. + Note: This coordinate is not scaled according to the content scale factor or calls to . This should be preferred over for mouse aiming when using the mouse mode, regardless of the project's stretch mode. + + + + + The mouse velocity in pixels per second. + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means mouse sensitivity will appear different depending on resolution when using in a script that handles mouse aiming with the mouse mode. To avoid this, use instead. + + + + + The unscaled mouse velocity in pixels per second in screen coordinates. This velocity is not scaled according to the content scale factor or calls to . This should be preferred over for mouse aiming when using the mouse mode, regardless of the project's stretch mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tilt' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'pen_inverted' property. + + + + + Cached name for the 'relative' property. + + + + + Cached name for the 'screen_relative' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'screen_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tilt' method. + + + + + Cached name for the 'get_tilt' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_pen_inverted' method. + + + + + Cached name for the 'get_pen_inverted' method. + + + + + Cached name for the 'set_relative' method. + + + + + Cached name for the 'get_relative' method. + + + + + Cached name for the 'set_screen_relative' method. + + + + + Cached name for the 'get_screen_relative' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_screen_velocity' method. + + + + + Cached name for the 'get_screen_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about pan gestures. A pan gesture is performed when the user swipes the touch screen with two fingers. It's typically used for panning/scrolling. + Note: On Android, this requires the ProjectSettings.input_devices/pointing/android/enable_pan_and_scale_gestures project setting to be enabled. + + + + + Panning amount since last pan event. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'delta' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_delta' method. + + + + + Cached name for the 'get_delta' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about screen drag events. See . + + + + + The drag event index in the case of a multi-drag event. + + + + + Represents the angles of tilt of the pen. Positive X-coordinate value indicates a tilt to the right. Positive Y-coordinate value indicates a tilt toward the user. Ranges from -1.0 to 1.0 for both axes. + + + + + Represents the pressure the user puts on the pen. Ranges from 0.0 to 1.0. + + + + + Returns when using the eraser end of a stylus pen. + + + + + The drag position in the viewport the node is in, using the coordinate system of this viewport. + + + + + The drag position relative to the previous position (position at the last frame). + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means touch sensitivity will appear different depending on resolution when using in a script that handles touch aiming. To avoid this, use instead. + + + + + The unscaled drag position relative to the previous position in screen coordinates (position at the last frame). This position is not scaled according to the content scale factor or calls to . This should be preferred over for touch aiming regardless of the project's stretch mode. + + + + + The drag velocity. + Note: is automatically scaled according to the content scale factor, which is defined by the project's stretch mode settings. This means touch sensitivity will appear different depending on resolution when using in a script that handles touch aiming. To avoid this, use instead. + + + + + The unscaled drag velocity in pixels per second in screen coordinates. This velocity is not scaled according to the content scale factor or calls to . This should be preferred over for touch aiming regardless of the project's stretch mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'index' property. + + + + + Cached name for the 'tilt' property. + + + + + Cached name for the 'pressure' property. + + + + + Cached name for the 'pen_inverted' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'relative' property. + + + + + Cached name for the 'screen_relative' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'screen_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_index' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'set_tilt' method. + + + + + Cached name for the 'get_tilt' method. + + + + + Cached name for the 'set_pressure' method. + + + + + Cached name for the 'get_pressure' method. + + + + + Cached name for the 'set_pen_inverted' method. + + + + + Cached name for the 'get_pen_inverted' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_relative' method. + + + + + Cached name for the 'get_relative' method. + + + + + Cached name for the 'set_screen_relative' method. + + + + + Cached name for the 'get_screen_relative' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_screen_velocity' method. + + + + + Cached name for the 'get_screen_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about multi-touch press/release input events. Supports touch press, touch release and for multi-touch count and order. + + + + + The touch index in the case of a multi-touch event. One index = one finger. + + + + + The touch position in the viewport the node is in, using the coordinate system of this viewport. + + + + + If , the touch event has been canceled. + + + + + If , the touch's state is pressed. If , the touch's state is released. + + + + + If , the touch's state is a double tap. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'index' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'canceled' property. + + + + + Cached name for the 'pressed' property. + + + + + Cached name for the 'double_tap' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_index' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_pressed' method. + + + + + Cached name for the 'set_canceled' method. + + + + + Cached name for the 'set_double_tap' method. + + + + + Cached name for the 'is_double_tap' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + InputEventShortcut is a special event that can be received in , , and . It is typically sent by the editor's Command Palette to trigger actions, but can also be sent manually using . + + + + + The represented by this event. Its method will always return for this event. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shortcut' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shortcut' method. + + + + + Cached name for the 'get_shortcut' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores information about mouse, keyboard, and touch gesture input events. This includes information about which modifier keys are pressed, such as Shift or Alt. See . + + + + + Automatically use Meta (Cmd) on macOS and Ctrl on other platforms. If , and cannot be set. + + + + + State of the Alt modifier. + + + + + State of the Shift modifier. + + + + + State of the Ctrl modifier. + + + + + State of the Meta modifier. On Windows and Linux, this represents the Windows key (sometimes called "meta" or "super" on Linux). On macOS, this represents the Command key. + + + + + On macOS, returns if Meta (Cmd) is pressed. + On other platforms, returns if Ctrl is pressed. + + + + + Returns the keycode combination of modifier keys. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'command_or_control_autoremap' property. + + + + + Cached name for the 'alt_pressed' property. + + + + + Cached name for the 'shift_pressed' property. + + + + + Cached name for the 'ctrl_pressed' property. + + + + + Cached name for the 'meta_pressed' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_command_or_control_autoremap' method. + + + + + Cached name for the 'is_command_or_control_autoremap' method. + + + + + Cached name for the 'is_command_or_control_pressed' method. + + + + + Cached name for the 'set_alt_pressed' method. + + + + + Cached name for the 'is_alt_pressed' method. + + + + + Cached name for the 'set_shift_pressed' method. + + + + + Cached name for the 'is_shift_pressed' method. + + + + + Cached name for the 'set_ctrl_pressed' method. + + + + + Cached name for the 'is_ctrl_pressed' method. + + + + + Cached name for the 'set_meta_pressed' method. + + + + + Cached name for the 'is_meta_pressed' method. + + + + + Cached name for the 'get_modifiers_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Manages all which can be created/modified from the project settings menu Project > Project Settings > Input Map or in code with and . See . + + + + + Returns if the has a registered action with the given name. + + + + + Returns an array of all actions in the . + + + + + Adds an empty action to the with a configurable . + An can then be added to this action with . + + + + + Removes an action from the . + + + + + Sets a deadzone value for the action. + + + + + Returns a deadzone value for the action. + + + + + Adds an to an action. This will trigger the action. + + + + + Returns if the action has the given associated with it. + + + + + Removes an from an action. + + + + + Removes all events from an action. + + + + + Returns an array of s associated with a given action. + Note: When used in the editor (e.g. a tool script or EditorPlugin), this method will return events for the editor action. If you want to access your project's input binds from the editor, read the input/* settings from . + + + + + Returns if the given event is part of an existing action. This method ignores keyboard modifiers if the given is not pressed (for proper release detection). See if you don't want this behavior. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Clears all in the and load it anew from . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_action' method. + + + + + Cached name for the 'get_actions' method. + + + + + Cached name for the 'add_action' method. + + + + + Cached name for the 'erase_action' method. + + + + + Cached name for the 'action_set_deadzone' method. + + + + + Cached name for the 'action_get_deadzone' method. + + + + + Cached name for the 'action_add_event' method. + + + + + Cached name for the 'action_has_event' method. + + + + + Cached name for the 'action_erase_event' method. + + + + + Cached name for the 'action_erase_events' method. + + + + + Cached name for the 'action_get_events' method. + + + + + Cached name for the 'event_is_action' method. + + + + + Cached name for the 'load_from_project_settings' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Manages all which can be created/modified from the project settings menu Project > Project Settings > Input Map or in code with and . See . + + + + + Returns if the has a registered action with the given name. + + + + + Returns an array of all actions in the . + + + + + Adds an empty action to the with a configurable . + An can then be added to this action with . + + + + + Removes an action from the . + + + + + Sets a deadzone value for the action. + + + + + Returns a deadzone value for the action. + + + + + Adds an to an action. This will trigger the action. + + + + + Returns if the action has the given associated with it. + + + + + Removes an from an action. + + + + + Removes all events from an action. + + + + + Returns an array of s associated with a given action. + Note: When used in the editor (e.g. a tool script or EditorPlugin), this method will return events for the editor action. If you want to access your project's input binds from the editor, read the input/* settings from . + + + + + Returns if the given event is part of an existing action. This method ignores keyboard modifiers if the given is not pressed (for proper release detection). See if you don't want this behavior. + If is , it ignores additional input modifiers for and events, and the direction for events. + + + + + Clears all in the and load it anew from . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_action' method. + + + + + Cached name for the 'get_actions' method. + + + + + Cached name for the 'add_action' method. + + + + + Cached name for the 'erase_action' method. + + + + + Cached name for the 'action_set_deadzone' method. + + + + + Cached name for the 'action_get_deadzone' method. + + + + + Cached name for the 'action_add_event' method. + + + + + Cached name for the 'action_has_event' method. + + + + + Cached name for the 'action_erase_event' method. + + + + + Cached name for the 'action_erase_events' method. + + + + + Cached name for the 'action_get_events' method. + + + + + Cached name for the 'event_is_action' method. + + + + + Cached name for the 'load_from_project_settings' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Turning on the option Load As Placeholder for an instantiated scene in the editor causes it to be replaced by an 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 . This is useful to avoid loading large scenes all at once by loading parts of it selectively. + The does not have a transform. This causes any child nodes to be positioned relatively to the 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. + + + + + Returns the list of properties that will be applied to the node when is called. + If is , a key named .order (note the leading period) is added to the dictionary. This .order key is an of property names specifying the order in which properties will be applied (with index 0 being the first). + + + + + Call this method to actually load in the node. The created node will be placed as a sibling above the in the scene tree. The 's reference is also returned for convenience. + Note: is not thread-safe. Use if calling from a thread. + + + + + Gets the path to the resource file that is loaded by default when calling . Not thread-safe. Use if calling from a thread. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_stored_values' method. + + + + + Cached name for the 'create_instance' method. + + + + + Cached name for the 'get_instance_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is used to make delays in a tweening sequence. See for more usage information. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This control provides a vertical list of selectable items that may be in a single or in multiple columns, with each item having options for text and an icon. Tooltips are supported and may be different for every item in the list. + Selectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be "activated" by double-clicking them or by pressing Enter. + Item text only supports single-line strings. Newline characters (e.g. \n) in the string won't produce a newline. Text wrapping is enabled in mode, but the column's width is adjusted to fully fit its content by default. You need to set greater than zero to wrap the text. + All set_* methods allow negative item indices, i.e. -1 to access the last item, -2 to select the second-to-last item, and so on. + Incremental search: Like and , supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec. + + + + + Icon is drawn above the text. + + + + + Icon is drawn to the left of the text. + + + + + Only allow selecting a single item. + + + + + Allows selecting multiple items by holding Ctrl or Shift. + + + + + Allows selecting multiple items by toggling them on and off. + + + + + Allows single or multiple item selection. See the constants. + + + + + If , the currently selected item can be selected again. + + + + + If , right mouse button click can select items. + + + + + If , allows navigating the with letter keys through incremental search. + + + + + Maximum lines of text allowed in each item. Space will be reserved even when there is not enough lines of text to display. + Note: This property takes effect only when is . To make the text wrap, should be greater than zero. + + + + + If , the control will automatically resize the width to fit its content. + + + + + If , the control will automatically resize the height to fit its content. + + + + + Sets the clipping behavior when the text exceeds an item's bounding rectangle. See for a description of all modes. + + + + + The number of items currently in the list. + + + + + Maximum columns the list will have. + If greater than zero, the content will be split among the specified columns. + A value of zero means unlimited columns, i.e. all items will be put in the same row. + + + + + Whether all columns will have the same width. + If , the width is equal to the largest column width of all columns. + + + + + The width all columns will be adjusted to. + A value of zero disables the adjustment, each item will have a width equal to the width of its content and the columns will have an uneven width. + + + + + The icon position, whether above or to the left of the text. See the constants. + + + + + The scale of icon applied after and transposing takes effect. + + + + + The size all icons will be adjusted to. + If either X or Y component is not greater than zero, icon size won't be affected. + + + + + Adds an item to the item list with specified text. Returns the index of an added item. + Specify an , or use as the for a list item with no icon. + If is , the list item will be selectable. + + + + + Adds an item to the item list with no text, only an icon. Returns the index of an added item. + + + + + Sets text of the item associated with the specified index. + + + + + Returns the text associated with the specified index. + + + + + Sets (or replaces) the icon's associated with the specified index. + + + + + Returns the icon associated with the specified index. + + + + + Sets item's text base writing direction. + + + + + Returns item's text base writing direction. + + + + + Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns item's text language code. + + + + + Sets the auto translate mode of the item associated with the specified index. + Items use by default, which uses the same auto translate mode as the itself. + + + + + Returns item's auto translate mode. + + + + + Sets whether the item icon will be drawn transposed. + + + + + Returns if the item icon will be drawn transposed, i.e. the X and Y axes are swapped. + + + + + Sets the region of item's icon used. The whole icon will be used if the region has no area. + + + + + Returns the region of item's icon used. The whole icon will be used if the region has no area. + + + + + Sets a modulating of the item associated with the specified index. + + + + + Returns a modulating item's icon at the specified index. + + + + + Allows or disallows selection of the item associated with the specified index. + + + + + Returns if the item at the specified index is selectable. + + + + + Disables (or enables) the item at the specified index. + Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter). + + + + + Returns if the item at the specified index is disabled. + + + + + Sets a value (of any type) to be stored with the item associated with the specified index. + + + + + Returns the metadata value of the specified index. + + + + + Sets the background color of the item specified by index to the specified . + + + + + Returns the custom background color of the item specified by index. + + + + + Sets the foreground color of the item specified by index to the specified . + + + + + Returns the custom foreground color of the item specified by index. + + + + + Returns the position and size of the item with the specified index, in the coordinate system of the node. If is the last column expands to fill the rest of the row. + Note: The returned value is unreliable if called right after modifying the , before it redraws in the next frame. + + + + + Sets whether the tooltip hint is enabled for specified item index. + + + + + Returns if the tooltip is enabled for specified item index. + + + + + Sets the tooltip hint for the item associated with the specified index. + + + + + Returns the tooltip hint associated with the specified index. + + + + + Select the item at the specified index. + Note: This method does not trigger the item selection signal. + + + + + Ensures the item associated with the specified index is not selected. + + + + + Ensures there are no items selected. + + + + + Returns if the item at the specified index is currently selected. + + + + + Returns an array with the indexes of the selected items. + + + + + Moves item from index to . + + + + + Removes the item specified by index from the list. + + + + + Removes all items from the list. + + + + + Sorts items in the list by their text. + + + + + Returns if one or more items are selected. + + + + + Returns the item index at the given . + When there is no item at that point, -1 will be returned if is , and the closest item index will be returned otherwise. + Note: The returned value is unreliable if called right after modifying the , before it redraws in the next frame. + + + + + Ensure current selection is visible, adjusting the scroll position as necessary. + + + + + Returns the vertical scrollbar. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Forces an update to the list size based on its items. This happens automatically whenever size of the items, or other relevant settings like , change. The method can be used to trigger the update ahead of next drawing pass. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when specified item has been selected. Only applicable in single selection mode. + must be enabled to reselect an item. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when any mouse click is issued within the rect of the list but on empty space. + atPosition is the click position in this control's local coordinate system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when specified list item has been clicked with any mouse button. + atPosition is the click position in this control's local coordinate system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a multiple selection is altered on a list allowing multiple selection. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when specified list item is activated via double-clicking or by pressing Enter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'select_mode' property. + + + + + Cached name for the 'allow_reselect' property. + + + + + Cached name for the 'allow_rmb_select' property. + + + + + Cached name for the 'allow_search' property. + + + + + Cached name for the 'max_text_lines' property. + + + + + Cached name for the 'auto_width' property. + + + + + Cached name for the 'auto_height' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached name for the 'max_columns' property. + + + + + Cached name for the 'same_column_width' property. + + + + + Cached name for the 'fixed_column_width' property. + + + + + Cached name for the 'icon_mode' property. + + + + + Cached name for the 'icon_scale' property. + + + + + Cached name for the 'fixed_icon_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'set_item_text_direction' method. + + + + + Cached name for the 'get_item_text_direction' method. + + + + + Cached name for the 'set_item_language' method. + + + + + Cached name for the 'get_item_language' method. + + + + + Cached name for the 'set_item_auto_translate_mode' method. + + + + + Cached name for the 'get_item_auto_translate_mode' method. + + + + + Cached name for the 'set_item_icon_transposed' method. + + + + + Cached name for the 'is_item_icon_transposed' method. + + + + + Cached name for the 'set_item_icon_region' method. + + + + + Cached name for the 'get_item_icon_region' method. + + + + + Cached name for the 'set_item_icon_modulate' method. + + + + + Cached name for the 'get_item_icon_modulate' method. + + + + + Cached name for the 'set_item_selectable' method. + + + + + Cached name for the 'is_item_selectable' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'set_item_metadata' method. + + + + + Cached name for the 'get_item_metadata' method. + + + + + Cached name for the 'set_item_custom_bg_color' method. + + + + + Cached name for the 'get_item_custom_bg_color' method. + + + + + Cached name for the 'set_item_custom_fg_color' method. + + + + + Cached name for the 'get_item_custom_fg_color' method. + + + + + Cached name for the 'get_item_rect' method. + + + + + Cached name for the 'set_item_tooltip_enabled' method. + + + + + Cached name for the 'is_item_tooltip_enabled' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'deselect_all' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'get_selected_items' method. + + + + + Cached name for the 'move_item' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'sort_items_by_text' method. + + + + + Cached name for the 'set_fixed_column_width' method. + + + + + Cached name for the 'get_fixed_column_width' method. + + + + + Cached name for the 'set_same_column_width' method. + + + + + Cached name for the 'is_same_column_width' method. + + + + + Cached name for the 'set_max_text_lines' method. + + + + + Cached name for the 'get_max_text_lines' method. + + + + + Cached name for the 'set_max_columns' method. + + + + + Cached name for the 'get_max_columns' method. + + + + + Cached name for the 'set_select_mode' method. + + + + + Cached name for the 'get_select_mode' method. + + + + + Cached name for the 'set_icon_mode' method. + + + + + Cached name for the 'get_icon_mode' method. + + + + + Cached name for the 'set_fixed_icon_size' method. + + + + + Cached name for the 'get_fixed_icon_size' method. + + + + + Cached name for the 'set_icon_scale' method. + + + + + Cached name for the 'get_icon_scale' method. + + + + + Cached name for the 'set_allow_rmb_select' method. + + + + + Cached name for the 'get_allow_rmb_select' method. + + + + + Cached name for the 'set_allow_reselect' method. + + + + + Cached name for the 'get_allow_reselect' method. + + + + + Cached name for the 'set_allow_search' method. + + + + + Cached name for the 'get_allow_search' method. + + + + + Cached name for the 'set_auto_width' method. + + + + + Cached name for the 'has_auto_width' method. + + + + + Cached name for the 'set_auto_height' method. + + + + + Cached name for the 'has_auto_height' method. + + + + + Cached name for the 'is_anything_selected' method. + + + + + Cached name for the 'get_item_at_position' method. + + + + + Cached name for the 'ensure_current_is_visible' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'force_update_list_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'item_selected' signal. + + + + + Cached name for the 'empty_clicked' signal. + + + + + Cached name for the 'item_clicked' signal. + + + + + Cached name for the 'multi_selected' signal. + + + + + Cached name for the 'item_activated' signal. + + + + + The JNISingleton is implemented only in the Android export. It's used to call methods and connect signals from an Android plugin written in Java or Kotlin. Methods and signals can be called and connected to the JNISingleton as if it is a Node. See Java Native Interface - Wikipedia for more information. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class enables all data types to be converted to and from a JSON string. This is useful for serializing data, e.g. to save to a file or send over the network. + is used to convert any data type into a JSON string. + is used to convert any existing JSON data into a that can be used within Godot. If successfully parsed, use to retrieve the , and use @GlobalScope.typeof to check if the Variant's type is what you expect. JSON Objects are converted into a , but JSON data can be used to store s, numbers, s and even just a boolean. + + var data_to_send = ["a", "b", "c"] + var json_string = JSON.stringify(data_to_send) + # Save data + # ... + # Retrieve data + var json = JSON.new() + var error = json.parse(json_string) + if error == OK: + var data_received = json.data + if typeof(data_received) == TYPE_ARRAY: + print(data_received) # Prints array + else: + print("Unexpected data") + else: + print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line()) + + Alternatively, you can parse strings using the static method, but it doesn't handle errors. + + var data = JSON.parse_string(json_string) # Returns null if parsing failed. + + Note: Both parse methods do not fully comply with the JSON specification: + - Trailing commas in arrays or objects are ignored, instead of causing a parser error. + - New line and tab characters are accepted in string literals, and are treated like their corresponding escape sequences \n and \t. + - Numbers are parsed using String.to_float which is generally more lax than the JSON specification. + - Certain errors, such as invalid Unicode sequences, do not cause a parser error. Instead, the string is cleaned up and an error is logged to the console. + + + + + Contains the parsed JSON data in form. + + + + + Converts a var to JSON text and returns the result. Useful for serializing data to store or send over the network. + Note: The JSON specification does not define integer or float types, but only a number type. Therefore, converting a Variant to JSON text will convert all numerical values to types. + Note: If is , when stringifying floats, the unreliable digits are stringified in addition to the reliable digits to guarantee exact decoding. + The parameter controls if and how something is indented; its contents will be used where there should be an indent in the output. Even spaces like " " will work. \t and \n can also be used for a tab indent, or to make a newline for each indent respectively. + Example output: + + ## JSON.stringify(my_dictionary) + {"name":"my_dictionary","version":"1.0.0","entities":[{"name":"entity_0","value":"value_0"},{"name":"entity_1","value":"value_1"}]} + + ## JSON.stringify(my_dictionary, "\t") + { + "name": "my_dictionary", + "version": "1.0.0", + "entities": [ + { + "name": "entity_0", + "value": "value_0" + }, + { + "name": "entity_1", + "value": "value_1" + } + ] + } + + ## JSON.stringify(my_dictionary, "...") + { + ..."name": "my_dictionary", + ..."version": "1.0.0", + ..."entities": [ + ......{ + ........."name": "entity_0", + ........."value": "value_0" + ......}, + ......{ + ........."name": "entity_1", + ........."value": "value_1" + ......} + ...] + } + + + + + + Attempts to parse the provided and returns the parsed data. Returns if parse failed. + + + + + Attempts to parse the provided. + Returns an . If the parse was successful, it returns and the result can be retrieved using . If unsuccessful, use and to identify the source of the failure. + Non-static variant of , if you want custom error handling. + The optional argument instructs the parser to keep a copy of the original text. This text can be obtained later by using the function and is used when saving the resource (instead of generating new text from ). + + + + + Return the text parsed by (requires passing keep_text to ). + + + + + Returns 0 if the last call to was successful, or the line number where the parse failed. + + + + + Returns an empty string if the last call to was successful, or the error message if it failed. + + + + + Converts a native engine type to a JSON-compliant value. + By default, objects are ignored for security reasons, unless is . + You can convert a native value to a JSON string like this: + + func encode_data(value, full_objects = false): + return JSON.stringify(JSON.from_native(value, full_objects)) + + + + + + Converts a JSON-compliant value that was created with back to native engine types. + By default, objects are ignored for security reasons, unless is . + You can convert a JSON string back to a native value like this: + + func decode_data(string, allow_objects = false): + return JSON.to_native(JSON.parse_string(string), allow_objects) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'stringify' method. + + + + + Cached name for the 'parse_string' method. + + + + + Cached name for the 'parse' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'set_data' method. + + + + + Cached name for the 'get_parsed_text' method. + + + + + Cached name for the 'get_error_line' method. + + + + + Cached name for the 'get_error_message' method. + + + + + Cached name for the 'from_native' method. + + + + + Cached name for the 'to_native' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + JSON-RPC is a standard which wraps a method call in a 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 ; you will have to convert between a and with other functions. + + + + + The request could not be parsed as it was not valid by JSON standard ( failed). + + + + + A method call was requested but the request's format is not valid. + + + + + A method call was requested but no function of that name existed in the JSONRPC subclass. + + + + + A method call was requested but the given method parameters are not valid. Not used by the built-in JSONRPC. + + + + + An internal error occurred while processing the request. Not used by the built-in JSONRPC. + + + + + Given a Dictionary which takes the form of a JSON-RPC request: unpack the request and run it. Methods are resolved by looking at the field called "method" and looking for an equivalently named function in the JSONRPC object. If one is found that method is called. + To add new supported methods extend the JSONRPC class and call on your subclass. + : The action to be run, as a Dictionary in the form of a JSON-RPC request or notification. + + + + + Returns a dictionary in the form of a JSON-RPC request. Requests are sent to a server with the expectation of a response. The ID field is used for the server to specify which exact request it is responding to. + - : Name of the method being called. + - : An array or dictionary of parameters being passed to the method. + - : Uniquely identifies this request. The server is expected to send a response with the same ID. + + + + + When a server has received and processed a request, it is expected to send a response. If you did not want a response then you need to have sent a Notification instead. + - : The return value of the function which was called. + - : The ID of the request this response is targeted to. + + + + + Returns a dictionary in the form of a JSON-RPC notification. Notifications are one-shot messages which do not expect a response. + - : Name of the method being called. + - : An array or dictionary of parameters being passed to the method. + + + + + Creates a response which indicates a previous reply has failed in some way. + - : The error code corresponding to what kind of error this is. See the constants. + - : A custom message about this error. + - : The request this error is a response to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_scope' method. + + + + + Cached name for the 'process_action' method. + + + + + Cached name for the 'process_string' method. + + + + + Cached name for the 'make_request' method. + + + + + Cached name for the 'make_response' method. + + + + + Cached name for the 'make_notification' method. + + + + + Cached name for the 'make_response_error' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents a class from the Java Native Interface. It is returned from . + Note: This class only works on Android. On any other platform, this class does nothing. + Note: This class is not to be confused with . + + + + + Returns the Java class name. + + + + + Returns the object's Java methods and their signatures as an of dictionaries, in the same format as . + + + + + Returns a representing the Java parent class of this class. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_java_class_name' method. + + + + + Cached name for the 'get_java_method_list' method. + + + + + Cached name for the 'get_java_parent_class' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The JavaClassWrapper singleton provides a way for the Godot application to send and receive data through the Java Native Interface (JNI). + Note: This singleton is only available in Android builds. + + var LocalDateTime = JavaClassWrapper.wrap("java.time.LocalDateTime") + var DateTimeFormatter = JavaClassWrapper.wrap("java.time.format.DateTimeFormatter") + + var datetime = LocalDateTime.now() + var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss") + + print(datetime.format(formatter)) + + + + + + Wraps a class defined in Java, and returns it as a type that Godot can interact with. + Note: This method only works on Android. On every other platform, this method does nothing and returns an empty . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'wrap' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The JavaClassWrapper singleton provides a way for the Godot application to send and receive data through the Java Native Interface (JNI). + Note: This singleton is only available in Android builds. + + var LocalDateTime = JavaClassWrapper.wrap("java.time.LocalDateTime") + var DateTimeFormatter = JavaClassWrapper.wrap("java.time.format.DateTimeFormatter") + + var datetime = LocalDateTime.now() + var formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss") + + print(datetime.format(formatter)) + + + + + + Wraps a class defined in Java, and returns it as a type that Godot can interact with. + Note: This method only works on Android. On every other platform, this method does nothing and returns an empty . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'wrap' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Represents an object from the Java Native Interface. It can be returned from Java methods called on or other s. See for an example. + Note: This class only works on Android. On any other platform, this class does nothing. + Note: This class is not to be confused with . + + + + + Returns the that this object is an instance of. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_java_class' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs. + Note: This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See Compiling for the Web in the documentation for more information. + + + + + Execute the string as JavaScript code within the browser window. This is a call to the actual global JavaScript function eval(). + If is , the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment. + + + + + Returns an interface to a JavaScript object that can be used by scripts. The must be a valid property of the JavaScript window. The callback must accept a single argument, which will contain the JavaScript arguments. See for usage. + + + + + Creates a reference to a that can be used as a callback by JavaScript. The reference must be kept until the callback happens, or it won't be called at all. See for usage. + + + + + Returns if the given is of type ArrayBuffer, DataView, or one of the many typed array objects. + + + + + Returns a copy of 's contents as a []. See also . + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Returns if a new version of the progressive web app is waiting to be activated. + Note: Only relevant when exported as a Progressive Web App. + + + + + Performs the live update of the progressive web app. Forcing the new version to be installed and the page to be reloaded. + Note: Your application will be reloaded in all browser tabs. + Note: Only relevant when exported as a Progressive Web App and returns . + + + + + Force synchronization of the persistent file system (when enabled). + Note: This is only useful for modules or extensions that can't use to write files. + + + + + Emitted when an update for this progressive web app has been detected but is waiting to be activated because a previous version is active. See to force the update to take place immediately. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'eval' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'create_callback' method. + + + + + Cached name for the 'is_js_buffer' method. + + + + + Cached name for the 'js_buffer_to_packed_byte_array' method. + + + + + Cached name for the 'create_object' method. + + + + + Cached name for the 'download_buffer' method. + + + + + Cached name for the 'pwa_needs_update' method. + + + + + Cached name for the 'pwa_update' method. + + + + + Cached name for the 'force_fs_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pwa_update_available' signal. + + + + + The JavaScriptBridge singleton is implemented only in the Web export. It's used to access the browser's JavaScript context. This allows interaction with embedding pages or calling third-party JavaScript APIs. + Note: This singleton can be disabled at build-time to improve security. By default, the JavaScriptBridge singleton is enabled. Official export templates also have the JavaScriptBridge singleton enabled. See Compiling for the Web in the documentation for more information. + + + + + Execute the string as JavaScript code within the browser window. This is a call to the actual global JavaScript function eval(). + If is , the code will be evaluated in the global execution context. Otherwise, it is evaluated in the execution context of a function within the engine's runtime environment. + + + + + Returns an interface to a JavaScript object that can be used by scripts. The must be a valid property of the JavaScript window. The callback must accept a single argument, which will contain the JavaScript arguments. See for usage. + + + + + Creates a reference to a that can be used as a callback by JavaScript. The reference must be kept until the callback happens, or it won't be called at all. See for usage. + + + + + Returns if the given is of type ArrayBuffer, DataView, or one of the many typed array objects. + + + + + Returns a copy of 's contents as a []. See also . + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Creates a new JavaScript object using the new constructor. The must a valid property of the JavaScript window. See for usage. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Prompts the user to download a file containing the specified . The file will have the given and type. + Note: The browser may override the MIME type provided based on the file 's extension. + Note: Browsers might block the download if is not being called from a user interaction (e.g. button click). + Note: Browsers might ask the user for permission or block the download if multiple download requests are made in a quick succession. + + + + + Returns if a new version of the progressive web app is waiting to be activated. + Note: Only relevant when exported as a Progressive Web App. + + + + + Performs the live update of the progressive web app. Forcing the new version to be installed and the page to be reloaded. + Note: Your application will be reloaded in all browser tabs. + Note: Only relevant when exported as a Progressive Web App and returns . + + + + + Force synchronization of the persistent file system (when enabled). + Note: This is only useful for modules or extensions that can't use to write files. + + + + + Emitted when an update for this progressive web app has been detected but is waiting to be activated because a previous version is active. See to force the update to take place immediately. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'eval' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'create_callback' method. + + + + + Cached name for the 'is_js_buffer' method. + + + + + Cached name for the 'js_buffer_to_packed_byte_array' method. + + + + + Cached name for the 'create_object' method. + + + + + Cached name for the 'download_buffer' method. + + + + + Cached name for the 'pwa_needs_update' method. + + + + + Cached name for the 'pwa_update' method. + + + + + Cached name for the 'force_fs_sync' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pwa_update_available' signal. + + + + + JavaScriptObject is used to interact with JavaScript objects retrieved or created via , , or . + + extends Node + + var _my_js_callback = JavaScriptBridge.create_callback(myCallback) # This reference must be kept + var console = JavaScriptBridge.get_interface("console") + + func _init(): + var buf = JavaScriptBridge.create_object("ArrayBuffer", 10) # new ArrayBuffer(10) + print(buf) # prints [JavaScriptObject:OBJECT_ID] + var uint8arr = JavaScriptBridge.create_object("Uint8Array", buf) # new Uint8Array(buf) + uint8arr[1] = 255 + prints(uint8arr[1], uint8arr.byteLength) # prints 255 10 + console.log(uint8arr) # prints in browser console "Uint8Array(10) [ 0, 255, 0, 0, 0, 0, 0, 0, 0, 0 ]" + + # Equivalent of JavaScriptBridge: Array.from(uint8arr).forEach(myCallback) + JavaScriptBridge.get_interface("Array").from(uint8arr).forEach(_my_js_callback) + + func myCallback(args): + # Will be called with the parameters passed to the "forEach" callback + # [0, 0, [JavaScriptObject:1173]] + # [255, 1, [JavaScriptObject:1173]] + # ... + # [0, 9, [JavaScriptObject:1180]] + print(args) + + Note: Only available in the Web platform. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all joints in 2D physics. 2D joints bind together two physics bodies ( and ) and apply a constraint. + + + + + Path to the first body (A) attached to the joint. The node must inherit . + + + + + Path to the second body (B) attached to the joint. The node must inherit . + + + + + When and move in different directions the controls how fast the joint pulls them back to their original position. The lower the the more the two bodies can pull on the joint. + When set to 0, the default value from ProjectSettings.physics/2d/solver/default_constraint_bias is used. + + + + + If , the two bodies bound together do not collide with each other. + + + + + Returns the joint's internal from the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'node_a' property. + + + + + Cached name for the 'node_b' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'disable_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_node_a' method. + + + + + Cached name for the 'get_node_a' method. + + + + + Cached name for the 'set_node_b' method. + + + + + Cached name for the 'get_node_b' method. + + + + + Cached name for the 'set_bias' method. + + + + + Cached name for the 'get_bias' method. + + + + + Cached name for the 'set_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all joints in 3D physics. 3D joints bind together two physics bodies ( and ) and apply a constraint. If only one body is defined, it is attached to a fixed without collision shapes. + + + + + Path to the first node (A) attached to the joint. The node must inherit . + If left empty and is set, the body is attached to a fixed without collision shapes. + + + + + Path to the second node (B) attached to the joint. The node must inherit . + If left empty and is set, the body is attached to a fixed without collision shapes. + + + + + The priority used to define which solver is executed first for multiple joints. The lower the value, the higher the priority. + + + + + If , the two bodies bound together do not collide with each other. + + + + + Returns the joint's internal from the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'node_a' property. + + + + + Cached name for the 'node_b' property. + + + + + Cached name for the 'solver_priority' property. + + + + + Cached name for the 'exclude_nodes_from_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_node_a' method. + + + + + Cached name for the 'get_node_a' method. + + + + + Cached name for the 'set_node_b' method. + + + + + Cached name for the 'get_node_b' method. + + + + + Cached name for the 'set_solver_priority' method. + + + + + Cached name for the 'get_solver_priority' method. + + + + + Cached name for the 'set_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_exclude_nodes_from_collision' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Holds collision data from the movement of a , usually from . When a is moved, it stops if it detects a collision with another body. If a collision is detected, a 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. + + + + + Returns the point of collision in global coordinates. + + + + + Returns the colliding body's shape's normal at the point of collision. + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the collision angle according to , which is Vector2.UP by default. This value is always positive. + + If the parameter is null, then the default value is new Vector2(0.0f, -1.0f). + + + + Returns the colliding body's length of overlap along the collision normal. + + + + + Returns the moving object's colliding shape. + + + + + Returns the colliding body's attached . + + + + + Returns the unique instance ID of the colliding body's attached . See . + + + + + Returns the colliding body's used by the . + + + + + Returns the colliding body's shape. + + + + + Returns the colliding body's shape index. See . + + + + + Returns the colliding body's velocity. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_normal' method. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_angle' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'get_local_shape' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collider_shape_index' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Holds collision data from the movement of a , usually from . When a is moved, it stops if it detects a collision with another body. If a collision is detected, a 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. + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the colliding body's length of overlap along the collision normal. + + + + + Returns the number of detected collisions. + + + + + Returns the point of collision in global coordinates given a collision index (the deepest collision by default). + + + + + Returns the colliding body's shape's normal at the point of collision given a collision index (the deepest collision by default). + + + + + Returns the collision angle according to , which is Vector3.UP by default. This value is always positive. + + If the parameter is null, then the default value is new Vector3(0.0f, 1.0f, 0.0f). + + + + Returns the moving object's colliding shape given a collision index (the deepest collision by default). + + + + + Returns the colliding body's attached given a collision index (the deepest collision by default). + + + + + Returns the unique instance ID of the colliding body's attached given a collision index (the deepest collision by default). See . + + + + + Returns the colliding body's used by the given a collision index (the deepest collision by default). + + + + + Returns the colliding body's shape given a collision index (the deepest collision by default). + + + + + Returns the colliding body's shape index given a collision index (the deepest collision by default). See . + + + + + Returns the colliding body's velocity given a collision index (the deepest collision by default). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_normal' method. + + + + + Cached name for the 'get_angle' method. + + + + + Cached name for the 'get_local_shape' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collider_shape_index' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 instead. + + + + + The text to display on screen. + + + + + A resource that can be shared between multiple nodes. Takes priority over theme properties. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom, and fill. Set it to one of the constants. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see . + + + + + Line fill alignment rules. See for more information. + + + + + String used as a paragraph separator. Each paragraph is processed independently, in its own BiDi context. + + + + + If , the Label only shows the text that fits inside its bounding rectangle and will clip text horizontally. + + + + + Sets the clipping behavior when the text exceeds the node's bounding rectangle. See for a description of all modes. + + + + + Ellipsis character used for text clipping. + + + + + If , all the text displays as UPPERCASE. + + + + + Aligns text to the given tab-stops. + + + + + The number of the lines ignored and not displayed from the start of the value. + + + + + Limits the lines of text the node shows on screen. + + + + + The number of characters to display. If set to -1, all characters are displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Sets the clipping behavior when or is set. See for more info. + + + + + The fraction of characters to display, relative to the total number of characters (see ). If set to 1.0, all characters are displayed. If set to 0.5, only half of the characters will be displayed. This can be useful when animating the text appearing in a dialog box. + Note: Setting this property updates accordingly. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Returns the height of the line . + If is set to -1, returns the biggest line height. + If there are no lines, returns font size in pixels. + + + + + Returns the number of lines of text the Label has. + + + + + Returns the number of lines shown. Useful if the 's height cannot currently display all lines. + + + + + Returns the total number of printable characters in the text (excluding spaces and newlines). + + + + + Returns the bounding rectangle of the character at position in the label's local coordinate system. If the character is a non-visual character or is outside the valid range, an empty is returned. If the character is a part of a composite grapheme, the bounding rectangle of the whole grapheme is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'label_settings' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'paragraph_separator' property. + + + + + Cached name for the 'clip_text' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'ellipsis_char' property. + + + + + Cached name for the 'uppercase' property. + + + + + Cached name for the 'tab_stops' property. + + + + + Cached name for the 'lines_skipped' property. + + + + + Cached name for the 'max_lines_visible' property. + + + + + Cached name for the 'visible_characters' property. + + + + + Cached name for the 'visible_characters_behavior' property. + + + + + Cached name for the 'visible_ratio' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_label_settings' method. + + + + + Cached name for the 'get_label_settings' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_paragraph_separator' method. + + + + + Cached name for the 'get_paragraph_separator' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_clip_text' method. + + + + + Cached name for the 'is_clipping_text' method. + + + + + Cached name for the 'set_tab_stops' method. + + + + + Cached name for the 'get_tab_stops' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_ellipsis_char' method. + + + + + Cached name for the 'get_ellipsis_char' method. + + + + + Cached name for the 'set_uppercase' method. + + + + + Cached name for the 'is_uppercase' method. + + + + + Cached name for the 'get_line_height' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'get_visible_line_count' method. + + + + + Cached name for the 'get_total_character_count' method. + + + + + Cached name for the 'set_visible_characters' method. + + + + + Cached name for the 'get_visible_characters' method. + + + + + Cached name for the 'get_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_characters_behavior' method. + + + + + Cached name for the 'set_visible_ratio' method. + + + + + Cached name for the 'get_visible_ratio' method. + + + + + Cached name for the 'set_lines_skipped' method. + + + + + Cached name for the 'get_lines_skipped' method. + + + + + Cached name for the 'set_max_lines_visible' method. + + + + + Cached name for the 'get_max_lines_visible' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_character_bounds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + If set, lights in the environment affect the label. + + + + + If set, text can be seen from the back as well. If not, the text is invisible when looking at it from behind. + + + + + 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. + + + + + Label is scaled by depth so that it always appears the same size on screen. + + + + + Represents the size of the enum. + + + + + This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping. has no effect when this transparency mode is used; the will never cast shadows. + + + + + 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 ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa). This mode is also known as alpha testing or 1-bit transparency. + Note: This mode might have issues with anti-aliased fonts and outlines, try adjusting or using MSDF font. + Note: When using text with overlapping glyphs (e.g., cursive scripts), this mode might have transparency sorting issues between the main text and the outline. + + + + + This mode draws fully opaque pixels in the depth prepass. This is slower than or , but it allows displaying translucent areas and smooth edges while using proper sorting. + Note: When using text with overlapping glyphs (e.g., cursive scripts), this mode might have transparency sorting issues between the main text and the outline. + + + + + This mode draws cuts off all values below a spatially-deterministic threshold, the rest will remain opaque. + + + + + The size of one pixel's width on the label to scale it in 3D. To make the font look more detailed when up close, increase while decreasing at the same time. + + + + + The text drawing offset (in pixels). + + + + + The billboard mode to use for the label. See for possible values. + + + + + If , the in the has effects on the label. + + + + + If , text can be seen from the back as well, if , it is invisible when looking at it from behind. + + + + + If , depth testing is disabled and the object will be drawn in render order. + + + + + If , the label is rendered at the same size regardless of distance. + + + + + The alpha cutting mode to use for the sprite. See for possible values. + + + + + Threshold at which the alpha scissor will discard values. + + + + + The hashing scale for Alpha Hash. Recommended values between 0 and 2. + + + + + The type of alpha antialiasing to apply. See . + + + + + Threshold at which antialiasing will be applied on the alpha channel. + + + + + Filter flags for the texture. See for options. + + + + + Sets the render priority for the text. Higher priority objects will be sorted in front of lower priority objects. + Note: This only applies if is set to (default value). + Note: This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority). + + + + + Sets the render priority for the text outline. Higher priority objects will be sorted in front of lower priority objects. + Note: This only applies if is set to (default value). + Note: This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority). + + + + + Text of the . + + + + + The tint of text outline. + + + + + The text to display on screen. + + + + + Font configuration used to display text. + + + + + Font size of the 's text. To make the font look more detailed when up close, increase while decreasing at the same time. + Higher font sizes require more time to render new characters, which can cause stuttering during gameplay. + + + + + Text outline size. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom. Set it to one of the constants. + + + + + If , all the text displays as UPPERCASE. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see . + + + + + Line fill alignment rules. See for more information. + + + + + Text width (in pixels), used for autowrap and fill alignment. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + If , the specified flag will be enabled. See for a list of flags. + + + + + Returns the value of the specified flag. + + + + + Returns a with the label's vertices following its current configuration (such as its ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pixel_size' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'billboard' property. + + + + + Cached name for the 'shaded' property. + + + + + Cached name for the 'double_sided' property. + + + + + Cached name for the 'no_depth_test' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'alpha_cut' property. + + + + + Cached name for the 'alpha_scissor_threshold' property. + + + + + Cached name for the 'alpha_hash_scale' property. + + + + + Cached name for the 'alpha_antialiasing_mode' property. + + + + + Cached name for the 'alpha_antialiasing_edge' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'render_priority' property. + + + + + Cached name for the 'outline_render_priority' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'outline_modulate' property. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'font' property. + + + + + Cached name for the 'font_size' property. + + + + + Cached name for the 'outline_size' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'uppercase' property. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_outline_modulate' method. + + + + + Cached name for the 'get_outline_modulate' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_uppercase' method. + + + + + Cached name for the 'is_uppercase' method. + + + + + Cached name for the 'set_render_priority' method. + + + + + Cached name for the 'get_render_priority' method. + + + + + Cached name for the 'set_outline_render_priority' method. + + + + + Cached name for the 'get_outline_render_priority' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'set_outline_size' method. + + + + + Cached name for the 'get_outline_size' method. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_pixel_size' method. + + + + + Cached name for the 'get_pixel_size' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_draw_flag' method. + + + + + Cached name for the 'get_draw_flag' method. + + + + + Cached name for the 'set_billboard_mode' method. + + + + + Cached name for the 'get_billboard_mode' method. + + + + + Cached name for the 'set_alpha_cut_mode' method. + + + + + Cached name for the 'get_alpha_cut_mode' method. + + + + + Cached name for the 'set_alpha_scissor_threshold' method. + + + + + Cached name for the 'get_alpha_scissor_threshold' method. + + + + + Cached name for the 'set_alpha_hash_scale' method. + + + + + Cached name for the 'get_alpha_hash_scale' method. + + + + + Cached name for the 'set_alpha_antialiasing' method. + + + + + Cached name for the 'get_alpha_antialiasing' method. + + + + + Cached name for the 'set_alpha_antialiasing_edge' method. + + + + + Cached name for the 'get_alpha_antialiasing_edge' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'generate_triangle_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a resource that provides common settings to customize the text in a . It will take priority over the properties defined in . The resource can be shared between multiple labels and changed on the fly, so it's convenient and flexible way to setup text style. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + Vertical space between paragraphs. Added on top of . + + + + + used for the text. + + + + + Size of the text. + + + + + Color of the text. + + + + + Text outline size. + + + + + The color of the outline. + + + + + Size of the shadow effect. + + + + + Color of the shadow effect. If alpha is 0, no shadow will be drawn. + + + + + Offset of the shadow effect, in pixels. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached name for the 'paragraph_spacing' property. + + + + + Cached name for the 'font' property. + + + + + Cached name for the 'font_size' property. + + + + + Cached name for the 'font_color' property. + + + + + Cached name for the 'outline_size' property. + + + + + Cached name for the 'outline_color' property. + + + + + Cached name for the 'shadow_size' property. + + + + + Cached name for the 'shadow_color' property. + + + + + Cached name for the 'shadow_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'set_paragraph_spacing' method. + + + + + Cached name for the 'get_paragraph_spacing' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'set_font_color' method. + + + + + Cached name for the 'get_font_color' method. + + + + + Cached name for the 'set_outline_size' method. + + + + + Cached name for the 'get_outline_size' method. + + + + + Cached name for the 'set_outline_color' method. + + + + + Cached name for the 'get_outline_color' method. + + + + + Cached name for the 'set_shadow_size' method. + + + + + Cached name for the 'get_shadow_size' method. + + + + + Cached name for the 'set_shadow_color' method. + + + + + Cached name for the 'get_shadow_color' method. + + + + + Cached name for the 'set_shadow_offset' method. + + + + + Cached name for the 'get_shadow_offset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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). + + + + + No filter applies to the shadow map. This provides hard shadow edges and is the fastest to render. See . + + + + + Percentage closer filtering (5 samples) applies to the shadow map. This is slower compared to hard shadow rendering. See . + + + + + Percentage closer filtering (13 samples) applies to the shadow map. This is the slowest shadow filtering mode, and should be used sparingly. See . + + + + + Adds the value of pixels corresponding to the Light2D to the values of pixels under it. This is the common behavior of a light. + + + + + Subtracts the value of pixels corresponding to the Light2D to the values of pixels under it, resulting in inversed light effect. + + + + + Mix the value of pixels corresponding to the Light2D to the values of pixels under it by linear interpolation. + + + + + If , Light2D will emit light. + + + + + If , Light2D will only appear when editing the scene. + + + + + The Light2D's . + + + + + The Light2D's energy value. The larger the value, the stronger the light. + + + + + The Light2D's blend mode. See constants for values. + + + + + Minimum z value of objects that are affected by the Light2D. + + + + + Maximum z value of objects that are affected by the Light2D. + + + + + Minimum layer value of objects that are affected by the Light2D. + + + + + Maximum layer value of objects that are affected by the Light2D. + + + + + The layer mask. Only objects with a matching will be affected by the Light2D. See also , which affects which objects can cast shadows. + Note: is ignored by , which will always light a 2D node regardless of the 2D node's . + + + + + If , the Light2D will cast shadows. + + + + + of shadows cast by the Light2D. + + + + + Shadow filter type. See for possible values. + + + + + Smoothing value for shadows. Higher values will result in softer shadows, at the cost of visible streaks that can appear in shadow rendering. only has an effect if is or . + + + + + The shadow mask. Used with to cast shadows. Only occluders with a matching will cast shadows. See also , which affects which objects can receive the light. + + + + + Sets the light's height, which is used in 2D normal mapping. See and . + + + + + Returns the light's height, which is used in 2D normal mapping. See and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'editor_only' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'energy' property. + + + + + Cached name for the 'blend_mode' property. + + + + + Cached name for the 'range_z_min' property. + + + + + Cached name for the 'range_z_max' property. + + + + + Cached name for the 'range_layer_min' property. + + + + + Cached name for the 'range_layer_max' property. + + + + + Cached name for the 'range_item_cull_mask' property. + + + + + Cached name for the 'shadow_enabled' property. + + + + + Cached name for the 'shadow_color' property. + + + + + Cached name for the 'shadow_filter' property. + + + + + Cached name for the 'shadow_filter_smooth' property. + + + + + Cached name for the 'shadow_item_cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_editor_only' method. + + + + + Cached name for the 'is_editor_only' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_energy' method. + + + + + Cached name for the 'get_energy' method. + + + + + Cached name for the 'set_z_range_min' method. + + + + + Cached name for the 'get_z_range_min' method. + + + + + Cached name for the 'set_z_range_max' method. + + + + + Cached name for the 'get_z_range_max' method. + + + + + Cached name for the 'set_layer_range_min' method. + + + + + Cached name for the 'get_layer_range_min' method. + + + + + Cached name for the 'set_layer_range_max' method. + + + + + Cached name for the 'get_layer_range_max' method. + + + + + Cached name for the 'set_item_cull_mask' method. + + + + + Cached name for the 'get_item_cull_mask' method. + + + + + Cached name for the 'set_item_shadow_cull_mask' method. + + + + + Cached name for the 'get_item_shadow_cull_mask' method. + + + + + Cached name for the 'set_shadow_enabled' method. + + + + + Cached name for the 'is_shadow_enabled' method. + + + + + Cached name for the 'set_shadow_smooth' method. + + + + + Cached name for the 'get_shadow_smooth' method. + + + + + Cached name for the 'set_shadow_filter' method. + + + + + Cached name for the 'get_shadow_filter' method. + + + + + Cached name for the 'set_shadow_color' method. + + + + + Cached name for the 'get_shadow_color' method. + + + + + Cached name for the 'set_blend_mode' method. + + + + + Cached name for the 'get_blend_mode' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Light3D is the abstract base class for light nodes. As it can't be instantiated, it shouldn't be used directly. Other types of light nodes inherit from it. Light3D contains the common variables and parameters used for lighting. + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing or . + + + + + Constant for accessing . + + + + + Constant for accessing or . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing . + + + + + Constant for accessing and . Only used when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . + + + + + Represents the size of the enum. + + + + + 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. + Note: Hiding a light does not affect baking . Hiding a light will still affect baking and SDFGI (see ). + + + + + Light is taken into account in static baking (, , SDFGI ()). 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. + Note: The light is not baked in if is . + + + + + Light is taken into account in dynamic baking ( and SDFGI () 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 . This has a greater performance cost compared to . When using SDFGI, the update speed of dynamic lights is affected by ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Used by positional lights ( and ) when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . Sets the intensity of the light source measured in Lumens. Lumens are a measure of luminous flux, which is the total amount of visible light emitted by a light source per unit of time. + For s, we assume that the area outside the visible cone is surrounded by a perfect light absorbing material. Accordingly, the apparent brightness of the cone area does not change as the cone increases and decreases in size. + A typical household lightbulb can range from around 600 lumens to 1,200 lumens, a candle is about 13 lumens, while a streetlight can be approximately 60,000 lumens. + + + + + Used by s when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . Sets the intensity of the light source measured in Lux. Lux is a measure of luminous flux per unit area, it is equal to one lumen per square meter. Lux is the measure of how much light hits a surface at a given time. + On a clear sunny day a surface in direct sunlight may be approximately 100,000 lux, a typical room in a home may be approximately 50 lux, while the moonlit ground may be approximately 0.1 lux. + + + + + Sets the color temperature of the light source, measured in Kelvin. This is used to calculate a correlated color temperature which tints the . + The sun on a cloudy day is approximately 6500 Kelvin, on a clear day it is between 5500 to 6000 Kelvin, and on a clear day at sunrise or sunset it ranges to around 1850 Kelvin. + + + + + The light's color. An overbright color can be used to achieve a result equivalent to increasing the light's . + + + + + The light's strength multiplier (this is not a physical unit). For and , changing this value will only change the light color's intensity, not the light's radius. + + + + + Secondary multiplier used with indirect light (light bounces). Used with and SDFGI (see ). + Note: This property is ignored if is equal to 0.0, as the light won't be present at all in the GI shader. + + + + + Secondary multiplier multiplied with then used with the 's volumetric fog (if enabled). If set to 0.0, computing volumetric fog will be skipped for this light, which can improve performance for large amounts of lights when volumetric fog is enabled. + Note: To prevent short-lived dynamic light effects from poorly interacting with volumetric fog, lights used in those effects should have set to 0.0 unless is disabled (or unless the reprojection amount is significantly lowered). + + + + + projected by light. must be on for the projector to work. Light projectors make the light appear as if it is shining through a colored but transparent object, almost like light shining through stained-glass. + Note: Unlike whose filter mode can be adjusted on a per-material basis, the filter mode for light projector textures is set globally with ProjectSettings.rendering/textures/light_projectors/filter. + Note: Light projector textures are only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + The size of the light in Godot units. Only available for s and s. Increasing this value will make the light fade out slower and shadows appear blurrier (also called percentage-closer soft shadows, or PCSS). This can be used to simulate area lights to an extent. Increasing this value above 0.0 for lights with shadows enabled will have a noticeable performance cost due to PCSS. + Note: is not affected by (the light's scale or its parent's scale). + Note: PCSS for positional lights is only supported in the Forward+ and Mobile rendering methods, not Compatibility. + + + + + The light's angular size in degrees. Increasing this will make shadows softer at greater distances (also called percentage-closer soft shadows, or PCSS). Only available for s. For reference, the Sun from the Earth is approximately 0.5. Increasing this value above 0.0 for lights with shadows enabled will have a noticeable performance cost due to PCSS. + Note: is not affected by (the light's scale or its parent's scale). + Note: PCSS for directional lights is only supported in the Forward+ rendering method, not Mobile or Compatibility. + + + + + If , the light's effect is reversed, darkening areas and casting bright shadows. + + + + + The intensity of the specular blob in objects affected by the light. At 0, the light becomes a pure diffuse light. When not baking emission, this can be used to avoid unrealistic reflections when placing lights above an emissive surface. + + + + + The light's bake mode. This will affect the global illumination techniques that have an effect on the light's rendering. See . + Note: Meshes' global illumination mode will also affect the global illumination rendering. See . + + + + + The light will affect objects in the selected layers. + + + + + If , the light will cast real-time shadows. This has a significant performance cost. Only enable shadow rendering when it makes a noticeable difference in the scene's appearance, and consider using to hide the light when far away from the . + + + + + Used to adjust shadow appearance. Too small a value results in self-shadowing ("shadow acne"), while too large a value causes shadows to separate from casters ("peter-panning"). Adjust as needed. + + + + + Offsets the lookup into the shadow map by the object's normal. This can be used to reduce self-shadowing artifacts without using . In practice, this value should be tweaked along with to reduce artifacts as much as possible. + + + + + If , reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with . + + + + + The opacity to use when rendering the light's shadow map. Values lower than 1.0 make the light appear through shadows. This can be used to fake global illumination at a low performance cost. + + + + + Blurs the edges of the shadow. Can be used to hide pixel artifacts in low-resolution shadow maps. A high value can impact performance, make shadows appear grainy and can cause other unwanted artifacts. Try to keep as near default as possible. + + + + + The light will only cast shadows using objects in the selected layers. + + + + + If , the light will smoothly fade away when far from the active starting at . This acts as a form of level of detail (LOD). The light will fade out over + , after which it will be culled and not sent to the shader at all. Use this to reduce the number of active lights in a scene and thus improve performance. + Note: Only effective for and . + + + + + The distance from the camera at which the light begins to fade away (in 3D units). + Note: Only effective for and . + + + + + The distance from the camera at which the light's shadow cuts off (in 3D units). Set this to a value lower than + to further improve performance, as shadow rendering is often more expensive than light rendering itself. + Note: Only effective for and , and only when is . + + + + + Distance over which the light and its shadow fades. The light's energy and shadow's opacity is progressively reduced over this distance and is completely invisible at the end. + Note: Only effective for and . + + + + + If , the light only appears in the editor and will not be visible at runtime. If , the light will never be baked in regardless of its . + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + Returns the of an idealized blackbody at the given . This value is calculated internally based on the . This is multiplied by before being sent to the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'light_intensity_lumens' property. + + + + + Cached name for the 'light_intensity_lux' property. + + + + + Cached name for the 'light_temperature' property. + + + + + Cached name for the 'light_color' property. + + + + + Cached name for the 'light_energy' property. + + + + + Cached name for the 'light_indirect_energy' property. + + + + + Cached name for the 'light_volumetric_fog_energy' property. + + + + + Cached name for the 'light_projector' property. + + + + + Cached name for the 'light_size' property. + + + + + Cached name for the 'light_angular_distance' property. + + + + + Cached name for the 'light_negative' property. + + + + + Cached name for the 'light_specular' property. + + + + + Cached name for the 'light_bake_mode' property. + + + + + Cached name for the 'light_cull_mask' property. + + + + + Cached name for the 'shadow_enabled' property. + + + + + Cached name for the 'shadow_bias' property. + + + + + Cached name for the 'shadow_normal_bias' property. + + + + + Cached name for the 'shadow_reverse_cull_face' property. + + + + + Cached name for the 'shadow_transmittance_bias' property. + + + + + Cached name for the 'shadow_opacity' property. + + + + + Cached name for the 'shadow_blur' property. + + + + + Cached name for the 'shadow_caster_mask' property. + + + + + Cached name for the 'distance_fade_enabled' property. + + + + + Cached name for the 'distance_fade_begin' property. + + + + + Cached name for the 'distance_fade_shadow' property. + + + + + Cached name for the 'distance_fade_length' property. + + + + + Cached name for the 'editor_only' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_editor_only' method. + + + + + Cached name for the 'is_editor_only' method. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached name for the 'set_shadow' method. + + + + + Cached name for the 'has_shadow' method. + + + + + Cached name for the 'set_negative' method. + + + + + Cached name for the 'is_negative' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_enable_distance_fade' method. + + + + + Cached name for the 'is_distance_fade_enabled' method. + + + + + Cached name for the 'set_distance_fade_begin' method. + + + + + Cached name for the 'get_distance_fade_begin' method. + + + + + Cached name for the 'set_distance_fade_shadow' method. + + + + + Cached name for the 'get_distance_fade_shadow' method. + + + + + Cached name for the 'set_distance_fade_length' method. + + + + + Cached name for the 'get_distance_fade_length' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_shadow_reverse_cull_face' method. + + + + + Cached name for the 'get_shadow_reverse_cull_face' method. + + + + + Cached name for the 'set_shadow_caster_mask' method. + + + + + Cached name for the 'get_shadow_caster_mask' method. + + + + + Cached name for the 'set_bake_mode' method. + + + + + Cached name for the 'get_bake_mode' method. + + + + + Cached name for the 'set_projector' method. + + + + + Cached name for the 'get_projector' method. + + + + + Cached name for the 'set_temperature' method. + + + + + Cached name for the 'get_temperature' method. + + + + + Cached name for the 'get_correlated_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Occludes light cast by a Light2D, casting shadows. The LightOccluder2D must be provided with an in order for the shadow to be computed. + + + + + The used to compute the shadow. + + + + + If enabled, the occluder will be part of a real-time generated signed distance field that can be used in custom shaders. + + + + + The LightOccluder2D's occluder light mask. The LightOccluder2D will cast shadows only from Light2D(s) that have the same light mask(s). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'occluder' property. + + + + + Cached name for the 'sdf_collision' property. + + + + + Cached name for the 'occluder_light_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_occluder_polygon' method. + + + + + Cached name for the 'get_occluder_polygon' method. + + + + + Cached name for the 'set_occluder_light_mask' method. + + + + + Cached name for the 'get_occluder_light_mask' method. + + + + + Cached name for the 'set_as_sdf_collision' method. + + + + + Cached name for the 'is_set_as_sdf_collision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is used to compute and store baked lightmaps. Lightmaps are used to provide high-quality indirect lighting with very little light leaking. can also provide rough reflections using spherical harmonics if is enabled. Dynamic objects can receive indirect lighting thanks to light probes, which can be automatically placed by setting to a value other than . Additional lightmap probes can also be added by creating nodes. The downside is that lightmaps are fully static and cannot be baked in an exported project. Baking a node is also slower compared to . + Procedural generation: Lightmap baking functionality is only available in the editor. This means is not suited to procedurally generated or user-built levels. For procedurally generated or user-built levels, use or SDFGI instead (see ). + Performance: provides the best possible run-time performance for global illumination. It is suitable for low-end hardware including integrated graphics and mobile devices. + Note: Due to how lightmaps work, most properties only have a visible effect once lightmaps are baked again. + Note: Lightmap baking on s and es is not supported, as these cannot store UV2 data required for baking. + Note: If no custom lightmappers are installed, can only be baked from devices that support the Forward+ or Mobile renderers. + Note: The node only bakes light data for child nodes of its parent. Nodes further up the hierarchy of the scene will not be baked. + + + + + Low bake quality (fastest bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/low_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/low_quality_probe_ray_count. + + + + + Medium bake quality (fast bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/medium_quality_probe_ray_count. + + + + + High bake quality (slow bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/high_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/high_quality_probe_ray_count. + + + + + Highest bake quality (slowest bake times). The quality of this preset can be adjusted by changing ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_ray_count and ProjectSettings.rendering/lightmapping/bake_quality/ultra_quality_probe_ray_count. + + + + + Don't generate lightmap probes for lighting dynamic objects. + + + + + Lowest level of subdivision (fastest bake times, smallest file sizes). + + + + + Low level of subdivision (fast bake times, small file sizes). + + + + + High level of subdivision (slow bake times, large file sizes). + + + + + Highest level of subdivision (slowest bake times, largest file sizes). + + + + + Lightmap baking was successful. + + + + + Lightmap baking failed because the root node for the edited scene could not be accessed. + + + + + Lightmap baking failed as the lightmap data resource is embedded in a foreign resource. + + + + + Lightmap baking failed as there is no lightmapper available in this Godot build. + + + + + Lightmap baking failed as the save path isn't configured in the resource. + + + + + Lightmap baking failed as there are no meshes whose is 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. + + + + + Lightmap baking failed as the lightmapper failed to analyze some of the meshes marked as static for baking. + + + + + Lightmap baking failed as the resulting image couldn't be saved or imported by Godot after it was saved. + + + + + The user aborted the lightmap baking operation (typically by clicking the Cancel button in the progress dialog). + + + + + Lightmap baking failed as the maximum texture size is too small to fit some of the meshes marked for baking. + + + + + Lightmap baking failed as the lightmap is too small. + + + + + Lightmap baking failed as the lightmap was unable to fit into an atlas. + + + + + Ignore environment lighting when baking lightmaps. + + + + + Use the scene's environment lighting when baking lightmaps. + Note: If baking lightmaps in a scene with no node, this will act like . The editor's preview sky and sun is not taken into account by when baking lightmaps. + + + + + Use as a source of environment lighting when baking lightmaps. + + + + + Use multiplied by as a constant source of environment lighting when baking lightmaps. + + + + + The quality preset to use when baking lightmaps. This affects bake times, but output file sizes remain mostly identical across quality levels. + To further speed up bake times, decrease , disable and increase the lightmap texel size on 3D scenes in the Import dock. + + + + + Number of light bounces that are taken into account during baking. Higher values result in brighter, more realistic lighting, at the cost of longer bake times. If set to 0, only environment lighting, direct light and emissive lighting is baked. + + + + + The energy multiplier for each bounce. Higher values will make indirect lighting brighter. A value of 1.0 represents physically accurate behavior, but higher values can be used to make indirect lighting propagate more visibly when using a low number of bounces. This can be used to speed up bake times by lowering the number of then increasing . + Note: only has an effect if is set to a value greater than or equal to 1. + + + + + If , bakes lightmaps to contain directional information as spherical harmonics. This results in more realistic lighting appearance, especially with normal mapped materials and for lights that have their direct light baked ( set to and with set to ). The directional information is also used to provide rough reflections for static and dynamic objects. This has a small run-time performance cost as the shader has to perform more work to interpret the direction information from the lightmap. Directional lightmaps also take longer to bake and result in larger file sizes. + Note: The property's name has no relationship with . works with all light types. + + + + + The shadowmasking policy to use for directional shadows on static objects that are baked with this instance. + Shadowmasking allows nodes to cast shadows even outside the range defined by their property. This is done by baking a texture that contains a shadowmap for the directional light, then using this texture according to the current shadowmask mode. + Note: The shadowmask texture is only created if is not . To see a difference, you need to bake lightmaps again after switching from to any other mode. + + + + + If , a texture with the lighting information will be generated to speed up the generation of indirect lighting at the cost of some accuracy. The geometry might exhibit extra light leak artifacts when using low resolution lightmaps or UVs that stretch the lightmap significantly across surfaces. Leave at its default value of if unsure. + Note: only has an effect if is set to a value greater than or equal to 1. + + + + + If , ignore environment lighting when baking lightmaps. + + + + + If , uses a GPU-based denoising algorithm on the generated lightmap. This eliminates most noise within the generated lightmap at the cost of longer bake times. File sizes are generally not impacted significantly by the use of a denoiser, although lossless compression may do a better job at compressing a denoised image. + + + + + The strength of denoising step applied to the generated lightmaps. Only effective if is and ProjectSettings.rendering/lightmapping/denoising/denoiser is set to JNLM. + + + + + The distance in pixels from which the denoiser samples. Lower values preserve more details, but may give blotchy results if the lightmap quality is not high enough. Only effective if is and ProjectSettings.rendering/lightmapping/denoising/denoiser is set to JNLM. + + + + + The bias to use when computing shadows. Increasing can fix shadow acne on the resulting baked lightmap, but can introduce peter-panning (shadows not connecting to their casters). Real-time shadows are not affected by this property. + + + + + Scales the lightmap texel density of all meshes for the current bake. This is a multiplier that builds upon the existing lightmap texel size defined in each imported 3D scene, along with the per-mesh density multiplier (which is designed to be used when the same mesh is used at different scales). Lower values will result in faster bake times. + For example, doubling doubles the lightmap texture resolution for all objects on each axis, so it will quadruple the texel count. + + + + + The maximum texture size for the generated texture atlas. Higher values will result in fewer slices being generated, but may not work on all hardware as a result of hardware limitations on texture sizes. Leave at its default value of 16384 if unsure. + + + + + The environment mode to use when baking lightmaps. + + + + + The sky to use as a source of environment lighting. Only effective if is . + + + + + The color to use for environment lighting. Only effective if is . + + + + + The color multiplier to use for environment lighting. Only effective if is . + + + + + The resource that specifies exposure levels to bake at. Auto-exposure and non exposure properties will be ignored. Exposure settings should be used to reduce the dynamic range present when baking. If exposure is too high, the will have banding artifacts or may have over-exposure artifacts. + + + + + The level of subdivision to use when automatically generating s for dynamic object lighting. Higher values result in more accurate indirect lighting on dynamic objects, at the cost of longer bake times and larger file sizes. + Note: Automatically generated s are not visible as nodes in the Scene tree dock, and cannot be modified this way after they are generated. + Note: Regardless of , direct lighting on dynamic objects is always applied using nodes in real-time. + + + + + The associated to this node. This resource is automatically created after baking, and is not meant to be created manually. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'quality' property. + + + + + Cached name for the 'bounces' property. + + + + + Cached name for the 'bounce_indirect_energy' property. + + + + + Cached name for the 'directional' property. + + + + + Cached name for the 'shadowmask_mode' property. + + + + + Cached name for the 'use_texture_for_bounces' property. + + + + + Cached name for the 'interior' property. + + + + + Cached name for the 'use_denoiser' property. + + + + + Cached name for the 'denoiser_strength' property. + + + + + Cached name for the 'denoiser_range' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'texel_scale' property. + + + + + Cached name for the 'max_texture_size' property. + + + + + Cached name for the 'environment_mode' property. + + + + + Cached name for the 'environment_custom_sky' property. + + + + + Cached name for the 'environment_custom_color' property. + + + + + Cached name for the 'environment_custom_energy' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'generate_probes_subdiv' property. + + + + + Cached name for the 'light_data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_light_data' method. + + + + + Cached name for the 'get_light_data' method. + + + + + Cached name for the 'set_bake_quality' method. + + + + + Cached name for the 'get_bake_quality' method. + + + + + Cached name for the 'set_bounces' method. + + + + + Cached name for the 'get_bounces' method. + + + + + Cached name for the 'set_bounce_indirect_energy' method. + + + + + Cached name for the 'get_bounce_indirect_energy' method. + + + + + Cached name for the 'set_generate_probes' method. + + + + + Cached name for the 'get_generate_probes' method. + + + + + Cached name for the 'set_bias' method. + + + + + Cached name for the 'get_bias' method. + + + + + Cached name for the 'set_environment_mode' method. + + + + + Cached name for the 'get_environment_mode' method. + + + + + Cached name for the 'set_environment_custom_sky' method. + + + + + Cached name for the 'get_environment_custom_sky' method. + + + + + Cached name for the 'set_environment_custom_color' method. + + + + + Cached name for the 'get_environment_custom_color' method. + + + + + Cached name for the 'set_environment_custom_energy' method. + + + + + Cached name for the 'get_environment_custom_energy' method. + + + + + Cached name for the 'set_texel_scale' method. + + + + + Cached name for the 'get_texel_scale' method. + + + + + Cached name for the 'set_max_texture_size' method. + + + + + Cached name for the 'get_max_texture_size' method. + + + + + Cached name for the 'set_use_denoiser' method. + + + + + Cached name for the 'is_using_denoiser' method. + + + + + Cached name for the 'set_denoiser_strength' method. + + + + + Cached name for the 'get_denoiser_strength' method. + + + + + Cached name for the 'set_denoiser_range' method. + + + + + Cached name for the 'get_denoiser_range' method. + + + + + Cached name for the 'set_interior' method. + + + + + Cached name for the 'is_interior' method. + + + + + Cached name for the 'set_directional' method. + + + + + Cached name for the 'is_directional' method. + + + + + Cached name for the 'set_shadowmask_mode' method. + + + + + Cached name for the 'get_shadowmask_mode' method. + + + + + Cached name for the 'set_use_texture_for_bounces' method. + + + + + Cached name for the 'is_using_texture_for_bounces' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains baked lightmap and dynamic object probe data for . It is replaced every time lightmaps are baked in . + + + + + Shadowmasking is disabled. No shadowmask texture will be created when baking lightmaps. Existing shadowmask textures will be removed during baking. + + + + + Shadowmasking is enabled. Directional shadows that are outside the will be rendered using the shadowmask texture. Shadows that are inside the range will be rendered using real-time shadows exclusively. This mode allows for more precise real-time shadows up close, without the potential "smearing" effect that can occur when using lightmaps with a high texel size. The downside is that when the camera moves fast, the transition between the real-time light and shadowmask can be obvious. Also, objects that only have shadows baked in the shadowmask (and no real-time shadows) won't display any shadows up close. + + + + + Shadowmasking is enabled. Directional shadows will be rendered with real-time shadows overlaid on top of the shadowmask texture. This mode makes for smoother shadow transitions when the camera moves fast, at the cost of a potential smearing effect for directional shadows that are up close (due to the real-time shadow being mixed with a low-resolution shadowmask). Objects that only have shadows baked in the shadowmask (and no real-time shadows) will keep their shadows up close. + + + + + The lightmap atlas textures generated by the lightmapper. + + + + + The shadowmask atlas textures generated by the lightmapper. + + + + + The lightmap atlas texture generated by the lightmapper. + + + + + If is , tells the engine to treat the lightmap data as if it was baked with directional information. + Note: Changing this value on already baked lightmaps will not cause them to be baked again. This means the material appearance will look incorrect until lightmaps are baked again, in which case the value set here is discarded as the entire resource is replaced by the lightmapper. + + + + + If , lightmaps were baked with directional information. See also . + + + + + Adds an object that is considered baked within this . + + + + + Returns the number of objects that are considered baked within this . + + + + + Returns the of the baked object at index . + + + + + Clear all objects that are considered baked within this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'lightmap_textures' property. + + + + + Cached name for the 'shadowmask_textures' property. + + + + + Cached name for the 'uses_spherical_harmonics' property. + + + + + Cached name for the 'user_data' property. + + + + + Cached name for the 'probe_data' property. + + + + + Cached name for the '_uses_packed_directional' property. + + + + + Cached name for the 'light_texture' property. + + + + + Cached name for the 'light_textures' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_user_data' method. + + + + + Cached name for the '_get_user_data' method. + + + + + Cached name for the 'set_lightmap_textures' method. + + + + + Cached name for the 'get_lightmap_textures' method. + + + + + Cached name for the 'set_shadowmask_textures' method. + + + + + Cached name for the 'get_shadowmask_textures' method. + + + + + Cached name for the 'set_uses_spherical_harmonics' method. + + + + + Cached name for the 'is_using_spherical_harmonics' method. + + + + + Cached name for the '_set_uses_packed_directional' method. + + + + + Cached name for the '_is_using_packed_directional' method. + + + + + Cached name for the 'add_user' method. + + + + + Cached name for the 'get_user_count' method. + + + + + Cached name for the 'get_user_path' method. + + + + + Cached name for the 'clear_users' method. + + + + + Cached name for the '_set_probe_data' method. + + + + + Cached name for the '_get_probe_data' method. + + + + + Cached name for the 'set_light_texture' method. + + + + + Cached name for the 'get_light_texture' method. + + + + + Cached name for the '_set_light_textures_data' method. + + + + + Cached name for the '_get_light_textures_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + represents the position of a single manually placed probe for dynamic object lighting with . Lightmap probes affect the lighting of -derived nodes that have their set to . + Typically, probes are placed automatically by setting to a value other than . By creating 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. + Note: nodes that are placed after baking lightmaps are ignored by dynamic objects. You must bake lightmaps again after creating or modifying s for the probes to be effective. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class should be extended by custom lightmapper classes. Lightmappers can then be used with to provide fast baked global illumination in 3D. + Godot contains a built-in GPU-based lightmapper that uses compute shaders, but custom lightmappers can be implemented by C++ modules. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + LightmapperRD ("RD" stands for ) is the built-in GPU-based lightmapper for use with . On most dedicated GPUs, it can bake lightmaps much faster than most CPU-based lightmappers. LightmapperRD uses compute shaders to bake lightmaps, so it does not require CUDA or OpenCL libraries to be installed to be usable. + Note: Only usable when using the RenderingDevice backend (Forward+ or Mobile renderers), not Compatibility. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node draws a 2D polyline, i.e. a shape consisting of several points connected by segments. is not a mathematical polyline, i.e. the segments are not infinitely thin. It is intended for rendering and it can be colored and optionally textured. + Warning: Certain configurations may be impossible to draw nicely, such as very sharp angles. In these situations, the node uses fallback drawing logic to look decent. + Note: is drawn using a 2D mesh. + + + + + 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 ), the joint falls back to to prevent very long miters. + + + + + Makes the polyline's joints bevelled/chamfered, connecting the sides of the two segments with a simple line. + + + + + Makes the polyline's joints rounded, connecting the sides of the two segments with an arc. The detail of this arc depends on . + + + + + Draws no line cap. + + + + + Draws the line cap as a box, slightly extending the first/last segment. + + + + + Draws the line cap as a semicircle attached to the first/last segment. + + + + + Takes the left pixels of the texture and renders them over the whole polyline. + + + + + Tiles the texture over the polyline. of the node must be or for it to work properly. + + + + + Stretches the texture across the polyline. of the node must be for best results. + + + + + The points of the polyline, interpreted in local 2D coordinates. Segments are drawn between the adjacent points in this array. + + + + + If and the polyline has more than 2 points, the last point and the first one will be connected by a segment. + Note: The shape of the closing segment is not guaranteed to be seamless if a is provided. + Note: The joint between the closing segment and the first segment is drawn first and it samples the and the at the beginning. This is an implementation detail that might change in a future version. + + + + + The polyline's width. + + + + + The polyline's width curve. The width of the polyline over its length will be equivalent to the value of the width curve over its domain. The width curve should be a unit . + + + + + The color of the polyline. Will not be used if a gradient is set. + + + + + The gradient is drawn through the whole line from start to finish. The will not be used if this property is set. + + + + + The texture used for the polyline. Uses for drawing style. + + + + + The style to render the of the polyline. Use constants. + + + + + The style of the connections between segments of the polyline. Use constants. + + + + + The style of the beginning of the polyline, if is . Use constants. + + + + + The style of the end of the polyline, if is . Use constants. + + + + + Determines the miter limit of the polyline. Normally, when is set to , sharp angles fall back to using the logic of joints to prevent very long miters. Higher values of this property mean that the fallback to a bevel joint will happen at sharper angles. + + + + + The smoothness used for rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. + + + + + If , the polyline's border will be anti-aliased. + Note: is not accelerated by batching when being anti-aliased. + + + + + Overwrites the position of the point at the given with the supplied . + + + + + Returns the position of the point at index . + + + + + Returns the number of points in the polyline. + + + + + Adds a point with the specified relative to the polyline's own position. If no is provided, the new point will be added to the end of the points array. + If is given, the new point is inserted before the existing point identified by index . The indices of the points after the new point get increased by 1. The provided must not exceed the number of existing points in the polyline. See . + + + + + Removes the point at index from the polyline. + + + + + Removes all points from the polyline, making it empty. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'points' property. + + + + + Cached name for the 'closed' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'width_curve' property. + + + + + Cached name for the 'default_color' property. + + + + + Cached name for the 'gradient' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_mode' property. + + + + + Cached name for the 'joint_mode' property. + + + + + Cached name for the 'begin_cap_mode' property. + + + + + Cached name for the 'end_cap_mode' property. + + + + + Cached name for the 'sharp_limit' property. + + + + + Cached name for the 'round_precision' property. + + + + + Cached name for the 'antialiased' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_points' method. + + + + + Cached name for the 'get_points' method. + + + + + Cached name for the 'set_point_position' method. + + + + + Cached name for the 'get_point_position' method. + + + + + Cached name for the 'get_point_count' method. + + + + + Cached name for the 'add_point' method. + + + + + Cached name for the 'remove_point' method. + + + + + Cached name for the 'clear_points' method. + + + + + Cached name for the 'set_closed' method. + + + + + Cached name for the 'is_closed' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached name for the 'set_default_color' method. + + + + + Cached name for the 'get_default_color' method. + + + + + Cached name for the 'set_gradient' method. + + + + + Cached name for the 'get_gradient' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_mode' method. + + + + + Cached name for the 'get_texture_mode' method. + + + + + Cached name for the 'set_joint_mode' method. + + + + + Cached name for the 'get_joint_mode' method. + + + + + Cached name for the 'set_begin_cap_mode' method. + + + + + Cached name for the 'get_begin_cap_mode' method. + + + + + Cached name for the 'set_end_cap_mode' method. + + + + + Cached name for the 'get_end_cap_mode' method. + + + + + Cached name for the 'set_sharp_limit' method. + + + + + Cached name for the 'get_sharp_limit' method. + + + + + Cached name for the 'set_round_precision' method. + + + + + Cached name for the 'get_round_precision' method. + + + + + Cached name for the 'set_antialiased' method. + + + + + Cached name for the 'get_antialiased' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + provides an input field for editing a single line of text. + - When the control is focused using the keyboard arrow keys, it will only gain focus and not enter edit mode. + - To enter edit mode, click on the control with the mouse or press the ui_text_submit action (by default Enter or Kp Enter). + - To exit edit mode, press ui_text_submit or ui_cancel (by default Escape) actions. + - Check , , , and for more information. + Important: + - Focusing the with ui_focus_next (by default Tab) or ui_focus_prev (by default Shift + Tab) or still enters edit mode (for compatibility). + features many built-in shortcuts that are always available (Ctrl here maps to Cmd on macOS): + - Ctrl + C: Copy + - Ctrl + X: Cut + - Ctrl + V or Ctrl + Y: Paste/"yank" + - Ctrl + Z: Undo + - Ctrl + ~: Swap input direction. + - Ctrl + Shift + Z: Redo + - Ctrl + U: Delete text from the caret position to the beginning of the line + - Ctrl + K: Delete text from the caret position to the end of the line + - Ctrl + A: Select all text + - Up Arrow/Down Arrow: Move the caret to the beginning/end of the line + On macOS, some extra keyboard shortcuts are available: + - Cmd + F: Same as Right Arrow, move the caret one character right + - Cmd + B: Same as Left Arrow, move the caret one character left + - Cmd + P: Same as Up Arrow, move the caret to the previous line + - Cmd + N: Same as Down Arrow, move the caret to the next line + - Cmd + D: Same as Delete, delete the character on the right side of caret + - Cmd + H: Same as Backspace, delete the character on the left side of the caret + - Cmd + A: Same as Home, move the caret to the beginning of the line + - Cmd + E: Same as End, move the caret to the end of the line + - Cmd + Left Arrow: Same as Home, move the caret to the beginning of the line + - Cmd + Right Arrow: Same as End, move the caret to the end of the line + Note: Caret movement shortcuts listed above are not affected by . + + + + + Cuts (copies and clears) the selected text. + + + + + Copies the selected text. + + + + + 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 String.strip_escapes. + + + + + Erases the whole text. + + + + + Selects the whole text. + + + + + Undoes the previous action. + + + + + Reverse the last undo action. + + + + + ID of "Text Writing Direction" submenu. + + + + + Sets text direction to inherited. + + + + + Sets text direction to automatic. + + + + + Sets text direction to left-to-right. + + + + + Sets text direction to right-to-left. + + + + + Toggles control character display. + + + + + ID of "Insert Control Character" submenu. + + + + + Inserts left-to-right mark (LRM) character. + + + + + Inserts right-to-left mark (RLM) character. + + + + + Inserts start of left-to-right embedding (LRE) character. + + + + + Inserts start of right-to-left embedding (RLE) character. + + + + + Inserts start of left-to-right override (LRO) character. + + + + + Inserts start of right-to-left override (RLO) character. + + + + + Inserts pop direction formatting (PDF) character. + + + + + Inserts Arabic letter mark (ALM) character. + + + + + Inserts left-to-right isolate (LRI) character. + + + + + Inserts right-to-left isolate (RLI) character. + + + + + Inserts first strong isolate (FSI) character. + + + + + Inserts pop direction isolate (PDI) character. + + + + + Inserts zero width joiner (ZWJ) character. + + + + + Inserts zero width non-joiner (ZWNJ) character. + + + + + Inserts word joiner (WJ) character. + + + + + Inserts soft hyphen (SHY) character. + + + + + Represents the size of the enum. + + + + + Default text virtual keyboard. + + + + + Multiline virtual keyboard. + + + + + Virtual number keypad, useful for PIN entry. + + + + + Virtual number keypad, useful for entering fractional numbers. + + + + + Virtual phone number keypad. + + + + + Virtual keyboard with additional keys to assist with typing email addresses. + + + + + Virtual keyboard for entering a password. On most platforms, this should disable autocomplete and autocapitalization. + Note: This is not supported on Web. Instead, this behaves identically to . + + + + + Virtual keyboard with additional keys to assist with typing URLs. + + + + + String value of the . + Note: Changing text using this property won't emit the signal. + + + + + Text shown when the is empty. It is not the 's default value (see ). + + + + + Text alignment as defined in the enum. + + + + + Maximum number of characters that can be entered inside the . If 0, there is no limit. + When a limit is defined, characters that would exceed are truncated. This happens both for existing contents when setting the max length, or for new text inserted in the , including pasting. + If any input text is truncated, the signal is emitted with the truncated substring as parameter: + + Text = "Hello world"; + MaxLength = 5; + // `Text` becomes "Hello". + MaxLength = 10; + Text += " goodbye"; + // `Text` becomes "Hello good". + // `text_change_rejected` is emitted with "bye" as parameter. + + + + + + If , existing text cannot be modified and new text cannot be added. + + + + + If , the width will increase to stay longer than the . It will not compress if the is shortened. + + + + + If , the context menu will appear when right-clicked. + + + + + If , the native virtual keyboard is shown when focused on platforms that support it. + + + + + Specifies the type of virtual keyboard to show. + + + + + If , the will show a clear button if is not empty, which can be used to clear the text quickly. + + + + + If , shortcut keys for context menu items are enabled, even if the context menu is disabled. + + + + + If , using middle mouse button to paste clipboard will be disabled. + Note: This method is only implemented on Linux. + + + + + If , it's impossible to select the text using mouse nor keyboard. + + + + + If , the selected text will be deselected when focus is lost. + + + + + If , allow drag and drop of selected text. + + + + + Sets the icon that will appear in the right end of the if there's no , or always, if is set to . + + + + + If , the doesn't display decoration. + + + + + If , control characters are displayed. + + + + + If , the will select the whole text when it gains focus. + + + + + If , makes the caret blink. + + + + + The interval at which the caret blinks (in seconds). + + + + + The caret's column position inside the . When set, the text may scroll to accommodate it. + + + + + If , the will always show the caret, even if focus is lost. + + + + + Allow moving caret, selecting and removing the individual composite character components. + Note: Backspace is always removing individual composite character components. + + + + + If , every character is replaced with the secret character (see ). + + + + + The character to use to mask secret input. Only a single character can be used as the secret character. If it is longer than one character, only the first one will be used. If it is empty, a space will be used instead. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms. If left empty, current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Returns if the user has text in the Input Method Editor (IME). + + + + + Closes the Input Method Editor (IME) if it is open. Any text in the IME will be lost. + + + + + Applies text from the Input Method Editor (IME) and closes the IME if it is open. + + + + + Allows entering edit mode whether the is focused or not. + Use Callable.call_deferred if you want to enter edit mode on . + + + + + Allows exiting edit mode while preserving focus. + + + + + Returns whether the is being edited. + + + + + Erases the 's . + + + + + Selects characters inside between and . By default, is at the beginning and at the end. + + Text = "Welcome"; + Select(); // Will select "Welcome". + Select(4); // Will select "ome". + Select(2, 5); // Will select "lco". + + + + + + Selects the whole . + + + + + Clears the current selection. + + + + + Returns if an "undo" action is available. + + + + + Returns if a "redo" action is available. + + + + + Returns if the user has selected text. + + + + + Returns the text inside the selection. + + + + + Returns the selection begin column. + + + + + Returns the selection end column. + + + + + Returns the scroll offset due to , as a number of characters. + + + + + Inserts at the caret. If the resulting value is longer than , nothing happens. + + + + + Deletes one character at the caret's current position (equivalent to pressing Delete). + + + + + Deletes a section of the going from position to . Both parameters should be within the text's length. + + + + + Executes a given action as defined in the enum. + + + + + Returns the of this . By default, this menu is displayed when right-clicking on the . + You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see ). For example: + + public override void _Ready() + { + var menu = GetMenu(); + // Remove all items after "Redo". + menu.ItemCount = menu.GetItemIndex(LineEdit.MenuItems.Redo) + 1; + // Add custom items. + menu.AddSeparator(); + menu.AddItem("Insert Date", LineEdit.MenuItems.Max + 1); + // Add event handler. + menu.IdPressed += OnItemPressed; + } + + public void OnItemPressed(int id) + { + if (id == LineEdit.MenuItems.Max + 1) + { + InsertTextAtCaret(Time.GetDateStringFromSystem()); + } + } + + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns whether the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the text changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when appending text that overflows the . The appended text is truncated to fit , and the part that couldn't fit is passed as the rejectedSubstring argument. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user presses the ui_text_submit action (by default: Enter or Kp Enter) while the has focus. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the switches in or out of edit mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'placeholder_text' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'max_length' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'expand_to_text_length' property. + + + + + Cached name for the 'context_menu_enabled' property. + + + + + Cached name for the 'virtual_keyboard_enabled' property. + + + + + Cached name for the 'virtual_keyboard_type' property. + + + + + Cached name for the 'clear_button_enabled' property. + + + + + Cached name for the 'shortcut_keys_enabled' property. + + + + + Cached name for the 'middle_mouse_paste_enabled' property. + + + + + Cached name for the 'selecting_enabled' property. + + + + + Cached name for the 'deselect_on_focus_loss_enabled' property. + + + + + Cached name for the 'drag_and_drop_selection_enabled' property. + + + + + Cached name for the 'right_icon' property. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'draw_control_chars' property. + + + + + Cached name for the 'select_all_on_focus' property. + + + + + Cached name for the 'caret_blink' property. + + + + + Cached name for the 'caret_blink_interval' property. + + + + + Cached name for the 'caret_column' property. + + + + + Cached name for the 'caret_force_displayed' property. + + + + + Cached name for the 'caret_mid_grapheme' property. + + + + + Cached name for the 'secret' property. + + + + + Cached name for the 'secret_character' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_ime_text' method. + + + + + Cached name for the 'cancel_ime' method. + + + + + Cached name for the 'apply_ime' method. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'edit' method. + + + + + Cached name for the 'unedit' method. + + + + + Cached name for the 'is_editing' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'select_all' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'has_undo' method. + + + + + Cached name for the 'has_redo' method. + + + + + Cached name for the 'has_selection' method. + + + + + Cached name for the 'get_selected_text' method. + + + + + Cached name for the 'get_selection_from_column' method. + + + + + Cached name for the 'get_selection_to_column' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'get_draw_control_chars' method. + + + + + Cached name for the 'set_draw_control_chars' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_placeholder' method. + + + + + Cached name for the 'get_placeholder' method. + + + + + Cached name for the 'set_caret_column' method. + + + + + Cached name for the 'get_caret_column' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_expand_to_text_length_enabled' method. + + + + + Cached name for the 'is_expand_to_text_length_enabled' method. + + + + + Cached name for the 'set_caret_blink_enabled' method. + + + + + Cached name for the 'is_caret_blink_enabled' method. + + + + + Cached name for the 'set_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'is_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'set_caret_force_displayed' method. + + + + + Cached name for the 'is_caret_force_displayed' method. + + + + + Cached name for the 'set_caret_blink_interval' method. + + + + + Cached name for the 'get_caret_blink_interval' method. + + + + + Cached name for the 'set_max_length' method. + + + + + Cached name for the 'get_max_length' method. + + + + + Cached name for the 'insert_text_at_caret' method. + + + + + Cached name for the 'delete_char_at_caret' method. + + + + + Cached name for the 'delete_text' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_secret' method. + + + + + Cached name for the 'is_secret' method. + + + + + Cached name for the 'set_secret_character' method. + + + + + Cached name for the 'get_secret_character' method. + + + + + Cached name for the 'menu_option' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'is_menu_visible' method. + + + + + Cached name for the 'set_context_menu_enabled' method. + + + + + Cached name for the 'is_context_menu_enabled' method. + + + + + Cached name for the 'set_virtual_keyboard_enabled' method. + + + + + Cached name for the 'is_virtual_keyboard_enabled' method. + + + + + Cached name for the 'set_virtual_keyboard_type' method. + + + + + Cached name for the 'get_virtual_keyboard_type' method. + + + + + Cached name for the 'set_clear_button_enabled' method. + + + + + Cached name for the 'is_clear_button_enabled' method. + + + + + Cached name for the 'set_shortcut_keys_enabled' method. + + + + + Cached name for the 'is_shortcut_keys_enabled' method. + + + + + Cached name for the 'set_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'is_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'set_selecting_enabled' method. + + + + + Cached name for the 'is_selecting_enabled' method. + + + + + Cached name for the 'set_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'is_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'set_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'is_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'set_right_icon' method. + + + + + Cached name for the 'get_right_icon' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_select_all_on_focus' method. + + + + + Cached name for the 'is_select_all_on_focus' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'text_changed' signal. + + + + + Cached name for the 'text_change_rejected' signal. + + + + + Cached name for the 'text_submitted' signal. + + + + + Cached name for the 'editing_toggled' signal. + + + + + 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 which contains common properties and methods associated with this node. + + + + + The LinkButton will always show an underline at the bottom of its text. + + + + + The LinkButton will show an underline at the bottom of its text when the mouse cursor is over it. + + + + + The LinkButton will never show an underline at the bottom of its text. + + + + + The button's text that will be displayed inside the button's area. + + + + + The underline mode to use for the text. See for the available modes. + + + + + The URI for this . If set to a valid URI, pressing the button opens the URI using the operating system's default program for the protocol (via ). HTTP and HTTPS URLs open the default web browser. + + Uri = "https://godotengine.org"; // Opens the URL in the default web browser. + Uri = "C:\SomeFolder"; // Opens the file explorer at the given path. + Uri = "C:\SomeImage.png"; // Opens the given image in the default viewing app. + + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'underline' property. + + + + + Cached name for the 'uri' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_uri' method. + + + + + Cached name for the 'get_uri' method. + + + + + Cached name for the 'set_underline_mode' method. + + + + + Cached name for the 'get_underline_mode' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This rotates a bone to look at a target. This is helpful for moving a 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. + When applying multiple s, the assigned to the parent bone must be put above the assigned to the child bone in the list in order for the child bone results to be correct. + + + + + Enumerated value for the +X axis. + + + + + Enumerated value for the -X axis. + + + + + Enumerated value for the +Y axis. + + + + + Enumerated value for the -Y axis. + + + + + Enumerated value for the +Z axis. + + + + + Enumerated value for the -Z axis. + + + + + The bone rest position of the bone specified in is used as origin. + + + + + The bone global pose position of the bone specified in is used as origin. + Note: It is recommended that you select only the parent bone unless you are familiar with the bone processing process. The specified bone pose at the time the is processed is used as a reference. In other words, if you specify a child bone and the causes the child bone to move, the rendered result and direction will not match. + + + + + The global position of the specified in is used as origin. + Note: Same as , when specifying a with a child bone assigned, the rendered result and direction will not match. + + + + + The to the node that is the target for the look at modification. This node is what the modification will rotate the bone to. + + + + + The bone name of the that the modification will operate on. + + + + + Index of the in the parent . + + + + + The forward axis of the bone. This modifies the bone so that this axis points toward the . + + + + + The axis of the first rotation. This works by compositing the rotation by Euler angles to prevent to rotate the . + + + + + If , provides rotation by two axes. + + + + + This value determines from what origin is retrieved for use in the calculation of the forward vector. + + + + + If is , the bone global pose position specified for this is used as origin. + + + + + Index of the in the parent . + + + + + If is , the global position of the specified for this is used as origin. + + + + + The offset of the bone pose origin. Matching the origins by offset is useful for cases where multiple bones must always face the same direction, such as the eyes. + Note: This value indicates the local position of the object set in . + + + + + If the target passes through too close to the origin than this value, time-based interpolation is used even if the target is within the angular limitations, to prevent the angular velocity from becoming too high. + + + + + The duration of the time-based interpolation. Interpolation is triggered at the following cases: + - When the target node is changed + - When an axis is flipped due to angle limitation + Note: The flipping occurs when the target is outside the angle limitation and the internally computed secondary rotation axis of the forward vector is flipped. Visually, it occurs when the target is outside the angle limitation and crosses the plane of the and . + + + + + The transition type of the time-based interpolation. See also . + + + + + The ease type of the time-based interpolation. See also . + + + + + If , limits the degree of rotation. This helps prevent the character's neck from rotating 360 degrees. + Note: As with blending, interpolation is provided that favors . This means that interpolation does not select the shortest path in some cases. + Note: Some may exceed the limitations (e.g. `Back`, `Elastic`, and `Spring`). If interpolation occurs while overshooting the limitations, the result might possibly not respect the bone rest. + + + + + If , the limitations are spread from the bone symmetrically. + If , the limitation can be specified separately for each side of the bone rest. + + + + + The limit angle of the primary rotation when is . + + + + + The threshold to start damping for . It provides non-linear (b-spline) interpolation, let it feel more resistance the more it rotate to the edge limit. This is useful for simulating the limits of human motion. + If 1.0, no damping is performed. If 0.0, damping is always performed. + + + + + The limit angle of positive side of the primary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of negative side of the primary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of the secondary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of positive side of the secondary rotation when is . + + + + + The threshold to start damping for . + + + + + The limit angle of negative side of the secondary rotation when is . + + + + + The threshold to start damping for . + + + + + Returns the remaining seconds of the time-based interpolation. + + + + + Returns whether the time-based interpolation is running or not. If , it is equivalent to being 0. + This is useful to determine whether a can be removed safely. + + + + + Returns whether the target is within the angle limitations. It is useful for unsetting the when the target is outside of the angle limitations. + Note: The value is updated after . To retrieve this value correctly, we recommend using the signal . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_node' property. + + + + + Cached name for the 'bone_name' property. + + + + + Cached name for the 'bone' property. + + + + + Cached name for the 'forward_axis' property. + + + + + Cached name for the 'primary_rotation_axis' property. + + + + + Cached name for the 'use_secondary_rotation' property. + + + + + Cached name for the 'origin_from' property. + + + + + Cached name for the 'origin_bone_name' property. + + + + + Cached name for the 'origin_bone' property. + + + + + Cached name for the 'origin_external_node' property. + + + + + Cached name for the 'origin_offset' property. + + + + + Cached name for the 'origin_safe_margin' property. + + + + + Cached name for the 'duration' property. + + + + + Cached name for the 'transition_type' property. + + + + + Cached name for the 'ease_type' property. + + + + + Cached name for the 'use_angle_limitation' property. + + + + + Cached name for the 'symmetry_limitation' property. + + + + + Cached name for the 'primary_limit_angle' property. + + + + + Cached name for the 'primary_damp_threshold' property. + + + + + Cached name for the 'primary_positive_limit_angle' property. + + + + + Cached name for the 'primary_positive_damp_threshold' property. + + + + + Cached name for the 'primary_negative_limit_angle' property. + + + + + Cached name for the 'primary_negative_damp_threshold' property. + + + + + Cached name for the 'secondary_limit_angle' property. + + + + + Cached name for the 'secondary_damp_threshold' property. + + + + + Cached name for the 'secondary_positive_limit_angle' property. + + + + + Cached name for the 'secondary_positive_damp_threshold' property. + + + + + Cached name for the 'secondary_negative_limit_angle' property. + + + + + Cached name for the 'secondary_negative_damp_threshold' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone' method. + + + + + Cached name for the 'get_bone' method. + + + + + Cached name for the 'set_forward_axis' method. + + + + + Cached name for the 'get_forward_axis' method. + + + + + Cached name for the 'set_primary_rotation_axis' method. + + + + + Cached name for the 'get_primary_rotation_axis' method. + + + + + Cached name for the 'set_use_secondary_rotation' method. + + + + + Cached name for the 'is_using_secondary_rotation' method. + + + + + Cached name for the 'set_origin_safe_margin' method. + + + + + Cached name for the 'get_origin_safe_margin' method. + + + + + Cached name for the 'set_origin_from' method. + + + + + Cached name for the 'get_origin_from' method. + + + + + Cached name for the 'set_origin_bone_name' method. + + + + + Cached name for the 'get_origin_bone_name' method. + + + + + Cached name for the 'set_origin_bone' method. + + + + + Cached name for the 'get_origin_bone' method. + + + + + Cached name for the 'set_origin_external_node' method. + + + + + Cached name for the 'get_origin_external_node' method. + + + + + Cached name for the 'set_origin_offset' method. + + + + + Cached name for the 'get_origin_offset' method. + + + + + Cached name for the 'set_duration' method. + + + + + Cached name for the 'get_duration' method. + + + + + Cached name for the 'set_transition_type' method. + + + + + Cached name for the 'get_transition_type' method. + + + + + Cached name for the 'set_ease_type' method. + + + + + Cached name for the 'get_ease_type' method. + + + + + Cached name for the 'set_use_angle_limitation' method. + + + + + Cached name for the 'is_using_angle_limitation' method. + + + + + Cached name for the 'set_symmetry_limitation' method. + + + + + Cached name for the 'is_limitation_symmetry' method. + + + + + Cached name for the 'set_primary_limit_angle' method. + + + + + Cached name for the 'get_primary_limit_angle' method. + + + + + Cached name for the 'set_primary_damp_threshold' method. + + + + + Cached name for the 'get_primary_damp_threshold' method. + + + + + Cached name for the 'set_primary_positive_limit_angle' method. + + + + + Cached name for the 'get_primary_positive_limit_angle' method. + + + + + Cached name for the 'set_primary_positive_damp_threshold' method. + + + + + Cached name for the 'get_primary_positive_damp_threshold' method. + + + + + Cached name for the 'set_primary_negative_limit_angle' method. + + + + + Cached name for the 'get_primary_negative_limit_angle' method. + + + + + Cached name for the 'set_primary_negative_damp_threshold' method. + + + + + Cached name for the 'get_primary_negative_damp_threshold' method. + + + + + Cached name for the 'set_secondary_limit_angle' method. + + + + + Cached name for the 'get_secondary_limit_angle' method. + + + + + Cached name for the 'set_secondary_damp_threshold' method. + + + + + Cached name for the 'get_secondary_damp_threshold' method. + + + + + Cached name for the 'set_secondary_positive_limit_angle' method. + + + + + Cached name for the 'get_secondary_positive_limit_angle' method. + + + + + Cached name for the 'set_secondary_positive_damp_threshold' method. + + + + + Cached name for the 'get_secondary_positive_damp_threshold' method. + + + + + Cached name for the 'set_secondary_negative_limit_angle' method. + + + + + Cached name for the 'get_secondary_negative_limit_angle' method. + + + + + Cached name for the 'set_secondary_negative_damp_threshold' method. + + + + + Cached name for the 'get_secondary_negative_damp_threshold' method. + + + + + Cached name for the 'get_interpolation_remaining' method. + + + + + Cached name for the 'is_interpolating' method. + + + + + Cached name for the 'is_target_within_limitation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the abstract base class for a Godot project's game loop. It is inherited by , which is the default game loop implementation used in Godot projects, though it is also possible to write and use one's own subclass instead of the scene tree. + Upon the application start, a implementation must be provided to the OS; otherwise, the application will exit. This happens automatically (and a is created) unless a is provided from the command line (with e.g. godot -s my_loop.gd) or the ProjectSettings.application/run/main_loop_type project setting is overwritten. + Here is an example script implementing a simple : + + 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}"); + } + } + + + + + + Notification received from the OS when the application is exceeding its allocated memory. + Specific to the iOS platform. + + + + + Notification received when translations may have changed. Can be triggered by the user changing the locale. Can be used to respond to language changes, for example to change the UI strings on the fly. Useful when working with the built-in translation support, like . + + + + + Notification received from the OS when a request for "About" information is sent. + Specific to the macOS platform. + + + + + Notification received from Godot's crash handler when the engine is about to crash. + Implemented on desktop platforms if the crash handler is enabled. + + + + + Notification received from the OS when an update of the Input Method Engine occurs (e.g. change of IME cursor position or composition string). + Specific to the macOS platform. + + + + + Notification received from the OS when the application is resumed. + Specific to the Android and iOS platforms. + + + + + Notification received from the OS when the application is paused. + Specific to the Android and iOS platforms. + Note: On iOS, you only have approximately 5 seconds to finish a task started by this signal. If you go over this allotment, iOS will kill the app instead of pausing it. + + + + + Notification received from the OS when the application is focused, i.e. when changing the focus from the OS desktop or a thirdparty application to any open window of the Godot instance. + Implemented on desktop and mobile platforms. + + + + + Notification received from the OS when the application is defocused, i.e. when changing the focus from any open window of the Godot instance to the OS desktop or a thirdparty application. + Implemented on desktop and mobile platforms. + + + + + Notification received when text server is changed. + + + + + Called before the program exits. + + + + + Called once during initialization. + + + + + Called each physics frame with the time since the last physics frame as argument (, in seconds). Equivalent to . + If implemented, the method must return a boolean value. ends the main loop, while lets it proceed to the next frame. + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Called each process (idle) frame with the time since the last process frame as argument (in seconds). Equivalent to . + If implemented, the method must return a boolean value. ends the main loop, while lets it proceed to the next frame. + Note: will be larger than expected if running at a framerate lower than / FPS. This is done to avoid "spiral of death" scenarios where performance would plummet due to an ever-increasing number of physics steps per frame. This behavior affects both and . As a result, avoid using for time measurements in real-world seconds. Use the singleton's methods for this purpose instead, such as . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a user responds to a permission request. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_finalize' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_physics_process' method. + + + + + Cached name for the '_process' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'on_request_permissions_result' signal. + + + + + 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 's margins, use the margin_* theme properties listed below. + Note: The margin sizes are theme overrides, not normal properties. This is an example of how to change them in code: + + // This code sample assumes the current script is extending MarginContainer. + int marginValue = 100; + AddThemeConstantOverride("margin_top", marginValue); + AddThemeConstantOverride("margin_left", marginValue); + AddThemeConstantOverride("margin_bottom", marginValue); + AddThemeConstantOverride("margin_right", marginValue); + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generic 2D position hint for editing. It's just like a plain , 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. + + + + + Size of the gizmo cross that appears in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gizmo_extents' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gizmo_extents' method. + + + + + Cached name for the 'get_gizmo_extents' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generic 3D position hint for editing. It's just like a plain , but it displays as a cross in the 3D editor at all times. + + + + + Size of the gizmo cross that appears in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'gizmo_extents' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_gizmo_extents' method. + + + + + Cached name for the 'get_gizmo_extents' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides data transformation and encoding utility functions. + + + + + Returns a Base64-encoded string of the . If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Returns a decoded corresponding to the Base64-encoded string . If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a decoded [] corresponding to the Base64-encoded string . + + + + + Returns a Base64-encoded string of the UTF-8 string . + + + + + Returns a decoded string corresponding to the Base64-encoded string . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'variant_to_base64' method. + + + + + Cached name for the 'base64_to_variant' method. + + + + + Cached name for the 'raw_to_base64' method. + + + + + Cached name for the 'base64_to_raw' method. + + + + + Cached name for the 'utf8_to_base64' method. + + + + + Cached name for the 'base64_to_utf8' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides data transformation and encoding utility functions. + + + + + Returns a Base64-encoded string of the . If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Returns a decoded corresponding to the Base64-encoded string . If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a Base64-encoded string of a given []. + + + + + Returns a decoded [] corresponding to the Base64-encoded string . + + + + + Returns a Base64-encoded string of the UTF-8 string . + + + + + Returns a decoded string corresponding to the Base64-encoded string . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'variant_to_base64' method. + + + + + Cached name for the 'base64_to_variant' method. + + + + + Cached name for the 'raw_to_base64' method. + + + + + Cached name for the 'base64_to_raw' method. + + + + + Cached name for the 'utf8_to_base64' method. + + + + + Cached name for the 'base64_to_utf8' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a base resource used for coloring and shading geometry. All materials inherit from it and almost all derived nodes carry a . A few flags and parameters are shared between all material types and are configured here. + Importantly, you can inherit from to create your own custom material type in script or in GDExtension. + + + + + Maximum value for the parameter. + + + + + Minimum value for the parameter. + + + + + Sets the render priority for objects in 3D scenes. Higher priority objects will be sorted in front of lower priority objects. In other words, all objects with 1 will render before all objects with 0. + Note: This only applies to s and s with type "Spatial". + Note: This will not impact how transparent objects are sorted relative to opaque objects or how dynamic meshes will be sorted relative to other opaque meshes. This is because all transparent objects are drawn after all opaque objects and all dynamic opaque meshes are drawn before other opaque meshes. + + + + + Sets the to be used for the next pass. This renders the object again using a different material. + Note: materials are not necessarily drawn immediately after the source . Draw order is determined by material properties, , and distance to camera. + Note: This only applies to s and s with type "Spatial". + + + + + Only exposed for the purpose of overriding. You cannot call this function directly. Used internally to determine if should be shown in the editor or not. + + + + + Only exposed for the purpose of overriding. You cannot call this function directly. Used internally to determine if should be shown in the editor or not. + + + + + Only exposed for the purpose of overriding. You cannot call this function directly. Used internally by various editor tools. + + + + + 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 's . + + + + + Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code. See also . + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_priority' property. + + + + + Cached name for the 'next_pass' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_do_next_pass' method. + + + + + Cached name for the '_can_use_render_priority' method. + + + + + Cached name for the '_get_shader_mode' method. + + + + + Cached name for the '_get_shader_rid' method. + + + + + Cached name for the 'set_next_pass' method. + + + + + Cached name for the 'get_next_pass' method. + + + + + Cached name for the 'set_render_priority' method. + + + + + Cached name for the 'get_render_priority' method. + + + + + Cached name for the 'inspect_native_shader_code' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A horizontal menu bar that creates a menu for each child. New items are created by adding s to this node. + + + + + Flat don't display item decoration. + + + + + Position order in the global menu to insert items at. All menu items in the are always inserted as a continuous range. Menus with lower are inserted first. Menus with equal to -1 are inserted last. + + + + + If , when the cursor hovers above menu item, it will close the current and open the other one. + + + + + If , will use system global menu when supported. + Note: If and global menu is supported, this node is not displayed, has zero size, and all its child nodes except s are inaccessible. + Note: This property overrides the value of the property of the child nodes. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + If , shortcuts are disabled and cannot be used to trigger the button. + + + + + Returns , if system global menu is supported and used by this . + + + + + Returns number of menu items. + + + + + Sets menu item title. + + + + + Returns menu item title. + + + + + Sets menu item tooltip. + + + + + Returns menu item tooltip. + + + + + If , menu item is disabled. + + + + + Returns , if menu item is disabled. + + + + + If , menu item is hidden. + + + + + Returns , if menu item is hidden. + + + + + Returns associated with menu item. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'start_index' property. + + + + + Cached name for the 'switch_on_hover' property. + + + + + Cached name for the 'prefer_global_menu' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_switch_on_hover' method. + + + + + Cached name for the 'is_switch_on_hover' method. + + + + + Cached name for the 'set_disable_shortcuts' method. + + + + + Cached name for the 'set_prefer_global_menu' method. + + + + + Cached name for the 'is_prefer_global_menu' method. + + + + + Cached name for the 'is_native_menu' method. + + + + + Cached name for the 'get_menu_count' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_start_index' method. + + + + + Cached name for the 'get_start_index' method. + + + + + Cached name for the 'set_menu_title' method. + + + + + Cached name for the 'get_menu_title' method. + + + + + Cached name for the 'set_menu_tooltip' method. + + + + + Cached name for the 'get_menu_tooltip' method. + + + + + Cached name for the 'set_menu_disabled' method. + + + + + Cached name for the 'is_menu_disabled' method. + + + + + Cached name for the 'set_menu_hidden' method. + + + + + Cached name for the 'is_menu_hidden' method. + + + + + Cached name for the 'get_menu_popup' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A button that brings up a when clicked. To create new items inside this , use get_popup().add_item("My Item Name"). You can also create them directly from Godot editor's inspector. + See also which contains common properties and methods associated with this node. + + + + + If , when the cursor hovers above another within the same parent which also has enabled, it will close the current and open the other one. + + + + + The number of items currently in the list. + + + + + Returns the contained in this button. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adjusts popup position and sizing for the , then shows the . Prefer this over using get_popup().popup(). + + + + + If , shortcuts are disabled and cannot be used to trigger the button. + + + + + Emitted when the of this MenuButton is about to show. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'switch_on_hover' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'show_popup' method. + + + + + Cached name for the 'set_switch_on_hover' method. + + + + + Cached name for the 'is_switch_on_hover' method. + + + + + Cached name for the 'set_disable_shortcuts' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'about_to_popup' signal. + + + + + Mesh is a type of that contains vertex array-based geometry, divided in surfaces. Each surface contains a completely separate array and a material used to draw it. Design wise, a mesh with multiple surfaces is preferred to a single surface, because objects created in 3D editing software commonly contain multiple materials. The maximum number of surfaces per mesh is . + + + + + Render array as points (one vertex equals one point). + + + + + Render array as lines (every two vertices a line is created). + + + + + Render array as line strip. + + + + + Render array as triangles (every three vertices a triangle is created). + + + + + Render array as triangle strips. + + + + + [], [], or of vertex positions. + + + + + [] of vertex normals. + Note: The array has to consist of normal vectors, otherwise they will be normalized by the engine, potentially causing visual discrepancies. + + + + + [] 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. + + + + + [] of vertex colors. + + + + + [] for UV coordinates. + + + + + [] for second UV coordinates. + + + + + Contains custom color channel 0. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM0_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + Contains custom color channel 1. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM1_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + Contains custom color channel 2. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM2_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + Contains custom color channel 3. [] if (format >> Mesh.ARRAY_FORMAT_CUSTOM3_SHIFT) & Mesh.ARRAY_FORMAT_CUSTOM_MASK is , , , or . [] otherwise. + + + + + [] or [] of bone indices. Contains either 4 or 8 numbers per vertex depending on the presence of the flag. + + + + + [] or [] of bone weights in the range 0.0 to 1.0 (inclusive). Contains either 4 or 8 numbers per vertex depending on the presence of the flag. + + + + + [] 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'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. + + + + + Represents the size of the enum. + + + + + Indicates this custom channel contains unsigned normalized byte colors from 0 to 1, encoded as []. + + + + + Indicates this custom channel contains signed normalized byte colors from -1 to 1, encoded as []. + + + + + Indicates this custom channel contains half precision float colors, encoded as []. Only red and green channels are used. + + + + + Indicates this custom channel contains half precision float colors, encoded as []. + + + + + Indicates this custom channel contains full float colors, in a []. Only the red channel is used. + + + + + Indicates this custom channel contains full float colors, in a []. Only red and green channels are used. + + + + + Indicates this custom channel contains full float colors, in a []. Only red, green and blue channels are used. + + + + + Indicates this custom channel contains full float colors, in a []. + + + + + Represents the size of the enum. + + + + + Mesh array contains vertices. All meshes require a vertex array so this should always be present. + + + + + Mesh array contains normals. + + + + + Mesh array contains tangents. + + + + + Mesh array contains colors. + + + + + Mesh array contains UVs. + + + + + Mesh array contains second UV. + + + + + Mesh array contains custom channel index 0. + + + + + Mesh array contains custom channel index 1. + + + + + Mesh array contains custom channel index 2. + + + + + Mesh array contains custom channel index 3. + + + + + Mesh array contains bones. + + + + + Mesh array contains bone weights. + + + + + Mesh array uses indices. + + + + + Mask of mesh channels permitted in blend shapes. + + + + + Shift of first custom channel. + + + + + Number of format bits per custom channel. See . + + + + + Amount to shift for custom channel index 0. + + + + + Amount to shift for custom channel index 1. + + + + + Amount to shift for custom channel index 2. + + + + + Amount to shift for custom channel index 3. + + + + + Mask of custom format bits per custom channel. Must be shifted by one of the SHIFT constants. See . + + + + + Shift of first compress flag. Compress flags should be passed to and . + + + + + Flag used to mark that the array contains 2D vertices. + + + + + Flag indices that the mesh data will use GL_DYNAMIC_DRAW on GLES. Unused on Vulkan. + + + + + Flag used to mark that the mesh contains up to 8 bone influences per vertex. This flag indicates that and elements will have double length. + + + + + Flag used to mark that the mesh intentionally contains no vertex array. + + + + + 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. + + + + + Blend shapes are normalized. + + + + + Blend shapes are relative to base weight. + + + + + Sets a hint to be used for lightmap resolution. + + + + + Virtual method to override the for a custom class extending . + + + + + Virtual method to override the number of blend shapes for a custom class extending . + + + + + Virtual method to override the retrieval of blend shape names for a custom class extending . + + + + + Virtual method to override the surface count for a custom class extending . + + + + + Virtual method to override the names of blend shapes for a custom class extending . + + + + + Virtual method to override the surface array index length for a custom class extending . + + + + + Virtual method to override the surface array length for a custom class extending . + + + + + Virtual method to override the surface arrays for a custom class extending . + + + + + Virtual method to override the blend shape arrays for a custom class extending . + + + + + Virtual method to override the surface format for a custom class extending . + + + + + Virtual method to override the surface LODs for a custom class extending . + + + + + Virtual method to override the surface material for a custom class extending . + + + + + Virtual method to override the surface primitive type for a custom class extending . + + + + + Virtual method to override the setting of a at the given for a custom class extending . + + + + + Returns the smallest enclosing this mesh in local space. Not affected by custom_aabb. + Note: This is only implemented for and . + + + + + Returns all the vertices that make up the faces of the mesh. Each three vertices represent one triangle. + + + + + Returns the number of surfaces that the holds. This is equivalent to . + + + + + Returns the arrays for the vertices, normals, UVs, etc. that make up the requested surface (see ). + + + + + Returns the blend shape arrays for the requested surface. + + + + + Sets a for a given surface. Surface will be rendered using this material. + Note: This assigns the material within the resource, not the associated to the 's Surface Material Override properties. To set the associated to the 's Surface Material Override properties, use instead. + + + + + Returns a in a given surface. Surface is rendered using this material. + Note: This returns the material within the resource, not the associated to the 's Surface Material Override properties. To get the associated to the 's Surface Material Override properties, use instead. + + + + + Creates a placeholder version of this resource (). + + + + + Calculate a from the mesh. + + + + + Calculate a from the mesh. + If is (default), duplicate and interior vertices are removed automatically. You can set it to to make the process faster if not needed. + If is , the geometry can be further simplified to reduce the number of vertices. Disabled by default. + + + + + Calculate an outline mesh at a defined offset (margin) from the original mesh. + Note: This method typically returns the vertices in reverse order (e.g. clockwise to counterclockwise). + + + + + Generate a from the mesh. Considers only surfaces using one of these primitive types: , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'lightmap_size_hint' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_aabb' method. + + + + + Cached name for the '_get_blend_shape_count' method. + + + + + Cached name for the '_get_blend_shape_name' method. + + + + + Cached name for the '_get_surface_count' method. + + + + + Cached name for the '_set_blend_shape_name' method. + + + + + Cached name for the '_surface_get_array_index_len' method. + + + + + Cached name for the '_surface_get_array_len' method. + + + + + Cached name for the '_surface_get_arrays' method. + + + + + Cached name for the '_surface_get_blend_shape_arrays' method. + + + + + Cached name for the '_surface_get_format' method. + + + + + Cached name for the '_surface_get_lods' method. + + + + + Cached name for the '_surface_get_material' method. + + + + + Cached name for the '_surface_get_primitive_type' method. + + + + + Cached name for the '_surface_set_material' method. + + + + + Cached name for the 'set_lightmap_size_hint' method. + + + + + Cached name for the 'get_lightmap_size_hint' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached name for the 'get_faces' method. + + + + + Cached name for the 'get_surface_count' method. + + + + + Cached name for the 'surface_get_arrays' method. + + + + + Cached name for the 'surface_get_blend_shape_arrays' method. + + + + + Cached name for the 'surface_set_material' method. + + + + + Cached name for the 'surface_get_material' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached name for the 'create_trimesh_shape' method. + + + + + Cached name for the 'create_convex_shape' method. + + + + + Cached name for the 'create_outline' method. + + + + + Cached name for the 'generate_triangle_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Parameters to be used with a convex decomposition operation. + + + + + Constant for voxel-based approximate convex decomposition. + + + + + Constant for tetrahedron-based approximate convex decomposition. + + + + + Maximum concavity. Ranges from 0.0 to 1.0. + + + + + Controls the bias toward clipping along symmetry planes. Ranges from 0.0 to 1.0. + + + + + Controls the bias toward clipping along revolution axes. Ranges from 0.0 to 1.0. + + + + + Controls the adaptive sampling of the generated convex-hulls. Ranges from 0.0 to 0.01. + + + + + Maximum number of voxels generated during the voxelization stage. + + + + + Controls the maximum number of triangles per convex-hull. Ranges from 4 to 1024. + + + + + Controls the granularity of the search for the "best" clipping plane. Ranges from 1 to 16. + + + + + Controls the precision of the convex-hull generation process during the clipping plane selection stage. Ranges from 1 to 16. + + + + + If , normalizes the mesh before applying the convex decomposition. + + + + + Mode for the approximate convex decomposition. + + + + + If , uses approximation for computing convex hulls. + + + + + The maximum number of convex hulls to produce from the merge operation. + + + + + If , projects output convex hull vertices onto the original source mesh to increase floating-point accuracy of the results. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'max_concavity' property. + + + + + Cached name for the 'symmetry_planes_clipping_bias' property. + + + + + Cached name for the 'revolution_axes_clipping_bias' property. + + + + + Cached name for the 'min_volume_per_convex_hull' property. + + + + + Cached name for the 'resolution' property. + + + + + Cached name for the 'max_num_vertices_per_convex_hull' property. + + + + + Cached name for the 'plane_downsampling' property. + + + + + Cached name for the 'convex_hull_downsampling' property. + + + + + Cached name for the 'normalize_mesh' property. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'convex_hull_approximation' property. + + + + + Cached name for the 'max_convex_hulls' property. + + + + + Cached name for the 'project_hull_vertices' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_max_concavity' method. + + + + + Cached name for the 'get_max_concavity' method. + + + + + Cached name for the 'set_symmetry_planes_clipping_bias' method. + + + + + Cached name for the 'get_symmetry_planes_clipping_bias' method. + + + + + Cached name for the 'set_revolution_axes_clipping_bias' method. + + + + + Cached name for the 'get_revolution_axes_clipping_bias' method. + + + + + Cached name for the 'set_min_volume_per_convex_hull' method. + + + + + Cached name for the 'get_min_volume_per_convex_hull' method. + + + + + Cached name for the 'set_resolution' method. + + + + + Cached name for the 'get_resolution' method. + + + + + Cached name for the 'set_max_num_vertices_per_convex_hull' method. + + + + + Cached name for the 'get_max_num_vertices_per_convex_hull' method. + + + + + Cached name for the 'set_plane_downsampling' method. + + + + + Cached name for the 'get_plane_downsampling' method. + + + + + Cached name for the 'set_convex_hull_downsampling' method. + + + + + Cached name for the 'get_convex_hull_downsampling' method. + + + + + Cached name for the 'set_normalize_mesh' method. + + + + + Cached name for the 'get_normalize_mesh' method. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_convex_hull_approximation' method. + + + + + Cached name for the 'get_convex_hull_approximation' method. + + + + + Cached name for the 'set_max_convex_hulls' method. + + + + + Cached name for the 'get_max_convex_hulls' method. + + + + + Cached name for the 'set_project_hull_vertices' method. + + + + + Cached name for the 'get_project_hull_vertices' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MeshDataTool provides access to individual vertices in a . 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 . When you are finished editing the data commit the data to a mesh with . + Below is an example of how MeshDataTool may be used. + + var mesh = new ArrayMesh(); + mesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, new BoxMesh().GetMeshArrays()); + var mdt = new MeshDataTool(); + mdt.CreateFromSurface(mesh, 0); + for (var i = 0; i < mdt.GetVertexCount(); i++) + { + Vector3 vertex = mdt.GetVertex(i); + // In this example we extend the mesh by one unit, which results in separated faces as it is flat shaded. + vertex += mdt.GetVertexNormal(i); + // Save your change. + mdt.SetVertex(i, vertex); + } + mesh.ClearSurfaces(); + mdt.CommitToSurface(mesh); + var mi = new MeshInstance(); + mi.Mesh = mesh; + AddChild(mi); + + See also , and for procedural geometry generation. + Note: Godot uses clockwise winding order for front faces of triangle primitive modes. + + + + + Clears all data currently in MeshDataTool. + + + + + Uses specified surface of given to populate data for MeshDataTool. + Requires with primitive type . + + + + + Adds a new surface to specified with edited data. + + + + + Returns the 's format as a combination of the flags. For example, a mesh containing both vertices and normals would return a format of 3 because is 1 and is 2. + + + + + Returns the total number of vertices in . + + + + + Returns the number of edges in this . + + + + + Returns the number of faces in this . + + + + + Sets the position of the given vertex. + + + + + Returns the position of the given vertex. + + + + + Sets the normal of the given vertex. + + + + + Returns the normal of the given vertex. + + + + + Sets the tangent of the given vertex. + + + + + Returns the tangent of the given vertex. + + + + + Sets the UV of the given vertex. + + + + + Returns the UV of the given vertex. + + + + + Sets the UV2 of the given vertex. + + + + + Returns the UV2 of the given vertex. + + + + + Sets the color of the given vertex. + + + + + Returns the color of the given vertex. + + + + + Sets the bones of the given vertex. + + + + + Sets the bones of the given vertex. + + + + + Returns the bones of the given vertex. + + + + + Sets the bone weights of the given vertex. + + + + + Sets the bone weights of the given vertex. + + + + + Returns bone weights of the given vertex. + + + + + Sets the metadata associated with the given vertex. + + + + + Returns the metadata associated with the given vertex. + + + + + Returns an array of edges that share the given vertex. + + + + + Returns an array of faces that share the given vertex. + + + + + Returns index of specified vertex connected to given edge. + Vertex argument can only be 0 or 1 because edges are comprised of two vertices. + + + + + Returns array of faces that touch given edge. + + + + + Sets the metadata of the given edge. + + + + + Returns meta information assigned to given edge. + + + + + Returns the specified vertex index of the given face. + must be either 0, 1, or 2 because faces contain three vertices. + + int index = meshDataTool.GetFaceVertex(0, 1); // Gets the index of the second vertex of the first face. + Vector3 position = meshDataTool.GetVertex(index); + Vector3 normal = meshDataTool.GetVertexNormal(index); + + + + + + Returns specified edge associated with given face. + Edge argument must be either 0, 1, or 2 because a face only has three edges. + + + + + Sets the metadata of the given face. + + + + + Returns the metadata associated with the given face. + + + + + Calculates and returns the face normal of the given face. + + + + + Sets the material to be used by newly-constructed . + + + + + Returns the material assigned to the . + + + + + Adds a new surface to specified with edited data. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'create_from_surface' method. + + + + + Cached name for the 'commit_to_surface' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_vertex_count' method. + + + + + Cached name for the 'get_edge_count' method. + + + + + Cached name for the 'get_face_count' method. + + + + + Cached name for the 'set_vertex' method. + + + + + Cached name for the 'get_vertex' method. + + + + + Cached name for the 'set_vertex_normal' method. + + + + + Cached name for the 'get_vertex_normal' method. + + + + + Cached name for the 'set_vertex_tangent' method. + + + + + Cached name for the 'get_vertex_tangent' method. + + + + + Cached name for the 'set_vertex_uv' method. + + + + + Cached name for the 'get_vertex_uv' method. + + + + + Cached name for the 'set_vertex_uv2' method. + + + + + Cached name for the 'get_vertex_uv2' method. + + + + + Cached name for the 'set_vertex_color' method. + + + + + Cached name for the 'get_vertex_color' method. + + + + + Cached name for the 'set_vertex_bones' method. + + + + + Cached name for the 'get_vertex_bones' method. + + + + + Cached name for the 'set_vertex_weights' method. + + + + + Cached name for the 'get_vertex_weights' method. + + + + + Cached name for the 'set_vertex_meta' method. + + + + + Cached name for the 'get_vertex_meta' method. + + + + + Cached name for the 'get_vertex_edges' method. + + + + + Cached name for the 'get_vertex_faces' method. + + + + + Cached name for the 'get_edge_vertex' method. + + + + + Cached name for the 'get_edge_faces' method. + + + + + Cached name for the 'set_edge_meta' method. + + + + + Cached name for the 'get_edge_meta' method. + + + + + Cached name for the 'get_face_vertex' method. + + + + + Cached name for the 'get_face_edge' method. + + + + + Cached name for the 'set_face_meta' method. + + + + + Cached name for the 'get_face_meta' method. + + + + + Cached name for the 'get_face_normal' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node used for displaying a in 2D. A can be automatically created from an existing via a tool in the editor toolbar. Select the node, then choose Sprite2D > Convert to MeshInstance2D at the top of the 2D editor viewport. + + + + + The that will be drawn by the . + + + + + The that will be used if using the default . Can be accessed as TEXTURE in CanvasItem shader. + + + + + Emitted when the is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'texture_changed' signal. + + + + + A library of meshes. Contains a list of resources, each with a name and ID. Each item can also include collision and navigation shapes. This resource is used in . + + + + + Creates a new item in the library with the given ID. + You can get an unused ID from . + + + + + Sets the item's name. + This name is shown in the editor. It can also be used to look up the item later using . + + + + + Sets the item's mesh. + + + + + Sets the transform to apply to the item's mesh. + + + + + Sets the item's shadow casting mode. See for possible values. + + + + + Sets the item's navigation mesh. + + + + + Sets the transform to apply to the item's navigation mesh. + + + + + Sets the item's navigation layers bitmask. + + + + + Sets an item's collision shapes. + The array should consist of objects, each followed by a that will be applied to it. For shapes that should not have a transform, use Transform3D.IDENTITY. + + + + + Sets a texture to use as the item's preview icon in the editor. + + + + + Returns the item's name. + + + + + Returns the item's mesh. + + + + + Returns the transform applied to the item's mesh. + + + + + Returns the item's shadow casting mode. See for possible values. + + + + + Returns the item's navigation mesh. + + + + + Returns the transform applied to the item's navigation mesh. + + + + + Returns the item's navigation layers bitmask. + + + + + Returns an item's collision shapes. + The array consists of each followed by its . + + + + + When running in the editor, returns a generated item preview (a 3D rendering in isometric perspective). When used in a running project, returns the manually-defined item preview which can be set using . Returns an empty if no preview was manually set in a running project. + + + + + Removes the item. + + + + + Returns the first item with the given name, or -1 if no item is found. + + + + + Clears the library. + + + + + Returns the list of item IDs in use. + + + + + Gets an unused ID for a new item. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_item' method. + + + + + Cached name for the 'set_item_name' method. + + + + + Cached name for the 'set_item_mesh' method. + + + + + Cached name for the 'set_item_mesh_transform' method. + + + + + Cached name for the 'set_item_mesh_cast_shadow' method. + + + + + Cached name for the 'set_item_navigation_mesh' method. + + + + + Cached name for the 'set_item_navigation_mesh_transform' method. + + + + + Cached name for the 'set_item_navigation_layers' method. + + + + + Cached name for the 'set_item_shapes' method. + + + + + Cached name for the 'set_item_preview' method. + + + + + Cached name for the 'get_item_name' method. + + + + + Cached name for the 'get_item_mesh' method. + + + + + Cached name for the 'get_item_mesh_transform' method. + + + + + Cached name for the 'get_item_mesh_cast_shadow' method. + + + + + Cached name for the 'get_item_navigation_mesh' method. + + + + + Cached name for the 'get_item_navigation_mesh_transform' method. + + + + + Cached name for the 'get_item_navigation_layers' method. + + + + + Cached name for the 'get_item_shapes' method. + + + + + Cached name for the 'get_item_preview' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'find_item_by_name' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_item_list' method. + + + + + Cached name for the 'get_last_unused_item_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Simple texture that uses a mesh to draw itself. It's limited because flags can't be changed and region drawing is not supported. + + + + + Sets the mesh used to draw. It must be a mesh using 2D vertices. + + + + + Sets the base texture that the Mesh will use to draw. + + + + + Sets the size of the image, needed for reference. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'base_texture' property. + + + + + Cached name for the 'image_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_image_size' method. + + + + + Cached name for the 'get_image_size' method. + + + + + Cached name for the 'set_base_texture' method. + + + + + Cached name for the 'get_base_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is similar to a combination of and . It calls a method providing an interpolated value as a parameter. See for more usage information. + The tweener will finish automatically if the callback's target object is freed. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Sets the time in seconds after which the will start interpolating. By default there's no delay. + + + + + Sets the type of used transition from . If not set, the default transition is used from the that contains this Tweener. + + + + + Sets the type of used easing from . If not set, the default easing is used from the that contains this Tweener. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_delay' method. + + + + + Cached name for the 'set_trans' method. + + + + + Cached name for the 'set_ease' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 a scene. + Warning: Ignore missing nodes unless you know what you are doing. Existing properties on a missing node can be freely modified in code, regardless of the type they are intended to be. + + + + + The name of the class this node was supposed to be (see ). + + + + + Returns the path of the scene this node was instance of originally. + + + + + If , allows new properties to be set along with existing ones. If , only existing properties' values can be set, and new properties cannot be added. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_class' property. + + + + + Cached name for the 'original_scene' property. + + + + + Cached name for the 'recording_properties' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_original_class' method. + + + + + Cached name for the 'get_original_class' method. + + + + + Cached name for the 'set_original_scene' method. + + + + + Cached name for the 'get_original_scene' method. + + + + + Cached name for the 'set_recording_properties' method. + + + + + Cached name for the 'is_recording_properties' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 a scene. + Warning: Ignore missing resources unless you know what you are doing. Existing properties on a missing resource can be freely modified in code, regardless of the type they are intended to be. + + + + + The name of the class this resource was supposed to be (see ). + + + + + If set to , allows new properties to be added on top of the existing ones with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'original_class' property. + + + + + Cached name for the 'recording_properties' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_original_class' method. + + + + + Cached name for the 'get_original_class' method. + + + + + Cached name for the 'set_recording_properties' method. + + + + + Cached name for the 'is_recording_properties' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + You can initialize this interface as follows: + + var interface = XRServer.find_interface("Native mobile") + if interface and interface.initialize(): + get_viewport().use_xr = true + + + + + + The height at which the camera is placed in relation to the ground (i.e. node). + + + + + The interocular distance, also known as the interpupillary distance. The distance between the pupils of the left and right eye. + + + + + The width of the display in centimeters. + + + + + The distance between the display and the lenses inside of the device in centimeters. + + + + + Set the offset rect relative to the area being rendered. A length of 1 represents the whole rendering area on that axis. + + + + + The oversample setting. Because of the lens distortion we have to render our buffers at a higher resolution then the screen can natively handle. A value between 1.5 and 2.0 often provides good results but at the cost of performance. + + + + + The k1 lens factor is one of the two constants that define the strength of the lens used and directly influences the lens distortion effect. + + + + + The k2 lens factor, see k1. + + + + + The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. This improves performance at the cost of quality. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'eye_height' property. + + + + + Cached name for the 'iod' property. + + + + + Cached name for the 'display_width' property. + + + + + Cached name for the 'display_to_lens' property. + + + + + Cached name for the 'offset_rect' property. + + + + + Cached name for the 'oversample' property. + + + + + Cached name for the 'k1' property. + + + + + Cached name for the 'k2' property. + + + + + Cached name for the 'vrs_min_radius' property. + + + + + Cached name for the 'vrs_strength' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_eye_height' method. + + + + + Cached name for the 'get_eye_height' method. + + + + + Cached name for the 'set_iod' method. + + + + + Cached name for the 'get_iod' method. + + + + + Cached name for the 'set_display_width' method. + + + + + Cached name for the 'get_display_width' method. + + + + + Cached name for the 'set_display_to_lens' method. + + + + + Cached name for the 'get_display_to_lens' method. + + + + + Cached name for the 'set_offset_rect' method. + + + + + Cached name for the 'get_offset_rect' method. + + + + + Cached name for the 'set_oversample' method. + + + + + Cached name for the 'get_oversample' method. + + + + + Cached name for the 'set_k1' method. + + + + + Cached name for the 'get_k1' method. + + + + + Cached name for the 'set_k2' method. + + + + + Cached name for the 'get_k2' method. + + + + + Cached name for the 'get_vrs_min_radius' method. + + + + + Cached name for the 'set_vrs_min_radius' method. + + + + + Cached name for the 'get_vrs_strength' method. + + + + + Cached name for the 'set_vrs_strength' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Godot can record videos with non-real-time simulation. Like the --fixed-fps command line argument, this forces the reported delta in 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 s: + - AVI container with MJPEG for video and uncompressed audio (.avi file extension). Lossy compression, medium file sizes, fast encoding. The lossy compression quality can be adjusted by changing 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 . MJPEG does not support transparency. AVI output is currently limited to a file of 4 GB in size at most. + - PNG image sequence for video and WAV for audio (.png file extension). Lossless compression, large file sizes, slow encoding. Designed to be encoded to a video file with another tool such as FFmpeg after recording. Transparency is currently not supported, even if the root viewport is set to be transparent. + If you need to encode to a different format or pipe a stream through third-party software, you can extend the class to create your own movie writers. This should typically be done using GDExtension for performance reasons. + Editor usage: A default movie file path can be specified in ProjectSettings.editor/movie_writer/movie_file. Alternatively, for running single scenes, a movie_file metadata can be added to the root node, specifying the path to a movie file that will be used when recording that scene. Once a path is set, click the video reel icon in the top-right corner of the editor to enable Movie Maker mode, then run any scene as usual. The engine will start recording as soon as the splash screen is finished, and it will only stop recording when the engine quits. Click the video reel icon again to disable Movie Maker mode. Note that toggling Movie Maker mode does not affect project instances that are already running. + Note: MovieWriter is available for use in both the editor and exported projects, but it is not designed for use by end users to record videos while playing. Players wishing to record gameplay videos should install tools such as OBS Studio or SimpleScreenRecorder instead. + + + + + 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 is not overridden. + + + + + 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 if is not overridden. + + + + + Called when the engine determines whether this is able to handle the file at . Must return if this is able to handle the given file path, otherwise. Typically, is overridden as follows to allow the user to record a file at any path with a given file extension: + + 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" + + + + + + Called once before the engine starts writing video and audio data. is the width and height of the video to save. is the number of frames per second specified in the project settings or using the --fixed-fps <fps> command line argument. + + + + + Called when the engine finishes writing. This occurs when the engine quits by pressing the window manager's close button, or when is called. + Note: Pressing Ctrl + C on the terminal running the editor/project does not result in being called. + + + + + Adds a writer to be usable by the engine. The supported file extensions can be set by overriding . + Note: must be called early enough in the engine initialization to work, as movie writing is designed to start at the same time as the rest of the engine. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_audio_mix_rate' method. + + + + + Cached name for the '_get_audio_speaker_mode' method. + + + + + Cached name for the '_handles_file' method. + + + + + Cached name for the '_write_begin' method. + + + + + Cached name for the '_write_end' method. + + + + + Cached name for the 'add_writer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MultiMesh provides low-level mesh instancing. Drawing thousands of nodes can be slow, since each object is submitted to the GPU then drawn individually. + MultiMesh is much faster as it can draw thousands of instances with a single draw call, resulting in less API overhead. + As a drawback, if the instances are too far away from each other, performance may be reduced as every single instance will always render (they are spatially indexed as one, for the whole object). + Since instances may have any behavior, the AABB used for visibility must be provided by the user. + Note: A MultiMesh is a single object, therefore the same maximum lights per object restriction applies. This means, that once the maximum lights are consumed by one or more instances, the rest of the MultiMesh instances will not receive any lighting. + Note: Blend Shapes will be ignored if used in a MultiMesh. + + + + + Use this when using 2D transforms. + + + + + Use this when using 3D transforms. + + + + + Always interpolate using Basis lerping, which can produce warping artifacts in some situations. + + + + + Attempt to interpolate using Basis slerping (spherical linear interpolation) where possible, otherwise fall back to lerping. + + + + + Format of transform used to transform mesh, either 2D or 3D. + + + + + If , the will use color data (see ). Can only be set when is 0 or less. This means that you need to call this method before setting the instance count, or temporarily reset it to 0. + + + + + If , the will use custom data (see ). Can only be set when is 0 or less. This means that you need to call this method before setting the instance count, or temporarily reset it to 0. + + + + + Custom AABB for this MultiMesh resource. Setting this manually prevents costly runtime AABB recalculations. + + + + + Number of instances that will get drawn. This clears and (re)sizes the buffers. Setting data format or flags afterwards will have no effect. + By default, all instances are drawn but you can limit this with . + + + + + Limits the number of instances drawn, -1 draws all instances. Changing this does not change the sizes of the buffers. + + + + + resource to be instanced. + The looks of the individual instances can be modified using and . + + + + + Array containing each value used by all instances of this mesh, as a []. Each transform is divided into 4 values corresponding to the transforms' x, y, z, and origin. + + + + + Array containing each value used by all instances of this mesh, as a []. Each transform is divided into 3 values corresponding to the transforms' x, y, and origin. + + + + + Array containing each used by all instances of this mesh. + + + + + Array containing each custom data value used by all instances of this mesh, as a []. + + + + + Choose whether to use an interpolation method that favors speed or quality. + When using low physics tick rates (typically below 20) or high rates of object rotation, you may get better results from the high quality setting. + Note: Fast quality does not equate to low quality. Except in the special cases mentioned above, the quality should be comparable to high quality. + + + + + Sets the for a specific instance. + + + + + Sets the for a specific instance. + + + + + Returns the of a specific instance. + + + + + Returns the of a specific instance. + + + + + Sets the color of a specific instance by multiplying the mesh's existing vertex colors. This allows for different color tinting per instance. + Note: Each component is stored in 32 bits in the Forward+ and Mobile rendering methods, but is packed into 16 bits in the Compatibility rendering method. + For the color to take effect, ensure that is on the and is on the material. If you intend to set an absolute color instead of tinting, make sure the material's albedo color is set to pure white (Color(1, 1, 1)). + + + + + Gets a specific instance's color multiplier. + + + + + Sets custom data for a specific instance. is a type only to contain 4 floating-point numbers. + Note: Each number is stored in 32 bits in the Forward+ and Mobile rendering methods, but is packed into 16 bits in the Compatibility rendering method. + For the custom data to be used, ensure that is . + This custom instance data has to be manually accessed in your custom shader using INSTANCE_CUSTOM. + + + + + Returns the custom data that has been set for a specific instance. + + + + + When using physics interpolation, this function allows you to prevent interpolation on an instance in the current physics tick. + This allows you to move instances instantaneously, and should usually be used when initially placing an instance such as a bullet to prevent graphical glitches. + + + + + Returns the visibility axis-aligned bounding box in local space. + + + + + An alternative to setting the property, which can be used with physics interpolation. This method takes two arrays, and can set the data for the current and previous tick in one go. The renderer will automatically interpolate the data at each frame. + This is useful for situations where the order of instances may change from physics tick to tick, such as particle systems. + When the order of instances is coherent, the simpler alternative of setting can still be used with interpolation. + + + + + An alternative to setting the property, which can be used with physics interpolation. This method takes two arrays, and can set the data for the current and previous tick in one go. The renderer will automatically interpolate the data at each frame. + This is useful for situations where the order of instances may change from physics tick to tick, such as particle systems. + When the order of instances is coherent, the simpler alternative of setting can still be used with interpolation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'transform_format' property. + + + + + Cached name for the 'use_colors' property. + + + + + Cached name for the 'use_custom_data' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'instance_count' property. + + + + + Cached name for the 'visible_instance_count' property. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'buffer' property. + + + + + Cached name for the 'transform_array' property. + + + + + Cached name for the 'transform_2d_array' property. + + + + + Cached name for the 'color_array' property. + + + + + Cached name for the 'custom_data_array' property. + + + + + Cached name for the 'physics_interpolation_quality' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_use_colors' method. + + + + + Cached name for the 'is_using_colors' method. + + + + + Cached name for the 'set_use_custom_data' method. + + + + + Cached name for the 'is_using_custom_data' method. + + + + + Cached name for the 'set_transform_format' method. + + + + + Cached name for the 'get_transform_format' method. + + + + + Cached name for the 'set_instance_count' method. + + + + + Cached name for the 'get_instance_count' method. + + + + + Cached name for the 'set_visible_instance_count' method. + + + + + Cached name for the 'get_visible_instance_count' method. + + + + + Cached name for the 'set_physics_interpolation_quality' method. + + + + + Cached name for the 'get_physics_interpolation_quality' method. + + + + + Cached name for the 'set_instance_transform' method. + + + + + Cached name for the 'set_instance_transform_2d' method. + + + + + Cached name for the 'get_instance_transform' method. + + + + + Cached name for the 'get_instance_transform_2d' method. + + + + + Cached name for the 'set_instance_color' method. + + + + + Cached name for the 'get_instance_color' method. + + + + + Cached name for the 'set_instance_custom_data' method. + + + + + Cached name for the 'get_instance_custom_data' method. + + + + + Cached name for the 'reset_instance_physics_interpolation' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached name for the 'get_buffer' method. + + + + + Cached name for the 'set_buffer' method. + + + + + Cached name for the 'set_buffer_interpolated' method. + + + + + Cached name for the '_set_transform_array' method. + + + + + Cached name for the '_get_transform_array' method. + + + + + Cached name for the '_set_transform_2d_array' method. + + + + + Cached name for the '_get_transform_2d_array' method. + + + + + Cached name for the '_set_color_array' method. + + + + + Cached name for the '_get_color_array' method. + + + + + Cached name for the '_set_custom_data_array' method. + + + + + Cached name for the '_get_custom_data_array' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a specialized node to instance a resource in 2D. + Usage is the same as . + + + + + The that will be drawn by the . + + + + + The that will be used if using the default . Can be accessed as TEXTURE in CanvasItem shader. + + + + + Emitted when the is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'multimesh' property. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_multimesh' method. + + + + + Cached name for the 'get_multimesh' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'texture_changed' signal. + + + + + is a specialized node to instance s based on a 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). + + + + + The resource that will be used and shared among all instances of the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'multimesh' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_multimesh' method. + + + + + Cached name for the 'get_multimesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for high-level multiplayer API implementations. See also . + By default, 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, 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 for details about extensions, for the details about the default implementation. + + + + + Used with to disable a method or property for all RPC calls, making it unavailable. Default for all methods. + + + + + Used with to set a method to be callable remotely by any peer. Analogous to the @rpc("any_peer") annotation. Calls are accepted from all remote peers, no matter if they are node's authority or not. + + + + + Used with to set a method to be callable remotely only by the current multiplayer authority (which is the server by default). Analogous to the @rpc("authority") annotation. See . + + + + + The peer object to handle the RPC system (effectively enabling networking when set). Depending on the peer itself, the MultiplayerAPI will become a network server (check with ) and will set root node's network mode to authority, or it will become a regular client peer. All child nodes are set to inherit the network mode by default. Handling of networking-related events (connection, disconnection, new clients) is done by connecting to MultiplayerAPI's signals. + + + + + Returns if there is a set. + + + + + Returns the unique peer ID of this MultiplayerAPI's . + + + + + Returns if this MultiplayerAPI's is valid and in server mode (listening for connections). + + + + + Returns the sender's peer ID for the RPC currently being executed. + Note: This method returns 0 when called outside of an RPC. As such, the original peer ID may be lost when code execution is delayed (such as with GDScript's await keyword). + + + + + Method used for polling the MultiplayerAPI. You only need to worry about this if you set to . By default, will poll its MultiplayerAPI(s) for you. + Note: This method results in RPCs being called, so they will be executed in the same context of this function (e.g. _process, physics, ). + + + + + Sends an RPC to the target . The given will be called on the remote with the provided . The RPC may also be called locally depending on the implementation and RPC configuration. See and . + Note: Prefer using , , or my_method.rpc(peer, arg1, arg2, ...) (in GDScript), since they are faster. This method is mostly useful in conjunction with when extending or replacing the multiplayer capabilities. + + + + + Notifies the MultiplayerAPI of a new for the given . This method is used internally by to configure the root path for this MultiplayerAPI (passing and a valid as ). This method can be further used by MultiplayerAPI implementations to provide additional features, refer to specific implementation (e.g. ) for details on how they use it. + Note: This method is mostly relevant when extending or overriding the MultiplayerAPI behavior via . + + + + + Notifies the MultiplayerAPI to remove a for the given . This method is used internally by to configure the root path for this MultiplayerAPI (passing and an empty as ). This method can be further used by MultiplayerAPI implementations to provide additional features, refer to specific implementation (e.g. ) for details on how they use it. + Note: This method is mostly relevant when extending or overriding the MultiplayerAPI behavior via . + + + + + Returns the peer IDs of all connected peers of this MultiplayerAPI's . + + + + + Sets the default MultiplayerAPI implementation class. This method can be used by modules and extensions to configure which implementation will be used by when the engine starts. + + + + + Returns the default MultiplayerAPI implementation class name. This is usually "SceneMultiplayer" when is available. See . + + + + + Returns a new instance of the default MultiplayerAPI. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's connects with a new peer. ID is the peer ID of the new peer. Clients get notified when other clients connect to the same server. Upon connecting to a server, a client also receives this signal for the server (with ID being 1). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's disconnects from a peer. Clients get notified when other clients disconnect from the same server. + + + + + Emitted when this MultiplayerAPI's successfully connected to a server. Only emitted on clients. + + + + + Emitted when this MultiplayerAPI's fails to establish a connection to a server. Only emitted on clients. + + + + + Emitted when this MultiplayerAPI's disconnects from server. Only emitted on clients. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'multiplayer_peer' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_multiplayer_peer' method. + + + + + Cached name for the 'get_multiplayer_peer' method. + + + + + Cached name for the 'set_multiplayer_peer' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'is_server' method. + + + + + Cached name for the 'get_remote_sender_id' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'rpc' method. + + + + + Cached name for the 'object_configuration_add' method. + + + + + Cached name for the 'object_configuration_remove' method. + + + + + Cached name for the 'get_peers' method. + + + + + Cached name for the 'set_default_interface' method. + + + + + Cached name for the 'get_default_interface' method. + + + + + Cached name for the 'create_default_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'peer_connected' signal. + + + + + Cached name for the 'peer_disconnected' signal. + + + + + Cached name for the 'connected_to_server' signal. + + + + + Cached name for the 'connection_failed' signal. + + + + + Cached name for the 'server_disconnected' signal. + + + + + This class can be used to extend or replace the default implementation via script or extensions. + The following example extend the default implementation () by logging every RPC being made, and every object being configured for replication. + + Then in your main scene or in an autoload call to start using your custom : + + Native extensions can alternatively use the method during initialization to configure themselves as the default implementation. + + + + + Called when the is retrieved. + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Callback for . + + + + + Called when the is set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_multiplayer_peer' method. + + + + + Cached name for the '_get_peer_ids' method. + + + + + Cached name for the '_get_remote_sender_id' method. + + + + + Cached name for the '_get_unique_id' method. + + + + + Cached name for the '_object_configuration_add' method. + + + + + Cached name for the '_object_configuration_remove' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_rpc' method. + + + + + Cached name for the '_set_multiplayer_peer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Manages the connection with one or more remote peers acting as server or client and assigning unique IDs to each of them. See also . + Note: The protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Packets are sent to all connected peers. + + + + + Packets are sent to the remote peer acting as server. + + + + + The MultiplayerPeer is disconnected. + + + + + The MultiplayerPeer is currently connecting to a server. + + + + + This MultiplayerPeer is connected. + + + + + Packets are not acknowledged, no resend attempts are made for lost packets. Packets may arrive in any order. Potentially faster than . Use for non-critical data, and always consider whether the order matters. + + + + + 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 . 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. + + + + + 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. + + + + + If , this refuses new connections. + + + + + The manner in which to send packets to the target peer. See , and the method. + + + + + The channel to use to send packets. Many network APIs such as ENet and WebRTC allow the creation of multiple independent channels which behaves, in a way, like separate connections. This means that reliable data will only block delivery of other packets on that channel, and ordering will only be in respect to the channel the packet is being sent on. Using different channels to send different and independent state updates is a common way to optimize network usage and decrease latency in fast-paced games. + Note: The default channel (0) actually works as 3 separate channels (one for each ) so that and does not interact with each other by default. Refer to the specific network API documentation (e.g. ENet or WebRTC) to learn how to set up channels correctly. + + + + + Sets the peer to which packets will be sent. + The can be one of: to send to all connected peers, to send to the peer acting as server, a valid peer ID to send to that specific peer, a negative peer ID to send to all peers except that one. By default, the target peer is . + + + + + Returns the ID of the who sent the next available packet. See . + + + + + Returns the channel over which the next available packet was received. See . + + + + + Returns the transfer mode the remote peer used to send the next available packet. See . + + + + + Waits up to 1 second to receive a new network event. + + + + + Immediately close the multiplayer peer returning to the state . Connected peers will be dropped without emitting . + + + + + Disconnects the given from this host. If is the signal will not be emitted for this peer. + + + + + Returns the current state of the connection. See . + + + + + Returns the ID of this . + + + + + Returns a randomly generated integer that can be used as a network unique ID. + + + + + Returns if the server can act as a relay in the current configuration. That is, if the higher level should notify connected clients of other peers, and implement a relay protocol to allow communication between them. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a remote peer connects. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a remote peer has disconnected. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'refuse_new_connections' property. + + + + + Cached name for the 'transfer_mode' property. + + + + + Cached name for the 'transfer_channel' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_transfer_channel' method. + + + + + Cached name for the 'get_transfer_channel' method. + + + + + Cached name for the 'set_transfer_mode' method. + + + + + Cached name for the 'get_transfer_mode' method. + + + + + Cached name for the 'set_target_peer' method. + + + + + Cached name for the 'get_packet_peer' method. + + + + + Cached name for the 'get_packet_channel' method. + + + + + Cached name for the 'get_packet_mode' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'disconnect_peer' method. + + + + + Cached name for the 'get_connection_status' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'generate_unique_id' method. + + + + + Cached name for the 'set_refuse_new_connections' method. + + + + + Cached name for the 'is_refusing_new_connections' method. + + + + + Cached name for the 'is_server_relay_supported' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'peer_connected' signal. + + + + + Cached name for the 'peer_disconnected' signal. + + + + + This class is designed to be inherited from a GDExtension plugin to implement custom networking layers for the multiplayer API (such as WebRTC). All the methods below must be implemented to have a working custom multiplayer implementation. See also . + + + + + Called when the multiplayer peer should be immediately closed (see ). + + + + + Called when the connected should be forcibly disconnected (see ). + + + + + Called when the available packet count is internally requested by the . + + + + + Called when the connection status is requested on the (see ). + + + + + Called when the maximum allowed packet size (in bytes) is requested by the . + + + + + Called to get the channel over which the next available packet was received. See . + + + + + Called to get the transfer mode the remote peer used to send the next available packet. See . + + + + + Called when the ID of the who sent the most recent packet is requested (see ). + + + + + Called when a packet needs to be received by the , if _get_packet isn't implemented. Use this when extending this class via GDScript. + + + + + Called when the transfer channel to use is read on this (see ). + + + + + Called when the transfer mode to use is read on this (see ). + + + + + Called when the unique ID of this is requested (see ). The value must be between 1 and 2147483647. + + + + + Called when the "refuse new connections" status is requested on this (see ). + + + + + Called when the "is server" status is requested on the . See . + + + + + Called to check if the server can act as a relay in the current configuration. See . + + + + + Called when the is polled. See . + + + + + Called when a packet needs to be sent by the , if _put_packet isn't implemented. Use this when extending this class via GDScript. + + + + + Called when the "refuse new connections" status is set on this (see ). + + + + + Called when the target peer to use is set for this (see ). + + + + + Called when the channel to use is set for this (see ). + + + + + Called when the transfer mode is set on this (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_close' method. + + + + + Cached name for the '_disconnect_peer' method. + + + + + Cached name for the '_get_available_packet_count' method. + + + + + Cached name for the '_get_connection_status' method. + + + + + Cached name for the '_get_max_packet_size' method. + + + + + Cached name for the '_get_packet_channel' method. + + + + + Cached name for the '_get_packet_mode' method. + + + + + Cached name for the '_get_packet_peer' method. + + + + + Cached name for the '_get_packet_script' method. + + + + + Cached name for the '_get_transfer_channel' method. + + + + + Cached name for the '_get_transfer_mode' method. + + + + + Cached name for the '_get_unique_id' method. + + + + + Cached name for the '_is_refusing_new_connections' method. + + + + + Cached name for the '_is_server' method. + + + + + Cached name for the '_is_server_relay_supported' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_put_packet_script' method. + + + + + Cached name for the '_set_refuse_new_connections' method. + + + + + Cached name for the '_set_target_peer' method. + + + + + Cached name for the '_set_transfer_channel' method. + + + + + Cached name for the '_set_transfer_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Spawnable scenes can be configured in the editor or through code (see ). + Also supports custom node spawns through , calling on all peers. + Internally, uses to notify spawns passing the spawned node as the object and itself as the configuration, and to notify despawns in a similar way. + + + + + Path to the spawn root. Spawnable scenes that are added as direct children are replicated to other peers. + + + + + Maximum number of nodes allowed to be spawned by this spawner. Includes both spawnable scenes and custom spawns. + When set to 0 (the default), there is no limit. + + + + + Method called on all peers when a custom is requested by the authority. Will receive the data parameter, and should return a that is not in the scene tree. + Note: The returned node should not be added to the scene with . This is done automatically. + + + + + Adds a scene path to spawnable scenes, making it automatically replicated from the multiplayer authority to other peers when added as children of the node pointed by . + + + + + Returns the count of spawnable scene paths. + + + + + Returns the spawnable scene path by index. + + + + + Clears all spawnable scenes. Does not despawn existing instances on remote peers. + + + + + Requests a custom spawn, with passed to on all peers. Returns the locally spawned node instance already inside the scene tree, and added as a child of the node pointed by . + Note: Spawnable scenes are spawned automatically. is only needed for custom spawns. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a spawnable scene or custom spawn was despawned by the multiplayer authority. Only called on remote peers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a spawnable scene or custom spawn was spawned by the multiplayer authority. Only called on remote peers. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_spawnable_scenes' property. + + + + + Cached name for the 'spawn_path' property. + + + + + Cached name for the 'spawn_limit' property. + + + + + Cached name for the 'spawn_function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_spawnable_scene' method. + + + + + Cached name for the 'get_spawnable_scene_count' method. + + + + + Cached name for the 'get_spawnable_scene' method. + + + + + Cached name for the 'clear_spawnable_scenes' method. + + + + + Cached name for the '_get_spawnable_scenes' method. + + + + + Cached name for the '_set_spawnable_scenes' method. + + + + + Cached name for the 'spawn' method. + + + + + Cached name for the 'get_spawn_path' method. + + + + + Cached name for the 'set_spawn_path' method. + + + + + Cached name for the 'get_spawn_limit' method. + + + + + Cached name for the 'set_spawn_limit' method. + + + + + Cached name for the 'get_spawn_function' method. + + + + + Cached name for the 'set_spawn_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'despawned' signal. + + + + + Cached name for the 'spawned' signal. + + + + + By default, synchronizes configured properties to all peers. + Visibility can be handled directly with or as-needed with and . + s will handle nodes according to visibility of synchronizers as long as the node at was spawned by one. + Internally, uses to notify synchronization start passing the at as the object and itself as the configuration, and uses to notify synchronization end in a similar way. + Note: Synchronization is not supported for type properties, like . Properties that are unique to each peer, like the instance IDs of s (see ) or s, will also not work in synchronization. + + + + + Visibility filters are updated during process frames (see ). + + + + + Visibility filters are updated during physics frames (see ). + + + + + Visibility filters are not updated automatically, and must be updated manually by calling . + + + + + Node path that replicated properties are relative to. + If was spawned by a , the node will be also be spawned and despawned based on this synchronizer visibility options. + + + + + Time interval between synchronizations. Used when the replication is set to . If set to 0.0 (the default), synchronizations happen every network process frame. + + + + + Time interval between delta synchronizations. Used when the replication is set to . If set to 0.0 (the default), delta synchronizations happen every network process frame. + + + + + Resource containing which properties to synchronize. + + + + + Specifies when visibility filters are updated (see for options). + + + + + Whether synchronization should be visible to all peers by default. See and for ways of configuring fine-grained visibility options. + + + + + Updates the visibility of according to visibility filters. If is 0 (the default), all peers' visibilties are updated. + + + + + Adds a peer visibility filter for this synchronizer. + should take a peer ID and return a . + + + + + Removes a peer visibility filter from this synchronizer. + + + + + Sets the visibility of to . If is 0, the value of will be updated instead. + + + + + Queries the current visibility for peer . + + + + + Emitted when a new synchronization state is received by this synchronizer after the properties have been updated. + + + + + Emitted when a new delta synchronization state is received by this synchronizer after the properties have been updated. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when visibility of forPeer is updated. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_path' property. + + + + + Cached name for the 'replication_interval' property. + + + + + Cached name for the 'delta_interval' property. + + + + + Cached name for the 'replication_config' property. + + + + + Cached name for the 'visibility_update_mode' property. + + + + + Cached name for the 'public_visibility' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_path' method. + + + + + Cached name for the 'get_root_path' method. + + + + + Cached name for the 'set_replication_interval' method. + + + + + Cached name for the 'get_replication_interval' method. + + + + + Cached name for the 'set_delta_interval' method. + + + + + Cached name for the 'get_delta_interval' method. + + + + + Cached name for the 'set_replication_config' method. + + + + + Cached name for the 'get_replication_config' method. + + + + + Cached name for the 'set_visibility_update_mode' method. + + + + + Cached name for the 'get_visibility_update_mode' method. + + + + + Cached name for the 'update_visibility' method. + + + + + Cached name for the 'set_visibility_public' method. + + + + + Cached name for the 'is_visibility_public' method. + + + + + Cached name for the 'add_visibility_filter' method. + + + + + Cached name for the 'remove_visibility_filter' method. + + + + + Cached name for the 'set_visibility_for' method. + + + + + Cached name for the 'get_visibility_for' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'synchronized' signal. + + + + + Cached name for the 'delta_synchronized' signal. + + + + + Cached name for the 'visibility_changed' signal. + + + + + A synchronization mutex (mutual exclusion). This is used to synchronize multiple s, and is equivalent to a binary . It guarantees that only one thread can access a critical section at a time. + This is a reentrant mutex, meaning that it can be locked multiple times by one thread, provided it also unlocks it as many times. + Warning: Mutexes must be used carefully to avoid deadlocks. + Warning: To ensure proper cleanup without crashes or deadlocks, the following conditions must be met: + - When a '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 's reference count reaches zero and it is therefore destroyed, it must not have any mutex locked. + + + + + Locks this , blocks until it is unlocked by the current owner. + Note: This function returns without blocking if the thread already has ownership of the mutex. + + + + + Tries locking this , but does not block. Returns on success, otherwise. + Note: This function returns if the thread already has ownership of the mutex. + + + + + Unlocks this , leaving it to other threads. + Note: If a thread called or multiple times while already having ownership of the mutex, it must also call the same number of times in order to unlock it correctly. + Warning: Calling more times that on a given thread, thus ending up trying to unlock a non-locked mutex, is wrong and may causes crashes or deadlocks. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'lock' method. + + + + + Cached name for the 'try_lock' method. + + + + + Cached name for the 'unlock' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles low-level access to the OS native global menu bar and popup menus. + Note: This is low-level API, consider using with set to , and with set to . + To create a menu, use , add menu items using add_*_item methods. To remove a menu, use . + + var menu + + func _menu_callback(item_id): + if item_id == "ITEM_CUT": + cut() + elif item_id == "ITEM_COPY": + copy() + elif item_id == "ITEM_PASTE": + paste() + + func _enter_tree(): + # Create new menu and add items: + menu = NativeMenu.create_menu() + NativeMenu.add_item(menu, "Cut", _menu_callback, Callable(), "ITEM_CUT") + NativeMenu.add_item(menu, "Copy", _menu_callback, Callable(), "ITEM_COPY") + NativeMenu.add_separator(menu) + NativeMenu.add_item(menu, "Paste", _menu_callback, Callable(), "ITEM_PASTE") + + func _on_button_pressed(): + # Show popup menu at mouse position: + NativeMenu.popup(menu, DisplayServer.mouse_get_position()) + + func _exit_tree(): + # Remove menu when it's no longer needed: + NativeMenu.free_menu(menu) + + + + + + supports native global main menu. + + + + + supports native popup menus. + + + + + supports menu open and close callbacks. + + + + + supports menu item hover callback. + + + + + supports menu item accelerator/key callback. + + + + + Invalid special system menu ID. + + + + + Global main menu ID. + + + + + Application (first menu after "Apple" menu on macOS) menu ID. + + + + + "Window" menu ID (on macOS this menu includes standard window control items and a list of open windows). + + + + + "Help" menu ID (on macOS this menu includes help search bar). + + + + + Dock icon right-click menu ID (on macOS this menu include standard application control items and a list of open windows). + + + + + Returns if the specified is supported by the current , otherwise. + Note: This method is implemented on macOS and Windows. + + + + + Returns if a special system menu is supported. + Note: This method is implemented only on macOS. + + + + + Returns RID of a special system menu. + Note: This method is implemented only on macOS. + + + + + Returns readable name of a special system menu. + Note: This method is implemented only on macOS. + + + + + Creates a new global menu object. + Note: This method is implemented on macOS and Windows. + + + + + Returns if is valid global menu. + Note: This method is implemented on macOS and Windows. + + + + + Frees a global menu object created by this . + Note: This method is implemented on macOS and Windows. + + + + + Returns global menu size. + Note: This method is implemented on macOS and Windows. + + + + + Shows the global menu at in the screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Sets the menu text layout direction from right-to-left if is . + Note: This method is implemented on macOS and Windows. + + + + + Registers callable to emit after the menu is closed. + Note: This method is implemented only on macOS. + + + + + Returns global menu open callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Registers callable to emit when the menu is about to show. + Note: The OS can simulate menu opening to track menu item changes and global shortcuts, in which case the corresponding close callback is not triggered. Use to check if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Returns global menu close callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Sets the minimum width of the global menu. + Note: This method is implemented only on macOS. + + + + + Returns global menu minimum width. + Note: This method is implemented only on macOS. + + + + + Returns if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the RID of the global menu that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Adds a new item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text to the global menu . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a separator between items to the global menu . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the submenu specified by . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checked. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Returns the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented on macOS and Windows. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns the icon of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented on macOS and Windows. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Sets the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets the submenu RID of the item at index . The submenu is a global menu that would be shown when the item is clicked. + Note: This method is implemented on macOS and Windows. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented on macOS and Windows. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Replaces the icon of the specified . + Note: This method is implemented on macOS and Windows. + Note: This method is not supported by macOS Dock menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Return is global menu is a special system menu. + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented on macOS and Windows. + + + + + Removes all items from the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'has_system_menu' method. + + + + + Cached name for the 'get_system_menu' method. + + + + + Cached name for the 'get_system_menu_name' method. + + + + + Cached name for the 'create_menu' method. + + + + + Cached name for the 'has_menu' method. + + + + + Cached name for the 'free_menu' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'popup' method. + + + + + Cached name for the 'set_interface_direction' method. + + + + + Cached name for the 'set_popup_open_callback' method. + + + + + Cached name for the 'get_popup_open_callback' method. + + + + + Cached name for the 'set_popup_close_callback' method. + + + + + Cached name for the 'get_popup_close_callback' method. + + + + + Cached name for the 'set_minimum_width' method. + + + + + Cached name for the 'get_minimum_width' method. + + + + + Cached name for the 'is_opened' method. + + + + + Cached name for the 'add_submenu_item' method. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_check_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'add_icon_check_item' method. + + + + + Cached name for the 'add_radio_check_item' method. + + + + + Cached name for the 'add_icon_radio_check_item' method. + + + + + Cached name for the 'add_multistate_item' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'find_item_index_with_text' method. + + + + + Cached name for the 'find_item_index_with_tag' method. + + + + + Cached name for the 'find_item_index_with_submenu' method. + + + + + Cached name for the 'is_item_checked' method. + + + + + Cached name for the 'is_item_checkable' method. + + + + + Cached name for the 'is_item_radio_checkable' method. + + + + + Cached name for the 'get_item_callback' method. + + + + + Cached name for the 'get_item_key_callback' method. + + + + + Cached name for the 'get_item_tag' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_submenu' method. + + + + + Cached name for the 'get_item_accelerator' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'is_item_hidden' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'get_item_state' method. + + + + + Cached name for the 'get_item_max_states' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_indentation_level' method. + + + + + Cached name for the 'set_item_checked' method. + + + + + Cached name for the 'set_item_checkable' method. + + + + + Cached name for the 'set_item_radio_checkable' method. + + + + + Cached name for the 'set_item_callback' method. + + + + + Cached name for the 'set_item_hover_callbacks' method. + + + + + Cached name for the 'set_item_key_callback' method. + + + + + Cached name for the 'set_item_tag' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_submenu' method. + + + + + Cached name for the 'set_item_accelerator' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_hidden' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'set_item_state' method. + + + + + Cached name for the 'set_item_max_states' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_indentation_level' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'is_system_menu' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + handles low-level access to the OS native global menu bar and popup menus. + Note: This is low-level API, consider using with set to , and with set to . + To create a menu, use , add menu items using add_*_item methods. To remove a menu, use . + + var menu + + func _menu_callback(item_id): + if item_id == "ITEM_CUT": + cut() + elif item_id == "ITEM_COPY": + copy() + elif item_id == "ITEM_PASTE": + paste() + + func _enter_tree(): + # Create new menu and add items: + menu = NativeMenu.create_menu() + NativeMenu.add_item(menu, "Cut", _menu_callback, Callable(), "ITEM_CUT") + NativeMenu.add_item(menu, "Copy", _menu_callback, Callable(), "ITEM_COPY") + NativeMenu.add_separator(menu) + NativeMenu.add_item(menu, "Paste", _menu_callback, Callable(), "ITEM_PASTE") + + func _on_button_pressed(): + # Show popup menu at mouse position: + NativeMenu.popup(menu, DisplayServer.mouse_get_position()) + + func _exit_tree(): + # Remove menu when it's no longer needed: + NativeMenu.free_menu(menu) + + + + + + Returns if the specified is supported by the current , otherwise. + Note: This method is implemented on macOS and Windows. + + + + + Returns if a special system menu is supported. + Note: This method is implemented only on macOS. + + + + + Returns RID of a special system menu. + Note: This method is implemented only on macOS. + + + + + Returns readable name of a special system menu. + Note: This method is implemented only on macOS. + + + + + Creates a new global menu object. + Note: This method is implemented on macOS and Windows. + + + + + Returns if is valid global menu. + Note: This method is implemented on macOS and Windows. + + + + + Frees a global menu object created by this . + Note: This method is implemented on macOS and Windows. + + + + + Returns global menu size. + Note: This method is implemented on macOS and Windows. + + + + + Shows the global menu at in the screen coordinates. + Note: This method is implemented on macOS and Windows. + + + + + Sets the menu text layout direction from right-to-left if is . + Note: This method is implemented on macOS and Windows. + + + + + Registers callable to emit after the menu is closed. + Note: This method is implemented only on macOS. + + + + + Returns global menu open callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Registers callable to emit when the menu is about to show. + Note: The OS can simulate menu opening to track menu item changes and global shortcuts, in which case the corresponding close callback is not triggered. Use to check if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Returns global menu close callback. + b]Note:[/b] This method is implemented only on macOS. + + + + + Sets the minimum width of the global menu. + Note: This method is implemented only on macOS. + + + + + Returns global menu minimum width. + Note: This method is implemented only on macOS. + + + + + Returns if the menu is currently opened. + Note: This method is implemented only on macOS. + + + + + Adds an item that will act as a submenu of the global menu . The argument is the RID of the global menu that will be shown when the item is clicked. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Adds a new item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new radio-checkable item with text and icon to the global menu . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: Radio-checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a new item with text to the global menu . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . Each press or activate of the item will increase the state by one. The default value is defined by . + Returns index of the inserted item, it's not guaranteed to be the same as value. + An can optionally be defined, which is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: By default, there's no indication of the current item state, it should be changed manually. + Note: The and Callables need to accept exactly one Variant parameter, the parameter passed to the Callables will be the value passed to . + Note: This method is implemented on macOS and Windows. + Note: On Windows, and are ignored. + + + + + Adds a separator between items to the global menu . Separators also occupy an index. + Returns index of the inserted item, it's not guaranteed to be the same as value. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the specified . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns the index of the item with the submenu specified by . Indices are automatically assigned to each item by the engine, and cannot be set manually. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checked. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is checkable in some way, i.e. if it has a checkbox or radio button. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the callback of the item accelerator at index . + Note: This method is implemented only on macOS. + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Returns the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the submenu ID of the item at index . See for more info on how to add a submenu. + Note: This method is implemented on macOS and Windows. + + + + + Returns the accelerator of the item at index . Accelerators are special combinations of keys that activate the item, no matter which control is focused. + Note: This method is implemented only on macOS. + + + + + Returns if the item at index is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + Note: This method is implemented on macOS and Windows. + + + + + Returns if the item at index is hidden. + See for more info on how to hide an item. + Note: This method is implemented only on macOS. + + + + + Returns the tooltip associated with the specified index . + Note: This method is implemented only on macOS. + + + + + Returns the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns number of states of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Returns the icon of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Returns the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Sets the checkstate status of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets whether the item at index has a checkbox. If , sets the type of the item to plain text. + Note: This method is implemented on macOS and Windows. + + + + + Sets the type of the item at the specified index to radio button. If , sets the type of the item to plain text. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . Callback is emitted when an item is pressed. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented on macOS and Windows. + + + + + Sets the callback of the item at index . The callback is emitted when an item is hovered. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the callback of the item at index . Callback is emitted when its accelerator is activated. + Note: The Callable needs to accept exactly one Variant parameter, the parameter passed to the Callable will be the value passed to the tag parameter when the menu item was created. + Note: This method is implemented only on macOS. + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + Note: This method is implemented on macOS and Windows. + + + + + Sets the text of the item at index . + Note: This method is implemented on macOS and Windows. + + + + + Sets the submenu RID of the item at index . The submenu is a global menu that would be shown when the item is clicked. + Note: This method is implemented on macOS and Windows. + + + + + Sets the accelerator of the item at index . can be a single , or a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + Note: This method is implemented only on macOS. + + + + + Enables/disables the item at index . When it is disabled, it can't be selected and its action can't be invoked. + Note: This method is implemented on macOS and Windows. + + + + + Hides/shows the item at index . When it is hidden, an item does not appear in a menu and its action cannot be invoked. + Note: This method is implemented only on macOS. + + + + + Sets the tooltip of the item at the specified index . + Note: This method is implemented only on macOS. + + + + + Sets the state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Sets number of state of a multistate item. See for details. + Note: This method is implemented on macOS and Windows. + + + + + Replaces the icon of the specified . + Note: This method is implemented on macOS and Windows. + Note: This method is not supported by macOS Dock menu items. + + + + + Sets the horizontal offset of the item at the given . + Note: This method is implemented only on macOS. + + + + + Returns number of items in the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Return is global menu is a special system menu. + Note: This method is implemented only on macOS. + + + + + Removes the item at index from the global menu . + Note: The indices of items after the removed item will be shifted by one. + Note: This method is implemented on macOS and Windows. + + + + + Removes all items from the global menu . + Note: This method is implemented on macOS and Windows. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'has_system_menu' method. + + + + + Cached name for the 'get_system_menu' method. + + + + + Cached name for the 'get_system_menu_name' method. + + + + + Cached name for the 'create_menu' method. + + + + + Cached name for the 'has_menu' method. + + + + + Cached name for the 'free_menu' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'popup' method. + + + + + Cached name for the 'set_interface_direction' method. + + + + + Cached name for the 'set_popup_open_callback' method. + + + + + Cached name for the 'get_popup_open_callback' method. + + + + + Cached name for the 'set_popup_close_callback' method. + + + + + Cached name for the 'get_popup_close_callback' method. + + + + + Cached name for the 'set_minimum_width' method. + + + + + Cached name for the 'get_minimum_width' method. + + + + + Cached name for the 'is_opened' method. + + + + + Cached name for the 'add_submenu_item' method. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_check_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'add_icon_check_item' method. + + + + + Cached name for the 'add_radio_check_item' method. + + + + + Cached name for the 'add_icon_radio_check_item' method. + + + + + Cached name for the 'add_multistate_item' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'find_item_index_with_text' method. + + + + + Cached name for the 'find_item_index_with_tag' method. + + + + + Cached name for the 'find_item_index_with_submenu' method. + + + + + Cached name for the 'is_item_checked' method. + + + + + Cached name for the 'is_item_checkable' method. + + + + + Cached name for the 'is_item_radio_checkable' method. + + + + + Cached name for the 'get_item_callback' method. + + + + + Cached name for the 'get_item_key_callback' method. + + + + + Cached name for the 'get_item_tag' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_submenu' method. + + + + + Cached name for the 'get_item_accelerator' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'is_item_hidden' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'get_item_state' method. + + + + + Cached name for the 'get_item_max_states' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_indentation_level' method. + + + + + Cached name for the 'set_item_checked' method. + + + + + Cached name for the 'set_item_checkable' method. + + + + + Cached name for the 'set_item_radio_checkable' method. + + + + + Cached name for the 'set_item_callback' method. + + + + + Cached name for the 'set_item_hover_callbacks' method. + + + + + Cached name for the 'set_item_key_callback' method. + + + + + Cached name for the 'set_item_tag' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_submenu' method. + + + + + Cached name for the 'set_item_accelerator' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_hidden' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'set_item_state' method. + + + + + Cached name for the 'set_item_max_states' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_indentation_level' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'is_system_menu' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D agent used to pathfind to a position while avoiding static and dynamic obstacles. The calculation can be used by the parent node to dynamically move it along the path. Requires navigation data to work correctly. + Dynamic obstacles are avoided using RVO collision avoidance. Avoidance is computed before physics, so the pathfinding information can be used safely in the physics step. + Note: After setting the property, the 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. + + + + + If set, a new navigation path from the current agent position to the is requested from the NavigationServer. + + + + + The distance threshold before a path point is considered to be reached. This allows agents to not have to hit a path point on the path exactly, but only to reach its general area. If this value is set too high, the NavigationAgent will skip points on the path, which can lead to it leaving the navigation mesh. If this value is set too low, the NavigationAgent will be stuck in a repath loop because it will constantly overshoot the distance to the next point on each physics frame update. + + + + + The distance threshold before the target is considered to be reached. On reaching the target, is emitted and navigation ends (see and ). + You can make navigation end early by setting this property to a value greater than (navigation will end before reaching the last waypoint). + You can also make navigation end closer to the target than each individual path position by setting this property to a value lower than (navigation won't immediately end when reaching the last waypoint). However, if the value set is too low, the agent will be stuck in a repath loop because it will constantly overshoot the distance to the target on each physics frame update. + + + + + The maximum distance the agent is allowed away from the ideal path to the final position. This can happen due to trying to avoid collisions. When the maximum distance is exceeded, it recalculates the ideal path. + + + + + A bitfield determining which navigation layers of navigation regions this agent will use to calculate a path. Changing it during runtime will clear the current navigation path and generate a new one, according to the new navigation layers. + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to return with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + If the agent is registered for an RVO avoidance callback on the . When is used and the processing is completed a safe_velocity Vector2 is received with a signal connection to . Avoidance processing with many registered agents has a significant performance cost and should only be enabled on agents that currently require it. + + + + + Sets the new wanted velocity for the agent. The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agents and obstacles. When an agent is teleported to a new position, use as well to reset the internal simulation velocity. + + + + + The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by ). + Does not affect normal pathfinding. To change an actor's pathfinding radius bake resources with a different property and use different navigation maps for each actor size. + + + + + The distance to search for other agents. + + + + + The maximum number of neighbors for the agent to consider. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to static avoidance obstacles. The larger the number, the sooner the agent will respond to static avoidance obstacles, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The maximum speed that an agent can move. + + + + + A bitfield determining the avoidance layers for this NavigationAgent. Other agents with a matching bit on the will avoid this agent. + + + + + A bitfield determining what other avoidance agents and obstacles this NavigationAgent will avoid when a bit matches at least one of their . + + + + + The agent does not adjust the velocity for other agents that would match the but have a lower . This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + If shows debug visuals for this agent. + + + + + If uses the defined for this agent instead of global color. + + + + + If is uses this color for this agent instead of global color. + + + + + If is uses this rasterized point size for rendering path points for this agent instead of global point size. + + + + + If is uses this line width for rendering paths for this agent instead of global line width. + + + + + Returns the of this agent on the . + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the of the navigation map this NavigationAgent node should use and also updates the agent on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationAgent node. This function returns always the map set on the NavigationAgent node and not the map of the abstract agent on the NavigationServer. If the agent map is changed directly with the NavigationServer API the NavigationAgent node will not be aware of the map change. Use to change the navigation map for the NavigationAgent and also update the agent on the NavigationServer. + + + + + Returns the next position in global coordinates that can be moved to, making sure that there are no static objects in the way. If the agent does not have a navigation path, it will return the position of the agent's parent. The use of this function once every physics frame is required to update the internal path logic of the NavigationAgent. + + + + + Replaces the internal velocity in the collision avoidance simulation with . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Returns the distance to the target position, using the agent's global position. The user must set in order for this to be accurate. + + + + + Returns the path query result for the path the agent is currently following. + + + + + Returns this agent's current path from start to finish in global coordinates. The path only updates when the target position is changed or the agent requires a repath. The path array is not intended to be used in direct path movement as the agent has its own internal path logic that would get corrupted by changing the path array manually. Use the intended once every physics frame to receive the next path point for the agents movement as this function also updates the internal path logic. + + + + + Returns which index the agent is currently on in the navigation path's []. + + + + + Returns if the agent reached the target, i.e. the agent moved within of the . It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Returns if is within of the . + + + + + Returns if the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. + Note: While prefer to stop calling update functions like . This avoids jittering the standing agent due to calling repeated path updates. + + + + + Returns the reachable final position of the current navigation path in global coordinates. This position can change if the agent needs to update the navigation path which makes the agent emit the signal. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified mask in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified mask of the bitmask is enabled, given a between 1 and 32. + + + + + Emitted when the agent had to update the loaded path: + - because path was previously empty. + - because navigation map has changed. + - because agent pushed further away from the current path segment than the . + + + + + Signals that the agent reached the target, i.e. the agent moved within of the . This signal is emitted only once per loaded path. + This signal will be emitted just before when the target is reachable. + It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a waypoint. Emitted when the agent moves within of the next position of the path. + The details dictionary may contain the following keys depending on the value of : + - position: The position of the waypoint that was reached. + - type: The type of navigation primitive (region or link) that contains this waypoint. + - rid: The of the containing navigation primitive (region or link). + - owner: The object which manages the containing navigation primitive (region or link). + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a navigation link. Emitted when the agent moves within of the next position of the path when that position is a navigation link. + The details dictionary may contain the following keys depending on the value of : + - position: The start position of the link that was reached. + - type: Always . + - rid: The of the link. + - owner: The object which manages the link (usually ). + - link_entry_position: If owner is available and the owner is a , it will contain the global position of the link's point the agent is entering. + - link_exit_position: If owner is available and the owner is a , it will contain the global position of the link's point which the agent is exiting. + + + + + Signals that the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. This signal is emitted only once per loaded path. + This signal will be emitted just after when the target is reachable. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when the collision avoidance velocity is calculated. Emitted every update as long as is and the agent has a navigation map. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'path_desired_distance' property. + + + + + Cached name for the 'target_desired_distance' property. + + + + + Cached name for the 'path_max_distance' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'path_metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'neighbor_distance' property. + + + + + Cached name for the 'max_neighbors' property. + + + + + Cached name for the 'time_horizon_agents' property. + + + + + Cached name for the 'time_horizon_obstacles' property. + + + + + Cached name for the 'max_speed' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached name for the 'avoidance_mask' property. + + + + + Cached name for the 'avoidance_priority' property. + + + + + Cached name for the 'debug_enabled' property. + + + + + Cached name for the 'debug_use_custom' property. + + + + + Cached name for the 'debug_path_custom_color' property. + + + + + Cached name for the 'debug_path_custom_point_size' property. + + + + + Cached name for the 'debug_path_custom_line_width' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_path_desired_distance' method. + + + + + Cached name for the 'get_path_desired_distance' method. + + + + + Cached name for the 'set_target_desired_distance' method. + + + + + Cached name for the 'get_target_desired_distance' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_neighbor_distance' method. + + + + + Cached name for the 'get_neighbor_distance' method. + + + + + Cached name for the 'set_max_neighbors' method. + + + + + Cached name for the 'get_max_neighbors' method. + + + + + Cached name for the 'set_time_horizon_agents' method. + + + + + Cached name for the 'get_time_horizon_agents' method. + + + + + Cached name for the 'set_time_horizon_obstacles' method. + + + + + Cached name for the 'get_time_horizon_obstacles' method. + + + + + Cached name for the 'set_max_speed' method. + + + + + Cached name for the 'get_max_speed' method. + + + + + Cached name for the 'set_path_max_distance' method. + + + + + Cached name for the 'get_path_max_distance' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_path_metadata_flags' method. + + + + + Cached name for the 'get_path_metadata_flags' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached name for the 'get_next_path_position' method. + + + + + Cached name for the 'set_velocity_forced' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'distance_to_target' method. + + + + + Cached name for the 'get_current_navigation_result' method. + + + + + Cached name for the 'get_current_navigation_path' method. + + + + + Cached name for the 'get_current_navigation_path_index' method. + + + + + Cached name for the 'is_target_reached' method. + + + + + Cached name for the 'is_target_reachable' method. + + + + + Cached name for the 'is_navigation_finished' method. + + + + + Cached name for the 'get_final_position' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_mask' method. + + + + + Cached name for the 'get_avoidance_mask' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_avoidance_mask_value' method. + + + + + Cached name for the 'get_avoidance_mask_value' method. + + + + + Cached name for the 'set_avoidance_priority' method. + + + + + Cached name for the 'get_avoidance_priority' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'set_debug_use_custom' method. + + + + + Cached name for the 'get_debug_use_custom' method. + + + + + Cached name for the 'set_debug_path_custom_color' method. + + + + + Cached name for the 'get_debug_path_custom_color' method. + + + + + Cached name for the 'set_debug_path_custom_point_size' method. + + + + + Cached name for the 'get_debug_path_custom_point_size' method. + + + + + Cached name for the 'set_debug_path_custom_line_width' method. + + + + + Cached name for the 'get_debug_path_custom_line_width' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'path_changed' signal. + + + + + Cached name for the 'target_reached' signal. + + + + + Cached name for the 'waypoint_reached' signal. + + + + + Cached name for the 'link_reached' signal. + + + + + Cached name for the 'navigation_finished' signal. + + + + + Cached name for the 'velocity_computed' signal. + + + + + A 3D agent used to pathfind to a position while avoiding static and dynamic obstacles. The calculation can be used by the parent node to dynamically move it along the path. Requires navigation data to work correctly. + Dynamic obstacles are avoided using RVO collision avoidance. Avoidance is computed before physics, so the pathfinding information can be used safely in the physics step. + Note: After setting the property, the 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. + + + + + If set, a new navigation path from the current agent position to the is requested from the NavigationServer. + + + + + The distance threshold before a path point is considered to be reached. This allows agents to not have to hit a path point on the path exactly, but only to reach its general area. If this value is set too high, the NavigationAgent will skip points on the path, which can lead to it leaving the navigation mesh. If this value is set too low, the NavigationAgent will be stuck in a repath loop because it will constantly overshoot the distance to the next point on each physics frame update. + + + + + The distance threshold before the target is considered to be reached. On reaching the target, is emitted and navigation ends (see and ). + You can make navigation end early by setting this property to a value greater than (navigation will end before reaching the last waypoint). + You can also make navigation end closer to the target than each individual path position by setting this property to a value lower than (navigation won't immediately end when reaching the last waypoint). However, if the value set is too low, the agent will be stuck in a repath loop because it will constantly overshoot the distance to the target on each physics frame update. + + + + + The height offset is subtracted from the y-axis value of any vector path position for this NavigationAgent. The NavigationAgent height offset does not change or influence the navigation mesh or pathfinding query result. Additional navigation maps that use regions with navigation meshes that the developer baked with appropriate agent radius or height values are required to support different-sized agents. + + + + + The maximum distance the agent is allowed away from the ideal path to the final position. This can happen due to trying to avoid collisions. When the maximum distance is exceeded, it recalculates the ideal path. + + + + + A bitfield determining which navigation layers of navigation regions this agent will use to calculate a path. Changing it during runtime will clear the current navigation path and generate a new one, according to the new navigation layers. + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to return with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + If the agent is registered for an RVO avoidance callback on the . When is set and the processing is completed a safe_velocity Vector3 is received with a signal connection to . Avoidance processing with many registered agents has a significant performance cost and should only be enabled on agents that currently require it. + + + + + Sets the new wanted velocity for the agent. The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agents and obstacles. When an agent is teleported to a new position, use as well to reset the internal simulation velocity. + + + + + The height of the avoidance agent. Agents will ignore other agents or obstacles that are above or below their current position + height in 2D avoidance. Does nothing in 3D avoidance which uses radius spheres alone. + + + + + The radius of the avoidance agent. This is the "body" of the avoidance agent and not the avoidance maneuver starting radius (which is controlled by ). + Does not affect normal pathfinding. To change an actor's pathfinding radius bake resources with a different property and use different navigation maps for each actor size. + + + + + The distance to search for other agents. + + + + + The maximum number of neighbors for the agent to consider. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to other agents. The larger the number, the sooner the agent will respond to other agents, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The minimal amount of time for which this agent's velocities, that are computed with the collision avoidance algorithm, are safe with respect to static avoidance obstacles. The larger the number, the sooner the agent will respond to static avoidance obstacles, but less freedom in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + The maximum speed that an agent can move. + + + + + If , the agent calculates avoidance velocities in 3D omnidirectionally, e.g. for games that take place in air, underwater or space. Agents using 3D avoidance only avoid other agents using 3D avoidance, and react to radius-based avoidance obstacles. They ignore any vertex-based obstacles. + If , the agent calculates avoidance velocities in 2D along the x and z-axes, ignoring the y-axis. Agents using 2D avoidance only avoid other agents using 2D avoidance, and react to radius-based avoidance obstacles or vertex-based avoidance obstacles. Other agents using 2D avoidance that are below or above their current position including are ignored. + + + + + If , and the agent uses 2D avoidance, it will remember the set y-axis velocity and reapply it after the avoidance step. While 2D avoidance has no y-axis and simulates on a flat plane this setting can help to soften the most obvious clipping on uneven 3D geometry. + + + + + A bitfield determining the avoidance layers for this NavigationAgent. Other agents with a matching bit on the will avoid this agent. + + + + + A bitfield determining what other avoidance agents and obstacles this NavigationAgent will avoid when a bit matches at least one of their . + + + + + The agent does not adjust the velocity for other agents that would match the but have a lower . This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + If shows debug visuals for this agent. + + + + + If uses the defined for this agent instead of global color. + + + + + If is uses this color for this agent instead of global color. + + + + + If is uses this rasterized point size for rendering path points for this agent instead of global point size. + + + + + Returns the of this agent on the . + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the of the navigation map this NavigationAgent node should use and also updates the agent on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationAgent node. This function returns always the map set on the NavigationAgent node and not the map of the abstract agent on the NavigationServer. If the agent map is changed directly with the NavigationServer API the NavigationAgent node will not be aware of the map change. Use to change the navigation map for the NavigationAgent and also update the agent on the NavigationServer. + + + + + Returns the next position in global coordinates that can be moved to, making sure that there are no static objects in the way. If the agent does not have a navigation path, it will return the position of the agent's parent. The use of this function once every physics frame is required to update the internal path logic of the NavigationAgent. + + + + + Replaces the internal velocity in the collision avoidance simulation with . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Returns the distance to the target position, using the agent's global position. The user must set in order for this to be accurate. + + + + + Returns the path query result for the path the agent is currently following. + + + + + Returns this agent's current path from start to finish in global coordinates. The path only updates when the target position is changed or the agent requires a repath. The path array is not intended to be used in direct path movement as the agent has its own internal path logic that would get corrupted by changing the path array manually. Use the intended once every physics frame to receive the next path point for the agents movement as this function also updates the internal path logic. + + + + + Returns which index the agent is currently on in the navigation path's []. + + + + + Returns if the agent reached the target, i.e. the agent moved within of the . It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Returns if is within of the . + + + + + Returns if the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. + Note: While prefer to stop calling update functions like . This avoids jittering the standing agent due to calling repeated path updates. + + + + + Returns the reachable final position of the current navigation path in global coordinates. This position can change if the agent needs to update the navigation path which makes the agent emit the signal. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified mask in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified mask of the bitmask is enabled, given a between 1 and 32. + + + + + Emitted when the agent had to update the loaded path: + - because path was previously empty. + - because navigation map has changed. + - because agent pushed further away from the current path segment than the . + + + + + Signals that the agent reached the target, i.e. the agent moved within of the . This signal is emitted only once per loaded path. + This signal will be emitted just before when the target is reachable. + It may not always be possible to reach the target but it should always be possible to reach the final position. See . + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a waypoint. Emitted when the agent moves within of the next position of the path. + The details dictionary may contain the following keys depending on the value of : + - position: The position of the waypoint that was reached. + - type: The type of navigation primitive (region or link) that contains this waypoint. + - rid: The of the containing navigation primitive (region or link). + - owner: The object which manages the containing navigation primitive (region or link). + + + + + Represents the method that handles the event of a class. + + + + + Signals that the agent reached a navigation link. Emitted when the agent moves within of the next position of the path when that position is a navigation link. + The details dictionary may contain the following keys depending on the value of : + - position: The start position of the link that was reached. + - type: Always . + - rid: The of the link. + - owner: The object which manages the link (usually ). + - link_entry_position: If owner is available and the owner is a , it will contain the global position of the link's point the agent is entering. + - link_exit_position: If owner is available and the owner is a , it will contain the global position of the link's point which the agent is exiting. + + + + + Signals that the agent's navigation has finished. If the target is reachable, navigation ends when the target is reached. If the target is unreachable, navigation ends when the last waypoint of the path is reached. This signal is emitted only once per loaded path. + This signal will be emitted just after when the target is reachable. + + + + + Represents the method that handles the event of a class. + + + + + Notifies when the collision avoidance velocity is calculated. Emitted every update as long as is and the agent has a navigation map. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'path_desired_distance' property. + + + + + Cached name for the 'target_desired_distance' property. + + + + + Cached name for the 'path_height_offset' property. + + + + + Cached name for the 'path_max_distance' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'path_metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'neighbor_distance' property. + + + + + Cached name for the 'max_neighbors' property. + + + + + Cached name for the 'time_horizon_agents' property. + + + + + Cached name for the 'time_horizon_obstacles' property. + + + + + Cached name for the 'max_speed' property. + + + + + Cached name for the 'use_3d_avoidance' property. + + + + + Cached name for the 'keep_y_velocity' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached name for the 'avoidance_mask' property. + + + + + Cached name for the 'avoidance_priority' property. + + + + + Cached name for the 'debug_enabled' property. + + + + + Cached name for the 'debug_use_custom' property. + + + + + Cached name for the 'debug_path_custom_color' property. + + + + + Cached name for the 'debug_path_custom_point_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_path_desired_distance' method. + + + + + Cached name for the 'get_path_desired_distance' method. + + + + + Cached name for the 'set_target_desired_distance' method. + + + + + Cached name for the 'get_target_desired_distance' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_path_height_offset' method. + + + + + Cached name for the 'get_path_height_offset' method. + + + + + Cached name for the 'set_use_3d_avoidance' method. + + + + + Cached name for the 'get_use_3d_avoidance' method. + + + + + Cached name for the 'set_keep_y_velocity' method. + + + + + Cached name for the 'get_keep_y_velocity' method. + + + + + Cached name for the 'set_neighbor_distance' method. + + + + + Cached name for the 'get_neighbor_distance' method. + + + + + Cached name for the 'set_max_neighbors' method. + + + + + Cached name for the 'get_max_neighbors' method. + + + + + Cached name for the 'set_time_horizon_agents' method. + + + + + Cached name for the 'get_time_horizon_agents' method. + + + + + Cached name for the 'set_time_horizon_obstacles' method. + + + + + Cached name for the 'get_time_horizon_obstacles' method. + + + + + Cached name for the 'set_max_speed' method. + + + + + Cached name for the 'get_max_speed' method. + + + + + Cached name for the 'set_path_max_distance' method. + + + + + Cached name for the 'get_path_max_distance' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_path_metadata_flags' method. + + + + + Cached name for the 'get_path_metadata_flags' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached name for the 'get_next_path_position' method. + + + + + Cached name for the 'set_velocity_forced' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'distance_to_target' method. + + + + + Cached name for the 'get_current_navigation_result' method. + + + + + Cached name for the 'get_current_navigation_path' method. + + + + + Cached name for the 'get_current_navigation_path_index' method. + + + + + Cached name for the 'is_target_reached' method. + + + + + Cached name for the 'is_target_reachable' method. + + + + + Cached name for the 'is_navigation_finished' method. + + + + + Cached name for the 'get_final_position' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_mask' method. + + + + + Cached name for the 'get_avoidance_mask' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_avoidance_mask_value' method. + + + + + Cached name for the 'get_avoidance_mask_value' method. + + + + + Cached name for the 'set_avoidance_priority' method. + + + + + Cached name for the 'get_avoidance_priority' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'set_debug_use_custom' method. + + + + + Cached name for the 'get_debug_use_custom' method. + + + + + Cached name for the 'set_debug_path_custom_color' method. + + + + + Cached name for the 'get_debug_path_custom_color' method. + + + + + Cached name for the 'set_debug_path_custom_point_size' method. + + + + + Cached name for the 'get_debug_path_custom_point_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'path_changed' signal. + + + + + Cached name for the 'target_reached' signal. + + + + + Cached name for the 'waypoint_reached' signal. + + + + + Cached name for the 'link_reached' signal. + + + + + Cached name for the 'navigation_finished' signal. + + + + + Cached name for the 'velocity_computed' signal. + + + + + A link between two positions on s that agents can be routed through. These positions can be on the same 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. + + + + + Whether this link is currently active. If , will ignore this link. + + + + + Whether this link can be traveled in both directions or only from to . + + + + + A bitfield determining all navigation layers the link belongs to. These navigation layers will be checked when requesting a path with . + + + + + Starting position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + Ending position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + When pathfinding enters this link from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves along the link the traveled distance is multiplied with for determining the shortest path. + + + + + Returns the of this link on the . + + + + + Sets the of the navigation map this link should use. By default the link will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this link. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'bidirectional' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'end_position' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_bidirectional' method. + + + + + Cached name for the 'is_bidirectional' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_end_position' method. + + + + + Cached name for the 'get_end_position' method. + + + + + Cached name for the 'set_global_start_position' method. + + + + + Cached name for the 'get_global_start_position' method. + + + + + Cached name for the 'set_global_end_position' method. + + + + + Cached name for the 'get_global_end_position' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A link between two positions on s that agents can be routed through. These positions can be on the same 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. + + + + + Whether this link is currently active. If , will ignore this link. + + + + + Whether this link can be traveled in both directions or only from to . + + + + + A bitfield determining all navigation layers the link belongs to. These navigation layers will be checked when requesting a path with . + + + + + Starting position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + Ending position of the link. + This position will search out the nearest polygon in the navigation mesh to attach to. + The distance the link will search is controlled by . + + + + + When pathfinding enters this link from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves along the link the traveled distance is multiplied with for determining the shortest path. + + + + + Returns the of this link on the . + + + + + Sets the of the navigation map this link should use. By default the link will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this link. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Sets the that is relative to the link from a global . + + + + + Returns the that is relative to the link as a global position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'bidirectional' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'end_position' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_bidirectional' method. + + + + + Cached name for the 'is_bidirectional' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_end_position' method. + + + + + Cached name for the 'get_end_position' method. + + + + + Cached name for the 'set_global_start_position' method. + + + + + Cached name for the 'get_global_start_position' method. + + + + + Cached name for the 'set_global_end_position' method. + + + + + Cached name for the 'get_global_end_position' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Watershed partitioning. Generally the best choice if you precompute the navigation mesh, use this if you have large open areas. + + + + + Monotone partitioning. Use this if you want fast navigation mesh generation. + + + + + Layer partitioning. Good choice to use for tiled navigation mesh with medium and small sized tiles. + + + + + Represents the size of the enum. + + + + + Parses mesh instances as geometry. This includes , , and nodes. + + + + + Parses colliders as geometry. The collider should be in any of the layers specified by . + + + + + Both and . + + + + + Represents the size of the enum. + + + + + Scans the child nodes of the root node recursively for geometry. + + + + + Scans nodes in a group and their child nodes recursively for geometry. The group is specified by . + + + + + Uses nodes in a group for geometry. The group is specified by . + + + + + Represents the size of the enum. + + + + + Partitioning algorithm for creating the navigation mesh polys. See for possible values. + + + + + Determines which type of nodes will be parsed as geometry. See for possible values. + + + + + The physics layers to scan for static colliders. + Only used when is or . + + + + + The source of the geometry used when baking. See for possible values. + + + + + The name of the group to scan for geometry. + Only used when is or . + + + + + The cell size used to rasterize the navigation mesh vertices on the XZ plane. Must match with the cell size on the navigation map. + + + + + The cell height used to rasterize the navigation mesh vertices on the Y axis. Must match with the cell height on the navigation map. + + + + + The size of the non-navigable border around the bake bounding area. + In conjunction with the and a value at 1.0 or below the border size can be used to bake tile aligned navigation meshes without the tile edges being shrunk by . + Note: While baking and not zero, this value will be rounded up to the nearest multiple of . + + + + + The minimum floor to ceiling height that will still allow the floor area to be considered walkable. + Note: While baking, this value will be rounded up to the nearest multiple of . + + + + + The distance to erode/shrink the walkable area of the heightfield away from obstructions. + Note: While baking, this value will be rounded up to the nearest multiple of . + + + + + The minimum ledge height that is considered to still be traversable. + Note: While baking, this value will be rounded down to the nearest multiple of . + + + + + The maximum slope that is considered walkable, in degrees. + + + + + The minimum size of a region for it to be created. + Note: This value will be squared to calculate the minimum number of cells allowed to form isolated island areas. For example, a value of 8 will set the number of cells to 64. + + + + + Any regions with a size smaller than this will be merged with larger regions if possible. + Note: This value will be squared to calculate the number of cells. For example, a value of 20 will set the number of cells to 400. + + + + + The maximum allowed length for contour edges along the border of the mesh. A value of 0.0 disables this feature. + Note: While baking, this value will be rounded up to the nearest multiple of . + + + + + The maximum distance a simplified contour's border edges should deviate the original raw contour. + + + + + The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process. + + + + + The sampling distance to use when generating the detail mesh, in cell unit. + + + + + The maximum distance the detail mesh surface should deviate from heightfield, in cell unit. + + + + + If , marks non-walkable spans as walkable if their maximum is within of a walkable neighbor. + + + + + If , marks spans that are ledges as non-walkable. + + + + + If , marks walkable spans as not walkable if the clearance above the span is less than . + + + + + If the baking has a volume the navigation mesh baking will be restricted to its enclosing area. + + + + + The position offset applied to the . + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Returns a [] containing all the vertices being used to create the polygons. + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Returns the number of polygons in the navigation mesh. + + + + + Returns a [] containing the indices of the vertices of a created polygon. + + + + + Clears the array of polygons, but it doesn't clear the array of vertices. + + + + + Initializes the navigation mesh by setting the vertices and indices according to a . + Note: The given must be of type and have an index array. + + + + + Clears the internal arrays for vertices and polygon indices. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'polygons' property. + + + + + Cached name for the 'sample_partition_type' property. + + + + + Cached name for the 'geometry_parsed_geometry_type' property. + + + + + Cached name for the 'geometry_collision_mask' property. + + + + + Cached name for the 'geometry_source_geometry_mode' property. + + + + + Cached name for the 'geometry_source_group_name' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'cell_height' property. + + + + + Cached name for the 'border_size' property. + + + + + Cached name for the 'agent_height' property. + + + + + Cached name for the 'agent_radius' property. + + + + + Cached name for the 'agent_max_climb' property. + + + + + Cached name for the 'agent_max_slope' property. + + + + + Cached name for the 'region_min_size' property. + + + + + Cached name for the 'region_merge_size' property. + + + + + Cached name for the 'edge_max_length' property. + + + + + Cached name for the 'edge_max_error' property. + + + + + Cached name for the 'vertices_per_polygon' property. + + + + + Cached name for the 'detail_sample_distance' property. + + + + + Cached name for the 'detail_sample_max_error' property. + + + + + Cached name for the 'filter_low_hanging_obstacles' property. + + + + + Cached name for the 'filter_ledge_spans' property. + + + + + Cached name for the 'filter_walkable_low_height_spans' property. + + + + + Cached name for the 'filter_baking_aabb' property. + + + + + Cached name for the 'filter_baking_aabb_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sample_partition_type' method. + + + + + Cached name for the 'get_sample_partition_type' method. + + + + + Cached name for the 'set_parsed_geometry_type' method. + + + + + Cached name for the 'get_parsed_geometry_type' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_source_geometry_mode' method. + + + + + Cached name for the 'get_source_geometry_mode' method. + + + + + Cached name for the 'set_source_group_name' method. + + + + + Cached name for the 'get_source_group_name' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_cell_height' method. + + + + + Cached name for the 'get_cell_height' method. + + + + + Cached name for the 'set_border_size' method. + + + + + Cached name for the 'get_border_size' method. + + + + + Cached name for the 'set_agent_height' method. + + + + + Cached name for the 'get_agent_height' method. + + + + + Cached name for the 'set_agent_radius' method. + + + + + Cached name for the 'get_agent_radius' method. + + + + + Cached name for the 'set_agent_max_climb' method. + + + + + Cached name for the 'get_agent_max_climb' method. + + + + + Cached name for the 'set_agent_max_slope' method. + + + + + Cached name for the 'get_agent_max_slope' method. + + + + + Cached name for the 'set_region_min_size' method. + + + + + Cached name for the 'get_region_min_size' method. + + + + + Cached name for the 'set_region_merge_size' method. + + + + + Cached name for the 'get_region_merge_size' method. + + + + + Cached name for the 'set_edge_max_length' method. + + + + + Cached name for the 'get_edge_max_length' method. + + + + + Cached name for the 'set_edge_max_error' method. + + + + + Cached name for the 'get_edge_max_error' method. + + + + + Cached name for the 'set_vertices_per_polygon' method. + + + + + Cached name for the 'get_vertices_per_polygon' method. + + + + + Cached name for the 'set_detail_sample_distance' method. + + + + + Cached name for the 'get_detail_sample_distance' method. + + + + + Cached name for the 'set_detail_sample_max_error' method. + + + + + Cached name for the 'get_detail_sample_max_error' method. + + + + + Cached name for the 'set_filter_low_hanging_obstacles' method. + + + + + Cached name for the 'get_filter_low_hanging_obstacles' method. + + + + + Cached name for the 'set_filter_ledge_spans' method. + + + + + Cached name for the 'get_filter_ledge_spans' method. + + + + + Cached name for the 'set_filter_walkable_low_height_spans' method. + + + + + Cached name for the 'get_filter_walkable_low_height_spans' method. + + + + + Cached name for the 'set_filter_baking_aabb' method. + + + + + Cached name for the 'get_filter_baking_aabb' method. + + + + + Cached name for the 'set_filter_baking_aabb_offset' method. + + + + + Cached name for the 'get_filter_baking_aabb_offset' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'add_polygon' method. + + + + + Cached name for the 'get_polygon_count' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'clear_polygons' method. + + + + + Cached name for the 'create_from_mesh' method. + + + + + Cached name for the '_set_polygons' method. + + + + + Cached name for the '_get_polygons' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is responsible for creating and clearing 3D navigation meshes used as resources inside . The has very limited to no use for 2D as the navigation mesh baking process expects 3D node types and 3D source geometry to parse. + The entire navigation mesh baking is best done in a separate thread as the voxelization, collision tests and mesh optimization steps involved are very slow and performance-intensive operations. + Navigation mesh baking happens in multiple steps and the result depends on 3D source geometry and properties of the resource. In the first step, starting from a root node and depending on properties all valid 3D source geometry nodes are collected from the . Second, all collected nodes are parsed for their relevant 3D geometry data and a combined 3D mesh is build. Due to the many different types of parsable objects, from normal s to s or various s, some operations to collect geometry data can trigger and synchronizations. Server synchronization can have a negative effect on baking time or framerate as it often involves locking for thread security. Many parsable objects and the continuous synchronization with other threaded Servers can increase the baking time significantly. On the other hand only a few but very large and complex objects will take some time to prepare for the Servers which can noticeably stall the next frame render. As a general rule the total number of parsable objects and their individual size and complexity should be balanced to avoid framerate issues or very long baking times. The combined mesh is then passed to the Recast Navigation Object to test the source geometry for walkable terrain suitable to agent properties by creating a voxel world around the meshes bounding area. + The finalized navigation mesh is then returned and stored inside the for use as a resource inside nodes. + Note: Using meshes to not only define walkable surfaces but also obstruct navigation baking does not always work. The navigation baking has no concept of what is a geometry "inside" when dealing with mesh source geometry and this is intentional. Depending on current baking parameters, as soon as the obstructing mesh is large enough to fit a navigation mesh area inside, the baking will generate navigation mesh areas that are inside the obstructing source geometry mesh. + + + + + Bakes the with source geometry collected starting from the . + + + + + Removes all polygons and vertices from the provided resource. + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is responsible for creating and clearing 3D navigation meshes used as resources inside . The has very limited to no use for 2D as the navigation mesh baking process expects 3D node types and 3D source geometry to parse. + The entire navigation mesh baking is best done in a separate thread as the voxelization, collision tests and mesh optimization steps involved are very slow and performance-intensive operations. + Navigation mesh baking happens in multiple steps and the result depends on 3D source geometry and properties of the resource. In the first step, starting from a root node and depending on properties all valid 3D source geometry nodes are collected from the . Second, all collected nodes are parsed for their relevant 3D geometry data and a combined 3D mesh is build. Due to the many different types of parsable objects, from normal s to s or various s, some operations to collect geometry data can trigger and synchronizations. Server synchronization can have a negative effect on baking time or framerate as it often involves locking for thread security. Many parsable objects and the continuous synchronization with other threaded Servers can increase the baking time significantly. On the other hand only a few but very large and complex objects will take some time to prepare for the Servers which can noticeably stall the next frame render. As a general rule the total number of parsable objects and their individual size and complexity should be balanced to avoid framerate issues or very long baking times. The combined mesh is then passed to the Recast Navigation Object to test the source geometry for walkable terrain suitable to agent properties by creating a voxel world around the meshes bounding area. + The finalized navigation mesh is then returned and stored inside the for use as a resource inside nodes. + Note: Using meshes to not only define walkable surfaces but also obstruct navigation baking does not always work. The navigation baking has no concept of what is a geometry "inside" when dealing with mesh source geometry and this is intentional. Depending on current baking parameters, as soon as the obstructing mesh is large enough to fit a navigation mesh area inside, the baking will generate navigation mesh areas that are inside the obstructing source geometry mesh. + + + + + Bakes the with source geometry collected starting from the . + + + + + Removes all polygons and vertices from the provided resource. + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Container for parsed source geometry data used in navigation mesh baking. + + + + + Clears the internal data. + + + + + Returns when parsed source geometry data exists. + + + + + Sets all the traversable area outlines arrays. + + + + + Returns all the traversable area outlines arrays. + + + + + Sets all the obstructed area outlines arrays. + + + + + Returns all the obstructed area outlines arrays. + + + + + Appends another array of at the end of the existing traversable outlines array. + + + + + Appends another array of at the end of the existing obstruction outlines array. + + + + + Adds the outline points of a shape as traversable area. + + + + + Adds the outline points of a shape as traversable area. + + + + + Adds the outline points of a shape as obstructed area. + + + + + Adds the outline points of a shape as obstructed area. + + + + + Adds the geometry data of another to the navigation mesh baking data. + + + + + Adds a projected obstruction shape to the source geometry. If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Adds a projected obstruction shape to the source geometry. If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Clears all projected obstructions. + + + + + Sets the projected obstructions with an Array of Dictionaries with the following key value pairs: + + + + + + Returns the projected obstructions as an of dictionaries. Each contains the following entries: + - vertices - A [] that defines the outline points of the projected shape. + - carve - A that defines how the projected shape affects the navigation mesh baking. If the projected shape will not be affected by addition offsets, e.g. agent radius. + + + + + Returns an axis-aligned bounding box that covers all the stored geometry data. The bounds are calculated when calling this function with the result cached until further geometry changes are made. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'traversable_outlines' property. + + + + + Cached name for the 'obstruction_outlines' property. + + + + + Cached name for the 'projected_obstructions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'has_data' method. + + + + + Cached name for the 'set_traversable_outlines' method. + + + + + Cached name for the 'get_traversable_outlines' method. + + + + + Cached name for the 'set_obstruction_outlines' method. + + + + + Cached name for the 'get_obstruction_outlines' method. + + + + + Cached name for the 'append_traversable_outlines' method. + + + + + Cached name for the 'append_obstruction_outlines' method. + + + + + Cached name for the 'add_traversable_outline' method. + + + + + Cached name for the 'add_obstruction_outline' method. + + + + + Cached name for the 'merge' method. + + + + + Cached name for the 'add_projected_obstruction' method. + + + + + Cached name for the 'clear_projected_obstructions' method. + + + + + Cached name for the 'set_projected_obstructions' method. + + + + + Cached name for the 'get_projected_obstructions' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Container for parsed source geometry data used in navigation mesh baking. + + + + + Sets the parsed source geometry data vertices. The vertices need to be matched with appropriated indices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Sets the parsed source geometry data vertices. The vertices need to be matched with appropriated indices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Returns the parsed source geometry data vertices array. + + + + + Sets the parsed source geometry data indices. The indices need to be matched with appropriated vertices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Sets the parsed source geometry data indices. The indices need to be matched with appropriated vertices. + Warning: Inappropriate data can crash the baking process of the involved third-party libraries. + + + + + Returns the parsed source geometry data indices array. + + + + + Appends arrays of and at the end of the existing arrays. Adds the existing index as an offset to the appended indices. + + + + + Appends arrays of and at the end of the existing arrays. Adds the existing index as an offset to the appended indices. + + + + + Clears the internal data. + + + + + Returns when parsed source geometry data exists. + + + + + Adds the geometry data of a resource to the navigation mesh baking data. The mesh must have valid triangulated mesh data to be considered. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds an the size of and with vertices at index and indices at index to the navigation mesh baking data. The array must have valid triangulated mesh data to be considered. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds an array of vertex positions to the geometry data for navigation mesh baking to form triangulated faces. For each face the array must have three vertex positions in clockwise winding order. Since resources have no transform, all vertex positions need to be offset by the node's transform using . + + + + + Adds the geometry data of another to the navigation mesh baking data. + + + + + Adds a projected obstruction shape to the source geometry. The are considered projected on a xz-axes plane, placed at the global y-axis and extruded by . If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Adds a projected obstruction shape to the source geometry. The are considered projected on a xz-axes plane, placed at the global y-axis and extruded by . If is the carved shape will not be affected by additional offsets (e.g. agent radius) of the navigation mesh baking process. + + + + + Clears all projected obstructions. + + + + + Sets the projected obstructions with an Array of Dictionaries with the following key value pairs: + + + + + + Returns the projected obstructions as an of dictionaries. Each contains the following entries: + - vertices - A [] that defines the outline points of the projected shape. + - elevation - A that defines the projected shape placement on the y-axis. + - height - A that defines how much the projected shape is extruded along the y-axis. + - carve - A that defines how the obstacle affects the navigation mesh baking. If the projected shape will not be affected by addition offsets, e.g. agent radius. + + + + + Returns an axis-aligned bounding box that covers all the stored geometry data. The bounds are calculated when calling this function with the result cached until further geometry changes are made. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'indices' property. + + + + + Cached name for the 'projected_obstructions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'set_indices' method. + + + + + Cached name for the 'get_indices' method. + + + + + Cached name for the 'append_arrays' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'has_data' method. + + + + + Cached name for the 'add_mesh' method. + + + + + Cached name for the 'add_mesh_array' method. + + + + + Cached name for the 'add_faces' method. + + + + + Cached name for the 'merge' method. + + + + + Cached name for the 'add_projected_obstruction' method. + + + + + Cached name for the 'clear_projected_obstructions' method. + + + + + Cached name for the 'set_projected_obstructions' method. + + + + + Cached name for the 'get_projected_obstructions' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An obstacle needs a navigation map and outline defined to work correctly. The outlines can not cross or overlap. + Obstacles can be included in the navigation mesh baking process when is enabled. They do not add walkable geometry, instead their role is to discard other source geometry inside the shape. This can be used to prevent navigation mesh from appearing in unwanted places. If is enabled the baked shape will not be affected by offsets of the navigation mesh baking, e.g. the agent radius. + With the obstacle can constrain the avoidance velocities of avoidance using agents. If the obstacle's vertices are wound in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Obstacles using vertices and avoidance can warp to a new position but should not be moved every single frame as each change requires a rebuild of the avoidance map. + + + + + Sets the avoidance radius for the obstacle. + + + + + The outline vertices of the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. Outlines can not be crossed or overlap. Should the vertices using obstacle be warped to a new position agent's can not predict this movement and may get trapped inside the obstacle. + + + + + If enabled and parsed in a navigation mesh baking process the obstacle will discard source geometry inside its defined shape. + + + + + If enabled the obstacle vertices will carve into the baked navigation mesh with the shape unaffected by additional offsets (e.g. agent radius). + It will still be affected by further postprocessing of the baking process, like edge and polygon simplification. + Requires to be enabled. + + + + + If the obstacle affects avoidance using agents. + + + + + Sets the wanted velocity for the obstacle so other agent's can better predict the obstacle if it is moved with a velocity regularly (every frame) instead of warped to a new position. Does only affect avoidance for the obstacles . Does nothing for the obstacles static vertices. + + + + + A bitfield determining the avoidance layers for this obstacle. Agents with a matching bit on the their avoidance mask will avoid this obstacle. + + + + + Returns the of this obstacle on the . + + + + + Sets the of the navigation map this NavigationObstacle node should use and also updates the obstacle on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationObstacle node. This function returns always the map set on the NavigationObstacle node and not the map of the abstract obstacle on the NavigationServer. If the obstacle map is changed directly with the NavigationServer API the NavigationObstacle node will not be aware of the map change. Use to change the navigation map for the NavigationObstacle and also update the obstacle on the NavigationServer. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'affect_navigation_mesh' property. + + + + + Cached name for the 'carve_navigation_mesh' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_affect_navigation_mesh' method. + + + + + Cached name for the 'get_affect_navigation_mesh' method. + + + + + Cached name for the 'set_carve_navigation_mesh' method. + + + + + Cached name for the 'get_carve_navigation_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An obstacle needs a navigation map and outline defined to work correctly. The outlines can not cross or overlap and are restricted to a plane projection. This means the y-axis of the vertices is ignored, instead the obstacle's global y-axis position is used for placement. The projected shape is extruded by the obstacles height along the y-axis. + Obstacles can be included in the navigation mesh baking process when is enabled. They do not add walkable geometry, instead their role is to discard other source geometry inside the shape. This can be used to prevent navigation mesh from appearing in unwanted places, e.g. inside "solid" geometry or on top of it. If is enabled the baked shape will not be affected by offsets of the navigation mesh baking, e.g. the agent radius. + With the obstacle can constrain the avoidance velocities of avoidance using agents. If the obstacle's vertices are wound in clockwise order, avoidance agents will be pushed in by the obstacle, otherwise, avoidance agents will be pushed out. Obstacles using vertices and avoidance can warp to a new position but should not be moved every single frame as each change requires a rebuild of the avoidance map. + + + + + Sets the avoidance radius for the obstacle. + + + + + Sets the obstacle height used in 2D avoidance. 2D avoidance using agent's ignore obstacles that are below or above them. + + + + + The outline vertices of the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. Outlines can not be crossed or overlap. Should the vertices using obstacle be warped to a new position agent's can not predict this movement and may get trapped inside the obstacle. + + + + + If enabled and parsed in a navigation mesh baking process the obstacle will discard source geometry inside its and defined shape. + + + + + If enabled the obstacle vertices will carve into the baked navigation mesh with the shape unaffected by additional offsets (e.g. agent radius). + It will still be affected by further postprocessing of the baking process, like edge and polygon simplification. + Requires to be enabled. + + + + + If the obstacle affects avoidance using agents. + + + + + Sets the wanted velocity for the obstacle so other agent's can better predict the obstacle if it is moved with a velocity regularly (every frame) instead of warped to a new position. Does only affect avoidance for the obstacles . Does nothing for the obstacles static vertices. + + + + + A bitfield determining the avoidance layers for this obstacle. Agents with a matching bit on the their avoidance mask will avoid this obstacle. + + + + + If the obstacle affects 3D avoidance using agent's with obstacle . + If the obstacle affects 2D avoidance using agent's with both obstacle as well as obstacle . + + + + + Returns the of this obstacle on the . + + + + + Sets the of the navigation map this NavigationObstacle node should use and also updates the obstacle on the NavigationServer. + + + + + Returns the of the navigation map for this NavigationObstacle node. This function returns always the map set on the NavigationObstacle node and not the map of the abstract obstacle on the NavigationServer. If the obstacle map is changed directly with the NavigationServer API the NavigationObstacle node will not be aware of the map change. Use to change the navigation map for the NavigationObstacle and also update the obstacle on the NavigationServer. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'affect_navigation_mesh' property. + + + + + Cached name for the 'carve_navigation_mesh' property. + + + + + Cached name for the 'avoidance_enabled' property. + + + + + Cached name for the 'velocity' property. + + + + + Cached name for the 'avoidance_layers' property. + + + + + Cached name for the 'use_3d_avoidance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_avoidance_enabled' method. + + + + + Cached name for the 'get_avoidance_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_velocity' method. + + + + + Cached name for the 'get_velocity' method. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'set_avoidance_layers' method. + + + + + Cached name for the 'get_avoidance_layers' method. + + + + + Cached name for the 'set_avoidance_layer_value' method. + + + + + Cached name for the 'get_avoidance_layer_value' method. + + + + + Cached name for the 'set_use_3d_avoidance' method. + + + + + Cached name for the 'get_use_3d_avoidance' method. + + + + + Cached name for the 'set_affect_navigation_mesh' method. + + + + + Cached name for the 'get_affect_navigation_mesh' method. + + + + + Cached name for the 'set_carve_navigation_mesh' method. + + + + + Cached name for the 'get_carve_navigation_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the start and target position, you can configure path queries to the . + + + + + The path query uses the default A* pathfinding algorithm. + + + + + 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. + + + + + 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. + + + + + Applies no postprocessing and returns the raw path corridor as found by the pathfinding algorithm. + + + + + Don't include any additional metadata about the returned path. + + + + + Include the type of navigation primitive (region or link) that each point of the path goes through. + + + + + Include the s of the regions and links that each point of the path goes through. + + + + + Include the ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Include all available metadata about the returned path. + + + + + The navigation map used in the path query. + + + + + The pathfinding start position in global coordinates. + + + + + The pathfinding target position in global coordinates. + + + + + The navigation layers the query will use (as a bitmask). + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to include with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'map' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_map' method. + + + + + Cached name for the 'get_map' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_metadata_flags' method. + + + + + Cached name for the 'get_metadata_flags' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the start and target position, you can configure path queries to the . + + + + + The path query uses the default A* pathfinding algorithm. + + + + + 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. + + + + + 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. + + + + + Applies no postprocessing and returns the raw path corridor as found by the pathfinding algorithm. + + + + + Don't include any additional metadata about the returned path. + + + + + Include the type of navigation primitive (region or link) that each point of the path goes through. + + + + + Include the s of the regions and links that each point of the path goes through. + + + + + Include the ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Include all available metadata about the returned path. + + + + + The navigation map used in the path query. + + + + + The pathfinding start position in global coordinates. + + + + + The pathfinding target position in global coordinates. + + + + + The navigation layers the query will use (as a bitmask). + + + + + The pathfinding algorithm used in the path query. + + + + + The path postprocessing applied to the raw path corridor found by the . + + + + + Additional information to include with the navigation path. + + + + + If a simplified version of the path will be returned with less critical path points removed. The simplification amount is controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + The path simplification amount in worlds units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'map' property. + + + + + Cached name for the 'start_position' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'pathfinding_algorithm' property. + + + + + Cached name for the 'path_postprocessing' property. + + + + + Cached name for the 'metadata_flags' property. + + + + + Cached name for the 'simplify_path' property. + + + + + Cached name for the 'simplify_epsilon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_pathfinding_algorithm' method. + + + + + Cached name for the 'get_pathfinding_algorithm' method. + + + + + Cached name for the 'set_path_postprocessing' method. + + + + + Cached name for the 'get_path_postprocessing' method. + + + + + Cached name for the 'set_map' method. + + + + + Cached name for the 'get_map' method. + + + + + Cached name for the 'set_start_position' method. + + + + + Cached name for the 'get_start_position' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_metadata_flags' method. + + + + + Cached name for the 'get_metadata_flags' method. + + + + + Cached name for the 'set_simplify_path' method. + + + + + Cached name for the 'get_simplify_path' method. + + + + + Cached name for the 'set_simplify_epsilon' method. + + + + + Cached name for the 'get_simplify_epsilon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class stores the result of a 2D navigation path query from the . + + + + + This segment of the path goes through a region. + + + + + This segment of the path goes through a link. + + + + + The resulting path array from the navigation query. All path array positions are in global coordinates. Without customized query parameters this is the same path as returned by . + + + + + The type of navigation primitive (region or link) that each point of the path goes through. + + + + + The s of the regions and links that each point of the path goes through. + + + + + The ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Reset the result object to its initial state. This is useful to reuse the object across multiple queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'path' property. + + + + + Cached name for the 'path_types' property. + + + + + Cached name for the 'path_rids' property. + + + + + Cached name for the 'path_owner_ids' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_path' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'set_path_types' method. + + + + + Cached name for the 'get_path_types' method. + + + + + Cached name for the 'set_path_rids' method. + + + + + Cached name for the 'get_path_rids' method. + + + + + Cached name for the 'set_path_owner_ids' method. + + + + + Cached name for the 'get_path_owner_ids' method. + + + + + Cached name for the 'reset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class stores the result of a 3D navigation path query from the . + + + + + This segment of the path goes through a region. + + + + + This segment of the path goes through a link. + + + + + The resulting path array from the navigation query. All path array positions are in global coordinates. Without customized query parameters this is the same path as returned by . + + + + + The type of navigation primitive (region or link) that each point of the path goes through. + + + + + The s of the regions and links that each point of the path goes through. + + + + + The ObjectIDs of the s which manage the regions and links each point of the path goes through. + + + + + Reset the result object to its initial state. This is useful to reuse the object across multiple queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'path' property. + + + + + Cached name for the 'path_types' property. + + + + + Cached name for the 'path_rids' property. + + + + + Cached name for the 'path_owner_ids' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_path' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'set_path_types' method. + + + + + Cached name for the 'get_path_types' method. + + + + + Cached name for the 'set_path_rids' method. + + + + + Cached name for the 'get_path_rids' method. + + + + + Cached name for the 'set_path_owner_ids' method. + + + + + Cached name for the 'get_path_owner_ids' method. + + + + + Cached name for the 'reset' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A navigation mesh can be created either by baking it with the help of the , or by adding vertices and convex polygon indices arrays manually. + To bake a navigation mesh at least one outline needs to be added that defines the outer bounds of the baked area. + + var newNavigationMesh = new NavigationPolygon(); + var boundingOutline = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; + newNavigationMesh.AddOutline(boundingOutline); + NavigationServer2D.BakeFromSourceGeometryData(newNavigationMesh, new NavigationMeshSourceGeometryData2D()); + GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh; + + Adding vertices and polygon indices manually. + + var newNavigationMesh = new NavigationPolygon(); + var newVertices = new Vector2[] { new Vector2(0, 0), new Vector2(0, 50), new Vector2(50, 50), new Vector2(50, 0) }; + newNavigationMesh.Vertices = newVertices; + var newPolygonIndices = new int[] { 0, 1, 2, 3 }; + newNavigationMesh.AddPolygon(newPolygonIndices); + GetNode<NavigationRegion2D>("NavigationRegion2D").NavigationPolygon = newNavigationMesh; + + + + + + Convex partitioning that yields navigation mesh with convex polygons. + + + + + Triangulation partitioning that yields navigation mesh with triangle polygons. + + + + + Represents the size of the enum. + + + + + Parses mesh instances as obstruction geometry. This includes , , , and nodes. + Meshes are only parsed when they use a 2D vertices surface format. + + + + + Parses and colliders as obstruction geometry. The collider should be in any of the layers specified by . + + + + + Both and . + + + + + Represents the size of the enum. + + + + + Scans the child nodes of the root node recursively for geometry. + + + + + Scans nodes in a group and their child nodes recursively for geometry. The group is specified by . + + + + + Uses nodes in a group for geometry. The group is specified by . + + + + + Represents the size of the enum. + + + + + Partitioning algorithm for creating the navigation mesh polys. See for possible values. + + + + + Determines which type of nodes will be parsed as geometry. See for possible values. + + + + + The physics layers to scan for static colliders. + Only used when is or . + + + + + The source of the geometry used when baking. See for possible values. + + + + + The group name of nodes that should be parsed for baking source geometry. + Only used when is or . + + + + + The cell size used to rasterize the navigation mesh vertices. Must match with the cell size on the navigation map. + + + + + The size of the non-navigable border around the bake bounding area defined by the . + In conjunction with the the border size can be used to bake tile aligned navigation meshes without the tile edges being shrunk by . + + + + + The distance to erode/shrink the walkable surface when baking the navigation mesh. + + + + + If the baking has an area the navigation mesh baking will be restricted to its enclosing area. + + + + + The position offset applied to the . + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Sets the vertices that can be then indexed to create polygons with the method. + + + + + Returns a [] containing all the vertices being used to create the polygons. + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Adds a polygon using the indices of the vertices you get when calling . + + + + + Returns the count of all polygons. + + + + + Returns a [] containing the indices of the vertices of a created polygon. + + + + + Clears the array of polygons, but it doesn't clear the array of outlines and vertices. + + + + + Returns the resulting from this navigation polygon. This navigation mesh can be used to update the navigation mesh of a region with the API directly (as 2D uses the 3D server behind the scene). + + + + + Appends a [] that contains the vertices of an outline to the internal array that contains all the outlines. + + + + + Appends a [] that contains the vertices of an outline to the internal array that contains all the outlines. + + + + + Adds a [] that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. + + + + + Adds a [] that contains the vertices of an outline to the internal array that contains all the outlines at a fixed position. + + + + + Returns the number of outlines that were created in the editor or by script. + + + + + Changes an outline created in the editor or by script. You have to call for the polygons to update. + + + + + Changes an outline created in the editor or by script. You have to call for the polygons to update. + + + + + Returns a [] containing the vertices of an outline that was created in the editor or by script. + + + + + Removes an outline created in the editor or by script. You have to call for the polygons to update. + + + + + Clears the array of the outlines, but it doesn't clear the vertices and the polygons that were created by them. + + + + + Creates polygons from the outlines added in the editor or by script. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Clears the internal arrays for vertices and polygon indices. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vertices' property. + + + + + Cached name for the 'polygons' property. + + + + + Cached name for the 'outlines' property. + + + + + Cached name for the 'sample_partition_type' property. + + + + + Cached name for the 'parsed_geometry_type' property. + + + + + Cached name for the 'parsed_collision_mask' property. + + + + + Cached name for the 'source_geometry_mode' property. + + + + + Cached name for the 'source_geometry_group_name' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'border_size' property. + + + + + Cached name for the 'agent_radius' property. + + + + + Cached name for the 'baking_rect' property. + + + + + Cached name for the 'baking_rect_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_vertices' method. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'add_polygon' method. + + + + + Cached name for the 'get_polygon_count' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'clear_polygons' method. + + + + + Cached name for the 'get_navigation_mesh' method. + + + + + Cached name for the 'add_outline' method. + + + + + Cached name for the 'add_outline_at_index' method. + + + + + Cached name for the 'get_outline_count' method. + + + + + Cached name for the 'set_outline' method. + + + + + Cached name for the 'get_outline' method. + + + + + Cached name for the 'remove_outline' method. + + + + + Cached name for the 'clear_outlines' method. + + + + + Cached name for the 'make_polygons_from_outlines' method. + + + + + Cached name for the '_set_polygons' method. + + + + + Cached name for the '_get_polygons' method. + + + + + Cached name for the '_set_outlines' method. + + + + + Cached name for the '_get_outlines' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_border_size' method. + + + + + Cached name for the 'get_border_size' method. + + + + + Cached name for the 'set_sample_partition_type' method. + + + + + Cached name for the 'get_sample_partition_type' method. + + + + + Cached name for the 'set_parsed_geometry_type' method. + + + + + Cached name for the 'get_parsed_geometry_type' method. + + + + + Cached name for the 'set_parsed_collision_mask' method. + + + + + Cached name for the 'get_parsed_collision_mask' method. + + + + + Cached name for the 'set_parsed_collision_mask_value' method. + + + + + Cached name for the 'get_parsed_collision_mask_value' method. + + + + + Cached name for the 'set_source_geometry_mode' method. + + + + + Cached name for the 'get_source_geometry_mode' method. + + + + + Cached name for the 'set_source_geometry_group_name' method. + + + + + Cached name for the 'get_source_geometry_group_name' method. + + + + + Cached name for the 'set_agent_radius' method. + + + + + Cached name for the 'get_agent_radius' method. + + + + + Cached name for the 'set_baking_rect' method. + + + + + Cached name for the 'get_baking_rect' method. + + + + + Cached name for the 'set_baking_rect_offset' method. + + + + + Cached name for the 'get_baking_rect_offset' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A traversable 2D region based on a that 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 . + Note: Overlapping two regions' navigation polygons is not enough for connecting two regions. They must share a similar edge. + The pathfinding cost of entering a region from another region can be controlled with the value. + Note: This value is not added to the path cost when the start position is already inside this region. + The pathfinding cost of traveling distances inside this region can be controlled with the multiplier. + Note: This node caches changes to its properties, so if you make changes to the underlying region in , they will not be reflected in this node's properties. + + + + + The resource to use. + + + + + Determines if the is enabled or disabled. + + + + + If enabled the navigation region will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with . + + + + + When pathfinding enters this region's navigation mesh from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with for determining the shortest path. + + + + + Returns the of this region on the . Combined with can be used to identify the closest to a point on the merged navigation map. + + + + + Sets the of the navigation map this region should use. By default the region will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this region. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Returns the of this region on the . + + + + + Bakes the . If is set to (default), the baking is done on a separate thread. + + + + + Returns when the is being baked on a background thread. + + + + + Emitted when the used navigation polygon is replaced or changes to the internals of the current navigation polygon are committed. + + + + + Emitted when a navigation polygon bake operation is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_polygon' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'use_edge_connections' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_navigation_polygon' method. + + + + + Cached name for the 'get_navigation_polygon' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_use_edge_connections' method. + + + + + Cached name for the 'get_use_edge_connections' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'get_region_rid' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached name for the 'bake_navigation_polygon' method. + + + + + Cached name for the 'is_baking' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_polygon_changed' signal. + + + + + Cached name for the 'bake_finished' signal. + + + + + A traversable 3D region based on a that 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 . + Note: Overlapping two regions' navigation meshes is not enough for connecting two regions. They must share a similar edge. + The cost of entering this region from another region can be controlled with the value. + Note: This value is not added to the path cost when the start position is already inside this region. + The cost of traveling distances inside this region can be controlled with the multiplier. + Note: This node caches changes to its properties, so if you make changes to the underlying region in , they will not be reflected in this node's properties. + + + + + The resource to use. + + + + + Determines if the is enabled or disabled. + + + + + If enabled the navigation region will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + A bitfield determining all navigation layers the region belongs to. These navigation layers can be checked upon when requesting a path with . + + + + + When pathfinding enters this region's navigation mesh from another regions navigation mesh the value is added to the path distance for determining the shortest path. + + + + + When pathfinding moves inside this region's navigation mesh the traveled distances are multiplied with for determining the shortest path. + + + + + Returns the of this region on the . Combined with can be used to identify the closest to a point on the merged navigation map. + + + + + Sets the of the navigation map this region should use. By default the region will automatically join the default navigation map so this function is only required to override the default map. + + + + + Returns the current navigation map used by this region. + + + + + Based on , enables or disables the specified layer in the bitmask, given a between 1 and 32. + + + + + Returns whether or not the specified layer of the bitmask is enabled, given a between 1 and 32. + + + + + Returns the of this region on the . + + + + + Bakes the . If is set to (default), the baking is done on a separate thread. Baking on separate thread is useful because navigation baking is not a cheap operation. When it is completed, it automatically sets the new . Please note that baking on separate thread may be very slow if geometry is parsed from meshes as async access to each mesh involves heavy synchronization. Also, please note that baking on a separate thread is automatically disabled on operating systems that cannot use threads (such as Web with threads disabled). + + + + + Returns when the is being baked on a background thread. + + + + + Notifies when the has changed. + + + + + Notifies when the navigation mesh bake operation is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_mesh' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'use_edge_connections' property. + + + + + Cached name for the 'navigation_layers' property. + + + + + Cached name for the 'enter_cost' property. + + + + + Cached name for the 'travel_cost' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_navigation_mesh' method. + + + + + Cached name for the 'get_navigation_mesh' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_use_edge_connections' method. + + + + + Cached name for the 'get_use_edge_connections' method. + + + + + Cached name for the 'set_navigation_layers' method. + + + + + Cached name for the 'get_navigation_layers' method. + + + + + Cached name for the 'set_navigation_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_value' method. + + + + + Cached name for the 'get_region_rid' method. + + + + + Cached name for the 'set_enter_cost' method. + + + + + Cached name for the 'get_enter_cost' method. + + + + + Cached name for the 'set_travel_cost' method. + + + + + Cached name for the 'get_travel_cost' method. + + + + + Cached name for the 'bake_navigation_mesh' method. + + + + + Cached name for the 'is_baking' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'navigation_mesh_changed' signal. + + + + + Cached name for the 'bake_finished' signal. + + + + + NavigationServer2D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from or . + Maps are divided into regions, which are composed of navigation polygons. Together, they define the traversable areas in the 2D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. The edge connection margin is a distance used to connect two regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the for the region. + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the specified uses avoidance. + + + + + Return if the specified uses avoidance. + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position far away this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position far away use instead to reset the internal velocity state. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new navigation obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets the navigation map for the obstacle. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Sets the position of the obstacle in world space. + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation polygon is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_polygon' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_polygon' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + NavigationServer2D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from or . + Maps are divided into regions, which are composed of navigation polygons. Together, they define the traversable areas in the 2D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. The edge connection margin is a distance used to connect two regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns whether the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the for the region. + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the specified uses avoidance. + + + + + Return if the specified uses avoidance. + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position far away this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position far away use instead to reset the internal velocity state. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new navigation obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets the navigation map for the obstacle. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Sets the position of the obstacle in world space. + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation polygon is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_polygon' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_polygon' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + NavigationServer3D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from . + Maps are divided into regions, which are composed of navigation meshes. Together, they define the navigable areas in the 3D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Constant to get the number of active navigation maps. + + + + + Constant to get the number of active navigation regions. + + + + + Constant to get the number of active navigation agents processing avoidance. + + + + + Constant to get the number of active navigation links. + + + + + Constant to get the number of navigation mesh polygons. + + + + + Constant to get the number of navigation mesh polygon edges. + + + + + Constant to get the number of navigation mesh polygon edges that were merged due to edge key overlap. + + + + + Constant to get the number of navigation mesh polygon edges that are considered connected by edge proximity. + + + + + 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. + + + + + Constant to get the number of active navigation obstacles. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map up direction. + + + + + Returns the map's up direction. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices on the XZ plane. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices on the XZ plane. + + + + + Sets the map cell height used to rasterize the navigation mesh vertices on the Y axis. Must match with the cell height of the used navigation meshes. + + + + + Returns the map cell height used to rasterize the navigation mesh vertices on the Y axis. + + + + + Set the map's internal merge rasterizer cell scale used to control merging sensitivity. + + + + + Returns map's internal merge rasterizer cell scale. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. This distance is the minimum vertex distance needed to connect two edges from different regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the navigation mesh for the region. + + + + + Bakes the with bake source geometry collected starting from the . + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the provided calculates avoidance. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the agent uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + If the agent calculates avoidance velocities in 3D for the xyz-axis, e.g. for games that take place in air, underwater or space. The 3D using agent only avoids other 3D avoidance using agent's. The 3D using agent only reacts to radius based avoidance obstacles. The 3D using agent ignores any vertices based obstacles. The 3D using agent only avoids other 3D using agent's. + If the agent calculates avoidance velocities in 2D along the xz-axis ignoring the y-axis. The 2D using agent only avoids other 2D avoidance using agent's. The 2D using agent reacts to radius avoidance obstacles. The 2D using agent reacts to vertices based avoidance obstacles. The 2D using agent only avoids other 2D using agent's. 2D using agents will ignore other 2D using agents or obstacles that are below their current position or above their current position including the agents height in 2D avoidance. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Updates the provided . + + + + + Returns the height of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position use as well to reset the internal simulation velocity. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Assigns the to a navigation map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets the for the . In 3D agents will ignore obstacles that are above or below them while using 2D avoidance. + + + + + Returns the height of the specified . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Updates the in world space for the . + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation mesh is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + Control activation of this server. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Returns information about the current state of the NavigationServer. See for a list of available states. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Emitted when avoidance debug settings are changed. Only available in debug builds. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_up' method. + + + + + Cached name for the 'map_get_up' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_cell_height' method. + + + + + Cached name for the 'map_get_cell_height' method. + + + + + Cached name for the 'map_set_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_get_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point_to_segment' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_normal' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_mesh' method. + + + + + Cached name for the 'region_bake_navigation_mesh' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point_to_segment' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_closest_point_normal' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_use_3d_avoidance' method. + + + + + Cached name for the 'agent_get_use_3d_avoidance' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_height' method. + + + + + Cached name for the 'agent_get_height' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_get_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_height' method. + + + + + Cached name for the 'obstacle_get_height' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_mesh' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + Cached name for the 'avoidance_debug_changed' signal. + + + + + NavigationServer3D is the server that handles navigation maps, regions and agents. It does not handle A* navigation from . + Maps are divided into regions, which are composed of navigation meshes. Together, they define the navigable areas in the 3D world. + Note: Most changes take effect after the next physics frame and not immediately. This includes all changes made to maps, regions or agents by navigation-related nodes in the scene tree or made through scripts. + For two regions to be connected to each other, they must share a similar edge. An edge is considered connected to another if both of its two vertices are at a distance less than edge_connection_margin to the respective other edge's vertex. + You may assign navigation layers to regions with , which then can be checked upon when requesting a path with . This can be used to allow or deny certain areas for some objects. + To use the collision avoidance system, you may use agents. You can set an agent's target velocity, then the servers will emit a callback with a modified velocity. + Note: The collision avoidance system ignores regions. Using the modified velocity directly may move an agent outside of the traversable area. This is a limitation of the collision avoidance system, any more complex situation may require the use of the physics engine. + This server keeps tracks of any call and executes them during the sync phase. This means that you can request any change to the map, using any thread, without worrying. + + + + + Returns all created navigation map s on the NavigationServer. This returns both 2D and 3D created navigation maps as there is technically no distinction between them. + + + + + Create a new map. + + + + + Sets the map active. + + + + + Returns if the map is active. + + + + + Sets the map up direction. + + + + + Returns the map's up direction. + + + + + Sets the map cell size used to rasterize the navigation mesh vertices on the XZ plane. Must match with the cell size of the used navigation meshes. + + + + + Returns the map cell size used to rasterize the navigation mesh vertices on the XZ plane. + + + + + Sets the map cell height used to rasterize the navigation mesh vertices on the Y axis. Must match with the cell height of the used navigation meshes. + + + + + Returns the map cell height used to rasterize the navigation mesh vertices on the Y axis. + + + + + Set the map's internal merge rasterizer cell scale used to control merging sensitivity. + + + + + Returns map's internal merge rasterizer cell scale. + + + + + Set the navigation edge connection use. If is , the navigation map allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation allows navigation regions to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Set the map edge connection margin used to weld the compatible region edges. + + + + + Returns the edge connection margin of the map. This distance is the minimum vertex distance needed to connect two edges from different regions. + + + + + Set the map's link connection radius used to connect links to navigation polygons. + + + + + Returns the link connection radius of the map. This distance is the maximum range any link will search for navigation mesh polygons to connect to. + + + + + Returns the navigation path to reach the destination from the origin. is a bitmask of all region navigation layers that are allowed to be in the path. + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns the owner region RID for the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns all navigation link s that are currently assigned to the requested navigation . + + + + + Returns all navigation regions s that are currently assigned to the requested navigation . + + + + + Returns all navigation agents s that are currently assigned to the requested navigation . + + + + + Returns all navigation obstacle s that are currently assigned to the requested navigation . + + + + + This function immediately forces synchronization of the specified navigation . By default navigation maps are only synchronized at the end of each physics frame. This function can be used to immediately (re)calculate all the navigation meshes and region connections of the navigation map. This makes it possible to query a navigation path for a changed map immediately and in the same frame (multiple times if needed). + Due to technical restrictions the current NavigationServer command queue will be flushed. This means all already queued update commands for this physics frame will be executed, even those intended for other maps, regions and agents not part of the specified map. The expensive computation of the navigation meshes and region connections of a map will only be done for the specified map. Other maps will receive the normal synchronization at the end of the physics frame. Should the specified map receive changes after the forced update it will update again as well when the other maps receive their update. + Avoidance processing and dispatch of the safe_velocity signals is unaffected by this function and continues to happen for all maps and agents at the end of the physics frame. + Note: With great power comes great responsibility. This function should only be used by users that really know what they are doing and have a good reason for it. Forcing an immediate update of a navigation map requires locking the NavigationServer and flushing the entire NavigationServer command queue. Not only can this severely impact the performance of a game but it can also introduce bugs if used inappropriately without much foresight. + + + + + Returns the current iteration id of the navigation map. Every time the navigation map changes and synchronizes the iteration id increases. An iteration id of 0 means the navigation map has never synchronized. + Note: The iteration id will wrap back to 1 after reaching its range limit. + + + + + Returns a random position picked from all map region polygons with matching . + If is , all map regions, polygons, and faces are weighted by their surface area (slower). + If is , just a random region and a random polygon are picked (faster). + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Creates a new region. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + If is , the navigation will use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Returns if the navigation is set to use edge connections to connect with other navigation regions within proximity of the navigation map edge connection margin. + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this region. + + + + + Returns the ObjectID of the object which manages this region. + + + + + Returns if the provided in world space is currently owned by the provided navigation . Owned in this context means that one of the region's navigation mesh polygon faces has a possible position at the closest distance to this point compared to all other navigation meshes from other navigation regions that are also registered on the navigation map of the provided region. + If multiple navigation meshes have positions at equal distance the navigation region whose polygons are processed first wins the ownership. Polygons are processed in the same order that navigation regions were registered on the NavigationServer. + Note: If navigation meshes from different navigation regions overlap (which should be avoided in general) the result might not be what is expected. + + + + + Sets the map for the region. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + Set the region's navigation layers. This allows selecting regions from a path request (when using ). + + + + + Returns the region's navigation layers. + + + + + Sets the global transformation for the region. + + + + + Returns the global transformation of this . + + + + + Sets the navigation mesh for the region. + + + + + Bakes the with bake source geometry collected starting from the . + + + + + Returns how many connections this has with other regions in the map. + + + + + Returns the starting point of a connection door. is an index between 0 and the return value of . + + + + + Returns the ending point of a connection door. is an index between 0 and the return value of . + + + + + Returns the navigation mesh surface point closest to the provided and segment on the navigation . + If is , a closest point test is only done when the segment intersects with the navigation mesh surface. + + + + + Returns the navigation mesh surface point closest to the provided on the navigation . + + + + + Returns the navigation mesh surface normal closest to the provided on the navigation . + + + + + Returns a random position picked from all region polygons with matching . + If is , all region polygons and faces are weighted by their surface area (slower). + If is , just a random polygon and face is picked (faster). + + + + + Create a new link between two positions on a map. + + + + + Sets the navigation map for the link. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is , the specified will contribute to its current navigation map. + + + + + Returns if the specified is enabled. + + + + + Sets whether this can be travelled in both directions. + + + + + Returns whether this can be travelled in both directions. + + + + + Set the links's navigation layers. This allows selecting links from a path request (when using ). + + + + + Returns the navigation layers for this . + + + + + Sets the entry position for this . + + + + + Returns the starting position of this . + + + + + Sets the exit position for the . + + + + + Returns the ending position of this . + + + + + Sets the for this . + + + + + Returns the enter cost of this . + + + + + Sets the for this . + + + + + Returns the travel cost of this . + + + + + Set the ObjectID of the object which manages this link. + + + + + Returns the ObjectID of the object which manages this link. + + + + + Creates the agent. + + + + + If is , the provided calculates avoidance. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the agent uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + If the agent calculates avoidance velocities in 3D for the xyz-axis, e.g. for games that take place in air, underwater or space. The 3D using agent only avoids other 3D avoidance using agent's. The 3D using agent only reacts to radius based avoidance obstacles. The 3D using agent ignores any vertices based obstacles. The 3D using agent only avoids other 3D using agent's. + If the agent calculates avoidance velocities in 2D along the xz-axis ignoring the y-axis. The 2D using agent only avoids other 2D avoidance using agent's. The 2D using agent reacts to radius avoidance obstacles. The 2D using agent reacts to vertices based avoidance obstacles. The 2D using agent only avoids other 2D using agent's. 2D using agents will ignore other 2D using agents or obstacles that are below their current position or above their current position including the agents height in 2D avoidance. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Puts the agent in the map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. calculate avoidance velocities or receive avoidance callbacks. + + + + + Returns if the specified is paused. + + + + + Sets the maximum distance to other agents this agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum distance to other agents the specified takes into account in the navigation. + + + + + Sets the maximum number of other agents the agent takes into account in the navigation. The larger this number, the longer the running time of the simulation. If the number is too low, the simulation will not be safe. + + + + + Returns the maximum number of other agents the specified takes into account in the navigation. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to other agents. The larger this number, the sooner this agent will respond to the presence of other agents, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to other agents. + + + + + The minimal amount of time for which the agent's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. The larger this number, the sooner this agent will respond to the presence of static avoidance obstacles, but the less freedom this agent has in choosing its velocities. A too high value will slow down agents movement considerably. Must be positive. + + + + + Returns the minimal amount of time for which the specified 's velocities that are computed by the simulation are safe with respect to static avoidance obstacles. + + + + + Sets the radius of the agent. + + + + + Returns the radius of the specified . + + + + + Updates the provided . + + + + + Returns the height of the specified . + + + + + Sets the maximum speed of the agent. Must be positive. + + + + + Returns the maximum speed of the specified . + + + + + Replaces the internal velocity in the collision avoidance simulation with for the specified . When an agent is teleported to a new position this function should be used in the same frame. If called frequently this function can get agents stuck. + + + + + Sets as the new wanted velocity for the specified . The avoidance simulation will try to fulfill this velocity if possible but will modify it to avoid collision with other agent's and obstacles. When an agent is teleported to a new position use as well to reset the internal simulation velocity. + + + + + Returns the velocity of the specified . + + + + + Sets the position of the agent in world space. + + + + + Returns the position of the specified in world space. + + + + + Returns if the map got changed the previous frame. + + + + + Sets the callback that gets called after each avoidance processing step for the . The calculated safe_velocity will be dispatched with a signal to the object just before the physics calculations. + Note: Created callbacks are always processed independently of the SceneTree state as long as the agent is on a navigation map and not freed. To disable the dispatch of a callback from an agent use again with an empty . + + + + + Return if the specified has an avoidance callback. + + + + + Set the agent's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Set the agent's avoidance_mask bitmask. + + + + + Returns the avoidance_mask bitmask of the specified . + + + + + Set the agent's avoidance_priority with a between 0.0 (lowest priority) to 1.0 (highest priority). + The specified does not adjust the velocity for other agents that would match the avoidance_mask but have a lower avoidance_priority. This in turn makes the other agents with lower priority adjust their velocities even more to avoid collision with this agent. + + + + + Returns the avoidance_priority of the specified . + + + + + Creates a new obstacle. + + + + + If is , the provided affects avoidance using agents. + + + + + Returns if the provided has avoidance enabled. + + + + + Sets if the uses the 2D avoidance or the 3D avoidance while avoidance is enabled. + + + + + Returns if the provided uses avoidance in 3D space Vector3(x,y,z) instead of horizontal 2D Vector2(x,y) / Vector3(x,0.0,z). + + + + + Assigns the to a navigation map. + + + + + Returns the navigation map the requested is currently assigned to. + + + + + If is the specified will not be processed, e.g. affect avoidance velocities. + + + + + Returns if the specified is paused. + + + + + Sets the radius of the dynamic obstacle. + + + + + Returns the radius of the specified dynamic . + + + + + Sets the for the . In 3D agents will ignore obstacles that are above or below them while using 2D avoidance. + + + + + Returns the height of the specified . + + + + + Sets of the dynamic . Allows other agents to better predict the movement of the dynamic obstacle. Only works in combination with the radius of the obstacle. + + + + + Returns the velocity of the specified dynamic . + + + + + Updates the in world space for the . + + + + + Returns the position of the specified in world space. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Sets the outline vertices for the obstacle. If the vertices are winded in clockwise order agents will be pushed in by the obstacle, else they will be pushed out. + + + + + Returns the outline vertices for the specified . + + + + + Set the obstacles's avoidance_layers bitmask. + + + + + Returns the avoidance_layers bitmask of the specified . + + + + + Parses the for source geometry according to the properties of . Updates the provided resource with the resulting data. The resource can then be used to bake a navigation mesh with . After the process is finished the optional will be called. + Note: This function needs to run on the main thread or with a deferred call as the SceneTree is not thread-safe. + Performance: While convenient, reading data arrays from resources can affect the frame rate negatively. The data needs to be received from the GPU, stalling the in the process. For performance prefer the use of e.g. collision shapes or creating the data arrays entirely in code. + + + + + Bakes the provided with the data from the provided . After the process is finished the optional will be called. + + + + + Bakes the provided with the data from the provided as an async task running on a background thread. After the process is finished the optional will be called. + + + + + Returns when the provided navigation mesh is being baked on a background thread. + + + + + Creates a new source geometry parser. If a is set for the parser with the callback will be called for every single node that gets parsed whenever is used. + + + + + Sets the for the specific source geometry . The will receive a call with the following parameters: + - navigation_mesh - The reference used to define the parse settings. Do NOT edit or add directly to the navigation mesh. + - source_geometry_data - The reference. Add custom source geometry for navigation mesh baking to this object. + - node - The that is parsed. + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Returns a simplified version of with less critical path points removed. The simplification amount is in worlds units and controlled by . The simplification uses a variant of Ramer-Douglas-Peucker algorithm for curve point decimation. + Path simplification can be helpful to mitigate various path following issues that can arise with certain agent types and script behaviors. E.g. "steering" agents or avoidance in "open fields". + + + + + Destroys the given RID. + + + + + Control activation of this server. + + + + + If enables debug mode on the NavigationServer. + + + + + Returns when the NavigationServer has debug enabled. + + + + + Returns information about the current state of the NavigationServer. See for a list of available states. + + + + + Queries a path in a given navigation map. Start and target position and other parameters are defined through . Updates the provided result object with the path among other results requested by the query. After the process is finished the optional will be called. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a navigation map is updated, when a region moves or is modified. + + + + + Emitted when navigation debug settings are changed. Only available in debug builds. + + + + + Emitted when avoidance debug settings are changed. Only available in debug builds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_maps' method. + + + + + Cached name for the 'map_create' method. + + + + + Cached name for the 'map_set_active' method. + + + + + Cached name for the 'map_is_active' method. + + + + + Cached name for the 'map_set_up' method. + + + + + Cached name for the 'map_get_up' method. + + + + + Cached name for the 'map_set_cell_size' method. + + + + + Cached name for the 'map_get_cell_size' method. + + + + + Cached name for the 'map_set_cell_height' method. + + + + + Cached name for the 'map_get_cell_height' method. + + + + + Cached name for the 'map_set_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_get_merge_rasterizer_cell_scale' method. + + + + + Cached name for the 'map_set_use_edge_connections' method. + + + + + Cached name for the 'map_get_use_edge_connections' method. + + + + + Cached name for the 'map_set_edge_connection_margin' method. + + + + + Cached name for the 'map_get_edge_connection_margin' method. + + + + + Cached name for the 'map_set_link_connection_radius' method. + + + + + Cached name for the 'map_get_link_connection_radius' method. + + + + + Cached name for the 'map_get_path' method. + + + + + Cached name for the 'map_get_closest_point_to_segment' method. + + + + + Cached name for the 'map_get_closest_point' method. + + + + + Cached name for the 'map_get_closest_point_normal' method. + + + + + Cached name for the 'map_get_closest_point_owner' method. + + + + + Cached name for the 'map_get_links' method. + + + + + Cached name for the 'map_get_regions' method. + + + + + Cached name for the 'map_get_agents' method. + + + + + Cached name for the 'map_get_obstacles' method. + + + + + Cached name for the 'map_force_update' method. + + + + + Cached name for the 'map_get_iteration_id' method. + + + + + Cached name for the 'map_get_random_point' method. + + + + + Cached name for the 'query_path' method. + + + + + Cached name for the 'region_create' method. + + + + + Cached name for the 'region_set_enabled' method. + + + + + Cached name for the 'region_get_enabled' method. + + + + + Cached name for the 'region_set_use_edge_connections' method. + + + + + Cached name for the 'region_get_use_edge_connections' method. + + + + + Cached name for the 'region_set_enter_cost' method. + + + + + Cached name for the 'region_get_enter_cost' method. + + + + + Cached name for the 'region_set_travel_cost' method. + + + + + Cached name for the 'region_get_travel_cost' method. + + + + + Cached name for the 'region_set_owner_id' method. + + + + + Cached name for the 'region_get_owner_id' method. + + + + + Cached name for the 'region_owns_point' method. + + + + + Cached name for the 'region_set_map' method. + + + + + Cached name for the 'region_get_map' method. + + + + + Cached name for the 'region_set_navigation_layers' method. + + + + + Cached name for the 'region_get_navigation_layers' method. + + + + + Cached name for the 'region_set_transform' method. + + + + + Cached name for the 'region_get_transform' method. + + + + + Cached name for the 'region_set_navigation_mesh' method. + + + + + Cached name for the 'region_bake_navigation_mesh' method. + + + + + Cached name for the 'region_get_connections_count' method. + + + + + Cached name for the 'region_get_connection_pathway_start' method. + + + + + Cached name for the 'region_get_connection_pathway_end' method. + + + + + Cached name for the 'region_get_closest_point_to_segment' method. + + + + + Cached name for the 'region_get_closest_point' method. + + + + + Cached name for the 'region_get_closest_point_normal' method. + + + + + Cached name for the 'region_get_random_point' method. + + + + + Cached name for the 'link_create' method. + + + + + Cached name for the 'link_set_map' method. + + + + + Cached name for the 'link_get_map' method. + + + + + Cached name for the 'link_set_enabled' method. + + + + + Cached name for the 'link_get_enabled' method. + + + + + Cached name for the 'link_set_bidirectional' method. + + + + + Cached name for the 'link_is_bidirectional' method. + + + + + Cached name for the 'link_set_navigation_layers' method. + + + + + Cached name for the 'link_get_navigation_layers' method. + + + + + Cached name for the 'link_set_start_position' method. + + + + + Cached name for the 'link_get_start_position' method. + + + + + Cached name for the 'link_set_end_position' method. + + + + + Cached name for the 'link_get_end_position' method. + + + + + Cached name for the 'link_set_enter_cost' method. + + + + + Cached name for the 'link_get_enter_cost' method. + + + + + Cached name for the 'link_set_travel_cost' method. + + + + + Cached name for the 'link_get_travel_cost' method. + + + + + Cached name for the 'link_set_owner_id' method. + + + + + Cached name for the 'link_get_owner_id' method. + + + + + Cached name for the 'agent_create' method. + + + + + Cached name for the 'agent_set_avoidance_enabled' method. + + + + + Cached name for the 'agent_get_avoidance_enabled' method. + + + + + Cached name for the 'agent_set_use_3d_avoidance' method. + + + + + Cached name for the 'agent_get_use_3d_avoidance' method. + + + + + Cached name for the 'agent_set_map' method. + + + + + Cached name for the 'agent_get_map' method. + + + + + Cached name for the 'agent_set_paused' method. + + + + + Cached name for the 'agent_get_paused' method. + + + + + Cached name for the 'agent_set_neighbor_distance' method. + + + + + Cached name for the 'agent_get_neighbor_distance' method. + + + + + Cached name for the 'agent_set_max_neighbors' method. + + + + + Cached name for the 'agent_get_max_neighbors' method. + + + + + Cached name for the 'agent_set_time_horizon_agents' method. + + + + + Cached name for the 'agent_get_time_horizon_agents' method. + + + + + Cached name for the 'agent_set_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_get_time_horizon_obstacles' method. + + + + + Cached name for the 'agent_set_radius' method. + + + + + Cached name for the 'agent_get_radius' method. + + + + + Cached name for the 'agent_set_height' method. + + + + + Cached name for the 'agent_get_height' method. + + + + + Cached name for the 'agent_set_max_speed' method. + + + + + Cached name for the 'agent_get_max_speed' method. + + + + + Cached name for the 'agent_set_velocity_forced' method. + + + + + Cached name for the 'agent_set_velocity' method. + + + + + Cached name for the 'agent_get_velocity' method. + + + + + Cached name for the 'agent_set_position' method. + + + + + Cached name for the 'agent_get_position' method. + + + + + Cached name for the 'agent_is_map_changed' method. + + + + + Cached name for the 'agent_set_avoidance_callback' method. + + + + + Cached name for the 'agent_has_avoidance_callback' method. + + + + + Cached name for the 'agent_set_avoidance_layers' method. + + + + + Cached name for the 'agent_get_avoidance_layers' method. + + + + + Cached name for the 'agent_set_avoidance_mask' method. + + + + + Cached name for the 'agent_get_avoidance_mask' method. + + + + + Cached name for the 'agent_set_avoidance_priority' method. + + + + + Cached name for the 'agent_get_avoidance_priority' method. + + + + + Cached name for the 'obstacle_create' method. + + + + + Cached name for the 'obstacle_set_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_get_avoidance_enabled' method. + + + + + Cached name for the 'obstacle_set_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_get_use_3d_avoidance' method. + + + + + Cached name for the 'obstacle_set_map' method. + + + + + Cached name for the 'obstacle_get_map' method. + + + + + Cached name for the 'obstacle_set_paused' method. + + + + + Cached name for the 'obstacle_get_paused' method. + + + + + Cached name for the 'obstacle_set_radius' method. + + + + + Cached name for the 'obstacle_get_radius' method. + + + + + Cached name for the 'obstacle_set_height' method. + + + + + Cached name for the 'obstacle_get_height' method. + + + + + Cached name for the 'obstacle_set_velocity' method. + + + + + Cached name for the 'obstacle_get_velocity' method. + + + + + Cached name for the 'obstacle_set_position' method. + + + + + Cached name for the 'obstacle_get_position' method. + + + + + Cached name for the 'obstacle_set_vertices' method. + + + + + Cached name for the 'obstacle_get_vertices' method. + + + + + Cached name for the 'obstacle_set_avoidance_layers' method. + + + + + Cached name for the 'obstacle_get_avoidance_layers' method. + + + + + Cached name for the 'parse_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data' method. + + + + + Cached name for the 'bake_from_source_geometry_data_async' method. + + + + + Cached name for the 'is_baking_navigation_mesh' method. + + + + + Cached name for the 'source_geometry_parser_create' method. + + + + + Cached name for the 'source_geometry_parser_set_callback' method. + + + + + Cached name for the 'simplify_path' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'set_debug_enabled' method. + + + + + Cached name for the 'get_debug_enabled' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'map_changed' signal. + + + + + Cached name for the 'navigation_debug_changed' signal. + + + + + Cached name for the 'avoidance_debug_changed' signal. + + + + + Also known as 9-slice panels, 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. + + + + + Stretches the center texture across the NinePatchRect. This may cause the texture to be distorted. + + + + + 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. + + + + + 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 . The texture must be seamless for this to work without displaying artifacts between edges. + + + + + The node's texture resource. + + + + + If , draw the panel's center. Else, only draw the 9-slice's borders. + + + + + Rectangular region of the texture to sample from. If you're working with an atlas, use this property to define the area the 9-slice should use. All other properties are relative to this one. If the rect is empty, NinePatchRect will use the whole texture. + + + + + The width of the 9-slice's left column. A margin of 16 means the 9-slice's left corners and side will have a width of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The height of the 9-slice's top row. A margin of 16 means the 9-slice's top corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The width of the 9-slice's right column. A margin of 16 means the 9-slice's right corners and side will have a width of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The height of the 9-slice's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. + + + + + The stretch mode to use for horizontal stretching/tiling. See for possible values. + + + + + The stretch mode to use for vertical stretching/tiling. See for possible values. + + + + + Sets the size of the margin on the specified to pixels. + + + + + Returns the size of the margin on the specified . + + + + + Emitted when the node's texture changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'draw_center' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached name for the 'patch_margin_left' property. + + + + + Cached name for the 'patch_margin_top' property. + + + + + Cached name for the 'patch_margin_right' property. + + + + + Cached name for the 'patch_margin_bottom' property. + + + + + Cached name for the 'axis_stretch_horizontal' property. + + + + + Cached name for the 'axis_stretch_vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_patch_margin' method. + + + + + Cached name for the 'get_patch_margin' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_draw_center' method. + + + + + Cached name for the 'is_draw_center_enabled' method. + + + + + Cached name for the 'set_h_axis_stretch_mode' method. + + + + + Cached name for the 'get_h_axis_stretch_mode' method. + + + + + Cached name for the 'set_v_axis_stretch_mode' method. + + + + + Cached name for the 'get_v_axis_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'texture_changed' signal. + + + + + 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. + Note: Since both and inherit from , they share several concepts from the class such as the and properties. + + + + + Position, relative to the node's parent. See also . + + + + + Rotation in radians, relative to the node's parent. See also . + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use . + + + + + Helper property to access in degrees instead of radians. See also . + + + + + The node's scale, relative to the node's parent. Unscaled value: (1, 1). See also . + Note: Negative X scales in 2D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, negative scales on the X axis will be changed to negative scales on the Y axis and a rotation of 180 degrees when decomposed. + + + + + If set to a non-zero value, slants the node in one direction or another. This can be used for pseudo-3D effects. See also . + Note: Skew is performed on the X axis only, and between rotation and scaling. + Note: This property is edited in the inspector in degrees. If you want to use degrees in a script, use skew = deg_to_rad(value_in_degrees). + + + + + The node's , relative to the node's parent. See also . + + + + + Global position. See also . + + + + + Global rotation in radians. See also . + + + + + Helper property to access in degrees instead of radians. See also . + + + + + Global scale. See also . + + + + + Global skew in radians. See also . + + + + + Global . See also . + + + + + Applies a rotation to the node, in radians, starting from its current rotation. + + + + + Applies a local translation on the node's X axis based on the 's . If is , normalizes the movement. + + + + + Applies a local translation on the node's Y axis based on the 's . If is , normalizes the movement. + + + + + Translates the node by the given in local coordinates. + + + + + Adds the vector to the node's global position. + + + + + Multiplies the current scale by the vector. + + + + + Rotates the node so that its local +X axis points towards the , which is expected to use global coordinates. + should not be the same as the node's position, otherwise the node always looks to the right. + + + + + Returns the angle between the node and the in radians. + Illustration of the returned angle. + + + + + Transforms the provided global position into a position in local coordinate space. The output will be local relative to the it is called on. e.g. It is appropriate for determining the positions of child nodes, but it is not appropriate for determining its own position relative to its parent. + + + + + Transforms the provided local position into a position in global coordinate space. The input is expected to be local relative to the it is called on. e.g. Applying this method to the positions of child nodes will correctly transform their positions into the global coordinate space, but applying it to a node's own position will give an incorrect result, as it will incorporate the node's own transformation into its global position. + + + + + Returns the relative to this node's parent. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'rotation' property. + + + + + Cached name for the 'rotation_degrees' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'skew' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'global_position' property. + + + + + Cached name for the 'global_rotation' property. + + + + + Cached name for the 'global_rotation_degrees' property. + + + + + Cached name for the 'global_scale' property. + + + + + Cached name for the 'global_skew' property. + + + + + Cached name for the 'global_transform' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'set_rotation' method. + + + + + Cached name for the 'set_rotation_degrees' method. + + + + + Cached name for the 'set_skew' method. + + + + + Cached name for the 'set_scale' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'get_rotation' method. + + + + + Cached name for the 'get_rotation_degrees' method. + + + + + Cached name for the 'get_skew' method. + + + + + Cached name for the 'get_scale' method. + + + + + Cached name for the 'rotate' method. + + + + + Cached name for the 'move_local_x' method. + + + + + Cached name for the 'move_local_y' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'global_translate' method. + + + + + Cached name for the 'apply_scale' method. + + + + + Cached name for the 'set_global_position' method. + + + + + Cached name for the 'get_global_position' method. + + + + + Cached name for the 'set_global_rotation' method. + + + + + Cached name for the 'set_global_rotation_degrees' method. + + + + + Cached name for the 'get_global_rotation' method. + + + + + Cached name for the 'get_global_rotation_degrees' method. + + + + + Cached name for the 'set_global_skew' method. + + + + + Cached name for the 'get_global_skew' method. + + + + + Cached name for the 'set_global_scale' method. + + + + + Cached name for the 'get_global_scale' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'set_global_transform' method. + + + + + Cached name for the 'look_at' method. + + + + + Cached name for the 'get_angle_to' method. + + + + + Cached name for the 'to_local' method. + + + + + Cached name for the 'to_global' method. + + + + + Cached name for the 'get_relative_transform_to_parent' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This abstract class helps connect the scene with the editor-specific EditorNode3DGizmo class. + by itself has no exposed API, refer to and pass it an EditorNode3DGizmo instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class defines the interface for noise generation libraries to inherit from. + A default implementation is provided for libraries that do not provide seamless noise. This function requests a larger image from the 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. + + + + + Returns the 1D noise value at the given (x) coordinate. + + + + + Returns the 2D noise value at the given position. + + + + + Returns the 2D noise value at the given position. + + + + + Returns the 3D noise value at the given position. + + + + + Returns the 3D noise value at the given position. + + + + + Returns an containing 2D noise values. + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Returns an containing seamless 2D noise values. + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Returns an of s containing 3D noise values for use with . + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Returns an of s containing seamless 3D noise values for use with . + Note: With set to , the default implementation expects the noise generator to return values in the range -1.0 to 1.0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_noise_1d' method. + + + + + Cached name for the 'get_noise_2d' method. + + + + + Cached name for the 'get_noise_2dv' method. + + + + + Cached name for the 'get_noise_3d' method. + + + + + Cached name for the 'get_noise_3dv' method. + + + + + Cached name for the 'get_image' method. + + + + + Cached name for the 'get_seamless_image' method. + + + + + Cached name for the 'get_image_3d' method. + + + + + Cached name for the 'get_seamless_image_3d' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uses the library or other noise generators to fill the texture data of your desired size. can also generate normal map textures. + The class uses s to generate the texture data internally, so may return if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the image and the generated byte data: + + var texture = NoiseTexture2D.new() + texture.noise = FastNoiseLite.new() + await texture.changed + var image = texture.get_image() + var data = image.get_data() + + + + + + Width of the generated texture (in pixels). + + + + + Height of the generated texture (in pixels). + + + + + If , inverts the noise texture. White becomes black, black becomes white. + + + + + Determines whether the noise image is calculated in 3D space. May result in reduced contrast. + + + + + Determines whether mipmaps are generated for this texture. Enabling this results in less texture aliasing in the distance, at the cost of increasing memory usage by roughly 33% and making the noise texture generation take longer. + Note: requires mipmap filtering to be enabled on the material using the to have an effect. + + + + + If , a seamless texture is requested from the resource. + Note: Seamless noise textures may take longer to generate and/or can have a lower contrast compared to non-seamless noise depending on the used resource. This is because some implementations use higher dimensions for generating seamless noise. + Note: The default implementation uses the fallback path for seamless generation. If using a or lower than the default, you may need to increase to make seamless blending more effective. + + + + + Used for the default/fallback implementation of the seamless texture generation. It determines the distance over which the seams are blended. High values may result in less details and contrast. See for further details. + Note: If using a or lower than the default, you may need to increase to make seamless blending more effective. + + + + + If , the resulting texture contains a normal map created from the original noise interpreted as a bump map. + + + + + Strength of the bump maps used in this texture. A higher value will make the bump maps appear larger while a lower value will make them appear softer. + + + + + If , the noise image coming from the noise generator is normalized to the range 0.0 to 1.0. + Turning normalization off can affect the contrast and allows you to generate non repeating tileable noise textures. + + + + + A which is used to map the luminance of each pixel to a color value. + + + + + The instance of the object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'invert' property. + + + + + Cached name for the 'in_3d_space' property. + + + + + Cached name for the 'generate_mipmaps' property. + + + + + Cached name for the 'seamless' property. + + + + + Cached name for the 'seamless_blend_skirt' property. + + + + + Cached name for the 'as_normal_map' property. + + + + + Cached name for the 'bump_strength' property. + + + + + Cached name for the 'normalize' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'noise' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'set_invert' method. + + + + + Cached name for the 'get_invert' method. + + + + + Cached name for the 'set_in_3d_space' method. + + + + + Cached name for the 'is_in_3d_space' method. + + + + + Cached name for the 'set_generate_mipmaps' method. + + + + + Cached name for the 'is_generating_mipmaps' method. + + + + + Cached name for the 'set_seamless' method. + + + + + Cached name for the 'get_seamless' method. + + + + + Cached name for the 'set_seamless_blend_skirt' method. + + + + + Cached name for the 'get_seamless_blend_skirt' method. + + + + + Cached name for the 'set_as_normal_map' method. + + + + + Cached name for the 'is_normal_map' method. + + + + + Cached name for the 'set_bump_strength' method. + + + + + Cached name for the 'get_bump_strength' method. + + + + + Cached name for the 'set_normalize' method. + + + + + Cached name for the 'is_normalized' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_noise' method. + + + + + Cached name for the 'get_noise' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uses the library or other noise generators to fill the texture data of your desired size. + The class uses s to generate the texture data internally, so may return if the generation process has not completed yet. In that case, you need to wait for the texture to be generated before accessing the image: + + var texture = NoiseTexture3D.new() + texture.noise = FastNoiseLite.new() + await texture.changed + var data = texture.get_data() + + + + + + Width of the generated texture (in pixels). + + + + + Height of the generated texture (in pixels). + + + + + Depth of the generated texture (in pixels). + + + + + If , inverts the noise texture. White becomes black, black becomes white. + + + + + If , a seamless texture is requested from the resource. + Note: Seamless noise textures may take longer to generate and/or can have a lower contrast compared to non-seamless noise depending on the used resource. This is because some implementations use higher dimensions for generating seamless noise. + Note: The default implementation uses the fallback path for seamless generation. If using a , or lower than the default, you may need to increase to make seamless blending more effective. + + + + + Used for the default/fallback implementation of the seamless texture generation. It determines the distance over which the seams are blended. High values may result in less details and contrast. See for further details. + Note: If using a , or lower than the default, you may need to increase to make seamless blending more effective. + + + + + If , the noise image coming from the noise generator is normalized to the range 0.0 to 1.0. + Turning normalization off can affect the contrast and allows you to generate non repeating tileable noise textures. + + + + + A which is used to map the luminance of each pixel to a color value. + + + + + The instance of the object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'invert' property. + + + + + Cached name for the 'seamless' property. + + + + + Cached name for the 'seamless_blend_skirt' property. + + + + + Cached name for the 'normalize' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'noise' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'set_invert' method. + + + + + Cached name for the 'get_invert' method. + + + + + Cached name for the 'set_seamless' method. + + + + + Cached name for the 'get_seamless' method. + + + + + Cached name for the 'set_seamless_blend_skirt' method. + + + + + Cached name for the 'get_seamless_blend_skirt' method. + + + + + Cached name for the 'set_normalize' method. + + + + + Cached name for the 'is_normalized' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_noise' method. + + + + + Cached name for the 'get_noise' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + ORMMaterial3D's properties are inherited from . Unlike , ORMMaterial3D uses a single texture for ambient occlusion, roughness and metallic maps, known as an ORM texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class wraps the most common functionalities for communicating with the host operating system, such as the video driver, delays, environment variables, execution of binaries, command line, etc. + Note: In Godot 4, functions related to window management, clipboard, and TTS were moved to the singleton (and the class). Functions related to time were removed and are only available in the class. + + + + + The Vulkan rendering driver. It requires Vulkan 1.0 support and automatically uses features from Vulkan 1.1 and 1.2 if available. + + + + + 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. + + + + + The Direct3D 12 rendering driver. + + + + + The Metal rendering driver. + + + + + Refers to the Desktop directory path. + + + + + Refers to the DCIM (Digital Camera Images) directory path. + + + + + Refers to the Documents directory path. + + + + + Refers to the Downloads directory path. + + + + + Refers to the Movies (or Videos) directory path. + + + + + Refers to the Music directory path. + + + + + Refers to the Pictures directory path. + + + + + Refers to the Ringtones directory path. + + + + + Standard I/O device is invalid. No data can be received from or sent to these standard I/O devices. + + + + + Standard I/O device is a console. This typically occurs when Godot is run from a terminal with no redirection. This is also used for all standard I/O devices when running Godot from the editor, at least on desktop platforms. + + + + + Standard I/O device is a regular file. This typically occurs with redirection from a terminal, e.g. godot > stdout.txt, godot < stdin.txt or godot > stdout_stderr.txt 2>&1. + + + + + Standard I/O device is a FIFO/pipe. This typically occurs with pipe usage from a terminal, e.g. echo "Hello" | godot. + + + + + Standard I/O device type is unknown. + + + + + If , the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile. + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode. + + + + + The amount of sleeping between frames when the low-processor usage mode is enabled, in microseconds. Higher values will result in lower CPU usage. See also . + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode_sleep_usec. + + + + + If , the engine filters the time delta measured between each frame, and attempts to compensate for random variation. This only works on systems where V-Sync is active. + Note: On start-up, this is the same as ProjectSettings.application/run/delta_smoothing. + + + + + Generates a [] of cryptographically secure random bytes with given . + Note: Generating large quantities of bytes using this method can result in locking and entropy of lower quality on most platforms. Using is preferred in most cases. + + + + + Returns the list of certification authorities trusted by the operating system as a string of concatenated certificates in PEM format. + + + + + Returns an array of connected MIDI device names, if they exist. Returns an empty array if the system MIDI driver has not previously been initialized with . See also . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Initializes the singleton for the system MIDI driver, allowing Godot to receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Shuts down the system MIDI driver. Godot will no longer receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + + + + + Displays a modal dialog box using the host platform's implementation. The engine execution is blocked until the dialog is closed. + + + + + Crashes the engine (or the editor if called within a @tool script). See also . + Note: This method should only be used for testing the system's crash handler, not for any other purpose. For general error reporting, use (in order of preference) @GDScript.assert, @GlobalScope.push_error, or . + + + + + Returns the number of logical CPU cores available on the host machine. On CPUs with HyperThreading enabled, this number will be greater than the number of physical CPU cores. + + + + + Returns the full name of the CPU model on the host machine (e.g. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz"). + Note: This method is only implemented on Windows, macOS, Linux and iOS. On Android and Web, returns an empty string. + + + + + Returns the list of font family names available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the path to the system font file with and style. Returns an empty string if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Returned font might have different style if the requested style is not available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns an array of the system substitute font file paths, which are similar to the font with and style for the specified text, locale, and script. Returns an empty array if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Depending on OS, it's not guaranteed that any of the returned fonts will be suitable for rendering specified text. Fonts should be loaded and checked in the order they are returned, and the first suitable one used. + Note: Returned fonts might have different style if the requested style is not available or belong to a different font family. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the file path to the current engine executable. + Note: On macOS, if you want to launch another instance of Godot, always use instead of relying on the executable path. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Reads a user input as raw data from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Returns type of the standard input device. + + + + + Returns type of the standard output device. + + + + + Returns type of the standard error device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Kill (terminate) the process identified by the given process ID (), such as the ID returned by in non-blocking mode. See also . + Note: This method can also be used to kill processes that were not spawned by the engine. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Requests the OS to open a resource identified by with the most appropriate program. For example: + - OS.shell_open("C:\\Users\name\Downloads") on Windows opens the file explorer at the user's Downloads folder. + - OS.shell_open("https://godotengine.org") opens the default web browser on the official Godot website. + - OS.shell_open("mailto:example@example.com") opens the default email client with the "To" field set to example@example.com. See RFC 2368 - The mailto URL scheme for a list of fields that can be added. + Use to convert a res:// or user:// project path into a system path for use with this method. + Note: Use String.uri_encode to encode characters within URLs in a URL-safe, portable way. This is especially required for line breaks. Otherwise, may not work correctly in a project exported to the Web platform. + Note: This method is implemented on Android, iOS, Web, Linux, macOS and Windows. + + + + + Requests the OS to open the file manager, navigate to the given and select the target file or folder. + If is and is a valid directory path, the OS will open the file manager and navigate to the target folder without selecting anything. + Use to convert a res:// or user:// project path into a system path to use with this method. + Note: This method is currently only implemented on Windows and macOS. On other platforms, it will fallback to with a directory path of prefixed with file://. + + + + + Returns if the child process ID () is still running or if it has terminated. must be a valid ID generated from . + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns the exit code of a spawned process once it has finished running (see ). + Returns -1 if the is not a PID of a spawned child process, the process is still running, or the method is not implemented for the current platform. + Note: Returns -1 if the is a macOS bundled app process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Returns the number used by the host machine to uniquely identify this application. + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns if the environment variable with the name exists. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the value of the given environment variable, or an empty string if doesn't exist. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + Note: On macOS, applications do not have access to shell environment variables. + + + + + Sets the value of the environment variable to . The environment variable will be set for the Godot process and any process executed with after running . The environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. The name cannot be empty or include the = character. On Windows, there is a 32767 characters limit for the combined length of , , and the = and null terminator characters that will be registered in the environment block. + + + + + Removes the given environment variable from the current environment, if it exists. The name cannot be empty or include the = character. The environment variable will be removed for the Godot process and any process executed with after running . The removal of the environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the name of the host platform. + - On Windows, this is "Windows". + - On macOS, this is "macOS". + - On Linux-based operating systems, this is "Linux". + - On BSD-based operating systems, this is "FreeBSD", "NetBSD", "OpenBSD", or "BSD" as a fallback. + - On Android, this is "Android". + - On iOS, this is "iOS". + - On Web, this is "Web". + Note: Custom builds of the engine may support additional platforms, such as consoles, possibly returning other names. + + switch (OS.GetName()) + { + case "Windows": + GD.Print("Welcome to Windows"); + break; + case "macOS": + GD.Print("Welcome to macOS!"); + break; + case "Linux": + case "FreeBSD": + case "NetBSD": + case "OpenBSD": + case "BSD": + GD.Print("Welcome to Linux/BSD!"); + break; + case "Android": + GD.Print("Welcome to Android!"); + break; + case "iOS": + GD.Print("Welcome to iOS!"); + break; + case "Web": + GD.Print("Welcome to the Web!"); + break; + } + + Note: On Web platforms, it is still possible to determine the host platform's OS with feature tags. See . + + + + + Returns the name of the distribution for Linux and BSD platforms (e.g. "Ubuntu", "Manjaro", "OpenBSD", etc.). + Returns the same value as for stock Android ROMs, but attempts to return the custom ROM name for popular Android derivatives such as "LineageOS". + Returns the same value as for other platforms. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the exact production and build version of the operating system. This is different from the branded version used in marketing. This helps to distinguish between different releases of operating systems, including minor versions, and insider and custom builds. + - For Windows, the major and minor version are returned, as well as the build number. For example, the returned string may look like 10.0.9926 for a build of Windows 10, and it may look like 6.1.7601 for a build of Windows 7 SP1. + - For rolling distributions, such as Arch Linux, an empty string is returned. + - For macOS and iOS, the major and minor version are returned, as well as the patch number. + - For Android, the SDK version and the incremental build number are returned. If it's a custom ROM, it attempts to return its version instead. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the branded version used in marketing, followed by the build number (on Windows) or the version number (on macOS). Examples include 11 (build 22000) and Sequoia (15.0.0). This value can then be appended to to get a full, human-readable operating system name and version combination for the operating system. Windows feature updates such as 24H2 are not contained in the resulting string, but Windows Server is recognized as such (e.g. 2025 (build 26100) for Windows Server 2025). + Note: This method is only supported on Windows and macOS. On other operating systems, it returns the same value as . + + + + + Returns the command-line arguments passed to the engine. + Command-line arguments can be written in any form, including both --key value and --key=value forms so they can be properly parsed, as long as custom command-line arguments do not conflict with engine arguments. + You can also incorporate environment variables using the method. + You can set ProjectSettings.editor/run/main_run_args to define command-line arguments to be passed by the editor when running the project. + Example: Parse command-line arguments into a using the --key=value form for arguments: + + var arguments = new Dictionary<string, string>(); + foreach (var argument in OS.GetCmdlineArgs()) + { + if (argument.Contains('=')) + { + string[] keyValue = argument.Split("="); + arguments[keyValue[0].TrimPrefix("--")] = keyValue[1]; + } + else + { + // Options without an argument will be present in the dictionary, + // with the value set to an empty string. + arguments[argument.TrimPrefix("--")] = ""; + } + } + + Note: Passing custom user arguments directly is not recommended, as the engine may discard or modify them. Instead, pass the standard UNIX double dash (--) and then the custom arguments, which the engine will ignore by design. These can be read via . + + + + + Returns the command-line user arguments passed to the engine. User arguments are ignored by the engine and reserved for the user. They are passed after the double dash -- argument. ++ may be used when -- is intercepted by another program (such as startx). + + # Godot has been executed with the following command: + # godot --fullscreen -- --level=2 --hardcore + + OS.get_cmdline_args() # Returns ["--fullscreen", "--level=2", "--hardcore"] + OS.get_cmdline_user_args() # Returns ["--level=2", "--hardcore"] + + To get all passed arguments, use . + + + + + Returns the video adapter driver name and version for the user's currently active graphics card, as a []. See also . + The first element holds the driver name, such as nvidia, amdgpu, etc. + The second element holds the driver version. For example, on the nvidia driver on a Linux/BSD platform, the version is in the format 510.85.02. For Windows, the driver's format is 31.0.15.1659. + Note: This method is only supported on Linux/BSD and Windows when not running in headless mode. On other platforms, it returns an empty array. + + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + + + + Returns if the project will automatically restart when it exits for any reason, otherwise. See also and . + + + + + Returns the list of command line arguments that will be used when the project automatically restarts using . See also . + + + + + Delays execution of the current thread by microseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with a delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Delays execution of the current thread by milliseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Returns the host OS locale as a of the form language_Script_COUNTRY_VARIANT@extra. Every substring after language is optional and may not exist. + - language - 2 or 3-letter language code, in lower case. + - Script - 4-letter script code, in title case. + - COUNTRY - 2 or 3-letter country code, in upper case. + - VARIANT - language variant, region and sort order. The variant can have any number of underscored keywords. + - extra - semicolon separated list of additional key words. This may include currency, calendar, sort order and numbering system information. + If you want only the language code and not the fully specified locale from the OS, you can use . + + + + + Returns the host OS locale's 2 or 3-letter language code as a string which should be consistent on all platforms. This is equivalent to extracting the language part of the string. + This can be used to narrow down fully specified locale strings to only the "common" language code, when you don't need the additional information about country code or variants. For example, for a French Canadian user with fr_CA locale, this would return fr. + + + + + Returns the model name of the current device. + Note: This method is implemented on Android, iOS, macOS, and Windows. Returns "GenericDevice" on unsupported platforms. + + + + + Returns if the user:// file system is persistent, that is, its state is the same after a player quits and starts the game again. Relevant to the Web platform, where this persistence may be unavailable. + + + + + Returns if the engine was executed with the --verbose or -v command line argument, or if ProjectSettings.debug/settings/stdout/verbose_stdout is . See also @GlobalScope.print_verbose. + + + + + Returns if the Godot binary used to run the project is a debug export template, or when running in the editor. + Returns if the Godot binary used to run the project is a release export template. + Note: To check whether the Godot binary used to run the project is an export template (debug or release), use OS.has_feature("template") instead. + + + + + Returns the amount of static memory being used by the program in bytes. Only works in debug builds. + + + + + Returns the maximum amount of static memory used. Only works in debug builds. + + + + + Returns a containing information about the current memory with the following entries: + - "physical" - total amount of usable physical memory in bytes. This value can be slightly less than the actual physical memory amount, since it does not include memory reserved by the kernel and devices. + - "free" - amount of physical memory, that can be immediately allocated without disk access or other costly operations, in bytes. The process might be able to allocate more physical memory, but this action will require moving inactive pages to disk, which can be expensive. + - "available" - amount of memory that can be allocated without extending the swap file(s), in bytes. This value includes both physical memory and swap. + - "stack" - size of the current thread stack in bytes. + Note: Each entry's value may be -1 if it is unknown. + + + + + Moves the file or directory at the given to the system's recycle bin. See also . + The method takes only global paths, so you may need to use . Do not use it for files in res:// as it will not work in exported projects. + Returns if the file or directory cannot be found, or the system does not support this method. + + var fileToRemove = "user://slot1.save"; + OS.MoveToTrash(ProjectSettings.GlobalizePath(fileToRemove)); + + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: If the user has disabled the recycle bin on their system, the file will be permanently deleted instead. + + + + + Returns the absolute directory path where user data is written (the user:// directory in Godot). The path depends on the project name and ProjectSettings.application/config/use_custom_user_dir. + - On Windows, this is %AppData%\Godot\app_userdata\[project_name], or %AppData%\[custom_name] if use_custom_user_dir is set. %AppData% expands to %UserProfile%\AppData\Roaming. + - On macOS, this is ~/Library/Application Support/Godot/app_userdata/[project_name], or ~/Library/Application Support/[custom_name] if use_custom_user_dir is set. + - On Linux and BSD, this is ~/.local/share/godot/app_userdata/[project_name], or ~/.local/share/[custom_name] if use_custom_user_dir is set. + - On Android and iOS, this is a sandboxed directory in either internal or external storage, depending on the user's configuration. + - On Web, this is a virtual directory managed by the browser. + If the project name is empty, [project_name] falls back to [unnamed project]. + Not to be confused with , which returns the global (non-project-specific) user home directory. + + + + + Returns the path to commonly used folders across different platforms, as defined by . See the constants for available locations. + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: Shared storage is implemented on Android and allows to differentiate between app specific and shared directories, if is . Shared directories have additional restrictions on Android. + + + + + Returns the global user configuration directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CONFIG_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global user data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_DATA_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global cache data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CACHE_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global temporary data directory according to the operating system's standards. + + + + + Returns a string that is unique to the device. + Note: This string may change without notice if the user reinstalls their operating system, upgrades it, or modifies their hardware. This means it should generally not be used to encrypt persistent data, as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by this method for security purposes. + Note: On Web, returns an empty string and generates an error, as this method cannot be implemented for security reasons. + + + + + Returns the given keycode as a . + + GD.Print(OS.GetKeycodeString(Key.C)); // Prints "C" + GD.Print(OS.GetKeycodeString(Key.Escape)); // Prints "Escape" + GD.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift | Key.Tab)); // Prints "Shift+Tab" + + See also , , and . + + + + + Returns if the input keycode corresponds to a Unicode character. For a list of codes, see the constants. + + GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False + GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False + + + + + + Finds the keycode for the given string. The returned values are equivalent to the constants. + + GD.Print(OS.FindKeycodeFromString("C")); // Prints C (Key.C) + GD.Print(OS.FindKeycodeFromString("Escape")); // Prints Escape (Key.Escape) + GD.Print(OS.FindKeycodeFromString("Shift+Tab")); // Prints 37748738 (KeyModifierMask.MaskShift | Key.Tab) + GD.Print(OS.FindKeycodeFromString("Unknown")); // Prints None (Key.None) + + See also . + + + + + If is , when opening a file for writing, a temporary file is used in its place. When closed, it is automatically applied to the target file. + This can useful when files may be opened by other applications, such as antiviruses, text editors, or even the Godot editor itself. + + + + + Assigns the given name to the current thread. Returns if unavailable on the current platform. + + + + + Returns the ID of the current thread. This can be used in logs to ease debugging of multi-threaded applications. + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns the ID of the main thread. See . + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns if the feature for the given feature tag is supported in the currently running instance, depending on the platform, build, etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the Feature Tags documentation for more details. + Note: Tag names are case-sensitive. + Note: On the Web platform, one of the following additional tags is defined to indicate the host platform: web_android, web_ios, web_linuxbsd, web_macos, or web_windows. + + + + + Returns if the application is running in the sandbox. + Note: This method is only implemented on macOS and Linux. + + + + + Requests permission from the OS for the given . Returns if the permission has been successfully granted. + Note: This method is currently only implemented on Android, to specifically request permission for "RECORD_AUDIO" by AudioDriverOpenSL. + + + + + Requests dangerous permissions from the OS. Returns if permissions have been successfully granted. + Note: This method is only implemented on Android. Normal permissions are automatically granted at install time in Android applications. + + + + + On Android devices: Returns the list of dangerous permissions that have been granted. + On macOS: Returns the list of user selected folders accessible to the application (sandboxed applications only). Use the native file dialog to request folder access permission. + + + + + On macOS (sandboxed applications only), this function clears list of user selected folders accessible to the application. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'low_processor_usage_mode' property. + + + + + Cached name for the 'low_processor_usage_mode_sleep_usec' property. + + + + + Cached name for the 'delta_smoothing' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_entropy' method. + + + + + Cached name for the 'get_system_ca_certificates' method. + + + + + Cached name for the 'get_connected_midi_inputs' method. + + + + + Cached name for the 'open_midi_inputs' method. + + + + + Cached name for the 'close_midi_inputs' method. + + + + + Cached name for the 'alert' method. + + + + + Cached name for the 'crash' method. + + + + + Cached name for the 'set_low_processor_usage_mode' method. + + + + + Cached name for the 'is_in_low_processor_usage_mode' method. + + + + + Cached name for the 'set_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'get_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'set_delta_smoothing' method. + + + + + Cached name for the 'is_delta_smoothing_enabled' method. + + + + + Cached name for the 'get_processor_count' method. + + + + + Cached name for the 'get_processor_name' method. + + + + + Cached name for the 'get_system_fonts' method. + + + + + Cached name for the 'get_system_font_path' method. + + + + + Cached name for the 'get_system_font_path_for_text' method. + + + + + Cached name for the 'get_executable_path' method. + + + + + Cached name for the 'read_string_from_stdin' method. + + + + + Cached name for the 'read_buffer_from_stdin' method. + + + + + Cached name for the 'get_stdin_type' method. + + + + + Cached name for the 'get_stdout_type' method. + + + + + Cached name for the 'get_stderr_type' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'execute_with_pipe' method. + + + + + Cached name for the 'create_process' method. + + + + + Cached name for the 'create_instance' method. + + + + + Cached name for the 'kill' method. + + + + + Cached name for the 'shell_open' method. + + + + + Cached name for the 'shell_show_in_file_manager' method. + + + + + Cached name for the 'is_process_running' method. + + + + + Cached name for the 'get_process_exit_code' method. + + + + + Cached name for the 'get_process_id' method. + + + + + Cached name for the 'has_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'unset_environment' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_distribution_name' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'get_version_alias' method. + + + + + Cached name for the 'get_cmdline_args' method. + + + + + Cached name for the 'get_cmdline_user_args' method. + + + + + Cached name for the 'get_video_adapter_driver_info' method. + + + + + Cached name for the 'set_restart_on_exit' method. + + + + + Cached name for the 'is_restart_on_exit_set' method. + + + + + Cached name for the 'get_restart_on_exit_arguments' method. + + + + + Cached name for the 'delay_usec' method. + + + + + Cached name for the 'delay_msec' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_locale_language' method. + + + + + Cached name for the 'get_model_name' method. + + + + + Cached name for the 'is_userfs_persistent' method. + + + + + Cached name for the 'is_stdout_verbose' method. + + + + + Cached name for the 'is_debug_build' method. + + + + + Cached name for the 'get_static_memory_usage' method. + + + + + Cached name for the 'get_static_memory_peak_usage' method. + + + + + Cached name for the 'get_memory_info' method. + + + + + Cached name for the 'move_to_trash' method. + + + + + Cached name for the 'get_user_data_dir' method. + + + + + Cached name for the 'get_system_dir' method. + + + + + Cached name for the 'get_config_dir' method. + + + + + Cached name for the 'get_data_dir' method. + + + + + Cached name for the 'get_cache_dir' method. + + + + + Cached name for the 'get_temp_dir' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'get_keycode_string' method. + + + + + Cached name for the 'is_keycode_unicode' method. + + + + + Cached name for the 'find_keycode_from_string' method. + + + + + Cached name for the 'set_use_file_access_save_and_swap' method. + + + + + Cached name for the 'set_thread_name' method. + + + + + Cached name for the 'get_thread_caller_id' method. + + + + + Cached name for the 'get_main_thread_id' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'is_sandboxed' method. + + + + + Cached name for the 'request_permission' method. + + + + + Cached name for the 'request_permissions' method. + + + + + Cached name for the 'get_granted_permissions' method. + + + + + Cached name for the 'revoke_granted_permissions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class wraps the most common functionalities for communicating with the host operating system, such as the video driver, delays, environment variables, execution of binaries, command line, etc. + Note: In Godot 4, functions related to window management, clipboard, and TTS were moved to the singleton (and the class). Functions related to time were removed and are only available in the class. + + + + + If , the engine optimizes for low processor usage by only refreshing the screen if needed. Can improve battery consumption on mobile. + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode. + + + + + The amount of sleeping between frames when the low-processor usage mode is enabled, in microseconds. Higher values will result in lower CPU usage. See also . + Note: On start-up, this is the same as ProjectSettings.application/run/low_processor_mode_sleep_usec. + + + + + If , the engine filters the time delta measured between each frame, and attempts to compensate for random variation. This only works on systems where V-Sync is active. + Note: On start-up, this is the same as ProjectSettings.application/run/delta_smoothing. + + + + + Generates a [] of cryptographically secure random bytes with given . + Note: Generating large quantities of bytes using this method can result in locking and entropy of lower quality on most platforms. Using is preferred in most cases. + + + + + Returns the list of certification authorities trusted by the operating system as a string of concatenated certificates in PEM format. + + + + + Returns an array of connected MIDI device names, if they exist. Returns an empty array if the system MIDI driver has not previously been initialized with . See also . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Initializes the singleton for the system MIDI driver, allowing Godot to receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + Note: On the Web platform, Web MIDI needs to be supported by the browser. For the time being, it is currently supported by all major browsers, except Safari. + Note: On the Web platform, using MIDI input requires a browser permission to be granted first. This permission request is performed when calling . The browser will refrain from processing MIDI input until the user accepts the permission request. + + + + + Shuts down the system MIDI driver. Godot will no longer receive . See also and . + Note: This method is implemented on Linux, macOS, Windows, and Web. + + + + + Displays a modal dialog box using the host platform's implementation. The engine execution is blocked until the dialog is closed. + + + + + Crashes the engine (or the editor if called within a @tool script). See also . + Note: This method should only be used for testing the system's crash handler, not for any other purpose. For general error reporting, use (in order of preference) @GDScript.assert, @GlobalScope.push_error, or . + + + + + Returns the number of logical CPU cores available on the host machine. On CPUs with HyperThreading enabled, this number will be greater than the number of physical CPU cores. + + + + + Returns the full name of the CPU model on the host machine (e.g. "Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz"). + Note: This method is only implemented on Windows, macOS, Linux and iOS. On Android and Web, returns an empty string. + + + + + Returns the list of font family names available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the path to the system font file with and style. Returns an empty string if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Returned font might have different style if the requested style is not available. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns an array of the system substitute font file paths, which are similar to the font with and style for the specified text, locale, and script. Returns an empty array if no matching fonts found. + The following aliases can be used to request default fonts: "sans-serif", "serif", "monospace", "cursive", and "fantasy". + Note: Depending on OS, it's not guaranteed that any of the returned fonts will be suitable for rendering specified text. Fonts should be loaded and checked in the order they are returned, and the first suitable one used. + Note: Returned fonts might have different style if the requested style is not available or belong to a different font family. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Returns the file path to the current engine executable. + Note: On macOS, if you want to launch another instance of Godot, always use instead of relying on the executable path. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Reads a user input as raw data from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Returns type of the standard input device. + + + + + Returns type of the standard output device. + + + + + Returns type of the standard error device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Executes the given process in a blocking way. The file specified in must exist and be executable. The system path resolution will be used. The are used in the given order, separated by spaces, and wrapped in quotes. + If an array is provided, the complete shell output of the process is appended to as a single element. If is , the output to the standard error stream is also appended to the array. + On Windows, if is and the process is a console app, a new terminal window is opened. + This method returns the exit code of the command, or -1 if the process fails to execute. + Note: The main thread will be blocked until the executed command terminates. Use to create a separate thread that will not block the main thread, or use to create a completely independent process. + For example, to retrieve a list of the working directory's contents: + + var output = new Godot.Collections.Array(); + int exitCode = OS.Execute("ls", new string[] {"-l", "/tmp"}, output); + + If you wish to access a shell built-in or execute a composite command, a platform-specific shell can be invoked. For example: + + var output = new Godot.Collections.Array(); + OS.Execute("CMD.exe", new string[] {"/C", "cd %TEMP% && dir"}, output); + + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export. + Note: On Android, system commands such as dumpsys can only be run on a rooted device. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + On Windows, if is and the process is a console app, a new terminal window will be opened. + If the process is successfully created, this method returns its process ID, which you can use to monitor the process (and potentially terminate it with ). Otherwise, this method returns -1. + Example: Run another instance of the project: + + var pid = OS.CreateProcess(OS.GetExecutablePath(), new string[] {}); + + See if you wish to run an external command and retrieve the results. + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Creates a new instance of Godot that runs independently. The are used in the given order and separated by a space. + If the process is successfully created, this method returns the new process' ID, which you can use to monitor the process (and potentially terminate it with ). If the process cannot be created, this method returns -1. + See if you wish to run a different process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Kill (terminate) the process identified by the given process ID (), such as the ID returned by in non-blocking mode. See also . + Note: This method can also be used to kill processes that were not spawned by the engine. + Note: This method is implemented on Android, iOS, Linux, macOS and Windows. + + + + + Requests the OS to open a resource identified by with the most appropriate program. For example: + - OS.shell_open("C:\\Users\name\Downloads") on Windows opens the file explorer at the user's Downloads folder. + - OS.shell_open("https://godotengine.org") opens the default web browser on the official Godot website. + - OS.shell_open("mailto:example@example.com") opens the default email client with the "To" field set to example@example.com. See RFC 2368 - The mailto URL scheme for a list of fields that can be added. + Use to convert a res:// or user:// project path into a system path for use with this method. + Note: Use String.uri_encode to encode characters within URLs in a URL-safe, portable way. This is especially required for line breaks. Otherwise, may not work correctly in a project exported to the Web platform. + Note: This method is implemented on Android, iOS, Web, Linux, macOS and Windows. + + + + + Requests the OS to open the file manager, navigate to the given and select the target file or folder. + If is and is a valid directory path, the OS will open the file manager and navigate to the target folder without selecting anything. + Use to convert a res:// or user:// project path into a system path to use with this method. + Note: This method is currently only implemented on Windows and macOS. On other platforms, it will fallback to with a directory path of prefixed with file://. + + + + + Returns if the child process ID () is still running or if it has terminated. must be a valid ID generated from . + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns the exit code of a spawned process once it has finished running (see ). + Returns -1 if the is not a PID of a spawned child process, the process is still running, or the method is not implemented for the current platform. + Note: Returns -1 if the is a macOS bundled app process. + Note: This method is implemented on Android, Linux, macOS and Windows. + + + + + Returns the number used by the host machine to uniquely identify this application. + Note: This method is implemented on Android, iOS, Linux, macOS, and Windows. + + + + + Returns if the environment variable with the name exists. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the value of the given environment variable, or an empty string if doesn't exist. + Note: Double-check the casing of . Environment variable names are case-sensitive on all platforms except Windows. + Note: On macOS, applications do not have access to shell environment variables. + + + + + Sets the value of the environment variable to . The environment variable will be set for the Godot process and any process executed with after running . The environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. The name cannot be empty or include the = character. On Windows, there is a 32767 characters limit for the combined length of , , and the = and null terminator characters that will be registered in the environment block. + + + + + Removes the given environment variable from the current environment, if it exists. The name cannot be empty or include the = character. The environment variable will be removed for the Godot process and any process executed with after running . The removal of the environment variable will not persist to processes run after the Godot process was terminated. + Note: Environment variable names are case-sensitive on all platforms except Windows. + + + + + Returns the name of the host platform. + - On Windows, this is "Windows". + - On macOS, this is "macOS". + - On Linux-based operating systems, this is "Linux". + - On BSD-based operating systems, this is "FreeBSD", "NetBSD", "OpenBSD", or "BSD" as a fallback. + - On Android, this is "Android". + - On iOS, this is "iOS". + - On Web, this is "Web". + Note: Custom builds of the engine may support additional platforms, such as consoles, possibly returning other names. + + switch (OS.GetName()) + { + case "Windows": + GD.Print("Welcome to Windows"); + break; + case "macOS": + GD.Print("Welcome to macOS!"); + break; + case "Linux": + case "FreeBSD": + case "NetBSD": + case "OpenBSD": + case "BSD": + GD.Print("Welcome to Linux/BSD!"); + break; + case "Android": + GD.Print("Welcome to Android!"); + break; + case "iOS": + GD.Print("Welcome to iOS!"); + break; + case "Web": + GD.Print("Welcome to the Web!"); + break; + } + + Note: On Web platforms, it is still possible to determine the host platform's OS with feature tags. See . + + + + + Returns the name of the distribution for Linux and BSD platforms (e.g. "Ubuntu", "Manjaro", "OpenBSD", etc.). + Returns the same value as for stock Android ROMs, but attempts to return the custom ROM name for popular Android derivatives such as "LineageOS". + Returns the same value as for other platforms. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the exact production and build version of the operating system. This is different from the branded version used in marketing. This helps to distinguish between different releases of operating systems, including minor versions, and insider and custom builds. + - For Windows, the major and minor version are returned, as well as the build number. For example, the returned string may look like 10.0.9926 for a build of Windows 10, and it may look like 6.1.7601 for a build of Windows 7 SP1. + - For rolling distributions, such as Arch Linux, an empty string is returned. + - For macOS and iOS, the major and minor version are returned, as well as the patch number. + - For Android, the SDK version and the incremental build number are returned. If it's a custom ROM, it attempts to return its version instead. + Note: This method is not supported on the Web platform. It returns an empty string. + + + + + Returns the branded version used in marketing, followed by the build number (on Windows) or the version number (on macOS). Examples include 11 (build 22000) and Sequoia (15.0.0). This value can then be appended to to get a full, human-readable operating system name and version combination for the operating system. Windows feature updates such as 24H2 are not contained in the resulting string, but Windows Server is recognized as such (e.g. 2025 (build 26100) for Windows Server 2025). + Note: This method is only supported on Windows and macOS. On other operating systems, it returns the same value as . + + + + + Returns the command-line arguments passed to the engine. + Command-line arguments can be written in any form, including both --key value and --key=value forms so they can be properly parsed, as long as custom command-line arguments do not conflict with engine arguments. + You can also incorporate environment variables using the method. + You can set ProjectSettings.editor/run/main_run_args to define command-line arguments to be passed by the editor when running the project. + Example: Parse command-line arguments into a using the --key=value form for arguments: + + var arguments = new Dictionary<string, string>(); + foreach (var argument in OS.GetCmdlineArgs()) + { + if (argument.Contains('=')) + { + string[] keyValue = argument.Split("="); + arguments[keyValue[0].TrimPrefix("--")] = keyValue[1]; + } + else + { + // Options without an argument will be present in the dictionary, + // with the value set to an empty string. + arguments[argument.TrimPrefix("--")] = ""; + } + } + + Note: Passing custom user arguments directly is not recommended, as the engine may discard or modify them. Instead, pass the standard UNIX double dash (--) and then the custom arguments, which the engine will ignore by design. These can be read via . + + + + + Returns the command-line user arguments passed to the engine. User arguments are ignored by the engine and reserved for the user. They are passed after the double dash -- argument. ++ may be used when -- is intercepted by another program (such as startx). + + # Godot has been executed with the following command: + # godot --fullscreen -- --level=2 --hardcore + + OS.get_cmdline_args() # Returns ["--fullscreen", "--level=2", "--hardcore"] + OS.get_cmdline_user_args() # Returns ["--level=2", "--hardcore"] + + To get all passed arguments, use . + + + + + Returns the video adapter driver name and version for the user's currently active graphics card, as a []. See also . + The first element holds the driver name, such as nvidia, amdgpu, etc. + The second element holds the driver version. For example, on the nvidia driver on a Linux/BSD platform, the version is in the format 510.85.02. For Windows, the driver's format is 31.0.15.1659. + Note: This method is only supported on Linux/BSD and Windows when not running in headless mode. On other platforms, it returns an empty array. + + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + If is , restarts the project automatically when it is exited with or . Command-line can be supplied. To restart the project with the same command line arguments as originally used to run the project, pass as the value for . + This method can be used to apply setting changes that require a restart. See also and . + Note: This method is only effective on desktop platforms, and only when the project isn't started from the editor. It will have no effect on mobile and Web platforms, or when the project is started from the editor. + Note: If the project process crashes or is killed by the user (by sending SIGKILL instead of the usual SIGTERM), the project won't restart automatically. + + + + + Returns if the project will automatically restart when it exits for any reason, otherwise. See also and . + + + + + Returns the list of command line arguments that will be used when the project automatically restarts using . See also . + + + + + Delays execution of the current thread by microseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with a delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Delays execution of the current thread by milliseconds. must be greater than or equal to 0. Otherwise, does nothing and prints an error message. + Note: is a blocking way to delay code execution. To delay code execution in a non-blocking way, you may use . Awaiting with delays the execution of code placed below the await without affecting the rest of the project (or editor, for EditorPlugins and EditorScripts). + Note: When is called on the main thread, it will freeze the project and will prevent it from redrawing and registering input until the delay has passed. When using as part of an EditorPlugin or EditorScript, it will freeze the editor but won't freeze the project if it is currently running (since the project is an independent child process). + + + + + Returns the host OS locale as a of the form language_Script_COUNTRY_VARIANT@extra. Every substring after language is optional and may not exist. + - language - 2 or 3-letter language code, in lower case. + - Script - 4-letter script code, in title case. + - COUNTRY - 2 or 3-letter country code, in upper case. + - VARIANT - language variant, region and sort order. The variant can have any number of underscored keywords. + - extra - semicolon separated list of additional key words. This may include currency, calendar, sort order and numbering system information. + If you want only the language code and not the fully specified locale from the OS, you can use . + + + + + Returns the host OS locale's 2 or 3-letter language code as a string which should be consistent on all platforms. This is equivalent to extracting the language part of the string. + This can be used to narrow down fully specified locale strings to only the "common" language code, when you don't need the additional information about country code or variants. For example, for a French Canadian user with fr_CA locale, this would return fr. + + + + + Returns the model name of the current device. + Note: This method is implemented on Android, iOS, macOS, and Windows. Returns "GenericDevice" on unsupported platforms. + + + + + Returns if the user:// file system is persistent, that is, its state is the same after a player quits and starts the game again. Relevant to the Web platform, where this persistence may be unavailable. + + + + + Returns if the engine was executed with the --verbose or -v command line argument, or if ProjectSettings.debug/settings/stdout/verbose_stdout is . See also @GlobalScope.print_verbose. + + + + + Returns if the Godot binary used to run the project is a debug export template, or when running in the editor. + Returns if the Godot binary used to run the project is a release export template. + Note: To check whether the Godot binary used to run the project is an export template (debug or release), use OS.has_feature("template") instead. + + + + + Returns the amount of static memory being used by the program in bytes. Only works in debug builds. + + + + + Returns the maximum amount of static memory used. Only works in debug builds. + + + + + Returns a containing information about the current memory with the following entries: + - "physical" - total amount of usable physical memory in bytes. This value can be slightly less than the actual physical memory amount, since it does not include memory reserved by the kernel and devices. + - "free" - amount of physical memory, that can be immediately allocated without disk access or other costly operations, in bytes. The process might be able to allocate more physical memory, but this action will require moving inactive pages to disk, which can be expensive. + - "available" - amount of memory that can be allocated without extending the swap file(s), in bytes. This value includes both physical memory and swap. + - "stack" - size of the current thread stack in bytes. + Note: Each entry's value may be -1 if it is unknown. + + + + + Moves the file or directory at the given to the system's recycle bin. See also . + The method takes only global paths, so you may need to use . Do not use it for files in res:// as it will not work in exported projects. + Returns if the file or directory cannot be found, or the system does not support this method. + + var fileToRemove = "user://slot1.save"; + OS.MoveToTrash(ProjectSettings.GlobalizePath(fileToRemove)); + + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: If the user has disabled the recycle bin on their system, the file will be permanently deleted instead. + + + + + Returns the absolute directory path where user data is written (the user:// directory in Godot). The path depends on the project name and ProjectSettings.application/config/use_custom_user_dir. + - On Windows, this is %AppData%\Godot\app_userdata\[project_name], or %AppData%\[custom_name] if use_custom_user_dir is set. %AppData% expands to %UserProfile%\AppData\Roaming. + - On macOS, this is ~/Library/Application Support/Godot/app_userdata/[project_name], or ~/Library/Application Support/[custom_name] if use_custom_user_dir is set. + - On Linux and BSD, this is ~/.local/share/godot/app_userdata/[project_name], or ~/.local/share/[custom_name] if use_custom_user_dir is set. + - On Android and iOS, this is a sandboxed directory in either internal or external storage, depending on the user's configuration. + - On Web, this is a virtual directory managed by the browser. + If the project name is empty, [project_name] falls back to [unnamed project]. + Not to be confused with , which returns the global (non-project-specific) user home directory. + + + + + Returns the path to commonly used folders across different platforms, as defined by . See the constants for available locations. + Note: This method is implemented on Android, Linux, macOS and Windows. + Note: Shared storage is implemented on Android and allows to differentiate between app specific and shared directories, if is . Shared directories have additional restrictions on Android. + + + + + Returns the global user configuration directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CONFIG_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global user data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_DATA_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global cache data directory according to the operating system's standards. + On the Linux/BSD platform, this path can be overridden by setting the XDG_CACHE_HOME environment variable before starting the project. See File paths in Godot projects in the documentation for more information. See also and . + Not to be confused with , which returns the project-specific user data path. + + + + + Returns the global temporary data directory according to the operating system's standards. + + + + + Returns a string that is unique to the device. + Note: This string may change without notice if the user reinstalls their operating system, upgrades it, or modifies their hardware. This means it should generally not be used to encrypt persistent data, as the data saved before an unexpected ID change would become inaccessible. The returned string may also be falsified using external programs, so do not rely on the string returned by this method for security purposes. + Note: On Web, returns an empty string and generates an error, as this method cannot be implemented for security reasons. + + + + + Returns the given keycode as a . + + GD.Print(OS.GetKeycodeString(Key.C)); // Prints "C" + GD.Print(OS.GetKeycodeString(Key.Escape)); // Prints "Escape" + GD.Print(OS.GetKeycodeString((Key)KeyModifierMask.MaskShift | Key.Tab)); // Prints "Shift+Tab" + + See also , , and . + + + + + Returns if the input keycode corresponds to a Unicode character. For a list of codes, see the constants. + + GD.Print(OS.IsKeycodeUnicode((long)Key.G)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Kp4)); // Prints True + GD.Print(OS.IsKeycodeUnicode((long)Key.Tab)); // Prints False + GD.Print(OS.IsKeycodeUnicode((long)Key.Escape)); // Prints False + + + + + + Finds the keycode for the given string. The returned values are equivalent to the constants. + + GD.Print(OS.FindKeycodeFromString("C")); // Prints C (Key.C) + GD.Print(OS.FindKeycodeFromString("Escape")); // Prints Escape (Key.Escape) + GD.Print(OS.FindKeycodeFromString("Shift+Tab")); // Prints 37748738 (KeyModifierMask.MaskShift | Key.Tab) + GD.Print(OS.FindKeycodeFromString("Unknown")); // Prints None (Key.None) + + See also . + + + + + If is , when opening a file for writing, a temporary file is used in its place. When closed, it is automatically applied to the target file. + This can useful when files may be opened by other applications, such as antiviruses, text editors, or even the Godot editor itself. + + + + + Assigns the given name to the current thread. Returns if unavailable on the current platform. + + + + + Returns the ID of the current thread. This can be used in logs to ease debugging of multi-threaded applications. + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns the ID of the main thread. See . + Note: Thread IDs are not deterministic and may be reused across application restarts. + + + + + Returns if the feature for the given feature tag is supported in the currently running instance, depending on the platform, build, etc. Can be used to check whether you're currently running a debug build, on a certain platform or arch, etc. Refer to the Feature Tags documentation for more details. + Note: Tag names are case-sensitive. + Note: On the Web platform, one of the following additional tags is defined to indicate the host platform: web_android, web_ios, web_linuxbsd, web_macos, or web_windows. + + + + + Returns if the application is running in the sandbox. + Note: This method is only implemented on macOS and Linux. + + + + + Requests permission from the OS for the given . Returns if the permission has been successfully granted. + Note: This method is currently only implemented on Android, to specifically request permission for "RECORD_AUDIO" by AudioDriverOpenSL. + + + + + Requests dangerous permissions from the OS. Returns if permissions have been successfully granted. + Note: This method is only implemented on Android. Normal permissions are automatically granted at install time in Android applications. + + + + + On Android devices: Returns the list of dangerous permissions that have been granted. + On macOS: Returns the list of user selected folders accessible to the application (sandboxed applications only). Use the native file dialog to request folder access permission. + + + + + On macOS (sandboxed applications only), this function clears list of user selected folders accessible to the application. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Creates a new process that runs independently of Godot with redirected IO. It will not terminate when Godot terminates. The path specified in must exist and be an executable file or macOS .app bundle. The path is resolved based on the current platform. The are used in the given order and separated by a space. + If is , created pipes work in non-blocking mode, i.e. read and write operations will return immediately. Use to check if the last read/write operation was successful. + If the process cannot be created, this method returns an empty . Otherwise, this method returns a with the following keys: + - "stdio" - to access the process stdin and stdout pipes (read/write). + - "stderr" - to access the process stderr pipe (read only). + - "pid" - Process ID as an , which you can use to monitor the process (and potentially terminate it with ). + Note: This method is implemented on Android, Linux, macOS, and Windows. + Note: To execute a Windows command interpreter built-in command, specify cmd.exe in , /c as the first argument, and the desired command as the second argument. + Note: To execute a PowerShell built-in command, specify powershell.exe in , -Command as the first argument, and the desired command as the second argument. + Note: To execute a Unix shell built-in command, specify shell executable name in , -c as the first argument, and the desired command as the second argument. + Note: On macOS, sandboxed applications are limited to run only embedded helper executables, specified during export or system .app bundle, system .app bundles will ignore arguments. + + + + + Reads a user input as a UTF-8 encoded string from the standard input. This operation can be blocking, which causes the window to freeze if is called on the main thread. + - If standard input is console, this method will block until the program receives a line break in standard input (usually by the user pressing Enter). + - If standard input is pipe, this method will block until a specific amount of data is read or pipe is closed. + - If standard input is a file, this method will read a specific amount of data (or less if end-of-file is reached) and return immediately. + Note: This method automatically replaces \r\n line breaks with \n and removes them from the end of the string. Use to read the unprocessed data. + Note: This method is implemented on Linux, macOS, and Windows. + Note: On exported Windows builds, run the console wrapper executable to access the terminal. If standard input is console, calling this method without console wrapped will freeze permanently. If standard input is pipe or file, it can be used without console wrapper. If you need a single executable with full console support, use a custom build compiled with the windows_subsystem=console flag. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'low_processor_usage_mode' property. + + + + + Cached name for the 'low_processor_usage_mode_sleep_usec' property. + + + + + Cached name for the 'delta_smoothing' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_entropy' method. + + + + + Cached name for the 'get_system_ca_certificates' method. + + + + + Cached name for the 'get_connected_midi_inputs' method. + + + + + Cached name for the 'open_midi_inputs' method. + + + + + Cached name for the 'close_midi_inputs' method. + + + + + Cached name for the 'alert' method. + + + + + Cached name for the 'crash' method. + + + + + Cached name for the 'set_low_processor_usage_mode' method. + + + + + Cached name for the 'is_in_low_processor_usage_mode' method. + + + + + Cached name for the 'set_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'get_low_processor_usage_mode_sleep_usec' method. + + + + + Cached name for the 'set_delta_smoothing' method. + + + + + Cached name for the 'is_delta_smoothing_enabled' method. + + + + + Cached name for the 'get_processor_count' method. + + + + + Cached name for the 'get_processor_name' method. + + + + + Cached name for the 'get_system_fonts' method. + + + + + Cached name for the 'get_system_font_path' method. + + + + + Cached name for the 'get_system_font_path_for_text' method. + + + + + Cached name for the 'get_executable_path' method. + + + + + Cached name for the 'read_string_from_stdin' method. + + + + + Cached name for the 'read_buffer_from_stdin' method. + + + + + Cached name for the 'get_stdin_type' method. + + + + + Cached name for the 'get_stdout_type' method. + + + + + Cached name for the 'get_stderr_type' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'execute_with_pipe' method. + + + + + Cached name for the 'create_process' method. + + + + + Cached name for the 'create_instance' method. + + + + + Cached name for the 'kill' method. + + + + + Cached name for the 'shell_open' method. + + + + + Cached name for the 'shell_show_in_file_manager' method. + + + + + Cached name for the 'is_process_running' method. + + + + + Cached name for the 'get_process_exit_code' method. + + + + + Cached name for the 'get_process_id' method. + + + + + Cached name for the 'has_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'unset_environment' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_distribution_name' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'get_version_alias' method. + + + + + Cached name for the 'get_cmdline_args' method. + + + + + Cached name for the 'get_cmdline_user_args' method. + + + + + Cached name for the 'get_video_adapter_driver_info' method. + + + + + Cached name for the 'set_restart_on_exit' method. + + + + + Cached name for the 'is_restart_on_exit_set' method. + + + + + Cached name for the 'get_restart_on_exit_arguments' method. + + + + + Cached name for the 'delay_usec' method. + + + + + Cached name for the 'delay_msec' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_locale_language' method. + + + + + Cached name for the 'get_model_name' method. + + + + + Cached name for the 'is_userfs_persistent' method. + + + + + Cached name for the 'is_stdout_verbose' method. + + + + + Cached name for the 'is_debug_build' method. + + + + + Cached name for the 'get_static_memory_usage' method. + + + + + Cached name for the 'get_static_memory_peak_usage' method. + + + + + Cached name for the 'get_memory_info' method. + + + + + Cached name for the 'move_to_trash' method. + + + + + Cached name for the 'get_user_data_dir' method. + + + + + Cached name for the 'get_system_dir' method. + + + + + Cached name for the 'get_config_dir' method. + + + + + Cached name for the 'get_data_dir' method. + + + + + Cached name for the 'get_cache_dir' method. + + + + + Cached name for the 'get_temp_dir' method. + + + + + Cached name for the 'get_unique_id' method. + + + + + Cached name for the 'get_keycode_string' method. + + + + + Cached name for the 'is_keycode_unicode' method. + + + + + Cached name for the 'find_keycode_from_string' method. + + + + + Cached name for the 'set_use_file_access_save_and_swap' method. + + + + + Cached name for the 'set_thread_name' method. + + + + + Cached name for the 'get_thread_caller_id' method. + + + + + Cached name for the 'get_main_thread_id' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'is_sandboxed' method. + + + + + Cached name for the 'request_permission' method. + + + + + Cached name for the 'request_permissions' method. + + + + + Cached name for the 'get_granted_permissions' method. + + + + + Cached name for the 'revoke_granted_permissions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores an occluder shape that can be used by the engine's occlusion culling system. + See 's documentation for instructions on setting up occlusion culling. + + + + + Returns the occluder shape's vertex positions. + + + + + Returns the occluder shape's vertex indices. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_vertices' method. + + + + + Cached name for the 'get_indices' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. 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 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 Embree, drawing the result to a low-resolution buffer then using this to cull 3D nodes individually. In the 3D editor, you can preview the occlusion culling buffer by choosing Perspective > Display Advanced... > Occlusion Culling Buffer in the top-left corner of the 3D viewport. The occlusion culling buffer quality can be adjusted in the Project Settings. + Baking: Select an node, then use the Bake Occluders button at the top of the 3D editor. Only opaque materials will be taken into account; transparent materials (alpha-blended or alpha-tested) will be ignored by the occluder generation. + Note: Occlusion culling is only effective if ProjectSettings.rendering/occlusion_culling/use_occlusion_culling is . 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 ( and ) compared to occlusion culling. + Note: Due to memory constraints, occlusion culling is not supported by default in Web export templates. It can be enabled by compiling custom Web export templates with module_raycast_enabled=yes. + + + + + The occluder resource for this . You can generate an occluder resource by selecting an node then using the Bake Occluders button at the top of the editor. + You can also draw your own 2D occluder polygon by adding a new resource to the property in the Inspector. + Alternatively, you can select a primitive occluder to use: , or . + + + + + The visual layers to account for when baking for occluders. Only s whose match with this will be included in the generated occluder mesh. By default, all objects with opaque materials are taken into account for the occluder baking. + To improve performance and avoid artifacts, it is recommended to exclude dynamic objects, small objects and fixtures from the baking process by moving them to a separate visual layer and excluding this layer in . + + + + + The simplification distance to use for simplifying the generated occluder polygon (in 3D units). Higher values result in a less detailed occluder mesh, which improves performance but reduces culling accuracy. + The occluder geometry is rendered on the CPU, so it is important to keep its geometry as simple as possible. Since the buffer is rendered at a low resolution, less detailed occluder meshes generally still work well. The default value is fairly aggressive, so you may have to decrease it if you run into false negatives (objects being occluded even though they are visible by the camera). A value of 0.01 will act conservatively, and will keep geometry perceptually unaffected in the occlusion culling buffer. Depending on the scene, a value of 0.01 may still simplify the mesh noticeably compared to disabling simplification entirely. + Setting this to 0.0 disables simplification entirely, but vertices in the exact same position will still be merged. The mesh will also be re-indexed to reduce both the number of vertices and indices. + Note: This uses the meshoptimizer library under the hood, similar to LOD generation. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'occluder' property. + + + + + Cached name for the 'bake_mask' property. + + + + + Cached name for the 'bake_simplification_distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bake_mask' method. + + + + + Cached name for the 'get_bake_mask' method. + + + + + Cached name for the 'set_bake_mask_value' method. + + + + + Cached name for the 'get_bake_mask_value' method. + + + + + Cached name for the 'set_bake_simplification_distance' method. + + + + + Cached name for the 'get_bake_simplification_distance' method. + + + + + Cached name for the 'set_occluder' method. + + + + + Cached name for the 'get_occluder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Editor facility that helps you draw a 2D polygon used as resource for . + + + + + Culling is disabled. See . + + + + + Culling is performed in the clockwise direction. See . + + + + + Culling is performed in the counterclockwise direction. See . + + + + + If , closes the polygon. A closed OccluderPolygon2D occludes the light coming from any direction. An opened OccluderPolygon2D occludes the light only at its outline's direction. + + + + + The culling mode to use. + + + + + A array with the index for polygon's vertices positions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'closed' property. + + + + + Cached name for the 'cull_mode' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_closed' method. + + + + + Cached name for the 'is_closed' method. + + + + + Cached name for the 'set_cull_mode' method. + + + + + Cached name for the 'get_cull_mode' method. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the default for the . It mimics the behavior of a server with no peers connected. + This means that the will act as the multiplayer authority by default. Calls to will return , and calls to will return . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A sequence of Ogg packets. + + + + + Contains the raw packets that make up this OggPacketSequence. + + + + + Contains the granule positions for each page in this packet sequence. + + + + + Holds sample rate information about this sequence. Must be set by another class that actually understands the codec. + + + + + The length of this stream, in seconds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'packet_data' property. + + + + + Cached name for the 'granule_positions' property. + + + + + Cached name for the 'sampling_rate' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_packet_data' method. + + + + + Cached name for the 'get_packet_data' method. + + + + + Cached name for the 'set_packet_granule_positions' method. + + + + + Cached name for the 'get_packet_granule_positions' method. + + + + + Cached name for the 'set_sampling_rate' method. + + + + + Cached name for the 'get_sampling_rate' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An Omnidirectional light is a type of that emits light in all directions. The light is attenuated by distance and this attenuation can be configured by changing its energy, radius, and attenuation parameters. + Note: When using the Mobile rendering method, only 8 omni lights can be displayed on each mesh resource. Attempting to display more than 8 omni lights on a single mesh resource will result in omni lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 omni lights can be displayed on each mesh resource by default, but this can be increased by adjusting ProjectSettings.rendering/limits/opengl/max_lights_per_object. + Note: When using the Mobile or Compatibility rendering methods, omni lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the light may not be visible on the mesh. + + + + + Shadows are rendered to a dual-paraboloid texture. Faster than , but lower-quality. + + + + + Shadows are rendered to a cubemap. Slower than , but higher-quality. + + + + + The light's radius. Note that the effectively lit area may appear to be smaller depending on the in use. No matter the in use, the light will never reach anything outside this radius. + Note: is not affected by (the light's scale or its parent's scale). + + + + + Controls the distance attenuation function for omnilights. + A value of 0.0 will maintain a constant brightness through most of the range, but smoothly attenuate the light at the edge of the range. Use a value of 2.0 for physically accurate lights as it results in the proper inverse square attenutation. + Note: Setting attenuation to 2.0 or higher may result in distant objects receiving minimal light, even within range. For example, with a range of 4096, an object at 100 units is attenuated by a factor of 0.0001. With a default brightness of 1, the light would not be visible at that distance. + Note: Using negative or values higher than 10.0 may lead to unexpected results. + + + + + See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'omni_range' property. + + + + + Cached name for the 'omni_attenuation' property. + + + + + Cached name for the 'omni_shadow_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shadow_mode' method. + + + + + Cached name for the 'get_shadow_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + makes OpenXR available for GDExtension. It provides the OpenXR API to GDExtension through the method, and the OpenXR instance through . + It also provides methods for querying the status of OpenXR initialization, and helper methods for ease of use of the API with GDExtension. + + + + + Means that isn't supported at all. + + + + + Means that is really supported. + + + + + Means that is emulated. + + + + + Returns the XrInstance created during the initialization of the OpenXR API. + + + + + Returns the id of the system, which is a XrSystemId cast to an integer. + + + + + Returns the OpenXR session, which is an XrSession cast to an integer. + + + + + Returns if the provided XrResult (cast to an integer) is successful. Otherwise returns and prints the XrResult converted to a string, with the specified additional information. + + + + + Returns if OpenXR is enabled. + + + + + Returns the function pointer of the OpenXR function with the specified name, cast to an integer. If the function with the given name does not exist, the method returns 0. + Note: openxr/util.h contains utility macros for acquiring OpenXR functions, e.g. GDEXTENSION_INIT_XR_FUNC_V(xrCreateAction). + + + + + Returns an error string for the given XrResult. + + + + + Returns the name of the specified swapchain format. + + + + + Set the object name of an OpenXR object, used for debug output. must be a valid OpenXR XrObjectType enum and must be a valid OpenXR object handle. + + + + + Begins a new debug label region, this label will be reported in debug messages for any calls following this until is called. Debug labels can be stacked. + + + + + Marks the end of a debug label region. Removes the latest debug label region added by calling . + + + + + Inserts a debug label, this label is reported in any debug message resulting from the OpenXR calls that follows, until any of , , or is called. + + + + + Returns if OpenXR is initialized. + + + + + Returns if OpenXR is running (xrBeginSession was successfully called and the swapchains were created). + + + + + Returns the play space, which is an XrSpace cast to an integer. + + + + + Returns the predicted display timing for the current frame. + + + + + Returns the predicted display timing for the next frame. + + + + + Returns if OpenXR is initialized for rendering with an XR viewport. + + + + + Returns the corresponding XRHandTrackerEXT handle for the given hand index value. + + + + + Registers the given extension as a composition layer provider. + + + + + Unregisters the given extension as a composition layer provider. + + + + + Registers the given extension as a provider of additional data structures to projections views. + + + + + Unregisters the given extension as a provider of additional data structures to projections views. + + + + + Returns the near boundary value of the camera frustum. + Note: This is only accessible in the render thread. + + + + + Returns the far boundary value of the camera frustum. + Note: This is only accessible in the render thread. + + + + + Sets the render target of the velocity texture. + + + + + Sets the render target of the velocity depth texture. + + + + + Sets the target size of the velocity and velocity depth textures. + + + + + Returns an array of supported swapchain formats. + + + + + Returns a pointer to a new swapchain created using the provided parameters. + + + + + Destroys the provided swapchain and frees it from memory. + + + + + Returns the XrSwapchain handle of the provided swapchain. + + + + + Acquires the image of the provided swapchain. + + + + + Returns the RID of the provided swapchain's image. + + + + + Releases the image of the provided swapchain. + + + + + If set to , an OpenXR extension is loaded which is capable of emulating the blend mode. + + + + + Returns denoting if is really supported, emulated or not supported at all. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_instance' method. + + + + + Cached name for the 'get_system_id' method. + + + + + Cached name for the 'get_session' method. + + + + + Cached name for the 'xr_result' method. + + + + + Cached name for the 'openxr_is_enabled' method. + + + + + Cached name for the 'get_instance_proc_addr' method. + + + + + Cached name for the 'get_error_string' method. + + + + + Cached name for the 'get_swapchain_format_name' method. + + + + + Cached name for the 'set_object_name' method. + + + + + Cached name for the 'begin_debug_label_region' method. + + + + + Cached name for the 'end_debug_label_region' method. + + + + + Cached name for the 'insert_debug_label' method. + + + + + Cached name for the 'is_initialized' method. + + + + + Cached name for the 'is_running' method. + + + + + Cached name for the 'get_play_space' method. + + + + + Cached name for the 'get_predicted_display_time' method. + + + + + Cached name for the 'get_next_frame_time' method. + + + + + Cached name for the 'can_render' method. + + + + + Cached name for the 'get_hand_tracker' method. + + + + + Cached name for the 'register_composition_layer_provider' method. + + + + + Cached name for the 'unregister_composition_layer_provider' method. + + + + + Cached name for the 'register_projection_views_extension' method. + + + + + Cached name for the 'unregister_projection_views_extension' method. + + + + + Cached name for the 'get_render_state_z_near' method. + + + + + Cached name for the 'get_render_state_z_far' method. + + + + + Cached name for the 'set_velocity_texture' method. + + + + + Cached name for the 'set_velocity_depth_texture' method. + + + + + Cached name for the 'set_velocity_target_size' method. + + + + + Cached name for the 'get_supported_swapchain_formats' method. + + + + + Cached name for the 'openxr_swapchain_create' method. + + + + + Cached name for the 'openxr_swapchain_free' method. + + + + + Cached name for the 'openxr_swapchain_get_swapchain' method. + + + + + Cached name for the 'openxr_swapchain_acquire' method. + + + + + Cached name for the 'openxr_swapchain_get_image' method. + + + + + Cached name for the 'openxr_swapchain_release' method. + + + + + Cached name for the 'set_emulate_environment_blend_mode_alpha_blend' method. + + + + + Cached name for the 'is_environment_blend_mode_alpha_supported' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource defines an OpenXR action. Actions can be used both for inputs (buttons, joysticks, triggers, 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 if the trigger is depressed and if pressed fully. + Actions are not directly bound to specific devices, instead OpenXR recognizes a limited number of top level paths that identify devices by usage. We can restrict which devices an action can be bound to by these top level paths. For instance an action that should only be used for hand held controllers can have the top level paths "/user/hand/left" and "/user/hand/right" associated with them. See the reserved path section in the OpenXR specification for more info on the top level paths. + Note that the name of the resource is used to register the action with. + + + + + This action provides a boolean value. + + + + + This action provides a float value between 0.0 and 1.0 for any analog input such as triggers. + + + + + This action provides a value and can be bound to embedded trackpads and joysticks. + + + + + The localized description of this action. + + + + + The type of action. + + + + + A collections of toplevel paths to which this action can be bound. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'localized_name' property. + + + + + Cached name for the 'action_type' property. + + + + + Cached name for the 'toplevel_paths' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_localized_name' method. + + + + + Cached name for the 'get_localized_name' method. + + + + + Cached name for the 'set_action_type' method. + + + + + Cached name for the 'get_action_type' method. + + + + + Cached name for the 'set_toplevel_paths' method. + + + + + Cached name for the 'get_toplevel_paths' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Binding modifier that applies on individual actions related to an interaction profile. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Collection of s that are part of this action map. + + + + + Collection of s that are part of this action map. + + + + + Retrieve the number of actions sets in our action map. + + + + + Retrieve an action set by name. + + + + + Retrieve the action set at this index. + + + + + Add an action set. + + + + + Remove an action set. + + + + + Retrieve the number of interaction profiles in our action map. + + + + + Find an interaction profile by its name (path). + + + + + Get the interaction profile at this index. + + + + + Add an interaction profile. + + + + + Remove an interaction profile. + + + + + Setup this action set with our default actions. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action_sets' property. + + + + + Cached name for the 'interaction_profiles' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action_sets' method. + + + + + Cached name for the 'get_action_sets' method. + + + + + Cached name for the 'get_action_set_count' method. + + + + + Cached name for the 'find_action_set' method. + + + + + Cached name for the 'get_action_set' method. + + + + + Cached name for the 'add_action_set' method. + + + + + Cached name for the 'remove_action_set' method. + + + + + Cached name for the 'set_interaction_profiles' method. + + + + + Cached name for the 'get_interaction_profiles' method. + + + + + Cached name for the 'get_interaction_profile_count' method. + + + + + Cached name for the 'find_interaction_profile' method. + + + + + Cached name for the 'get_interaction_profile' method. + + + + + Cached name for the 'add_interaction_profile' method. + + + + + Cached name for the 'remove_interaction_profile' method. + + + + + Cached name for the 'create_default_action_sets' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The localized name of this action set. + + + + + The priority for this action set. + + + + + Collection of actions for this action set. + + + + + Retrieve the number of actions in our action set. + + + + + Add an action to this action set. + + + + + Remove an action from this action set. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'localized_name' property. + + + + + Cached name for the 'priority' property. + + + + + Cached name for the 'actions' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_localized_name' method. + + + + + Cached name for the 'get_localized_name' method. + + + + + Cached name for the 'set_priority' method. + + + + + Cached name for the 'get_priority' method. + + + + + Cached name for the 'get_action_count' method. + + + + + Cached name for the 'set_actions' method. + + + + + Cached name for the 'get_actions' method. + + + + + Cached name for the 'add_action' method. + + + + + Cached name for the 'remove_action' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The analog threshold binding modifier can modify a float input to a boolean input with specified thresholds. + See XR_VALVE_analog_threshold for in-depth details. + + + + + When our input value is equal or larger than this value, our output becomes true. It stays true until it falls under the value. + + + + + When our input value falls below this, our output becomes false. + + + + + Haptic pulse to emit when the user presses the input. + + + + + Haptic pulse to emit when the user releases the input. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'on_threshold' property. + + + + + Cached name for the 'off_threshold' property. + + + + + Cached name for the 'on_haptic' property. + + + + + Cached name for the 'off_haptic' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_on_threshold' method. + + + + + Cached name for the 'get_on_threshold' method. + + + + + Cached name for the 'set_off_threshold' method. + + + + + Cached name for the 'get_off_threshold' method. + + + + + Cached name for the 'set_on_haptic' method. + + + + + Cached name for the 'get_on_haptic' method. + + + + + Cached name for the 'set_off_haptic' method. + + + + + Cached name for the 'get_off_haptic' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Binding modifier base class. Subclasses implement various modifiers that alter how an OpenXR runtime processes inputs. + + + + + Return the description of this class that is used for the title bar of the binding modifier editor. + + + + + Returns the data that is sent to OpenXR when submitting the suggested interacting bindings this modifier is a part of. + Note: This must be data compatible with a XrBindingModificationBaseHeaderKHR structure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_description' method. + + + + + Cached name for the '_get_ip_modification' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the default binding modifier editor used in the OpenXR action map. + + + + + Returns the currently being edited. + + + + + Setup this editor for the provided and . + + + + + Represents the method that handles the event of a class. + + + + + Signal emitted when the user presses the delete binding modifier button for this modifier. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_binding_modifier' method. + + + + + Cached name for the 'setup' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'binding_modifier_removed' signal. + + + + + Composition layers allow 2D viewports to be displayed inside of the headset by the XR compositor through special projections that retain their quality. This allows for rendering clear text while keeping the layer at a native resolution. + Note: If the OpenXR runtime doesn't support the given composition layer type, a fallback mesh can be generated with a , in order to emulate the composition layer. + + + + + The to render on the composition layer. + + + + + If enabled, an Android surface will be created (with the dimensions from ) which will provide the 2D content for the composition layer, rather than using . + See for information about how to get the surface so that your application can draw to it. + Note: This will only work in Android builds. + + + + + The size of the Android surface to create if is enabled. + + + + + The sort order for this composition layer. Higher numbers will be shown in front of lower numbers. + Note: This will have no effect if a fallback mesh is being used. + + + + + Enables the blending the layer using its alpha channel. + Can be combined with to give the layer a transparent background. + + + + + Enables a technique called "hole punching", which allows putting the composition layer behind the main projection layer (i.e. setting to a negative value) while "punching a hole" through everything rendered by Godot so that the layer is still visible. + This can be used to create the illusion that the composition layer exists in the same 3D space as everything rendered by Godot, allowing objects to appear to pass both behind or in front of the composition layer. + + + + + Returns a representing an android.view.Surface if is enabled and OpenXR has created the surface. Otherwise, this will return . + Note: The surface can only be created during an active OpenXR session. So, if is enabled outside of an OpenXR session, it won't be created until a new session fully starts. + + + + + Returns if the OpenXR runtime natively supports this composition layer type. + Note: This will only return an accurate result after the OpenXR session has started. + + + + + Returns UV coordinates where the given ray intersects with the composition layer. and must be in global space. + Returns Vector2(-1.0, -1.0) if the ray doesn't intersect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'layer_viewport' property. + + + + + Cached name for the 'use_android_surface' property. + + + + + Cached name for the 'android_surface_size' property. + + + + + Cached name for the 'sort_order' property. + + + + + Cached name for the 'alpha_blend' property. + + + + + Cached name for the 'enable_hole_punch' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_layer_viewport' method. + + + + + Cached name for the 'get_layer_viewport' method. + + + + + Cached name for the 'set_use_android_surface' method. + + + + + Cached name for the 'get_use_android_surface' method. + + + + + Cached name for the 'set_android_surface_size' method. + + + + + Cached name for the 'get_android_surface_size' method. + + + + + Cached name for the 'set_enable_hole_punch' method. + + + + + Cached name for the 'get_enable_hole_punch' method. + + + + + Cached name for the 'set_sort_order' method. + + + + + Cached name for the 'get_sort_order' method. + + + + + Cached name for the 'set_alpha_blend' method. + + + + + Cached name for the 'get_alpha_blend' method. + + + + + Cached name for the 'get_android_surface' method. + + + + + Cached name for the 'is_natively_supported' method. + + + + + Cached name for the 'intersects_ray' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An OpenXR composition layer that allows rendering a on an internal slice of a cylinder. + + + + + The radius of the cylinder. + + + + + The aspect ratio of the slice. Used to set the height relative to the width. + + + + + The central angle of the cylinder. Used to set the width. + + + + + The number of segments to use in the fallback mesh. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'aspect_ratio' property. + + + + + Cached name for the 'central_angle' property. + + + + + Cached name for the 'fallback_segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_aspect_ratio' method. + + + + + Cached name for the 'get_aspect_ratio' method. + + + + + Cached name for the 'set_central_angle' method. + + + + + Cached name for the 'get_central_angle' method. + + + + + Cached name for the 'set_fallback_segments' method. + + + + + Cached name for the 'get_fallback_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An OpenXR composition layer that allows rendering a on an internal slice of a sphere. + + + + + The radius of the sphere. + + + + + The central horizontal angle of the sphere. Used to set the width. + + + + + The upper vertical angle of the sphere. Used (together with ) to set the height. + + + + + The lower vertical angle of the sphere. Used (together with ) to set the height. + + + + + The number of segments to use in the fallback mesh. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'central_horizontal_angle' property. + + + + + Cached name for the 'upper_vertical_angle' property. + + + + + Cached name for the 'lower_vertical_angle' property. + + + + + Cached name for the 'fallback_segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_central_horizontal_angle' method. + + + + + Cached name for the 'get_central_horizontal_angle' method. + + + + + Cached name for the 'set_upper_vertical_angle' method. + + + + + Cached name for the 'get_upper_vertical_angle' method. + + + + + Cached name for the 'set_lower_vertical_angle' method. + + + + + Cached name for the 'get_lower_vertical_angle' method. + + + + + Cached name for the 'set_fallback_segments' method. + + + + + Cached name for the 'get_fallback_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An OpenXR composition layer that allows rendering a on a quad. + + + + + The dimensions of the quad. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'quad_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_quad_size' method. + + + + + Cached name for the 'get_quad_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The DPad binding modifier converts an axis input to a dpad output, emulating a DPad. New input paths for each dpad direction will be added to the interaction profile. When bound to actions the DPad emulation will be activated. You should not combine dpad inputs with normal inputs in the same action set for the same control, this will result in an error being returned when suggested bindings are submitted to OpenXR. + See XR_EXT_dpad_binding for in-depth details. + Note: If the DPad binding modifier extension is enabled, all dpad binding paths will be available in the action map. Adding the modifier to an interaction profile allows you to further customize the behavior. + + + + + Action set for which this dpad binding modifier is active. + + + + + Input path for this dpad binding modifier. + + + + + When our input value is equal or larger than this value, our dpad in that direction becomes true. It stays true until it falls under the value. + + + + + When our input value falls below this, our output becomes false. + + + + + Center region in which our center position of our dpad return . + + + + + The angle of each wedge that identifies the 4 directions of the emulated dpad. + + + + + If , when the joystick enters a new dpad zone this becomes true. + If , when the joystick remains in active dpad zone, this remains true even if we overlap with another zone. + + + + + Haptic pulse to emit when the user presses the input. + + + + + Haptic pulse to emit when the user releases the input. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action_set' property. + + + + + Cached name for the 'input_path' property. + + + + + Cached name for the 'threshold' property. + + + + + Cached name for the 'threshold_released' property. + + + + + Cached name for the 'center_region' property. + + + + + Cached name for the 'wedge_angle' property. + + + + + Cached name for the 'is_sticky' property. + + + + + Cached name for the 'on_haptic' property. + + + + + Cached name for the 'off_haptic' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action_set' method. + + + + + Cached name for the 'get_action_set' method. + + + + + Cached name for the 'set_input_path' method. + + + + + Cached name for the 'get_input_path' method. + + + + + Cached name for the 'set_threshold' method. + + + + + Cached name for the 'get_threshold' method. + + + + + Cached name for the 'set_threshold_released' method. + + + + + Cached name for the 'get_threshold_released' method. + + + + + Cached name for the 'set_center_region' method. + + + + + Cached name for the 'get_center_region' method. + + + + + Cached name for the 'set_wedge_angle' method. + + + + + Cached name for the 'get_wedge_angle' method. + + + + + Cached name for the 'set_is_sticky' method. + + + + + Cached name for the 'get_is_sticky' method. + + + + + Cached name for the 'set_on_haptic' method. + + + + + Cached name for the 'get_on_haptic' method. + + + + + Cached name for the 'set_off_haptic' method. + + + + + Cached name for the 'get_off_haptic' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows clients to implement OpenXR extensions with GDExtension. The extension should be registered with . + + + + + Returns a pointer to an XrCompositionLayerBaseHeader struct to provide the given composition layer. + This will only be called if the extension previously registered itself with . + + + + + Returns the number of composition layers this extension wrapper provides via . + This will only be called if the extension previously registered itself with . + + + + + Returns an integer that will be used to sort the given composition layer provided via . Lower numbers will move the layer to the front of the list, and higher numbers to the end. The default projection layer has an order of 0, so layers provided by this method should probably be above or below (but not exactly) 0. + This will only be called if the extension previously registered itself with . + + + + + Returns a of OpenXR extensions related to this extension. The should contain the name of the extension, mapped to a bool * cast to an integer: + - If the bool * is a nullptr this extension is mandatory. + - If the bool * points to a boolean, the boolean will be updated to if the extension is enabled. + + + + + Returns a [] of positional tracker names that are used within the extension wrapper. + + + + + Gets an array of s that represent properties, just like , that will be added to nodes. + + + + + Gets a containing the default values for the properties returned by . + + + + + Called before the OpenXR instance is created. + + + + + Called right after the OpenXR instance is created. + + + + + Called right before the OpenXR instance is destroyed. + + + + + Called right after the main swapchains are (re)created. + + + + + Called right after the given viewport is rendered. + Note: The draw commands might only be queued at this point, not executed. + + + + + Called right before the given viewport is rendered. + + + + + Called right before the XR viewports begin their rendering step. + + + + + 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. + + + + + 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. + + + + + Called right after the OpenXR session is created. + + + + + Called right before the OpenXR session is destroyed. + + + + + Called when the OpenXR session state is changed to exiting. + + + + + Called when the OpenXR session state is changed to focused. This state is the active state when the game runs. + + + + + Called when the OpenXR session state is changed to idle. + + + + + Called when the OpenXR session state is changed to loss pending. + + + + + Called when the OpenXR session state is changed to ready. This means OpenXR is ready to set up the session. + + + + + Called when the OpenXR session state is changed to stopping. + + + + + Called when the OpenXR session state is changed to synchronized. OpenXR also returns to this state when the application loses focus. + + + + + Called when the OpenXR session state is changed to visible. This means OpenXR is now ready to receive frames. + + + + + Returns the created , which can be used to access the OpenXR API. + + + + + Registers the extension. This should happen at core module initialization level. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_composition_layer' method. + + + + + Cached name for the '_get_composition_layer_count' method. + + + + + Cached name for the '_get_composition_layer_order' method. + + + + + Cached name for the '_get_requested_extensions' method. + + + + + Cached name for the '_get_suggested_tracker_names' method. + + + + + Cached name for the '_get_viewport_composition_layer_extension_properties' method. + + + + + Cached name for the '_get_viewport_composition_layer_extension_property_defaults' method. + + + + + Cached name for the '_on_before_instance_created' method. + + + + + Cached name for the '_on_instance_created' method. + + + + + Cached name for the '_on_instance_destroyed' method. + + + + + Cached name for the '_on_main_swapchains_created' method. + + + + + Cached name for the '_on_post_draw_viewport' method. + + + + + Cached name for the '_on_pre_draw_viewport' method. + + + + + Cached name for the '_on_pre_render' method. + + + + + Cached name for the '_on_process' method. + + + + + Cached name for the '_on_register_metadata' method. + + + + + Cached name for the '_on_session_created' method. + + + + + Cached name for the '_on_session_destroyed' method. + + + + + Cached name for the '_on_state_exiting' method. + + + + + Cached name for the '_on_state_focused' method. + + + + + Cached name for the '_on_state_idle' method. + + + + + Cached name for the '_on_state_loss_pending' method. + + + + + Cached name for the '_on_state_ready' method. + + + + + Cached name for the '_on_state_stopping' method. + + + + + Cached name for the '_on_state_synchronized' method. + + + + + Cached name for the '_on_state_visible' method. + + + + + Cached name for the 'get_openxr_api' method. + + + + + Cached name for the 'register_extension_wrapper' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node enables OpenXR's hand tracking functionality. The node should be a child node of an node, tracking will update its position to the player's tracked hand Palm joint location (the center of the middle finger's metacarpal bone). This node also updates the skeleton of a properly skinned hand or avatar model. + If the skeleton is a hand (one of the hand bones is the root node of the skeleton), then the skeleton will be placed relative to the hand palm location and the hand mesh and skeleton should be children of the OpenXRHand node. + If the hand bones are part of a full skeleton, then the root of the hand will keep its location with the assumption that IK is used to position the hand and arm. + By default the skeleton hand bones are repositioned to match the size of the tracked hand. To preserve the modeled bone sizes change to apply rotation only. + + + + + Tracking the player's left hand. + + + + + Tracking the player's right hand. + + + + + Maximum supported hands. + + + + + When player grips, hand skeleton will form a full fist. + + + + + When player grips, hand skeleton conforms to the controller the player is holding. + + + + + Maximum supported motion ranges. + + + + + An OpenXR compliant skeleton. + + + + + A compliant skeleton. + + + + + Maximum supported hands. + + + + + The skeletons bones are fully updated (both position and rotation) to match the tracked bones. + + + + + The skeletons bones are only rotated to align with the tracked bones, preserving bone length. + + + + + Maximum supported bone update mode. + + + + + Specifies whether this node tracks the left or right hand of the player. + + + + + Set the motion range (if supported) limiting the hand motion. + + + + + Set a node for which the pose positions will be updated. + + + + + Set the type of skeleton rig the is compliant with. + + + + + Specify the type of updates to perform on the bone. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hand' property. + + + + + Cached name for the 'motion_range' property. + + + + + Cached name for the 'hand_skeleton' property. + + + + + Cached name for the 'skeleton_rig' property. + + + + + Cached name for the 'bone_update' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hand' method. + + + + + Cached name for the 'get_hand' method. + + + + + Cached name for the 'set_hand_skeleton' method. + + + + + Cached name for the 'get_hand_skeleton' method. + + + + + Cached name for the 'set_motion_range' method. + + + + + Cached name for the 'get_motion_range' method. + + + + + Cached name for the 'set_skeleton_rig' method. + + + + + Cached name for the 'get_skeleton_rig' method. + + + + + Cached name for the 'set_bone_update' method. + + + + + Cached name for the 'get_bone_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a base class for haptic feedback resources. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This haptic feedback resource makes it possible to define a vibration based haptic feedback pulse that can be triggered through actions in the OpenXR action map. + + + + + The duration of the pulse in nanoseconds. Use -1 for a minimum duration pulse for the current XR runtime. + + + + + The frequency of the pulse in Hz. 0.0 will let the XR runtime chose an optimal frequency for the device used. + + + + + The amplitude of the pulse between 0.0 and 1.0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'duration' property. + + + + + Cached name for the 'frequency' property. + + + + + Cached name for the 'amplitude' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_duration' method. + + + + + Cached name for the 'get_duration' method. + + + + + Cached name for the 'set_frequency' method. + + + + + Cached name for the 'get_frequency' method. + + + + + Cached name for the 'set_amplitude' method. + + + + + Cached name for the 'get_amplitude' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This binding resource binds an to an input or output. 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". This would require two binding entries. + + + + + that is bound to . + + + + + Binding path that defines the input or output bound to . + Note: Binding paths are suggestions, an XR runtime may choose to bind the action to a different input or output emulating this input or output. + + + + + Binding modifiers for this binding. + + + + + Paths that define the inputs or outputs bound on the device. + + + + + Get the number of binding modifiers for this binding. + + + + + Get the at this index. + + + + + Get the number of input/output paths in this binding. + + + + + Returns if this input/output path is part of this binding. + + + + + Add an input/output path to this binding. + + + + + Removes this input/output path from this binding. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'action' property. + + + + + Cached name for the 'binding_path' property. + + + + + Cached name for the 'binding_modifiers' property. + + + + + Cached name for the 'paths' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_action' method. + + + + + Cached name for the 'get_action' method. + + + + + Cached name for the 'set_binding_path' method. + + + + + Cached name for the 'get_binding_path' method. + + + + + Cached name for the 'get_binding_modifier_count' method. + + + + + Cached name for the 'get_binding_modifier' method. + + + + + Cached name for the 'set_binding_modifiers' method. + + + + + Cached name for the 'get_binding_modifiers' method. + + + + + Cached name for the 'set_paths' method. + + + + + Cached name for the 'get_paths' method. + + + + + Cached name for the 'get_path_count' method. + + + + + Cached name for the 'has_path' method. + + + + + Cached name for the 'add_path' method. + + + + + Cached name for the 'remove_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Binding modifier that applies directly on an interaction profile. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object stores suggested bindings for an interaction profile. Interaction profiles define the metadata for a tracked XR device such as an XR controller. + For more information see the interaction profiles info in the OpenXR specification. + + + + + The interaction profile path identifying the XR device. + + + + + Action bindings for this interaction profile. + + + + + Binding modifiers for this interaction profile. + + + + + Get the number of bindings in this interaction profile. + + + + + Retrieve the binding at this index. + + + + + Get the number of binding modifiers in this interaction profile. + + + + + Get the at this index. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'interaction_profile_path' property. + + + + + Cached name for the 'bindings' property. + + + + + Cached name for the 'binding_modifiers' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_interaction_profile_path' method. + + + + + Cached name for the 'get_interaction_profile_path' method. + + + + + Cached name for the 'get_binding_count' method. + + + + + Cached name for the 'get_binding' method. + + + + + Cached name for the 'set_bindings' method. + + + + + Cached name for the 'get_bindings' method. + + + + + Cached name for the 'get_binding_modifier_count' method. + + + + + Cached name for the 'get_binding_modifier' method. + + + + + Cached name for the 'set_binding_modifiers' method. + + + + + Cached name for the 'get_binding_modifiers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the default OpenXR interaction profile editor that provides a generic interface for editing any interaction profile for which no custom editor has been defined. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a base class for interaction profile editors used by the OpenXR action map editor. It can be used to create bespoke editors for specific interaction profiles. + + + + + Setup this editor for the provided and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Allows for renaming old interaction profile paths to new paths to maintain backwards compatibility with older action maps. + + + + + Registers a top level path to which profiles can be bound. For instance /user/hand/left refers to the bind point for the player's left hand. Extensions can register additional top level paths, for instance a haptic vest extension might register /user/body/vest. + is the name shown to the user. is the top level path being registered. is optional and ensures the top level path is only used if the specified extension is available/enabled. + When a top level path ends up being bound by OpenXR, a is instantiated to manage the state of the device. + + + + + Registers an interaction profile using its OpenXR designation (e.g. /interaction_profiles/khr/simple_controller is the profile for OpenXR's simple controller profile). + is the description shown to the user. is the interaction profile path being registered. optionally restricts this profile to the given extension being enabled/available. If the extension is not available, the profile and all related entries used in an action map are filtered out. + + + + + Registers an input/output path for the given . The profile should previously have been registered using . is the description shown to the user. specifies the bind path this input/output can be bound to (e.g. /user/hand/left or /user/hand/right). is the action input/output being registered (e.g. /user/hand/left/input/aim/pose). restricts this input/output to an enabled/available extension, this doesn't need to repeat the extension on the profile but relates to overlapping extension (e.g. XR_EXT_palm_pose that introduces …/input/palm_ext/pose input paths). defines the type of input or output provided by OpenXR. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_profile_rename' method. + + + + + Cached name for the 'register_top_level_path' method. + + + + + Cached name for the 'register_interaction_profile' method. + + + + + Cached name for the 'register_io_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Left hand. + + + + + Right hand. + + + + + Maximum value for the hand enum. + + + + + Full hand range, if user closes their hands, we make a full fist. + + + + + Conform to controller, if user closes their hands, the tracked data conforms to the shape of the controller. + + + + + Maximum value for the motion range enum. + + + + + The source of hand tracking data is unknown (the extension is likely unsupported). + + + + + The source of hand tracking is unobstructed, this means that an accurate method of hand tracking is used, e.g. optical hand tracking, data gloves, etc. + + + + + The source of hand tracking is a controller, bone positions are inferred from controller inputs. + + + + + Maximum value for the hand tracked source enum. + + + + + Palm joint. + + + + + Wrist joint. + + + + + Thumb metacarpal joint. + + + + + Thumb proximal joint. + + + + + Thumb distal joint. + + + + + Thumb tip joint. + + + + + Index metacarpal joint. + + + + + Index proximal joint. + + + + + Index intermediate joint. + + + + + Index distal joint. + + + + + Index tip joint. + + + + + Middle metacarpal joint. + + + + + Middle proximal joint. + + + + + Middle intermediate joint. + + + + + Middle distal joint. + + + + + Middle tip joint. + + + + + Ring metacarpal joint. + + + + + Ring proximal joint. + + + + + Ring intermediate joint. + + + + + Ring distal joint. + + + + + Ring tip joint. + + + + + Little metacarpal joint. + + + + + Little proximal joint. + + + + + Little intermediate joint. + + + + + Little distal joint. + + + + + Little tip joint. + + + + + Maximum value for the hand joint enum. + + + + + No flags are set. + + + + + If set, the orientation data is valid, otherwise, the orientation data is unreliable and should not be used. + + + + + If set, the orientation data comes from tracking data, otherwise, the orientation data contains predicted data. + + + + + If set, the positional data is valid, otherwise, the positional data is unreliable and should not be used. + + + + + If set, the positional data comes from tracking data, otherwise, the positional data contains predicted data. + + + + + If set, our linear velocity data is valid, otherwise, the linear velocity data is unreliable and should not be used. + + + + + If set, our angular velocity data is valid, otherwise, the angular velocity data is unreliable and should not be used. + + + + + The display refresh rate for the current HMD. Only functional if this feature is supported by the OpenXR runtime and after the interface has been initialized. + + + + + The render size multiplier for the current HMD. Must be set before the interface has been initialized. + + + + + Set foveation level from 0 (off) to 3 (high), the interface must be initialized before this is accessible. + Note: Only works on compatibility renderer. + + + + + Enable dynamic foveation adjustment, the interface must be initialized before this is accessible. If enabled foveation will automatically adjusted between low and . + Note: Only works on compatibility renderer. + + + + + The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. This improves performance at the cost of quality. + Note: Mobile and Forward+ renderers only. Requires to be set to . + + + + + Returns if OpenXR's foveation extension is supported, the interface must be initialized before this returns a valid value. + Note: This feature is only available on the compatibility renderer and currently only available on some stand alone headsets. For Vulkan set to VRS_XR on desktop. + + + + + Returns if the given action set is active. + + + + + Sets the given action set as active or inactive. + + + + + Returns a list of action sets registered with Godot (loaded from the action map at runtime). + + + + + Returns display refresh rates supported by the current HMD. Only returned if this feature is supported by the OpenXR runtime and after the interface has been initialized. + + + + + If handtracking is enabled and motion range is supported, sets the currently configured motion range for to . + + + + + If handtracking is enabled and motion range is supported, gets the currently configured motion range for . + + + + + If handtracking is enabled and hand tracking source is supported, gets the source of the hand tracking data for . + + + + + If handtracking is enabled, returns flags that inform us of the validity of the tracking data. + + + + + If handtracking is enabled, returns the rotation of a joint () of a hand () as provided by OpenXR. + + + + + If handtracking is enabled, returns the position of a joint () of a hand () as provided by OpenXR. This is relative to without worldscale applied! + + + + + If handtracking is enabled, returns the radius of a joint () of a hand () as provided by OpenXR. This is without worldscale applied! + + + + + If handtracking is enabled, returns the linear velocity of a joint () of a hand () as provided by OpenXR. This is relative to without worldscale applied! + + + + + If handtracking is enabled, returns the angular velocity of a joint () of a hand () as provided by OpenXR. This is relative to ! + + + + + Returns if OpenXR's hand tracking is supported and enabled. + Note: This only returns a valid value after OpenXR has been initialized. + + + + + Returns if OpenXR's hand interaction profile is supported and enabled. + Note: This only returns a valid value after OpenXR has been initialized. + + + + + Returns the capabilities of the eye gaze interaction extension. + Note: This only returns a valid value after OpenXR has been initialized. + + + + + Informs our OpenXR session has been started. + + + + + Informs our OpenXR session is stopping. + + + + + Informs our OpenXR session now has focus. + + + + + Informs our OpenXR session is now visible (output is being sent to the HMD). + + + + + Informs our OpenXR session is in the process of being lost. + + + + + Informs our OpenXR instance is exiting. + + + + + Informs the user queued a recenter of the player position. + + + + + Represents the method that handles the event of a class. + + + + + Informs the user the HMD refresh rate has changed. + Note: Only emitted if XR runtime supports the refresh rate extension. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'display_refresh_rate' property. + + + + + Cached name for the 'render_target_size_multiplier' property. + + + + + Cached name for the 'foveation_level' property. + + + + + Cached name for the 'foveation_dynamic' property. + + + + + Cached name for the 'vrs_min_radius' property. + + + + + Cached name for the 'vrs_strength' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_display_refresh_rate' method. + + + + + Cached name for the 'set_display_refresh_rate' method. + + + + + Cached name for the 'get_render_target_size_multiplier' method. + + + + + Cached name for the 'set_render_target_size_multiplier' method. + + + + + Cached name for the 'is_foveation_supported' method. + + + + + Cached name for the 'get_foveation_level' method. + + + + + Cached name for the 'set_foveation_level' method. + + + + + Cached name for the 'get_foveation_dynamic' method. + + + + + Cached name for the 'set_foveation_dynamic' method. + + + + + Cached name for the 'is_action_set_active' method. + + + + + Cached name for the 'set_action_set_active' method. + + + + + Cached name for the 'get_action_sets' method. + + + + + Cached name for the 'get_available_display_refresh_rates' method. + + + + + Cached name for the 'set_motion_range' method. + + + + + Cached name for the 'get_motion_range' method. + + + + + Cached name for the 'get_hand_tracking_source' method. + + + + + Cached name for the 'get_hand_joint_flags' method. + + + + + Cached name for the 'get_hand_joint_rotation' method. + + + + + Cached name for the 'get_hand_joint_position' method. + + + + + Cached name for the 'get_hand_joint_radius' method. + + + + + Cached name for the 'get_hand_joint_linear_velocity' method. + + + + + Cached name for the 'get_hand_joint_angular_velocity' method. + + + + + Cached name for the 'is_hand_tracking_supported' method. + + + + + Cached name for the 'is_hand_interaction_supported' method. + + + + + Cached name for the 'is_eye_gaze_interaction_supported' method. + + + + + Cached name for the 'get_vrs_min_radius' method. + + + + + Cached name for the 'set_vrs_min_radius' method. + + + + + Cached name for the 'get_vrs_strength' method. + + + + + Cached name for the 'set_vrs_strength' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'session_begun' signal. + + + + + Cached name for the 'session_stopping' signal. + + + + + Cached name for the 'session_focussed' signal. + + + + + Cached name for the 'session_visible' signal. + + + + + Cached name for the 'session_loss_pending' signal. + + + + + Cached name for the 'instance_exiting' signal. + + + + + Cached name for the 'pose_recentered' signal. + + + + + Cached name for the 'refresh_rate_changed' signal. + + + + + The visibility mask allows us to black out the part of the render result that is invisible due to lens distortion. + As this is rendered first, it prevents fragments with expensive lighting calculations to be processed as they are discarded through z-checking. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An optimized translation, used by default for CSV Translations. Uses real-time compressed translations, which results in very small dictionaries. + + + + + Generates and sets an optimized translation from the given resource. + Note: This method is intended to be used in the editor. It does nothing when called from an exported project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'generate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 which contains common properties and methods associated with this node. + Note: The ID values used for items are limited to 32 bits, not full 64 bits of . This has a range of -2^32 to 2^32 - 1, i.e. -2147483648 to 2147483647. + Note: The and properties are set automatically based on the selected item. They shouldn't be changed manually. + + + + + The index of the currently selected item, or -1 if no item is selected. + + + + + If , minimum size will be determined by the longest item's text, instead of the currently selected one's. + Note: For performance reasons, the minimum size doesn't update immediately when adding, removing or modifying items. + + + + + If , the currently selected item can be selected again. + + + + + The number of items to select from. + + + + + Adds an item, with text and (optionally) . If no is passed, the item index will be used as the item's ID. New items are appended at the end. + + + + + Adds an item, with a icon, text and (optionally) . If no is passed, the item index will be used as the item's ID. New items are appended at the end. + + + + + Sets the text of the item at index . + + + + + Sets the icon of the item at index . + + + + + Sets whether the item at index is disabled. + Disabled items are drawn differently in the dropdown and are not selectable by the user. If the current selected item is set as disabled, it will remain selected. + + + + + Sets the ID of the item at index . + + + + + Sets the metadata of an item. Metadata may be of any type and can be used to store extra information about an item, such as an external string ID. + + + + + Sets the tooltip of the item at index . + + + + + Returns the text of the item at index . + + + + + Returns the icon of the item at index . + + + + + Returns the ID of the item at index . + + + + + Returns the index of the item with the given . + + + + + Retrieves the metadata of an item. Metadata may be any type and can be used to store extra information about an item, such as an external string ID. + + + + + Returns the tooltip of the item at index . + + + + + Returns if the item at index is disabled. + + + + + Returns if the item at index is marked as a separator. + + + + + Adds a separator to the list of items. Separators help to group items, and can optionally be given a header. A separator also gets an index assigned, and is appended at the end of the item list. + + + + + Clears all the items in the . + + + + + Selects an item by index and makes it the current item. This will work even if the item is disabled. + Passing -1 as the index deselects any currently selected item. + + + + + Returns the ID of the selected item, or -1 if no item is selected. + + + + + Gets the metadata of the selected item. Metadata for items can be set using . + + + + + Removes the item at index . + + + + + Returns the contained in this button. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adjusts popup position and sizing for the , then shows the . Prefer this over using get_popup().popup(). + + + + + Returns if this button contains at least one item which is not disabled, or marked as a separator. + + + + + Returns the index of the first item which is not disabled, or marked as a separator. If is , the items will be searched in reverse order. + Returns -1 if no item is found. + + + + + If , shortcuts are disabled and cannot be used to trigger the button. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the current item has been changed by the user. The index of the item selected is passed as argument. + must be enabled to reselect an item. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user navigates to an item using the ProjectSettings.input/ui_up or ProjectSettings.input/ui_down input actions. The index of the item selected is passed as argument. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'selected' property. + + + + + Cached name for the 'fit_to_longest_item' property. + + + + + Cached name for the 'allow_reselect' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_id' method. + + + + + Cached name for the 'set_item_metadata' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_id' method. + + + + + Cached name for the 'get_item_index' method. + + + + + Cached name for the 'get_item_metadata' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'is_item_separator' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'get_selected' method. + + + + + Cached name for the 'get_selected_id' method. + + + + + Cached name for the 'get_selected_metadata' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the '_select_int' method. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'show_popup' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'has_selectable_items' method. + + + + + Cached name for the 'get_selectable_item' method. + + + + + Cached name for the 'set_fit_to_longest_item' method. + + + + + Cached name for the 'is_fit_to_longest_item' method. + + + + + Cached name for the 'set_allow_reselect' method. + + + + + Cached name for the 'get_allow_reselect' method. + + + + + Cached name for the 'set_disable_shortcuts' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'item_selected' signal. + + + + + Cached name for the 'item_focused' signal. + + + + + The is used to create packages that can be loaded into a running project using . + + var packer = new PckPacker(); + packer.PckStart("test.pck"); + packer.AddFile("res://text.txt", "text.txt"); + packer.Flush(); + + The above creates package test.pck, then adds a file named text.txt at the root of the package. + Note: PCK is Godot's own pack file format. To create ZIP archives that can be read by any program, use instead. + + + + + Creates a new PCK file at the file path . The .pck file extension isn't added automatically, so it should be part of (even though it's not required). + + + + + Adds the file to the current PCK package at the internal path. The res:// prefix for is optional and stripped internally. + + + + + Registers a file removal of the internal path to the PCK. This is mainly used for patches. If the file at this path has been loaded from a previous PCK, it will be removed. The res:// prefix for is optional and stripped internally. + + + + + Writes the files specified using all calls since the last flush. If is , a list of files added will be printed to the console for easier debugging. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'pck_start' method. + + + + + Cached name for the 'add_file' method. + + + + + Cached name for the 'add_file_removal' method. + + + + + Cached name for the 'flush' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + can be used to efficiently store data from untyped containers. The data is packed into raw bytes and can be saved to file. Only and 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 , the data can be retrieved by key names (/ only). + + var data = { "key": "value", "another_key": 123, "lock": Vector2() } + var packed = PackedDataContainer.new() + packed.pack(data) + ResourceSaver.save(packed, "packed_data.res") + + + var container = load("packed_data.res") + for key in container: + prints(key, container[key]) + + # Prints: + # key value + # lock (0, 0) + # another_key 123 + + Nested containers will be packed recursively. While iterating, they will be returned as . + + + + + Packs the given container into a binary representation. The must be either or , any other type will result in invalid data error. + Note: Subsequent calls to this method will overwrite the existing data. + + + + + Returns the size of the packed container (see Array.size and Dictionary.size). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '__data__' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'pack' method. + + + + + Cached name for the 'size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + When packing nested containers using , they are recursively packed into (only applies to and ). Their data can be retrieved the same way as from . + + 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 + + + + + + Returns the size of the packed container (see Array.size and Dictionary.size). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PacketPeer is an abstraction and base class for packet-based protocols (such as UDP). It provides an API for sending and receiving packets both as raw data or variables. This makes it easy to transfer data over a protocol, without having to encode data as low-level bytes or having to worry about network ordering. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Maximum buffer size allowed when encoding s. Raise this value to support heavier memory allocations. + The method allocates memory on the stack, and the buffer used will grow automatically to the closest power of two to match the size of the . If the is bigger than , the method will error out with . + + + + + Gets a Variant. If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Sends a as a packet. If is , encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Gets a raw packet. + + + + + Sends a raw packet. + + + + + Sends a raw packet. + + + + + Returns the error state of the last packet received (via and ). + + + + + Returns the number of packets currently available in the ring-buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'encode_buffer_max_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_var' method. + + + + + Cached name for the 'put_var' method. + + + + + Cached name for the 'get_packet' method. + + + + + Cached name for the 'put_packet' method. + + + + + Cached name for the 'get_packet_error' method. + + + + + Cached name for the 'get_available_packet_count' method. + + + + + Cached name for the 'get_encode_buffer_max_size' method. + + + + + Cached name for the 'set_encode_buffer_max_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class represents a DTLS peer connection. It can be used to connect to a DTLS server, and is returned by . + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + Warning: TLS certificate revocation and certificate pinning are currently not supported. Revoked certificates are accepted as long as they are otherwise valid. If this is a concern, you may want to use automatically managed certificates with a short validity period. + + + + + A status representing a that is disconnected. + + + + + A status representing a that is currently performing the handshake with a remote peer. + + + + + A status representing a that is connected to a remote peer. + + + + + A status representing a in a generic error state. + + + + + An error status that shows a mismatch in the DTLS certificate domain presented by the host and the domain requested for validation. + + + + + Poll the connection to check for incoming packets. Call this frequently to update the status and keep the connection working. + + + + + Connects a beginning the DTLS handshake using the underlying which must be connected (see ). You can optionally specify the to be used while verifying the TLS connections. See and . + + + + + Returns the status of the connection. See for values. + + + + + Disconnects this peer, terminating the DTLS session. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'connect_to_peer' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'disconnect_from_peer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_available_packet_count' method. + + + + + Cached name for the '_get_max_packet_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PacketStreamPeer provides a wrapper for working using packets over a stream. This allows for using packet based code with StreamPeers. PacketPeerStream implements a custom protocol over the StreamPeer, so the user should not read or write to the wrapped StreamPeer directly. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The wrapped object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'input_buffer_max_size' property. + + + + + Cached name for the 'output_buffer_max_size' property. + + + + + Cached name for the 'stream_peer' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream_peer' method. + + + + + Cached name for the 'get_stream_peer' method. + + + + + Cached name for the 'set_input_buffer_max_size' method. + + + + + Cached name for the 'set_output_buffer_max_size' method. + + + + + Cached name for the 'get_input_buffer_max_size' method. + + + + + Cached name for the 'get_output_buffer_max_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + UDP packet peer. Can be used to send and receive raw UDP packets as well as s. + Example: Send a packet: + + var peer = PacketPeerUDP.new() + + # Optionally, you can select the local port used to send the packet. + peer.bind(4444) + + peer.set_dest_address("1.1.1.1", 4433) + peer.put_packet("hello".to_utf8_buffer()) + + Example: Listen for packets: + + var peer + + func _ready(): + peer = PacketPeerUDP.new() + peer.bind(4433) + + + func _process(_delta): + if peer.get_available_packet_count() > 0: + var array_bytes = peer.get_packet() + var packet_string = array_bytes.get_string_from_ascii() + print("Received message: ", packet_string) + + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Binds this to the specified and with a buffer size , allowing it to receive incoming packets. + If is set to "*" (default), the peer will be bound on all available addresses (both IPv4 and IPv6). + If is set to "0.0.0.0" (for IPv4) or "::" (for IPv6), the peer will be bound to all available addresses matching that IP type. + If is set to any valid address (e.g. "192.168.1.101", "::1", etc.), the peer will only be bound to the interface with that address (or fail if no interface with the given address exists). + + + + + Closes the 's underlying UDP socket. + + + + + Waits for a packet to arrive on the bound address. See . + Note: can't be interrupted once it has been called. This can be worked around by allowing the other party to send a specific "death pill" packet like this: + + var socket = new PacketPeerUdp(); + // Server + socket.SetDestAddress("127.0.0.1", 789); + socket.PutPacket("Time to stop".ToAsciiBuffer()); + + // Client + while (socket.Wait() == OK) + { + string data = socket.GetPacket().GetStringFromASCII(); + if (data == "Time to stop") + { + return; + } + } + + + + + + Returns whether this is bound to an address and can receive packets. + + + + + Calling this method connects this UDP peer to the given / pair. UDP is in reality connectionless, so this option only means that incoming packets from different addresses are automatically discarded, and that outgoing packets are always sent to the connected address (future calls to are not allowed). This method does not send any data to the remote peer, to do that, use or as usual. See also . + Note: Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like TLS or DTLS if you feel like your application is transferring sensitive information. + + + + + Returns if the UDP socket is open and has been connected to a remote address. See . + + + + + Returns the IP of the remote peer that sent the last packet(that was received with or ). + + + + + Returns the port of the remote peer that sent the last packet(that was received with or ). + + + + + Returns the local port to which this peer is bound. + + + + + Sets the destination address and port for sending packets and variables. A hostname will be resolved using DNS if needed. + Note: must be enabled before sending packets to a broadcast address (e.g. 255.255.255.255). + + + + + Enable or disable sending of broadcast packets (e.g. set_dest_address("255.255.255.255", 4343). This option is disabled by default. + Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission and this option to be enabled to receive broadcast packets too. + + + + + Joins the multicast group specified by using the interface identified by . + You can join the same multicast group with multiple interfaces. Use to know which are available. + Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE permission for multicast to work. + + + + + Removes the interface identified by from the multicast group specified by . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bind' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'wait' method. + + + + + Cached name for the 'is_bound' method. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'is_socket_connected' method. + + + + + Cached name for the 'get_packet_ip' method. + + + + + Cached name for the 'get_packet_port' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'set_dest_address' method. + + + + + Cached name for the 'set_broadcast_enabled' method. + + + + + Cached name for the 'join_multicast_group' method. + + + + + Cached name for the 'leave_multicast_group' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a GUI control that displays a . See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A container that keeps its child controls within the area of a . Useful for giving controls an outline. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource referenced in a that is used to draw a background. functions similar to skyboxes in other engines, except it uses an equirectangular sky map instead of a . + Using an HDR panorama is strongly recommended for accurate, high-quality reflections. Godot supports the Radiance HDR (.hdr) and OpenEXR (.exr) image formats for this purpose. + You can use this tool to convert a cubemap to an equirectangular sky map. + + + + + to be applied to the . + + + + + A boolean value to determine if the background texture should be filtered or not. + + + + + The sky's overall brightness multiplier. Higher values result in a brighter sky. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'panorama' property. + + + + + Cached name for the 'filter' property. + + + + + Cached name for the 'energy_multiplier' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_panorama' method. + + + + + Cached name for the 'get_panorama' method. + + + + + Cached name for the 'set_filtering_enabled' method. + + + + + Cached name for the 'is_filtering_enabled' method. + + + + + Cached name for the 'set_energy_multiplier' method. + + + + + Cached name for the 'get_energy_multiplier' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A is used to create a parallax effect. It can move at a different speed relative to the camera movement using . This creates an illusion of depth in a 2D game. If manual scrolling is desired, the position can be ignored with . + Note: Any changes to this node's position made after it enters the scene tree will be overridden if is or is modified. + + + + + Multiplier to the final 's offset. Can be used to simulate distance from the camera. + For example, a value of 1 scrolls at the same speed as the camera. A value greater than 1 scrolls faster, making objects appear closer. Less than 1 scrolls slower, making objects appear further, and a value of 0 stops the objects completely. + + + + + The 's offset. Similar to and , but will not be overridden. + Note: Values will loop if is set higher than 0. + + + + + Repeats the of each of this node's children and offsets them by this value. When scrolling, the node's position loops, giving the illusion of an infinite scrolling background if the values are larger than the screen size. If an axis is set to 0, the will not be repeated. + + + + + Velocity at which the offset scrolls automatically, in pixels per second. + + + + + Overrides the amount of times the texture repeats. Each texture copy spreads evenly from the original by . Useful for when zooming out with a camera. + + + + + Top-left limits for scrolling to begin. If the camera is outside of this limit, the stops scrolling. Must be lower than minus the viewport size to work. + + + + + Bottom-right limits for scrolling to end. If the camera is outside of this limit, the will stop scrolling. Must be higher than and the viewport size combined to work. + + + + + If , this is offset by the current camera's position. If the is in a separate from the current camera, it may be desired to match the value with . + + + + + If , 's position is not affected by the position of the camera. + + + + + Offset used to scroll this . This value is updated automatically unless is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_scale' property. + + + + + Cached name for the 'scroll_offset' property. + + + + + Cached name for the 'repeat_size' property. + + + + + Cached name for the 'autoscroll' property. + + + + + Cached name for the 'repeat_times' property. + + + + + Cached name for the 'limit_begin' property. + + + + + Cached name for the 'limit_end' property. + + + + + Cached name for the 'follow_viewport' property. + + + + + Cached name for the 'ignore_camera_scroll' property. + + + + + Cached name for the 'screen_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_scroll_scale' method. + + + + + Cached name for the 'get_scroll_scale' method. + + + + + Cached name for the 'set_repeat_size' method. + + + + + Cached name for the 'get_repeat_size' method. + + + + + Cached name for the 'set_repeat_times' method. + + + + + Cached name for the 'get_repeat_times' method. + + + + + Cached name for the 'set_autoscroll' method. + + + + + Cached name for the 'get_autoscroll' method. + + + + + Cached name for the 'set_scroll_offset' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_screen_offset' method. + + + + + Cached name for the 'get_screen_offset' method. + + + + + Cached name for the 'set_limit_begin' method. + + + + + Cached name for the 'get_limit_begin' method. + + + + + Cached name for the 'set_limit_end' method. + + + + + Cached name for the 'get_limit_end' method. + + + + + Cached name for the 'set_follow_viewport' method. + + + + + Cached name for the 'get_follow_viewport' method. + + + + + Cached name for the 'set_ignore_camera_scroll' method. + + + + + Cached name for the 'is_ignore_camera_scroll' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A ParallaxBackground uses one or more child nodes to create a parallax effect. Each can move at a different speed using . This creates an illusion of depth in a 2D game. If not used with a , you must manually calculate the . + Note: Each is drawn on one specific and cannot be shared between multiple s, see . When using multiple s, for example in a split-screen game, you need create an individual for each you want it to be drawn on. + + + + + The ParallaxBackground's scroll value. Calculated automatically when using a , but can be used to manually manage scrolling when no camera is present. + + + + + The base position offset for all children. + + + + + The base motion scale for all children. + + + + + Top-left limits for scrolling to begin. If the camera is outside of this limit, the background will stop scrolling. Must be lower than to work. + + + + + Bottom-right limits for scrolling to end. If the camera is outside of this limit, the background will stop scrolling. Must be higher than to work. + + + + + If , elements in child aren't affected by the zoom level of the camera. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_offset' property. + + + + + Cached name for the 'scroll_base_offset' property. + + + + + Cached name for the 'scroll_base_scale' property. + + + + + Cached name for the 'scroll_limit_begin' property. + + + + + Cached name for the 'scroll_limit_end' property. + + + + + Cached name for the 'scroll_ignore_camera_zoom' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_scroll_offset' method. + + + + + Cached name for the 'get_scroll_offset' method. + + + + + Cached name for the 'set_scroll_base_offset' method. + + + + + Cached name for the 'get_scroll_base_offset' method. + + + + + Cached name for the 'set_scroll_base_scale' method. + + + + + Cached name for the 'get_scroll_base_scale' method. + + + + + Cached name for the 'set_limit_begin' method. + + + + + Cached name for the 'get_limit_begin' method. + + + + + Cached name for the 'set_limit_end' method. + + + + + Cached name for the 'get_limit_end' method. + + + + + Cached name for the 'set_ignore_camera_zoom' method. + + + + + Cached name for the 'is_ignore_camera_zoom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A ParallaxLayer must be the child of a node. Each ParallaxLayer can be set to move at different speeds relative to the camera movement or the value. + This node's children will be affected by its scroll offset. + Note: Any changes to this node's position and scale made after it enters the scene will be ignored. + + + + + Multiplies the ParallaxLayer's motion. If an axis is set to 0, it will not scroll. + + + + + The ParallaxLayer's offset relative to the parent ParallaxBackground's . + + + + + The interval, in pixels, at which the is drawn repeatedly. Useful for creating an infinitely scrolling background. If an axis is set to 0, the will be drawn only once along that direction. + Note: If you want the repetition to pixel-perfect match a displayed by a child node, you should account for any scale applied to the texture when defining this interval. For example, if you use a child scaled to 0.5 to display a 600x600 texture, and want this sprite to be repeated continuously horizontally, you should set the mirroring to Vector2(300, 0). + Note: If the length of the viewport axis is bigger than twice the repeated axis size, it will not repeat infinitely, as the parallax layer only draws 2 instances of the layer at any given time. The visibility window is calculated from the parent 's position, not the layer's own position. So, if you use mirroring, do not change the position relative to its parent. Instead, if you need to adjust the background's position, set the property in the parent . + Note: Despite the name, the layer will not be mirrored, it will only be repeated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_scale' property. + + + + + Cached name for the 'motion_offset' property. + + + + + Cached name for the 'motion_mirroring' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_motion_scale' method. + + + + + Cached name for the 'get_motion_scale' method. + + + + + Cached name for the 'set_motion_offset' method. + + + + + Cached name for the 'get_motion_offset' method. + + + + + Cached name for the 'set_mirroring' method. + + + + + Cached name for the 'get_mirroring' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + defines particle properties and behavior. It is used in the process_material of the and nodes. Some of this material's properties are applied to each particle when emitted, while others can have a or a applied to vary numerical or color values over the lifetime of the particle. + + + + + Use with , , and to set initial velocity properties. + + + + + Use with , , and to set angular velocity properties. + + + + + Use with , , and to set orbital velocity properties. + + + + + Use with , , and to set linear acceleration properties. + + + + + Use with , , and to set radial acceleration properties. + + + + + Use with , , and to set tangential acceleration properties. + + + + + Use with , , and to set damping properties. + + + + + Use with , , and to set angle properties. + + + + + Use with , , and to set scale properties. + + + + + Use with , , and to set hue variation properties. + + + + + Use with , , and to set animation speed properties. + + + + + Use with , , and to set animation offset properties. + + + + + Use with , , and to set radial velocity properties. + + + + + Use with , , and to set directional velocity properties. + + + + + Use with , , and to set scale over velocity properties. + + + + + Represents the size of the enum. + + + + + Use with and to set the turbulence minimum und maximum influence on each particles velocity. + + + + + Use with and to set the turbulence minimum and maximum displacement of the particles spawn position. + + + + + Use with to set the turbulence influence over the particles life time. + + + + + Use with to set . + + + + + Use with to set . + + + + + Use with to set . + + + + + Represents the size of the enum. + + + + + All particles will be emitted from a single point. + + + + + Particles will be emitted in the volume of a sphere. + + + + + Particles will be emitted on the surface of a sphere. + + + + + Particles will be emitted in the volume of a box. + + + + + Particles will be emitted at a position determined by sampling a random point on the . Particle color will be modulated by . + + + + + Particles will be emitted at a position determined by sampling a random point on the . Particle velocity and rotation will be set based on . Particle color will be modulated by . + + + + + Particles will be emitted in a ring or cylinder. + + + + + Represents the size of the enum. + + + + + Represents the size of the enum. + + + + + No collision for particles. Particles will go through nodes. + + + + + -style collision for particles using nodes. + + + + + Hide particles instantly when colliding with a node. This can be combined with a subemitter that uses the collision mode to "replace" the parent particle with the subemitter on impact. + + + + + Represents the size of the enum. + + + + + Particle lifetime randomness ratio. The equation for the lifetime of a particle is lifetime * (1.0 - randf() * lifetime_randomness). For example, a of 0.4 scales the lifetime between 0.6 to 1.0 of its original value. + + + + + Align Y axis of particle with the direction of its velocity. + + + + + If , particles rotate around Y axis by . + + + + + If , particles will not move on the z axis. + + + + + Changes the behavior of the damping properties from a linear deceleration to a deceleration based on speed percentage. + + + + + The offset for the , in local space. + + + + + The scale of the , in local space. + + + + + Particles will be emitted inside this region. Use constants for values. + + + + + The sphere's radius if is set to . + + + + + The box's extents if is set to . + Note: starts from the center point and applies the X, Y, and Z values in both directions. The size is twice the area of the extents. + + + + + Particles will be emitted at positions determined by sampling this texture at a random position. Used with and . Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar. + + + + + Particle velocity and rotation will be set by sampling this texture at the same point as the . Used only in . Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar. + + + + + Particle color will be modulated by color determined by sampling this texture at the same point as the . + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + The number of emission points if is set to or . + + + + + The axis of the ring when using the emitter . + + + + + The height of the ring when using the emitter . + + + + + The radius of the ring when using the emitter . + + + + + The inner radius of the ring when using the emitter . + + + + + The angle of the cone when using the emitter . The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. + Note: Depending on , the angle may be clamped if the ring's end is reached to form a perfect cone. + + + + + Minimum equivalent of . + + + + + Maximum initial rotation applied to each particle, in degrees. + Only applied when or are or the being used to draw the particle is using . + + + + + Each particle's rotation will be animated along this . + + + + + Percentage of the velocity of the respective or inherited by each particle when spawning. + + + + + A pivot point used to calculate radial and orbital velocity of particles. + + + + + Unit vector specifying the particles' emission direction. + + + + + Each particle's initial direction range from +spread to -spread degrees. + + + + + Amount of along the Y axis. + + + + + Minimum equivalent of . + + + + + Maximum initial velocity magnitude for each particle. Direction comes from and . + + + + + Minimum equivalent of . + + + + + Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. + Only applied when or are or the being used to draw the particle is using . + + + + + Each particle's angular velocity (rotation speed) will vary along this over its lifetime. + + + + + Minimum directional velocity value, which is multiplied by . + Note: Animated velocities will not be affected by damping, use instead. + + + + + Maximum directional velocity value, which is multiplied by . + Note: Animated velocities will not be affected by damping, use instead. + + + + + A curve that specifies the velocity along each of the axes of the particle system along its lifetime. + Note: Animated velocities will not be affected by damping, use instead. + + + + + Minimum equivalent of . + Note: Animated velocities will not be affected by damping, use instead. + + + + + Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second. + Note: Animated velocities will not be affected by damping, use instead. + + + + + Each particle's orbital velocity will vary along this . + Note: For 3D orbital velocity, use a . + Note: Animated velocities will not be affected by damping, use instead. + + + + + Minimum radial velocity applied to each particle. Makes particles move away from the , or toward it if negative. + Note: Animated velocities will not be affected by damping, use instead. + + + + + Maximum radial velocity applied to each particle. Makes particles move away from the , or toward it if negative. + Note: Animated velocities will not be affected by damping, use instead. + + + + + A that defines the velocity over the particle's lifetime away (or toward) the . + Note: Animated velocities will not be affected by damping, use instead. + + + + + A that defines the maximum velocity of a particle during its lifetime. + + + + + Gravity applied to every particle. + + + + + Minimum equivalent of . + + + + + Maximum linear acceleration applied to each particle in the direction of motion. + + + + + Each particle's linear acceleration will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative. + + + + + Each particle's radial acceleration will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion. + + + + + Each particle's tangential acceleration will vary along this . + + + + + Minimum equivalent of . + + + + + The maximum rate at which particles lose velocity. For example value of 100 means that the particle will go from 100 velocity to 0 in 1 second. + + + + + Damping will vary along this . + + + + + If , interaction with particle attractors is enabled. In 3D, attraction only occurs within the area defined by the node's . + + + + + Minimum equivalent of . + + + + + Maximum initial scale applied to each particle. + + + + + Each particle's scale will vary along this over its lifetime. If a is supplied instead, the scale will be separated per-axis. + + + + + Minimum velocity value reference for . + will be interpolated between and . + + + + + Maximum velocity value reference for . + will be interpolated between and . + + + + + Either a or a that scales each particle based on its velocity. + + + + + Each particle's initial color. If the 's texture is defined, it will be multiplied by this color. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's color will vary along this over its lifetime (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's initial color will vary along this (multiplied with ). + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + The alpha value of each particle's color will be multiplied by this over its lifetime. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Each particle's color will be multiplied by this over its lifetime. + Note: multiplies the particle mesh's vertex colors. To have a visible effect on a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, will have no visible effect. + + + + + Minimum equivalent of . + + + + + Maximum initial hue variation applied to each particle. It will shift the particle color's hue. + + + + + Each particle's hue will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum particle animation speed. Animation speed of 1 means that the particles will make full 0 to 1 offset cycle during lifetime, 2 means 2 cycles etc. + With animation speed greater than 1, remember to enable property if you want the animation to repeat. + + + + + Each particle's animation speed will vary along this . + + + + + Minimum equivalent of . + + + + + Maximum animation offset that corresponds to frame index in the texture. 0 is the first frame, 1 is the last one. See . + + + + + Each particle's animation offset will vary along this . + + + + + If , enables turbulence for the particle system. Turbulence can be used to vary particle movement according to its position (based on a 3D noise pattern). In 3D, with can be used as an alternative to turbulence that works in world space and with multiple particle systems reacting in the same way. + Note: Enabling turbulence has a high performance cost on the GPU. Only enable turbulence on a few particle systems at once at most, and consider disabling it when targeting mobile/web platforms. + + + + + The turbulence noise strength. Increasing this will result in a stronger, more contrasting, flow pattern. + + + + + This value controls the overall scale/frequency of the turbulence noise pattern. + A small scale will result in smaller features with more detail while a high scale will result in smoother noise with larger features. + + + + + A scrolling velocity for the turbulence field. This sets a directional trend for the pattern to move in over time. + The default value of Vector3(0, 0, 0) turns off the scrolling. + + + + + The in-place rate of change of the turbulence field. This defines how quickly the noise pattern varies over time. + A value of 0.0 will result in a fixed pattern. + + + + + Minimum turbulence influence on each particle. + The actual amount of turbulence influence on each particle is calculated as a random value between and and multiplied by the amount of turbulence influence from . + + + + + Maximum turbulence influence on each particle. + The actual amount of turbulence influence on each particle is calculated as a random value between and and multiplied by the amount of turbulence influence from . + + + + + Minimum displacement of each particle's spawn position by the turbulence. + The actual amount of displacement will be a factor of the underlying turbulence multiplied by a random value between and . + + + + + Maximum displacement of each particle's spawn position by the turbulence. + The actual amount of displacement will be a factor of the underlying turbulence multiplied by a random value between and . + + + + + Each particle's amount of turbulence will be influenced along this over its life time. + + + + + The particles' collision mode. + Note: 3D Particles can only collide with nodes, not nodes. To make particles collide with various objects, you can add nodes as children of nodes. In 3D, collisions only occur within the area defined by the node's . + Note: 2D Particles can only collide with nodes, not nodes. + + + + + The particles' friction. Values range from 0 (frictionless) to 1 (maximum friction). Only effective if is . + + + + + The particles' bounciness. Values range from 0 (no bounce) to 1 (full bounciness). Only effective if is . + + + + + If , is multiplied by the particle's effective scale (see , , , and ). + + + + + The particle subemitter mode (see and ). + + + + + The frequency at which particles should be emitted from the subemitter node. One particle will be spawned every seconds. + Note: This value shouldn't exceed or defined on the subemitter node (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired. + + + + + The amount of particles to spawn from the subemitter node when the particle expires. + Note: This value shouldn't exceed or defined on the subemitter node (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired. + + + + + The amount of particles to spawn from the subemitter node when a collision occurs. When combined with on the main particles material, this can be used to achieve effects such as raindrops hitting the ground. + Note: This value shouldn't exceed or defined on the subemitter node (not the main node), relative to the subemitter's particle lifetime. If the number of particles is exceeded, no new particles will spawn from the subemitter until enough particles have expired. + + + + + If , the subemitter inherits the parent particle's velocity when it spawns. + + + + + Sets the minimum and maximum values of the given . + The x component of the argument vector corresponds to minimum and the y component corresponds to maximum. + + + + + Returns the minimum and maximum values of the given as a vector. + The x component of the returned vector corresponds to minimum and the y component corresponds to maximum. + + + + + Sets the minimum value range for the given parameter. + + + + + Returns the minimum value range for the given parameter. + + + + + Sets the maximum value range for the given parameter. + + + + + Returns the maximum value range for the given parameter. + + + + + Sets the for the specified . + + + + + Returns the used by the specified parameter. + + + + + If , enables the specified particle flag. See for options. + + + + + Returns if the specified particle flag is enabled. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'lifetime_randomness' property. + + + + + Cached name for the 'particle_flag_align_y' property. + + + + + Cached name for the 'particle_flag_rotate_y' property. + + + + + Cached name for the 'particle_flag_disable_z' property. + + + + + Cached name for the 'particle_flag_damping_as_friction' property. + + + + + Cached name for the 'emission_shape_offset' property. + + + + + Cached name for the 'emission_shape_scale' property. + + + + + Cached name for the 'emission_shape' property. + + + + + Cached name for the 'emission_sphere_radius' property. + + + + + Cached name for the 'emission_box_extents' property. + + + + + Cached name for the 'emission_point_texture' property. + + + + + Cached name for the 'emission_normal_texture' property. + + + + + Cached name for the 'emission_color_texture' property. + + + + + Cached name for the 'emission_point_count' property. + + + + + Cached name for the 'emission_ring_axis' property. + + + + + Cached name for the 'emission_ring_height' property. + + + + + Cached name for the 'emission_ring_radius' property. + + + + + Cached name for the 'emission_ring_inner_radius' property. + + + + + Cached name for the 'emission_ring_cone_angle' property. + + + + + Cached name for the 'angle' property. + + + + + Cached name for the 'angle_min' property. + + + + + Cached name for the 'angle_max' property. + + + + + Cached name for the 'angle_curve' property. + + + + + Cached name for the 'inherit_velocity_ratio' property. + + + + + Cached name for the 'velocity_pivot' property. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'spread' property. + + + + + Cached name for the 'flatness' property. + + + + + Cached name for the 'initial_velocity' property. + + + + + Cached name for the 'initial_velocity_min' property. + + + + + Cached name for the 'initial_velocity_max' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'angular_velocity_min' property. + + + + + Cached name for the 'angular_velocity_max' property. + + + + + Cached name for the 'angular_velocity_curve' property. + + + + + Cached name for the 'directional_velocity' property. + + + + + Cached name for the 'directional_velocity_min' property. + + + + + Cached name for the 'directional_velocity_max' property. + + + + + Cached name for the 'directional_velocity_curve' property. + + + + + Cached name for the 'orbit_velocity' property. + + + + + Cached name for the 'orbit_velocity_min' property. + + + + + Cached name for the 'orbit_velocity_max' property. + + + + + Cached name for the 'orbit_velocity_curve' property. + + + + + Cached name for the 'radial_velocity' property. + + + + + Cached name for the 'radial_velocity_min' property. + + + + + Cached name for the 'radial_velocity_max' property. + + + + + Cached name for the 'radial_velocity_curve' property. + + + + + Cached name for the 'velocity_limit_curve' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached name for the 'linear_accel' property. + + + + + Cached name for the 'linear_accel_min' property. + + + + + Cached name for the 'linear_accel_max' property. + + + + + Cached name for the 'linear_accel_curve' property. + + + + + Cached name for the 'radial_accel' property. + + + + + Cached name for the 'radial_accel_min' property. + + + + + Cached name for the 'radial_accel_max' property. + + + + + Cached name for the 'radial_accel_curve' property. + + + + + Cached name for the 'tangential_accel' property. + + + + + Cached name for the 'tangential_accel_min' property. + + + + + Cached name for the 'tangential_accel_max' property. + + + + + Cached name for the 'tangential_accel_curve' property. + + + + + Cached name for the 'damping' property. + + + + + Cached name for the 'damping_min' property. + + + + + Cached name for the 'damping_max' property. + + + + + Cached name for the 'damping_curve' property. + + + + + Cached name for the 'attractor_interaction_enabled' property. + + + + + Cached name for the 'scale' property. + + + + + Cached name for the 'scale_min' property. + + + + + Cached name for the 'scale_max' property. + + + + + Cached name for the 'scale_curve' property. + + + + + Cached name for the 'scale_over_velocity' property. + + + + + Cached name for the 'scale_over_velocity_min' property. + + + + + Cached name for the 'scale_over_velocity_max' property. + + + + + Cached name for the 'scale_over_velocity_curve' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'color_ramp' property. + + + + + Cached name for the 'color_initial_ramp' property. + + + + + Cached name for the 'alpha_curve' property. + + + + + Cached name for the 'emission_curve' property. + + + + + Cached name for the 'hue_variation' property. + + + + + Cached name for the 'hue_variation_min' property. + + + + + Cached name for the 'hue_variation_max' property. + + + + + Cached name for the 'hue_variation_curve' property. + + + + + Cached name for the 'anim_speed' property. + + + + + Cached name for the 'anim_speed_min' property. + + + + + Cached name for the 'anim_speed_max' property. + + + + + Cached name for the 'anim_speed_curve' property. + + + + + Cached name for the 'anim_offset' property. + + + + + Cached name for the 'anim_offset_min' property. + + + + + Cached name for the 'anim_offset_max' property. + + + + + Cached name for the 'anim_offset_curve' property. + + + + + Cached name for the 'turbulence_enabled' property. + + + + + Cached name for the 'turbulence_noise_strength' property. + + + + + Cached name for the 'turbulence_noise_scale' property. + + + + + Cached name for the 'turbulence_noise_speed' property. + + + + + Cached name for the 'turbulence_noise_speed_random' property. + + + + + Cached name for the 'turbulence_influence' property. + + + + + Cached name for the 'turbulence_influence_min' property. + + + + + Cached name for the 'turbulence_influence_max' property. + + + + + Cached name for the 'turbulence_initial_displacement' property. + + + + + Cached name for the 'turbulence_initial_displacement_min' property. + + + + + Cached name for the 'turbulence_initial_displacement_max' property. + + + + + Cached name for the 'turbulence_influence_over_life' property. + + + + + Cached name for the 'collision_mode' property. + + + + + Cached name for the 'collision_friction' property. + + + + + Cached name for the 'collision_bounce' property. + + + + + Cached name for the 'collision_use_scale' property. + + + + + Cached name for the 'sub_emitter_mode' property. + + + + + Cached name for the 'sub_emitter_frequency' property. + + + + + Cached name for the 'sub_emitter_amount_at_end' property. + + + + + Cached name for the 'sub_emitter_amount_at_collision' property. + + + + + Cached name for the 'sub_emitter_keep_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_inherit_velocity_ratio' method. + + + + + Cached name for the 'get_inherit_velocity_ratio' method. + + + + + Cached name for the 'set_spread' method. + + + + + Cached name for the 'get_spread' method. + + + + + Cached name for the 'set_flatness' method. + + + + + Cached name for the 'get_flatness' method. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached name for the 'set_param_min' method. + + + + + Cached name for the 'get_param_min' method. + + + + + Cached name for the 'set_param_max' method. + + + + + Cached name for the 'get_param_max' method. + + + + + Cached name for the 'set_param_texture' method. + + + + + Cached name for the 'get_param_texture' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_color_ramp' method. + + + + + Cached name for the 'get_color_ramp' method. + + + + + Cached name for the 'set_alpha_curve' method. + + + + + Cached name for the 'get_alpha_curve' method. + + + + + Cached name for the 'set_emission_curve' method. + + + + + Cached name for the 'get_emission_curve' method. + + + + + Cached name for the 'set_color_initial_ramp' method. + + + + + Cached name for the 'get_color_initial_ramp' method. + + + + + Cached name for the 'set_velocity_limit_curve' method. + + + + + Cached name for the 'get_velocity_limit_curve' method. + + + + + Cached name for the 'set_particle_flag' method. + + + + + Cached name for the 'get_particle_flag' method. + + + + + Cached name for the 'set_velocity_pivot' method. + + + + + Cached name for the 'get_velocity_pivot' method. + + + + + Cached name for the 'set_emission_shape' method. + + + + + Cached name for the 'get_emission_shape' method. + + + + + Cached name for the 'set_emission_sphere_radius' method. + + + + + Cached name for the 'get_emission_sphere_radius' method. + + + + + Cached name for the 'set_emission_box_extents' method. + + + + + Cached name for the 'get_emission_box_extents' method. + + + + + Cached name for the 'set_emission_point_texture' method. + + + + + Cached name for the 'get_emission_point_texture' method. + + + + + Cached name for the 'set_emission_normal_texture' method. + + + + + Cached name for the 'get_emission_normal_texture' method. + + + + + Cached name for the 'set_emission_color_texture' method. + + + + + Cached name for the 'get_emission_color_texture' method. + + + + + Cached name for the 'set_emission_point_count' method. + + + + + Cached name for the 'get_emission_point_count' method. + + + + + Cached name for the 'set_emission_ring_axis' method. + + + + + Cached name for the 'get_emission_ring_axis' method. + + + + + Cached name for the 'set_emission_ring_height' method. + + + + + Cached name for the 'get_emission_ring_height' method. + + + + + Cached name for the 'set_emission_ring_radius' method. + + + + + Cached name for the 'get_emission_ring_radius' method. + + + + + Cached name for the 'set_emission_ring_inner_radius' method. + + + + + Cached name for the 'get_emission_ring_inner_radius' method. + + + + + Cached name for the 'set_emission_ring_cone_angle' method. + + + + + Cached name for the 'get_emission_ring_cone_angle' method. + + + + + Cached name for the 'set_emission_shape_offset' method. + + + + + Cached name for the 'get_emission_shape_offset' method. + + + + + Cached name for the 'set_emission_shape_scale' method. + + + + + Cached name for the 'get_emission_shape_scale' method. + + + + + Cached name for the 'get_turbulence_enabled' method. + + + + + Cached name for the 'set_turbulence_enabled' method. + + + + + Cached name for the 'get_turbulence_noise_strength' method. + + + + + Cached name for the 'set_turbulence_noise_strength' method. + + + + + Cached name for the 'get_turbulence_noise_scale' method. + + + + + Cached name for the 'set_turbulence_noise_scale' method. + + + + + Cached name for the 'get_turbulence_noise_speed_random' method. + + + + + Cached name for the 'set_turbulence_noise_speed_random' method. + + + + + Cached name for the 'get_turbulence_noise_speed' method. + + + + + Cached name for the 'set_turbulence_noise_speed' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'set_lifetime_randomness' method. + + + + + Cached name for the 'get_lifetime_randomness' method. + + + + + Cached name for the 'get_sub_emitter_mode' method. + + + + + Cached name for the 'set_sub_emitter_mode' method. + + + + + Cached name for the 'get_sub_emitter_frequency' method. + + + + + Cached name for the 'set_sub_emitter_frequency' method. + + + + + Cached name for the 'get_sub_emitter_amount_at_end' method. + + + + + Cached name for the 'set_sub_emitter_amount_at_end' method. + + + + + Cached name for the 'get_sub_emitter_amount_at_collision' method. + + + + + Cached name for the 'set_sub_emitter_amount_at_collision' method. + + + + + Cached name for the 'get_sub_emitter_keep_velocity' method. + + + + + Cached name for the 'set_sub_emitter_keep_velocity' method. + + + + + Cached name for the 'set_attractor_interaction_enabled' method. + + + + + Cached name for the 'is_attractor_interaction_enabled' method. + + + + + Cached name for the 'set_collision_mode' method. + + + + + Cached name for the 'get_collision_mode' method. + + + + + Cached name for the 'set_collision_use_scale' method. + + + + + Cached name for the 'is_collision_using_scale' method. + + + + + Cached name for the 'set_collision_friction' method. + + + + + Cached name for the 'get_collision_friction' method. + + + + + Cached name for the 'set_collision_bounce' method. + + + + + Cached name for the 'get_collision_bounce' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Can have child nodes moving along the . See for more information on usage. + Note: The path is considered as relative to the moved nodes (children of ). As such, the curve should usually start with a zero vector ((0, 0)). + + + + + A describing the path. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Can have child nodes moving along the . See for more information on the usage. + Note that the path is considered as relative to the moved nodes (children of ). As such, the curve should usually start with a zero vector (0, 0, 0). + + + + + A describing the path. + + + + + Emitted when the changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'curve_changed' signal. + + + + + This node takes its parent , 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 in this node. + + + + + The distance along the path, in pixels. Changing this value sets this node's position to a point within the path. + + + + + The distance along the path as a number in the range 0.0 (for the first vertex) to 1.0 (for the last). This is just another way of expressing the progress within the path, as the offset supplied is multiplied internally by the path's length. + It can be set or get only if the is the child of a which is part of the scene tree, and that this has a with a non-zero length. Otherwise, trying to set this field will print an error, and getting this field will return 0.0. + + + + + The node's offset along the curve. + + + + + The node's offset perpendicular to the curve. + + + + + If , this node rotates to follow the path, with the +X direction facing forward on the path. + + + + + If , the position between two cached points is interpolated cubically, and linearly otherwise. + The points along the of the are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough. + There are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations. + + + + + If , any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'progress' property. + + + + + Cached name for the 'progress_ratio' property. + + + + + Cached name for the 'h_offset' property. + + + + + Cached name for the 'v_offset' property. + + + + + Cached name for the 'rotates' property. + + + + + Cached name for the 'cubic_interp' property. + + + + + Cached name for the 'loop' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_progress' method. + + + + + Cached name for the 'get_progress' method. + + + + + Cached name for the 'set_h_offset' method. + + + + + Cached name for the 'get_h_offset' method. + + + + + Cached name for the 'set_v_offset' method. + + + + + Cached name for the 'get_v_offset' method. + + + + + Cached name for the 'set_progress_ratio' method. + + + + + Cached name for the 'get_progress_ratio' method. + + + + + Cached name for the 'set_rotates' method. + + + + + Cached name for the 'is_rotating' method. + + + + + Cached name for the 'set_cubic_interpolation' method. + + + + + Cached name for the 'get_cubic_interpolation' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node takes its parent , 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 in this node. + + + + + Forbids the PathFollow3D to rotate. + + + + + Allows the PathFollow3D to rotate in the Y axis only. + + + + + Allows the PathFollow3D to rotate in both the X, and Y axes. + + + + + Allows the PathFollow3D to rotate in any axis. + + + + + Uses the up vector information in a to enforce orientation. This rotation mode requires the 's property to be set to . + + + + + The distance from the first vertex, measured in 3D units along the path. Changing this value sets this node's position to a point within the path. + + + + + The distance from the first vertex, considering 0.0 as the first vertex and 1.0 as the last. This is just another way of expressing the progress within the path, as the progress supplied is multiplied internally by the path's length. + It can be set or get only if the is the child of a which is part of the scene tree, and that this has a with a non-zero length. Otherwise, trying to set this field will print an error, and getting this field will return 0.0. + + + + + The node's offset along the curve. + + + + + The node's offset perpendicular to the curve. + + + + + Allows or forbids rotation on one or more axes, depending on the constants being used. + + + + + If , the node moves on the travel path with orienting the +Z axis as forward. See also Vector3.FORWARD and Vector3.MODEL_FRONT. + + + + + If , the position between two cached points is interpolated cubically, and linearly otherwise. + The points along the of the are precomputed before use, for faster calculations. The point at the requested offset is then calculated interpolating between two adjacent cached points. This may present a problem if the curve makes sharp turns, as the cached points may not follow the curve closely enough. + There are two answers to this problem: either increase the number of cached points and increase memory consumption, or make a cubic interpolation between two points at the cost of (slightly) slower calculations. + + + + + If , any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths. + + + + + If , the tilt property of takes effect. + + + + + Correct the . implicitly specifies how posture (forward, up and sideway direction) is calculated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'progress' property. + + + + + Cached name for the 'progress_ratio' property. + + + + + Cached name for the 'h_offset' property. + + + + + Cached name for the 'v_offset' property. + + + + + Cached name for the 'rotation_mode' property. + + + + + Cached name for the 'use_model_front' property. + + + + + Cached name for the 'cubic_interp' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'tilt_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_progress' method. + + + + + Cached name for the 'get_progress' method. + + + + + Cached name for the 'set_h_offset' method. + + + + + Cached name for the 'get_h_offset' method. + + + + + Cached name for the 'set_v_offset' method. + + + + + Cached name for the 'get_v_offset' method. + + + + + Cached name for the 'set_progress_ratio' method. + + + + + Cached name for the 'get_progress_ratio' method. + + + + + Cached name for the 'set_rotation_mode' method. + + + + + Cached name for the 'get_rotation_mode' method. + + + + + Cached name for the 'set_cubic_interpolation' method. + + + + + Cached name for the 'get_cubic_interpolation' method. + + + + + Cached name for the 'set_use_model_front' method. + + + + + Cached name for the 'is_using_model_front' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_tilt_enabled' method. + + + + + Cached name for the 'is_tilt_enabled' method. + + + + + Cached name for the 'correct_posture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the Monitor tab in the editor's Debugger panel. By using the method of this class, you can access this data from your code. + You can add custom monitors using the method. Custom monitors are available in Monitor tab in the editor's Debugger panel together with built-in monitors. + Note: Some of the built-in monitors are only available in debug mode and will always return 0 when used in a project exported in release mode. + Note: Some of the built-in monitors are not updated in real-time for performance reasons, so there may be a delay of up to 1 second between changes. + Note: Custom monitors do not support negative values. Negative values are clamped to 0. + + + + + The number of frames rendered in the last second. This metric is only updated once per second, even if queried more often. Higher is better. + + + + + Time it took to complete one frame, in seconds. Lower is better. + + + + + Time it took to complete one physics frame, in seconds. Lower is better. + + + + + Time it took to complete one navigation step, in seconds. This includes navigation map updates as well as agent avoidance calculations. Lower is better. + + + + + Static memory currently used, in bytes. Not available in release builds. Lower is better. + + + + + Available static memory. Not available in release builds. Lower is better. + + + + + Largest amount of memory the message queue buffer has used, in bytes. The message queue is used for deferred functions calls and notifications. Lower is better. + + + + + Number of objects currently instantiated (including nodes). Lower is better. + + + + + Number of resources currently used. Lower is better. + + + + + Number of nodes currently instantiated in the scene tree. This also includes the root node. Lower is better. + + + + + Number of orphan nodes, i.e. nodes which are not parented to a node of the scene tree. Lower is better. + + + + + 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). Lower is better. + + + + + 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). Lower is better. + + + + + 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. Lower is better. + + + + + 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 and . Lower is better. + + + + + The amount of texture memory used (in bytes). Lower is better. + + + + + The amount of render buffer memory used (in bytes). Lower is better. + + + + + Number of active nodes in the game. Lower is better. + + + + + Number of collision pairs in the 2D physics engine. Lower is better. + + + + + Number of islands in the 2D physics engine. Lower is better. + + + + + Number of active and nodes in the game. Lower is better. + + + + + Number of collision pairs in the 3D physics engine. Lower is better. + + + + + Number of islands in the 3D physics engine. Lower is better. + + + + + Output latency of the . Equivalent to calling , it is not recommended to call this every frame. + + + + + Number of active navigation maps in the . This also includes the two empty default navigation maps created by World2D and World3D. + + + + + Number of active navigation regions in the . + + + + + Number of active navigation agents processing avoidance in the . + + + + + Number of active navigation links in the . + + + + + Number of navigation mesh polygons in the . + + + + + Number of navigation mesh polygon edges in the . + + + + + Number of navigation mesh polygon edges that were merged due to edge key overlap in the . + + + + + Number of polygon edges that are considered connected by edge proximity . + + + + + Number of navigation mesh polygon edges that could not be merged in the . The edges still may be connected by edge proximity or with links. + + + + + Number of active navigation obstacles in the . + + + + + Number of pipeline compilations that were triggered by the 2D canvas renderer. + + + + + Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading an scene the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever. + + + + + Represents the size of the enum. + + + + + Returns the value of one of the available built-in monitors. You should provide one of the constants as the argument, like this: + + GD.Print(Performance.GetMonitor(Performance.Monitor.TimeFps)); // Prints the FPS to the console. + + See to query custom performance monitors' values. + + + + + Adds a custom monitor with the name . You can specify the category of the monitor using slash delimiters in (for example: "Game/NumberOfNPCs"). If there is more than one slash delimiter, then the default category is used. The default category is "Custom". Prints an error if given is already present. + + public override void _Ready() + { + var monitorValue = new Callable(this, MethodName.GetMonitorValue); + + // Adds monitor with name "MyName" to category "MyCategory". + Performance.AddCustomMonitor("MyCategory/MyMonitor", monitorValue); + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyCategory/MyMonitor" and "MyMonitor" have same name but different ids so the code is valid. + Performance.AddCustomMonitor("MyMonitor", monitorValue); + + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyMonitor" and "Custom/MyMonitor" have same name and same category but different ids so the code is valid. + Performance.AddCustomMonitor("Custom/MyMonitor", monitorValue); + + // Adds monitor with name "MyCategoryOne/MyCategoryTwo/MyMonitor" to category "Custom". + Performance.AddCustomMonitor("MyCategoryOne/MyCategoryTwo/MyMonitor", monitorValue); + } + + public int GetMonitorValue() + { + return GD.Randi() % 25; + } + + The debugger calls the callable to get the value of custom monitor. The callable must return a zero or positive integer or floating-point number. + Callables are called with arguments supplied in argument array. + + + + + Removes the custom monitor with given . Prints an error if the given is already absent. + + + + + Returns if custom monitor with the given is present, otherwise. + + + + + Returns the value of custom monitor with given . The callable is called to get the value of custom monitor. See also . Prints an error if the given is absent. + + + + + Returns the last tick in which custom monitor was added/removed (in microseconds since the engine started). This is set to when the monitor is updated. + + + + + Returns the names of active custom monitors in an . + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_monitor' method. + + + + + Cached name for the 'add_custom_monitor' method. + + + + + Cached name for the 'remove_custom_monitor' method. + + + + + Cached name for the 'has_custom_monitor' method. + + + + + Cached name for the 'get_custom_monitor' method. + + + + + Cached name for the 'get_monitor_modification_time' method. + + + + + Cached name for the 'get_custom_monitor_names' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class provides access to a number of different monitors related to performance, such as memory usage, draw calls, and FPS. These are the same as the values displayed in the Monitor tab in the editor's Debugger panel. By using the method of this class, you can access this data from your code. + You can add custom monitors using the method. Custom monitors are available in Monitor tab in the editor's Debugger panel together with built-in monitors. + Note: Some of the built-in monitors are only available in debug mode and will always return 0 when used in a project exported in release mode. + Note: Some of the built-in monitors are not updated in real-time for performance reasons, so there may be a delay of up to 1 second between changes. + Note: Custom monitors do not support negative values. Negative values are clamped to 0. + + + + + Returns the value of one of the available built-in monitors. You should provide one of the constants as the argument, like this: + + GD.Print(Performance.GetMonitor(Performance.Monitor.TimeFps)); // Prints the FPS to the console. + + See to query custom performance monitors' values. + + + + + Adds a custom monitor with the name . You can specify the category of the monitor using slash delimiters in (for example: "Game/NumberOfNPCs"). If there is more than one slash delimiter, then the default category is used. The default category is "Custom". Prints an error if given is already present. + + public override void _Ready() + { + var monitorValue = new Callable(this, MethodName.GetMonitorValue); + + // Adds monitor with name "MyName" to category "MyCategory". + Performance.AddCustomMonitor("MyCategory/MyMonitor", monitorValue); + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyCategory/MyMonitor" and "MyMonitor" have same name but different ids so the code is valid. + Performance.AddCustomMonitor("MyMonitor", monitorValue); + + // Adds monitor with name "MyName" to category "Custom". + // Note: "MyMonitor" and "Custom/MyMonitor" have same name and same category but different ids so the code is valid. + Performance.AddCustomMonitor("Custom/MyMonitor", monitorValue); + + // Adds monitor with name "MyCategoryOne/MyCategoryTwo/MyMonitor" to category "Custom". + Performance.AddCustomMonitor("MyCategoryOne/MyCategoryTwo/MyMonitor", monitorValue); + } + + public int GetMonitorValue() + { + return GD.Randi() % 25; + } + + The debugger calls the callable to get the value of custom monitor. The callable must return a zero or positive integer or floating-point number. + Callables are called with arguments supplied in argument array. + + + + + Removes the custom monitor with given . Prints an error if the given is already absent. + + + + + Returns if custom monitor with the given is present, otherwise. + + + + + Returns the value of custom monitor with given . The callable is called to get the value of custom monitor. See also . Prints an error if the given is absent. + + + + + Returns the last tick in which custom monitor was added/removed (in microseconds since the engine started). This is set to when the monitor is updated. + + + + + Returns the names of active custom monitors in an . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_monitor' method. + + + + + Cached name for the 'add_custom_monitor' method. + + + + + Cached name for the 'remove_custom_monitor' method. + + + + + Cached name for the 'has_custom_monitor' method. + + + + + Cached name for the 'get_custom_monitor' method. + + + + + Cached name for the 'get_monitor_modification_time' method. + + + + + Cached name for the 'get_custom_monitor_names' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is a -based node that can be used to make s in a react to physics. + Note: To make the s visually follow the node, use a modification on the parent. + Note: The node does not automatically create a node to keep nodes together. They must be created manually. For most cases, you want to use a node. The node will automatically configure the node once it's been added as a child node. + + + + + The to the that this should simulate. + + + + + The index of the that this should simulate. + + + + + If , the will automatically configure the first child node. The automatic configuration is limited to setting up the node properties and positioning the . + + + + + If , the will start simulating using physics. If , the will follow the transform of the node. + Note: To have the s visually follow the , use a modification on the node with the nodes. + + + + + If , the will keep the transform of the bone it is bound to when simulating physics. + + + + + Returns the first child node, if one exists. This is mainly a helper function to make it easier to get the that the is autoconfiguring. + + + + + Returns a boolean that indicates whether the is running and simulating using the Godot 2D physics engine. When , the PhysicalBone2D node is using physics. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bone2d_nodepath' property. + + + + + Cached name for the 'bone2d_index' property. + + + + + Cached name for the 'auto_configure_joint' property. + + + + + Cached name for the 'simulate_physics' property. + + + + + Cached name for the 'follow_bone_when_simulating' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_joint' method. + + + + + Cached name for the 'get_auto_configure_joint' method. + + + + + Cached name for the 'set_auto_configure_joint' method. + + + + + Cached name for the 'set_simulate_physics' method. + + + + + Cached name for the 'get_simulate_physics' method. + + + + + Cached name for the 'is_simulating_physics' method. + + + + + Cached name for the 'set_bone2d_nodepath' method. + + + + + Cached name for the 'get_bone2d_nodepath' method. + + + + + Cached name for the 'set_bone2d_index' method. + + + + + Cached name for the 'get_bone2d_index' method. + + + + + Cached name for the 'set_follow_bone_when_simulating' method. + + + + + Cached name for the 'get_follow_bone_when_simulating' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is a physics body that can be used to make bones in a react to physics. + Note: In order to detect physical bones with raycasts, the property of the parent must be and the 's bone must be assigned to correctly; it means that should return a valid id (>= 0). + + + + + In this mode, the body's damping value is added to any value set in areas or the default value. + + + + + In this mode, the body's damping value replaces any value set in areas or the default value. + + + + + No joint is applied to the PhysicsBone3D. + + + + + A pin joint is applied to the PhysicsBone3D. + + + + + A cone joint is applied to the PhysicsBone3D. + + + + + A hinge joint is applied to the PhysicsBone3D. + + + + + A slider joint is applied to the PhysicsBone3D. + + + + + A 6 degrees of freedom joint is applied to the PhysicsBone3D. + + + + + Sets the joint type. See for possible values. + + + + + Sets the joint's transform. + + + + + Sets the joint's rotation in radians. + + + + + Sets the body's transform. + + + + + The body's mass. + + + + + The body's friction, from 0 (frictionless) to 1 (max friction). + + + + + The body's bounciness. Values range from 0 (no bounce) to 1 (full bounciness). + Note: Even with set to 1.0, some energy will be lost over time due to linear and angular damping. To have a that preserves all its energy over time, set to 1.0, to , to 0.0, to , and to 0.0. + + + + + This is multiplied by ProjectSettings.physics/3d/default_gravity to produce this body's gravity. For example, a value of 1.0 will apply normal gravity, 2.0 will apply double the gravity, and 0.5 will apply half the gravity to this body. + + + + + If , the standard force integration (like gravity or damping) will be disabled for this body. Other than collision response, the body will only move as determined by the method, if that virtual method is overridden. + Setting this property will call the method internally. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's movement. By default, the body will use ProjectSettings.physics/3d/default_linear_damp or any value override set by an the body is in. Depending on , may be added to or replace the body's damping value. + See ProjectSettings.physics/3d/default_linear_damp for more details about damping. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's rotation. By default, the body will use the ProjectSettings.physics/3d/default_angular_damp project setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/3d/default_angular_damp for more details about damping. + + + + + The body's linear velocity in units per second. Can be used sporadically, but don't set this every frame, because physics may run in another thread and runs at a different granularity. Use as your process loop for precise control of the body state. + + + + + The PhysicalBone3D's rotational velocity in radians per second. + + + + + If , the body is deactivated when there is no movement, so it will not take part in the simulation until it is awakened by an external force. + + + + + Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it is called before the standard force integration, but the property allows you to disable the standard force integration and do fully custom force integration for a body. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_integrate_forces" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the PhysicsBone3D. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_integrate_forces" functions otherwise). + is the offset from the PhysicsBone3D origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Returns if the PhysicsBone3D is allowed to simulate physics. + + + + + Returns if the PhysicsBone3D is currently simulating physics. + + + + + Returns the unique identifier of the PhysicsBone3D. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'joint_type' property. + + + + + Cached name for the 'joint_offset' property. + + + + + Cached name for the 'joint_rotation' property. + + + + + Cached name for the 'body_offset' property. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'friction' property. + + + + + Cached name for the 'bounce' property. + + + + + Cached name for the 'gravity_scale' property. + + + + + Cached name for the 'custom_integrator' property. + + + + + Cached name for the 'linear_damp_mode' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_damp_mode' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'can_sleep' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'set_joint_type' method. + + + + + Cached name for the 'get_joint_type' method. + + + + + Cached name for the 'set_joint_offset' method. + + + + + Cached name for the 'get_joint_offset' method. + + + + + Cached name for the 'set_joint_rotation' method. + + + + + Cached name for the 'get_joint_rotation' method. + + + + + Cached name for the 'set_body_offset' method. + + + + + Cached name for the 'get_body_offset' method. + + + + + Cached name for the 'get_simulate_physics' method. + + + + + Cached name for the 'is_simulating_physics' method. + + + + + Cached name for the 'get_bone_id' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_friction' method. + + + + + Cached name for the 'get_friction' method. + + + + + Cached name for the 'set_bounce' method. + + + + + Cached name for the 'get_bounce' method. + + + + + Cached name for the 'set_gravity_scale' method. + + + + + Cached name for the 'get_gravity_scale' method. + + + + + Cached name for the 'set_linear_damp_mode' method. + + + + + Cached name for the 'get_linear_damp_mode' method. + + + + + Cached name for the 'set_angular_damp_mode' method. + + + + + Cached name for the 'get_angular_damp_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_use_custom_integrator' method. + + + + + Cached name for the 'is_using_custom_integrator' method. + + + + + Cached name for the 'set_can_sleep' method. + + + + + Cached name for the 'is_able_to_sleep' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Node that can be the parent of and can apply the simulation results to . + + + + + Returns a boolean that indicates whether the is running and simulating. + + + + + Tells the nodes in the Skeleton to stop simulating. + + + + + Tells the nodes in the Skeleton to start simulating and reacting to the physics world. + Optionally, a list of bone names can be passed-in, allowing only the passed-in bones to be simulated. + + + + + Adds a collision exception to the physical bone. + Works just like the node. + + + + + Removes a collision exception to the physical bone. + Works just like the node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_simulating_physics' method. + + + + + Cached name for the 'physical_bones_stop_simulation' method. + + + + + Cached name for the 'physical_bones_start_simulation' method. + + + + + Cached name for the 'physical_bones_add_collision_exception' method. + + + + + Cached name for the 'physical_bones_remove_collision_exception' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The uses the Preetham analytic daylight model to draw a sky based on physical properties. This results in a substantially more realistic sky than the , but it is slightly slower and less flexible. + The only supports one sun. The color, energy, and direction of the sun are taken from the first in the scene tree. + + + + + Controls the strength of the Rayleigh scattering. Rayleigh scattering results from light colliding with small particles. It is responsible for the blue color of the sky. + + + + + Controls the of the Rayleigh scattering. While not physically accurate, this allows for the creation of alien-looking planets. For example, setting this to a red results in a Mars-looking atmosphere with a corresponding blue sunset. + + + + + Controls the strength of Mie scattering for the sky. Mie scattering results from light colliding with larger particles (like water). On earth, Mie scattering results in a whitish color around the sun and horizon. + + + + + Controls the direction of the Mie scattering. A value of 1 means that when light hits a particle it's passing through straight forward. A value of -1 means that all light is scatter backwards. + + + + + Controls the of the Mie scattering effect. While not physically accurate, this allows for the creation of alien-looking planets. + + + + + Sets the thickness of the atmosphere. High turbidity creates a foggy-looking atmosphere, while a low turbidity results in a clearer atmosphere. + + + + + Sets the size of the sun disk. Default value is based on Sol's perceived size from Earth. + + + + + Modulates the on the bottom half of the sky to represent the ground. + + + + + The sky's overall brightness multiplier. Higher values result in a brighter sky. + + + + + If , enables debanding. Debanding adds a small amount of noise which helps reduce banding that appears from the smooth changes in color in the sky. + + + + + for the night sky. This is added to the sky, so if it is bright enough, it may be visible during the day. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'rayleigh_coefficient' property. + + + + + Cached name for the 'rayleigh_color' property. + + + + + Cached name for the 'mie_coefficient' property. + + + + + Cached name for the 'mie_eccentricity' property. + + + + + Cached name for the 'mie_color' property. + + + + + Cached name for the 'turbidity' property. + + + + + Cached name for the 'sun_disk_scale' property. + + + + + Cached name for the 'ground_color' property. + + + + + Cached name for the 'energy_multiplier' property. + + + + + Cached name for the 'use_debanding' property. + + + + + Cached name for the 'night_sky' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rayleigh_coefficient' method. + + + + + Cached name for the 'get_rayleigh_coefficient' method. + + + + + Cached name for the 'set_rayleigh_color' method. + + + + + Cached name for the 'get_rayleigh_color' method. + + + + + Cached name for the 'set_mie_coefficient' method. + + + + + Cached name for the 'get_mie_coefficient' method. + + + + + Cached name for the 'set_mie_eccentricity' method. + + + + + Cached name for the 'get_mie_eccentricity' method. + + + + + Cached name for the 'set_mie_color' method. + + + + + Cached name for the 'get_mie_color' method. + + + + + Cached name for the 'set_turbidity' method. + + + + + Cached name for the 'get_turbidity' method. + + + + + Cached name for the 'set_sun_disk_scale' method. + + + + + Cached name for the 'get_sun_disk_scale' method. + + + + + Cached name for the 'set_ground_color' method. + + + + + Cached name for the 'get_ground_color' method. + + + + + Cached name for the 'set_energy_multiplier' method. + + + + + Cached name for the 'get_energy_multiplier' method. + + + + + Cached name for the 'set_use_debanding' method. + + + + + Cached name for the 'get_use_debanding' method. + + + + + Cached name for the 'set_night_sky' method. + + + + + Cached name for the 'get_night_sky' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for 2D game objects affected by physics. All 2D physics bodies inherit from it. + + + + + Moves the body along the vector . In order to be frame rate independent in or , should be computed using delta. + Returns a , which contains information about the collision when stopped, or when touching another body along the motion. + If is , the body does not move but the would-be collision information is given. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + + + + + Checks for collisions without moving the body. In order to be frame rate independent in or , should be computed using delta. + Virtually sets the node's position, scale and rotation to that of the given , then tries to move the body along the vector . Returns if a collision would stop the body from moving along the whole path. + is an optional object of type , which contains additional information about the collision when stopped, or when touching another body along the motion. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would touch any other bodies. + + + + + Returns the gravity vector computed from all sources that can affect the body, including all gravity overrides from nodes and the global world gravity. + + + + + Returns an array of nodes that were added as collision exceptions for this body. + + + + + Adds a body to the list of bodies that this body can't collide with. + + + + + Removes a body from the list of bodies that this body can't collide with. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_collide' method. + + + + + Cached name for the 'test_move' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'get_collision_exceptions' method. + + + + + Cached name for the 'add_collision_exception_with' method. + + + + + Cached name for the 'remove_collision_exception_with' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for 3D game objects affected by physics. All 3D physics bodies inherit from it. + Warning: With a non-uniform scale, this node will likely not behave as expected. It is advised to keep its scale the same on all axes and adjust its collision shape(s) instead. + + + + + Lock the body's linear movement in the X axis. + + + + + Lock the body's linear movement in the Y axis. + + + + + Lock the body's linear movement in the Z axis. + + + + + Lock the body's rotation in the X axis. + + + + + Lock the body's rotation in the Y axis. + + + + + Lock the body's rotation in the Z axis. + + + + + Moves the body along the vector . In order to be frame rate independent in or , should be computed using delta. + The body will stop if it collides. Returns a , which contains information about the collision when stopped, or when touching another body along the motion. + If is , the body does not move but the would-be collision information is given. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + allows to retrieve more than one collision result. + + + + + Checks for collisions without moving the body. In order to be frame rate independent in or , should be computed using delta. + Virtually sets the node's position, scale and rotation to that of the given , then tries to move the body along the vector . Returns if a collision would stop the body from moving along the whole path. + is an optional object of type , which contains additional information about the collision when stopped, or when touching another body along the motion. + is the extra margin used for collision recovery (see for more details). + If is , any depenetration from the recovery phase is also reported as a collision; this is useful for checking whether the body would touch any other bodies. + allows to retrieve more than one collision result. + + + + + Returns the gravity vector computed from all sources that can affect the body, including all gravity overrides from nodes and the global world gravity. + + + + + Locks or unlocks the specified linear or rotational depending on the value of . + + + + + Returns if the specified linear or rotational is locked. + + + + + Returns an array of nodes that were added as collision exceptions for this body. + + + + + Adds a body to the list of bodies that this body can't collide with. + + + + + Removes a body from the list of bodies that this body can't collide with. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'axis_lock_linear_x' property. + + + + + Cached name for the 'axis_lock_linear_y' property. + + + + + Cached name for the 'axis_lock_linear_z' property. + + + + + Cached name for the 'axis_lock_angular_x' property. + + + + + Cached name for the 'axis_lock_angular_y' property. + + + + + Cached name for the 'axis_lock_angular_z' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'move_and_collide' method. + + + + + Cached name for the 'test_move' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_axis_lock' method. + + + + + Cached name for the 'get_axis_lock' method. + + + + + Cached name for the 'get_collision_exceptions' method. + + + + + Cached name for the 'add_collision_exception_with' method. + + + + + Cached name for the 'remove_collision_exception_with' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics body in the , allowing safe changes to physics properties. This object is passed via the direct state callback of , and is intended for changing the direct state of that body. See . + + + + + The timestep (delta) used for the simulation. + + + + + The inverse of the mass of the body. + + + + + The inverse of the inertia of the body. + + + + + The rate at which the body stops rotating, if there are not any other forces moving it. + + + + + The rate at which the body stops moving, if there are not any other forces moving it. + + + + + The total gravity vector being currently applied to this body. + + + + + The body's center of mass position relative to the body's center in the global coordinate system. + + + + + The body's center of mass position in the body's local coordinate system. + + + + + The body's rotational velocity in radians per second. + + + + + The body's linear velocity in pixels per second. + + + + + If , this body is currently sleeping (not active). + + + + + The body's transformation matrix. + + + + + Returns the body's velocity at the given relative position, including both translation and rotation. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = 0. + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the number of contacts this body has with other bodies. + Note: By default, this returns 0 unless bodies are configured to monitor contacts. See . + + + + + Returns the position of the contact point on the body in the global coordinate system. + + + + + Returns the local normal at the contact point. + + + + + Returns the local shape index of the collision. + + + + + Returns the velocity vector at the body's contact point. + + + + + Returns the collider's . + + + + + Returns the position of the contact point on the collider in the global coordinate system. + + + + + Returns the collider's object id. + + + + + Returns the collider object. This depends on how it was created (will return a scene node if such was used to create it). + + + + + Returns the collider's shape index. + + + + + Returns the velocity vector at the collider's contact point. + + + + + Returns the impulse created by the contact. + + + + + Updates the body's linear and angular velocity by applying gravity and damping for the equivalent of one physics tick. + + + + + Returns the current state of the space, useful for queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'inverse_mass' property. + + + + + Cached name for the 'inverse_inertia' property. + + + + + Cached name for the 'total_angular_damp' property. + + + + + Cached name for the 'total_linear_damp' property. + + + + + Cached name for the 'total_gravity' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'center_of_mass_local' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'transform' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_total_gravity' method. + + + + + Cached name for the 'get_total_linear_damp' method. + + + + + Cached name for the 'get_total_angular_damp' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass_local' method. + + + + + Cached name for the 'get_inverse_mass' method. + + + + + Cached name for the 'get_inverse_inertia' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_velocity_at_local_position' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleep_state' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'get_contact_local_position' method. + + + + + Cached name for the 'get_contact_local_normal' method. + + + + + Cached name for the 'get_contact_local_shape' method. + + + + + Cached name for the 'get_contact_local_velocity_at_position' method. + + + + + Cached name for the 'get_contact_collider' method. + + + + + Cached name for the 'get_contact_collider_position' method. + + + + + Cached name for the 'get_contact_collider_id' method. + + + + + Cached name for the 'get_contact_collider_object' method. + + + + + Cached name for the 'get_contact_collider_shape' method. + + + + + Cached name for the 'get_contact_collider_velocity_at_position' method. + + + + + Cached name for the 'get_contact_impulse' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'integrate_forces' method. + + + + + Cached name for the 'get_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective getter. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective getter. + + + + + Implement to override the behavior of and its respective setter. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Implement to override the behavior of and its respective setter. + + + + + Implement to override the behavior of and its respective setter. + + + + + Implement to override the behavior of and its respective setter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_constant_central_force' method. + + + + + Cached name for the '_add_constant_force' method. + + + + + Cached name for the '_add_constant_torque' method. + + + + + Cached name for the '_apply_central_force' method. + + + + + Cached name for the '_apply_central_impulse' method. + + + + + Cached name for the '_apply_force' method. + + + + + Cached name for the '_apply_impulse' method. + + + + + Cached name for the '_apply_torque' method. + + + + + Cached name for the '_apply_torque_impulse' method. + + + + + Cached name for the '_get_angular_velocity' method. + + + + + Cached name for the '_get_center_of_mass' method. + + + + + Cached name for the '_get_center_of_mass_local' method. + + + + + Cached name for the '_get_constant_force' method. + + + + + Cached name for the '_get_constant_torque' method. + + + + + Cached name for the '_get_contact_collider' method. + + + + + Cached name for the '_get_contact_collider_id' method. + + + + + Cached name for the '_get_contact_collider_object' method. + + + + + Cached name for the '_get_contact_collider_position' method. + + + + + Cached name for the '_get_contact_collider_shape' method. + + + + + Cached name for the '_get_contact_collider_velocity_at_position' method. + + + + + Cached name for the '_get_contact_count' method. + + + + + Cached name for the '_get_contact_impulse' method. + + + + + Cached name for the '_get_contact_local_normal' method. + + + + + Cached name for the '_get_contact_local_position' method. + + + + + Cached name for the '_get_contact_local_shape' method. + + + + + Cached name for the '_get_contact_local_velocity_at_position' method. + + + + + Cached name for the '_get_inverse_inertia' method. + + + + + Cached name for the '_get_inverse_mass' method. + + + + + Cached name for the '_get_linear_velocity' method. + + + + + Cached name for the '_get_space_state' method. + + + + + Cached name for the '_get_step' method. + + + + + Cached name for the '_get_total_angular_damp' method. + + + + + Cached name for the '_get_total_gravity' method. + + + + + Cached name for the '_get_total_linear_damp' method. + + + + + Cached name for the '_get_transform' method. + + + + + Cached name for the '_get_velocity_at_local_position' method. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the '_is_sleeping' method. + + + + + Cached name for the '_set_angular_velocity' method. + + + + + Cached name for the '_set_constant_force' method. + + + + + Cached name for the '_set_constant_torque' method. + + + + + Cached name for the '_set_linear_velocity' method. + + + + + Cached name for the '_set_sleep_state' method. + + + + + Cached name for the '_set_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics body in the , allowing safe changes to physics properties. This object is passed via the direct state callback of , and is intended for changing the direct state of that body. See . + + + + + The timestep (delta) used for the simulation. + + + + + The inverse of the mass of the body. + + + + + The rate at which the body stops rotating, if there are not any other forces moving it. + + + + + The rate at which the body stops moving, if there are not any other forces moving it. + + + + + The inverse of the inertia of the body. + + + + + The inverse of the inertia tensor of the body. + + + + + The total gravity vector being currently applied to this body. + + + + + The body's center of mass position relative to the body's center in the global coordinate system. + + + + + The body's center of mass position in the body's local coordinate system. + + + + + The body's rotational velocity in radians per second. + + + + + The body's linear velocity in units per second. + + + + + If , this body is currently sleeping (not active). + + + + + The body's transformation matrix. + + + + + Returns the body's velocity at the given relative position, including both translation and rotation. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = Vector3(0, 0, 0). + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the number of contacts this body has with other bodies. + Note: By default, this returns 0 unless bodies are configured to monitor contacts. See . + + + + + Returns the position of the contact point on the body in the global coordinate system. + + + + + Returns the local normal at the contact point. + + + + + Impulse created by the contact. + + + + + Returns the local shape index of the collision. + + + + + Returns the linear velocity vector at the body's contact point. + + + + + Returns the collider's . + + + + + Returns the position of the contact point on the collider in the global coordinate system. + + + + + Returns the collider's object id. + + + + + Returns the collider object. + + + + + Returns the collider's shape index. + + + + + Returns the linear velocity vector at the collider's contact point. + + + + + Updates the body's linear and angular velocity by applying gravity and damping for the equivalent of one physics tick. + + + + + Returns the current state of the space, useful for queries. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'inverse_mass' property. + + + + + Cached name for the 'total_angular_damp' property. + + + + + Cached name for the 'total_linear_damp' property. + + + + + Cached name for the 'inverse_inertia' property. + + + + + Cached name for the 'inverse_inertia_tensor' property. + + + + + Cached name for the 'total_gravity' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'center_of_mass_local' property. + + + + + Cached name for the 'principal_inertia_axes' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'transform' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_total_gravity' method. + + + + + Cached name for the 'get_total_linear_damp' method. + + + + + Cached name for the 'get_total_angular_damp' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass_local' method. + + + + + Cached name for the 'get_principal_inertia_axes' method. + + + + + Cached name for the 'get_inverse_mass' method. + + + + + Cached name for the 'get_inverse_inertia' method. + + + + + Cached name for the 'get_inverse_inertia_tensor' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_velocity_at_local_position' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleep_state' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'get_contact_local_position' method. + + + + + Cached name for the 'get_contact_local_normal' method. + + + + + Cached name for the 'get_contact_impulse' method. + + + + + Cached name for the 'get_contact_local_shape' method. + + + + + Cached name for the 'get_contact_local_velocity_at_position' method. + + + + + Cached name for the 'get_contact_collider' method. + + + + + Cached name for the 'get_contact_collider_position' method. + + + + + Cached name for the 'get_contact_collider_id' method. + + + + + Cached name for the 'get_contact_collider_object' method. + + + + + Cached name for the 'get_contact_collider_shape' method. + + + + + Cached name for the 'get_contact_collider_velocity_at_position' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'integrate_forces' method. + + + + + Cached name for the 'get_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_constant_central_force' method. + + + + + Cached name for the '_add_constant_force' method. + + + + + Cached name for the '_add_constant_torque' method. + + + + + Cached name for the '_apply_central_force' method. + + + + + Cached name for the '_apply_central_impulse' method. + + + + + Cached name for the '_apply_force' method. + + + + + Cached name for the '_apply_impulse' method. + + + + + Cached name for the '_apply_torque' method. + + + + + Cached name for the '_apply_torque_impulse' method. + + + + + Cached name for the '_get_angular_velocity' method. + + + + + Cached name for the '_get_center_of_mass' method. + + + + + Cached name for the '_get_center_of_mass_local' method. + + + + + Cached name for the '_get_constant_force' method. + + + + + Cached name for the '_get_constant_torque' method. + + + + + Cached name for the '_get_contact_collider' method. + + + + + Cached name for the '_get_contact_collider_id' method. + + + + + Cached name for the '_get_contact_collider_object' method. + + + + + Cached name for the '_get_contact_collider_position' method. + + + + + Cached name for the '_get_contact_collider_shape' method. + + + + + Cached name for the '_get_contact_collider_velocity_at_position' method. + + + + + Cached name for the '_get_contact_count' method. + + + + + Cached name for the '_get_contact_impulse' method. + + + + + Cached name for the '_get_contact_local_normal' method. + + + + + Cached name for the '_get_contact_local_position' method. + + + + + Cached name for the '_get_contact_local_shape' method. + + + + + Cached name for the '_get_contact_local_velocity_at_position' method. + + + + + Cached name for the '_get_inverse_inertia' method. + + + + + Cached name for the '_get_inverse_inertia_tensor' method. + + + + + Cached name for the '_get_inverse_mass' method. + + + + + Cached name for the '_get_linear_velocity' method. + + + + + Cached name for the '_get_principal_inertia_axes' method. + + + + + Cached name for the '_get_space_state' method. + + + + + Cached name for the '_get_step' method. + + + + + Cached name for the '_get_total_angular_damp' method. + + + + + Cached name for the '_get_total_gravity' method. + + + + + Cached name for the '_get_total_linear_damp' method. + + + + + Cached name for the '_get_transform' method. + + + + + Cached name for the '_get_velocity_at_local_position' method. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the '_is_sleeping' method. + + + + + Cached name for the '_set_angular_velocity' method. + + + + + Cached name for the '_set_constant_force' method. + + + + + Cached name for the '_set_constant_torque' method. + + + + + Cached name for the '_set_linear_velocity' method. + + + + + Cached name for the '_set_sleep_state' method. + + + + + Cached name for the '_set_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics space in the . It's used mainly to do queries against objects and areas residing in a given space. + + + + + Checks whether a point is inside any solid shape. Position and other parameters are defined through . The shapes the point is inside of are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + Note: s and s in Segments build mode are not solid shapes. Therefore, they will not be detected. + + + + + Intersects a ray in a given space. Ray position and other parameters are defined through . The returned object is a dictionary with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + normal: The object's surface normal at the intersection point, or Vector2(0, 0) if the ray starts inside the shape and is . + position: The intersection point. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + If the ray did not intersect anything, then an empty dictionary is returned instead. + + + + + Checks the intersections of a shape, given through a object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + + + + + Checks how far a can move without colliding. All the parameters for the query, including the shape and the motion, are supplied through a object. + Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0] will be returned. + Note: Any s that the shape is already colliding with e.g. inside of, will be ignored. Use to determine the s that the shape is already colliding with. + + + + + Checks the intersections of a shape, given through a object, against the space. The resulting array contains a list of points where the shape intersects another. Like with , the number of returned results can be limited to save processing time. + Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in object, second one is in the collided shape from the physics space. + + + + + Checks the intersections of a shape, given through a object, against the space. If it collides with more than one shape, the nearest one is selected. If the shape did not intersect anything, then an empty dictionary is returned instead. + Note: This method does not take into account the motion property of the object. The returned object is a dictionary containing the following fields: + collider_id: The colliding object's ID. + linear_velocity: The colliding object's velocity . If the object is an , the result is (0, 0). + normal: The object's surface normal at the intersection point. + point: The intersection point. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'intersect_point' method. + + + + + Cached name for the 'intersect_ray' method. + + + + + Cached name for the 'intersect_shape' method. + + + + + Cached name for the 'cast_motion' method. + + + + + Cached name for the 'collide_shape' method. + + + + + Cached name for the 'get_rest_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_body_excluded_from_query' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides direct access to a physics space in the . It's used mainly to do queries against objects and areas residing in a given space. + + + + + Checks whether a point is inside any solid shape. Position and other parameters are defined through . The shapes the point is inside of are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + + + + + Intersects a ray in a given space. Ray position and other parameters are defined through . The returned object is a dictionary with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + normal: The object's surface normal at the intersection point, or Vector3(0, 0, 0) if the ray starts inside the shape and is . + position: The intersection point. + face_index: The face index at the intersection point. + Note: Returns a valid number only if the intersected shape is a . Otherwise, -1 is returned. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + If the ray did not intersect anything, then an empty dictionary is returned instead. + + + + + Checks the intersections of a shape, given through a object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields: + collider: The colliding object. + collider_id: The colliding object's ID. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + The number of intersections can be limited with the parameter, to reduce the processing time. + Note: This method does not take into account the motion property of the object. + + + + + Checks how far a can move without colliding. All the parameters for the query, including the shape, are supplied through a object. + Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0] will be returned. + Note: Any s that the shape is already colliding with e.g. inside of, will be ignored. Use to determine the s that the shape is already colliding with. + + + + + Checks the intersections of a shape, given through a object, against the space. The resulting array contains a list of points where the shape intersects another. Like with , the number of returned results can be limited to save processing time. + Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in object, second one is in the collided shape from the physics space. + Note: This method does not take into account the motion property of the object. + + + + + Checks the intersections of a shape, given through a object, against the space. If it collides with more than one shape, the nearest one is selected. The returned object is a dictionary containing the following fields: + collider_id: The colliding object's ID. + linear_velocity: The colliding object's velocity . If the object is an , the result is (0, 0, 0). + normal: The object's surface normal at the intersection point. + point: The intersection point. + rid: The intersecting object's . + shape: The shape index of the colliding shape. + If the shape did not intersect anything, then an empty dictionary is returned instead. + Note: This method does not take into account the motion property of the object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'intersect_point' method. + + + + + Cached name for the 'intersect_ray' method. + + + + + Cached name for the 'intersect_shape' method. + + + + + Cached name for the 'cast_motion' method. + + + + + Cached name for the 'collide_shape' method. + + + + + Cached name for the 'get_rest_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_closest_point_to_object_volume' method. + + + + + Cached name for the 'is_body_excluded_from_query' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Holds physics-related properties of a surface, namely its roughness and bounciness. This class is used to apply these properties to a physics body. + + + + + The body's friction. Values range from 0 (frictionless) to 1 (maximum friction). + + + + + If , the physics engine will use the friction of the object marked as "rough" when two objects collide. If , the physics engine will use the lowest friction of all colliding objects instead. If for both colliding objects, the physics engine will use the highest friction. + + + + + The body's bounciness. Values range from 0 (no bounce) to 1 (full bounciness). + Note: Even with set to 1.0, some energy will be lost over time due to linear and angular damping. To have a physics body that preserves all its energy over time, set to 1.0, the body's linear damp mode to Replace (if applicable), its linear damp to 0.0, its angular damp mode to Replace (if applicable), and its angular damp to 0.0. + + + + + If , subtracts the bounciness from the colliding object's bounciness instead of adding it. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'friction' property. + + + + + Cached name for the 'rough' property. + + + + + Cached name for the 'bounce' property. + + + + + Cached name for the 'absorbent' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_friction' method. + + + + + Cached name for the 'get_friction' method. + + + + + Cached name for the 'set_rough' method. + + + + + Cached name for the 'is_rough' method. + + + + + Cached name for the 'set_bounce' method. + + + + + Cached name for the 'get_bounce' method. + + + + + Cached name for the 'set_absorbent' method. + + + + + Cached name for the 'is_absorbent' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the point position, you can configure the parameters for . + + + + + The position being queried for, in global coordinates. + + + + + If different from 0, restricts the query to a specific canvas layer specified by its instance ID. See . + If 0, restricts the query to the Viewport's default canvas layer. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'canvas_instance_id' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_canvas_instance_id' method. + + + + + Cached name for the 'get_canvas_instance_id' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the point position, you can configure the parameters for . + + + + + The position being queried for, in global coordinates. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the ray position, you can configure the parameters for . + + + + + The starting point of the ray being queried for, in global coordinates. + + + + + The ending point of the ray being queried for, in global coordinates. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + If , the query will detect a hit when starting inside shapes. In this case the collision normal will be Vector2(0, 0). Does not affect concave polygon shapes. + + + + + Returns a new, pre-configured object. Use it to quickly create query parameters using the most common options. + + var query = PhysicsRayQueryParameters2D.create(global_position, global_position + Vector2(0, 100)) + var collision = get_world_2d().direct_space_state.intersect_ray(query) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'to' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_to' method. + + + + + Cached name for the 'get_to' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the ray position, you can configure the parameters for . + + + + + The starting point of the ray being queried for, in global coordinates. + + + + + The ending point of the ray being queried for, in global coordinates. + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + If , the query will detect a hit when starting inside shapes. In this case the collision normal will be Vector3(0, 0, 0). Does not affect concave polygon shapes or heightmap shapes. + + + + + If , the query will hit back faces with concave polygon shapes with back face enabled or heightmap shapes. + + + + + Returns a new, pre-configured object. Use it to quickly create query parameters using the most common options. + + var query = PhysicsRayQueryParameters3D.create(position, position + Vector3(0, -10, 0)) + var collision = get_world_3d().direct_space_state.intersect_ray(query) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'to' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached name for the 'hit_back_faces' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_to' method. + + + + + Cached name for the 'get_to' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached name for the 'set_hit_back_faces' method. + + + + + Cached name for the 'is_hit_back_faces_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer2D is the server responsible for all 2D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a circle, a rectangle, a capsule, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 2D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + 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 ProjectSettings.physics/2d/solver/contact_recycle_radius. + + + + + 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 ProjectSettings.physics/2d/solver/contact_max_separation. + + + + + 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 ProjectSettings.physics/2d/solver/contact_max_allowed_penetration. + + + + + 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 ProjectSettings.physics/2d/solver/default_contact_bias. + + + + + 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 ProjectSettings.physics/2d/sleep_threshold_linear. + + + + + 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 ProjectSettings.physics/2d/sleep_threshold_angular. + + + + + 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 ProjectSettings.physics/2d/time_before_sleep. + + + + + 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 ProjectSettings.physics/2d/solver/default_constraint_bias. + + + + + 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 ProjectSettings.physics/2d/solver/solver_iterations. + + + + + This is the constant for creating world boundary shapes. A world boundary shape is an infinite line with an origin point, and a normal. Thus, it can be used for front/behind checks. + + + + + 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. + + + + + This is the constant for creating segment shapes. A segment shape is a finite line from a point A to a point B. It can be checked for intersections. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + This constant is used internally by the engine. Any attempt to create this kind of shape results in an error. + + + + + Constant to set/get gravity override mode in an area. See for possible values. The default value of this parameter is . + + + + + Constant to set/get gravity strength in an area. The default value of this parameter is 9.80665. + + + + + Constant to set/get gravity vector/center in an area. The default value of this parameter is Vector2(0, -1). + + + + + 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 . + + + + + Constant to set/get the distance at which the gravity strength is equal to the gravity controlled by . 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 0.0. + + + + + Constant to set/get linear damping override mode in an area. See for possible values. The default value of this parameter is . + + + + + Constant to set/get the linear damping factor of an area. The default value of this parameter is 0.1. + + + + + Constant to set/get angular damping override mode in an area. See for possible values. The default value of this parameter is . + + + + + Constant to set/get the angular damping factor of an area. The default value of this parameter is 1.0. + + + + + Constant to set/get the priority (order of processing) of an area. The default value of this parameter is 0. + + + + + This area does not affect gravity/damp. These are generally areas that exist only to detect collisions, and objects entering or exiting them. + + + + + 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. + + + + + 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. + + + + + This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas. + + + + + This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one. + + + + + 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. + + + + + Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path. + + + + + Constant for rigid bodies. In this mode, a body can be pushed by other bodies and has forces applied. + + + + + Constant for linear rigid bodies. In this mode, a body can not rotate, and only its linear velocity is affected by external forces. + + + + + Constant to set/get a body's bounce factor. The default value of this parameter is 0.0. + + + + + Constant to set/get a body's friction. The default value of this parameter is 1.0. + + + + + Constant to set/get a body's mass. The default value of this parameter is 1.0. If the body's mode is set to , then setting this parameter will have the following additional effects: + - If the parameter has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes. + - If the parameter is set to a value <= 0.0, then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass. + + + + + Constant to set/get a body's inertia. The default value of this parameter is 0.0. If the body's inertia is set to a value <= 0.0, then the inertia will be recalculated based on the body's shapes, mass, and center of mass. + + + + + 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 Vector2(0,0). If this parameter is never set explicitly, then it is recalculated based on the body's shapes when setting the parameter or when calling . + + + + + Constant to set/get a body's gravity multiplier. The default value of this parameter is 1.0. + + + + + Constant to set/get a body's linear damping mode. See for possible values. The default value of this parameter is . + + + + + Constant to set/get a body's angular damping mode. See for possible values. The default value of this parameter is . + + + + + Constant to set/get a body's linear damping factor. The default value of this parameter is 0.0. + + + + + Constant to set/get a body's angular damping factor. The default value of this parameter is 0.0. + + + + + Represents the size of the enum. + + + + + The body's damping value is added to any value set in areas or the default value. + + + + + The body's damping value replaces any value set in areas or the default value. + + + + + Constant to set/get the current transform matrix of the body. + + + + + Constant to set/get the current linear velocity of the body. + + + + + Constant to set/get the current angular velocity of the body. + + + + + Constant to sleep/wake up a body, or to get whether it is sleeping. + + + + + Constant to set/get whether the body can sleep. + + + + + Constant to create pin joints. + + + + + Constant to create groove joints. + + + + + Constant to create damped spring joints. + + + + + Represents the size of the enum. + + + + + 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 0.0. + Note: In Godot Physics, this parameter is only used for pin joints and groove joints. + + + + + Constant to set/get the maximum speed with which the joint can apply corrections. The default value of this parameter is 3.40282e+38. + Note: In Godot Physics, this parameter is only used for groove joints. + + + + + 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 3.40282e+38. + Note: In Godot Physics, this parameter is only used for groove joints. + + + + + Constant to set/get a how much the bond of the pin joint can flex. The default value of this parameter is 0.0. + + + + + The maximum rotation around the pin. + + + + + The minimum rotation around the pin. + + + + + Target speed for the motor. In radians per second. + + + + + If , the pin has a maximum and a minimum rotation. + + + + + If , a motor turns the pin. + + + + + 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. + + + + + 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 20.0. + + + + + 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 1.5. + + + + + Disables continuous collision detection. This is the fastest way to detect body collisions, but it can miss small and/or fast-moving objects. + + + + + Enables continuous collision detection by raycasting. It is faster than shapecasting, but less precise. + + + + + Enables continuous collision detection by shapecasting. It is the slowest CCD method, and the most precise. + + + + + The value of the first parameter and area callback function receives, when an object enters one of its shapes. + + + + + The value of the first parameter and area callback function receives, when an object exits one of its shapes. + + + + + Constant to get the number of objects that are not sleeping. + + + + + Constant to get the number of possible collisions. + + + + + Constant to get the number of space regions where a collision could occur. + + + + + Creates a 2D world boundary shape in the physics server, and returns the that identifies it. Use to set the shape's normal direction and distance properties. + + + + + Creates a 2D separation ray shape in the physics server, and returns the that identifies it. Use to set the shape's length and slide_on_slope properties. + + + + + Creates a 2D segment shape in the physics server, and returns the that identifies it. Use to set the segment's start and end points. + + + + + Creates a 2D circle shape in the physics server, and returns the that identifies it. Use to set the circle's radius. + + + + + Creates a 2D rectangle shape in the physics server, and returns the that identifies it. Use to set the rectangle's half-extents. + + + + + Creates a 2D capsule shape in the physics server, and returns the that identifies it. Use to set the capsule's height and radius. + + + + + Creates a 2D convex polygon shape in the physics server, and returns the that identifies it. Use to set the convex polygon's points. + + + + + Creates a 2D concave polygon shape in the physics server, and returns the that identifies it. Use to set the concave polygon's segments. + + + + + Sets the shape data that defines the configuration of the shape. The to be passed depends on the shape's type (see ): + - : an array of length two containing a normal direction and a distance d, + - : a dictionary containing the key length with a value and the key slide_on_slope with a value, + - : a rect containing the first point of the segment in rect.position and the second point of the segment in rect.size, + - : a radius, + - : a half_extents, + - : an array of length two (or a ) containing a height and a radius, + - : either a [] of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a [] of length divisible by four so that every 4-tuple of s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point, + - : a [] of length divisible by two (each pair of points forms one segment). + Warning: In the case of , this method does not check if the points supplied actually form a convex polygon (unlike the property). + + + + + Returns the shape's type (see ). + + + + + Returns the shape data that defines the configuration of the shape, such as the half-extents of a rectangle or the segments of a concave shape. See for the precise format of this data in each case. + + + + + Creates a 2D space in the physics server, and returns the that identifies it. A space contains bodies and areas, and controls the stepping of the physics simulation of the objects in it. + + + + + Activates or deactivates the space. If is , then the physics server will not do anything with this space in its physics step. + + + + + Returns if the space is active. + + + + + Sets the value of the given space parameter. See for the list of available parameters. + + + + + Returns the value of the given space parameter. See for the list of available parameters. + + + + + Returns the state of a space, a . This object can be used for collision/intersection queries. + + + + + Creates a 2D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Adds the area to the given space, after removing the area from the previously assigned space (if any). + Note: To remove an area from a space without immediately adding it back elsewhere, use PhysicsServer2D.area_set_space(area, RID()). + + + + + Returns the of the space assigned to the area. Returns an empty if no space is assigned. + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of an area are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the area's shape at the given index by another shape, while not affecting the transform and disabled properties at the same index. + + + + + Sets the local transform matrix of the area's shape with the given index. + + + + + Sets the disabled property of the area's shape with the given index. If is , then the shape will not detect any other shapes entering or exiting it. + + + + + Returns the number of shapes added to the area. + + + + + Returns the of the shape with the given index in the area's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the area's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the area's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the area. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Assigns the area to one or many physics layers, via a bitmask. + + + + + Returns the physics layer or layers the area belongs to, as a bitmask. + + + + + Sets which physics layers the area will monitor, via a bitmask. + + + + + Returns the physics layer or layers the area can contact with, as a bitmask. + + + + + Sets the value of the given area parameter. See for the list of available parameters. + + + + + Sets the transform matrix of the area. + + + + + Returns the value of the given area parameter. See for the list of available parameters. + + + + + Returns the transform matrix of the area. + + + + + Attaches the ObjectID of an to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the area. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the area. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets whether the area is monitorable or not. If is , the area monitoring callback of other areas will be called when this area enters or exits them. + + + + + Creates a 2D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Adds the body to the given space, after removing the body from the previously assigned space (if any). If the body's mode is set to , then adding the body to a space will have the following additional effects: + - If the parameter has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes. + - If the parameter is set to a value <= 0.0, then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass. + Note: To remove a body from a space without immediately adding it back elsewhere, use PhysicsServer2D.body_set_space(body, RID()). + + + + + Returns the of the space assigned to the body. Returns an empty if no space is assigned. + + + + + Sets the body's mode. See for the list of available modes. + + + + + Returns the body's mode (see ). + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of a body are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the body's shape at the given index by another shape, while not affecting the transform, disabled, and one-way collision properties at the same index. + + + + + Sets the local transform matrix of the body's shape with the given index. + + + + + Returns the number of shapes added to the body. + + + + + Returns the of the shape with the given index in the body's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the body's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the body's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the body. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Sets the disabled property of the body's shape with the given index. If is , then the shape will be ignored in all collision detection. + + + + + Sets the one-way collision properties of the body's shape with the given index. If is , the one-way collision direction given by the shape's local upward axis body_get_shape_transform(body, shape_idx).y will be used to ignore collisions with the shape in the opposite direction, and to ensure depenetration of kinematic bodies happens in this direction. + + + + + Attaches the ObjectID of an to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the body. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the body. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the continuous collision detection mode using one of the constants. + Continuous collision detection tries to predict where a moving body would collide in between physics updates, instead of moving it and correcting its movement if it collided. + + + + + Returns the body's continuous collision detection mode (see ). + + + + + Sets the physics layer or layers the body belongs to, via a bitmask. + + + + + Returns the physics layer or layers the body belongs to, as a bitmask. + + + + + Sets the physics layer or layers the body can collide with, via a bitmask. + + + + + Returns the physics layer or layers the body can collide with, as a bitmask. + + + + + Sets the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Returns the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Sets the value of the given body parameter. See for the list of available parameters. + + + + + Returns the value of the given body parameter. See for the list of available parameters. + + + + + Restores the default inertia and center of mass of the body based on its shapes. This undoes any custom values previously set using . + + + + + Sets the value of a body's state. See for the list of available states. + Note: The state change doesn't take effect immediately. The state will change on the next physics frame. + + + + + Returns the value of the given state of the body. See for the list of available states. + + + + + Applies a directional impulse to the body, at the body's center of mass. The impulse does not affect rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a rotational impulse to the body. The impulse does not affect position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a positioned impulse to the body. The impulse can affect rotation if is different from the body's center of mass. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a directional force to the body, at the body's center of mass. The force does not affect rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. The force can affect rotation if is different from the body's center of mass. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force to the body. The force does not affect position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force to the body. The force does not affect rotation. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body. The force can affect rotation if is different from the body's center of mass. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force to the body. The force does not affect position. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_torque(body, 0). + + + + + Sets the body's total constant positional force applied during each physics update. + See and . + + + + + Returns the body's total constant positional force applied during each physics update. + See and . + + + + + Sets the body's total constant rotational force applied during each physics update. + See . + + + + + Returns the body's total constant rotational force applied during each physics update. + See . + + + + + Modifies the body's linear velocity so that its projection to the axis axis_velocity.normalized() is exactly axis_velocity.length(). This is useful for jumping behavior. + + + + + Adds to the body's list of collision exceptions, so that collisions with it are ignored. + + + + + Removes from the body's list of collision exceptions, so that collisions with it are no longer ignored. + + + + + Sets the maximum number of contacts that the body can report. If is greater than zero, then the body will keep track of at most this many contacts with other bodies. + + + + + Returns the maximum number of contacts that the body can report. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Returns if a collision would result from moving the body along a motion vector from a given point in space. See for the available motion parameters. Optionally a object can be passed, which will be used to store the information about the resulting collision. + + + + + Returns the of the body. Returns if the body is destroyed or not assigned to a space. + + + + + Creates a 2D joint in the physics server, and returns the that identifies it. To set the joint type, use , or . Use to set generic joint parameters. + + + + + Destroys the joint with the given , creates a new uninitialized joint, and makes the refer to this new joint. + + + + + Sets the value of the given joint parameter. See for the list of available parameters. + + + + + Returns the value of the given joint parameter. See for the list of available parameters. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Makes the joint a pin joint. If is an empty , then is pinned to the point (given in global coordinates); otherwise, is pinned to at the point (given in global coordinates). To set the parameters which are specific to the pin joint, see . + + + + + Makes the joint a groove joint. + + + + + Makes the joint a damped spring joint, attached at the point (given in global coordinates) on the body and at the point (given in global coordinates) on the body . To set the parameters which are specific to the damped spring, see . + + + + + Sets a pin joint flag (see constants). + + + + + Gets a pin joint flag (see constants). + + + + + Sets a pin joint parameter. See for a list of available parameters. + + + + + Returns the value of a pin joint parameter. See for a list of available parameters. + + + + + Sets the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the joint's type (see ). + + + + + Destroys any of the objects created by PhysicsServer2D. If the passed is not one of the objects that can be created by PhysicsServer2D, an error will be printed to the console. + + + + + Activates or deactivates the 2D physics server. If is , then the physics server will not do anything in its physics step. + + + + + Returns information about the current state of the 2D physics engine. See for the list of available states. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'segment_shape_create' method. + + + + + Cached name for the 'circle_shape_create' method. + + + + + Cached name for the 'rectangle_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_attach_canvas_instance_id' method. + + + + + Cached name for the 'area_get_canvas_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_set_shape_as_one_way_collision' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_attach_canvas_instance_id' method. + + + + + Cached name for the 'body_get_canvas_instance_id' method. + + + + + Cached name for the 'body_set_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_get_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_set_param' method. + + + + + Cached name for the 'joint_get_param' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'joint_make_groove' method. + + + + + Cached name for the 'joint_make_damped_spring' method. + + + + + Cached name for the 'pin_joint_set_flag' method. + + + + + Cached name for the 'pin_joint_get_flag' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'damped_spring_joint_set_param' method. + + + + + Cached name for the 'damped_spring_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer2D is the server responsible for all 2D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a circle, a rectangle, a capsule, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 2D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + Creates a 2D world boundary shape in the physics server, and returns the that identifies it. Use to set the shape's normal direction and distance properties. + + + + + Creates a 2D separation ray shape in the physics server, and returns the that identifies it. Use to set the shape's length and slide_on_slope properties. + + + + + Creates a 2D segment shape in the physics server, and returns the that identifies it. Use to set the segment's start and end points. + + + + + Creates a 2D circle shape in the physics server, and returns the that identifies it. Use to set the circle's radius. + + + + + Creates a 2D rectangle shape in the physics server, and returns the that identifies it. Use to set the rectangle's half-extents. + + + + + Creates a 2D capsule shape in the physics server, and returns the that identifies it. Use to set the capsule's height and radius. + + + + + Creates a 2D convex polygon shape in the physics server, and returns the that identifies it. Use to set the convex polygon's points. + + + + + Creates a 2D concave polygon shape in the physics server, and returns the that identifies it. Use to set the concave polygon's segments. + + + + + Sets the shape data that defines the configuration of the shape. The to be passed depends on the shape's type (see ): + - : an array of length two containing a normal direction and a distance d, + - : a dictionary containing the key length with a value and the key slide_on_slope with a value, + - : a rect containing the first point of the segment in rect.position and the second point of the segment in rect.size, + - : a radius, + - : a half_extents, + - : an array of length two (or a ) containing a height and a radius, + - : either a [] of points defining a convex polygon in counterclockwise order (the clockwise outward normal of each segment formed by consecutive points is calculated internally), or a [] of length divisible by four so that every 4-tuple of s contains the coordinates of a point followed by the coordinates of the clockwise outward normal vector to the segment between the current point and the next point, + - : a [] of length divisible by two (each pair of points forms one segment). + Warning: In the case of , this method does not check if the points supplied actually form a convex polygon (unlike the property). + + + + + Returns the shape's type (see ). + + + + + Returns the shape data that defines the configuration of the shape, such as the half-extents of a rectangle or the segments of a concave shape. See for the precise format of this data in each case. + + + + + Creates a 2D space in the physics server, and returns the that identifies it. A space contains bodies and areas, and controls the stepping of the physics simulation of the objects in it. + + + + + Activates or deactivates the space. If is , then the physics server will not do anything with this space in its physics step. + + + + + Returns if the space is active. + + + + + Sets the value of the given space parameter. See for the list of available parameters. + + + + + Returns the value of the given space parameter. See for the list of available parameters. + + + + + Returns the state of a space, a . This object can be used for collision/intersection queries. + + + + + Creates a 2D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Adds the area to the given space, after removing the area from the previously assigned space (if any). + Note: To remove an area from a space without immediately adding it back elsewhere, use PhysicsServer2D.area_set_space(area, RID()). + + + + + Returns the of the space assigned to the area. Returns an empty if no space is assigned. + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of an area are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the area's shape at the given index by another shape, while not affecting the transform and disabled properties at the same index. + + + + + Sets the local transform matrix of the area's shape with the given index. + + + + + Sets the disabled property of the area's shape with the given index. If is , then the shape will not detect any other shapes entering or exiting it. + + + + + Returns the number of shapes added to the area. + + + + + Returns the of the shape with the given index in the area's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the area's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the area's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the area. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Assigns the area to one or many physics layers, via a bitmask. + + + + + Returns the physics layer or layers the area belongs to, as a bitmask. + + + + + Sets which physics layers the area will monitor, via a bitmask. + + + + + Returns the physics layer or layers the area can contact with, as a bitmask. + + + + + Sets the value of the given area parameter. See for the list of available parameters. + + + + + Sets the transform matrix of the area. + + + + + Returns the value of the given area parameter. See for the list of available parameters. + + + + + Returns the transform matrix of the area. + + + + + Attaches the ObjectID of an to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the area. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the area. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the area. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets whether the area is monitorable or not. If is , the area monitoring callback of other areas will be called when this area enters or exits them. + + + + + Creates a 2D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Adds the body to the given space, after removing the body from the previously assigned space (if any). If the body's mode is set to , then adding the body to a space will have the following additional effects: + - If the parameter has never been set explicitly, then the value of that parameter will be recalculated based on the body's shapes. + - If the parameter is set to a value <= 0.0, then the value of that parameter will be recalculated based on the body's shapes, mass, and center of mass. + Note: To remove a body from a space without immediately adding it back elsewhere, use PhysicsServer2D.body_set_space(body, RID()). + + + + + Returns the of the space assigned to the body. Returns an empty if no space is assigned. + + + + + Sets the body's mode. See for the list of available modes. + + + + + Returns the body's mode (see ). + + + + + Adds a shape to the area, with the given local transform. The shape (together with its and properties) is added to an array of shapes, and the shapes of a body are usually referenced by their index in this array. + + If the parameter is null, then the default value is Transform2D.Identity. + + + + Replaces the body's shape at the given index by another shape, while not affecting the transform, disabled, and one-way collision properties at the same index. + + + + + Sets the local transform matrix of the body's shape with the given index. + + + + + Returns the number of shapes added to the body. + + + + + Returns the of the shape with the given index in the body's array of shapes. + + + + + Returns the local transform matrix of the shape with the given index in the area's array of shapes. + + + + + Removes the shape with the given index from the body's array of shapes. The shape itself is not deleted, so it can continue to be used elsewhere or added back later. As a result of this operation, the body's shapes which used to have indices higher than will have their index decreased by one. + + + + + Removes all shapes from the body. This does not delete the shapes themselves, so they can continue to be used elsewhere or added back later. + + + + + Sets the disabled property of the body's shape with the given index. If is , then the shape will be ignored in all collision detection. + + + + + Sets the one-way collision properties of the body's shape with the given index. If is , the one-way collision direction given by the shape's local upward axis body_get_shape_transform(body, shape_idx).y will be used to ignore collisions with the shape in the opposite direction, and to ensure depenetration of kinematic bodies happens in this direction. + + + + + Attaches the ObjectID of an to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID attached to the body. Use @GlobalScope.instance_from_id to retrieve an from a nonzero ObjectID. + + + + + Attaches the ObjectID of a canvas to the body. Use to get the ObjectID of a . + + + + + Returns the ObjectID of the canvas attached to the body. Use @GlobalScope.instance_from_id to retrieve a from a nonzero ObjectID. + + + + + Sets the continuous collision detection mode using one of the constants. + Continuous collision detection tries to predict where a moving body would collide in between physics updates, instead of moving it and correcting its movement if it collided. + + + + + Returns the body's continuous collision detection mode (see ). + + + + + Sets the physics layer or layers the body belongs to, via a bitmask. + + + + + Returns the physics layer or layers the body belongs to, as a bitmask. + + + + + Sets the physics layer or layers the body can collide with, via a bitmask. + + + + + Returns the physics layer or layers the body can collide with, as a bitmask. + + + + + Sets the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Returns the body's collision priority. This is used in the depenetration phase of . The higher the priority is, the lower the penetration into the body will be. + + + + + Sets the value of the given body parameter. See for the list of available parameters. + + + + + Returns the value of the given body parameter. See for the list of available parameters. + + + + + Restores the default inertia and center of mass of the body based on its shapes. This undoes any custom values previously set using . + + + + + Sets the value of a body's state. See for the list of available states. + Note: The state change doesn't take effect immediately. The state will change on the next physics frame. + + + + + Returns the value of the given state of the body. See for the list of available states. + + + + + Applies a directional impulse to the body, at the body's center of mass. The impulse does not affect rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a rotational impulse to the body. The impulse does not affect position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a positioned impulse to the body. The impulse can affect rotation if is different from the body's center of mass. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a directional force to the body, at the body's center of mass. The force does not affect rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. The force can affect rotation if is different from the body's center of mass. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force to the body. The force does not affect position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force to the body. The force does not affect rotation. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body. The force can affect rotation if is different from the body's center of mass. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_force(body, Vector2(0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force to the body. The force does not affect position. The force remains applied over time until cleared with PhysicsServer2D.body_set_constant_torque(body, 0). + + + + + Sets the body's total constant positional force applied during each physics update. + See and . + + + + + Returns the body's total constant positional force applied during each physics update. + See and . + + + + + Sets the body's total constant rotational force applied during each physics update. + See . + + + + + Returns the body's total constant rotational force applied during each physics update. + See . + + + + + Modifies the body's linear velocity so that its projection to the axis axis_velocity.normalized() is exactly axis_velocity.length(). This is useful for jumping behavior. + + + + + Adds to the body's list of collision exceptions, so that collisions with it are ignored. + + + + + Removes from the body's list of collision exceptions, so that collisions with it are no longer ignored. + + + + + Sets the maximum number of contacts that the body can report. If is greater than zero, then the body will keep track of at most this many contacts with other bodies. + + + + + Returns the maximum number of contacts that the body can report. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Returns if a collision would result from moving the body along a motion vector from a given point in space. See for the available motion parameters. Optionally a object can be passed, which will be used to store the information about the resulting collision. + + + + + Returns the of the body. Returns if the body is destroyed or not assigned to a space. + + + + + Creates a 2D joint in the physics server, and returns the that identifies it. To set the joint type, use , or . Use to set generic joint parameters. + + + + + Destroys the joint with the given , creates a new uninitialized joint, and makes the refer to this new joint. + + + + + Sets the value of the given joint parameter. See for the list of available parameters. + + + + + Returns the value of the given joint parameter. See for the list of available parameters. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Makes the joint a pin joint. If is an empty , then is pinned to the point (given in global coordinates); otherwise, is pinned to at the point (given in global coordinates). To set the parameters which are specific to the pin joint, see . + + + + + Makes the joint a groove joint. + + + + + Makes the joint a damped spring joint, attached at the point (given in global coordinates) on the body and at the point (given in global coordinates) on the body . To set the parameters which are specific to the damped spring, see . + + + + + Sets a pin joint flag (see constants). + + + + + Gets a pin joint flag (see constants). + + + + + Sets a pin joint parameter. See for a list of available parameters. + + + + + Returns the value of a pin joint parameter. See for a list of available parameters. + + + + + Sets the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the value of the given damped spring joint parameter. See for the list of available parameters. + + + + + Returns the joint's type (see ). + + + + + Destroys any of the objects created by PhysicsServer2D. If the passed is not one of the objects that can be created by PhysicsServer2D, an error will be printed to the console. + + + + + Activates or deactivates the 2D physics server. If is , then the physics server will not do anything in its physics step. + + + + + Returns information about the current state of the 2D physics engine. See for the list of available states. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'segment_shape_create' method. + + + + + Cached name for the 'circle_shape_create' method. + + + + + Cached name for the 'rectangle_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_attach_canvas_instance_id' method. + + + + + Cached name for the 'area_get_canvas_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_set_shape_as_one_way_collision' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_attach_canvas_instance_id' method. + + + + + Cached name for the 'body_get_canvas_instance_id' method. + + + + + Cached name for the 'body_set_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_get_continuous_collision_detection_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_set_param' method. + + + + + Cached name for the 'joint_get_param' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'joint_make_groove' method. + + + + + Cached name for the 'joint_make_damped_spring' method. + + + + + Cached name for the 'pin_joint_set_flag' method. + + + + + Cached name for the 'pin_joint_get_flag' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'damped_spring_joint_set_param' method. + + + + + Cached name for the 'damped_spring_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + If set to , allows the area with the given to detect mouse inputs when the mouse cursor is hovering on it. + Overridable version of 's internal area_set_pickable method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Returns the s of all bodies added as collision exceptions for the given . See also and . + Overridable version of 's internal body_get_collision_exceptions method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of 's internal body_get_contacts_reported_depth_threshold method. + Note: This method is currently unused by Godot's default physics implementation. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of 's internal body_set_contacts_reported_depth_threshold method. + Note: This method is currently unused by Godot's default physics implementation. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + If set to , allows the body with the given to detect mouse inputs when the mouse cursor is hovering on it. + Overridable version of 's internal body_set_pickable method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Assigns the to call the given during the synchronization phase of the loop, before is called. See also . + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + 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 . + Overridable version of 's internal end_sync method. + + + + + Called when the main loop finalizes to shut down the physics server. See also and . + Overridable version of 's internal finish method. + + + + + Called every physics step before to process all remaining queries. + Overridable version of 's internal flush_queries method. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Called when the main loop is initialized and creates a new instance of this physics server. See also and . + Overridable version of 's internal init method. + + + + + Overridable method that should return when the physics server is processing queries. See also . + Overridable version of 's internal is_flushing_queries method. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Should return the custom solver bias of the given , which defines how much bodies are forced to separate on contact when this shape is involved. + Overridable version of 's internal shape_get_custom_solver_bias method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Should set the custom solver bias for the given . It defines how much bodies are forced to separate on contact. + Overridable version of 's internal shape_get_custom_solver_bias method. Corresponds to . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Should return how many contacts have occurred during the last physics step in the given . See also and . + Overridable version of 's internal space_get_contact_count method. + + + + + Should return the positions of all contacts that have occurred during the last physics step in the given . See also and . + Overridable version of 's internal space_get_contacts method. + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Overridable version of . + + + + + Used internally to allow the given to store contact points, up to . This is automatically set for the main 's space when is , or by checking "Visible Collision Shapes" in the editor. Only works in debug builds. + Overridable version of 's internal space_set_debug_contacts method. + + + + + Overridable version of . + + + + + Called every physics step to process the physics simulation. is the time elapsed since the last physics step, in seconds. It is usually the same as . + Overridable version of 's internal step method. + + + + + Called to indicate that the physics server is synchronizing and cannot access physics states if running on a separate thread. See also . + Overridable version of 's internal sync method. + + + + + Overridable version of . + + + + + Returns if the body with the given is being excluded from _body_test_motion. See also . + + + + + Returns if the object with the given instance ID is being excluded from _body_test_motion. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_area_add_shape' method. + + + + + Cached name for the '_area_attach_canvas_instance_id' method. + + + + + Cached name for the '_area_attach_object_instance_id' method. + + + + + Cached name for the '_area_clear_shapes' method. + + + + + Cached name for the '_area_create' method. + + + + + Cached name for the '_area_get_canvas_instance_id' method. + + + + + Cached name for the '_area_get_collision_layer' method. + + + + + Cached name for the '_area_get_collision_mask' method. + + + + + Cached name for the '_area_get_object_instance_id' method. + + + + + Cached name for the '_area_get_param' method. + + + + + Cached name for the '_area_get_shape' method. + + + + + Cached name for the '_area_get_shape_count' method. + + + + + Cached name for the '_area_get_shape_transform' method. + + + + + Cached name for the '_area_get_space' method. + + + + + Cached name for the '_area_get_transform' method. + + + + + Cached name for the '_area_remove_shape' method. + + + + + Cached name for the '_area_set_area_monitor_callback' method. + + + + + Cached name for the '_area_set_collision_layer' method. + + + + + Cached name for the '_area_set_collision_mask' method. + + + + + Cached name for the '_area_set_monitor_callback' method. + + + + + Cached name for the '_area_set_monitorable' method. + + + + + Cached name for the '_area_set_param' method. + + + + + Cached name for the '_area_set_pickable' method. + + + + + Cached name for the '_area_set_shape' method. + + + + + Cached name for the '_area_set_shape_disabled' method. + + + + + Cached name for the '_area_set_shape_transform' method. + + + + + Cached name for the '_area_set_space' method. + + + + + Cached name for the '_area_set_transform' method. + + + + + Cached name for the '_body_add_collision_exception' method. + + + + + Cached name for the '_body_add_constant_central_force' method. + + + + + Cached name for the '_body_add_constant_force' method. + + + + + Cached name for the '_body_add_constant_torque' method. + + + + + Cached name for the '_body_add_shape' method. + + + + + Cached name for the '_body_apply_central_force' method. + + + + + Cached name for the '_body_apply_central_impulse' method. + + + + + Cached name for the '_body_apply_force' method. + + + + + Cached name for the '_body_apply_impulse' method. + + + + + Cached name for the '_body_apply_torque' method. + + + + + Cached name for the '_body_apply_torque_impulse' method. + + + + + Cached name for the '_body_attach_canvas_instance_id' method. + + + + + Cached name for the '_body_attach_object_instance_id' method. + + + + + Cached name for the '_body_clear_shapes' method. + + + + + Cached name for the '_body_create' method. + + + + + Cached name for the '_body_get_canvas_instance_id' method. + + + + + Cached name for the '_body_get_collision_exceptions' method. + + + + + Cached name for the '_body_get_collision_layer' method. + + + + + Cached name for the '_body_get_collision_mask' method. + + + + + Cached name for the '_body_get_collision_priority' method. + + + + + Cached name for the '_body_get_constant_force' method. + + + + + Cached name for the '_body_get_constant_torque' method. + + + + + Cached name for the '_body_get_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_get_continuous_collision_detection_mode' method. + + + + + Cached name for the '_body_get_direct_state' method. + + + + + Cached name for the '_body_get_max_contacts_reported' method. + + + + + Cached name for the '_body_get_mode' method. + + + + + Cached name for the '_body_get_object_instance_id' method. + + + + + Cached name for the '_body_get_param' method. + + + + + Cached name for the '_body_get_shape' method. + + + + + Cached name for the '_body_get_shape_count' method. + + + + + Cached name for the '_body_get_shape_transform' method. + + + + + Cached name for the '_body_get_space' method. + + + + + Cached name for the '_body_get_state' method. + + + + + Cached name for the '_body_is_omitting_force_integration' method. + + + + + Cached name for the '_body_remove_collision_exception' method. + + + + + Cached name for the '_body_remove_shape' method. + + + + + Cached name for the '_body_reset_mass_properties' method. + + + + + Cached name for the '_body_set_axis_velocity' method. + + + + + Cached name for the '_body_set_collision_layer' method. + + + + + Cached name for the '_body_set_collision_mask' method. + + + + + Cached name for the '_body_set_collision_priority' method. + + + + + Cached name for the '_body_set_constant_force' method. + + + + + Cached name for the '_body_set_constant_torque' method. + + + + + Cached name for the '_body_set_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_set_continuous_collision_detection_mode' method. + + + + + Cached name for the '_body_set_force_integration_callback' method. + + + + + Cached name for the '_body_set_max_contacts_reported' method. + + + + + Cached name for the '_body_set_mode' method. + + + + + Cached name for the '_body_set_omit_force_integration' method. + + + + + Cached name for the '_body_set_param' method. + + + + + Cached name for the '_body_set_pickable' method. + + + + + Cached name for the '_body_set_shape' method. + + + + + Cached name for the '_body_set_shape_as_one_way_collision' method. + + + + + Cached name for the '_body_set_shape_disabled' method. + + + + + Cached name for the '_body_set_shape_transform' method. + + + + + Cached name for the '_body_set_space' method. + + + + + Cached name for the '_body_set_state' method. + + + + + Cached name for the '_body_set_state_sync_callback' method. + + + + + Cached name for the '_capsule_shape_create' method. + + + + + Cached name for the '_circle_shape_create' method. + + + + + Cached name for the '_concave_polygon_shape_create' method. + + + + + Cached name for the '_convex_polygon_shape_create' method. + + + + + Cached name for the '_damped_spring_joint_get_param' method. + + + + + Cached name for the '_damped_spring_joint_set_param' method. + + + + + Cached name for the '_end_sync' method. + + + + + Cached name for the '_finish' method. + + + + + Cached name for the '_flush_queries' method. + + + + + Cached name for the '_free_rid' method. + + + + + Cached name for the '_get_process_info' method. + + + + + Cached name for the '_init' method. + + + + + Cached name for the '_is_flushing_queries' method. + + + + + Cached name for the '_joint_clear' method. + + + + + Cached name for the '_joint_create' method. + + + + + Cached name for the '_joint_disable_collisions_between_bodies' method. + + + + + Cached name for the '_joint_get_param' method. + + + + + Cached name for the '_joint_get_type' method. + + + + + Cached name for the '_joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the '_joint_make_damped_spring' method. + + + + + Cached name for the '_joint_make_groove' method. + + + + + Cached name for the '_joint_make_pin' method. + + + + + Cached name for the '_joint_set_param' method. + + + + + Cached name for the '_pin_joint_get_flag' method. + + + + + Cached name for the '_pin_joint_get_param' method. + + + + + Cached name for the '_pin_joint_set_flag' method. + + + + + Cached name for the '_pin_joint_set_param' method. + + + + + Cached name for the '_rectangle_shape_create' method. + + + + + Cached name for the '_segment_shape_create' method. + + + + + Cached name for the '_separation_ray_shape_create' method. + + + + + Cached name for the '_set_active' method. + + + + + Cached name for the '_shape_get_custom_solver_bias' method. + + + + + Cached name for the '_shape_get_data' method. + + + + + Cached name for the '_shape_get_type' method. + + + + + Cached name for the '_shape_set_custom_solver_bias' method. + + + + + Cached name for the '_shape_set_data' method. + + + + + Cached name for the '_space_create' method. + + + + + Cached name for the '_space_get_contact_count' method. + + + + + Cached name for the '_space_get_contacts' method. + + + + + Cached name for the '_space_get_direct_state' method. + + + + + Cached name for the '_space_get_param' method. + + + + + Cached name for the '_space_is_active' method. + + + + + Cached name for the '_space_set_active' method. + + + + + Cached name for the '_space_set_debug_contacts' method. + + + + + Cached name for the '_space_set_param' method. + + + + + Cached name for the '_step' method. + + + + + Cached name for the '_sync' method. + + + + + Cached name for the '_world_boundary_shape_create' method. + + + + + Cached name for the 'body_test_motion_is_excluding_body' method. + + + + + Cached name for the 'body_test_motion_is_excluding_object' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer3D is the server responsible for all 3D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a sphere, a box, a cylinder, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 3D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + Represents the size of the enum. + + + + + The strength with which the pinned objects try to stay in positional relation to each other. + The higher, the stronger. + + + + + The strength with which the pinned objects try to stay in velocity relation to each other. + The higher, the stronger. + + + + + If above 0, this value is the maximum value for an impulse that this Joint3D puts on its ends. + + + + + The speed with which the two bodies get pulled together when they move in different directions. + + + + + The maximum rotation across the Hinge. + + + + + The minimum rotation across the Hinge. + + + + + The speed with which the rotation across the axis perpendicular to the hinge gets corrected. + + + + + The lower this value, the more the rotation gets slowed down. + + + + + Target speed for the motor. + + + + + Maximum acceleration for the motor. + + + + + If , the Hinge has a maximum and a minimum rotation. + + + + + If , a motor turns the Hinge. + + + + + The maximum difference between the pivot points on their X axis before damping happens. + + + + + The minimum difference between the pivot points on their X axis before damping happens. + + + + + A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement. + + + + + The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost. + + + + + The amount of damping once the slider limits are surpassed. + + + + + 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. + + + + + The amount of restitution inside the slider limits. + + + + + The amount of damping inside the slider limits. + + + + + A factor applied to the movement across axes orthogonal to the slider. + + + + + The amount of restitution when movement is across axes orthogonal to the slider. + + + + + The amount of damping when movement is across axes orthogonal to the slider. + + + + + The upper limit of rotation in the slider. + + + + + The lower limit of rotation in the slider. + + + + + A factor applied to the all rotation once the limit is surpassed. + + + + + The amount of restitution of the rotation when the limit is surpassed. + + + + + The amount of damping of the rotation when the limit is surpassed. + + + + + A factor that gets applied to the all rotation in the limits. + + + + + The amount of restitution of the rotation in the limits. + + + + + The amount of damping of the rotation in the limits. + + + + + A factor that gets applied to the all rotation across axes orthogonal to the slider. + + + + + The amount of restitution of the rotation across axes orthogonal to the slider. + + + + + The amount of damping of the rotation across axes orthogonal to the slider. + + + + + Represents the size of the enum. + + + + + 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 . + If below 0.05, this behavior is locked. + + + + + Twist is the rotation around the twist axis, this value defined how far the joint can twist. + Twist is locked if below 0.05. + + + + + The speed with which the swing or twist will take place. + The higher, the faster. + + + + + The ease with which the Joint3D twists, if it's too low, it takes more force to twist the joint. + + + + + Defines, how fast the swing- and twist-speed-difference on both sides gets synced. + + + + + The minimum difference between the pivot points' axes. + + + + + The maximum difference between the pivot points' axes. + + + + + A factor that gets applied to the movement across the axes. The lower, the slower the movement. + + + + + The amount of restitution on the axes movement. The lower, the more velocity-energy gets lost. + + + + + The amount of damping that happens at the linear motion across the axes. + + + + + The velocity that the joint's linear motor will attempt to reach. + + + + + The maximum force that the linear motor can apply while trying to reach the target velocity. + + + + + The minimum rotation in negative direction to break loose and rotate around the axes. + + + + + The minimum rotation in positive direction to break loose and rotate around the axes. + + + + + A factor that gets multiplied onto all rotations across the axes. + + + + + The amount of rotational damping across the axes. The lower, the more damping occurs. + + + + + The amount of rotational restitution across the axes. The lower, the more restitution occurs. + + + + + The maximum amount of force that can occur, when rotating around the axes. + + + + + 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. + + + + + Target speed for the motor at the axes. + + + + + Maximum acceleration for the motor at the axes. + + + + + Represents the size of the enum. + + + + + If set, linear motion is possible within the given limits. + + + + + If set, rotational motion is possible. + + + + + If set, there is a rotational motor across these axes. + + + + + If set, there is a linear motor on this axis that targets a specific velocity. + + + + + Represents the size of the enum. + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is a . + + + + + The is used internally for a soft body. Any attempt to create this kind of shape results in an error. + + + + + This constant is used internally by the engine. Any attempt to create this kind of shape results in an error. + + + + + Constant to set/get gravity override mode in an area. See for possible values. + + + + + Constant to set/get gravity strength in an area. + + + + + Constant to set/get gravity vector/center in an area. + + + + + Constant to set/get whether the gravity vector of an area is a direction, or a center point. + + + + + Constant to set/get the distance at which the gravity strength is equal to the gravity controlled by . 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. + + + + + Constant to set/get linear damping override mode in an area. See for possible values. + + + + + Constant to set/get the linear damping factor of an area. + + + + + Constant to set/get angular damping override mode in an area. See for possible values. + + + + + Constant to set/get the angular damping factor of an area. + + + + + Constant to set/get the priority (order of processing) of an area. + + + + + Constant to set/get the magnitude of area-specific wind force. This wind force only applies to nodes. Other physics bodies are currently not affected by wind. + + + + + Constant to set/get the 3D vector that specifies the origin from which an area-specific wind blows. + + + + + Constant to set/get the 3D vector that specifies the direction in which an area-specific wind blows. + + + + + Constant to set/get the exponential rate at which wind force decreases with distance from its origin. + + + + + This area does not affect gravity/damp. These are generally areas that exist only to detect collisions, and objects entering or exiting them. + + + + + 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. + + + + + 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. + + + + + This area replaces any gravity/damp, even the default one, and stops taking into account the rest of the areas. + + + + + This area replaces any gravity/damp calculated so far, but keeps calculating the rest of the areas, down to the default one. + + + + + 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. + + + + + Constant for kinematic bodies. In this mode, a body can be only moved by user code and collides with other bodies along its path. + + + + + Constant for rigid bodies. In this mode, a body can be pushed by other bodies and has forces applied. + + + + + Constant for linear rigid bodies. In this mode, a body can not rotate, and only its linear velocity is affected by external forces. + + + + + Constant to set/get a body's bounce factor. + + + + + Constant to set/get a body's friction. + + + + + Constant to set/get a body's mass. + + + + + Constant to set/get a body's inertia. + + + + + Constant to set/get a body's center of mass position in the body's local coordinate system. + + + + + Constant to set/get a body's gravity multiplier. + + + + + Constant to set/get a body's linear damping mode. See for possible values. + + + + + Constant to set/get a body's angular damping mode. See for possible values. + + + + + Constant to set/get a body's linear damping factor. + + + + + Constant to set/get a body's angular damping factor. + + + + + Represents the size of the enum. + + + + + The body's damping value is added to any value set in areas or the default value. + + + + + The body's damping value replaces any value set in areas or the default value. + + + + + Constant to set/get the current transform matrix of the body. + + + + + Constant to set/get the current linear velocity of the body. + + + + + Constant to set/get the current angular velocity of the body. + + + + + Constant to sleep/wake up a body, or to get whether it is sleeping. + + + + + Constant to set/get whether the body can sleep. + + + + + The value of the first parameter and area callback function receives, when an object enters one of its shapes. + + + + + The value of the first parameter and area callback function receives, when an object exits one of its shapes. + + + + + Constant to get the number of objects that are not sleeping. + + + + + Constant to get the number of possible collisions. + + + + + Constant to get the number of space regions where a collision could occur. + + + + + Constant to set/get the maximum distance a pair of bodies has to move before their collision status has to be recalculated. + + + + + Constant to set/get the maximum distance a shape can be from another before they are considered separated and the contact is discarded. + + + + + Constant to set/get the maximum distance a shape can penetrate another shape before it is considered a collision. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created . + + + + + Sets the collision margin for the shape. + Note: This is not used in Godot Physics. + + + + + Returns the type of shape (see constants). + + + + + Returns the shape data. + + + + + Returns the collision margin for the shape. + Note: This is not used in Godot Physics, so will always return 0. + + + + + Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with , or to a body with . + + + + + Marks a space as active. It will not have an effect, unless it is assigned to an area or body. + + + + + Returns whether the space is active. + + + + + Sets the value for a space parameter. A list of available parameters is on the constants. + + + + + Returns the value of a space parameter. + + + + + Returns the state of a space, a . This object can be used to make collision/intersection queries. + + + + + Creates a 3D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Assigns a space to the area. + + + + + Returns the space assigned to the area. + + + + + Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given area shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for an area shape. + + + + + Returns the number of shapes assigned to an area. + + + + + Returns the of the nth shape of an area. + + + + + Returns the transform matrix of a shape within an area. + + + + + Removes a shape from an area. It does not delete the shape, so it can be reassigned later. + + + + + Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later. + + + + + Assigns the area to one or many physics layers. + + + + + Returns the physics layer or layers an area belongs to. + + + + + Sets which physics layers the area will monitor. + + + + + Returns the physics layer or layers an area can contact with. + + + + + Sets the value for an area parameter. A list of available parameters is on the constants. + + + + + Sets the transform matrix for an area. + + + + + Returns an area parameter value. A list of available parameters is on the constants. + + + + + Returns the transform matrix for an area. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets object pickable with rays. + + + + + Creates a 3D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Assigns a space to the body (see ). + + + + + Returns the of the space assigned to a body. + + + + + Sets the body mode, from one of the constants. + + + + + Returns the body mode. + + + + + Sets the physics layer or layers a body belongs to. + + + + + Returns the physics layer or layers a body belongs to. + + + + + Sets the physics layer or layers a body can collide with. + + + + + Returns the physics layer or layers a body can collide with. + + + + + Sets the body's collision priority. + + + + + Returns the body's collision priority. + + + + + Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given body shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for a body shape. + + + + + Returns the number of shapes assigned to a body. + + + + + Returns the of the nth shape of a body. + + + + + Returns the transform matrix of a body shape. + + + + + Removes a shape from a body. The shape is not deleted, so it can be reused afterwards. + + + + + Removes all shapes from a body. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + If , the continuous collision detection mode is enabled. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + If , the continuous collision detection mode is enabled. + + + + + Sets a body parameter. A list of available parameters is on the constants. + + + + + Returns the value of a body parameter. A list of available parameters is on the constants. + + + + + Restores the default inertia and center of mass based on shapes to cancel any custom values previously set using . + + + + + Sets a body state (see constants). + + + + + Returns a body state. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with body_set_constant_torque(body, Vector3(0, 0, 0)). + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Adds a body to the list of bodies exempt from collisions. + + + + + Removes a body from the list of bodies exempt from collisions. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies. This is enabled by setting the maximum number of contacts reported to a number greater than 0. + + + + + Returns the maximum contacts that can be reported. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a , used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Sets the body pickable with rays if is set. + + + + + Returns if a collision would result from moving along a motion vector from a given point in space. is passed to set motion parameters. can be passed to return additional information. + + + + + Returns the of the body. Returns if the body is destroyed or removed from the physics space. + + + + + Creates a new soft body and returns its internal . + + + + + Requests that the physics server updates the rendering server with the latest positions of the given soft body's points through the interface. + + + + + Assigns a space to the given soft body (see ). + + + + + Returns the of the space assigned to the given soft body. + + + + + Sets the mesh of the given soft body. + + + + + Returns the bounds of the given soft body in global coordinates. + + + + + Sets the physics layer or layers the given soft body belongs to. + + + + + Returns the physics layer or layers that the given soft body belongs to. + + + + + Sets the physics layer or layers the given soft body can collide with. + + + + + Returns the physics layer or layers that the given soft body can collide with. + + + + + Adds the given body to the list of bodies exempt from collisions. + + + + + Removes the given body from the list of bodies exempt from collisions. + + + + + Sets the given body state for the given body (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Returns the given soft body state (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Sets the global transform of the given soft body. + + + + + Sets whether the given soft body will be pickable when using object picking. + + + + + Sets the simulation precision of the given soft body. Increasing this value will improve the resulting simulation, but can affect performance. Use with care. + + + + + Returns the simulation precision of the given soft body. + + + + + Sets the total mass for the given soft body. + + + + + Returns the total mass assigned to the given soft body. + + + + + Sets the linear stiffness of the given soft body. Higher values will result in a stiffer body, while lower values will increase the body's ability to bend. The value can be between 0.0 and 1.0 (inclusive). + + + + + Returns the linear stiffness of the given soft body. + + + + + Sets the pressure coefficient of the given soft body. Simulates pressure build-up from inside this body. Higher values increase the strength of this effect. + + + + + Returns the pressure coefficient of the given soft body. + + + + + Sets the damping coefficient of the given soft body. Higher values will slow down the body more noticeably when forces are applied. + + + + + Returns the damping coefficient of the given soft body. + + + + + Sets the drag coefficient of the given soft body. Higher values increase this body's air resistance. + Note: This value is currently unused by Godot's default physics implementation. + + + + + Returns the drag coefficient of the given soft body. + + + + + Moves the given soft body point to a position in global coordinates. + + + + + Returns the current position of the given soft body point in global coordinates. + + + + + Unpins all points of the given soft body. + + + + + Pins or unpins the given soft body point based on the value of . + Note: Pinning a point effectively makes it kinematic, preventing it from being affected by forces, but you can still move it using . + + + + + Returns whether the given soft body point is pinned. + + + + + Sets a pin_joint parameter (see constants). + + + + + Gets a pin_joint parameter (see constants). + + + + + Sets position of the joint in the local space of body a of the joint. + + + + + Returns position of the joint in the local space of body a of the joint. + + + + + Sets position of the joint in the local space of body b of the joint. + + + + + Returns position of the joint in the local space of body b of the joint. + + + + + Sets a hinge_joint parameter (see constants). + + + + + Gets a hinge_joint parameter (see ). + + + + + Sets a hinge_joint flag (see constants). + + + + + Gets a hinge_joint flag (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Sets a cone_twist_joint parameter (see constants). + + + + + Gets a cone_twist_joint parameter (see constants). + + + + + Returns the type of the Joint3D. + + + + + Sets the priority value of the Joint3D. + + + + + Gets the priority value of the Joint3D. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Make the joint a generic six degrees of freedom (6DOF) joint. Use and to set the joint's flags and parameters respectively. + + + + + Sets the value of a given generic 6DOF joint parameter. See for the list of available parameters. + + + + + Returns the value of a generic 6DOF joint parameter. See for the list of available parameters. + + + + + Sets the value of a given generic 6DOF joint flag. See for the list of available flags. + + + + + Returns the value of a generic 6DOF joint flag. See for the list of available flags. + + + + + Destroys any of the objects created by PhysicsServer3D. If the passed is not one of the objects that can be created by PhysicsServer3D, an error will be sent to the console. + + + + + Activates or deactivates the 3D physics engine. + + + + + Returns information about the current state of the 3D physics engine. See for a list of available states. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'sphere_shape_create' method. + + + + + Cached name for the 'box_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'cylinder_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'heightmap_shape_create' method. + + + + + Cached name for the 'custom_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_set_margin' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'shape_get_margin' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'area_set_ray_pickable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_set_enable_continuous_collision_detection' method. + + + + + Cached name for the 'body_is_continuous_collision_detection_enabled' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_set_axis_lock' method. + + + + + Cached name for the 'body_is_axis_locked' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_set_ray_pickable' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'soft_body_create' method. + + + + + Cached name for the 'soft_body_update_rendering_server' method. + + + + + Cached name for the 'soft_body_set_space' method. + + + + + Cached name for the 'soft_body_get_space' method. + + + + + Cached name for the 'soft_body_set_mesh' method. + + + + + Cached name for the 'soft_body_get_bounds' method. + + + + + Cached name for the 'soft_body_set_collision_layer' method. + + + + + Cached name for the 'soft_body_get_collision_layer' method. + + + + + Cached name for the 'soft_body_set_collision_mask' method. + + + + + Cached name for the 'soft_body_get_collision_mask' method. + + + + + Cached name for the 'soft_body_add_collision_exception' method. + + + + + Cached name for the 'soft_body_remove_collision_exception' method. + + + + + Cached name for the 'soft_body_set_state' method. + + + + + Cached name for the 'soft_body_get_state' method. + + + + + Cached name for the 'soft_body_set_transform' method. + + + + + Cached name for the 'soft_body_set_ray_pickable' method. + + + + + Cached name for the 'soft_body_set_simulation_precision' method. + + + + + Cached name for the 'soft_body_get_simulation_precision' method. + + + + + Cached name for the 'soft_body_set_total_mass' method. + + + + + Cached name for the 'soft_body_get_total_mass' method. + + + + + Cached name for the 'soft_body_set_linear_stiffness' method. + + + + + Cached name for the 'soft_body_get_linear_stiffness' method. + + + + + Cached name for the 'soft_body_set_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_get_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_set_damping_coefficient' method. + + + + + Cached name for the 'soft_body_get_damping_coefficient' method. + + + + + Cached name for the 'soft_body_set_drag_coefficient' method. + + + + + Cached name for the 'soft_body_get_drag_coefficient' method. + + + + + Cached name for the 'soft_body_move_point' method. + + + + + Cached name for the 'soft_body_get_point_global_position' method. + + + + + Cached name for the 'soft_body_remove_all_pinned_points' method. + + + + + Cached name for the 'soft_body_pin_point' method. + + + + + Cached name for the 'soft_body_is_point_pinned' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'pin_joint_set_local_a' method. + + + + + Cached name for the 'pin_joint_get_local_a' method. + + + + + Cached name for the 'pin_joint_set_local_b' method. + + + + + Cached name for the 'pin_joint_get_local_b' method. + + + + + Cached name for the 'joint_make_hinge' method. + + + + + Cached name for the 'hinge_joint_set_param' method. + + + + + Cached name for the 'hinge_joint_get_param' method. + + + + + Cached name for the 'hinge_joint_set_flag' method. + + + + + Cached name for the 'hinge_joint_get_flag' method. + + + + + Cached name for the 'joint_make_slider' method. + + + + + Cached name for the 'slider_joint_set_param' method. + + + + + Cached name for the 'slider_joint_get_param' method. + + + + + Cached name for the 'joint_make_cone_twist' method. + + + + + Cached name for the 'cone_twist_joint_set_param' method. + + + + + Cached name for the 'cone_twist_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'joint_set_solver_priority' method. + + + + + Cached name for the 'joint_get_solver_priority' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_generic_6dof' method. + + + + + Cached name for the 'generic_6dof_joint_set_param' method. + + + + + Cached name for the 'generic_6dof_joint_get_param' method. + + + + + Cached name for the 'generic_6dof_joint_set_flag' method. + + + + + Cached name for the 'generic_6dof_joint_get_flag' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + PhysicsServer3D is the server responsible for all 3D physics. It can directly create and manipulate all physics objects: + - A space is a self-contained world for a physics simulation. It contains bodies, areas, and joints. Its state can be queried for collision and intersection information, and several parameters of the simulation can be modified. + - A shape is a geometric shape such as a sphere, a box, a cylinder, or a polygon. It can be used for collision detection by adding it to a body/area, possibly with an extra transformation relative to the body/area's origin. Bodies/areas can have multiple (transformed) shapes added to them, and a single shape can be added to bodies/areas multiple times with different local transformations. + - A body is a physical object which can be in static, kinematic, or rigid mode. Its state (such as position and velocity) can be queried and updated. A force integration callback can be set to customize the body's physics. + - An area is a region in space which can be used to detect bodies and areas entering and exiting it. A body monitoring callback can be set to report entering/exiting body shapes, and similarly an area monitoring callback can be set. Gravity and damping can be overridden within the area by setting area parameters. + - A joint is a constraint, either between two bodies or on one body relative to a point. Parameters such as the joint bias and the rest length of a spring joint can be adjusted. + Physics objects in may be created and manipulated independently; they do not have to be tied to nodes in the scene tree. + Note: All the 3D physics nodes use the physics server internally. Adding a physics node to the scene tree will cause a corresponding physics object to be created in the physics server. A rigid body node registers a callback that updates the node's transform with the transform of the respective body object in the physics server (every physics update). An area node registers a callback to inform the area node about overlaps with the respective area object in the physics server. The raycast node queries the direct state of the relevant space in the physics server. + + + + + Sets the shape data that defines its shape and size. The data to be passed depends on the kind of shape created . + + + + + Sets the collision margin for the shape. + Note: This is not used in Godot Physics. + + + + + Returns the type of shape (see constants). + + + + + Returns the shape data. + + + + + Returns the collision margin for the shape. + Note: This is not used in Godot Physics, so will always return 0. + + + + + Creates a space. A space is a collection of parameters for the physics engine that can be assigned to an area or a body. It can be assigned to an area with , or to a body with . + + + + + Marks a space as active. It will not have an effect, unless it is assigned to an area or body. + + + + + Returns whether the space is active. + + + + + Sets the value for a space parameter. A list of available parameters is on the constants. + + + + + Returns the value of a space parameter. + + + + + Returns the state of a space, a . This object can be used to make collision/intersection queries. + + + + + Creates a 3D area object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and monitorable set to . + Use to add shapes to it, use to set its transform, and use to add the area to a space. If you want the area to be detectable use . + + + + + Assigns a space to the area. + + + + + Returns the space assigned to the area. + + + + + Adds a shape to the area, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given area shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for an area shape. + + + + + Returns the number of shapes assigned to an area. + + + + + Returns the of the nth shape of an area. + + + + + Returns the transform matrix of a shape within an area. + + + + + Removes a shape from an area. It does not delete the shape, so it can be reassigned later. + + + + + Removes all shapes from an area. It does not delete the shapes, so they can be reassigned later. + + + + + Assigns the area to one or many physics layers. + + + + + Returns the physics layer or layers an area belongs to. + + + + + Sets which physics layers the area will monitor. + + + + + Returns the physics layer or layers an area can contact with. + + + + + Sets the value for an area parameter. A list of available parameters is on the constants. + + + + + Sets the transform matrix for an area. + + + + + Returns an area parameter value. A list of available parameters is on the constants. + + + + + Returns the transform matrix for an area. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + Sets the area's body monitor callback. This callback will be called when any other (shape of a) body enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other body shape entered or exited the area, + 2. an body_rid: the of the body that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the body, + 4. an integer body_shape_idx: the index of the shape of the body that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the body entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if a body (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets the area's area monitor callback. This callback will be called when any other (shape of an) area enters or exits (a shape of) the given area, and must take the following five parameters: + 1. an integer status: either or depending on whether the other area's shape entered or exited the area, + 2. an area_rid: the of the other area that entered or exited the area, + 3. an integer instance_id: the ObjectID attached to the other area, + 4. an integer area_shape_idx: the index of the shape of the other area that entered or exited the area, + 5. an integer self_shape_idx: the index of the shape of the area where the other area entered or exited. + By counting (or keeping track of) the shapes that enter and exit, it can be determined if an area (with all its shapes) is entering for the first time or exiting for the last time. + + + + + Sets object pickable with rays. + + + + + Creates a 3D body object in the physics server, and returns the that identifies it. The default settings for the created area include a collision layer and mask set to 1, and body mode set to . + Use to add shapes to it, use to set its transform, and use to add the body to a space. + + + + + Assigns a space to the body (see ). + + + + + Returns the of the space assigned to a body. + + + + + Sets the body mode, from one of the constants. + + + + + Returns the body mode. + + + + + Sets the physics layer or layers a body belongs to. + + + + + Returns the physics layer or layers a body belongs to. + + + + + Sets the physics layer or layers a body can collide with. + + + + + Returns the physics layer or layers a body can collide with. + + + + + Sets the body's collision priority. + + + + + Returns the body's collision priority. + + + + + Adds a shape to the body, along with a transform matrix. Shapes are usually referenced by their index, so you should track which shape has a given index. + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Substitutes a given body shape by another. The old shape is selected by its index, the new one by its . + + + + + Sets the transform matrix for a body shape. + + + + + Returns the number of shapes assigned to a body. + + + + + Returns the of the nth shape of a body. + + + + + Returns the transform matrix of a body shape. + + + + + Removes a shape from a body. The shape is not deleted, so it can be reused afterwards. + + + + + Removes all shapes from a body. + + + + + Assigns the area to a descendant of , so it can exist in the node tree. + + + + + Gets the instance ID of the object the area is assigned to. + + + + + If , the continuous collision detection mode is enabled. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + If , the continuous collision detection mode is enabled. + + + + + Sets a body parameter. A list of available parameters is on the constants. + + + + + Returns the value of a body parameter. A list of available parameters is on the constants. + + + + + Restores the default inertia and center of mass based on shapes to cancel any custom values previously set using . + + + + + Sets a body state (see constants). + + + + + Returns a body state. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with body_set_constant_force(body, Vector3(0, 0, 0)). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with body_set_constant_torque(body, Vector3(0, 0, 0)). + + + + + Sets the body's total constant positional forces applied during each physics update. + See and . + + + + + Returns the body's total constant positional forces applied during each physics update. + See and . + + + + + Sets the body's total constant rotational forces applied during each physics update. + See . + + + + + Returns the body's total constant rotational forces applied during each physics update. + See . + + + + + Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Adds a body to the list of bodies exempt from collisions. + + + + + Removes a body from the list of bodies exempt from collisions. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. + + + + + Sets the maximum contacts to report. Bodies can keep a log of the contacts with other bodies. This is enabled by setting the maximum number of contacts reported to a number greater than 0. + + + + + Returns the maximum contacts that can be reported. See . + + + + + Sets whether the body omits the standard force integration. If is , the body will not automatically use applied forces, torques, and damping to update the body's linear and angular velocity. In this case, can be used to manually update the linear and angular velocity instead. + This method is called when the property is set. + + + + + Returns if the body is omitting the standard force integration. See . + + + + + Sets the body's state synchronization callback function to . Use an empty (Callable()) to clear the callback. + The function will be called every physics frame, assuming that the body was active during the previous physics tick, and can be used to fetch the latest state from the physics server. + The function must take the following parameters: + 1. state: a , used to retrieve the body's state. + + + + + Sets the body's custom force integration callback function to . Use an empty (Callable()) to clear the custom callback. + The function will be called every physics tick, before the standard force integration (see ). It can be used for example to update the body's linear and angular velocity based on contact with other bodies. + If is not , the function must take the following two parameters: + 1. state: a , used to retrieve and modify the body's state, + 2. userdata: a ; its value will be the passed into this method. + If is , then must take only the state parameter. + + + + + Sets the body pickable with rays if is set. + + + + + Returns if a collision would result from moving along a motion vector from a given point in space. is passed to set motion parameters. can be passed to return additional information. + + + + + Returns the of the body. Returns if the body is destroyed or removed from the physics space. + + + + + Creates a new soft body and returns its internal . + + + + + Requests that the physics server updates the rendering server with the latest positions of the given soft body's points through the interface. + + + + + Assigns a space to the given soft body (see ). + + + + + Returns the of the space assigned to the given soft body. + + + + + Sets the mesh of the given soft body. + + + + + Returns the bounds of the given soft body in global coordinates. + + + + + Sets the physics layer or layers the given soft body belongs to. + + + + + Returns the physics layer or layers that the given soft body belongs to. + + + + + Sets the physics layer or layers the given soft body can collide with. + + + + + Returns the physics layer or layers that the given soft body can collide with. + + + + + Adds the given body to the list of bodies exempt from collisions. + + + + + Removes the given body from the list of bodies exempt from collisions. + + + + + Sets the given body state for the given body (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Returns the given soft body state (see constants). + Note: Godot's default physics implementation does not support , , , or . + + + + + Sets the global transform of the given soft body. + + + + + Sets whether the given soft body will be pickable when using object picking. + + + + + Sets the simulation precision of the given soft body. Increasing this value will improve the resulting simulation, but can affect performance. Use with care. + + + + + Returns the simulation precision of the given soft body. + + + + + Sets the total mass for the given soft body. + + + + + Returns the total mass assigned to the given soft body. + + + + + Sets the linear stiffness of the given soft body. Higher values will result in a stiffer body, while lower values will increase the body's ability to bend. The value can be between 0.0 and 1.0 (inclusive). + + + + + Returns the linear stiffness of the given soft body. + + + + + Sets the pressure coefficient of the given soft body. Simulates pressure build-up from inside this body. Higher values increase the strength of this effect. + + + + + Returns the pressure coefficient of the given soft body. + + + + + Sets the damping coefficient of the given soft body. Higher values will slow down the body more noticeably when forces are applied. + + + + + Returns the damping coefficient of the given soft body. + + + + + Sets the drag coefficient of the given soft body. Higher values increase this body's air resistance. + Note: This value is currently unused by Godot's default physics implementation. + + + + + Returns the drag coefficient of the given soft body. + + + + + Moves the given soft body point to a position in global coordinates. + + + + + Returns the current position of the given soft body point in global coordinates. + + + + + Unpins all points of the given soft body. + + + + + Pins or unpins the given soft body point based on the value of . + Note: Pinning a point effectively makes it kinematic, preventing it from being affected by forces, but you can still move it using . + + + + + Returns whether the given soft body point is pinned. + + + + + Sets a pin_joint parameter (see constants). + + + + + Gets a pin_joint parameter (see constants). + + + + + Sets position of the joint in the local space of body a of the joint. + + + + + Returns position of the joint in the local space of body a of the joint. + + + + + Sets position of the joint in the local space of body b of the joint. + + + + + Returns position of the joint in the local space of body b of the joint. + + + + + Sets a hinge_joint parameter (see constants). + + + + + Gets a hinge_joint parameter (see ). + + + + + Sets a hinge_joint flag (see constants). + + + + + Gets a hinge_joint flag (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Gets a slider_joint parameter (see constants). + + + + + Sets a cone_twist_joint parameter (see constants). + + + + + Gets a cone_twist_joint parameter (see constants). + + + + + Returns the type of the Joint3D. + + + + + Sets the priority value of the Joint3D. + + + + + Gets the priority value of the Joint3D. + + + + + Sets whether the bodies attached to the will collide with each other. + + + + + Returns whether the bodies attached to the will collide with each other. + + + + + Make the joint a generic six degrees of freedom (6DOF) joint. Use and to set the joint's flags and parameters respectively. + + + + + Sets the value of a given generic 6DOF joint parameter. See for the list of available parameters. + + + + + Returns the value of a generic 6DOF joint parameter. See for the list of available parameters. + + + + + Sets the value of a given generic 6DOF joint flag. See for the list of available flags. + + + + + Returns the value of a generic 6DOF joint flag. See for the list of available flags. + + + + + Destroys any of the objects created by PhysicsServer3D. If the passed is not one of the objects that can be created by PhysicsServer3D, an error will be sent to the console. + + + + + Activates or deactivates the 3D physics engine. + + + + + Returns information about the current state of the 3D physics engine. See for a list of available states. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'world_boundary_shape_create' method. + + + + + Cached name for the 'separation_ray_shape_create' method. + + + + + Cached name for the 'sphere_shape_create' method. + + + + + Cached name for the 'box_shape_create' method. + + + + + Cached name for the 'capsule_shape_create' method. + + + + + Cached name for the 'cylinder_shape_create' method. + + + + + Cached name for the 'convex_polygon_shape_create' method. + + + + + Cached name for the 'concave_polygon_shape_create' method. + + + + + Cached name for the 'heightmap_shape_create' method. + + + + + Cached name for the 'custom_shape_create' method. + + + + + Cached name for the 'shape_set_data' method. + + + + + Cached name for the 'shape_set_margin' method. + + + + + Cached name for the 'shape_get_type' method. + + + + + Cached name for the 'shape_get_data' method. + + + + + Cached name for the 'shape_get_margin' method. + + + + + Cached name for the 'space_create' method. + + + + + Cached name for the 'space_set_active' method. + + + + + Cached name for the 'space_is_active' method. + + + + + Cached name for the 'space_set_param' method. + + + + + Cached name for the 'space_get_param' method. + + + + + Cached name for the 'space_get_direct_state' method. + + + + + Cached name for the 'area_create' method. + + + + + Cached name for the 'area_set_space' method. + + + + + Cached name for the 'area_get_space' method. + + + + + Cached name for the 'area_add_shape' method. + + + + + Cached name for the 'area_set_shape' method. + + + + + Cached name for the 'area_set_shape_transform' method. + + + + + Cached name for the 'area_set_shape_disabled' method. + + + + + Cached name for the 'area_get_shape_count' method. + + + + + Cached name for the 'area_get_shape' method. + + + + + Cached name for the 'area_get_shape_transform' method. + + + + + Cached name for the 'area_remove_shape' method. + + + + + Cached name for the 'area_clear_shapes' method. + + + + + Cached name for the 'area_set_collision_layer' method. + + + + + Cached name for the 'area_get_collision_layer' method. + + + + + Cached name for the 'area_set_collision_mask' method. + + + + + Cached name for the 'area_get_collision_mask' method. + + + + + Cached name for the 'area_set_param' method. + + + + + Cached name for the 'area_set_transform' method. + + + + + Cached name for the 'area_get_param' method. + + + + + Cached name for the 'area_get_transform' method. + + + + + Cached name for the 'area_attach_object_instance_id' method. + + + + + Cached name for the 'area_get_object_instance_id' method. + + + + + Cached name for the 'area_set_monitor_callback' method. + + + + + Cached name for the 'area_set_area_monitor_callback' method. + + + + + Cached name for the 'area_set_monitorable' method. + + + + + Cached name for the 'area_set_ray_pickable' method. + + + + + Cached name for the 'body_create' method. + + + + + Cached name for the 'body_set_space' method. + + + + + Cached name for the 'body_get_space' method. + + + + + Cached name for the 'body_set_mode' method. + + + + + Cached name for the 'body_get_mode' method. + + + + + Cached name for the 'body_set_collision_layer' method. + + + + + Cached name for the 'body_get_collision_layer' method. + + + + + Cached name for the 'body_set_collision_mask' method. + + + + + Cached name for the 'body_get_collision_mask' method. + + + + + Cached name for the 'body_set_collision_priority' method. + + + + + Cached name for the 'body_get_collision_priority' method. + + + + + Cached name for the 'body_add_shape' method. + + + + + Cached name for the 'body_set_shape' method. + + + + + Cached name for the 'body_set_shape_transform' method. + + + + + Cached name for the 'body_set_shape_disabled' method. + + + + + Cached name for the 'body_get_shape_count' method. + + + + + Cached name for the 'body_get_shape' method. + + + + + Cached name for the 'body_get_shape_transform' method. + + + + + Cached name for the 'body_remove_shape' method. + + + + + Cached name for the 'body_clear_shapes' method. + + + + + Cached name for the 'body_attach_object_instance_id' method. + + + + + Cached name for the 'body_get_object_instance_id' method. + + + + + Cached name for the 'body_set_enable_continuous_collision_detection' method. + + + + + Cached name for the 'body_is_continuous_collision_detection_enabled' method. + + + + + Cached name for the 'body_set_param' method. + + + + + Cached name for the 'body_get_param' method. + + + + + Cached name for the 'body_reset_mass_properties' method. + + + + + Cached name for the 'body_set_state' method. + + + + + Cached name for the 'body_get_state' method. + + + + + Cached name for the 'body_apply_central_impulse' method. + + + + + Cached name for the 'body_apply_impulse' method. + + + + + Cached name for the 'body_apply_torque_impulse' method. + + + + + Cached name for the 'body_apply_central_force' method. + + + + + Cached name for the 'body_apply_force' method. + + + + + Cached name for the 'body_apply_torque' method. + + + + + Cached name for the 'body_add_constant_central_force' method. + + + + + Cached name for the 'body_add_constant_force' method. + + + + + Cached name for the 'body_add_constant_torque' method. + + + + + Cached name for the 'body_set_constant_force' method. + + + + + Cached name for the 'body_get_constant_force' method. + + + + + Cached name for the 'body_set_constant_torque' method. + + + + + Cached name for the 'body_get_constant_torque' method. + + + + + Cached name for the 'body_set_axis_velocity' method. + + + + + Cached name for the 'body_set_axis_lock' method. + + + + + Cached name for the 'body_is_axis_locked' method. + + + + + Cached name for the 'body_add_collision_exception' method. + + + + + Cached name for the 'body_remove_collision_exception' method. + + + + + Cached name for the 'body_set_max_contacts_reported' method. + + + + + Cached name for the 'body_get_max_contacts_reported' method. + + + + + Cached name for the 'body_set_omit_force_integration' method. + + + + + Cached name for the 'body_is_omitting_force_integration' method. + + + + + Cached name for the 'body_set_state_sync_callback' method. + + + + + Cached name for the 'body_set_force_integration_callback' method. + + + + + Cached name for the 'body_set_ray_pickable' method. + + + + + Cached name for the 'body_test_motion' method. + + + + + Cached name for the 'body_get_direct_state' method. + + + + + Cached name for the 'soft_body_create' method. + + + + + Cached name for the 'soft_body_update_rendering_server' method. + + + + + Cached name for the 'soft_body_set_space' method. + + + + + Cached name for the 'soft_body_get_space' method. + + + + + Cached name for the 'soft_body_set_mesh' method. + + + + + Cached name for the 'soft_body_get_bounds' method. + + + + + Cached name for the 'soft_body_set_collision_layer' method. + + + + + Cached name for the 'soft_body_get_collision_layer' method. + + + + + Cached name for the 'soft_body_set_collision_mask' method. + + + + + Cached name for the 'soft_body_get_collision_mask' method. + + + + + Cached name for the 'soft_body_add_collision_exception' method. + + + + + Cached name for the 'soft_body_remove_collision_exception' method. + + + + + Cached name for the 'soft_body_set_state' method. + + + + + Cached name for the 'soft_body_get_state' method. + + + + + Cached name for the 'soft_body_set_transform' method. + + + + + Cached name for the 'soft_body_set_ray_pickable' method. + + + + + Cached name for the 'soft_body_set_simulation_precision' method. + + + + + Cached name for the 'soft_body_get_simulation_precision' method. + + + + + Cached name for the 'soft_body_set_total_mass' method. + + + + + Cached name for the 'soft_body_get_total_mass' method. + + + + + Cached name for the 'soft_body_set_linear_stiffness' method. + + + + + Cached name for the 'soft_body_get_linear_stiffness' method. + + + + + Cached name for the 'soft_body_set_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_get_pressure_coefficient' method. + + + + + Cached name for the 'soft_body_set_damping_coefficient' method. + + + + + Cached name for the 'soft_body_get_damping_coefficient' method. + + + + + Cached name for the 'soft_body_set_drag_coefficient' method. + + + + + Cached name for the 'soft_body_get_drag_coefficient' method. + + + + + Cached name for the 'soft_body_move_point' method. + + + + + Cached name for the 'soft_body_get_point_global_position' method. + + + + + Cached name for the 'soft_body_remove_all_pinned_points' method. + + + + + Cached name for the 'soft_body_pin_point' method. + + + + + Cached name for the 'soft_body_is_point_pinned' method. + + + + + Cached name for the 'joint_create' method. + + + + + Cached name for the 'joint_clear' method. + + + + + Cached name for the 'joint_make_pin' method. + + + + + Cached name for the 'pin_joint_set_param' method. + + + + + Cached name for the 'pin_joint_get_param' method. + + + + + Cached name for the 'pin_joint_set_local_a' method. + + + + + Cached name for the 'pin_joint_get_local_a' method. + + + + + Cached name for the 'pin_joint_set_local_b' method. + + + + + Cached name for the 'pin_joint_get_local_b' method. + + + + + Cached name for the 'joint_make_hinge' method. + + + + + Cached name for the 'hinge_joint_set_param' method. + + + + + Cached name for the 'hinge_joint_get_param' method. + + + + + Cached name for the 'hinge_joint_set_flag' method. + + + + + Cached name for the 'hinge_joint_get_flag' method. + + + + + Cached name for the 'joint_make_slider' method. + + + + + Cached name for the 'slider_joint_set_param' method. + + + + + Cached name for the 'slider_joint_get_param' method. + + + + + Cached name for the 'joint_make_cone_twist' method. + + + + + Cached name for the 'cone_twist_joint_set_param' method. + + + + + Cached name for the 'cone_twist_joint_get_param' method. + + + + + Cached name for the 'joint_get_type' method. + + + + + Cached name for the 'joint_set_solver_priority' method. + + + + + Cached name for the 'joint_get_solver_priority' method. + + + + + Cached name for the 'joint_disable_collisions_between_bodies' method. + + + + + Cached name for the 'joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the 'joint_make_generic_6dof' method. + + + + + Cached name for the 'generic_6dof_joint_set_param' method. + + + + + Cached name for the 'generic_6dof_joint_get_param' method. + + + + + Cached name for the 'generic_6dof_joint_set_flag' method. + + + + + Cached name for the 'generic_6dof_joint_get_flag' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'get_process_info' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class extends 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_area_add_shape' method. + + + + + Cached name for the '_area_attach_object_instance_id' method. + + + + + Cached name for the '_area_clear_shapes' method. + + + + + Cached name for the '_area_create' method. + + + + + Cached name for the '_area_get_collision_layer' method. + + + + + Cached name for the '_area_get_collision_mask' method. + + + + + Cached name for the '_area_get_object_instance_id' method. + + + + + Cached name for the '_area_get_param' method. + + + + + Cached name for the '_area_get_shape' method. + + + + + Cached name for the '_area_get_shape_count' method. + + + + + Cached name for the '_area_get_shape_transform' method. + + + + + Cached name for the '_area_get_space' method. + + + + + Cached name for the '_area_get_transform' method. + + + + + Cached name for the '_area_remove_shape' method. + + + + + Cached name for the '_area_set_area_monitor_callback' method. + + + + + Cached name for the '_area_set_collision_layer' method. + + + + + Cached name for the '_area_set_collision_mask' method. + + + + + Cached name for the '_area_set_monitor_callback' method. + + + + + Cached name for the '_area_set_monitorable' method. + + + + + Cached name for the '_area_set_param' method. + + + + + Cached name for the '_area_set_ray_pickable' method. + + + + + Cached name for the '_area_set_shape' method. + + + + + Cached name for the '_area_set_shape_disabled' method. + + + + + Cached name for the '_area_set_shape_transform' method. + + + + + Cached name for the '_area_set_space' method. + + + + + Cached name for the '_area_set_transform' method. + + + + + Cached name for the '_body_add_collision_exception' method. + + + + + Cached name for the '_body_add_constant_central_force' method. + + + + + Cached name for the '_body_add_constant_force' method. + + + + + Cached name for the '_body_add_constant_torque' method. + + + + + Cached name for the '_body_add_shape' method. + + + + + Cached name for the '_body_apply_central_force' method. + + + + + Cached name for the '_body_apply_central_impulse' method. + + + + + Cached name for the '_body_apply_force' method. + + + + + Cached name for the '_body_apply_impulse' method. + + + + + Cached name for the '_body_apply_torque' method. + + + + + Cached name for the '_body_apply_torque_impulse' method. + + + + + Cached name for the '_body_attach_object_instance_id' method. + + + + + Cached name for the '_body_clear_shapes' method. + + + + + Cached name for the '_body_create' method. + + + + + Cached name for the '_body_get_collision_exceptions' method. + + + + + Cached name for the '_body_get_collision_layer' method. + + + + + Cached name for the '_body_get_collision_mask' method. + + + + + Cached name for the '_body_get_collision_priority' method. + + + + + Cached name for the '_body_get_constant_force' method. + + + + + Cached name for the '_body_get_constant_torque' method. + + + + + Cached name for the '_body_get_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_get_direct_state' method. + + + + + Cached name for the '_body_get_max_contacts_reported' method. + + + + + Cached name for the '_body_get_mode' method. + + + + + Cached name for the '_body_get_object_instance_id' method. + + + + + Cached name for the '_body_get_param' method. + + + + + Cached name for the '_body_get_shape' method. + + + + + Cached name for the '_body_get_shape_count' method. + + + + + Cached name for the '_body_get_shape_transform' method. + + + + + Cached name for the '_body_get_space' method. + + + + + Cached name for the '_body_get_state' method. + + + + + Cached name for the '_body_get_user_flags' method. + + + + + Cached name for the '_body_is_axis_locked' method. + + + + + Cached name for the '_body_is_continuous_collision_detection_enabled' method. + + + + + Cached name for the '_body_is_omitting_force_integration' method. + + + + + Cached name for the '_body_remove_collision_exception' method. + + + + + Cached name for the '_body_remove_shape' method. + + + + + Cached name for the '_body_reset_mass_properties' method. + + + + + Cached name for the '_body_set_axis_lock' method. + + + + + Cached name for the '_body_set_axis_velocity' method. + + + + + Cached name for the '_body_set_collision_layer' method. + + + + + Cached name for the '_body_set_collision_mask' method. + + + + + Cached name for the '_body_set_collision_priority' method. + + + + + Cached name for the '_body_set_constant_force' method. + + + + + Cached name for the '_body_set_constant_torque' method. + + + + + Cached name for the '_body_set_contacts_reported_depth_threshold' method. + + + + + Cached name for the '_body_set_enable_continuous_collision_detection' method. + + + + + Cached name for the '_body_set_force_integration_callback' method. + + + + + Cached name for the '_body_set_max_contacts_reported' method. + + + + + Cached name for the '_body_set_mode' method. + + + + + Cached name for the '_body_set_omit_force_integration' method. + + + + + Cached name for the '_body_set_param' method. + + + + + Cached name for the '_body_set_ray_pickable' method. + + + + + Cached name for the '_body_set_shape' method. + + + + + Cached name for the '_body_set_shape_disabled' method. + + + + + Cached name for the '_body_set_shape_transform' method. + + + + + Cached name for the '_body_set_space' method. + + + + + Cached name for the '_body_set_state' method. + + + + + Cached name for the '_body_set_state_sync_callback' method. + + + + + Cached name for the '_body_set_user_flags' method. + + + + + Cached name for the '_box_shape_create' method. + + + + + Cached name for the '_capsule_shape_create' method. + + + + + Cached name for the '_concave_polygon_shape_create' method. + + + + + Cached name for the '_cone_twist_joint_get_param' method. + + + + + Cached name for the '_cone_twist_joint_set_param' method. + + + + + Cached name for the '_convex_polygon_shape_create' method. + + + + + Cached name for the '_custom_shape_create' method. + + + + + Cached name for the '_cylinder_shape_create' method. + + + + + Cached name for the '_end_sync' method. + + + + + Cached name for the '_finish' method. + + + + + Cached name for the '_flush_queries' method. + + + + + Cached name for the '_free_rid' method. + + + + + Cached name for the '_generic_6dof_joint_get_flag' method. + + + + + Cached name for the '_generic_6dof_joint_get_param' method. + + + + + Cached name for the '_generic_6dof_joint_set_flag' method. + + + + + Cached name for the '_generic_6dof_joint_set_param' method. + + + + + Cached name for the '_get_process_info' method. + + + + + Cached name for the '_heightmap_shape_create' method. + + + + + Cached name for the '_hinge_joint_get_flag' method. + + + + + Cached name for the '_hinge_joint_get_param' method. + + + + + Cached name for the '_hinge_joint_set_flag' method. + + + + + Cached name for the '_hinge_joint_set_param' method. + + + + + Cached name for the '_init' method. + + + + + Cached name for the '_is_flushing_queries' method. + + + + + Cached name for the '_joint_clear' method. + + + + + Cached name for the '_joint_create' method. + + + + + Cached name for the '_joint_disable_collisions_between_bodies' method. + + + + + Cached name for the '_joint_get_solver_priority' method. + + + + + Cached name for the '_joint_get_type' method. + + + + + Cached name for the '_joint_is_disabled_collisions_between_bodies' method. + + + + + Cached name for the '_joint_make_cone_twist' method. + + + + + Cached name for the '_joint_make_generic_6dof' method. + + + + + Cached name for the '_joint_make_hinge' method. + + + + + Cached name for the '_joint_make_hinge_simple' method. + + + + + Cached name for the '_joint_make_pin' method. + + + + + Cached name for the '_joint_make_slider' method. + + + + + Cached name for the '_joint_set_solver_priority' method. + + + + + Cached name for the '_pin_joint_get_local_a' method. + + + + + Cached name for the '_pin_joint_get_local_b' method. + + + + + Cached name for the '_pin_joint_get_param' method. + + + + + Cached name for the '_pin_joint_set_local_a' method. + + + + + Cached name for the '_pin_joint_set_local_b' method. + + + + + Cached name for the '_pin_joint_set_param' method. + + + + + Cached name for the '_separation_ray_shape_create' method. + + + + + Cached name for the '_set_active' method. + + + + + Cached name for the '_shape_get_custom_solver_bias' method. + + + + + Cached name for the '_shape_get_data' method. + + + + + Cached name for the '_shape_get_margin' method. + + + + + Cached name for the '_shape_get_type' method. + + + + + Cached name for the '_shape_set_custom_solver_bias' method. + + + + + Cached name for the '_shape_set_data' method. + + + + + Cached name for the '_shape_set_margin' method. + + + + + Cached name for the '_slider_joint_get_param' method. + + + + + Cached name for the '_slider_joint_set_param' method. + + + + + Cached name for the '_soft_body_add_collision_exception' method. + + + + + Cached name for the '_soft_body_create' method. + + + + + Cached name for the '_soft_body_get_bounds' method. + + + + + Cached name for the '_soft_body_get_collision_exceptions' method. + + + + + Cached name for the '_soft_body_get_collision_layer' method. + + + + + Cached name for the '_soft_body_get_collision_mask' method. + + + + + Cached name for the '_soft_body_get_damping_coefficient' method. + + + + + Cached name for the '_soft_body_get_drag_coefficient' method. + + + + + Cached name for the '_soft_body_get_linear_stiffness' method. + + + + + Cached name for the '_soft_body_get_point_global_position' method. + + + + + Cached name for the '_soft_body_get_pressure_coefficient' method. + + + + + Cached name for the '_soft_body_get_simulation_precision' method. + + + + + Cached name for the '_soft_body_get_space' method. + + + + + Cached name for the '_soft_body_get_state' method. + + + + + Cached name for the '_soft_body_get_total_mass' method. + + + + + Cached name for the '_soft_body_is_point_pinned' method. + + + + + Cached name for the '_soft_body_move_point' method. + + + + + Cached name for the '_soft_body_pin_point' method. + + + + + Cached name for the '_soft_body_remove_all_pinned_points' method. + + + + + Cached name for the '_soft_body_remove_collision_exception' method. + + + + + Cached name for the '_soft_body_set_collision_layer' method. + + + + + Cached name for the '_soft_body_set_collision_mask' method. + + + + + Cached name for the '_soft_body_set_damping_coefficient' method. + + + + + Cached name for the '_soft_body_set_drag_coefficient' method. + + + + + Cached name for the '_soft_body_set_linear_stiffness' method. + + + + + Cached name for the '_soft_body_set_mesh' method. + + + + + Cached name for the '_soft_body_set_pressure_coefficient' method. + + + + + Cached name for the '_soft_body_set_ray_pickable' method. + + + + + Cached name for the '_soft_body_set_simulation_precision' method. + + + + + Cached name for the '_soft_body_set_space' method. + + + + + Cached name for the '_soft_body_set_state' method. + + + + + Cached name for the '_soft_body_set_total_mass' method. + + + + + Cached name for the '_soft_body_set_transform' method. + + + + + Cached name for the '_soft_body_update_rendering_server' method. + + + + + Cached name for the '_space_create' method. + + + + + Cached name for the '_space_get_contact_count' method. + + + + + Cached name for the '_space_get_contacts' method. + + + + + Cached name for the '_space_get_direct_state' method. + + + + + Cached name for the '_space_get_param' method. + + + + + Cached name for the '_space_is_active' method. + + + + + Cached name for the '_space_set_active' method. + + + + + Cached name for the '_space_set_debug_contacts' method. + + + + + Cached name for the '_space_set_param' method. + + + + + Cached name for the '_sphere_shape_create' method. + + + + + Cached name for the '_step' method. + + + + + Cached name for the '_sync' method. + + + + + Cached name for the '_world_boundary_shape_create' method. + + + + + Cached name for the 'body_test_motion_is_excluding_body' method. + + + + + Cached name for the 'body_test_motion_is_excluding_object' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API for registering implementations and for setting the default implementation. + Note: It is not possible to switch physics servers at runtime. This class is only used on startup at the server initialization level, by Godot itself and possibly by GDExtensions. + + + + + Register a implementation by passing a and a that returns a object. + + + + + Set the default implementation to the one identified by , if is greater than the priority of the current default implementation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'register_server' method. + + + + + Cached name for the 'set_default_server' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Called by the to set the bounding box for the . + + + + + Called by the to set the normal for the vertex at the index specified by . + Note: The parameter used to be of type const void* prior to Godot 4.2. + + + + + Called by the to set the position for the vertex at the index specified by . + Note: The parameter used to be of type const void* prior to Godot 4.2. + + + + + Sets the position for the vertex at the index specified by . + + + + + Sets the normal for the vertex at the index specified by . + + + + + Sets the bounding box for the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_aabb' method. + + + + + Cached name for the '_set_normal' method. + + + + + Cached name for the '_set_vertex' method. + + + + + Cached name for the 'set_vertex' method. + + + + + Cached name for the 'set_normal' method. + + + + + Cached name for the 'set_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the shape, you can configure the parameters for . + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + The collision margin for the shape. + + + + + The motion of the shape being queried for. + + + + + The that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over . + + + + + The queried shape's that will be used for collision/intersection queries. Use this over if you want to optimize for performance using the Servers API: + + RID shapeRid = PhysicsServer2D.CircleShapeCreate(); + int radius = 64; + PhysicsServer2D.ShapeSetData(shapeRid, radius); + + var params = new PhysicsShapeQueryParameters2D(); + params.ShapeRid = shapeRid; + + // Execute physics queries here... + + // Release the shape when done with physics queries. + PhysicsServer2D.FreeRid(shapeRid); + + + + + + The queried shape's transform matrix. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'shape_rid' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_shape_rid' method. + + + + + Cached name for the 'get_shape_rid' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the shape, you can configure the parameters for . + + + + + The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See Collision layers and masks in the documentation for more information. + + + + + The list of object s that will be excluded from collisions. Use to get the associated with a -derived node. + Note: The returned array is copied and any changes to it will not update the original property value. To update the value you need to modify the returned array, and then assign it to the property again. + + + + + The collision margin for the shape. + + + + + The motion of the shape being queried for. + + + + + The that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over . + + + + + The queried shape's that will be used for collision/intersection queries. Use this over if you want to optimize for performance using the Servers API: + + RID shapeRid = PhysicsServer3D.ShapeCreate(PhysicsServer3D.ShapeType.Sphere); + float radius = 2.0f; + PhysicsServer3D.ShapeSetData(shapeRid, radius); + + var params = new PhysicsShapeQueryParameters3D(); + params.ShapeRid = shapeRid; + + // Execute physics queries here... + + // Release the shape when done with physics queries. + PhysicsServer3D.FreeRid(shapeRid); + + + + + + The queried shape's transform matrix. + + + + + If , the query will take s into account. + + + + + If , the query will take s into account. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'exclude' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'shape_rid' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_shape_rid' method. + + + + + Cached name for the 'get_shape_rid' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_exclude' method. + + + + + Cached name for the 'get_exclude' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the motion, you can configure the parameters for . + + + + + Transform in global space where the motion should start. Usually set to for the current body's transform. + + + + + Motion vector to define the length and direction of the motion to test. + + + + + Increases the size of the shapes involved in the collision detection. + + + + + If set to , shapes of type are used to detect collisions and can stop the motion. Can be useful when snapping to the ground. + If set to , shapes of type are only used for separation when overlapping with other bodies. That's the main use for separation ray shapes. + + + + + Optional array of body to exclude from collision. Use to get the associated with a -derived node. + + + + + Optional array of object unique instance ID to exclude from collision. See . + + + + + If set to , any depenetration from the recovery phase is reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + If set to , only collisions resulting from the motion are reported, which is generally the desired behavior. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'collide_separation_ray' property. + + + + + Cached name for the 'exclude_bodies' property. + + + + + Cached name for the 'exclude_objects' property. + + + + + Cached name for the 'recovery_as_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'is_collide_separation_ray_enabled' method. + + + + + Cached name for the 'set_collide_separation_ray_enabled' method. + + + + + Cached name for the 'get_exclude_bodies' method. + + + + + Cached name for the 'set_exclude_bodies' method. + + + + + Cached name for the 'get_exclude_objects' method. + + + + + Cached name for the 'set_exclude_objects' method. + + + + + Cached name for the 'is_recovery_as_collision_enabled' method. + + + + + Cached name for the 'set_recovery_as_collision_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By changing various properties of this object, such as the motion, you can configure the parameters for . + + + + + Transform in global space where the motion should start. Usually set to for the current body's transform. + + + + + Motion vector to define the length and direction of the motion to test. + + + + + Increases the size of the shapes involved in the collision detection. + + + + + Maximum number of returned collisions, between 1 and 32. Always returns the deepest detected collisions. + + + + + If set to , shapes of type are used to detect collisions and can stop the motion. Can be useful when snapping to the ground. + If set to , shapes of type are only used for separation when overlapping with other bodies. That's the main use for separation ray shapes. + + + + + Optional array of body to exclude from collision. Use to get the associated with a -derived node. + + + + + Optional array of object unique instance ID to exclude from collision. See . + + + + + If set to , any depenetration from the recovery phase is reported as a collision; this is used e.g. by for improving floor detection during floor snapping. + If set to , only collisions resulting from the motion are reported, which is generally the desired behavior. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'from' property. + + + + + Cached name for the 'motion' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'max_collisions' property. + + + + + Cached name for the 'collide_separation_ray' property. + + + + + Cached name for the 'exclude_bodies' property. + + + + + Cached name for the 'exclude_objects' property. + + + + + Cached name for the 'recovery_as_collision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_from' method. + + + + + Cached name for the 'set_from' method. + + + + + Cached name for the 'get_motion' method. + + + + + Cached name for the 'set_motion' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_max_collisions' method. + + + + + Cached name for the 'set_max_collisions' method. + + + + + Cached name for the 'is_collide_separation_ray_enabled' method. + + + + + Cached name for the 'set_collide_separation_ray_enabled' method. + + + + + Cached name for the 'get_exclude_bodies' method. + + + + + Cached name for the 'set_exclude_bodies' method. + + + + + Cached name for the 'get_exclude_objects' method. + + + + + Cached name for the 'set_exclude_objects' method. + + + + + Cached name for the 'is_recovery_as_collision_enabled' method. + + + + + Cached name for the 'set_recovery_as_collision_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Describes the motion and collision result from . + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the point of collision in global coordinates, if a collision occurred. + + + + + Returns the colliding body's shape's normal at the point of collision, if a collision occurred. + + + + + Returns the colliding body's velocity, if a collision occurred. + + + + + Returns the unique instance ID of the colliding body's attached , if a collision occurred. See . + + + + + Returns the colliding body's used by the , if a collision occurred. + + + + + Returns the colliding body's attached , if a collision occurred. + + + + + Returns the colliding body's shape index, if a collision occurred. See . + + + + + Returns the moving object's colliding shape, if a collision occurred. + + + + + Returns the length of overlap along the collision normal, if a collision occurred. + + + + + Returns the maximum fraction of the motion that can occur without a collision, between 0 and 1. + + + + + Returns the minimum fraction of the motion needed to collide, if a collision occurred, between 0 and 1. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_local_shape' method. + + + + + Cached name for the 'get_collision_depth' method. + + + + + Cached name for the 'get_collision_safe_fraction' method. + + + + + Cached name for the 'get_collision_unsafe_fraction' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Describes the motion and collision result from . + + + + + Returns the moving object's travel before collision. + + + + + Returns the moving object's remaining movement vector. + + + + + Returns the maximum fraction of the motion that can occur without a collision, between 0 and 1. + + + + + Returns the minimum fraction of the motion needed to collide, if a collision occurred, between 0 and 1. + + + + + Returns the number of detected collisions. + + + + + Returns the point of collision in global coordinates given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's shape's normal at the point of collision given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's velocity given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the unique instance ID of the colliding body's attached given a collision index (the deepest collision by default), if a collision occurred. See . + + + + + Returns the colliding body's used by the given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's attached given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the colliding body's shape index given a collision index (the deepest collision by default), if a collision occurred. See . + + + + + Returns the moving object's colliding shape given a collision index (the deepest collision by default), if a collision occurred. + + + + + Returns the length of overlap along the collision normal given a collision index (the deepest collision by default), if a collision occurred. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_travel' method. + + + + + Cached name for the 'get_remainder' method. + + + + + Cached name for the 'get_collision_safe_fraction' method. + + + + + Cached name for the 'get_collision_unsafe_fraction' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_collider_velocity' method. + + + + + Cached name for the 'get_collider_id' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_local_shape' method. + + + + + Cached name for the 'get_collision_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A physics joint that attaches two 2D physics bodies at a single point, allowing them to freely rotate. For example, a can be attached to a to create a pendulum or a seesaw. + + + + + The higher this value, the more the bond to the pinned partner can flex. + + + + + If , the pin maximum and minimum rotation, defined by and are applied. + + + + + The minimum rotation. Only active if is . + + + + + The maximum rotation. Only active if is . + + + + + When activated, a motor turns the pin. + + + + + Target speed for the motor. In radians per second. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'softness' property. + + + + + Cached name for the 'angular_limit_enabled' property. + + + + + Cached name for the 'angular_limit_lower' property. + + + + + Cached name for the 'angular_limit_upper' property. + + + + + Cached name for the 'motor_enabled' property. + + + + + Cached name for the 'motor_target_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_softness' method. + + + + + Cached name for the 'get_softness' method. + + + + + Cached name for the 'set_angular_limit_lower' method. + + + + + Cached name for the 'get_angular_limit_lower' method. + + + + + Cached name for the 'set_angular_limit_upper' method. + + + + + Cached name for the 'get_angular_limit_upper' method. + + + + + Cached name for the 'set_motor_target_velocity' method. + + + + + Cached name for the 'get_motor_target_velocity' method. + + + + + Cached name for the 'set_motor_enabled' method. + + + + + Cached name for the 'is_motor_enabled' method. + + + + + Cached name for the 'set_angular_limit_enabled' method. + + + + + Cached name for the 'is_angular_limit_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A physics joint that attaches two 3D physics bodies at a single point, allowing them to freely rotate. For example, a can be attached to a to create a pendulum or a seesaw. + + + + + The force with which the pinned objects stay in positional relation to each other. The higher, the stronger. + + + + + The force with which the pinned objects stay in velocity relation to each other. The higher, the stronger. + + + + + If above 0, this value is the maximum value for an impulse that this Joint3D produces. + + + + + Sets the value of the specified parameter. + + + + + Returns the value of the specified parameter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class replaces a or a -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 -derived class is missing, for example when using a different engine version. + Note: This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class replaces a or a -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 -derived class is missing, for example when using a different engine version. + Note: This class is not intended for rendering or for use in shaders. Operations like calculating UV are not guaranteed to work. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a 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). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a 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). + + + + + The smallest enclosing this mesh in local space. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'aabb' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + The texture's size (in pixels). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + The texture's size (in pixels). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used when loading a project that uses a subclass in 2 conditions: + - When running the project exported in dedicated server mode, only the texture's dimensions are kept (as they may be relied upon for gameplay purposes or positioning of other elements). This allows reducing the exported PCK's size significantly. + - When this subclass is missing due to using a different engine version or build (e.g. modules disabled). + Note: This is not intended to be used as an actual texture for rendering. It is not guaranteed to work like one in shaders or materials (for example when calculating UV). + + + + + The size of each texture layer (in pixels). + + + + + The number of layers in the texture array. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'layers' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_layers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a planar . 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 to . + Note: When using a large textured (e.g. as a floor), you may stumble upon UV jittering issues depending on the camera angle. To solve this, increase and until you no longer notice UV jittering. + + + + + will face the positive X-axis. + + + + + will face the positive Y-axis. This matches the behavior of the in Godot 3.x. + + + + + will face the positive Z-axis. This matches the behavior of the QuadMesh in Godot 3.x. + + + + + Size of the generated plane. + + + + + Number of subdivision along the X axis. + + + + + Number of subdivision along the Z axis. + + + + + Offset of the generated plane. Useful for particles. + + + + + Direction that the is facing. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'subdivide_width' property. + + + + + Cached name for the 'subdivide_depth' property. + + + + + Cached name for the 'center_offset' property. + + + + + Cached name for the 'orientation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_subdivide_width' method. + + + + + Cached name for the 'get_subdivide_width' method. + + + + + Cached name for the 'set_subdivide_depth' method. + + + + + Cached name for the 'get_subdivide_depth' method. + + + + + Cached name for the 'set_center_offset' method. + + + + + Cached name for the 'get_center_offset' method. + + + + + Cached name for the 'set_orientation' method. + + + + + Cached name for the 'get_orientation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Casts light in a 2D environment. This light's shape is defined by a (usually grayscale) texture. + + + + + used for the light's appearance. + + + + + The offset of the light's . + + + + + The 's scale factor. + + + + + The height of the light. Used with 2D normal mapping. The units are in pixels, e.g. if the height is 100, then it will illuminate an object 100 pixels away at a 45° angle to the plane. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'texture_scale' property. + + + + + Cached name for the 'height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_offset' method. + + + + + Cached name for the 'get_texture_offset' method. + + + + + Cached name for the 'set_texture_scale' method. + + + + + Cached name for the 'get_texture_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The PointMesh is made from a single point. Instead of relying on triangles, points are rendered as a single rectangle on the screen with a constant size. They are intended to be used with Particle systems, but can be used as a cheap way to render constant size billboarded sprites (for example in a point cloud). + PointMeshes, must be used with a material that has a point size. Point size can be accessed in a shader with POINT_SIZE, or in a by setting and the variable . + When using PointMeshes, properties that normally alter vertices will be ignored, including billboard mode, grow, and cull face. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The polygon's fill color. If is set, it will be multiplied by this color. It will also be the default color for vertices not set in . + + + + + The offset applied to each vertex. + + + + + If , polygon edges will be anti-aliased. + + + + + The polygon's fill texture. Use to set texture coordinates. + + + + + Amount to offset the polygon's . If set to Vector2(0, 0), the texture's origin (its top-left corner) will be placed at the polygon's position. + + + + + Amount to multiply the coordinates when using . Larger values make the texture smaller, and vice versa. + + + + + The texture's rotation in radians. + + + + + Path to a node used for skeleton-based deformations of this polygon. If empty or invalid, skeletal deformations will not be used. + + + + + If , the polygon will be inverted, containing the area outside the defined points and extending to the . + + + + + Added padding applied to the bounding box when is set to . Setting this value too small may result in a "Bad Polygon" error. + + + + + The polygon's list of vertices. The final point will be connected to the first. + + + + + Texture coordinates for each vertex of the polygon. There should be one UV value per polygon vertex. If there are fewer, undefined vertices will use Vector2(0, 0). + + + + + Color for each vertex. Colors are interpolated between vertices, resulting in smooth gradients. There should be one per polygon vertex. If there are fewer, undefined vertices will use . + + + + + The list of polygons, in case more than one is being represented. Every individual polygon is stored as a [] where each is an index to a point in . If empty, this property will be ignored, and the resulting single polygon will be composed of all points in , using the order they are stored in. + + + + + Number of internal vertices, used for UV mapping. + + + + + Adds a bone with the specified and . + + + + + Adds a bone with the specified and . + + + + + Returns the number of bones in this . + + + + + Returns the path to the node associated with the specified bone. + + + + + Returns the weight values of the specified bone. + + + + + Removes the specified bone from this . + + + + + Removes all bones from this . + + + + + Sets the path to the node associated with the specified bone. + + + + + Sets the weight values for the specified bone. + + + + + Sets the weight values for the specified bone. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'antialiased' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_offset' property. + + + + + Cached name for the 'texture_scale' property. + + + + + Cached name for the 'texture_rotation' property. + + + + + Cached name for the 'skeleton' property. + + + + + Cached name for the 'invert_enabled' property. + + + + + Cached name for the 'invert_border' property. + + + + + Cached name for the 'polygon' property. + + + + + Cached name for the 'uv' property. + + + + + Cached name for the 'vertex_colors' property. + + + + + Cached name for the 'polygons' property. + + + + + Cached name for the 'bones' property. + + + + + Cached name for the 'internal_vertex_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached name for the 'set_uv' method. + + + + + Cached name for the 'get_uv' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_polygons' method. + + + + + Cached name for the 'get_polygons' method. + + + + + Cached name for the 'set_vertex_colors' method. + + + + + Cached name for the 'get_vertex_colors' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_offset' method. + + + + + Cached name for the 'get_texture_offset' method. + + + + + Cached name for the 'set_texture_rotation' method. + + + + + Cached name for the 'get_texture_rotation' method. + + + + + Cached name for the 'set_texture_scale' method. + + + + + Cached name for the 'get_texture_scale' method. + + + + + Cached name for the 'set_invert_enabled' method. + + + + + Cached name for the 'get_invert_enabled' method. + + + + + Cached name for the 'set_antialiased' method. + + + + + Cached name for the 'get_antialiased' method. + + + + + Cached name for the 'set_invert_border' method. + + + + + Cached name for the 'get_invert_border' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'add_bone' method. + + + + + Cached name for the 'get_bone_count' method. + + + + + Cached name for the 'get_bone_path' method. + + + + + Cached name for the 'get_bone_weights' method. + + + + + Cached name for the 'erase_bone' method. + + + + + Cached name for the 'clear_bones' method. + + + + + Cached name for the 'set_bone_path' method. + + + + + Cached name for the 'set_bone_weights' method. + + + + + Cached name for the 'set_skeleton' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_internal_vertex_count' method. + + + + + Cached name for the 'get_internal_vertex_count' method. + + + + + Cached name for the '_set_bones' method. + + + + + Cached name for the '_get_bones' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a polygon shape that can be used by the engine's occlusion culling system. When an with a 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 . To use arbitrary 3D shapes as occluders, use or 's baking feature instead. + See 's documentation for instructions on setting up occlusion culling. + + + + + The polygon to use for occlusion culling. The polygon can be convex or concave, but it should have as few points as possible to maximize performance. + The polygon must not have intersecting lines. Otherwise, triangulation will fail (with an error message printed). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'polygon' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_polygon' method. + + + + + Cached name for the 'get_polygon' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Sets up with an array of points that define the vertices of the polygon, and an array of indices that determine the edges of the polygon. + The length of must be even, returns an error if odd. + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + + + + + + Sets up with an array of points that define the vertices of the polygon, and an array of indices that determine the edges of the polygon. + The length of must be even, returns an error if odd. + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + + + + + + Returns if falls inside the polygon area. + + var polygonPathFinder = new PolygonPathFinder(); + var points = new Vector2[] + { + new Vector2(0.0f, 0.0f), + new Vector2(1.0f, 0.0f), + new Vector2(0.0f, 1.0f) + }; + var connections = new int[] { 0, 1, 1, 2, 2, 0 }; + polygonPathFinder.Setup(points, connections); + GD.Print(polygonPathFinder.IsPointInside(new Vector2(0.2f, 0.2f))); // Prints True + GD.Print(polygonPathFinder.IsPointInside(new Vector2(1.0f, 1.0f))); // Prints False + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached name for the 'find_path' method. + + + + + Cached name for the 'get_intersections' method. + + + + + Cached name for the 'get_closest_point' method. + + + + + Cached name for the 'is_point_inside' method. + + + + + Cached name for the 'set_point_penalty' method. + + + + + Cached name for the 'get_point_penalty' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a base class for contextual windows and panels with fixed position. It's a modal by default (see ) and provides methods for implementing custom popup behavior. + + + + + Emitted when the popup is hidden. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'popup_hide' signal. + + + + + is a modal window used to display a list of options. Useful for toolbars and context menus. + The size of a can be limited by using . If the height of the list of items is larger than the maximum height of the , a within the popup will allow the user to scroll the contents. If no maximum size is set, or if it is set to 0, the height will be limited by its parent rect. + All set_* methods allow negative item indices, i.e. -1 to access the last item, -2 to select the second-to-last item, and so on. + Incremental search: Like and , supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec. + Note: The ID values used for items are limited to 32 bits, not full 64 bits of . This has a range of -2^32 to 2^32 - 1, i.e. -2147483648 to 2147483647. + + + + + If , hides the when an item is selected. + + + + + If , hides the when a checkbox or radio button is selected. + + + + + If , hides the when a state item is selected. + + + + + Sets the delay time in seconds for the submenu item to popup on mouse hovering. If the popup menu is added as a child of another (acting as a submenu), it will inherit the delay time of the parent menu item. + + + + + If , allows navigating with letter keys. + + + + + If set to one of the values of , this is bound to the special system menu. Only one can be bound to each special menu at a time. + + + + + If , will use native menu when supported. + Note: If is linked to , , or another item it can use native menu regardless of this property, use to check it. + + + + + The number of items currently in the list. + + + + + Checks the provided against the 's shortcuts and accelerators, and activates the first item with matching events. If is , only shortcuts and accelerators with global set to will be called. + Returns if an item was successfully activated. + Note: Certain s, such as , will call this method automatically. + + + + + Returns if the system native menu is supported and currently used by this . + + + + + Adds a new item with text . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: The provided is used only in and signals. It's not related to the index arguments in e.g. . + + + + + Adds a new item with text and icon . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + + + + + Adds a new checkable item with text . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new checkable item with text and icon . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new radio check button with text . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Same as , but uses a radio check button. + + + + + Adds a new multistate item with text . + Contrarily to normal binary items, multistate items can have more than two states, as defined by . The default value is defined by . + An can optionally be provided, as well as an accelerator (). If no is provided, one will be created from the index. If no is provided, then the default value of 0 (corresponding to ) will be assigned to the item (which means it won't have any accelerator). See for more info on accelerators. + + func _ready(): + add_multistate_item("Item", 3, 0) + + index_pressed.connect(func(index: int): + toggle_item_multistate(index) + match get_item_multistate(index): + 0: + print("First state") + 1: + print("Second state") + 2: + print("Third state") + ) + + Note: Multistate items don't update their state automatically and must be done manually. See , and for more info on how to control it. + + + + + Adds a . + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Adds a new item and assigns the specified and icon to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Adds a new checkable item and assigns the specified to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new checkable item and assigns the specified and icon to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Adds a new radio check button and assigns a to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. See for more info on how to control it. + + + + + Same as , but uses a radio check button. + + + + + Adds an item that will act as a submenu of the parent node when clicked. The argument must be the name of an existing that has been added as a child to this node. This submenu will be shown when the item is clicked, hovered for long enough, or activated using the ui_select or ui_right input actions. + An can optionally be provided. If no is provided, one will be created from the index. + + + + + Adds an item that will act as a submenu of the parent node when clicked. This submenu will be shown when the item is clicked, hovered for long enough, or activated using the ui_select or ui_right input actions. + must be either child of this or has no parent node (in which case it will be automatically added as a child). If the popup has another parent, this method will fail. + An can optionally be provided. If no is provided, one will be created from the index. + + + + + Sets the text of the item at the given . + + + + + Sets item's text base writing direction. + + + + + Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Replaces the icon of the item at the given . + + + + + Sets the maximum allowed width of the icon for the item at the given . This limit is applied on top of the default size of the icon and on top of icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Sets a modulating of the item's icon at the given . + + + + + Sets the checkstate status of the item at the given . + + + + + Sets the of the item at the given . + The is used in and signals. + + + + + Sets the accelerator of the item at the given . An accelerator is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). + + + + + Sets the metadata of an item, which may be of any type. You can later get it with , which provides a simple way of assigning context data to items. + + + + + Enables/disables the item at the given . When it is disabled, it can't be selected and its action can't be invoked. + + + + + Sets the submenu of the item at the given . The submenu is the name of a child node that would be shown when the item is clicked. + + + + + Sets the submenu of the item at the given . The submenu is a node that would be shown when the item is clicked. It must either be a child of this or has no parent (in which case it will be automatically added as a child). If the popup has another parent, this method will fail. + + + + + Mark the item at the given as a separator, which means that it would be displayed as a line. If , sets the type of the item to plain text. + + + + + Sets whether the item at the given has a checkbox. If , sets the type of the item to plain text. + Note: Checkable items just display a checkmark, but don't have any built-in checking behavior and must be checked/unchecked manually. + + + + + Sets the type of the item at the given to radio button. If , sets the type of the item to plain text. + + + + + Sets the tooltip of the item at the given . + + + + + Sets a for the item at the given . + + + + + Sets the horizontal offset of the item at the given . + + + + + Sets the state of a multistate item. See for details. + + + + + Sets the max states of a multistate item. See for details. + + + + + Disables the of the item at the given . + + + + + Toggles the check state of the item at the given . + + + + + Cycle to the next state of a multistate item. See for details. + + + + + Returns the text of the item at the given . + + + + + Returns item's text base writing direction. + + + + + Returns item's text language code. + + + + + Returns the icon of the item at the given . + + + + + Returns the maximum allowed width of the icon for the item at the given . + + + + + Returns a modulating the item's icon at the given . + + + + + Returns if the item at the given is checked. + + + + + Returns the ID of the item at the given . id can be manually assigned, while index can not. + + + + + Returns the index of the item containing the specified . Index is automatically assigned to each item by the engine and can not be set manually. + + + + + Returns the accelerator of the item at the given . An accelerator is a keyboard shortcut that can be pressed to trigger the menu button even if it's not currently open. The return value is an integer which is generally a combination of s and s using bitwise OR such as KEY_MASK_CTRL | KEY_A (Ctrl + A). If no accelerator is defined for the specified , returns 0 (corresponding to ). + + + + + Returns the metadata of the specified item, which might be of any type. You can set it with , which provides a simple way of assigning context data to items. + + + + + Returns if the item at the given is disabled. When it is disabled it can't be selected, or its action invoked. + See for more info on how to disable an item. + + + + + Returns the submenu name of the item at the given . See for more info on how to add a submenu. + + + + + Returns the submenu of the item at the given , or if no submenu was added. See for more info on how to add a submenu. + + + + + Returns if the item is a separator. If it is, it will be displayed as a line. See for more info on how to add a separator. + + + + + Returns if the item at the given is checkable in some way, i.e. if it has a checkbox or radio button. + Note: Checkable items just display a checkmark or radio button, but don't have any built-in checking behavior and must be checked/unchecked manually. + + + + + Returns if the item at the given has radio button-style checkability. + Note: This is purely cosmetic; you must add the logic for checking/unchecking items in radio groups. + + + + + Returns if the specified item's shortcut is disabled. + + + + + Returns the tooltip associated with the item at the given . + + + + + Returns the associated with the item at the given . + + + + + Returns the horizontal offset of the item at the given . + + + + + Returns the max states of the item at the given . + + + + + Returns the state of the item at the given . + + + + + Sets the currently focused item as the given . + Passing -1 as the index makes so that no item is focused. + + + + + Returns the index of the currently focused item. Returns -1 if no item is focused. + + + + + Moves the scroll view to make the item at the given visible. + + + + + Removes the item at the given from the menu. + Note: The indices of items after the removed item will be shifted by one. + + + + + Adds a separator between items. Separators also occupy an index, which you can set by using the parameter. + A can optionally be provided, which will appear at the center of the separator. + + + + + Removes all items from the . If is , the submenu nodes are automatically freed. + + + + + Returns if the menu is bound to the special system menu. + + + + + Removes all items from the . If is , the submenu nodes are automatically freed. + + + + + Adds a new item and assigns the specified and icon to it. Sets the label of the checkbox to the 's name. + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Adds a . + An can optionally be provided. If no is provided, one will be created from the index. + If is , the shortcut can be activated with echo events. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item of some id is pressed or its accelerator is activated. + Note: If id is negative (either explicitly or due to overflow), this will return the corresponding index instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user navigated to an item of some id using the ProjectSettings.input/ui_up or ProjectSettings.input/ui_down input action. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an item of some index is pressed or its accelerator is activated. + + + + + Emitted when any item is added, modified or removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hide_on_item_selection' property. + + + + + Cached name for the 'hide_on_checkable_item_selection' property. + + + + + Cached name for the 'hide_on_state_item_selection' property. + + + + + Cached name for the 'submenu_popup_delay' property. + + + + + Cached name for the 'allow_search' property. + + + + + Cached name for the 'system_menu_id' property. + + + + + Cached name for the 'prefer_native_menu' property. + + + + + Cached name for the 'item_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'activate_item_by_event' method. + + + + + Cached name for the 'set_prefer_native_menu' method. + + + + + Cached name for the 'is_prefer_native_menu' method. + + + + + Cached name for the 'is_native_menu' method. + + + + + Cached name for the 'add_item' method. + + + + + Cached name for the 'add_icon_item' method. + + + + + Cached name for the 'add_check_item' method. + + + + + Cached name for the 'add_icon_check_item' method. + + + + + Cached name for the 'add_radio_check_item' method. + + + + + Cached name for the 'add_icon_radio_check_item' method. + + + + + Cached name for the 'add_multistate_item' method. + + + + + Cached name for the 'add_shortcut' method. + + + + + Cached name for the 'add_icon_shortcut' method. + + + + + Cached name for the 'add_check_shortcut' method. + + + + + Cached name for the 'add_icon_check_shortcut' method. + + + + + Cached name for the 'add_radio_check_shortcut' method. + + + + + Cached name for the 'add_icon_radio_check_shortcut' method. + + + + + Cached name for the 'add_submenu_item' method. + + + + + Cached name for the 'add_submenu_node_item' method. + + + + + Cached name for the 'set_item_text' method. + + + + + Cached name for the 'set_item_text_direction' method. + + + + + Cached name for the 'set_item_language' method. + + + + + Cached name for the 'set_item_icon' method. + + + + + Cached name for the 'set_item_icon_max_width' method. + + + + + Cached name for the 'set_item_icon_modulate' method. + + + + + Cached name for the 'set_item_checked' method. + + + + + Cached name for the 'set_item_id' method. + + + + + Cached name for the 'set_item_accelerator' method. + + + + + Cached name for the 'set_item_metadata' method. + + + + + Cached name for the 'set_item_disabled' method. + + + + + Cached name for the 'set_item_submenu' method. + + + + + Cached name for the 'set_item_submenu_node' method. + + + + + Cached name for the 'set_item_as_separator' method. + + + + + Cached name for the 'set_item_as_checkable' method. + + + + + Cached name for the 'set_item_as_radio_checkable' method. + + + + + Cached name for the 'set_item_tooltip' method. + + + + + Cached name for the 'set_item_shortcut' method. + + + + + Cached name for the 'set_item_indent' method. + + + + + Cached name for the 'set_item_multistate' method. + + + + + Cached name for the 'set_item_multistate_max' method. + + + + + Cached name for the 'set_item_shortcut_disabled' method. + + + + + Cached name for the 'toggle_item_checked' method. + + + + + Cached name for the 'toggle_item_multistate' method. + + + + + Cached name for the 'get_item_text' method. + + + + + Cached name for the 'get_item_text_direction' method. + + + + + Cached name for the 'get_item_language' method. + + + + + Cached name for the 'get_item_icon' method. + + + + + Cached name for the 'get_item_icon_max_width' method. + + + + + Cached name for the 'get_item_icon_modulate' method. + + + + + Cached name for the 'is_item_checked' method. + + + + + Cached name for the 'get_item_id' method. + + + + + Cached name for the 'get_item_index' method. + + + + + Cached name for the 'get_item_accelerator' method. + + + + + Cached name for the 'get_item_metadata' method. + + + + + Cached name for the 'is_item_disabled' method. + + + + + Cached name for the 'get_item_submenu' method. + + + + + Cached name for the 'get_item_submenu_node' method. + + + + + Cached name for the 'is_item_separator' method. + + + + + Cached name for the 'is_item_checkable' method. + + + + + Cached name for the 'is_item_radio_checkable' method. + + + + + Cached name for the 'is_item_shortcut_disabled' method. + + + + + Cached name for the 'get_item_tooltip' method. + + + + + Cached name for the 'get_item_shortcut' method. + + + + + Cached name for the 'get_item_indent' method. + + + + + Cached name for the 'get_item_multistate_max' method. + + + + + Cached name for the 'get_item_multistate' method. + + + + + Cached name for the 'set_focused_item' method. + + + + + Cached name for the 'get_focused_item' method. + + + + + Cached name for the 'set_item_count' method. + + + + + Cached name for the 'get_item_count' method. + + + + + Cached name for the 'scroll_to_item' method. + + + + + Cached name for the 'remove_item' method. + + + + + Cached name for the 'add_separator' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_hide_on_item_selection' method. + + + + + Cached name for the 'is_hide_on_item_selection' method. + + + + + Cached name for the 'set_hide_on_checkable_item_selection' method. + + + + + Cached name for the 'is_hide_on_checkable_item_selection' method. + + + + + Cached name for the 'set_hide_on_state_item_selection' method. + + + + + Cached name for the 'is_hide_on_state_item_selection' method. + + + + + Cached name for the 'set_submenu_popup_delay' method. + + + + + Cached name for the 'get_submenu_popup_delay' method. + + + + + Cached name for the 'set_allow_search' method. + + + + + Cached name for the 'get_allow_search' method. + + + + + Cached name for the 'is_system_menu' method. + + + + + Cached name for the 'set_system_menu' method. + + + + + Cached name for the 'get_system_menu' method. + + + + + Cached name for the 'get_system_menu_root' method. + + + + + Cached name for the 'set_system_menu_root' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'id_pressed' signal. + + + + + Cached name for the 'id_focused' signal. + + + + + Cached name for the 'index_pressed' signal. + + + + + Cached name for the 'menu_changed' signal. + + + + + 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 works). If you are making windows, see . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Allow overriding the texture size (for 2D only). + + + + + When running on the editor, this class will keep the source compressed data in memory. Otherwise, the source compressed data is lost after loading and the resource can't be re saved. + This flag allows to keep the compressed data in memory if you intend it to persist after loading. + + + + + Initializes the compressed texture from a base image. The compression mode must be provided. + is recommended to ensure optimum quality if this image will be used as a normal map. + If lossy compression is requested, the quality setting can optionally be provided. This maps to Lossy WebP compression quality. + + + + + Return the image format used (valid after initialized). + + + + + Return the compression mode used (valid after initialized). + + + + + Overrides the flag globally for all textures of this type. This is used primarily by the editor. + + + + + Return whether the flag is overridden for all textures of this type. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'size_override' property. + + + + + Cached name for the 'keep_compressed_buffer' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_image' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_compression_mode' method. + + + + + Cached name for the 'set_size_override' method. + + + + + Cached name for the 'get_size_override' method. + + + + + Cached name for the 'set_keep_compressed_buffer' method. + + + + + Cached name for the 'is_keeping_compressed_buffer' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the 'set_keep_all_compressed_buffers' method. + + + + + Cached name for the 'is_keeping_all_compressed_buffers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for all primitive meshes. Handles applying a to a primitive mesh. Examples include , , , , , and . + + + + + The current of the primitive mesh. + + + + + Overrides the with one defined by user for use with frustum culling. Especially useful to avoid unexpected culling when using a shader to offset vertices. + + + + + If set, the order of the vertices in each triangle are reversed resulting in the backside of the mesh being drawn. + This gives the same result as using in . + + + + + If set, generates UV2 UV coordinates applying a padding using the setting. UV2 is needed for lightmapping. + + + + + If is set, specifies the padding in pixels applied along seams of the mesh. Lower padding values allow making better use of the lightmap texture (resulting in higher texel density), but may introduce visible lightmap bleeding along edges. + If the size of the lightmap texture can't be determined when generating the mesh, UV2 is calculated assuming a texture size of 1024x1024. + + + + + Override this method to customize how this primitive mesh should be generated. Should return an where each element is another Array of values required for the mesh (see the constants). + + + + + Returns the mesh arrays used to make up the surface of this primitive mesh. + Example: Pass the result to to create a new surface: + + var c = new CylinderMesh(); + var arrMesh = new ArrayMesh(); + arrMesh.AddSurfaceFromArrays(Mesh.PrimitiveType.Triangles, c.GetMeshArrays()); + + + + + + Request an update of this primitive mesh based on its properties. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'material' property. + + + + + Cached name for the 'custom_aabb' property. + + + + + Cached name for the 'flip_faces' property. + + + + + Cached name for the 'add_uv2' property. + + + + + Cached name for the 'uv2_padding' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_create_mesh_array' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'get_mesh_arrays' method. + + + + + Cached name for the 'set_custom_aabb' method. + + + + + Cached name for the 'get_custom_aabb' method. + + + + + Cached name for the 'set_flip_faces' method. + + + + + Cached name for the 'get_flip_faces' method. + + + + + Cached name for the 'set_add_uv2' method. + + + + + Cached name for the 'get_add_uv2' method. + + + + + Cached name for the 'set_uv2_padding' method. + + + + + Cached name for the 'get_uv2_padding' method. + + + + + Cached name for the 'request_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a prism-shaped . + + + + + Displacement of the upper edge along the X axis. 0.0 positions edge straight above the bottom-left edge. + + + + + Size of the prism. + + + + + Number of added edge loops along the X axis. + + + + + Number of added edge loops along the Y axis. + + + + + Number of added edge loops along the Z axis. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'left_to_right' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'subdivide_width' property. + + + + + Cached name for the 'subdivide_height' property. + + + + + Cached name for the 'subdivide_depth' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_left_to_right' method. + + + + + Cached name for the 'get_left_to_right' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_subdivide_width' method. + + + + + Cached name for the 'get_subdivide_width' method. + + + + + Cached name for the 'set_subdivide_height' method. + + + + + Cached name for the 'get_subdivide_height' method. + + + + + Cached name for the 'set_subdivide_depth' method. + + + + + Cached name for the 'get_subdivide_depth' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + supports up to 4 suns, using the color, and energy, direction, and angular distance of the first four nodes in the scene. This means that the suns are defined individually by the properties of their corresponding s and globally by and . + 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 . + + + + + Color of the sky at the top. Blends with . + + + + + Color of the sky at the horizon. Blends with . + + + + + How quickly the fades into the . + + + + + Multiplier for sky color. A higher value will make the sky brighter. + + + + + The sky cover texture to use. This texture must use an equirectangular projection (similar to ). The texture's colors will be added to the existing sky color, and will be multiplied by and . This is mainly suited to displaying stars at night, but it can also be used to display clouds at day or night (with a non-physically-accurate look). + + + + + The tint to apply to the texture. This can be used to change the sky cover's colors or opacity independently of the sky energy, which is useful for day/night or weather transitions. Only effective if a texture is defined in . + + + + + Color of the ground at the bottom. Blends with . + + + + + Color of the ground at the horizon. Blends with . + + + + + How quickly the fades into the . + + + + + Multiplier for ground color. A higher value will make the ground brighter. + + + + + Distance from center of sun where it fades out completely. + + + + + How quickly the sun fades away between the edge of the sun disk and . + + + + + If , enables debanding. Debanding adds a small amount of noise which helps reduce banding that appears from the smooth changes in color in the sky. + + + + + The sky's overall brightness multiplier. Higher values result in a brighter sky. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sky_top_color' property. + + + + + Cached name for the 'sky_horizon_color' property. + + + + + Cached name for the 'sky_curve' property. + + + + + Cached name for the 'sky_energy_multiplier' property. + + + + + Cached name for the 'sky_cover' property. + + + + + Cached name for the 'sky_cover_modulate' property. + + + + + Cached name for the 'ground_bottom_color' property. + + + + + Cached name for the 'ground_horizon_color' property. + + + + + Cached name for the 'ground_curve' property. + + + + + Cached name for the 'ground_energy_multiplier' property. + + + + + Cached name for the 'sun_angle_max' property. + + + + + Cached name for the 'sun_curve' property. + + + + + Cached name for the 'use_debanding' property. + + + + + Cached name for the 'energy_multiplier' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sky_top_color' method. + + + + + Cached name for the 'get_sky_top_color' method. + + + + + Cached name for the 'set_sky_horizon_color' method. + + + + + Cached name for the 'get_sky_horizon_color' method. + + + + + Cached name for the 'set_sky_curve' method. + + + + + Cached name for the 'get_sky_curve' method. + + + + + Cached name for the 'set_sky_energy_multiplier' method. + + + + + Cached name for the 'get_sky_energy_multiplier' method. + + + + + Cached name for the 'set_sky_cover' method. + + + + + Cached name for the 'get_sky_cover' method. + + + + + Cached name for the 'set_sky_cover_modulate' method. + + + + + Cached name for the 'get_sky_cover_modulate' method. + + + + + Cached name for the 'set_ground_bottom_color' method. + + + + + Cached name for the 'get_ground_bottom_color' method. + + + + + Cached name for the 'set_ground_horizon_color' method. + + + + + Cached name for the 'get_ground_horizon_color' method. + + + + + Cached name for the 'set_ground_curve' method. + + + + + Cached name for the 'get_ground_curve' method. + + + + + Cached name for the 'set_ground_energy_multiplier' method. + + + + + Cached name for the 'get_ground_energy_multiplier' method. + + + + + Cached name for the 'set_sun_angle_max' method. + + + + + Cached name for the 'get_sun_angle_max' method. + + + + + Cached name for the 'set_sun_curve' method. + + + + + Cached name for the 'get_sun_curve' method. + + + + + Cached name for the 'set_use_debanding' method. + + + + + Cached name for the 'get_use_debanding' method. + + + + + Cached name for the 'set_energy_multiplier' method. + + + + + Cached name for the 'get_energy_multiplier' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control used for visual representation of a percentage. Shows fill percentage from right to left. + + + + + The progress bar fills from begin to end horizontally, according to the language direction. If returns , it fills from left to right, and if it returns , it fills from right to left. + + + + + The progress bar fills from end to begin horizontally, according to the language direction. If returns , it fills from right to left, and if it returns , it fills from left to right. + + + + + The progress fills from top to bottom. + + + + + The progress fills from bottom to top. + + + + + The fill direction. See for possible values. + + + + + If , the fill percentage is displayed on the bar. + + + + + When set to , the progress bar indicates that something is happening with an animation, but does not show the fill percentage or value. + + + + + If , the animation will be paused in the editor. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fill_mode' property. + + + + + Cached name for the 'show_percentage' property. + + + + + Cached name for the 'indeterminate' property. + + + + + Cached name for the 'editor_preview_indeterminate' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_fill_mode' method. + + + + + Cached name for the 'get_fill_mode' method. + + + + + Cached name for the 'set_show_percentage' method. + + + + + Cached name for the 'is_percentage_shown' method. + + + + + Cached name for the 'set_indeterminate' method. + + + + + Cached name for the 'is_indeterminate' method. + + + + + Cached name for the 'set_editor_preview_indeterminate' method. + + + + + Cached name for the 'is_editor_preview_indeterminate_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Stores variables that can be accessed from everywhere. Use , or to access them. Variables stored in project.godot are also loaded into , making this object very useful for reading custom game configuration options. + When naming a Project Settings property, use the full path to the setting including the category. For example, "application/config/name" for the project name. Category and property names can be viewed in the Project Settings dialog. + Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags. + Overriding: Any project setting can be overridden by creating a file named override.cfg in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations. + + + + + Returns if a configuration value is present. + + + + + Sets the value of a setting. + + ProjectSettings.SetSetting("application/config/name", "Example"); + + This can also be used to erase custom project settings. To do this change the setting value to . + + + + + Returns the value of the setting identified by . If the setting doesn't exist and is specified, the value of is returned. Otherwise, is returned. + + GD.Print(ProjectSettings.GetSetting("application/config/name")); + GD.Print(ProjectSettings.GetSetting("application/config/custom_description", "No description specified.")); + + Note: This method doesn't take potential feature overrides into account automatically. Use to handle seamlessly. + + + + + Similar to , but applies feature tag overrides if any exists and is valid. + Example: If the setting override "application/config/name.windows" exists, and the following code is executed on a Windows operating system, the overridden setting is printed instead: + + GD.Print(ProjectSettings.GetSettingWithOverride("application/config/name")); + + + + + + Returns an of registered global classes. Each global class is represented as a that contains the following entries: + - base is a name of the base class; + - class is a name of the registered global class; + - icon is a path to a custom icon of the global class, if it has any; + - language is a name of a programming language in which the global class is written; + - path is a path to a file containing the global class. + Note: Both the script and the icon paths are local to the project filesystem, i.e. they start with res://. + + + + + Sets the order of a configuration value (influences when saved to the config file). + + + + + Returns the order of a configuration value (influences when saved to the config file). + + + + + Sets the specified setting's initial value. This is the value the setting reverts to. + + + + + Defines if the specified setting is considered basic or advanced. Basic settings will always be shown in the project settings. Advanced settings will only be shown if the user enables the "Advanced Settings" option. + + + + + Defines if the specified setting is considered internal. An internal setting won't show up in the Project Settings dialog. This is mostly useful for addons that need to store their own internal settings without exposing them directly to the user. + + + + + Adds a custom property info to a property. The dictionary must contain: + - "name": (the property's name) + - "type": (see ) + - optionally "hint": (see ) and "hint_string": + + ProjectSettings.Singleton.Set("category/property_name", 0); + + var propertyInfo = new Godot.Collections.Dictionary + { + {"name", "category/propertyName"}, + {"type", (int)Variant.Type.Int}, + {"hint", (int)PropertyHint.Enum}, + {"hint_string", "one,two,three"}, + }; + + ProjectSettings.AddPropertyInfo(propertyInfo); + + + + + + Sets whether a setting requires restarting the editor to properly take effect. + Note: This is just a hint to display to the user that the editor must be restarted for changes to take effect. Enabling does not delay the setting being set when changed. + + + + + Clears the whole configuration (not recommended, may break things). + + + + + Returns the localized path (starting with res://) corresponding to the absolute, native OS . See also . + + + + + Returns the absolute, native OS path corresponding to the localized (starting with res:// or user://). The returned path will vary depending on the operating system and user preferences. See File paths in Godot projects to see what those paths convert to. See also . + Note: with res:// will not work in an exported project. Instead, prepend the executable's base directory to the path when running from an exported project: + + var path = "" + if OS.has_feature("editor"): + # Running from an editor binary. + # `path` will contain the absolute path to `hello.txt` located in the project root. + path = ProjectSettings.globalize_path("res://hello.txt") + else: + # Running from an exported project. + # `path` will contain the absolute path to `hello.txt` next to the executable. + # This is *not* identical to using `ProjectSettings.globalize_path()` with a `res://` path, + # but is close enough in spirit. + path = OS.get_executable_path().get_base_dir().path_join("hello.txt") + + + + + + Saves the configuration to the project.godot file. + Note: This method is intended to be used by editor plugins, as modified can't be loaded back in the running app. If you want to change project settings in exported projects, use to save override.cfg file. + + + + + Loads the contents of the .pck or .zip file specified by into the resource filesystem (res://). Returns on success. + Note: If a file from shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from unless is set to . + Note: The optional parameter can be used to specify the offset in bytes to the start of the resource pack. This is only supported for .pck files. + + + + + Saves the configuration to a custom file. The file extension must be .godot (to save in text-based format) or .binary (to save in binary format). You can also save override.cfg file, which is also text, but can be used in exported projects unlike other formats. + + + + + Emitted when any setting is changed, up to once per process frame. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_setting' method. + + + + + Cached name for the 'set_setting' method. + + + + + Cached name for the 'get_setting' method. + + + + + Cached name for the 'get_setting_with_override' method. + + + + + Cached name for the 'get_global_class_list' method. + + + + + Cached name for the 'set_order' method. + + + + + Cached name for the 'get_order' method. + + + + + Cached name for the 'set_initial_value' method. + + + + + Cached name for the 'set_as_basic' method. + + + + + Cached name for the 'set_as_internal' method. + + + + + Cached name for the 'add_property_info' method. + + + + + Cached name for the 'set_restart_if_changed' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'localize_path' method. + + + + + Cached name for the 'globalize_path' method. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load_resource_pack' method. + + + + + Cached name for the 'save_custom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'settings_changed' signal. + + + + + Stores variables that can be accessed from everywhere. Use , or to access them. Variables stored in project.godot are also loaded into , making this object very useful for reading custom game configuration options. + When naming a Project Settings property, use the full path to the setting including the category. For example, "application/config/name" for the project name. Category and property names can be viewed in the Project Settings dialog. + Feature tags: Project settings can be overridden for specific platforms and configurations (debug, release, ...) using feature tags. + Overriding: Any project setting can be overridden by creating a file named override.cfg in the project's root directory. This can also be used in exported projects by placing this file in the same directory as the project binary. Overriding will still take the base project settings' feature tags in account. Therefore, make sure to also override the setting with the desired feature tags if you want them to override base project settings on all platforms and configurations. + + + + + Returns if a configuration value is present. + + + + + Sets the value of a setting. + + ProjectSettings.SetSetting("application/config/name", "Example"); + + This can also be used to erase custom project settings. To do this change the setting value to . + + + + + Returns the value of the setting identified by . If the setting doesn't exist and is specified, the value of is returned. Otherwise, is returned. + + GD.Print(ProjectSettings.GetSetting("application/config/name")); + GD.Print(ProjectSettings.GetSetting("application/config/custom_description", "No description specified.")); + + Note: This method doesn't take potential feature overrides into account automatically. Use to handle seamlessly. + + + + + Similar to , but applies feature tag overrides if any exists and is valid. + Example: If the setting override "application/config/name.windows" exists, and the following code is executed on a Windows operating system, the overridden setting is printed instead: + + GD.Print(ProjectSettings.GetSettingWithOverride("application/config/name")); + + + + + + Returns an of registered global classes. Each global class is represented as a that contains the following entries: + - base is a name of the base class; + - class is a name of the registered global class; + - icon is a path to a custom icon of the global class, if it has any; + - language is a name of a programming language in which the global class is written; + - path is a path to a file containing the global class. + Note: Both the script and the icon paths are local to the project filesystem, i.e. they start with res://. + + + + + Sets the order of a configuration value (influences when saved to the config file). + + + + + Returns the order of a configuration value (influences when saved to the config file). + + + + + Sets the specified setting's initial value. This is the value the setting reverts to. + + + + + Defines if the specified setting is considered basic or advanced. Basic settings will always be shown in the project settings. Advanced settings will only be shown if the user enables the "Advanced Settings" option. + + + + + Defines if the specified setting is considered internal. An internal setting won't show up in the Project Settings dialog. This is mostly useful for addons that need to store their own internal settings without exposing them directly to the user. + + + + + Adds a custom property info to a property. The dictionary must contain: + - "name": (the property's name) + - "type": (see ) + - optionally "hint": (see ) and "hint_string": + + ProjectSettings.Singleton.Set("category/property_name", 0); + + var propertyInfo = new Godot.Collections.Dictionary + { + {"name", "category/propertyName"}, + {"type", (int)Variant.Type.Int}, + {"hint", (int)PropertyHint.Enum}, + {"hint_string", "one,two,three"}, + }; + + ProjectSettings.AddPropertyInfo(propertyInfo); + + + + + + Sets whether a setting requires restarting the editor to properly take effect. + Note: This is just a hint to display to the user that the editor must be restarted for changes to take effect. Enabling does not delay the setting being set when changed. + + + + + Clears the whole configuration (not recommended, may break things). + + + + + Returns the localized path (starting with res://) corresponding to the absolute, native OS . See also . + + + + + Returns the absolute, native OS path corresponding to the localized (starting with res:// or user://). The returned path will vary depending on the operating system and user preferences. See File paths in Godot projects to see what those paths convert to. See also . + Note: with res:// will not work in an exported project. Instead, prepend the executable's base directory to the path when running from an exported project: + + var path = "" + if OS.has_feature("editor"): + # Running from an editor binary. + # `path` will contain the absolute path to `hello.txt` located in the project root. + path = ProjectSettings.globalize_path("res://hello.txt") + else: + # Running from an exported project. + # `path` will contain the absolute path to `hello.txt` next to the executable. + # This is *not* identical to using `ProjectSettings.globalize_path()` with a `res://` path, + # but is close enough in spirit. + path = OS.get_executable_path().get_base_dir().path_join("hello.txt") + + + + + + Saves the configuration to the project.godot file. + Note: This method is intended to be used by editor plugins, as modified can't be loaded back in the running app. If you want to change project settings in exported projects, use to save override.cfg file. + + + + + Loads the contents of the .pck or .zip file specified by into the resource filesystem (res://). Returns on success. + Note: If a file from shares the same path as a file already in the resource filesystem, any attempts to load that file will use the file from unless is set to . + Note: The optional parameter can be used to specify the offset in bytes to the start of the resource pack. This is only supported for .pck files. + + + + + Saves the configuration to a custom file. The file extension must be .godot (to save in text-based format) or .binary (to save in binary format). You can also save override.cfg file, which is also text, but can be used in exported projects unlike other formats. + + + + + Emitted when any setting is changed, up to once per process frame. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_setting' method. + + + + + Cached name for the 'set_setting' method. + + + + + Cached name for the 'get_setting' method. + + + + + Cached name for the 'get_setting_with_override' method. + + + + + Cached name for the 'get_global_class_list' method. + + + + + Cached name for the 'set_order' method. + + + + + Cached name for the 'get_order' method. + + + + + Cached name for the 'set_initial_value' method. + + + + + Cached name for the 'set_as_basic' method. + + + + + Cached name for the 'set_as_internal' method. + + + + + Cached name for the 'add_property_info' method. + + + + + Cached name for the 'set_restart_if_changed' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'localize_path' method. + + + + + Cached name for the 'globalize_path' method. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load_resource_pack' method. + + + + + Cached name for the 'save_custom' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'settings_changed' signal. + + + + + is used to interpolate a property in an object. See for more usage information. + The tweener will finish automatically if the target object is freed. + Note: is the only correct way to create . Any created manually will not function correctly. + + + + + Sets a custom initial value to the . + Example: Move the node from position (100, 100) to (200, 100). + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).From(new Vector2(100.0f, 100.0f)); + + + + + + Makes the use the current property value (i.e. at the time of creating this ) as a starting point. This is equivalent of using with the current value. These two calls will do the same: + + tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).From(Position); + tween.TweenProperty(this, "position", new Vector2(200.0f, 100.0f), 1.0f).FromCurrent(); + + + + + + When called, the final value will be used as a relative value instead. + Example: Move the node by 100 pixels to the right. + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(this, "position", Vector2.Right * 100.0f, 1.0f).AsRelative(); + + + + + + Sets the type of used transition from . If not set, the default transition is used from the that contains this Tweener. + + + + + Sets the type of used easing from . If not set, the default easing is used from the that contains this Tweener. + + + + + Allows interpolating the value with a custom easing function. The provided will be called with a value ranging from 0.0 to 1.0 and is expected to return a value within the same range (values outside the range can be used for overshoot). The return value of the method is then used for interpolation between initial and final value. Note that the parameter passed to the method is still subject to the tweener's own easing. + + [Export] + public Curve Curve { get; set; } + + public override void _Ready() + { + Tween tween = CreateTween(); + // Interpolate the value using a custom curve. + Callable tweenCurveCallable = Callable.From<float, float>(TweenCurve); + tween.TweenProperty(this, "position:x", 300.0f, 1.0f).AsRelative().SetCustomInterpolator(tweenCurveCallable); + } + + private float TweenCurve(float value) + { + return Curve.SampleBaked(value); + } + + + + + + Sets the time in seconds after which the will start interpolating. By default there's no delay. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'from' method. + + + + + Cached name for the 'from_current' method. + + + + + Cached name for the 'as_relative' method. + + + + + Cached name for the 'set_trans' method. + + + + + Cached name for the 'set_ease' method. + + + + + Cached name for the 'set_custom_interpolator' method. + + + + + Cached name for the 'set_delay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a square . 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 is equivalent to a except its default is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a flat plane shape that can be used by the engine's occlusion culling system. See also if you need to customize the quad's shape. + See 's documentation for instructions on setting up occlusion culling. + + + + + The quad's size in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The attachment's data format. + + + + + The number of samples used when sampling the attachment. + + + + + The attachment's usage flags, which determine what can be done with it. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'samples' property. + + + + + Cached name for the 'usage_flags' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_samples' method. + + + + + Cached name for the 'get_samples' method. + + + + + Cached name for the 'set_usage_flags' method. + + + + + Cached name for the 'get_usage_flags' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Attachment is unused. + + + + + Color attachments in order starting from 0. If this attachment is not used by the shader, pass ATTACHMENT_UNUSED to skip. + + + + + Used for multipass framebuffers (more than one render pass). Converts an attachment to an input. Make sure to also supply it properly in the for the uniform set. + + + + + If the color attachments are multisampled, non-multisampled resolve attachments can be provided. + + + + + Attachments to preserve in this pass (otherwise they are erased). + + + + + Depth attachment. ATTACHMENT_UNUSED should be used if no depth buffer is required for this pass. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color_attachments' property. + + + + + Cached name for the 'input_attachments' property. + + + + + Cached name for the 'resolve_attachments' property. + + + + + Cached name for the 'preserve_attachments' property. + + + + + Cached name for the 'depth_attachment' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color_attachments' method. + + + + + Cached name for the 'get_color_attachments' method. + + + + + Cached name for the 'set_input_attachments' method. + + + + + Cached name for the 'get_input_attachments' method. + + + + + Cached name for the 'set_resolve_attachments' method. + + + + + Cached name for the 'get_resolve_attachments' method. + + + + + Cached name for the 'set_preserve_attachments' method. + + + + + Cached name for the 'get_preserve_attachments' method. + + + + + Cached name for the 'set_depth_attachment' method. + + + + + Cached name for the 'get_depth_attachment' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + If , performs the logic operation defined in . + + + + + The logic operation to perform for blending. Only effective if is . + + + + + The constant color to blend with. See also . + + + + + The attachments that are blended together. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_logic_op' property. + + + + + Cached name for the 'logic_op' property. + + + + + Cached name for the 'blend_constant' property. + + + + + Cached name for the 'attachments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_logic_op' method. + + + + + Cached name for the 'get_enable_logic_op' method. + + + + + Cached name for the 'set_logic_op' method. + + + + + Cached name for the 'get_logic_op' method. + + + + + Cached name for the 'set_blend_constant' method. + + + + + Cached name for the 'get_blend_constant' method. + + + + + Cached name for the 'set_attachments' method. + + + + + Cached name for the 'get_attachments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Controls how blending between source and destination fragments is performed when using . + For reference, this is how common user-facing blend modes are implemented in Godot's 2D renderer: + Mix: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + + Add: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + + Subtract: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT + attachment.color_blend_op = RenderingDevice.BLEND_OP_REVERSE_SUBTRACT + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_SRC_ALPHA + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + + Multiply: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_DST_COLOR + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_DST_ALPHA + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ZERO + + Pre-multiplied alpha: + + var attachment = RDPipelineColorBlendStateAttachment.new() + attachment.enable_blend = true + attachment.alpha_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.color_blend_op = RenderingDevice.BLEND_OP_ADD + attachment.src_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.dst_color_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + attachment.src_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE + attachment.dst_alpha_blend_factor = RenderingDevice.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + + + + + + If , performs blending between the source and destination according to the factors defined in , , and . The blend modes and are also taken into account, with , , and controlling the output. + + + + + Controls how the blend factor for the color channels is determined based on the source's fragments. + + + + + Controls how the blend factor for the color channels is determined based on the destination's fragments. + + + + + The blend mode to use for the red/green/blue color channels. + + + + + Controls how the blend factor for the alpha channel is determined based on the source's fragments. + + + + + Controls how the blend factor for the alpha channel is determined based on the destination's fragments. + + + + + The blend mode to use for the alpha channel. + + + + + If , writes the new red color channel to the final result. + + + + + If , writes the new green color channel to the final result. + + + + + If , writes the new blue color channel to the final result. + + + + + If , writes the new alpha channel to the final result. + + + + + Convenience method to perform standard mix blending with straight (non-premultiplied) alpha. This sets to , to , to , to and to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_blend' property. + + + + + Cached name for the 'src_color_blend_factor' property. + + + + + Cached name for the 'dst_color_blend_factor' property. + + + + + Cached name for the 'color_blend_op' property. + + + + + Cached name for the 'src_alpha_blend_factor' property. + + + + + Cached name for the 'dst_alpha_blend_factor' property. + + + + + Cached name for the 'alpha_blend_op' property. + + + + + Cached name for the 'write_r' property. + + + + + Cached name for the 'write_g' property. + + + + + Cached name for the 'write_b' property. + + + + + Cached name for the 'write_a' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_as_mix' method. + + + + + Cached name for the 'set_enable_blend' method. + + + + + Cached name for the 'get_enable_blend' method. + + + + + Cached name for the 'set_src_color_blend_factor' method. + + + + + Cached name for the 'get_src_color_blend_factor' method. + + + + + Cached name for the 'set_dst_color_blend_factor' method. + + + + + Cached name for the 'get_dst_color_blend_factor' method. + + + + + Cached name for the 'set_color_blend_op' method. + + + + + Cached name for the 'get_color_blend_op' method. + + + + + Cached name for the 'set_src_alpha_blend_factor' method. + + + + + Cached name for the 'get_src_alpha_blend_factor' method. + + + + + Cached name for the 'set_dst_alpha_blend_factor' method. + + + + + Cached name for the 'get_dst_alpha_blend_factor' method. + + + + + Cached name for the 'set_alpha_blend_op' method. + + + + + Cached name for the 'get_alpha_blend_op' method. + + + + + Cached name for the 'set_write_r' method. + + + + + Cached name for the 'get_write_r' method. + + + + + Cached name for the 'set_write_g' method. + + + + + Cached name for the 'get_write_g' method. + + + + + Cached name for the 'set_write_b' method. + + + + + Cached name for the 'get_write_b' method. + + + + + Cached name for the 'set_write_a' method. + + + + + Cached name for the 'get_write_a' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + controls the way depth and stencil comparisons are performed when sampling those values using . + + + + + If , enables depth testing which allows objects to be automatically occluded by other objects based on their depth. This also allows objects to be partially occluded by other objects. If , objects will appear in the order they were drawn (like in Godot's 2D renderer). + + + + + If , writes to the depth buffer whenever the depth test returns . Only works when enable_depth_test is also . + + + + + The method used for comparing the previous and current depth values. + + + + + If , each depth value will be tested to see if it is between and . If it is outside of these values, it is discarded. + + + + + The minimum depth that returns for . + + + + + The maximum depth that returns for . + + + + + If , enables stencil testing. There are separate stencil buffers for front-facing triangles and back-facing triangles. See properties that begin with "front_op" and properties with "back_op" for each. + + + + + The operation to perform on the stencil buffer for front pixels that fail the stencil test. + + + + + The operation to perform on the stencil buffer for front pixels that pass the stencil test. + + + + + The operation to perform on the stencil buffer for front pixels that pass the stencil test but fail the depth test. + + + + + The method used for comparing the previous front stencil value and . + + + + + Selects which bits from the front stencil value will be compared. + + + + + Selects which bits from the front stencil value will be changed. + + + + + The value the previous front stencil value will be compared to. + + + + + The operation to perform on the stencil buffer for back pixels that fail the stencil test. + + + + + The operation to perform on the stencil buffer for back pixels that pass the stencil test. + + + + + The operation to perform on the stencil buffer for back pixels that pass the stencil test but fail the depth test. + + + + + The method used for comparing the previous back stencil value and . + + + + + Selects which bits from the back stencil value will be compared. + + + + + Selects which bits from the back stencil value will be changed. + + + + + The value the previous back stencil value will be compared to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_depth_test' property. + + + + + Cached name for the 'enable_depth_write' property. + + + + + Cached name for the 'depth_compare_operator' property. + + + + + Cached name for the 'enable_depth_range' property. + + + + + Cached name for the 'depth_range_min' property. + + + + + Cached name for the 'depth_range_max' property. + + + + + Cached name for the 'enable_stencil' property. + + + + + Cached name for the 'front_op_fail' property. + + + + + Cached name for the 'front_op_pass' property. + + + + + Cached name for the 'front_op_depth_fail' property. + + + + + Cached name for the 'front_op_compare' property. + + + + + Cached name for the 'front_op_compare_mask' property. + + + + + Cached name for the 'front_op_write_mask' property. + + + + + Cached name for the 'front_op_reference' property. + + + + + Cached name for the 'back_op_fail' property. + + + + + Cached name for the 'back_op_pass' property. + + + + + Cached name for the 'back_op_depth_fail' property. + + + + + Cached name for the 'back_op_compare' property. + + + + + Cached name for the 'back_op_compare_mask' property. + + + + + Cached name for the 'back_op_write_mask' property. + + + + + Cached name for the 'back_op_reference' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_depth_test' method. + + + + + Cached name for the 'get_enable_depth_test' method. + + + + + Cached name for the 'set_enable_depth_write' method. + + + + + Cached name for the 'get_enable_depth_write' method. + + + + + Cached name for the 'set_depth_compare_operator' method. + + + + + Cached name for the 'get_depth_compare_operator' method. + + + + + Cached name for the 'set_enable_depth_range' method. + + + + + Cached name for the 'get_enable_depth_range' method. + + + + + Cached name for the 'set_depth_range_min' method. + + + + + Cached name for the 'get_depth_range_min' method. + + + + + Cached name for the 'set_depth_range_max' method. + + + + + Cached name for the 'get_depth_range_max' method. + + + + + Cached name for the 'set_enable_stencil' method. + + + + + Cached name for the 'get_enable_stencil' method. + + + + + Cached name for the 'set_front_op_fail' method. + + + + + Cached name for the 'get_front_op_fail' method. + + + + + Cached name for the 'set_front_op_pass' method. + + + + + Cached name for the 'get_front_op_pass' method. + + + + + Cached name for the 'set_front_op_depth_fail' method. + + + + + Cached name for the 'get_front_op_depth_fail' method. + + + + + Cached name for the 'set_front_op_compare' method. + + + + + Cached name for the 'get_front_op_compare' method. + + + + + Cached name for the 'set_front_op_compare_mask' method. + + + + + Cached name for the 'get_front_op_compare_mask' method. + + + + + Cached name for the 'set_front_op_write_mask' method. + + + + + Cached name for the 'get_front_op_write_mask' method. + + + + + Cached name for the 'set_front_op_reference' method. + + + + + Cached name for the 'get_front_op_reference' method. + + + + + Cached name for the 'set_back_op_fail' method. + + + + + Cached name for the 'get_back_op_fail' method. + + + + + Cached name for the 'set_back_op_pass' method. + + + + + Cached name for the 'get_back_op_pass' method. + + + + + Cached name for the 'set_back_op_depth_fail' method. + + + + + Cached name for the 'get_back_op_depth_fail' method. + + + + + Cached name for the 'set_back_op_compare' method. + + + + + Cached name for the 'get_back_op_compare' method. + + + + + Cached name for the 'set_back_op_compare_mask' method. + + + + + Cached name for the 'get_back_op_compare_mask' method. + + + + + Cached name for the 'set_back_op_write_mask' method. + + + + + Cached name for the 'get_back_op_write_mask' method. + + + + + Cached name for the 'set_back_op_reference' method. + + + + + Cached name for the 'get_back_op_reference' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is used to control how multisample or supersample antialiasing is being performed when rendering using . + + + + + The number of MSAA samples (or SSAA samples if is ) to perform. Higher values result in better antialiasing, at the cost of performance. + + + + + If , enables per-sample shading which replaces MSAA by SSAA. This provides higher quality antialiasing that works with transparent (alpha scissor) edges. This has a very high performance cost. See also . See the per-sample shading Vulkan documentation for more details. + + + + + The multiplier of that determines how many samples are performed for each fragment. Must be between 0.0 and 1.0 (inclusive). Only effective if is . If is 1.0, fragment invocation must only read from the coverage index sample. Tile image access must not be used if is not 1.0. + + + + + If , alpha to coverage is enabled. This generates a temporary coverage value based on the alpha component of the fragment's first color output. This allows alpha transparency to make use of multisample antialiasing. + + + + + If , alpha is forced to either 0.0 or 1.0. This allows hardening the edges of antialiased alpha transparencies. Only relevant if is . + + + + + The sample mask array. See the sample mask Vulkan documentation for more details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sample_count' property. + + + + + Cached name for the 'enable_sample_shading' property. + + + + + Cached name for the 'min_sample_shading' property. + + + + + Cached name for the 'enable_alpha_to_coverage' property. + + + + + Cached name for the 'enable_alpha_to_one' property. + + + + + Cached name for the 'sample_masks' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_sample_count' method. + + + + + Cached name for the 'get_sample_count' method. + + + + + Cached name for the 'set_enable_sample_shading' method. + + + + + Cached name for the 'get_enable_sample_shading' method. + + + + + Cached name for the 'set_min_sample_shading' method. + + + + + Cached name for the 'get_min_sample_shading' method. + + + + + Cached name for the 'set_enable_alpha_to_coverage' method. + + + + + Cached name for the 'get_enable_alpha_to_coverage' method. + + + + + Cached name for the 'set_enable_alpha_to_one' method. + + + + + Cached name for the 'get_enable_alpha_to_one' method. + + + + + Cached name for the 'set_sample_masks' method. + + + + + Cached name for the 'get_sample_masks' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + If , clamps depth values according to the minimum and maximum depth of the associated viewport. + + + + + If , primitives are discarded immediately before the rasterization stage. + + + + + If , performs wireframe rendering for triangles instead of flat or textured rendering. + + + + + The cull mode to use when drawing polygons, which determines whether front faces or backfaces are hidden. + + + + + The winding order to use to determine which face of a triangle is considered its front face. + + + + + If , each generated depth value will by offset by some amount. The specific amount is generated per polygon based on the values of and . + + + + + A constant offset added to each depth value. Applied after . + + + + + A limit for how much each depth value can be offset. If negative, it serves as a minimum value, but if positive, it serves as a maximum value. + + + + + A constant scale applied to the slope of each polygons' depth. Applied before . + + + + + The line width to use when drawing lines (in pixels). Thick lines may not be supported on all hardware. + + + + + The number of control points to use when drawing a patch with tessellation enabled. Higher values result in higher quality at the cost of performance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_depth_clamp' property. + + + + + Cached name for the 'discard_primitives' property. + + + + + Cached name for the 'wireframe' property. + + + + + Cached name for the 'cull_mode' property. + + + + + Cached name for the 'front_face' property. + + + + + Cached name for the 'depth_bias_enabled' property. + + + + + Cached name for the 'depth_bias_constant_factor' property. + + + + + Cached name for the 'depth_bias_clamp' property. + + + + + Cached name for the 'depth_bias_slope_factor' property. + + + + + Cached name for the 'line_width' property. + + + + + Cached name for the 'patch_control_points' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_depth_clamp' method. + + + + + Cached name for the 'get_enable_depth_clamp' method. + + + + + Cached name for the 'set_discard_primitives' method. + + + + + Cached name for the 'get_discard_primitives' method. + + + + + Cached name for the 'set_wireframe' method. + + + + + Cached name for the 'get_wireframe' method. + + + + + Cached name for the 'set_cull_mode' method. + + + + + Cached name for the 'get_cull_mode' method. + + + + + Cached name for the 'set_front_face' method. + + + + + Cached name for the 'get_front_face' method. + + + + + Cached name for the 'set_depth_bias_enabled' method. + + + + + Cached name for the 'get_depth_bias_enabled' method. + + + + + Cached name for the 'set_depth_bias_constant_factor' method. + + + + + Cached name for the 'get_depth_bias_constant_factor' method. + + + + + Cached name for the 'set_depth_bias_clamp' method. + + + + + Cached name for the 'get_depth_bias_clamp' method. + + + + + Cached name for the 'set_depth_bias_slope_factor' method. + + + + + Cached name for the 'get_depth_bias_slope_factor' method. + + + + + Cached name for the 'set_line_width' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'set_patch_control_points' method. + + + + + Cached name for the 'get_patch_control_points' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A specialization constant is a way to create additional variants of shaders without actually increasing the number of shader versions that are compiled. This allows improving performance by reducing the number of shader versions and reducing if branching, while still allowing shaders to be flexible for different use cases. + This object is used by . + + + + + The specialization constant's value. Only , and types are valid for specialization constants. + + + + + The identifier of the specialization constant. This is a value starting from 0 and that increments for every different specialization constant for a given shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'value' property. + + + + + Cached name for the 'constant_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_value' method. + + + + + Cached name for the 'get_value' method. + + + + + Cached name for the 'set_constant_id' method. + + + + + Cached name for the 'get_constant_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The sampler's magnification filter. It is the filtering method used when sampling texels that appear bigger than on-screen pixels. + + + + + The sampler's minification filter. It is the filtering method used when sampling texels that appear smaller than on-screen pixels. + + + + + The filtering method to use for mipmaps. + + + + + The repeat mode to use along the U axis of UV coordinates. This affects the returned values if sampling outside the UV bounds. + + + + + The repeat mode to use along the V axis of UV coordinates. This affects the returned values if sampling outside the UV bounds. + + + + + The repeat mode to use along the W axis of UV coordinates. This affects the returned values if sampling outside the UV bounds. Only effective for 3D samplers. + + + + + The mipmap LOD bias to use. Positive values will make the sampler blurrier at a given distance, while negative values will make the sampler sharper at a given distance (at the risk of looking grainy). Recommended values are between -0.5 and 0.0. Only effective if the sampler has mipmaps available. + + + + + If , perform anisotropic sampling. See . + + + + + Maximum anisotropy that can be used when sampling. Only effective if is . Higher values result in a sharper sampler at oblique angles, at the cost of performance (due to memory bandwidth). This value may be limited by the graphics hardware in use. Most graphics hardware only supports values up to 16.0. + If is 1.0, forcibly disables anisotropy even if is . + + + + + If , returned values will be based on the comparison operation defined in . This is a hardware-based approach and is therefore faster than performing this manually in a shader. For example, compare operations are used for shadow map rendering by comparing depth values from a shadow sampler. + + + + + The compare operation to use. Only effective if is . + + + + + The minimum mipmap LOD bias to display (highest resolution). Only effective if the sampler has mipmaps available. + + + + + The maximum mipmap LOD bias to display (lowest resolution). Only effective if the sampler has mipmaps available. + + + + + The border color that will be returned when sampling outside the sampler's bounds and the , or modes have repeating disabled. + + + + + If , the texture will be sampled with coordinates ranging from 0 to the texture's resolution. Otherwise, the coordinates will be normalized and range from 0 to 1. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mag_filter' property. + + + + + Cached name for the 'min_filter' property. + + + + + Cached name for the 'mip_filter' property. + + + + + Cached name for the 'repeat_u' property. + + + + + Cached name for the 'repeat_v' property. + + + + + Cached name for the 'repeat_w' property. + + + + + Cached name for the 'lod_bias' property. + + + + + Cached name for the 'use_anisotropy' property. + + + + + Cached name for the 'anisotropy_max' property. + + + + + Cached name for the 'enable_compare' property. + + + + + Cached name for the 'compare_op' property. + + + + + Cached name for the 'min_lod' property. + + + + + Cached name for the 'max_lod' property. + + + + + Cached name for the 'border_color' property. + + + + + Cached name for the 'unnormalized_uvw' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mag_filter' method. + + + + + Cached name for the 'get_mag_filter' method. + + + + + Cached name for the 'set_min_filter' method. + + + + + Cached name for the 'get_min_filter' method. + + + + + Cached name for the 'set_mip_filter' method. + + + + + Cached name for the 'get_mip_filter' method. + + + + + Cached name for the 'set_repeat_u' method. + + + + + Cached name for the 'get_repeat_u' method. + + + + + Cached name for the 'set_repeat_v' method. + + + + + Cached name for the 'get_repeat_v' method. + + + + + Cached name for the 'set_repeat_w' method. + + + + + Cached name for the 'get_repeat_w' method. + + + + + Cached name for the 'set_lod_bias' method. + + + + + Cached name for the 'get_lod_bias' method. + + + + + Cached name for the 'set_use_anisotropy' method. + + + + + Cached name for the 'get_use_anisotropy' method. + + + + + Cached name for the 'set_anisotropy_max' method. + + + + + Cached name for the 'get_anisotropy_max' method. + + + + + Cached name for the 'set_enable_compare' method. + + + + + Cached name for the 'get_enable_compare' method. + + + + + Cached name for the 'set_compare_op' method. + + + + + Cached name for the 'get_compare_op' method. + + + + + Cached name for the 'set_min_lod' method. + + + + + Cached name for the 'get_min_lod' method. + + + + + Cached name for the 'set_max_lod' method. + + + + + Cached name for the 'get_max_lod' method. + + + + + Cached name for the 'set_border_color' method. + + + + + Cached name for the 'get_border_color' method. + + + + + Cached name for the 'set_unnormalized_uvw' method. + + + + + Cached name for the 'get_unnormalized_uvw' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Compiled shader file in SPIR-V form. + See also . is only meant to be used with the API. It should not be confused with Godot's own resource, which is what Godot's various nodes use for high-level shader programming. + + + + + The base compilation error message, which indicates errors not related to a specific shader stage if non-empty. If empty, shader compilation is not necessarily successful (check 's error message members). + + + + + Sets the SPIR-V that will be compiled for the specified . + + + + + Returns the SPIR-V intermediate representation for the specified shader . + + + + + Returns the list of compiled versions for this shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_versions' property. + + + + + Cached name for the 'base_error' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bytecode' method. + + + + + Cached name for the 'get_spirv' method. + + + + + Cached name for the 'get_version_list' method. + + + + + Cached name for the 'set_base_error' method. + + + + + Cached name for the 'get_base_error' method. + + + + + Cached name for the '_set_versions' method. + + + + + Cached name for the '_get_versions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + represents a 's SPIR-V code for various shader stages, as well as possible compilation error messages. SPIR-V is a low-level intermediate shader representation. This intermediate representation is not used directly by GPUs for rendering, but it can be compiled into binary shaders that GPUs can understand. Unlike compiled shaders, SPIR-V is portable across GPU models and driver versions. + This object is used by . + + + + + The SPIR-V bytecode for the vertex shader stage. + + + + + The SPIR-V bytecode for the fragment shader stage. + + + + + The SPIR-V bytecode for the tessellation control shader stage. + + + + + The SPIR-V bytecode for the tessellation evaluation shader stage. + + + + + The SPIR-V bytecode for the compute shader stage. + + + + + The compilation error message for the vertex shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the fragment shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the tessellation control shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the tessellation evaluation shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + The compilation error message for the compute shader stage (set by the SPIR-V compiler and Godot). If empty, shader compilation was successful. + + + + + Sets the SPIR-V for the given shader . Equivalent to setting one of , , , , . + + + + + Sets the SPIR-V for the given shader . Equivalent to setting one of , , , , . + + + + + Equivalent to getting one of , , , , . + + + + + Sets the compilation error message for the given shader to . Equivalent to setting one of , , , , . + + + + + Returns the compilation error message for the given shader . Equivalent to getting one of , , , , . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bytecode_vertex' property. + + + + + Cached name for the 'bytecode_fragment' property. + + + + + Cached name for the 'bytecode_tesselation_control' property. + + + + + Cached name for the 'bytecode_tesselation_evaluation' property. + + + + + Cached name for the 'bytecode_compute' property. + + + + + Cached name for the 'compile_error_vertex' property. + + + + + Cached name for the 'compile_error_fragment' property. + + + + + Cached name for the 'compile_error_tesselation_control' property. + + + + + Cached name for the 'compile_error_tesselation_evaluation' property. + + + + + Cached name for the 'compile_error_compute' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stage_bytecode' method. + + + + + Cached name for the 'get_stage_bytecode' method. + + + + + Cached name for the 'set_stage_compile_error' method. + + + + + Cached name for the 'get_stage_compile_error' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shader source code in text form. + See also . is only meant to be used with the API. It should not be confused with Godot's own resource, which is what Godot's various nodes use for high-level shader programming. + + + + + Source code for the shader's vertex stage. + + + + + Source code for the shader's fragment stage. + + + + + Source code for the shader's tessellation control stage. + + + + + Source code for the shader's tessellation evaluation stage. + + + + + Source code for the shader's compute stage. + + + + + The language the shader is written in. + + + + + Sets code for the specified shader . Equivalent to setting one of , , , or . + Note: If you set the compute shader source code using this method directly, remember to remove the Godot-specific hint #[compute]. + + + + + Returns source code for the specified shader . Equivalent to getting one of , , , or . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source_vertex' property. + + + + + Cached name for the 'source_fragment' property. + + + + + Cached name for the 'source_tesselation_control' property. + + + + + Cached name for the 'source_tesselation_evaluation' property. + + + + + Cached name for the 'source_compute' property. + + + + + Cached name for the 'language' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stage_source' method. + + + + + Cached name for the 'get_stage_source' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The texture's pixel data format. + + + + + The texture's width (in pixels). + + + + + The texture's height (in pixels). + + + + + The texture's depth (in pixels). This is always 1 for 2D textures. + + + + + The number of layers in the texture. Only relevant for 2D texture arrays. + + + + + The number of mipmaps available in the texture. + + + + + The texture type. + + + + + The number of samples used when sampling the texture. + + + + + The texture's usage bits, which determine what can be done using the texture. + + + + + The texture will be used as the destination of a resolve operation. + + + + + If a texture is discardable, its contents do not need to be preserved between frames. This flag is only relevant when the texture is used as target in a draw list. + This information is used by to figure out if a texture's contents can be discarded, eliminating unnecessary writes to memory and boosting performance. + + + + + Adds as a valid format for the corresponding 's property. If any format is added as shareable, then the main must also be added. + + + + + Removes from the list of valid formats that the corresponding 's property can be set to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'array_layers' property. + + + + + Cached name for the 'mipmaps' property. + + + + + Cached name for the 'texture_type' property. + + + + + Cached name for the 'samples' property. + + + + + Cached name for the 'usage_bits' property. + + + + + Cached name for the 'is_resolve_buffer' property. + + + + + Cached name for the 'is_discardable' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_array_layers' method. + + + + + Cached name for the 'get_array_layers' method. + + + + + Cached name for the 'set_mipmaps' method. + + + + + Cached name for the 'get_mipmaps' method. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached name for the 'set_samples' method. + + + + + Cached name for the 'get_samples' method. + + + + + Cached name for the 'set_usage_bits' method. + + + + + Cached name for the 'get_usage_bits' method. + + + + + Cached name for the 'set_is_resolve_buffer' method. + + + + + Cached name for the 'get_is_resolve_buffer' method. + + + + + Cached name for the 'set_is_discardable' method. + + + + + Cached name for the 'get_is_discardable' method. + + + + + Cached name for the 'add_shareable_format' method. + + + + + Cached name for the 'remove_shareable_format' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + Optional override for the data format to return sampled values in. The corresponding must have had this added as a shareable format. The default value of does not override the format. + + + + + The channel to sample when sampling the red color channel. + + + + + The channel to sample when sampling the green color channel. + + + + + The channel to sample when sampling the blue color channel. + + + + + The channel to sample when sampling the alpha channel. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'format_override' property. + + + + + Cached name for the 'swizzle_r' property. + + + + + Cached name for the 'swizzle_g' property. + + + + + Cached name for the 'swizzle_b' property. + + + + + Cached name for the 'swizzle_a' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_format_override' method. + + + + + Cached name for the 'get_format_override' method. + + + + + Cached name for the 'set_swizzle_r' method. + + + + + Cached name for the 'get_swizzle_r' method. + + + + + Cached name for the 'set_swizzle_g' method. + + + + + Cached name for the 'get_swizzle_g' method. + + + + + Cached name for the 'set_swizzle_b' method. + + + + + Cached name for the 'get_swizzle_b' method. + + + + + Cached name for the 'set_swizzle_a' method. + + + + + Cached name for the 'get_swizzle_a' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The uniform's data type. + + + + + The uniform's binding. + + + + + Binds the given id to the uniform. The data associated with the id is then used when the uniform is passed to a shader. + + + + + Unbinds all ids currently bound to the uniform. + + + + + Returns an array of all ids currently bound to the uniform. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'uniform_type' property. + + + + + Cached name for the 'binding' property. + + + + + Cached name for the '_ids' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_uniform_type' method. + + + + + Cached name for the 'get_uniform_type' method. + + + + + Cached name for the 'set_binding' method. + + + + + Cached name for the 'get_binding' method. + + + + + Cached name for the 'add_id' method. + + + + + Cached name for the 'clear_ids' method. + + + + + Cached name for the '_set_ids' method. + + + + + Cached name for the 'get_ids' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object is used by . + + + + + The location in the shader that this attribute is bound to. + + + + + The number of bytes between the start of the vertex buffer and the first instance of this attribute. + + + + + The way that this attribute's data is interpreted when sent to a shader. + + + + + The number of bytes between the starts of consecutive instances of this attribute. + + + + + The rate at which this attribute is pulled from its vertex buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'location' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'format' property. + + + + + Cached name for the 'stride' property. + + + + + Cached name for the 'frequency' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_location' method. + + + + + Cached name for the 'get_location' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_format' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'set_stride' method. + + + + + Cached name for the 'get_stride' method. + + + + + Cached name for the 'set_frequency' method. + + + + + Cached name for the 'get_frequency' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + RandomNumberGenerator is a class for generating pseudo-random numbers. It currently uses PCG32. + Note: The underlying algorithm is an implementation detail and should not be depended upon. + To generate a random float number (within a given range) based on a time-dependent seed: + + var rng = RandomNumberGenerator.new() + func _ready(): + var my_random_number = rng.randf_range(-10.0, 10.0) + + + + + + Initializes the random number generator state based on the given seed value. A given seed will give a reproducible sequence of pseudo-random numbers. + Note: The RNG does not have an avalanche effect, and can output similar random streams given similar seeds. Consider using a hash function to improve your seed quality if they're sourced externally. + Note: Setting this property produces a side effect of changing the internal , so make sure to initialize the seed before modifying the : + Note: The default value of this property is pseudo-random, and changes when calling . The 0 value documented here is a placeholder, and not the actual default seed. + + var rng = RandomNumberGenerator.new() + rng.seed = hash("Godot") + rng.state = 100 # Restore to some previously saved state. + + + + + + The current state of the random number generator. Save and restore this property to restore the generator to a previous state: + + var rng = RandomNumberGenerator.new() + print(rng.randf()) + var saved_state = rng.state # Store current state. + print(rng.randf()) # Advance internal state. + rng.state = saved_state # Restore the state. + print(rng.randf()) # Prints the same value as in previous. + + Note: Do not set state to arbitrary values, since the random number generator requires the state to have certain qualities to behave properly. It should only be set to values that came from the state property itself. To initialize the random number generator with arbitrary input, use instead. + Note: The default value of this property is pseudo-random, and changes when calling . The 0 value documented here is a placeholder, and not the actual default seed. + + + + + Returns a pseudo-random 32-bit unsigned integer between 0 and 4294967295 (inclusive). + + + + + Returns a pseudo-random float between 0.0 and 1.0 (inclusive). + + + + + Returns a normally-distributed, pseudo-random floating-point number from the specified and a standard . This is also known as a Gaussian distribution. + Note: This method uses the Box-Muller transform algorithm. + + + + + Returns a pseudo-random float between and (inclusive). + + + + + Returns a pseudo-random 32-bit signed integer between and (inclusive). + + + + + Returns a random index with non-uniform weights. Prints an error and returns -1 if the array is empty. + + + + + + Returns a random index with non-uniform weights. Prints an error and returns -1 if the array is empty. + + + + + + Sets up a time-based seed for this instance. Unlike the @GlobalScope random number generation functions, different instances can use different seeds. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'seed' property. + + + + + Cached name for the 'state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_seed' method. + + + + + Cached name for the 'get_seed' method. + + + + + Cached name for the 'set_state' method. + + + + + Cached name for the 'get_state' method. + + + + + Cached name for the 'randi' method. + + + + + Cached name for the 'randf' method. + + + + + Cached name for the 'randfn' method. + + + + + Cached name for the 'randf_range' method. + + + + + Cached name for the 'randi_range' method. + + + + + Cached name for the 'rand_weighted' method. + + + + + Cached name for the 'randomize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Range is an abstract base class for controls that represent a number within a range, using a configured and size. See e.g. and for examples of higher-level nodes using Range. + + + + + Minimum value. Range is clamped if is less than . + + + + + Maximum value. Range is clamped if is greater than . + + + + + If greater than 0, will always be rounded to a multiple of this property's value. If is also , will first be rounded to a multiple of this property's value, then rounded to the nearest integer. + + + + + Page size. Used mainly for . A 's grabber length is the 's size multiplied by over the difference between and . + + + + + Range's current value. Changing this property (even via code) will trigger signal. Use if you want to avoid it. + + + + + The value mapped between 0 and 1. + + + + + If , and is greater than 0, will be represented exponentially rather than linearly. + + + + + If , will always be rounded to the nearest integer. + + + + + If , may be greater than . + + + + + If , may be less than . + + + + + Called when the 's value is changed (following the same conditions as ). + + + + + Sets the 's current value to the specified , without emitting the signal. + + + + + Binds two s together along with any ranges previously grouped with either of them. When any of range's member variables change, it will share the new value with all other ranges in its group. + + + + + Stops the from sharing its member variables with any other. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when changes. When used on a , this is called continuously while dragging (potentially every frame). If you are performing an expensive operation in a function connected to , consider using a debouncing to call the function less often. + Note: Unlike signals such as , is also emitted when value is set directly via code. + + + + + Emitted when , , , or change. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'min_value' property. + + + + + Cached name for the 'max_value' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'page' property. + + + + + Cached name for the 'value' property. + + + + + Cached name for the 'ratio' property. + + + + + Cached name for the 'exp_edit' property. + + + + + Cached name for the 'rounded' property. + + + + + Cached name for the 'allow_greater' property. + + + + + Cached name for the 'allow_lesser' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_value_changed' method. + + + + + Cached name for the 'get_value' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'get_page' method. + + + + + Cached name for the 'get_as_ratio' method. + + + + + Cached name for the 'set_value' method. + + + + + Cached name for the 'set_value_no_signal' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'set_page' method. + + + + + Cached name for the 'set_as_ratio' method. + + + + + Cached name for the 'set_use_rounded_values' method. + + + + + Cached name for the 'is_using_rounded_values' method. + + + + + Cached name for the 'set_exp_ratio' method. + + + + + Cached name for the 'is_ratio_exp' method. + + + + + Cached name for the 'set_allow_greater' method. + + + + + Cached name for the 'is_greater_allowed' method. + + + + + Cached name for the 'set_allow_lesser' method. + + + + + Cached name for the 'is_lesser_allowed' method. + + + + + Cached name for the 'share' method. + + + + + Cached name for the 'unshare' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'value_changed' signal. + + + + + Cached name for the 'changed' signal. + + + + + A raycast represents a ray from its origin to its that finds the closest along its path, if it intersects any. + can ignore some objects by adding them to an exception list, by making its detection reporting ignore s () or s (), or by configuring physics layers. + 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 multiple times within the same physics frame, use . + To sweep over a region of 2D space, you can approximate the region with multiple s or use . + + + + + If , collisions will be reported. + + + + + If , the parent node will be excluded from collision detection. + + + + + The ray's destination point, relative to the RayCast's position. + + + + + The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + If , the ray will detect a hit when starting inside shapes. In this case the collision normal will be Vector2(0, 0). Does not affect concave polygon shapes. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + Returns whether any object is intersecting with the ray's vector (considering the vector length). + + + + + Updates the collision information for the ray immediately, without waiting for the next _physics_process call. Use this method, for example, when the ray or its parent has changed state. + Note: does not need to be for this to work. + + + + + Returns the first object that the ray intersects, or if no object is intersecting the ray (i.e. returns ). + + + + + Returns the of the first object that the ray intersects, or an empty if no object is intersecting the ray (i.e. returns ). + + + + + Returns the shape ID of the first object that the ray intersects, or 0 if no object is intersecting the ray (i.e. returns ). + To get the intersected shape node, for a target, use: + + var target = (CollisionObject2D)GetCollider(); // A CollisionObject2D. + var shapeId = GetColliderShape(); // The shape index in the collider. + var ownerId = target.ShapeFindOwner(shapeId); // The owner ID in the collider. + var shape = target.ShapeOwnerGetOwner(ownerId); + + + + + + Returns the collision point at which the ray intersects the closest object, in the global coordinate system. If is and the ray starts inside of a collision shape, this function will return the origin point of the ray. + Note: Check that returns before calling this method to ensure the returned point is valid and up-to-date. + + + + + Returns the normal of the intersecting object's shape at the collision point, or Vector2(0, 0) if the ray starts inside the shape and is . + Note: Check that returns before calling this method to ensure the returned normal is valid and up-to-date. + + + + + Adds a collision exception so the ray does not report collisions with the specified . + + + + + Adds a collision exception so the ray does not report collisions with the specified node. + + + + + Removes a collision exception so the ray does report collisions with the specified . + + + + + Removes a collision exception so the ray does report collisions with the specified node. + + + + + Removes all collision exceptions for this ray. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'force_raycast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A raycast represents a ray from its origin to its that finds the closest along its path, if it intersects any. + can ignore some objects by adding them to an exception list, by making its detection reporting ignore s () or s (), or by configuring physics layers. + 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 multiple times within the same physics frame, use . + To sweep over a region of 3D space, you can approximate the region with multiple s or use . + + + + + If , collisions will be reported. + + + + + If , collisions will be ignored for this RayCast3D's immediate parent. + + + + + The ray's destination point, relative to the RayCast's position. + + + + + The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + If , the ray will detect a hit when starting inside shapes. In this case the collision normal will be Vector3(0, 0, 0). Does not affect shapes with no volume like concave polygon or heightmap. + + + + + If , the ray will hit back faces with concave polygon shapes with back face enabled or heightmap shapes. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + The custom color to use to draw the shape in the editor and at run-time if Visible Collision Shapes is enabled in the Debug menu. This color will be highlighted at run-time if the is colliding with something. + If set to Color(0.0, 0.0, 0.0) (by default), the color set in ProjectSettings.debug/shapes/collision/shape_color is used. + + + + + If set to 1, a line is used as the debug shape. Otherwise, a truncated pyramid is drawn to represent the . Requires Visible Collision Shapes to be enabled in the Debug menu for the debug shape to be visible at run-time. + + + + + Returns whether any object is intersecting with the ray's vector (considering the vector length). + + + + + Updates the collision information for the ray immediately, without waiting for the next _physics_process call. Use this method, for example, when the ray or its parent has changed state. + Note: does not need to be for this to work. + + + + + Returns the first object that the ray intersects, or if no object is intersecting the ray (i.e. returns ). + + + + + Returns the of the first object that the ray intersects, or an empty if no object is intersecting the ray (i.e. returns ). + + + + + Returns the shape ID of the first object that the ray intersects, or 0 if no object is intersecting the ray (i.e. returns ). + To get the intersected shape node, for a target, use: + + var target = (CollisionObject3D)GetCollider(); // A CollisionObject3D. + var shapeId = GetColliderShape(); // The shape index in the collider. + var ownerId = target.ShapeFindOwner(shapeId); // The owner ID in the collider. + var shape = target.ShapeOwnerGetOwner(ownerId); + + + + + + Returns the collision point at which the ray intersects the closest object, in the global coordinate system. If is and the ray starts inside of a collision shape, this function will return the origin point of the ray. + Note: Check that returns before calling this method to ensure the returned point is valid and up-to-date. + + + + + Returns the normal of the intersecting object's shape at the collision point, or Vector3(0, 0, 0) if the ray starts inside the shape and is . + Note: Check that returns before calling this method to ensure the returned normal is valid and up-to-date. + + + + + Returns the collision object's face index at the collision point, or -1 if the shape intersecting the ray is not a . + + + + + Adds a collision exception so the ray does not report collisions with the specified . + + + + + Adds a collision exception so the ray does not report collisions with the specified node. + + + + + Removes a collision exception so the ray does report collisions with the specified . + + + + + Removes a collision exception so the ray does report collisions with the specified node. + + + + + Removes all collision exceptions for this ray. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'hit_from_inside' property. + + + + + Cached name for the 'hit_back_faces' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'debug_shape_custom_color' property. + + + + + Cached name for the 'debug_shape_thickness' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'force_raycast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_collision_face_index' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'set_hit_from_inside' method. + + + + + Cached name for the 'is_hit_from_inside_enabled' method. + + + + + Cached name for the 'set_hit_back_faces' method. + + + + + Cached name for the 'is_hit_back_faces_enabled' method. + + + + + Cached name for the 'set_debug_shape_custom_color' method. + + + + + Cached name for the 'get_debug_shape_custom_color' method. + + + + + Cached name for the 'set_debug_shape_thickness' method. + + + + + Cached name for the 'get_debug_shape_thickness' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D rectangle shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than , but slower than . + + + + + The rectangle's width and height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for any object that keeps a reference count. and many other helper objects inherit this class. + Unlike other types, s keep an internal reference counter so that they are automatically released when no longer in use, and only then. s therefore do not need to be freed manually with . + instances caught in a cyclic reference will not be freed automatically. For example, if a node holds a reference to instance A, which directly or indirectly holds a reference back to A, A's reference count will be 2. Destruction of the node will leave A dangling with a reference count of 1, and there will be a memory leak. To prevent this, one of the references in the cycle can be made weak with @GlobalScope.weakref. + In the vast majority of use cases, instantiating and using -derived types is all you need to do. The methods provided in this class are only for advanced users, and can cause issues if misused. + Note: In C#, reference-counted objects will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free reference-counted objects that are no longer in use. This means that unused ones will remain in memory for a while before being removed. + + + + + Initializes the internal reference counter. Use this only if you really know what you are doing. + Returns whether the initialization was successful. + + + + + Increments the internal reference counter. Use this only if you really know what you are doing. + Returns if the increment was successful, otherwise. + + + + + Decrements the internal reference counter. Use this only if you really know what you are doing. + Returns if the object should be freed after the decrement, otherwise. + + + + + Returns the current reference count. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'init_ref' method. + + + + + Cached name for the 'reference' method. + + + + + Cached name for the 'unreference' method. + + + + + Cached name for the 'get_reference_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A rectangle box that displays only a colored border around its rectangle. It is used to visualize the extents of a . + + + + + Sets the border color of the . + + + + + Sets the border width of the . The border grows both inwards and outwards with respect to the rectangle box. + + + + + If , the will only be visible while in editor. Otherwise, will be visible in the running project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'border_color' property. + + + + + Cached name for the 'border_width' property. + + + + + Cached name for the 'editor_only' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_border_color' method. + + + + + Cached name for the 'set_border_color' method. + + + + + Cached name for the 'get_border_width' method. + + + + + Cached name for the 'set_border_width' method. + + + + + Cached name for the 'get_editor_only' method. + + + + + Cached name for the 'set_editor_only' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Captures its surroundings as a cubemap, and stores versions of it with increasing levels of blur to simulate different material roughnesses. + The is used to create high-quality reflections at a low performance cost (when is ). s can be blended together and with the rest of the scene smoothly. s can also be combined with , SDFGI () and screen-space reflections () to get more accurate reflections in specific areas. s render all objects within their , so updating them can be quite expensive. It is best to update them once with the important static objects and then leave them as-is. + Note: Unlike and SDFGI, s only source their environment from a node. If you specify an resource within a node, it will be ignored by the . This can lead to incorrect lighting within the . + Note: Reflection probes are only supported in the Forward+ and Mobile rendering methods, not Compatibility. When using the Mobile rendering method, only 8 reflection probes can be displayed on each mesh resource. Attempting to display more than 8 reflection probes on a single mesh resource will result in reflection probes flickering in and out as the camera moves. + Note: When using the Mobile rendering method, reflection probes will only correctly affect meshes whose visibility AABB intersects with the reflection probe's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the reflection probe may not be visible on the mesh. + + + + + 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 , 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 update by moving the slightly in any direction. + + + + + 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 at most per scene. For all other use cases, use . + + + + + Do not apply any ambient lighting inside the 's box defined by its . + + + + + Apply automatically-sourced environment lighting inside the 's box defined by its . + + + + + Apply custom ambient lighting inside the 's box defined by its . See and . + + + + + Sets how frequently the is updated. Can be or . + + + + + Defines the reflection intensity. Intensity modulates the strength of the reflection. + + + + + Defines the distance in meters over which a probe blends into the scene. + + + + + The maximum distance away from the an object can be before it is culled. Decrease this to improve performance, especially when using the . + Note: The maximum reflection distance is always at least equal to the probe's extents. This means that decreasing will not always cull objects from reflections, especially if the reflection probe's box defined by its is already large. + + + + + The size of the reflection probe. The larger the size, the more space covered by the probe, which will lower the perceived resolution. It is best to keep the size only as large as you need it. + Note: To better fit areas that are not aligned to the grid, you can rotate the node. + + + + + Sets the origin offset to be used when this is in mode. This can be set to a non-zero value to ensure a reflection fits a rectangle-shaped room, while reducing the number of objects that "get in the way" of the reflection. + + + + + If , enables box projection. This makes reflections look more correct in rectangle-shaped rooms by offsetting the reflection center depending on the camera's location. + Note: To better fit rectangle-shaped rooms that are not aligned to the grid, you can rotate the node. + + + + + If , reflections will ignore sky contribution. + + + + + If , computes shadows in the reflection probe. This makes the reflection probe slower to render; you may want to disable this if using the . + + + + + Sets the cull mask which determines what objects are drawn by this probe. Every with a layer included in this cull mask will be rendered by the probe. It is best to only include large objects which are likely to take up a lot of space in the reflection in order to save on rendering cost. + This can also be used to prevent an object from reflecting upon itself (for instance, a centered on a vehicle). + + + + + Sets the reflection mask which determines what objects have reflections applied from this probe. Every with a layer included in this reflection mask will have reflections applied from this probe. See also , which can be used to exclude objects from appearing in the reflection while still making them affected by the . + + + + + The automatic LOD bias to use for meshes rendered within the (this is analog to ). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to 0.0, automatic LOD is disabled. Increase to improve performance at the cost of geometry detail, especially when using the . + Note: does not affect visibility ranges (also known as "manual" LOD or hierarchical LOD). + + + + + The ambient color to use within the 's box defined by its . The ambient color will smoothly blend with other s and the rest of the scene (outside the 's box defined by its ). + + + + + The custom ambient color to use within the 's box defined by its . Only effective if is . + + + + + The custom ambient color energy to use within the 's box defined by its . Only effective if is . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'update_mode' property. + + + + + Cached name for the 'intensity' property. + + + + + Cached name for the 'blend_distance' property. + + + + + Cached name for the 'max_distance' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'origin_offset' property. + + + + + Cached name for the 'box_projection' property. + + + + + Cached name for the 'interior' property. + + + + + Cached name for the 'enable_shadows' property. + + + + + Cached name for the 'cull_mask' property. + + + + + Cached name for the 'reflection_mask' property. + + + + + Cached name for the 'mesh_lod_threshold' property. + + + + + Cached name for the 'ambient_mode' property. + + + + + Cached name for the 'ambient_color' property. + + + + + Cached name for the 'ambient_color_energy' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_intensity' method. + + + + + Cached name for the 'get_intensity' method. + + + + + Cached name for the 'set_blend_distance' method. + + + + + Cached name for the 'get_blend_distance' method. + + + + + Cached name for the 'set_ambient_mode' method. + + + + + Cached name for the 'get_ambient_mode' method. + + + + + Cached name for the 'set_ambient_color' method. + + + + + Cached name for the 'get_ambient_color' method. + + + + + Cached name for the 'set_ambient_color_energy' method. + + + + + Cached name for the 'get_ambient_color_energy' method. + + + + + Cached name for the 'set_max_distance' method. + + + + + Cached name for the 'get_max_distance' method. + + + + + Cached name for the 'set_mesh_lod_threshold' method. + + + + + Cached name for the 'get_mesh_lod_threshold' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_origin_offset' method. + + + + + Cached name for the 'get_origin_offset' method. + + + + + Cached name for the 'set_as_interior' method. + + + + + Cached name for the 'is_set_as_interior' method. + + + + + Cached name for the 'set_enable_box_projection' method. + + + + + Cached name for the 'is_box_projection_enabled' method. + + + + + Cached name for the 'set_enable_shadows' method. + + + + + Cached name for the 'are_shadows_enabled' method. + + + + + Cached name for the 'set_cull_mask' method. + + + + + Cached name for the 'get_cull_mask' method. + + + + + Cached name for the 'set_reflection_mask' method. + + + + + Cached name for the 'get_reflection_mask' method. + + + + + Cached name for the 'set_update_mode' method. + + + + + Cached name for the 'get_update_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A regular expression (or regex) is a compact language that can be used to recognize strings that follow a specific pattern, such as URLs, email addresses, complete sentences, etc. For example, a regex of ab[0-9] would find any string that is ab followed by any number from 0 to 9. 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 before it can be used. + + var regex = RegEx.new() + regex.compile("\\w-(\\d+)") + + The search pattern must be escaped first for GDScript before it is escaped for the expression. For example, compile("\\d+") would be read by RegEx as \d+. Similarly, compile("\"(?:\\\\.|[^\"])*\"") would be read as "(?:\\.|[^"])*". In GDScript, you can also use raw string literals (r-strings). For example, compile(r'"(?:\\.|[^"])*"') would be read the same. + Using , you can find the pattern within the given text. If a pattern is found, is returned and you can retrieve details of the results using methods such as and . + + var regex = RegEx.new() + regex.compile("\\w-(\\d+)") + var result = regex.search("abc n-0123") + if result: + print(result.get_string()) # Would print n-0123 + + The results of capturing groups () can be retrieved by passing the group number to the various methods in . Group 0 is the default and will always refer to the entire pattern. In the above example, calling result.get_string(1) would give you 0123. + This version of RegEx also supports named capturing groups, and the names can be used to retrieve the results. If two or more groups have the same name, the name would only refer to the first one with a match. + + var regex = RegEx.new() + regex.compile("d(?<digit>[0-9]+)|x(?<digit>[0-9a-f]+)") + var result = regex.search("the number is x2f") + if result: + print(result.get_string("digit")) # Would print 2f + + If you need to process multiple results, generates a list of all non-overlapping results. This can be combined with a for loop for convenience. + + for result in regex.search_all("d01, d03, d0c, x3f and x42"): + print(result.get_string("digit")) + # Would print 01 03 0 3f 42 + + Example: Split a string using a RegEx: + + var regex = RegEx.new() + regex.compile("\\S+") # Negated whitespace character class. + var results = [] + for result in regex.search_all("One Two \n\tThree"): + results.push_back(result.get_string()) + # The `results` array now contains "One", "Two", and "Three". + + Note: Godot's regex implementation is based on the PCRE2 library. You can view the full pattern reference here. + Tip: You can use Regexr to test regular expressions online. + + + + + Creates and compiles a new object. See also . + + + + + This method resets the state of the object, as if it was freshly created. Namely, it unassigns the regular expression of this object. + + + + + Compiles and assign the search pattern to use. Returns if the compilation is successful. If compilation fails, returns and when is , details are printed to standard output. + + + + + Searches the text for the compiled pattern. Returns a container of the first matching result if found, otherwise . + The region to search within can be specified with and . This is useful when searching for another match in the same by calling this method again after a previous success. Note that setting these parameters differs from passing over a shortened string. For example, the start anchor ^ is not affected by , and the character before will be checked for the word boundary \b. + + + + + Searches the text for the compiled pattern. Returns an array of containers for each non-overlapping result. If no results were found, an empty array is returned instead. + The region to search within can be specified with and . This is useful when searching for another match in the same by calling this method again after a previous success. Note that setting these parameters differs from passing over a shortened string. For example, the start anchor ^ is not affected by , and the character before will be checked for the word boundary \b. + + + + + Searches the text for the compiled pattern and replaces it with the specified string. Escapes and backreferences such as $1 and $name are expanded and resolved. By default, only the first instance is replaced, but it can be changed for all instances (global replacement). + The region to search within can be specified with and . This is useful when searching for another match in the same by calling this method again after a previous success. Note that setting these parameters differs from passing over a shortened string. For example, the start anchor ^ is not affected by , and the character before will be checked for the word boundary \b. + + + + + Returns whether this object has a valid search pattern assigned. + + + + + Returns the original search pattern that was compiled. + + + + + Returns the number of capturing groups in compiled pattern. + + + + + Returns an array of names of named capturing groups in the compiled pattern. They are ordered by appearance. + + + + + Compiles and assign the search pattern to use. Returns if the compilation is successful. If compilation fails, returns and when is , details are printed to standard output. + + + + + Creates and compiles a new object. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_from_string' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'compile' method. + + + + + Cached name for the 'search' method. + + + + + Cached name for the 'search_all' method. + + + + + Cached name for the 'sub' method. + + + + + Cached name for the 'is_valid' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'get_group_count' method. + + + + + Cached name for the 'get_names' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Contains the results of a single match returned by and . 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. + + + + + The source string used with the search pattern to find this matching result. + + + + + A dictionary of named groups and its corresponding group number. Only groups that were matched are included. If multiple groups have the same name, that name would refer to the first matching one. + + + + + An of the match and its capturing groups. + + + + + Returns the number of capturing groups. + + + + + Returns the substring of the match from the source string. Capturing groups can be retrieved by providing its group number as an integer or its string name (if it's a named group). The default value of 0 refers to the whole pattern. + Returns an empty string if the group did not match or doesn't exist. + + If the parameter is null, then the default value is (Variant)(0). + + + + Returns the starting position of the match within the source string. The starting position of capturing groups can be retrieved by providing its group number as an integer or its string name (if it's a named group). The default value of 0 refers to the whole pattern. + Returns -1 if the group did not match or doesn't exist. + + If the parameter is null, then the default value is (Variant)(0). + + + + Returns the end position of the match within the source string. The end position of capturing groups can be retrieved by providing its group number as an integer or its string name (if it's a named group). The default value of 0 refers to the whole pattern. + Returns -1 if the group did not match or doesn't exist. + + If the parameter is null, then the default value is (Variant)(0). + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'subject' property. + + + + + Cached name for the 'names' property. + + + + + Cached name for the 'strings' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_subject' method. + + + + + Cached name for the 'get_group_count' method. + + + + + Cached name for the 'get_names' method. + + + + + Cached name for the 'get_strings' method. + + + + + Cached name for the 'get_string' method. + + + + + Cached name for the 'get_start' method. + + + + + Cached name for the 'get_end' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + RemoteTransform2D pushes its own to another 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. + + + + + The to the remote node, relative to the RemoteTransform2D's position in the scene. + + + + + If , global coordinates are used. If , local coordinates are used. + + + + + If , the remote node's position is updated. + + + + + If , the remote node's rotation is updated. + + + + + If , the remote node's scale is updated. + + + + + caches the remote node. It may not notice if the remote node disappears; forces it to update the cache again. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'remote_path' property. + + + + + Cached name for the 'use_global_coordinates' property. + + + + + Cached name for the 'update_position' property. + + + + + Cached name for the 'update_rotation' property. + + + + + Cached name for the 'update_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_remote_node' method. + + + + + Cached name for the 'get_remote_node' method. + + + + + Cached name for the 'force_update_cache' method. + + + + + Cached name for the 'set_use_global_coordinates' method. + + + + + Cached name for the 'get_use_global_coordinates' method. + + + + + Cached name for the 'set_update_position' method. + + + + + Cached name for the 'get_update_position' method. + + + + + Cached name for the 'set_update_rotation' method. + + + + + Cached name for the 'get_update_rotation' method. + + + + + Cached name for the 'set_update_scale' method. + + + + + Cached name for the 'get_update_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + RemoteTransform3D pushes its own to another 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. + + + + + The to the remote node, relative to the RemoteTransform3D's position in the scene. + + + + + If , global coordinates are used. If , local coordinates are used. + + + + + If , the remote node's position is updated. + + + + + If , the remote node's rotation is updated. + + + + + If , the remote node's scale is updated. + + + + + caches the remote node. It may not notice if the remote node disappears; forces it to update the cache again. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'remote_path' property. + + + + + Cached name for the 'use_global_coordinates' property. + + + + + Cached name for the 'update_position' property. + + + + + Cached name for the 'update_rotation' property. + + + + + Cached name for the 'update_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_remote_node' method. + + + + + Cached name for the 'get_remote_node' method. + + + + + Cached name for the 'force_update_cache' method. + + + + + Cached name for the 'set_use_global_coordinates' method. + + + + + Cached name for the 'get_use_global_coordinates' method. + + + + + Cached name for the 'set_update_position' method. + + + + + Cached name for the 'get_update_position' method. + + + + + Cached name for the 'set_update_rotation' method. + + + + + Cached name for the 'get_update_rotation' method. + + + + + Cached name for the 'set_update_scale' method. + + + + + Cached name for the 'get_update_scale' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract render data object, exists for the duration of rendering a single viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Returns the object managing the scene buffers for rendering this viewport. + + + + + Returns the object managing this frames scene data. + + + + + Returns the of the environment object in the being used to render this viewport. + + + + + Returns the of the camera attributes object in the being used to render this viewport. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_render_scene_buffers' method. + + + + + Cached name for the 'get_render_scene_data' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class allows for a RenderData implementation to be made in GDExtension. + + + + + Implement this in GDExtension to return the for the implementation's camera attributes object. + + + + + Implement this in GDExtension to return the of the implementation's environment object. + + + + + Implement this in GDExtension to return the implementation's object. + + + + + Implement this in GDExtension to return the implementation's object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_camera_attributes' method. + + + + + Cached name for the '_get_environment' method. + + + + + Cached name for the '_get_render_scene_buffers' method. + + + + + Cached name for the '_get_render_scene_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages all render data for the rendering device based renderers. + Note: This is an internal rendering server object only exposed for GDExtension plugins. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract scene buffers object, created for each viewport for which 3D rendering is done. It manages any additional buffers used during rendering and will discard buffers when the viewport is resized. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + This method is called by the rendering server when the associated viewports configuration is changed. It will discard the old buffers and recreate the internal buffers used. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'configure' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This configuration object is created and populated by the render engine on a viewport change and used to (re)configure a object. + + + + + The render target associated with these buffer. + + + + + The size of the 3D render buffer used for rendering. + + + + + The target (upscale) size if scaling is used. + + + + + The number of views we're rendering. + + + + + The requested scaling mode with which we upscale/downscale if and are not equal. + + + + + The MSAA mode we're using for 3D rendering. + + + + + The requested screen space AA applied in post processing. + + + + + FSR Sharpness applicable if FSR upscaling is used. + + + + + Bias applied to mipmaps. + + + + + Level of the anisotropic filter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_target' property. + + + + + Cached name for the 'internal_size' property. + + + + + Cached name for the 'target_size' property. + + + + + Cached name for the 'view_count' property. + + + + + Cached name for the 'scaling_3d_mode' property. + + + + + Cached name for the 'msaa_3d' property. + + + + + Cached name for the 'screen_space_aa' property. + + + + + Cached name for the 'fsr_sharpness' property. + + + + + Cached name for the 'texture_mipmap_bias' property. + + + + + Cached name for the 'anisotropic_filtering_level' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_render_target' method. + + + + + Cached name for the 'set_render_target' method. + + + + + Cached name for the 'get_internal_size' method. + + + + + Cached name for the 'set_internal_size' method. + + + + + Cached name for the 'get_target_size' method. + + + + + Cached name for the 'set_target_size' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'set_view_count' method. + + + + + Cached name for the 'get_scaling_3d_mode' method. + + + + + Cached name for the 'set_scaling_3d_mode' method. + + + + + Cached name for the 'get_msaa_3d' method. + + + + + Cached name for the 'set_msaa_3d' method. + + + + + Cached name for the 'get_screen_space_aa' method. + + + + + Cached name for the 'set_screen_space_aa' method. + + + + + Cached name for the 'get_fsr_sharpness' method. + + + + + Cached name for the 'set_fsr_sharpness' method. + + + + + Cached name for the 'get_texture_mipmap_bias' method. + + + + + Cached name for the 'set_texture_mipmap_bias' method. + + + + + Cached name for the 'get_anisotropic_filtering_level' method. + + + + + Cached name for the 'set_anisotropic_filtering_level' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class allows for a RenderSceneBuffer implementation to be made in GDExtension. + + + + + Implement this in GDExtension to handle the (re)sizing of a viewport. + + + + + Implement this in GDExtension to change the anisotropic filtering level. + + + + + Implement this in GDExtension to record a new FSR sharpness value. + + + + + Implement this in GDExtension to change the texture mipmap bias. + + + + + Implement this in GDExtension to react to the debanding flag changing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_configure' method. + + + + + Cached name for the '_set_anisotropic_filtering_level' method. + + + + + Cached name for the '_set_fsr_sharpness' method. + + + + + Cached name for the '_set_texture_mipmap_bias' method. + + + + + Cached name for the '_set_use_debanding' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages all 3D rendering buffers for the rendering device based renderers. An instance of this object is created for every viewport that has 3D rendering enabled. + All buffers are organized in contexts. The default context is called render_buffers and can contain amongst others the color buffer, depth buffer, velocity buffers, VRS density map and MSAA variants of these buffers. + Buffers are only guaranteed to exist during rendering of the viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Returns if a cached texture exists for this name. + + + + + Create a new texture with the given definition and cache this under the given name. Will return the existing texture if it already exists. + + + + + Create a new texture using the given format and view and cache this under the given name. Will return the existing texture if it already exists. + + + + + Create a new texture view for an existing texture and cache this under the given . Will return the existing texture view if it already exists. Will error if the source texture doesn't exist. + + + + + Returns a cached texture with this name. + + + + + Returns the texture format information with which a cached texture was created. + + + + + Returns a specific slice (layer or mipmap) for a cached texture. + + + + + Returns a specific view of a slice (layer or mipmap) for a cached texture. + + + + + Returns the texture size of a given slice of a cached texture. + + + + + Frees all buffers related to this context. + + + + + Returns the color texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the color texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the depth texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the depth texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the velocity texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is true and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the velocity texture we are rendering 3D content to. + + + + + Returns the render target associated with this buffers object. + + + + + Returns the view count for the associated viewport. + + + + + Returns the internal size of the render buffer (size before upscaling) with which textures are created by default. + + + + + Returns the target size of the render buffer (size after upscaling). + + + + + Returns the scaling mode used for upscaling. + + + + + Returns the FSR sharpness value used while rendering the 3D content (if is an FSR mode). + + + + + Returns the applied 3D MSAA mode for this viewport. + + + + + Returns the number of MSAA samples used. + + + + + Returns the screen-space antialiasing method applied. + + + + + Returns if TAA is enabled. + + + + + Returns if debanding is enabled. + + + + + Create a new texture with the given definition and cache this under the given name. Will return the existing texture if it already exists. + + + + + Returns the specified layer from the velocity texture we are rendering 3D content to. + + + + + Returns the velocity texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is true and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the depth texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the depth texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the specified layer from the color texture we are rendering 3D content to. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Returns the color texture we are rendering 3D content to. If multiview is used this will be a texture array with all views. + If is and MSAA is enabled, this returns the MSAA variant of the buffer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_texture' method. + + + + + Cached name for the 'create_texture' method. + + + + + Cached name for the 'create_texture_from_format' method. + + + + + Cached name for the 'create_texture_view' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'get_texture_format' method. + + + + + Cached name for the 'get_texture_slice' method. + + + + + Cached name for the 'get_texture_slice_view' method. + + + + + Cached name for the 'get_texture_slice_size' method. + + + + + Cached name for the 'clear_context' method. + + + + + Cached name for the 'get_color_texture' method. + + + + + Cached name for the 'get_color_layer' method. + + + + + Cached name for the 'get_depth_texture' method. + + + + + Cached name for the 'get_depth_layer' method. + + + + + Cached name for the 'get_velocity_texture' method. + + + + + Cached name for the 'get_velocity_layer' method. + + + + + Cached name for the 'get_render_target' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'get_internal_size' method. + + + + + Cached name for the 'get_target_size' method. + + + + + Cached name for the 'get_scaling_3d_mode' method. + + + + + Cached name for the 'get_fsr_sharpness' method. + + + + + Cached name for the 'get_msaa_3d' method. + + + + + Cached name for the 'get_texture_samples' method. + + + + + Cached name for the 'get_screen_space_aa' method. + + + + + Cached name for the 'get_use_taa' method. + + + + + Cached name for the 'get_use_debanding' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract scene data object, exists for the duration of rendering a single viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Returns the camera transform used to render this frame. + Note: If more than one view is rendered, this will return a centered transform. + + + + + Returns the camera projection used to render this frame. + Note: If more than one view is rendered, this will return a combined projection. + + + + + Returns the number of views being rendered. + + + + + Returns the eye offset per view used to render this frame. This is the offset between our camera transform and the eye transform. + + + + + Returns the view projection per view used to render this frame. + Note: If a single view is rendered, this returns the camera projection. If more than one view is rendered, this will return a projection for the given view including the eye offset. + + + + + Return the of the uniform buffer containing the scene data as a UBO. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cam_transform' method. + + + + + Cached name for the 'get_cam_projection' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'get_view_eye_offset' method. + + + + + Cached name for the 'get_view_projection' method. + + + + + Cached name for the 'get_uniform_buffer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class allows for a RenderSceneData implementation to be made in GDExtension. + + + + + Implement this in GDExtension to return the camera . + + + + + Implement this in GDExtension to return the camera . + + + + + Implement this in GDExtension to return the of the uniform buffer containing the scene data as a UBO. + + + + + Implement this in GDExtension to return the view count. + + + + + Implement this in GDExtension to return the eye offset for the given . + + + + + Implement this in GDExtension to return the view for the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_cam_projection' method. + + + + + Cached name for the '_get_cam_transform' method. + + + + + Cached name for the '_get_uniform_buffer' method. + + + + + Cached name for the '_get_view_count' method. + + + + + Cached name for the '_get_view_eye_offset' method. + + + + + Cached name for the '_get_view_projection' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Object holds scene data related to rendering a single frame of a viewport. + Note: This is an internal rendering server object, do not instantiate this from script. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed. + The rendering server can be used to bypass the scene/ system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized). + Resources are created using the *_create functions. These functions return s which are not references to the objects themselves, but opaque pointers towards these objects. + All objects are drawn to a viewport. You can use the attached to the or you can create one yourself with . When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using or . + Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any node with . Otherwise, a scenario can be created with . + Similarly, in 2D, a canvas is needed to draw all canvas items. + 3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using . The instance must also be attached to the scenario using in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always). + 2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with canvas_*. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + Marks an error that shows that the index array is empty. + + + + + Number of weights/bones per vertex. + + + + + The minimum Z-layer for canvas items. + + + + + The maximum Z-layer for canvas items. + + + + + The maximum number of glow levels that can be used with the glow post-processing effect. + + + + + The maximum number of directional lights that can be rendered at a given time in 2D. + + + + + The maximum number of surfaces a mesh can have. + + + + + The minimum renderpriority of all materials. + + + + + The maximum renderpriority of all materials. + + + + + The number of custom data arrays available (, , , ). + + + + + 2D texture. + + + + + Layered texture. + + + + + 3D texture. + + + + + Array of 2-dimensional textures (see ). + + + + + Cubemap texture (see ). + + + + + Array of cubemap textures (see ). + + + + + Left face of a . + + + + + Right face of a . + + + + + Bottom face of a . + + + + + Top face of a . + + + + + Front face of a . + + + + + Back face of a . + + + + + Shader is a 3D shader. + + + + + Shader is a 2D shader. + + + + + Shader is a particle shader (can be used in both 2D and 3D). + + + + + Shader is a 3D sky shader. + + + + + Shader is a 3D fog shader. + + + + + Represents the size of the enum. + + + + + Array is a vertex position array. + + + + + Array is a normal array. + + + + + Array is a tangent array. + + + + + Array is a vertex color array. + + + + + Array is a UV coordinates array. + + + + + Array is a UV coordinates array for the second set of UV coordinates. + + + + + Array is a custom data array for the first set of custom data. + + + + + Array is a custom data array for the second set of custom data. + + + + + Array is a custom data array for the third set of custom data. + + + + + Array is a custom data array for the fourth set of custom data. + + + + + Array contains bone information. + + + + + Array is weight information. + + + + + Array is an index array. + + + + + Represents the size of the enum. + + + + + Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, unsigned floating-point in the [0.0, 1.0] range. + + + + + Custom data array contains 8-bit-per-channel red/green/blue/alpha color data. Values are normalized, signed floating-point in the [-1.0, 1.0] range. + + + + + Custom data array contains 16-bit-per-channel red/green color data. Values are floating-point in half precision. + + + + + Custom data array contains 16-bit-per-channel red/green/blue/alpha color data. Values are floating-point in half precision. + + + + + Custom data array contains 32-bit-per-channel red color data. Values are floating-point in single precision. + + + + + Custom data array contains 32-bit-per-channel red/green color data. Values are floating-point in single precision. + + + + + Custom data array contains 32-bit-per-channel red/green/blue color data. Values are floating-point in single precision. + + + + + Custom data array contains 32-bit-per-channel red/green/blue/alpha color data. Values are floating-point in single precision. + + + + + Represents the size of the enum. + + + + + Flag used to mark a vertex position array. + + + + + Flag used to mark a normal array. + + + + + Flag used to mark a tangent array. + + + + + Flag used to mark a vertex color array. + + + + + Flag used to mark a UV coordinates array. + + + + + Flag used to mark a UV coordinates array for the second UV coordinates. + + + + + Flag used to mark an array of custom per-vertex data for the first set of custom data. + + + + + Flag used to mark an array of custom per-vertex data for the second set of custom data. + + + + + Flag used to mark an array of custom per-vertex data for the third set of custom data. + + + + + Flag used to mark an array of custom per-vertex data for the fourth set of custom data. + + + + + Flag used to mark a bone information array. + + + + + Flag used to mark a weights array. + + + + + Flag used to mark an index array. + + + + + Flag used to mark that the array contains 2D vertices. + + + + + Flag used to mark that the array uses 8 bone weights instead of 4. + + + + + 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. + + + + + 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. + + + + + Flag used to mark the start of the bits used to store the mesh version. + + + + + Flag used to shift a mesh format int to bring the version into the lowest digits. + + + + + Flag used to record the format used by prior mesh versions before the introduction of a version. + + + + + Flag used to record the second iteration of the mesh version flag. The primary difference between this and is that this version supports and in this version vertex positions are de-interleaved from normals and tangents. + + + + + Flag used to record the current version that the engine expects. Currently this is the same as . + + + + + Flag used to isolate the bits used for mesh version after using to shift them into place. + + + + + Primitive to draw consists of points. + + + + + Primitive to draw consists of lines. + + + + + Primitive to draw consists of a line strip from start to end. + + + + + Primitive to draw consists of triangles. + + + + + Primitive to draw consists of a triangle strip (the last 3 vertices are always combined to make a triangle). + + + + + Represents the size of the enum. + + + + + Blend shapes are normalized. + + + + + Blend shapes are relative to base weight. + + + + + Use to store MultiMesh transform. + + + + + Use to store MultiMesh transform. + + + + + MultiMesh physics interpolation favors speed over quality. + + + + + MultiMesh physics interpolation favors quality over speed. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + Directional (sun/moon) light (see ). + + + + + Omni light (see ). + + + + + Spot light (see ). + + + + + The light's energy multiplier. + + + + + The light's indirect energy multiplier (final indirect energy is * ). + + + + + The light's volumetric fog energy multiplier (final volumetric fog energy is * ). + + + + + The light's influence on specularity. + + + + + The light's range. + + + + + The size of the light when using spot light or omni light. The angular size of the light when using directional light. + + + + + The light's attenuation. + + + + + The spotlight's angle. + + + + + The spotlight's attenuation. + + + + + 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). + + + + + Proportion of shadow atlas occupied by the first split. + + + + + Proportion of shadow atlas occupied by the second split. + + + + + Proportion of shadow atlas occupied by the third split. The fourth split occupies the rest. + + + + + Proportion of shadow max distance where the shadow will start to fade out. + + + + + Normal bias used to offset shadow lookup by object normal. Can be used to fix self-shadowing artifacts. + + + + + Bias the shadow lookup to fix self-shadowing artifacts. + + + + + 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 0 turns off the pancaking effect. + + + + + The light's shadow opacity. Values lower than 1.0 make the light appear through shadows. This can be used to fake global illumination at a low performance cost. + + + + + 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. + + + + + Constant representing the intensity of the light, measured in Lumens when dealing with a or , or measured in Lux with a . Only used when ProjectSettings.rendering/lights_and_shadows/use_physical_light_units is . + + + + + Represents the size of the enum. + + + + + 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. + + + + + Light is taken into account in static baking (, , SDFGI ()). 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. + + + + + Light is taken into account in dynamic baking ( and SDFGI () 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 . This has a greater performance cost compared to . When using SDFGI, the update speed of dynamic lights is affected by ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Use a dual paraboloid shadow map for omni lights. + + + + + Use a cubemap shadow map for omni lights. Slower but better quality than dual paraboloid. + + + + + Use orthogonal shadow projection for directional light. + + + + + Use 2 splits for shadow projection when using directional light. + + + + + Use 4 splits for shadow projection when using directional light. + + + + + Use DirectionalLight3D in both sky rendering and scene lighting. + + + + + Only use DirectionalLight3D in scene lighting. + + + + + Only use DirectionalLight3D in sky rendering. + + + + + Lowest shadow filtering quality (fastest). Soft shadows are not available with this quality setting, which means the property is ignored if and is 0.0. + Note: The variable shadow blur performed by and is still effective when using hard shadow filtering. In this case, is taken into account. However, the results will not be blurred, instead the blur amount is treated as a maximum radius for the penumbra. + + + + + Very low shadow filtering quality (faster). When using this quality setting, is automatically multiplied by 0.75× to avoid introducing too much noise. This division only applies to lights whose or is 0.0). + + + + + Low shadow filtering quality (fast). + + + + + Medium low shadow filtering quality (average). + + + + + High low shadow filtering quality (slow). When using this quality setting, 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 or is 0.0). + + + + + Highest low shadow filtering quality (slowest). When using this quality setting, 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 or is 0.0). + + + + + Represents the size of the enum. + + + + + Reflection probe will update reflections once and then stop. + + + + + Reflection probe will update each frame. This mode is necessary to capture moving objects. + + + + + Do not apply any ambient lighting inside the reflection probe's box defined by its size. + + + + + Apply automatically-sourced environment lighting inside the reflection probe's box defined by its size. + + + + + Apply custom ambient lighting inside the reflection probe's box defined by its size. See and . + + + + + Albedo texture slot in a decal (). + + + + + Normal map texture slot in a decal (). + + + + + Occlusion/Roughness/Metallic texture slot in a decal (). + + + + + Emission texture slot in a decal (). + + + + + Represents the size of the enum. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + + + + + Low rendering quality using 4 cones. + + + + + High rendering quality using 6 cones. + + + + + 2D particles. + + + + + 3D particles. + + + + + Draw particles in the order that they appear in the particles array. + + + + + Sort particles based on their lifetime. In other words, the particle with the highest lifetime is drawn at the front. + + + + + Sort particles based on the inverse of their lifetime. In other words, the particle with the lowest lifetime is drawn at the front. + + + + + Sort particles based on their distance to the camera. + + + + + Represents the size of the enum. + + + + + will be shaped like an ellipsoid (stretched sphere). + + + + + 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 node to reorient the cone. Non-uniform scaling via size is not supported (scale the node instead). + + + + + will be shaped like an upright cylinder (in local coordinates). Rotate the 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 node instead). + + + + + will be shaped like a box. + + + + + will have no shape, will cover the whole world and will not be culled. + + + + + Represents the size of the enum. + + + + + Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will result in undersampling while values greater than 1.0 will result in supersampling. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR2. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 will use FSR2 at native resolution as a TAA solution. + + + + + Represents the size of the enum. + + + + + Do not update the viewport's render target. + + + + + Update the viewport's render target once, then switch to . + + + + + Update the viewport's render target only when it is visible. This is the default value. + + + + + Update the viewport's render target only when its parent is visible. + + + + + Always update the viewport's render target. + + + + + Always clear the viewport's render target before drawing. + + + + + Never clear the viewport's render target. + + + + + Clear the viewport's render target on the next frame, then switch to . + + + + + Disable rendering of 3D environment over 2D canvas. + + + + + Enable rendering of 3D environment over 2D canvas. + + + + + Inherit enable/disable value from parent. If the topmost parent is also set to , then this has the same behavior as . + + + + + Represents the size of the enum. + + + + + Do not oversize the 2D signed distance field. Occluders may disappear when touching the viewport's edges, and collision may stop working earlier than intended. This has the lowest GPU requirements. + + + + + 2D signed distance field covers 20% of the viewport's size outside the viewport on each side (top, right, bottom, left). + + + + + 2D signed distance field covers 50% of the viewport's size outside the viewport on each side (top, right, bottom, left). + + + + + 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. + + + + + Represents the size of the enum. + + + + + Full resolution 2D signed distance field scale. This has the highest GPU requirements. + + + + + Half resolution 2D signed distance field scale on each axis (25% of the viewport pixel count). + + + + + Quarter resolution 2D signed distance field scale on each axis (6.25% of the viewport pixel count). This has the lowest GPU requirements. + + + + + Represents the size of the enum. + + + + + Multisample antialiasing for 3D is disabled. This is the default value, and also the fastest setting. + + + + + Multisample antialiasing uses 2 samples per pixel for 3D. This has a moderate impact on performance. + + + + + Multisample antialiasing uses 4 samples per pixel for 3D. This has a high impact on performance. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Anisotropic filtering is disabled. + + + + + Use 2× anisotropic filtering. + + + + + Use 4× anisotropic filtering. This is the default value. + + + + + Use 8× anisotropic filtering. + + + + + Use 16× anisotropic filtering. + + + + + Represents the size of the enum. + + + + + Do not perform any antialiasing in the full screen post-process. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Low occlusion culling BVH build quality (as defined by Embree). Results in the lowest CPU usage, but least effective culling. + + + + + Medium occlusion culling BVH build quality (as defined by Embree). + + + + + High occlusion culling BVH build quality (as defined by Embree). Results in the highest CPU usage, but most effective culling. + + + + + Number of objects drawn in a single frame. + + + + + Number of points, lines, or triangles drawn in a single frame. + + + + + Number of draw calls during this frame. + + + + + Represents the size of the enum. + + + + + Visible render pass (excluding shadows). + + + + + 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. + + + + + Canvas item rendering. This includes all 2D rendering. + + + + + Represents the size of the enum. + + + + + Debug draw is disabled. Default setting. + + + + + Objects are displayed without light information. + + + + + Objects are displayed with only light information. + + + + + 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. + Note: When using this debug draw mode, custom shaders will be ignored. This means vertex displacement won't be visible anymore. + + + + + Debug draw draws objects in wireframe. + Note: must be called before loading any meshes for wireframes to be visible when using the Compatibility renderer. + + + + + Normal buffer is drawn instead of regular scene so you can see the per-pixel normals that will be used by post-processing effects. + + + + + Objects are displayed with only the albedo value from s. + + + + + Objects are displayed with only the lighting value from s. + + + + + Objects are displayed with only the emission color from s. + + + + + Draws the shadow atlas that stores shadows from s and s in the upper left quadrant of the . + + + + + Draws the shadow atlas that stores shadows from s in the upper left quadrant of the . + 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 . 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. + + + + + Draws the estimated scene luminance. This is a 1×1 texture that is generated when autoexposure is enabled to control the scene's exposure. + + + + + 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 set in your . + + + + + 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 set in your . + + + + + Colors each PSSM split for the 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. + + + + + Draws the decal atlas that stores decal textures from s. + + + + + Draws SDFGI cascade data. This is the data structure that is used to bounce lighting against and create reflections. + + + + + Draws SDFGI probe data. This is the data structure that is used to give indirect lighting dynamic objects moving within the scene. + + + + + Draws the global illumination buffer ( or SDFGI). + + + + + Disable mesh LOD. All meshes are drawn with full detail, which can be used to compare performance. + + + + + Draws the cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting. + + + + + Draws the cluster. Clustering determines where lights are positioned in screen-space, which allows the engine to only process these portions of the screen for lighting. + + + + + Draws the cluster. Clustering determines where decals are positioned in screen-space, which allows the engine to only process these portions of the screen for decals. + + + + + Draws the 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. + + + + + 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. + + + + + Draws the motion vectors buffer. This is used by temporal antialiasing to correct for motion that occurs during gameplay. + + + + + Internal buffer is drawn instead of regular scene so you can see the per-pixel output that will be used by post-processing effects. + + + + + Variable rate shading is disabled. + + + + + Variable rate shading uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view. + + + + + Variable rate shading texture is supplied by the primary . Note that this may override the update mode. + + + + + Represents the size of the enum. + + + + + The input texture for variable rate shading will not be processed. + + + + + The input texture for variable rate shading will be processed once. + + + + + The input texture for variable rate shading will be processed each frame. + + + + + Represents the size of the enum. + + + + + Automatically selects the appropriate process mode based on your sky shader. If your shader uses TIME or POSITION, this will use . If your shader uses any of the LIGHT_* variables or any custom uniforms, this uses . Otherwise, this defaults to . + + + + + Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than 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 ProjectSettings.rendering/reflections/sky_reflections/ggx_samples. + + + + + Uses the same high quality importance sampling to process the radiance map as , but updates over several frames. The number of frames is determined by ProjectSettings.rendering/reflections/sky_reflections/roughness_layers. Use this when you need highest quality radiance maps, but have a sky that updates slowly. + + + + + 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 ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality. + Note: The fast filtering algorithm is limited to 256×256 cubemaps, so must be set to 256. Otherwise, a warning is printed and the overridden radiance size is ignored. + + + + + The rendering effect requires the color buffer to be resolved if MSAA is enabled. + + + + + The rendering effect requires the depth buffer to be resolved if MSAA is enabled. + + + + + The rendering effect requires motion vectors to be produced. + + + + + The rendering effect requires normals and roughness g-buffer to be produced (Forward+ only). + + + + + The rendering effect requires specular data to be separated out (Forward+ only). + + + + + The callback is called before our opaque rendering pass, but after depth prepass (if applicable). + + + + + The callback is called after our opaque rendering pass, but before our sky is rendered. + + + + + The callback is called after our sky is rendered, but before our back buffers are created (and if enabled, before subsurface scattering and/or screen space reflections). + + + + + The callback is called before our transparent rendering pass, but after our sky is rendered and we've created our back buffers. + + + + + The callback is called after our transparent rendering pass, but before any built-in post-processing effects and output to our render target. + + + + + Use the clear color as background. + + + + + Use a specified color as the background. + + + + + Use a sky resource for the background. + + + + + Use a specified canvas layer as the background. This can be useful for instantiating a 2D scene in a 3D world. + + + + + Do not clear the background, use whatever was rendered last frame as the background. + + + + + Displays a camera feed in the background. + + + + + Represents the size of the enum. + + + + + Gather ambient light from whichever source is specified as the background. + + + + + Disable ambient light. + + + + + Specify a specific for ambient light. + + + + + Gather ambient light from the regardless of what the background is. + + + + + Use the background for reflections. + + + + + Disable reflections. + + + + + Use the for reflections regardless of what the background is. + + + + + Additive glow blending mode. Mostly used for particles, glows (bloom), lens flare, bright sources. + + + + + Screen glow blending mode. Increases brightness, used frequently with bloom. + + + + + Soft light glow blending mode. Modifies contrast, exposes shadows and highlights (vivid bloom). + + + + + 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. + + + + + Mixes the glow with the underlying color to avoid increasing brightness as much while still maintaining a glow effect. + + + + + Use a physically-based fog model defined primarily by fog density. + + + + + Use a simple fog model defined by start and end positions and a custom curve. While not physically accurate, this model can be useful when you need more artistic control. + + + + + Output color as they came in. This can cause bright lighting to look blown out, with noticeable clipping in the output colors. + + + + + Use the Reinhard tonemapper. Performs a variation on rendered pixels' colors by this formula: color = color * (1 + color / (white * white)) / (1 + color). This avoids clipping bright highlights, but the resulting image can look a bit dull. When is left at the default value of 1.0 this is identical to while also being slightly less performant. + + + + + Use the filmic tonemapper. This avoids clipping bright highlights, with a resulting image that usually looks more vivid than . + + + + + 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 and . + Note: This tonemapping operator is called "ACES Fitted" in Godot 3.x. + + + + + 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. + + + + + Low quality of roughness filter for screen-space reflections. + + + + + Medium quality of roughness filter for screen-space reflections. + + + + + High quality of roughness filter for screen-space reflections. This is the slowest option. + + + + + Lowest quality of screen-space ambient occlusion. + + + + + Low quality screen-space ambient occlusion. + + + + + Medium quality screen-space ambient occlusion. + + + + + High quality screen-space ambient occlusion. + + + + + Highest quality screen-space ambient occlusion. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality. + + + + + Lowest quality of screen-space indirect lighting. + + + + + Low quality screen-space indirect lighting. + + + + + High quality screen-space indirect lighting. + + + + + High quality screen-space indirect lighting. + + + + + Highest quality screen-space indirect lighting. Uses the adaptive target setting which can be dynamically adjusted to smoothly balance performance and visual quality. + + + + + 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. + + + + + Use 75% scale for SDFGI on the Y (vertical) axis. This is a balance between the 50% and 100% SDFGI Y scales. + + + + + 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. + + + + + Throw 4 rays per frame when converging SDFGI. This has the lowest GPU requirements, but creates the most noisy result. + + + + + Throw 8 rays per frame when converging SDFGI. + + + + + Throw 16 rays per frame when converging SDFGI. + + + + + Throw 32 rays per frame when converging SDFGI. + + + + + Throw 64 rays per frame when converging SDFGI. + + + + + Throw 96 rays per frame when converging SDFGI. This has high GPU requirements. + + + + + Throw 128 rays per frame when converging SDFGI. This has very high GPU requirements, but creates the least noisy result. + + + + + Represents the size of the enum. + + + + + Converge SDFGI over 5 frames. This is the most responsive, but creates the most noisy result with a given ray count. + + + + + Configure SDFGI to fully converge over 10 frames. + + + + + Configure SDFGI to fully converge over 15 frames. + + + + + Configure SDFGI to fully converge over 20 frames. + + + + + Configure SDFGI to fully converge over 25 frames. + + + + + Configure SDFGI to fully converge over 30 frames. This is the least responsive, but creates the least noisy result with a given ray count. + + + + + Represents the size of the enum. + + + + + Update indirect light from dynamic lights in SDFGI over 1 frame. This is the most responsive, but has the highest GPU requirements. + + + + + Update indirect light from dynamic lights in SDFGI over 2 frames. + + + + + Update indirect light from dynamic lights in SDFGI over 4 frames. + + + + + Update indirect light from dynamic lights in SDFGI over 8 frames. + + + + + Update indirect light from dynamic lights in SDFGI over 16 frames. This is the least responsive, but has the lowest GPU requirements. + + + + + Represents the size of the enum. + + + + + Disables subsurface scattering entirely, even on materials that have set to . This has the lowest GPU requirements. + + + + + Low subsurface scattering quality. + + + + + Medium subsurface scattering quality. + + + + + High subsurface scattering quality. This has the highest GPU requirements. + + + + + Calculate the DOF blur using a box filter. The fastest option, but results in obvious lines in blur pattern. + + + + + Calculates DOF blur using a hexagon shaped filter. + + + + + 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). + + + + + Lowest quality DOF blur. This is the fastest setting, but you may be able to see filtering artifacts. + + + + + Low quality DOF blur. + + + + + Medium quality DOF blur. + + + + + Highest quality DOF blur. Results in the smoothest looking blur by taking the most samples, but is also significantly slower. + + + + + The instance does not have a type. + + + + + The instance is a mesh. + + + + + The instance is a multimesh. + + + + + The instance is a particle emitter. + + + + + The instance is a GPUParticles collision shape. + + + + + The instance is a light. + + + + + The instance is a reflection probe. + + + + + The instance is a decal. + + + + + The instance is a VoxelGI. + + + + + The instance is a lightmap. + + + + + The instance is an occlusion culling occluder. + + + + + The instance is a visible on-screen notifier. + + + + + The instance is a fog volume. + + + + + Represents the size of the enum. + + + + + A combination of the flags of geometry instances (mesh, multimesh, immediate and particles). + + + + + Allows the instance to be used in baked lighting. + + + + + Allows the instance to be used with dynamic global illumination. + + + + + When set, manually requests to draw geometry on next frame. + + + + + Always draw, even if the instance would be culled by occlusion culling. Does not affect view frustum culling. + + + + + Represents the size of the enum. + + + + + Disable shadows from this instance. + + + + + Cast shadows from this instance. + + + + + Disable backface culling when rendering the shadow of the object. This is slightly slower but may result in more correct shadows. + + + + + Only render the shadows from the object. The object itself will not be drawn. + + + + + Disable visibility range fading for the given instance. + + + + + Fade-out the given instance when it approaches its visibility range limits. + + + + + Fade-in the given instance's dependencies when reaching its visibility range limits. + + + + + Index of in array of s returned by . Image uses and contains albedo color in the .rgb channels and alpha in the .a channel. + + + + + Index of in array of s returned by . Image uses and contains the per-pixel normal of the object in the .rgb channels and nothing in the .a channel. The per-pixel normal is encoded as normal * 0.5 + 0.5. + + + + + Index of in array of s returned by . Image uses and contains ambient occlusion (from material and decals only) in the .r channel, roughness in the .g channel, metallic in the .b channel and sub surface scattering amount in the .a channel. + + + + + Index of in array of s returned by . Image uses and contains emission color in the .rgb channels and nothing in the .a channel. + + + + + Diffuse canvas texture (). + + + + + Normal map canvas texture (). + + + + + Specular map canvas texture (). + + + + + The nine patch gets stretched where needed. + + + + + The nine patch gets filled with tiles where needed. + + + + + The nine patch gets filled with tiles where needed and stretches them a bit if needed. + + + + + Uses the default filter mode for this . + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + Max value for enum. + + + + + Uses the default repeat mode for this . + + + + + 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. + + + + + 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. + + + + + Flip the texture when repeating so that the edge lines up instead of abruptly changing. + + + + + Max value for enum. + + + + + Child draws over parent and is not clipped. + + + + + Parent is used for the purposes of clipping only. Child is clipped to the parent's visible area, parent is not drawn. + + + + + Parent is used for clipping child, but parent is also drawn underneath child as normal before clipping child to its visible area. + + + + + 2D point light (see ). + + + + + 2D directional (sun/moon) light (see ). + + + + + Adds light color additive to the canvas. + + + + + Adds light color subtractive to the canvas. + + + + + The light adds color depending on transparency. + + + + + Do not apply a filter to canvas light shadows. + + + + + Use PCF5 filtering to filter canvas light shadows. + + + + + Use PCF13 filtering to filter canvas light shadows. + + + + + Max value of the enum. + + + + + Culling of the canvas occluder is disabled. + + + + + Culling of the canvas occluder is clockwise. + + + + + Culling of the canvas occluder is counterclockwise. + + + + + Boolean global shader parameter (global uniform bool ...). + + + + + 2-dimensional boolean vector global shader parameter (global uniform bvec2 ...). + + + + + 3-dimensional boolean vector global shader parameter (global uniform bvec3 ...). + + + + + 4-dimensional boolean vector global shader parameter (global uniform bvec4 ...). + + + + + Integer global shader parameter (global uniform int ...). + + + + + 2-dimensional integer vector global shader parameter (global uniform ivec2 ...). + + + + + 3-dimensional integer vector global shader parameter (global uniform ivec3 ...). + + + + + 4-dimensional integer vector global shader parameter (global uniform ivec4 ...). + + + + + 2-dimensional integer rectangle global shader parameter (global uniform ivec4 ...). Equivalent to in shader code, but exposed as a in the editor UI. + + + + + Unsigned integer global shader parameter (global uniform uint ...). + + + + + 2-dimensional unsigned integer vector global shader parameter (global uniform uvec2 ...). + + + + + 3-dimensional unsigned integer vector global shader parameter (global uniform uvec3 ...). + + + + + 4-dimensional unsigned integer vector global shader parameter (global uniform uvec4 ...). + + + + + Single-precision floating-point global shader parameter (global uniform float ...). + + + + + 2-dimensional floating-point vector global shader parameter (global uniform vec2 ...). + + + + + 3-dimensional floating-point vector global shader parameter (global uniform vec3 ...). + + + + + 4-dimensional floating-point vector global shader parameter (global uniform vec4 ...). + + + + + Color global shader parameter (global uniform vec4 ...). Equivalent to in shader code, but exposed as a in the editor UI. + + + + + 2-dimensional floating-point rectangle global shader parameter (global uniform vec4 ...). Equivalent to in shader code, but exposed as a in the editor UI. + + + + + 2×2 matrix global shader parameter (global uniform mat2 ...). Exposed as a [] in the editor UI. + + + + + 3×3 matrix global shader parameter (global uniform mat3 ...). Exposed as a in the editor UI. + + + + + 4×4 matrix global shader parameter (global uniform mat4 ...). Exposed as a in the editor UI. + + + + + 2-dimensional transform global shader parameter (global uniform mat2x3 ...). Exposed as a in the editor UI. + + + + + 3-dimensional transform global shader parameter (global uniform mat3x4 ...). Exposed as a in the editor UI. + + + + + 2D sampler global shader parameter (global uniform sampler2D ...). Exposed as a in the editor UI. + + + + + 2D sampler array global shader parameter (global uniform sampler2DArray ...). Exposed as a in the editor UI. + + + + + 3D sampler global shader parameter (global uniform sampler3D ...). Exposed as a in the editor UI. + + + + + Cubemap sampler global shader parameter (global uniform samplerCube ...). Exposed as a in the editor UI. + + + + + External sampler global shader parameter (global uniform samplerExternalOES ...). Exposed as a in the editor UI. + + + + + Represents the size of the enum. + + + + + Number of objects rendered in the current 3D scene. This varies depending on camera position and rotation. + + + + + Number of points, lines, or triangles rendered in the current 3D scene. This varies depending on camera position and rotation. + + + + + Number of draw calls performed to render in the current 3D scene. This varies depending on camera position and rotation. + + + + + Texture memory used (in bytes). + + + + + Buffer memory used (in bytes). This includes vertex data, uniform buffers, and many miscellaneous buffer types used internally. + + + + + Video memory used (in bytes). When using the Forward+ or Mobile renderers, this is always greater than the sum of and , since there is miscellaneous data not accounted for by those two metrics. When using the Compatibility renderer, this is equal to the sum of and . + + + + + Number of pipeline compilations that were triggered by the 2D canvas renderer. + + + + + Number of pipeline compilations that were triggered by loading meshes. These compilations will show up as longer loading times the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered by building the surface cache before rendering the scene. These compilations will show up as a stutter when loading an scene the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered while drawing the scene. These compilations will show up as stutters during gameplay the first time a user runs the game and the pipeline is required. + + + + + Number of pipeline compilations that were triggered to optimize the current scene. These compilations are done in the background and should not cause any stutters whatsoever. + + + + + Pipeline compilation that was triggered by the 2D canvas renderer. + + + + + Pipeline compilation that was triggered by loading a mesh. + + + + + Pipeline compilation that was triggered by building the surface cache before rendering the scene. + + + + + Pipeline compilation that was triggered while drawing the scene. + + + + + Pipeline compilation that was triggered to optimize the current scene. + + + + + Represents the size of the enum. + + + + + If , disables rendering completely, but the engine logic is still being processed. You can call to draw a frame even with rendering disabled. + + + + + Creates a 2-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + Note: Not to be confused with , which creates the graphics API's own texture type as opposed to the Godot-specific resource. + + + + + Creates a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Note: The equivalent resource is . + + + + + This method does nothing and always returns an invalid . + + + + + Creates a texture based on a native handle that was created outside of Godot's renderer. + Note: If using the rendering device renderer, using rather than this method is recommended. It will give you much more control over the texture's format and usage. + + + + + Updates the texture specified by the with the data in . A must also be specified, which should be 0 when updating a single-layer texture (). + Note: The must have the same width, height and format as the current data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height or format, use instead. + + + + + Updates the texture specified by the 's data with the data in . All the texture's layers must be replaced at once. + Note: The must have the same width, height, depth and format as the current texture data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height, depth or format, use instead. + + + + + This method does nothing. + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Note: The equivalent resource is . + + + + + Creates a placeholder for a 3-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_3d_* RenderingServer functions, although it does nothing when used. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Returns an instance from the given . + Example: Get the test texture from and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns an instance from the given and . + + + + + Returns 3D texture data as an array of s for the specified texture . + + + + + Replaces 's texture data by the texture specified by the RID, without changing 's RID. + + + + + Returns the format for the texture. + + + + + Creates a new texture object based on a texture created directly on the . If the texture contains layers, is used to define the layer type. + + + + + Returns a texture that can be used with . + + + + + Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension. + Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan). + + + + + Creates an empty shader and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all shader_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shader's source code (which triggers recompilation after being changed). + + + + + Sets the path hint for the specified shader. This should generally match the resource's . + + + + + Returns a shader's source code as a string. + + + + + Returns the parameters of a shader. + + + + + Returns the default value for the specified shader uniform. This is usually the value written in the shader source code. + + + + + Sets a shader's default texture. Overwrites the texture given by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns a default texture from a shader searched by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Creates an empty material and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all material_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets a shader material's shader. + + + + + Sets a material's parameter. + + + + + Returns the value of a certain material's parameter. + + + + + Sets a material's render priority. + + + + + Sets an object's next material. + + + + + Creates a new mesh and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all mesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the offset of a given attribute by in the start of its respective buffer. + + + + + Returns the stride of the vertex positions for a mesh with given . Note importantly that vertex positions are stored consecutively and are not interleaved with the other attributes in the vertex buffer (normals and tangents). + + + + + Returns the stride of the combined normals and tangents for a mesh with given . Note importantly that, while normals and tangents are in the vertex buffer with vertices, they are only interleaved with each other and so have a different stride than vertex positions. + + + + + Returns the stride of the attribute buffer for a mesh with given . + + + + + Returns the stride of the skin buffer for a mesh with given . + + + + + Returns a mesh's blend shape count. + + + + + Sets a mesh's blend shape mode. + + + + + Returns a mesh's blend shape mode. + + + + + Sets a mesh's surface's material. + + + + + Returns a mesh's surface's material. + + + + + Returns a mesh's surface's buffer arrays. + + + + + Returns a mesh's surface's arrays for blend shapes. + + + + + Returns a mesh's number of surfaces. + + + + + Sets a mesh's custom aabb. + + + + + Returns a mesh's custom aabb. + + + + + Removes all surfaces from a mesh. + + + + + Creates a new multimesh on the RenderingServer and returns an handle. This RID will be used in all multimesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this multimesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the number of instances allocated for this multimesh. + + + + + Sets the mesh to be drawn by the multimesh. Equivalent to . + + + + + Sets the for this instance. Equivalent to . + + + + + Sets the for this instance. For use when multimesh is used in 2D. Equivalent to . + + + + + Sets the color by which this instance will be modulated. Equivalent to . + + + + + Sets the custom data for this instance. Custom data is passed as a , but is interpreted as a vec4 in the shader. Equivalent to . + + + + + Returns the RID of the mesh that will be used in drawing this multimesh. + + + + + Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh. + + + + + Sets the custom AABB for this MultiMesh resource. + + + + + Returns the custom AABB defined for this MultiMesh resource. + + + + + Returns the of the specified instance. + + + + + Returns the of the specified instance. For use when the multimesh is set to use 2D transforms. + + + + + Returns the color by which the specified instance will be modulated. + + + + + Returns the custom data associated with the specified instance. + + + + + Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to . + + + + + Returns the number of visible instances for this multimesh. + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Returns the handle of the , which can be used as any other buffer on the Rendering Device. + + + + + Returns the MultiMesh data (such as instance transforms, colors, etc.). See for details on the returned data. + Note: If the buffer is in the engine's internal cache, it will have to be fetched from GPU memory and possibly decompressed. This means is potentially a slow operation and should be avoided whenever possible. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Turns on and off physics interpolation for this MultiMesh resource. + + + + + Sets the physics interpolation quality for the . + A value of gives fast but low quality interpolation, a value of gives slower but higher quality interpolation. + + + + + Prevents physics interpolation for the specified instance during the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Creates a skeleton and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all skeleton_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Returns the number of bones allocated for this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Creates a directional light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this directional light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a new omni light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this omni light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a spot light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this spot light to an instance using using the returned RID. + + + + + Sets the color of the light. Equivalent to . + + + + + Sets the specified 3D light parameter. See for options. Equivalent to . + + + + + If , light will cast shadows. Equivalent to . + + + + + Sets the projector texture to use for the specified 3D light. Equivalent to . + + + + + If , the 3D light will subtract light instead of adding light. Equivalent to . + + + + + Sets the cull mask for this 3D light. Lights only affect objects in the selected layers. Equivalent to . + + + + + Sets the distance fade for this 3D light. This acts as a form of level of detail (LOD) and can be used to improve performance. Equivalent to , , , and . + + + + + If , reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with . Equivalent to . + + + + + Sets the shadow caster mask for this 3D light. Shadows will only be cast using objects in the selected layers. Equivalent to . + + + + + Sets the bake mode to use for the specified 3D light. Equivalent to . + + + + + Sets the maximum SDFGI cascade in which the 3D light's indirect lighting is rendered. Higher values allow the light to be rendered in SDFGI further away from the camera. + + + + + Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to . + + + + + Sets the shadow mode for this directional light. Equivalent to . See for options. + + + + + If , this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to . + + + + + If , this light will not be used for anything except sky shaders. Use this for lights that impact your sky shader that you may want to hide from affecting the rest of the scene. For example, you may want to enable this when the sun in your sky shader falls below the horizon. + + + + + Sets the texture filter mode to use when rendering light projectors. This parameter is global and cannot be set on a per-light basis. + + + + + Toggles whether a bicubic filter should be used when lightmaps are sampled. This smoothens their appearance at a performance cost. + + + + + Sets the filter quality for omni and spot light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the filter for directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the of the directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/size. This parameter is global and cannot be set on a per-viewport basis. + + + + + Creates a reflection probe and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all reflection_probe_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this reflection probe to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets how often the reflection probe updates. Can either be once or every frame. See for options. + + + + + Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to . + + + + + Sets the distance in meters over which a probe blends into the scene. + + + + + Sets the reflection probe's ambient light mode. Equivalent to . + + + + + Sets the reflection probe's custom ambient light color. Equivalent to . + + + + + Sets the reflection probe's custom ambient light energy. Equivalent to . + + + + + Sets the max distance away from the probe an object can be before it is culled. Equivalent to . + + + + + Sets the size of the area that the reflection probe will capture. Equivalent to . + + + + + Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to . + + + + + If , reflections will ignore sky contribution. Equivalent to . + + + + + If , uses box projection. This can make reflections look more correct in certain situations. Equivalent to . + + + + + If , computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to . + + + + + Sets the render cull mask for this reflection probe. Only instances with a matching layer will be reflected by this probe. Equivalent to . + + + + + Sets the render reflection mask for this reflection probe. Only instances with a matching layer will have reflections applied from this probe. Equivalent to . + + + + + Sets the resolution to use when rendering the specified reflection probe. The is specified for each cubemap face: for instance, specifying 512 will allocate 6 faces of 512×512 each (plus mipmaps for roughness levels). + + + + + Sets the mesh level of detail to use in the reflection probe rendering. Higher values will use less detailed versions of meshes that have LOD variations generated, which can improve performance. Equivalent to . + + + + + Creates a decal and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all decal_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this decal to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets the of the decal specified by the RID. Equivalent to . + + + + + Sets the in the given texture slot for the specified decal. Equivalent to . + + + + + Sets the emission in the decal specified by the RID. Equivalent to . + + + + + Sets the in the decal specified by the RID. Equivalent to . + + + + + Sets the color multiplier in the decal specified by the RID to . Equivalent to . + + + + + Sets the cull in the decal specified by the RID. Equivalent to . + + + + + Sets the distance fade parameters in the decal specified by the RID. Equivalent to , and . + + + + + Sets the upper fade () and lower fade () in the decal specified by the RID. Equivalent to and . + + + + + Sets the normal in the decal specified by the RID. Equivalent to . + + + + + Sets the texture mode to use when rendering decals. This parameter is global and cannot be set on a per-decal basis. + + + + + If is , renders and SDFGI () buffers at halved resolution on each axis (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. rendering is not affected by this setting. Equivalent to ProjectSettings.rendering/global_illumination/gi/use_half_resolution. + + + + + Creates a new voxel-based global illumination object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all voxel_gi_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Used to inform the renderer what exposure normalization value was used while baking the voxel gi. This value will be used and modulated at run time to ensure that the voxel gi maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the ProjectSettings.rendering/global_illumination/voxel_gi/quality value to use when rendering. This parameter is global and cannot be set on a per-VoxelGI basis. + + + + + Creates a new lightmap global illumination instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all lightmap_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Set the textures on the given GI instance to the texture array pointed to by the RID. If the lightmap texture was baked with set to , then must also be . + + + + + Used to inform the renderer what exposure normalization value was used while baking the lightmap. This value will be used and modulated at run time to ensure that the lightmap maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Creates a GPU-based particle system and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all particles_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach these particles to an instance using using the returned RID. + Note: The equivalent nodes are and . + Note: All particles_* methods only apply to GPU-based particles, not CPU-based particles. and do not have equivalent RenderingServer functions available, as these use and under the hood (see multimesh_* methods). + + + + + Sets whether the GPU particles specified by the RID should be rendered in 2D or 3D according to . + + + + + If , particles will emit over time. Setting to does not reset the particles, but only stops their emission. Equivalent to . + + + + + Returns if particles are currently set to emitting. + + + + + Sets the number of particles to be drawn and allocates the memory for them. Equivalent to . + + + + + Sets the amount ratio for particles to be emitted. Equivalent to . + + + + + Sets the lifetime of each particle in the system. Equivalent to . + + + + + If , particles will emit once and then stop. Equivalent to . + + + + + Sets the preprocess time for the particles' animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to . + + + + + Sets the explosiveness ratio. Equivalent to . + + + + + Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to . + + + + + Sets the value that informs a to rush all particles towards the end of their lifetime. + + + + + Sets the velocity of a particle node, that will be used by . + + + + + Sets a custom axis-aligned bounding box for the particle system. Equivalent to . + + + + + Sets the speed scale of the particle system. Equivalent to . + + + + + If , particles use local coordinates. If they use global coordinates. Equivalent to . + + + + + Sets the material for processing the particles. + Note: This is not the material used to draw the materials. Equivalent to . + + + + + Sets the frame rate that the particle system rendering will be fixed to. Equivalent to . + + + + + If , uses fractional delta which smooths the movement of the particles. Equivalent to . + + + + + If is , enables trails for the with the specified in seconds. Equivalent to and . + + + + + Returns if particles are not emitting and particles are set to inactive. + + + + + Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to , , or . + + + + + Reset the particles on the next update. Equivalent to . + + + + + Manually emits particles from the instance. + + + + + Sets the draw order of the particles to one of the named enums from . See for options. Equivalent to . + + + + + Sets the number of draw passes to use. Equivalent to . + + + + + Sets the mesh to be used for the specified draw pass. Equivalent to , , , and . + + + + + Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to . + + + + + Sets the that will be used by the particles when they first emit. + + + + + Creates a new 3D GPU particle collision or attractor and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most particles_collision_* RenderingServer functions. + Note: The equivalent nodes are and . + + + + + Sets the collision or attractor shape for the 3D GPU particles collision or attractor specified by the RID. + + + + + Sets the cull for the 3D GPU particles collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles sphere collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles collision by the RID. Equivalent to , , , or depending on the type. + + + + + Sets the for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the directionality for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the attenuation for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the signed distance field for the 3D GPU particles collision specified by the RID. Equivalent to or depending on the type. + + + + + Requests an update for the 3D GPU particle collision heightfield. This may be automatically called by the 3D GPU particle collision heightfield depending on its . + + + + + Sets the heightmap for the 3D GPU particles heightfield collision specified by the RID. Equivalent to . + + + + + Creates a new fog volume and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all fog_volume_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the shape of the fog volume to either , , , or . + + + + + Sets the size of the fog volume when shape is , , or . + + + + + Sets the of the fog volume. Can be either a or a custom . + + + + + Creates a new 3D visibility notifier object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all visibility_notifier_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates an occluder instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is (not to be confused with the node). + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Creates a 3D camera and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away. + + + + + Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + + + + + Sets camera to use frustum projection. This mode allows adjusting the argument to create "tilted frustum" effects. + + + + + Sets of camera. + + + + + Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to . + + + + + Sets the environment used by this camera. Equivalent to . + + + + + Sets the camera_attributes created with to the given camera. + + + + + Sets the compositor used by this camera. Equivalent to . + + + + + If , preserves the horizontal aspect ratio which is equivalent to . If , preserves the vertical aspect ratio which is equivalent to . + + + + + Creates an empty viewport and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all viewport_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + If , the viewport uses augmented or virtual reality technologies. See . + + + + + Sets the viewport's width and height in pixels. + + + + + If , sets the viewport active, else sets it inactive. + + + + + Sets the viewport's parent to the viewport specified by the RID. + + + + + Copies the viewport to a region of the screen specified by . If is , then the viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to. + For example, you can set the root viewport to not render at all with the following code: + FIXME: The method seems to be non-existent. + + Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For further optimization, see . + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + If , render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the screen_texture. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size. + + + + + Sets the rendering mask associated with this . Only nodes with a matching rendering visibility layer will be rendered by this . + + + + + Sets the 3D resolution scaling mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible. + + + + + Scales the 3D render buffer based on the viewport size uses an image filter specified in to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also for multi-sample antialiasing, which is significantly cheaper but only smoothens the edges of polygons. + When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale. + + + + + Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference. + + + + + Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). To get sharper textures at a distance without introducing too much graininess, set this between -0.75 and 0.0. Enabling temporal antialiasing (ProjectSettings.rendering/anti_aliasing/quality/use_taa) can help reduce the graininess visible when using negative mipmap bias. + Note: When the 3D scaling mode is set to FSR 1.0, this value is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is -log2(1.0 / scale) + mipmap_bias. + + + + + Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled. + The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter. + Note: In 3D, for this setting to have an effect, set to or on materials. + Note: In 2D, for this setting to have an effect, set to or on the node displaying the texture (or in ). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference. + + + + + Sets when the viewport should be updated. See constants for options. + + + + + Returns the viewport's update mode. See constants for options. + Warning: Calling this from any thread other than the rendering thread will be detrimental to performance. + + + + + Sets the clear mode of a viewport. See for options. + + + + + Returns the render target for the viewport. + + + + + Returns the viewport's last rendered frame. + + + + + If , the viewport's 3D elements are not rendered. + + + + + If , the viewport's canvas (i.e. 2D and GUI elements) is not rendered. + + + + + Sets the viewport's environment mode which allows enabling or disabling rendering of 3D environment over 2D canvas. When disabled, 2D will not be affected by the environment. When enabled, 2D will be affected by the environment if the environment background mode is . The default behavior is to inherit the setting from the viewport's parent. If the topmost parent is also set to , then the behavior will be the same as if it was set to . + + + + + Sets a viewport's camera. + + + + + Sets a viewport's scenario. The scenario contains information about environment information, reflection atlas, etc. + + + + + Sets a viewport's canvas. + + + + + Detaches a viewport from a canvas. + + + + + If , canvas item transforms (i.e. origin position) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + If , canvas item vertices (i.e. polygon points) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel. + + + + + Sets the default texture filtering mode for the specified RID. See for options. + + + + + Sets the default texture repeat mode for the specified RID. See for options. + + + + + Sets the transformation of a viewport's canvas. + + + + + Sets the stacking order for a viewport's canvas. + is the actual canvas layer, while specifies the stacking order of the canvas among those in the same layer. + + + + + If , the viewport renders its background as transparent. + + + + + Sets the viewport's global transformation matrix. + + + + + Sets the viewport's 2D signed distance field ProjectSettings.rendering/2d/sdf/oversize and ProjectSettings.rendering/2d/sdf/scale. This is used when sampling the signed distance field in shaders as well as collision. This is not used by SDFGI in 3D rendering. + + + + + Sets the of the shadow atlas's images (used for omni and spot lights) on the viewport specified by the RID. The value is rounded up to the nearest power of 2. If is , use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices. + Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows). + + + + + Sets the number of subdivisions to use in the specified shadow atlas for omni and spot shadows. See also . + + + + + Sets the multisample antialiasing mode for 3D on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_3d or . + + + + + Sets the multisample antialiasing mode for 2D/Canvas on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_2d or . + + + + + If , 2D rendering will use a high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an RGBA16 framebuffer, while when using the Mobile renderer it will be an RGB10_A2 framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen (if the Viewport is attached to the screen). Practically speaking, this means that the end result of the Viewport will not be clamped into the 0-1 range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. This setting has the same effect as . + Note: This setting will have no effect when using the Compatibility renderer, which always renders in low dynamic range for performance reasons. + + + + + Sets the viewport's screen-space antialiasing mode. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa or . + + + + + If , use temporal antialiasing. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_taa or . + + + + + If , enables debanding on the specified viewport. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_debanding or . + + + + + If , enables occlusion culling on the specified viewport. Equivalent to ProjectSettings.rendering/occlusion_culling/use_occlusion_culling. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/bvh_build_quality to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. This is separated into render pass s, each of them having the same s you can query (different passes will return different values). See for a list of render pass types and for a list of information that can be queried. + See also , which returns global information across all viewports. + Note: Viewport rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print( + RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(), + RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE, + RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME) + ) + + + + + + Sets the debug draw mode of a viewport. See for options. + + + + + Sets the measurement for the given RID (obtained using ). Once enabled, and will return values greater than 0.0 when queried with the given . + + + + + Returns the CPU time taken to render the last frame in milliseconds. This only includes time spent in rendering-related operations; scripts' _process functions and other engine subsystems are not included in this readout. To get a complete readout of CPU time spent to render the scene, sum the render times of all viewports that are drawn every frame plus . Unlike , this method will accurately reflect CPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + + + + + Returns the GPU time taken to render the last frame in milliseconds. To get a complete readout of GPU time spent to render the scene, sum the render times of all viewports that are drawn every frame. Unlike , this method accurately reflects GPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + Note: When GPU utilization is low enough during a certain period of time, GPUs will decrease their power state (which in turn decreases core and memory clock speeds). This can cause the reported GPU time to increase if GPU utilization is kept low enough by a framerate cap (compared to what it would be at the GPU's highest power state). Keep this in mind when benchmarking using . This behavior can be overridden in the graphics driver settings at the cost of higher power usage. + + + + + Sets the Variable Rate Shading (VRS) mode for the viewport. If the GPU does not support VRS, this property is ignored. Equivalent to ProjectSettings.rendering/vrs/mode. + + + + + Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored. + If set to , the input texture is copied once and the mode is changed to . + + + + + The texture to use when the VRS mode is set to . Equivalent to ProjectSettings.rendering/vrs/texture. + + + + + Creates an empty sky and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all sky_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the of the sky specified by the RID (in pixels). Equivalent to . + + + + + Sets the process of the sky specified by the RID. Equivalent to . + + + + + Sets the material that the sky uses to render the background, ambient and reflection maps. + + + + + Generates and returns an containing the radiance map for the specified RID. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. values above 1.0 can be used to brighten the resulting image. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Creates a new rendering effect and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Enables/disables this rendering effect. + + + + + Sets the callback type () and callback method() for this rendering effect. + + + + + Sets the flag () for this rendering effect to or (). + + + + + Creates a new compositor and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the compositor effects for the specified compositor RID. should be an array containing RIDs created with . + + + + + Creates an environment and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all environment_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the environment's background mode. Equivalent to . + + + + + Sets the camera ID to be used as environment background. + + + + + Sets the to be used as the environment's background when using BGMode sky. Equivalent to . + + + + + Sets a custom field of view for the background . Equivalent to . + + + + + Sets the rotation of the background expressed as a . Equivalent to , where the rotation vector is used to construct the . + + + + + Color displayed for clear areas of the scene. Only effective if using the background mode. + + + + + Sets the intensity of the background color. + + + + + Sets the maximum layer to use if using Canvas background mode. + + + + + Sets the values to be used for ambient light rendering. See for more details. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Sets the variables to be used with the "tonemap" post-process effect. See for more details. + + + + + Sets the values to be used with the "adjustments" post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space reflections (SSR) post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Configures signed distance field global illumination for the specified environment RID. See sdfgi_* properties in for more information. + + + + + Sets the variables to be used with the volumetric fog post-process effect. See for more details. + + + + + If is , enables bicubic upscaling for glow which improves quality at the cost of performance. Equivalent to ProjectSettings.rendering/environment/glow/upscale_mode. + + + + + Sets the quality level of the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Sets the quality level of the screen-space indirect lighting (SSIL) post-process effect. See for more details. + + + + + Sets the number of rays to throw per frame when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count. + + + + + Sets the number of frames to use for converging signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge. + + + + + Sets the update speed for dynamic lights' indirect lighting when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Sets the resolution of the volumetric fog's froxel buffer. is modified by the screen's aspect ratio and then used to set the width and height of the buffer. While is directly used to set the depth of the buffer. + + + + + Enables filtering of the volumetric fog scattering buffer. This results in much smoother volumes with very few under-sampling artifacts. + + + + + Generates and returns an containing the radiance map for the specified RID's sky. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Sets the screen-space roughness limiter parameters, such as whether it should be enabled and its thresholds. Equivalent to ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabled, ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amount and ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit. + + + + + Sets ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality to use when rendering materials that have subsurface scattering enabled. + + + + + Sets the ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale and ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale to use when rendering materials that have subsurface scattering enabled. + + + + + Creates a camera attributes object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_attributes_ RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the quality level of the DOF blur effect to one of the options in . can be used to jitter samples taken during the blur pass to hide artifacts at the cost of looking more fuzzy. + + + + + Sets the shape of the DOF bokeh pattern. Different shapes may be used to achieve artistic effect, or to meet performance targets. For more detail on available options see . + + + + + Sets the parameters to use with the DOF blur effect. These parameters take on the same meaning as their counterparts in . + + + + + Sets the exposure values that will be used by the renderers. The normalization amount is used to bake a given Exposure Value (EV) into rendering calculations to reduce the dynamic range of the scene. + The normalization factor can be calculated from exposure value (EV100) as follows: + + func get_exposure_normalization(ev100: float): + return 1.0 / (pow(2.0, ev100) * 1.2) + + The exposure value can be calculated from aperture (in f-stops), shutter speed (in seconds), and sensitivity (in ISO) as follows: + + func get_exposure(aperture: float, shutter_speed: float, sensitivity: float): + return log((aperture * aperture) / shutter_speed * (100.0 / sensitivity)) / log(2) + + + + + + Sets the parameters to use with the auto-exposure effect. These parameters take on the same meaning as their counterparts in and . + + + + + Creates a scenario and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all scenario_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + The scenario is the 3D world that all the visual instances exist in. + + + + + Sets the environment that will be used with this scenario. See also . + + + + + Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment. + + + + + Sets the camera attributes () that will be used with this scenario. See also . + + + + + Sets the compositor () that will be used with this scenario. See also . + + + + + Creates a visual instance, adds it to the RenderingServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. This is a shorthand for using and setting the base and scenario manually. + + + + + Creates a visual instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + An instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, reflection probes and decals need to be associated with an instance to be visible in the scenario using . + Note: The equivalent node is . + + + + + Sets the base of the instance. A base can be any of the 3D objects that are created in the RenderingServer that can be displayed. For example, any of the light types, mesh, multimesh, particle system, reflection probe, decal, lightmap, voxel GI and visibility notifiers are all types that can be set as the base of an instance in order to be displayed in the scenario. + + + + + Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in. + + + + + Sets the render layers that this instance will be drawn to. Equivalent to . + + + + + Sets the sorting offset and switches between using the bounding box or instance origin for depth sorting. + + + + + Sets the world space transform of the instance. Equivalent to . + + + + + Turns on and off physics interpolation for the instance. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with , , and . + + + + + Sets the weight for a given blend shape associated with this instance. + + + + + Sets the override material of a specific surface. Equivalent to . + + + + + Sets whether an instance is drawn or not. Equivalent to . + + + + + Sets the transparency for the given geometry instance. Equivalent to . + A transparency of 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting to a value greater than 0.0 (exclusive) will not disable shadow rendering. + In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in. + Note: is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are. + + + + + Sets a custom AABB to use when culling objects from the view frustum. Equivalent to setting . + + + + + Attaches a skeleton to an instance. Removes the previous skeleton from the instance. + + + + + Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you to avoid culling objects that fall outside the view frustum. Equivalent to . + + + + + Sets the visibility parent for the given instance. Equivalent to . + + + + + If , ignores both frustum and occlusion culling on the specified 3D geometry instance. This is not the same as , which only ignores occlusion culling and leaves frustum culling intact. + + + + + Sets the flag for a given . See for more details. + + + + + Sets the shadow casting setting to one of . Equivalent to . + + + + + Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to . + + + + + Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to . + + + + + Sets the visibility range values for the given geometry instance. Equivalent to and related properties. + + + + + Sets the lightmap GI instance to use for the specified 3D geometry instance. The lightmap UV scale for the specified instance (equivalent to ) and lightmap atlas slice must also be specified. + + + + + Sets the level of detail bias to use when rendering the specified 3D geometry instance. Higher values result in higher detail from further away. Equivalent to . + + + + + Sets the per-instance shader uniform on the specified 3D geometry instance. Equivalent to . + + + + + Returns the value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + Note: Per-instance shader parameter names are case-sensitive. + + + + + Returns the default value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + + + + + Returns a dictionary of per-instance shader uniform names of the per-instance shader uniform from the specified 3D geometry instance. The returned dictionary is in PropertyInfo format, with the keys name, class_name, type, hint, hint_string and usage. Equivalent to . + + + + + Returns an array of object IDs intersecting with the provided AABB. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided 3D ray. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided convex shape. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Bakes the material data of the Mesh passed in the parameter with optional to a set of s of size . Returns an array of s containing material properties as specified in . + + + + + Creates a canvas and returns the assigned . It can be accessed with the RID that is returned. This RID will be used in all canvas_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Canvas has no or equivalent. + + + + + A copy of the canvas item will be drawn with a local offset of the . + Note: This is equivalent to calling like canvas_set_item_repeat(item, mirroring, 1), with an additional check ensuring is a parent of . + + + + + A copy of the canvas item will be drawn with a local offset of the by the number of times of the . As the increases, the copies will spread away from the origin texture. + + + + + Modulates all colors in the given canvas. + + + + + Creates a canvas texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_texture_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. See also . + Note: The equivalent resource is and is only meant to be used in 2D rendering, not 3D. + + + + + Sets the 's for the canvas texture specified by the RID. Equivalent to , and . + + + + + Sets the and to use for the canvas texture specified by the RID. Equivalent to and . + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Creates a new CanvasItem instance and returns its . It can be accessed with the RID that is returned. This RID will be used in all canvas_item_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets a parent to the . The item will inherit transform, modulation and visibility from its parent, like nodes in the scene tree. + + + + + Sets the default texture filter mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the default texture repeat mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the visibility of the . + + + + + Sets the light for the canvas item specified by the RID. Equivalent to . + + + + + Sets the rendering visibility layer associated with this . Only nodes with a matching rendering mask will render this . + + + + + Sets the of the canvas item specified by the RID. This affects where and how the item will be drawn. Child canvas items' transforms are multiplied by their parent's transform. Equivalent to . + + + + + If is , makes the canvas item specified by the RID not draw anything outside of its rect's coordinates. This clipping is fast, but works only with axis-aligned rectangles. This means that rotation is ignored by the clipping rectangle. For more advanced clipping shapes, use instead. + Note: The equivalent node functionality is found in , (always enabled) and more. + + + + + If is , enables multichannel signed distance field rendering mode for the canvas item specified by the RID. This is meant to be used for font rendering, or with specially generated images using msdfgen. + + + + + If is , sets the custom visibility rectangle (used for culling) to for the canvas item specified by . Setting a custom visibility rect can reduce CPU load when drawing lots of 2D instances. If is , automatically computes a visibility rectangle based on the canvas item's draw commands. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Multiplies the color of the canvas item specified by the RID, while affecting its children. See also . Equivalent to . + + + + + Multiplies the color of the canvas item specified by the RID, without affecting its children. See also . Equivalent to . + + + + + If is , draws the canvas item specified by the RID behind its parent. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas item. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas item. + This allows transforming a canvas item without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Draws a line on the pointed to by the . See also . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + + + + Draws the specified region of a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a nine-patch rectangle on the pointed to by the . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<int>(). + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + + + + Draws a mesh created with with given , color, and . This is used internally by . + + If the parameter is null, then the default value is Transform2D.Identity. + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D on the pointed to by the . See also . + + + + + Draws particles on the pointed to by the . + + + + + Sets a that will be used to transform subsequent canvas item commands. + + + + + If is , ignore clipping on items drawn with this canvas item until this is called again with set to . + + + + + Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly. + + + + + If is , child nodes with the lowest Y position are drawn before those with a higher Y position. Y-sorting only affects children that inherit from the canvas item specified by the RID, not the canvas item itself. Equivalent to . + + + + + Sets the 's Z index, i.e. its draw order (lower indexes are drawn first). + + + + + If this is enabled, the Z index of the parent will be added to the children's Z index. + + + + + Sets the to copy a rect to the backbuffer. + + + + + Attaches a skeleton to the . Removes the previous skeleton. + + + + + Clears the and removes all commands in it. + + + + + Sets the index for the . + + + + + Sets a new to the canvas item specified by the RID. Equivalent to . + + + + + Sets if the uses its parent's material. + + + + + Sets the given as visibility notifier. defines the area of detecting visibility. is called when the enters the screen, is called when the exits the screen. If is , the item will no longer function as notifier. + This method can be used to manually mimic . + + + + + Sets the canvas group mode used during 2D rendering for the canvas item specified by the RID. For faster but more limited clipping, use instead. + Note: The equivalent node functionality is found in and . + + + + + Returns the bounding rectangle for a canvas item in local space, as calculated by the renderer. This bound is used internally for culling. + Warning: This function is intended for debugging in the editor, and will pass through and return a zero in exported projects. + + + + + Creates a canvas light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches the canvas light to the canvas. Removes it from its previous canvas. + + + + + Enables or disables a canvas light. + + + + + Sets the scale factor of a 's texture. Equivalent to . + + + + + Sets the canvas light's . + + + + + Sets the texture to be used by a . Equivalent to . + + + + + Sets the offset of a 's texture. Equivalent to . + + + + + Sets the color for a light. + + + + + Sets a canvas light's height. + + + + + Sets a canvas light's energy. + + + + + Sets the Z range of objects that will be affected by this light. Equivalent to and . + + + + + The layer range that gets rendered with this light. + + + + + The light mask. See for more information on light masks. + + + + + The binary mask used to determine which layers this canvas light's shadows affects. See for more information on light masks. + + + + + The mode of the light, see constants. + + + + + Enables or disables the canvas light's shadow. + + + + + Sets the canvas light's shadow's filter, see constants. + + + + + Sets the color of the canvas light's shadow. + + + + + Smoothens the shadow. The lower, the smoother. + + + + + Sets the blend mode for the given canvas light. See for options. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas light. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas light. + This allows transforming a light without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a light occluder and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches a light occluder to the canvas. Removes it from its previous canvas. + + + + + Enables or disables light occluder. + + + + + Sets a light occluder's polygon. + + + + + Sets a light occluder's . + + + + + The light mask. See for more information on light masks. + + + + + If is , turns on physics interpolation for the light occluder. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an occluder to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a light occluder. + This allows transforming an occluder without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a new light occluder polygon and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_occluder_polygon_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shape of the occluder polygon. + + + + + Sets the shape of the occluder polygon. + + + + + Sets an occluder polygons cull mode. See constants. + + + + + Sets the ProjectSettings.rendering/2d/shadow_atlas/size to use for shadow rendering (in pixels). The value is rounded up to the nearest power of 2. + + + + + Creates a new global shader uniform. + Note: Global shader parameter names are case-sensitive. + + + + + Removes the global shader uniform specified by . + + + + + Returns the list of global shader uniform names. + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Sets the global shader uniform to . + + + + + Overrides the global shader uniform with . Equivalent to the node. + + + + + Returns the value of the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Returns the type associated to the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Tries to free an object in the RenderingServer. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingServer directly. + + + + + Schedules a callback to the given callable after a frame has been drawn. + + + + + Returns if changes have been made to the RenderingServer's data. is usually called if this happens. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. See for a list of values that can be queried. See also , which returns information specific to a viewport. + Note: Only 3D rendering is currently taken into account by some of these values, such as the number of draw calls. + Note: Rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME)) + + + + + + Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2"). + Note: When running a headless or server binary, this function returns an empty string. + Note: On the web platform, some browsers such as Firefox may report a different, fixed GPU name such as "GeForce GTX 980" (regardless of the user's actual GPU model). This is done to make fingerprinting more difficult. + + + + + Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the type of the video adapter. Since dedicated graphics cards from a given generation will usually be significantly faster than integrated graphics made in the same generation, the device type can be used as a basis for automatic graphics settings adjustment. However, this is not always true, so make sure to provide users with a way to manually override graphics settings. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns the version of the graphics video adapter currently in use (e.g. "1.2.189" for Vulkan, "3.3.0 NVIDIA 510.60.02" for OpenGL). This version may be different from the actual latest version supported by the hardware, as Godot may not always request the latest version. See also . + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the name of the current rendering driver. This can be vulkan, d3d12, metal, opengl3, opengl3_es, or opengl3_angle. See also . + The rendering driver is determined by ProjectSettings.rendering/rendering_device/driver, the --rendering-driver command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns the name of the current rendering method. This can be forward_plus, mobile, or gl_compatibility. See also . + The rendering method is determined by ProjectSettings.rendering/renderer/rendering_method, the --rendering-method command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns a mesh of a sphere with the given number of horizontal subdivisions, vertical subdivisions and radius. See also . + + + + + Returns the RID of the test cube. This mesh will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + + + + + Returns the RID of a 256×256 texture with a testing pattern on it (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the test texture and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns the ID of a 4×4 white texture (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the white texture and apply it to a node: + + var texture_rid = RenderingServer.get_white_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Sets a boot image. The color defines the background color. If is , the image will be scaled to fit the screen size. If is , the image will be scaled with linear interpolation. If is , the image will be scaled with nearest-neighbor interpolation. + + + + + Returns the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Sets the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Returns if the OS supports a certain . Features might be s3tc, etc, and etc2. + + + + + If is , generates debug wireframes for all meshes that are loaded when using the Compatibility renderer. By default, the engine does not generate debug wireframes at runtime, since they slow down loading of assets and take up VRAM. + Note: You must call this method before loading any meshes when using the Compatibility renderer, otherwise wireframes will not be used. + + + + + Returns the time taken to setup rendering on the CPU in milliseconds. This value is shared across all viewports and does not require to be enabled on a viewport to be queried. See also . + + + + + Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost. + + + + + Forces redrawing of all viewports at once. Must be called from the main thread. + + + + + Returns the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Creates a RenderingDevice that can be used to do draw and compute operations on a separate thread. Cannot draw to the screen nor share data with the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns if our code is currently executing on the rendering thread. + + + + + As the RenderingServer actual logic may run on an separate thread, accessing its internals from the main (or any other) thread will result in errors. To make it easier to run code that can safely access the rendering internals (such as and similar RD classes), push a callable via this function so it will be executed on the render thread. + + + + + This method does nothing and always returns . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Emitted at the beginning of the frame, before the RenderingServer updates all the Viewports. + + + + + Emitted at the end of the frame, after the RenderingServer has finished updating all the Viewports. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_loop_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'texture_2d_create' method. + + + + + Cached name for the 'texture_2d_layered_create' method. + + + + + Cached name for the 'texture_3d_create' method. + + + + + Cached name for the 'texture_proxy_create' method. + + + + + Cached name for the 'texture_create_from_native_handle' method. + + + + + Cached name for the 'texture_2d_update' method. + + + + + Cached name for the 'texture_3d_update' method. + + + + + Cached name for the 'texture_proxy_update' method. + + + + + Cached name for the 'texture_2d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_layered_placeholder_create' method. + + + + + Cached name for the 'texture_3d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_get' method. + + + + + Cached name for the 'texture_2d_layer_get' method. + + + + + Cached name for the 'texture_3d_get' method. + + + + + Cached name for the 'texture_replace' method. + + + + + Cached name for the 'texture_set_size_override' method. + + + + + Cached name for the 'texture_set_path' method. + + + + + Cached name for the 'texture_get_path' method. + + + + + Cached name for the 'texture_get_format' method. + + + + + Cached name for the 'texture_set_force_redraw_if_visible' method. + + + + + Cached name for the 'texture_rd_create' method. + + + + + Cached name for the 'texture_get_rd_texture' method. + + + + + Cached name for the 'texture_get_native_handle' method. + + + + + Cached name for the 'shader_create' method. + + + + + Cached name for the 'shader_set_code' method. + + + + + Cached name for the 'shader_set_path_hint' method. + + + + + Cached name for the 'shader_get_code' method. + + + + + Cached name for the 'get_shader_parameter_list' method. + + + + + Cached name for the 'shader_get_parameter_default' method. + + + + + Cached name for the 'shader_set_default_texture_parameter' method. + + + + + Cached name for the 'shader_get_default_texture_parameter' method. + + + + + Cached name for the 'material_create' method. + + + + + Cached name for the 'material_set_shader' method. + + + + + Cached name for the 'material_set_param' method. + + + + + Cached name for the 'material_get_param' method. + + + + + Cached name for the 'material_set_render_priority' method. + + + + + Cached name for the 'material_set_next_pass' method. + + + + + Cached name for the 'mesh_create_from_surfaces' method. + + + + + Cached name for the 'mesh_create' method. + + + + + Cached name for the 'mesh_surface_get_format_offset' method. + + + + + Cached name for the 'mesh_surface_get_format_vertex_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_normal_tangent_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_attribute_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_skin_stride' method. + + + + + Cached name for the 'mesh_add_surface' method. + + + + + Cached name for the 'mesh_add_surface_from_arrays' method. + + + + + Cached name for the 'mesh_get_blend_shape_count' method. + + + + + Cached name for the 'mesh_set_blend_shape_mode' method. + + + + + Cached name for the 'mesh_get_blend_shape_mode' method. + + + + + Cached name for the 'mesh_surface_set_material' method. + + + + + Cached name for the 'mesh_surface_get_material' method. + + + + + Cached name for the 'mesh_get_surface' method. + + + + + Cached name for the 'mesh_surface_get_arrays' method. + + + + + Cached name for the 'mesh_surface_get_blend_shape_arrays' method. + + + + + Cached name for the 'mesh_get_surface_count' method. + + + + + Cached name for the 'mesh_set_custom_aabb' method. + + + + + Cached name for the 'mesh_get_custom_aabb' method. + + + + + Cached name for the 'mesh_clear' method. + + + + + Cached name for the 'mesh_surface_update_vertex_region' method. + + + + + Cached name for the 'mesh_surface_update_attribute_region' method. + + + + + Cached name for the 'mesh_surface_update_skin_region' method. + + + + + Cached name for the 'mesh_set_shadow_mesh' method. + + + + + Cached name for the 'multimesh_create' method. + + + + + Cached name for the 'multimesh_allocate_data' method. + + + + + Cached name for the 'multimesh_get_instance_count' method. + + + + + Cached name for the 'multimesh_set_mesh' method. + + + + + Cached name for the 'multimesh_instance_set_transform' method. + + + + + Cached name for the 'multimesh_instance_set_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_set_color' method. + + + + + Cached name for the 'multimesh_instance_set_custom_data' method. + + + + + Cached name for the 'multimesh_get_mesh' method. + + + + + Cached name for the 'multimesh_get_aabb' method. + + + + + Cached name for the 'multimesh_set_custom_aabb' method. + + + + + Cached name for the 'multimesh_get_custom_aabb' method. + + + + + Cached name for the 'multimesh_instance_get_transform' method. + + + + + Cached name for the 'multimesh_instance_get_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_get_color' method. + + + + + Cached name for the 'multimesh_instance_get_custom_data' method. + + + + + Cached name for the 'multimesh_set_visible_instances' method. + + + + + Cached name for the 'multimesh_get_visible_instances' method. + + + + + Cached name for the 'multimesh_set_buffer' method. + + + + + Cached name for the 'multimesh_get_buffer_rd_rid' method. + + + + + Cached name for the 'multimesh_get_buffer' method. + + + + + Cached name for the 'multimesh_set_buffer_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolation_quality' method. + + + + + Cached name for the 'multimesh_instance_reset_physics_interpolation' method. + + + + + Cached name for the 'skeleton_create' method. + + + + + Cached name for the 'skeleton_allocate_data' method. + + + + + Cached name for the 'skeleton_get_bone_count' method. + + + + + Cached name for the 'skeleton_bone_set_transform' method. + + + + + Cached name for the 'skeleton_bone_get_transform' method. + + + + + Cached name for the 'skeleton_bone_set_transform_2d' method. + + + + + Cached name for the 'skeleton_bone_get_transform_2d' method. + + + + + Cached name for the 'skeleton_set_base_transform_2d' method. + + + + + Cached name for the 'directional_light_create' method. + + + + + Cached name for the 'omni_light_create' method. + + + + + Cached name for the 'spot_light_create' method. + + + + + Cached name for the 'light_set_color' method. + + + + + Cached name for the 'light_set_param' method. + + + + + Cached name for the 'light_set_shadow' method. + + + + + Cached name for the 'light_set_projector' method. + + + + + Cached name for the 'light_set_negative' method. + + + + + Cached name for the 'light_set_cull_mask' method. + + + + + Cached name for the 'light_set_distance_fade' method. + + + + + Cached name for the 'light_set_reverse_cull_face_mode' method. + + + + + Cached name for the 'light_set_shadow_caster_mask' method. + + + + + Cached name for the 'light_set_bake_mode' method. + + + + + Cached name for the 'light_set_max_sdfgi_cascade' method. + + + + + Cached name for the 'light_omni_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_blend_splits' method. + + + + + Cached name for the 'light_directional_set_sky_mode' method. + + + + + Cached name for the 'light_projectors_set_filter' method. + + + + + Cached name for the 'lightmaps_set_bicubic_filter' method. + + + + + Cached name for the 'positional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_shadow_atlas_set_size' method. + + + + + Cached name for the 'reflection_probe_create' method. + + + + + Cached name for the 'reflection_probe_set_update_mode' method. + + + + + Cached name for the 'reflection_probe_set_intensity' method. + + + + + Cached name for the 'reflection_probe_set_blend_distance' method. + + + + + Cached name for the 'reflection_probe_set_ambient_mode' method. + + + + + Cached name for the 'reflection_probe_set_ambient_color' method. + + + + + Cached name for the 'reflection_probe_set_ambient_energy' method. + + + + + Cached name for the 'reflection_probe_set_max_distance' method. + + + + + Cached name for the 'reflection_probe_set_size' method. + + + + + Cached name for the 'reflection_probe_set_origin_offset' method. + + + + + Cached name for the 'reflection_probe_set_as_interior' method. + + + + + Cached name for the 'reflection_probe_set_enable_box_projection' method. + + + + + Cached name for the 'reflection_probe_set_enable_shadows' method. + + + + + Cached name for the 'reflection_probe_set_cull_mask' method. + + + + + Cached name for the 'reflection_probe_set_reflection_mask' method. + + + + + Cached name for the 'reflection_probe_set_resolution' method. + + + + + Cached name for the 'reflection_probe_set_mesh_lod_threshold' method. + + + + + Cached name for the 'decal_create' method. + + + + + Cached name for the 'decal_set_size' method. + + + + + Cached name for the 'decal_set_texture' method. + + + + + Cached name for the 'decal_set_emission_energy' method. + + + + + Cached name for the 'decal_set_albedo_mix' method. + + + + + Cached name for the 'decal_set_modulate' method. + + + + + Cached name for the 'decal_set_cull_mask' method. + + + + + Cached name for the 'decal_set_distance_fade' method. + + + + + Cached name for the 'decal_set_fade' method. + + + + + Cached name for the 'decal_set_normal_fade' method. + + + + + Cached name for the 'decals_set_filter' method. + + + + + Cached name for the 'gi_set_use_half_resolution' method. + + + + + Cached name for the 'voxel_gi_create' method. + + + + + Cached name for the 'voxel_gi_allocate_data' method. + + + + + Cached name for the 'voxel_gi_get_octree_size' method. + + + + + Cached name for the 'voxel_gi_get_octree_cells' method. + + + + + Cached name for the 'voxel_gi_get_data_cells' method. + + + + + Cached name for the 'voxel_gi_get_distance_field' method. + + + + + Cached name for the 'voxel_gi_get_level_counts' method. + + + + + Cached name for the 'voxel_gi_get_to_cell_xform' method. + + + + + Cached name for the 'voxel_gi_set_dynamic_range' method. + + + + + Cached name for the 'voxel_gi_set_propagation' method. + + + + + Cached name for the 'voxel_gi_set_energy' method. + + + + + Cached name for the 'voxel_gi_set_baked_exposure_normalization' method. + + + + + Cached name for the 'voxel_gi_set_bias' method. + + + + + Cached name for the 'voxel_gi_set_normal_bias' method. + + + + + Cached name for the 'voxel_gi_set_interior' method. + + + + + Cached name for the 'voxel_gi_set_use_two_bounces' method. + + + + + Cached name for the 'voxel_gi_set_quality' method. + + + + + Cached name for the 'lightmap_create' method. + + + + + Cached name for the 'lightmap_set_textures' method. + + + + + Cached name for the 'lightmap_set_probe_bounds' method. + + + + + Cached name for the 'lightmap_set_probe_interior' method. + + + + + Cached name for the 'lightmap_set_probe_capture_data' method. + + + + + Cached name for the 'lightmap_get_probe_capture_points' method. + + + + + Cached name for the 'lightmap_get_probe_capture_sh' method. + + + + + Cached name for the 'lightmap_get_probe_capture_tetrahedra' method. + + + + + Cached name for the 'lightmap_get_probe_capture_bsp_tree' method. + + + + + Cached name for the 'lightmap_set_baked_exposure_normalization' method. + + + + + Cached name for the 'lightmap_set_probe_capture_update_speed' method. + + + + + Cached name for the 'particles_create' method. + + + + + Cached name for the 'particles_set_mode' method. + + + + + Cached name for the 'particles_set_emitting' method. + + + + + Cached name for the 'particles_get_emitting' method. + + + + + Cached name for the 'particles_set_amount' method. + + + + + Cached name for the 'particles_set_amount_ratio' method. + + + + + Cached name for the 'particles_set_lifetime' method. + + + + + Cached name for the 'particles_set_one_shot' method. + + + + + Cached name for the 'particles_set_pre_process_time' method. + + + + + Cached name for the 'particles_set_explosiveness_ratio' method. + + + + + Cached name for the 'particles_set_randomness_ratio' method. + + + + + Cached name for the 'particles_set_interp_to_end' method. + + + + + Cached name for the 'particles_set_emitter_velocity' method. + + + + + Cached name for the 'particles_set_custom_aabb' method. + + + + + Cached name for the 'particles_set_speed_scale' method. + + + + + Cached name for the 'particles_set_use_local_coordinates' method. + + + + + Cached name for the 'particles_set_process_material' method. + + + + + Cached name for the 'particles_set_fixed_fps' method. + + + + + Cached name for the 'particles_set_interpolate' method. + + + + + Cached name for the 'particles_set_fractional_delta' method. + + + + + Cached name for the 'particles_set_collision_base_size' method. + + + + + Cached name for the 'particles_set_transform_align' method. + + + + + Cached name for the 'particles_set_trails' method. + + + + + Cached name for the 'particles_set_trail_bind_poses' method. + + + + + Cached name for the 'particles_is_inactive' method. + + + + + Cached name for the 'particles_request_process' method. + + + + + Cached name for the 'particles_restart' method. + + + + + Cached name for the 'particles_set_subemitter' method. + + + + + Cached name for the 'particles_emit' method. + + + + + Cached name for the 'particles_set_draw_order' method. + + + + + Cached name for the 'particles_set_draw_passes' method. + + + + + Cached name for the 'particles_set_draw_pass_mesh' method. + + + + + Cached name for the 'particles_get_current_aabb' method. + + + + + Cached name for the 'particles_set_emission_transform' method. + + + + + Cached name for the 'particles_collision_create' method. + + + + + Cached name for the 'particles_collision_set_collision_type' method. + + + + + Cached name for the 'particles_collision_set_cull_mask' method. + + + + + Cached name for the 'particles_collision_set_sphere_radius' method. + + + + + Cached name for the 'particles_collision_set_box_extents' method. + + + + + Cached name for the 'particles_collision_set_attractor_strength' method. + + + + + Cached name for the 'particles_collision_set_attractor_directionality' method. + + + + + Cached name for the 'particles_collision_set_attractor_attenuation' method. + + + + + Cached name for the 'particles_collision_set_field_texture' method. + + + + + Cached name for the 'particles_collision_height_field_update' method. + + + + + Cached name for the 'particles_collision_set_height_field_resolution' method. + + + + + Cached name for the 'fog_volume_create' method. + + + + + Cached name for the 'fog_volume_set_shape' method. + + + + + Cached name for the 'fog_volume_set_size' method. + + + + + Cached name for the 'fog_volume_set_material' method. + + + + + Cached name for the 'visibility_notifier_create' method. + + + + + Cached name for the 'visibility_notifier_set_aabb' method. + + + + + Cached name for the 'visibility_notifier_set_callbacks' method. + + + + + Cached name for the 'occluder_create' method. + + + + + Cached name for the 'occluder_set_mesh' method. + + + + + Cached name for the 'camera_create' method. + + + + + Cached name for the 'camera_set_perspective' method. + + + + + Cached name for the 'camera_set_orthogonal' method. + + + + + Cached name for the 'camera_set_frustum' method. + + + + + Cached name for the 'camera_set_transform' method. + + + + + Cached name for the 'camera_set_cull_mask' method. + + + + + Cached name for the 'camera_set_environment' method. + + + + + Cached name for the 'camera_set_camera_attributes' method. + + + + + Cached name for the 'camera_set_compositor' method. + + + + + Cached name for the 'camera_set_use_vertical_aspect' method. + + + + + Cached name for the 'viewport_create' method. + + + + + Cached name for the 'viewport_set_use_xr' method. + + + + + Cached name for the 'viewport_set_size' method. + + + + + Cached name for the 'viewport_set_active' method. + + + + + Cached name for the 'viewport_set_parent_viewport' method. + + + + + Cached name for the 'viewport_attach_to_screen' method. + + + + + Cached name for the 'viewport_set_render_direct_to_screen' method. + + + + + Cached name for the 'viewport_set_canvas_cull_mask' method. + + + + + Cached name for the 'viewport_set_scaling_3d_mode' method. + + + + + Cached name for the 'viewport_set_scaling_3d_scale' method. + + + + + Cached name for the 'viewport_set_fsr_sharpness' method. + + + + + Cached name for the 'viewport_set_texture_mipmap_bias' method. + + + + + Cached name for the 'viewport_set_anisotropic_filtering_level' method. + + + + + Cached name for the 'viewport_set_update_mode' method. + + + + + Cached name for the 'viewport_get_update_mode' method. + + + + + Cached name for the 'viewport_set_clear_mode' method. + + + + + Cached name for the 'viewport_get_render_target' method. + + + + + Cached name for the 'viewport_get_texture' method. + + + + + Cached name for the 'viewport_set_disable_3d' method. + + + + + Cached name for the 'viewport_set_disable_2d' method. + + + + + Cached name for the 'viewport_set_environment_mode' method. + + + + + Cached name for the 'viewport_attach_camera' method. + + + + + Cached name for the 'viewport_set_scenario' method. + + + + + Cached name for the 'viewport_attach_canvas' method. + + + + + Cached name for the 'viewport_remove_canvas' method. + + + + + Cached name for the 'viewport_set_snap_2d_transforms_to_pixel' method. + + + + + Cached name for the 'viewport_set_snap_2d_vertices_to_pixel' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'viewport_set_canvas_transform' method. + + + + + Cached name for the 'viewport_set_canvas_stacking' method. + + + + + Cached name for the 'viewport_set_transparent_background' method. + + + + + Cached name for the 'viewport_set_global_canvas_transform' method. + + + + + Cached name for the 'viewport_set_sdf_oversize_and_scale' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_size' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_quadrant_subdivision' method. + + + + + Cached name for the 'viewport_set_msaa_3d' method. + + + + + Cached name for the 'viewport_set_msaa_2d' method. + + + + + Cached name for the 'viewport_set_use_hdr_2d' method. + + + + + Cached name for the 'viewport_set_screen_space_aa' method. + + + + + Cached name for the 'viewport_set_use_taa' method. + + + + + Cached name for the 'viewport_set_use_debanding' method. + + + + + Cached name for the 'viewport_set_use_occlusion_culling' method. + + + + + Cached name for the 'viewport_set_occlusion_rays_per_thread' method. + + + + + Cached name for the 'viewport_set_occlusion_culling_build_quality' method. + + + + + Cached name for the 'viewport_get_render_info' method. + + + + + Cached name for the 'viewport_set_debug_draw' method. + + + + + Cached name for the 'viewport_set_measure_render_time' method. + + + + + Cached name for the 'viewport_get_measured_render_time_cpu' method. + + + + + Cached name for the 'viewport_get_measured_render_time_gpu' method. + + + + + Cached name for the 'viewport_set_vrs_mode' method. + + + + + Cached name for the 'viewport_set_vrs_update_mode' method. + + + + + Cached name for the 'viewport_set_vrs_texture' method. + + + + + Cached name for the 'sky_create' method. + + + + + Cached name for the 'sky_set_radiance_size' method. + + + + + Cached name for the 'sky_set_mode' method. + + + + + Cached name for the 'sky_set_material' method. + + + + + Cached name for the 'sky_bake_panorama' method. + + + + + Cached name for the 'compositor_effect_create' method. + + + + + Cached name for the 'compositor_effect_set_enabled' method. + + + + + Cached name for the 'compositor_effect_set_callback' method. + + + + + Cached name for the 'compositor_effect_set_flag' method. + + + + + Cached name for the 'compositor_create' method. + + + + + Cached name for the 'compositor_set_compositor_effects' method. + + + + + Cached name for the 'environment_create' method. + + + + + Cached name for the 'environment_set_background' method. + + + + + Cached name for the 'environment_set_camera_id' method. + + + + + Cached name for the 'environment_set_sky' method. + + + + + Cached name for the 'environment_set_sky_custom_fov' method. + + + + + Cached name for the 'environment_set_sky_orientation' method. + + + + + Cached name for the 'environment_set_bg_color' method. + + + + + Cached name for the 'environment_set_bg_energy' method. + + + + + Cached name for the 'environment_set_canvas_max_layer' method. + + + + + Cached name for the 'environment_set_ambient_light' method. + + + + + Cached name for the 'environment_set_glow' method. + + + + + Cached name for the 'environment_set_tonemap' method. + + + + + Cached name for the 'environment_set_adjustment' method. + + + + + Cached name for the 'environment_set_ssr' method. + + + + + Cached name for the 'environment_set_ssao' method. + + + + + Cached name for the 'environment_set_fog' method. + + + + + Cached name for the 'environment_set_sdfgi' method. + + + + + Cached name for the 'environment_set_volumetric_fog' method. + + + + + Cached name for the 'environment_glow_set_use_bicubic_upscale' method. + + + + + Cached name for the 'environment_set_ssr_roughness_quality' method. + + + + + Cached name for the 'environment_set_ssao_quality' method. + + + + + Cached name for the 'environment_set_ssil_quality' method. + + + + + Cached name for the 'environment_set_sdfgi_ray_count' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_converge' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_update_light' method. + + + + + Cached name for the 'environment_set_volumetric_fog_volume_size' method. + + + + + Cached name for the 'environment_set_volumetric_fog_filter_active' method. + + + + + Cached name for the 'environment_bake_panorama' method. + + + + + Cached name for the 'screen_space_roughness_limiter_set_active' method. + + + + + Cached name for the 'sub_surface_scattering_set_quality' method. + + + + + Cached name for the 'sub_surface_scattering_set_scale' method. + + + + + Cached name for the 'camera_attributes_create' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_quality' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_bokeh_shape' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur' method. + + + + + Cached name for the 'camera_attributes_set_exposure' method. + + + + + Cached name for the 'camera_attributes_set_auto_exposure' method. + + + + + Cached name for the 'scenario_create' method. + + + + + Cached name for the 'scenario_set_environment' method. + + + + + Cached name for the 'scenario_set_fallback_environment' method. + + + + + Cached name for the 'scenario_set_camera_attributes' method. + + + + + Cached name for the 'scenario_set_compositor' method. + + + + + Cached name for the 'instance_create2' method. + + + + + Cached name for the 'instance_create' method. + + + + + Cached name for the 'instance_set_base' method. + + + + + Cached name for the 'instance_set_scenario' method. + + + + + Cached name for the 'instance_set_layer_mask' method. + + + + + Cached name for the 'instance_set_pivot_data' method. + + + + + Cached name for the 'instance_set_transform' method. + + + + + Cached name for the 'instance_set_interpolated' method. + + + + + Cached name for the 'instance_reset_physics_interpolation' method. + + + + + Cached name for the 'instance_attach_object_instance_id' method. + + + + + Cached name for the 'instance_set_blend_shape_weight' method. + + + + + Cached name for the 'instance_set_surface_override_material' method. + + + + + Cached name for the 'instance_set_visible' method. + + + + + Cached name for the 'instance_geometry_set_transparency' method. + + + + + Cached name for the 'instance_set_custom_aabb' method. + + + + + Cached name for the 'instance_attach_skeleton' method. + + + + + Cached name for the 'instance_set_extra_visibility_margin' method. + + + + + Cached name for the 'instance_set_visibility_parent' method. + + + + + Cached name for the 'instance_set_ignore_culling' method. + + + + + Cached name for the 'instance_geometry_set_flag' method. + + + + + Cached name for the 'instance_geometry_set_cast_shadows_setting' method. + + + + + Cached name for the 'instance_geometry_set_material_override' method. + + + + + Cached name for the 'instance_geometry_set_material_overlay' method. + + + + + Cached name for the 'instance_geometry_set_visibility_range' method. + + + + + Cached name for the 'instance_geometry_set_lightmap' method. + + + + + Cached name for the 'instance_geometry_set_lod_bias' method. + + + + + Cached name for the 'instance_geometry_set_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_default_value' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_list' method. + + + + + Cached name for the 'instances_cull_aabb' method. + + + + + Cached name for the 'instances_cull_ray' method. + + + + + Cached name for the 'instances_cull_convex' method. + + + + + Cached name for the 'bake_render_uv2' method. + + + + + Cached name for the 'canvas_create' method. + + + + + Cached name for the 'canvas_set_item_mirroring' method. + + + + + Cached name for the 'canvas_set_item_repeat' method. + + + + + Cached name for the 'canvas_set_modulate' method. + + + + + Cached name for the 'canvas_set_disable_scale' method. + + + + + Cached name for the 'canvas_texture_create' method. + + + + + Cached name for the 'canvas_texture_set_channel' method. + + + + + Cached name for the 'canvas_texture_set_shading_parameters' method. + + + + + Cached name for the 'canvas_texture_set_texture_filter' method. + + + + + Cached name for the 'canvas_texture_set_texture_repeat' method. + + + + + Cached name for the 'canvas_item_create' method. + + + + + Cached name for the 'canvas_item_set_parent' method. + + + + + Cached name for the 'canvas_item_set_default_texture_filter' method. + + + + + Cached name for the 'canvas_item_set_default_texture_repeat' method. + + + + + Cached name for the 'canvas_item_set_visible' method. + + + + + Cached name for the 'canvas_item_set_light_mask' method. + + + + + Cached name for the 'canvas_item_set_visibility_layer' method. + + + + + Cached name for the 'canvas_item_set_transform' method. + + + + + Cached name for the 'canvas_item_set_clip' method. + + + + + Cached name for the 'canvas_item_set_distance_field_mode' method. + + + + + Cached name for the 'canvas_item_set_custom_rect' method. + + + + + Cached name for the 'canvas_item_set_modulate' method. + + + + + Cached name for the 'canvas_item_set_self_modulate' method. + + + + + Cached name for the 'canvas_item_set_draw_behind_parent' method. + + + + + Cached name for the 'canvas_item_set_interpolated' method. + + + + + Cached name for the 'canvas_item_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_add_line' method. + + + + + Cached name for the 'canvas_item_add_polyline' method. + + + + + Cached name for the 'canvas_item_add_multiline' method. + + + + + Cached name for the 'canvas_item_add_rect' method. + + + + + Cached name for the 'canvas_item_add_circle' method. + + + + + Cached name for the 'canvas_item_add_texture_rect' method. + + + + + Cached name for the 'canvas_item_add_msdf_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_lcd_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_nine_patch' method. + + + + + Cached name for the 'canvas_item_add_primitive' method. + + + + + Cached name for the 'canvas_item_add_polygon' method. + + + + + Cached name for the 'canvas_item_add_triangle_array' method. + + + + + Cached name for the 'canvas_item_add_mesh' method. + + + + + Cached name for the 'canvas_item_add_multimesh' method. + + + + + Cached name for the 'canvas_item_add_particles' method. + + + + + Cached name for the 'canvas_item_add_set_transform' method. + + + + + Cached name for the 'canvas_item_add_clip_ignore' method. + + + + + Cached name for the 'canvas_item_add_animation_slice' method. + + + + + Cached name for the 'canvas_item_set_sort_children_by_y' method. + + + + + Cached name for the 'canvas_item_set_z_index' method. + + + + + Cached name for the 'canvas_item_set_z_as_relative_to_parent' method. + + + + + Cached name for the 'canvas_item_set_copy_to_backbuffer' method. + + + + + Cached name for the 'canvas_item_attach_skeleton' method. + + + + + Cached name for the 'canvas_item_clear' method. + + + + + Cached name for the 'canvas_item_set_draw_index' method. + + + + + Cached name for the 'canvas_item_set_material' method. + + + + + Cached name for the 'canvas_item_set_use_parent_material' method. + + + + + Cached name for the 'canvas_item_set_visibility_notifier' method. + + + + + Cached name for the 'canvas_item_set_canvas_group_mode' method. + + + + + Cached name for the 'debug_canvas_item_get_rect' method. + + + + + Cached name for the 'canvas_light_create' method. + + + + + Cached name for the 'canvas_light_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_set_enabled' method. + + + + + Cached name for the 'canvas_light_set_texture_scale' method. + + + + + Cached name for the 'canvas_light_set_transform' method. + + + + + Cached name for the 'canvas_light_set_texture' method. + + + + + Cached name for the 'canvas_light_set_texture_offset' method. + + + + + Cached name for the 'canvas_light_set_color' method. + + + + + Cached name for the 'canvas_light_set_height' method. + + + + + Cached name for the 'canvas_light_set_energy' method. + + + + + Cached name for the 'canvas_light_set_z_range' method. + + + + + Cached name for the 'canvas_light_set_layer_range' method. + + + + + Cached name for the 'canvas_light_set_item_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_item_shadow_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_mode' method. + + + + + Cached name for the 'canvas_light_set_shadow_enabled' method. + + + + + Cached name for the 'canvas_light_set_shadow_filter' method. + + + + + Cached name for the 'canvas_light_set_shadow_color' method. + + + + + Cached name for the 'canvas_light_set_shadow_smooth' method. + + + + + Cached name for the 'canvas_light_set_blend_mode' method. + + + + + Cached name for the 'canvas_light_set_interpolated' method. + + + + + Cached name for the 'canvas_light_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_create' method. + + + + + Cached name for the 'canvas_light_occluder_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_occluder_set_enabled' method. + + + + + Cached name for the 'canvas_light_occluder_set_polygon' method. + + + + + Cached name for the 'canvas_light_occluder_set_as_sdf_collision' method. + + + + + Cached name for the 'canvas_light_occluder_set_transform' method. + + + + + Cached name for the 'canvas_light_occluder_set_light_mask' method. + + + + + Cached name for the 'canvas_light_occluder_set_interpolated' method. + + + + + Cached name for the 'canvas_light_occluder_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_occluder_polygon_create' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_shape' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_cull_mode' method. + + + + + Cached name for the 'canvas_set_shadow_texture_size' method. + + + + + Cached name for the 'global_shader_parameter_add' method. + + + + + Cached name for the 'global_shader_parameter_remove' method. + + + + + Cached name for the 'global_shader_parameter_get_list' method. + + + + + Cached name for the 'global_shader_parameter_set' method. + + + + + Cached name for the 'global_shader_parameter_set_override' method. + + + + + Cached name for the 'global_shader_parameter_get' method. + + + + + Cached name for the 'global_shader_parameter_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'request_frame_drawn_callback' method. + + + + + Cached name for the 'has_changed' method. + + + + + Cached name for the 'get_rendering_info' method. + + + + + Cached name for the 'get_video_adapter_name' method. + + + + + Cached name for the 'get_video_adapter_vendor' method. + + + + + Cached name for the 'get_video_adapter_type' method. + + + + + Cached name for the 'get_video_adapter_api_version' method. + + + + + Cached name for the 'get_current_rendering_driver_name' method. + + + + + Cached name for the 'get_current_rendering_method' method. + + + + + Cached name for the 'make_sphere_mesh' method. + + + + + Cached name for the 'get_test_cube' method. + + + + + Cached name for the 'get_test_texture' method. + + + + + Cached name for the 'get_white_texture' method. + + + + + Cached name for the 'set_boot_image' method. + + + + + Cached name for the 'get_default_clear_color' method. + + + + + Cached name for the 'set_default_clear_color' method. + + + + + Cached name for the 'has_os_feature' method. + + + + + Cached name for the 'set_debug_generate_wireframes' method. + + + + + Cached name for the 'is_render_loop_enabled' method. + + + + + Cached name for the 'set_render_loop_enabled' method. + + + + + Cached name for the 'get_frame_setup_time_cpu' method. + + + + + Cached name for the 'force_sync' method. + + + + + Cached name for the 'force_draw' method. + + + + + Cached name for the 'get_rendering_device' method. + + + + + Cached name for the 'create_local_rendering_device' method. + + + + + Cached name for the 'is_on_render_thread' method. + + + + + Cached name for the 'call_on_render_thread' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_pre_draw' signal. + + + + + Cached name for the 'frame_post_draw' signal. + + + + + The rendering server is the API backend for everything visible. The whole scene system mounts on it to display. The rendering server is completely opaque: the internals are entirely implementation-specific and cannot be accessed. + The rendering server can be used to bypass the scene/ system entirely. This can improve performance in cases where the scene system is the bottleneck, but won't improve performance otherwise (for instance, if the GPU is already fully utilized). + Resources are created using the *_create functions. These functions return s which are not references to the objects themselves, but opaque pointers towards these objects. + All objects are drawn to a viewport. You can use the attached to the or you can create one yourself with . When using a custom scenario or canvas, the scenario or canvas needs to be attached to the viewport using or . + Scenarios: In 3D, all visual objects must be associated with a scenario. The scenario is a visual representation of the world. If accessing the rendering server from a running game, the scenario can be accessed from the scene tree from any node with . Otherwise, a scenario can be created with . + Similarly, in 2D, a canvas is needed to draw all canvas items. + 3D: In 3D, all visible objects are comprised of a resource and an instance. A resource can be a mesh, a particle system, a light, or any other 3D object. In order to be visible resources must be attached to an instance using . The instance must also be attached to the scenario using in order to be visible. RenderingServer methods that don't have a prefix are usually 3D-specific (but not always). + 2D: In 2D, all visible objects are some form of canvas item. In order to be visible, a canvas item needs to be the child of a canvas attached to a viewport, or it needs to be the child of another canvas item that is eventually attached to the canvas. 2D-specific RenderingServer methods generally start with canvas_*. + Headless mode: Starting the engine with the --headless command line argument disables all rendering and window management functions. Most functions from will return dummy values in this case. + + + + + If , disables rendering completely, but the engine logic is still being processed. You can call to draw a frame even with rendering disabled. + + + + + Creates a 2-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + Note: Not to be confused with , which creates the graphics API's own texture type as opposed to the Godot-specific resource. + + + + + Creates a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Note: The equivalent resource is . + + + + + This method does nothing and always returns an invalid . + + + + + Creates a texture based on a native handle that was created outside of Godot's renderer. + Note: If using the rendering device renderer, using rather than this method is recommended. It will give you much more control over the texture's format and usage. + + + + + Updates the texture specified by the with the data in . A must also be specified, which should be 0 when updating a single-layer texture (). + Note: The must have the same width, height and format as the current data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height or format, use instead. + + + + + Updates the texture specified by the 's data with the data in . All the texture's layers must be replaced at once. + Note: The must have the same width, height, depth and format as the current texture data. Otherwise, an error will be printed and the original texture won't be modified. If you need to use different width, height, depth or format, use instead. + + + + + This method does nothing. + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Creates a placeholder for a 2-dimensional layered texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_2d_layered_* RenderingServer functions, although it does nothing when used. See also . + Note: The equivalent resource is . + + + + + Creates a placeholder for a 3-dimensional texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all texture_3d_* RenderingServer functions, although it does nothing when used. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Returns an instance from the given . + Example: Get the test texture from and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns an instance from the given and . + + + + + Returns 3D texture data as an array of s for the specified texture . + + + + + Replaces 's texture data by the texture specified by the RID, without changing 's RID. + + + + + Returns the format for the texture. + + + + + Creates a new texture object based on a texture created directly on the . If the texture contains layers, is used to define the layer type. + + + + + Returns a texture that can be used with . + + + + + Returns the internal graphics handle for this texture object. For use when communicating with third-party APIs mostly with GDExtension. + Note: This function returns a uint64_t which internally maps to a GLuint (OpenGL) or VkImage (Vulkan). + + + + + Creates an empty shader and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all shader_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shader's source code (which triggers recompilation after being changed). + + + + + Sets the path hint for the specified shader. This should generally match the resource's . + + + + + Returns a shader's source code as a string. + + + + + Returns the parameters of a shader. + + + + + Returns the default value for the specified shader uniform. This is usually the value written in the shader source code. + + + + + Sets a shader's default texture. Overwrites the texture given by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns a default texture from a shader searched by name. + Note: If the sampler array is used use to access the specified texture. + + + + + Creates an empty material and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all material_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets a shader material's shader. + + + + + Sets a material's parameter. + + + + + Returns the value of a certain material's parameter. + + + + + Sets a material's render priority. + + + + + Sets an object's next material. + + + + + Creates a new mesh and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all mesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the offset of a given attribute by in the start of its respective buffer. + + + + + Returns the stride of the vertex positions for a mesh with given . Note importantly that vertex positions are stored consecutively and are not interleaved with the other attributes in the vertex buffer (normals and tangents). + + + + + Returns the stride of the combined normals and tangents for a mesh with given . Note importantly that, while normals and tangents are in the vertex buffer with vertices, they are only interleaved with each other and so have a different stride than vertex positions. + + + + + Returns the stride of the attribute buffer for a mesh with given . + + + + + Returns the stride of the skin buffer for a mesh with given . + + + + + Returns a mesh's blend shape count. + + + + + Sets a mesh's blend shape mode. + + + + + Returns a mesh's blend shape mode. + + + + + Sets a mesh's surface's material. + + + + + Returns a mesh's surface's material. + + + + + Returns a mesh's surface's buffer arrays. + + + + + Returns a mesh's surface's arrays for blend shapes. + + + + + Returns a mesh's number of surfaces. + + + + + Sets a mesh's custom aabb. + + + + + Returns a mesh's custom aabb. + + + + + Removes all surfaces from a mesh. + + + + + Creates a new multimesh on the RenderingServer and returns an handle. This RID will be used in all multimesh_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this multimesh to an instance using using the returned RID. + Note: The equivalent resource is . + + + + + Returns the number of instances allocated for this multimesh. + + + + + Sets the mesh to be drawn by the multimesh. Equivalent to . + + + + + Sets the for this instance. Equivalent to . + + + + + Sets the for this instance. For use when multimesh is used in 2D. Equivalent to . + + + + + Sets the color by which this instance will be modulated. Equivalent to . + + + + + Sets the custom data for this instance. Custom data is passed as a , but is interpreted as a vec4 in the shader. Equivalent to . + + + + + Returns the RID of the mesh that will be used in drawing this multimesh. + + + + + Calculates and returns the axis-aligned bounding box that encloses all instances within the multimesh. + + + + + Sets the custom AABB for this MultiMesh resource. + + + + + Returns the custom AABB defined for this MultiMesh resource. + + + + + Returns the of the specified instance. + + + + + Returns the of the specified instance. For use when the multimesh is set to use 2D transforms. + + + + + Returns the color by which the specified instance will be modulated. + + + + + Returns the custom data associated with the specified instance. + + + + + Sets the number of instances visible at a given time. If -1, all instances that have been allocated are drawn. Equivalent to . + + + + + Returns the number of visible instances for this multimesh. + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Set the entire data to use for drawing the at once to (such as instance transforms and colors). 's size must match the number of instances multiplied by the per-instance data size (which depends on the enabled MultiMesh fields). Otherwise, an error message is printed and nothing is rendered. See also . + The per-instance data size and expected data order is: + + 2D: + - Position: 8 floats (8 floats for Transform2D) + - Position + Vertex color: 12 floats (8 floats for Transform2D, 4 floats for Color) + - Position + Custom data: 12 floats (8 floats for Transform2D, 4 floats of custom data) + - Position + Vertex color + Custom data: 16 floats (8 floats for Transform2D, 4 floats for Color, 4 floats of custom data) + 3D: + - Position: 12 floats (12 floats for Transform3D) + - Position + Vertex color: 16 floats (12 floats for Transform3D, 4 floats for Color) + - Position + Custom data: 16 floats (12 floats for Transform3D, 4 floats of custom data) + - Position + Vertex color + Custom data: 20 floats (12 floats for Transform3D, 4 floats for Color, 4 floats of custom data) + + Instance transforms are in row-major order. Specifically: + - For the float-order is: (x.x, y.x, padding_float, origin.x, x.y, y.y, padding_float, origin.y). + - For the float-order is: (basis.x.x, basis.y.x, basis.z.x, origin.x, basis.x.y, basis.y.y, basis.z.y, origin.y, basis.x.z, basis.y.z, basis.z.z, origin.z). + + + + + Returns the handle of the , which can be used as any other buffer on the Rendering Device. + + + + + Returns the MultiMesh data (such as instance transforms, colors, etc.). See for details on the returned data. + Note: If the buffer is in the engine's internal cache, it will have to be fetched from GPU memory and possibly decompressed. This means is potentially a slow operation and should be avoided whenever possible. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Alternative version of for use with physics interpolation. + Takes both an array of current data and an array of data for the previous physics tick. + + + + + Turns on and off physics interpolation for this MultiMesh resource. + + + + + Sets the physics interpolation quality for the . + A value of gives fast but low quality interpolation, a value of gives slower but higher quality interpolation. + + + + + Prevents physics interpolation for the specified instance during the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Creates a skeleton and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all skeleton_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Returns the number of bones allocated for this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Sets the for a specific bone of this skeleton. + + + + + Returns the set for a specific bone of this skeleton. + + + + + Creates a directional light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this directional light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a new omni light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this omni light to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates a spot light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this spot light to an instance using using the returned RID. + + + + + Sets the color of the light. Equivalent to . + + + + + Sets the specified 3D light parameter. See for options. Equivalent to . + + + + + If , light will cast shadows. Equivalent to . + + + + + Sets the projector texture to use for the specified 3D light. Equivalent to . + + + + + If , the 3D light will subtract light instead of adding light. Equivalent to . + + + + + Sets the cull mask for this 3D light. Lights only affect objects in the selected layers. Equivalent to . + + + + + Sets the distance fade for this 3D light. This acts as a form of level of detail (LOD) and can be used to improve performance. Equivalent to , , , and . + + + + + If , reverses the backface culling of the mesh. This can be useful when you have a flat mesh that has a light behind it. If you need to cast a shadow on both sides of the mesh, set the mesh to use double-sided shadows with . Equivalent to . + + + + + Sets the shadow caster mask for this 3D light. Shadows will only be cast using objects in the selected layers. Equivalent to . + + + + + Sets the bake mode to use for the specified 3D light. Equivalent to . + + + + + Sets the maximum SDFGI cascade in which the 3D light's indirect lighting is rendered. Higher values allow the light to be rendered in SDFGI further away from the camera. + + + + + Sets whether to use a dual paraboloid or a cubemap for the shadow map. Dual paraboloid is faster but may suffer from artifacts. Equivalent to . + + + + + Sets the shadow mode for this directional light. Equivalent to . See for options. + + + + + If , this directional light will blend between shadow map splits resulting in a smoother transition between them. Equivalent to . + + + + + If , this light will not be used for anything except sky shaders. Use this for lights that impact your sky shader that you may want to hide from affecting the rest of the scene. For example, you may want to enable this when the sun in your sky shader falls below the horizon. + + + + + Sets the texture filter mode to use when rendering light projectors. This parameter is global and cannot be set on a per-light basis. + + + + + Toggles whether a bicubic filter should be used when lightmaps are sampled. This smoothens their appearance at a performance cost. + + + + + Sets the filter quality for omni and spot light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/positional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the filter for directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/soft_shadow_filter_quality. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the of the directional light shadows in 3D. See also ProjectSettings.rendering/lights_and_shadows/directional_shadow/size. This parameter is global and cannot be set on a per-viewport basis. + + + + + Creates a reflection probe and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all reflection_probe_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this reflection probe to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets how often the reflection probe updates. Can either be once or every frame. See for options. + + + + + Sets the intensity of the reflection probe. Intensity modulates the strength of the reflection. Equivalent to . + + + + + Sets the distance in meters over which a probe blends into the scene. + + + + + Sets the reflection probe's ambient light mode. Equivalent to . + + + + + Sets the reflection probe's custom ambient light color. Equivalent to . + + + + + Sets the reflection probe's custom ambient light energy. Equivalent to . + + + + + Sets the max distance away from the probe an object can be before it is culled. Equivalent to . + + + + + Sets the size of the area that the reflection probe will capture. Equivalent to . + + + + + Sets the origin offset to be used when this reflection probe is in box project mode. Equivalent to . + + + + + If , reflections will ignore sky contribution. Equivalent to . + + + + + If , uses box projection. This can make reflections look more correct in certain situations. Equivalent to . + + + + + If , computes shadows in the reflection probe. This makes the reflection much slower to compute. Equivalent to . + + + + + Sets the render cull mask for this reflection probe. Only instances with a matching layer will be reflected by this probe. Equivalent to . + + + + + Sets the render reflection mask for this reflection probe. Only instances with a matching layer will have reflections applied from this probe. Equivalent to . + + + + + Sets the resolution to use when rendering the specified reflection probe. The is specified for each cubemap face: for instance, specifying 512 will allocate 6 faces of 512×512 each (plus mipmaps for roughness levels). + + + + + Sets the mesh level of detail to use in the reflection probe rendering. Higher values will use less detailed versions of meshes that have LOD variations generated, which can improve performance. Equivalent to . + + + + + Creates a decal and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all decal_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this decal to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Sets the of the decal specified by the RID. Equivalent to . + + + + + Sets the in the given texture slot for the specified decal. Equivalent to . + + + + + Sets the emission in the decal specified by the RID. Equivalent to . + + + + + Sets the in the decal specified by the RID. Equivalent to . + + + + + Sets the color multiplier in the decal specified by the RID to . Equivalent to . + + + + + Sets the cull in the decal specified by the RID. Equivalent to . + + + + + Sets the distance fade parameters in the decal specified by the RID. Equivalent to , and . + + + + + Sets the upper fade () and lower fade () in the decal specified by the RID. Equivalent to and . + + + + + Sets the normal in the decal specified by the RID. Equivalent to . + + + + + Sets the texture mode to use when rendering decals. This parameter is global and cannot be set on a per-decal basis. + + + + + If is , renders and SDFGI () buffers at halved resolution on each axis (e.g. 960×540 when the viewport size is 1920×1080). This improves performance significantly when VoxelGI or SDFGI is enabled, at the cost of artifacts that may be visible on polygon edges. The loss in quality becomes less noticeable as the viewport resolution increases. rendering is not affected by this setting. Equivalent to ProjectSettings.rendering/global_illumination/gi/use_half_resolution. + + + + + Creates a new voxel-based global illumination object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all voxel_gi_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Used to inform the renderer what exposure normalization value was used while baking the voxel gi. This value will be used and modulated at run time to ensure that the voxel gi maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the value to use on the specified 's . + + + + + Sets the ProjectSettings.rendering/global_illumination/voxel_gi/quality value to use when rendering. This parameter is global and cannot be set on a per-VoxelGI basis. + + + + + Creates a new lightmap global illumination instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all lightmap_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Set the textures on the given GI instance to the texture array pointed to by the RID. If the lightmap texture was baked with set to , then must also be . + + + + + Used to inform the renderer what exposure normalization value was used while baking the lightmap. This value will be used and modulated at run time to ensure that the lightmap maintains a consistent level of exposure even if the scene-wide exposure normalization is changed at run time. For more information see . + + + + + Creates a GPU-based particle system and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all particles_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach these particles to an instance using using the returned RID. + Note: The equivalent nodes are and . + Note: All particles_* methods only apply to GPU-based particles, not CPU-based particles. and do not have equivalent RenderingServer functions available, as these use and under the hood (see multimesh_* methods). + + + + + Sets whether the GPU particles specified by the RID should be rendered in 2D or 3D according to . + + + + + If , particles will emit over time. Setting to does not reset the particles, but only stops their emission. Equivalent to . + + + + + Returns if particles are currently set to emitting. + + + + + Sets the number of particles to be drawn and allocates the memory for them. Equivalent to . + + + + + Sets the amount ratio for particles to be emitted. Equivalent to . + + + + + Sets the lifetime of each particle in the system. Equivalent to . + + + + + If , particles will emit once and then stop. Equivalent to . + + + + + Sets the preprocess time for the particles' animation. This lets you delay starting an animation until after the particles have begun emitting. Equivalent to . + + + + + Sets the explosiveness ratio. Equivalent to . + + + + + Sets the emission randomness ratio. This randomizes the emission of particles within their phase. Equivalent to . + + + + + Sets the value that informs a to rush all particles towards the end of their lifetime. + + + + + Sets the velocity of a particle node, that will be used by . + + + + + Sets a custom axis-aligned bounding box for the particle system. Equivalent to . + + + + + Sets the speed scale of the particle system. Equivalent to . + + + + + If , particles use local coordinates. If they use global coordinates. Equivalent to . + + + + + Sets the material for processing the particles. + Note: This is not the material used to draw the materials. Equivalent to . + + + + + Sets the frame rate that the particle system rendering will be fixed to. Equivalent to . + + + + + If , uses fractional delta which smooths the movement of the particles. Equivalent to . + + + + + If is , enables trails for the with the specified in seconds. Equivalent to and . + + + + + Returns if particles are not emitting and particles are set to inactive. + + + + + Add particle system to list of particle systems that need to be updated. Update will take place on the next frame, or on the next call to , , or . + + + + + Reset the particles on the next update. Equivalent to . + + + + + Manually emits particles from the instance. + + + + + Sets the draw order of the particles to one of the named enums from . See for options. Equivalent to . + + + + + Sets the number of draw passes to use. Equivalent to . + + + + + Sets the mesh to be used for the specified draw pass. Equivalent to , , , and . + + + + + Calculates and returns the axis-aligned bounding box that contains all the particles. Equivalent to . + + + + + Sets the that will be used by the particles when they first emit. + + + + + Creates a new 3D GPU particle collision or attractor and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID can be used in most particles_collision_* RenderingServer functions. + Note: The equivalent nodes are and . + + + + + Sets the collision or attractor shape for the 3D GPU particles collision or attractor specified by the RID. + + + + + Sets the cull for the 3D GPU particles collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles sphere collision or attractor specified by the RID. Equivalent to or depending on the type. + + + + + Sets the for the 3D GPU particles collision by the RID. Equivalent to , , , or depending on the type. + + + + + Sets the for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the directionality for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the attenuation for the 3D GPU particles attractor specified by the RID. Only used for attractors, not colliders. Equivalent to . + + + + + Sets the signed distance field for the 3D GPU particles collision specified by the RID. Equivalent to or depending on the type. + + + + + Requests an update for the 3D GPU particle collision heightfield. This may be automatically called by the 3D GPU particle collision heightfield depending on its . + + + + + Sets the heightmap for the 3D GPU particles heightfield collision specified by the RID. Equivalent to . + + + + + Creates a new fog volume and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all fog_volume_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets the shape of the fog volume to either , , , or . + + + + + Sets the size of the fog volume when shape is , , or . + + + + + Sets the of the fog volume. Can be either a or a custom . + + + + + Creates a new 3D visibility notifier object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all visibility_notifier_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + To place in a scene, attach this mesh to an instance using using the returned RID. + Note: The equivalent node is . + + + + + Creates an occluder instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is (not to be confused with the node). + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Sets the mesh data for the given occluder RID, which controls the shape of the occlusion culling that will be performed. + + + + + Creates a 3D camera and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets camera to use perspective projection. Objects on the screen becomes smaller when they are far away. + + + + + Sets camera to use orthogonal projection, also known as orthographic projection. Objects remain the same size on the screen no matter how far away they are. + + + + + Sets camera to use frustum projection. This mode allows adjusting the argument to create "tilted frustum" effects. + + + + + Sets of camera. + + + + + Sets the cull mask associated with this camera. The cull mask describes which 3D layers are rendered by this camera. Equivalent to . + + + + + Sets the environment used by this camera. Equivalent to . + + + + + Sets the camera_attributes created with to the given camera. + + + + + Sets the compositor used by this camera. Equivalent to . + + + + + If , preserves the horizontal aspect ratio which is equivalent to . If , preserves the vertical aspect ratio which is equivalent to . + + + + + Creates an empty viewport and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all viewport_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + If , the viewport uses augmented or virtual reality technologies. See . + + + + + Sets the viewport's width and height in pixels. + + + + + If , sets the viewport active, else sets it inactive. + + + + + Sets the viewport's parent to the viewport specified by the RID. + + + + + Copies the viewport to a region of the screen specified by . If is , then the viewport does not use a framebuffer and the contents of the viewport are rendered directly to screen. However, note that the root viewport is drawn last, therefore it will draw over the screen. Accordingly, you must set the root viewport to an area that does not cover the area that you have attached this viewport to. + For example, you can set the root viewport to not render at all with the following code: + FIXME: The method seems to be non-existent. + + Using this can result in significant optimization, especially on lower-end devices. However, it comes at the cost of having to manage your viewports manually. For further optimization, see . + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + If , render the contents of the viewport directly to screen. This allows a low-level optimization where you can skip drawing a viewport to the root viewport. While this optimization can result in a significant increase in speed (especially on older devices), it comes at a cost of usability. When this is enabled, you cannot read from the viewport or from the screen_texture. You also lose the benefit of certain window settings, such as the various stretch modes. Another consequence to be aware of is that in 2D the rendering happens in window coordinates, so if you have a viewport that is double the size of the window, and you set this, then only the portion that fits within the window will be drawn, no automatic scaling is possible, even if your game scene is significantly larger than the window size. + + + + + Sets the rendering mask associated with this . Only nodes with a matching rendering visibility layer will be rendered by this . + + + + + Sets the 3D resolution scaling mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible. + + + + + Scales the 3D render buffer based on the viewport size uses an image filter specified in to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also for multi-sample antialiasing, which is significantly cheaper but only smoothens the edges of polygons. + When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale. + + + + + Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference. + + + + + Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). To get sharper textures at a distance without introducing too much graininess, set this between -0.75 and 0.0. Enabling temporal antialiasing (ProjectSettings.rendering/anti_aliasing/quality/use_taa) can help reduce the graininess visible when using negative mipmap bias. + Note: When the 3D scaling mode is set to FSR 1.0, this value is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is -log2(1.0 / scale) + mipmap_bias. + + + + + Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled. + The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter. + Note: In 3D, for this setting to have an effect, set to or on materials. + Note: In 2D, for this setting to have an effect, set to or on the node displaying the texture (or in ). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference. + + + + + Sets when the viewport should be updated. See constants for options. + + + + + Returns the viewport's update mode. See constants for options. + Warning: Calling this from any thread other than the rendering thread will be detrimental to performance. + + + + + Sets the clear mode of a viewport. See for options. + + + + + Returns the render target for the viewport. + + + + + Returns the viewport's last rendered frame. + + + + + If , the viewport's 3D elements are not rendered. + + + + + If , the viewport's canvas (i.e. 2D and GUI elements) is not rendered. + + + + + Sets the viewport's environment mode which allows enabling or disabling rendering of 3D environment over 2D canvas. When disabled, 2D will not be affected by the environment. When enabled, 2D will be affected by the environment if the environment background mode is . The default behavior is to inherit the setting from the viewport's parent. If the topmost parent is also set to , then the behavior will be the same as if it was set to . + + + + + Sets a viewport's camera. + + + + + Sets a viewport's scenario. The scenario contains information about environment information, reflection atlas, etc. + + + + + Sets a viewport's canvas. + + + + + Detaches a viewport from a canvas. + + + + + If , canvas item transforms (i.e. origin position) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + If , canvas item vertices (i.e. polygon points) are snapped to the nearest pixel when rendering. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. Equivalent to ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel. + + + + + Sets the default texture filtering mode for the specified RID. See for options. + + + + + Sets the default texture repeat mode for the specified RID. See for options. + + + + + Sets the transformation of a viewport's canvas. + + + + + Sets the stacking order for a viewport's canvas. + is the actual canvas layer, while specifies the stacking order of the canvas among those in the same layer. + + + + + If , the viewport renders its background as transparent. + + + + + Sets the viewport's global transformation matrix. + + + + + Sets the viewport's 2D signed distance field ProjectSettings.rendering/2d/sdf/oversize and ProjectSettings.rendering/2d/sdf/scale. This is used when sampling the signed distance field in shaders as well as collision. This is not used by SDFGI in 3D rendering. + + + + + Sets the of the shadow atlas's images (used for omni and spot lights) on the viewport specified by the RID. The value is rounded up to the nearest power of 2. If is , use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices. + Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows). + + + + + Sets the number of subdivisions to use in the specified shadow atlas for omni and spot shadows. See also . + + + + + Sets the multisample antialiasing mode for 3D on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_3d or . + + + + + Sets the multisample antialiasing mode for 2D/Canvas on the specified RID. See for options. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/msaa_2d or . + + + + + If , 2D rendering will use a high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an RGBA16 framebuffer, while when using the Mobile renderer it will be an RGB10_A2 framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen (if the Viewport is attached to the screen). Practically speaking, this means that the end result of the Viewport will not be clamped into the 0-1 range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. This setting has the same effect as . + Note: This setting will have no effect when using the Compatibility renderer, which always renders in low dynamic range for performance reasons. + + + + + Sets the viewport's screen-space antialiasing mode. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa or . + + + + + If , use temporal antialiasing. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_taa or . + + + + + If , enables debanding on the specified viewport. Equivalent to ProjectSettings.rendering/anti_aliasing/quality/use_debanding or . + + + + + If , enables occlusion culling on the specified viewport. Equivalent to ProjectSettings.rendering/occlusion_culling/use_occlusion_culling. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/occlusion_rays_per_thread to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Sets the ProjectSettings.rendering/occlusion_culling/bvh_build_quality to use for occlusion culling. This parameter is global and cannot be set on a per-viewport basis. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. This is separated into render pass s, each of them having the same s you can query (different passes will return different values). See for a list of render pass types and for a list of information that can be queried. + See also , which returns global information across all viewports. + Note: Viewport rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print( + RenderingServer.viewport_get_render_info(get_viewport().get_viewport_rid(), + RenderingServer.VIEWPORT_RENDER_INFO_TYPE_VISIBLE, + RenderingServer.VIEWPORT_RENDER_INFO_DRAW_CALLS_IN_FRAME) + ) + + + + + + Sets the debug draw mode of a viewport. See for options. + + + + + Sets the measurement for the given RID (obtained using ). Once enabled, and will return values greater than 0.0 when queried with the given . + + + + + Returns the CPU time taken to render the last frame in milliseconds. This only includes time spent in rendering-related operations; scripts' _process functions and other engine subsystems are not included in this readout. To get a complete readout of CPU time spent to render the scene, sum the render times of all viewports that are drawn every frame plus . Unlike , this method will accurately reflect CPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + + + + + Returns the GPU time taken to render the last frame in milliseconds. To get a complete readout of GPU time spent to render the scene, sum the render times of all viewports that are drawn every frame. Unlike , this method accurately reflects GPU utilization even if framerate is capped via V-Sync or . See also . + Note: Requires measurements to be enabled on the specified using . Otherwise, this method returns 0.0. + Note: When GPU utilization is low enough during a certain period of time, GPUs will decrease their power state (which in turn decreases core and memory clock speeds). This can cause the reported GPU time to increase if GPU utilization is kept low enough by a framerate cap (compared to what it would be at the GPU's highest power state). Keep this in mind when benchmarking using . This behavior can be overridden in the graphics driver settings at the cost of higher power usage. + + + + + Sets the Variable Rate Shading (VRS) mode for the viewport. If the GPU does not support VRS, this property is ignored. Equivalent to ProjectSettings.rendering/vrs/mode. + + + + + Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored. + If set to , the input texture is copied once and the mode is changed to . + + + + + The texture to use when the VRS mode is set to . Equivalent to ProjectSettings.rendering/vrs/texture. + + + + + Creates an empty sky and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all sky_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the of the sky specified by the RID (in pixels). Equivalent to . + + + + + Sets the process of the sky specified by the RID. Equivalent to . + + + + + Sets the material that the sky uses to render the background, ambient and reflection maps. + + + + + Generates and returns an containing the radiance map for the specified RID. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. values above 1.0 can be used to brighten the resulting image. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Creates a new rendering effect and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Enables/disables this rendering effect. + + + + + Sets the callback type () and callback method() for this rendering effect. + + + + + Sets the flag () for this rendering effect to or (). + + + + + Creates a new compositor and adds it to the RenderingServer. It can be accessed with the RID that is returned. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + + + + + Sets the compositor effects for the specified compositor RID. should be an array containing RIDs created with . + + + + + Creates an environment and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all environment_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the environment's background mode. Equivalent to . + + + + + Sets the camera ID to be used as environment background. + + + + + Sets the to be used as the environment's background when using BGMode sky. Equivalent to . + + + + + Sets a custom field of view for the background . Equivalent to . + + + + + Sets the rotation of the background expressed as a . Equivalent to , where the rotation vector is used to construct the . + + + + + Color displayed for clear areas of the scene. Only effective if using the background mode. + + + + + Sets the intensity of the background color. + + + + + Sets the maximum layer to use if using Canvas background mode. + + + + + Sets the values to be used for ambient light rendering. See for more details. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Configures glow for the specified environment RID. See glow_* properties in for more information. + + + + + Sets the variables to be used with the "tonemap" post-process effect. See for more details. + + + + + Sets the values to be used with the "adjustments" post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space reflections (SSR) post-process effect. See for more details. + + + + + Sets the variables to be used with the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Configures signed distance field global illumination for the specified environment RID. See sdfgi_* properties in for more information. + + + + + Sets the variables to be used with the volumetric fog post-process effect. See for more details. + + + + + If is , enables bicubic upscaling for glow which improves quality at the cost of performance. Equivalent to ProjectSettings.rendering/environment/glow/upscale_mode. + + + + + Sets the quality level of the screen-space ambient occlusion (SSAO) post-process effect. See for more details. + + + + + Sets the quality level of the screen-space indirect lighting (SSIL) post-process effect. See for more details. + + + + + Sets the number of rays to throw per frame when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/probe_ray_count. + + + + + Sets the number of frames to use for converging signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_converge. + + + + + Sets the update speed for dynamic lights' indirect lighting when computing signed distance field global illumination. Equivalent to ProjectSettings.rendering/global_illumination/sdfgi/frames_to_update_lights. + + + + + Sets the resolution of the volumetric fog's froxel buffer. is modified by the screen's aspect ratio and then used to set the width and height of the buffer. While is directly used to set the depth of the buffer. + + + + + Enables filtering of the volumetric fog scattering buffer. This results in much smoother volumes with very few under-sampling artifacts. + + + + + Generates and returns an containing the radiance map for the specified RID's sky. This supports built-in sky material and custom sky shaders. If is , the irradiance map is saved instead of the radiance map. The radiance map is used to render reflected light, while the irradiance map is used to render ambient light. See also . + Note: The image is saved in linear color space without any tonemapping performed, which means it will look too dark if viewed directly in an image editor. + Note: should be a 2:1 aspect ratio for the generated panorama to have square pixels. For radiance maps, there is no point in using a height greater than , as it won't increase detail. Irradiance maps only contain low-frequency data, so there is usually no point in going past a size of 128×64 pixels when saving an irradiance map. + + + + + Sets the screen-space roughness limiter parameters, such as whether it should be enabled and its thresholds. Equivalent to ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/enabled, ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/amount and ProjectSettings.rendering/anti_aliasing/screen_space_roughness_limiter/limit. + + + + + Sets ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_quality to use when rendering materials that have subsurface scattering enabled. + + + + + Sets the ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_scale and ProjectSettings.rendering/environment/subsurface_scattering/subsurface_scattering_depth_scale to use when rendering materials that have subsurface scattering enabled. + + + + + Creates a camera attributes object and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all camera_attributes_ RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the quality level of the DOF blur effect to one of the options in . can be used to jitter samples taken during the blur pass to hide artifacts at the cost of looking more fuzzy. + + + + + Sets the shape of the DOF bokeh pattern. Different shapes may be used to achieve artistic effect, or to meet performance targets. For more detail on available options see . + + + + + Sets the parameters to use with the DOF blur effect. These parameters take on the same meaning as their counterparts in . + + + + + Sets the exposure values that will be used by the renderers. The normalization amount is used to bake a given Exposure Value (EV) into rendering calculations to reduce the dynamic range of the scene. + The normalization factor can be calculated from exposure value (EV100) as follows: + + func get_exposure_normalization(ev100: float): + return 1.0 / (pow(2.0, ev100) * 1.2) + + The exposure value can be calculated from aperture (in f-stops), shutter speed (in seconds), and sensitivity (in ISO) as follows: + + func get_exposure(aperture: float, shutter_speed: float, sensitivity: float): + return log((aperture * aperture) / shutter_speed * (100.0 / sensitivity)) / log(2) + + + + + + Sets the parameters to use with the auto-exposure effect. These parameters take on the same meaning as their counterparts in and . + + + + + Creates a scenario and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all scenario_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + The scenario is the 3D world that all the visual instances exist in. + + + + + Sets the environment that will be used with this scenario. See also . + + + + + Sets the fallback environment to be used by this scenario. The fallback environment is used if no environment is set. Internally, this is used by the editor to provide a default environment. + + + + + Sets the camera attributes () that will be used with this scenario. See also . + + + + + Sets the compositor () that will be used with this scenario. See also . + + + + + Creates a visual instance, adds it to the RenderingServer, and sets both base and scenario. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. This is a shorthand for using and setting the base and scenario manually. + + + + + Creates a visual instance and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all instance_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + An instance is a way of placing a 3D object in the scenario. Objects like particles, meshes, reflection probes and decals need to be associated with an instance to be visible in the scenario using . + Note: The equivalent node is . + + + + + Sets the base of the instance. A base can be any of the 3D objects that are created in the RenderingServer that can be displayed. For example, any of the light types, mesh, multimesh, particle system, reflection probe, decal, lightmap, voxel GI and visibility notifiers are all types that can be set as the base of an instance in order to be displayed in the scenario. + + + + + Sets the scenario that the instance is in. The scenario is the 3D world that the objects will be displayed in. + + + + + Sets the render layers that this instance will be drawn to. Equivalent to . + + + + + Sets the sorting offset and switches between using the bounding box or instance origin for depth sorting. + + + + + Sets the world space transform of the instance. Equivalent to . + + + + + Turns on and off physics interpolation for the instance. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an instance to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Attaches a unique Object ID to instance. Object ID must be attached to instance for proper culling with , , and . + + + + + Sets the weight for a given blend shape associated with this instance. + + + + + Sets the override material of a specific surface. Equivalent to . + + + + + Sets whether an instance is drawn or not. Equivalent to . + + + + + Sets the transparency for the given geometry instance. Equivalent to . + A transparency of 0.0 is fully opaque, while 1.0 is fully transparent. Values greater than 0.0 (exclusive) will force the geometry's materials to go through the transparent pipeline, which is slower to render and can exhibit rendering issues due to incorrect transparency sorting. However, unlike using a transparent material, setting to a value greater than 0.0 (exclusive) will not disable shadow rendering. + In spatial shaders, 1.0 - transparency is set as the default value of the ALPHA built-in. + Note: is clamped between 0.0 and 1.0, so this property cannot be used to make transparent materials more opaque than they originally are. + + + + + Sets a custom AABB to use when culling objects from the view frustum. Equivalent to setting . + + + + + Attaches a skeleton to an instance. Removes the previous skeleton from the instance. + + + + + Sets a margin to increase the size of the AABB when culling objects from the view frustum. This allows you to avoid culling objects that fall outside the view frustum. Equivalent to . + + + + + Sets the visibility parent for the given instance. Equivalent to . + + + + + If , ignores both frustum and occlusion culling on the specified 3D geometry instance. This is not the same as , which only ignores occlusion culling and leaves frustum culling intact. + + + + + Sets the flag for a given . See for more details. + + + + + Sets the shadow casting setting to one of . Equivalent to . + + + + + Sets a material that will override the material for all surfaces on the mesh associated with this instance. Equivalent to . + + + + + Sets a material that will be rendered for all surfaces on top of active materials for the mesh associated with this instance. Equivalent to . + + + + + Sets the visibility range values for the given geometry instance. Equivalent to and related properties. + + + + + Sets the lightmap GI instance to use for the specified 3D geometry instance. The lightmap UV scale for the specified instance (equivalent to ) and lightmap atlas slice must also be specified. + + + + + Sets the level of detail bias to use when rendering the specified 3D geometry instance. Higher values result in higher detail from further away. Equivalent to . + + + + + Sets the per-instance shader uniform on the specified 3D geometry instance. Equivalent to . + + + + + Returns the value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + Note: Per-instance shader parameter names are case-sensitive. + + + + + Returns the default value of the per-instance shader uniform from the specified 3D geometry instance. Equivalent to . + + + + + Returns a dictionary of per-instance shader uniform names of the per-instance shader uniform from the specified 3D geometry instance. The returned dictionary is in PropertyInfo format, with the keys name, class_name, type, hint, hint_string and usage. Equivalent to . + + + + + Returns an array of object IDs intersecting with the provided AABB. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided 3D ray. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Returns an array of object IDs intersecting with the provided convex shape. Only 3D nodes that inherit from are considered, such as or . Use @GlobalScope.instance_from_id to obtain the actual nodes. A scenario RID must be provided, which is available in the you want to query. This forces an update for all resources queued to update. + Warning: This function is primarily intended for editor usage. For in-game use cases, prefer physics collision. + + + + + Bakes the material data of the Mesh passed in the parameter with optional to a set of s of size . Returns an array of s containing material properties as specified in . + + + + + Creates a canvas and returns the assigned . It can be accessed with the RID that is returned. This RID will be used in all canvas_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Canvas has no or equivalent. + + + + + A copy of the canvas item will be drawn with a local offset of the . + Note: This is equivalent to calling like canvas_set_item_repeat(item, mirroring, 1), with an additional check ensuring is a parent of . + + + + + A copy of the canvas item will be drawn with a local offset of the by the number of times of the . As the increases, the copies will spread away from the origin texture. + + + + + Modulates all colors in the given canvas. + + + + + Creates a canvas texture and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_texture_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. See also . + Note: The equivalent resource is and is only meant to be used in 2D rendering, not 3D. + + + + + Sets the 's for the canvas texture specified by the RID. Equivalent to , and . + + + + + Sets the and to use for the canvas texture specified by the RID. Equivalent to and . + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Sets the texture mode to use for the canvas texture specified by the RID. + + + + + Creates a new CanvasItem instance and returns its . It can be accessed with the RID that is returned. This RID will be used in all canvas_item_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Sets a parent to the . The item will inherit transform, modulation and visibility from its parent, like nodes in the scene tree. + + + + + Sets the default texture filter mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the default texture repeat mode for the canvas item specified by the RID. Equivalent to . + + + + + Sets the visibility of the . + + + + + Sets the light for the canvas item specified by the RID. Equivalent to . + + + + + Sets the rendering visibility layer associated with this . Only nodes with a matching rendering mask will render this . + + + + + Sets the of the canvas item specified by the RID. This affects where and how the item will be drawn. Child canvas items' transforms are multiplied by their parent's transform. Equivalent to . + + + + + If is , makes the canvas item specified by the RID not draw anything outside of its rect's coordinates. This clipping is fast, but works only with axis-aligned rectangles. This means that rotation is ignored by the clipping rectangle. For more advanced clipping shapes, use instead. + Note: The equivalent node functionality is found in , (always enabled) and more. + + + + + If is , enables multichannel signed distance field rendering mode for the canvas item specified by the RID. This is meant to be used for font rendering, or with specially generated images using msdfgen. + + + + + If is , sets the custom visibility rectangle (used for culling) to for the canvas item specified by . Setting a custom visibility rect can reduce CPU load when drawing lots of 2D instances. If is , automatically computes a visibility rectangle based on the canvas item's draw commands. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Multiplies the color of the canvas item specified by the RID, while affecting its children. See also . Equivalent to . + + + + + Multiplies the color of the canvas item specified by the RID, without affecting its children. See also . Equivalent to . + + + + + If is , draws the canvas item specified by the RID behind its parent. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas item. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas item. + This allows transforming a canvas item without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Draws a line on the pointed to by the . See also . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D polyline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + See also . + + + + + Draws the specified region of a 2D textured rectangle on the pointed to by the . See also and . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a nine-patch rectangle on the pointed to by the . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D primitive on the pointed to by the . See also . + + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + + + + Draws a 2D polygon on the pointed to by the . If you need more flexibility (such as being able to use bones), use instead. See also . + Note: If you frequently redraw the same polygon with a large number of vertices, consider pre-calculating the triangulation with and using , , or . + + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + If the parameter is null, then the default value is Array.Empty<Vector2>(). + If the parameter is null, then the default value is Array.Empty<int>(). + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Draws a triangle array on the pointed to by the . This is internally used by and for rendering. is highly flexible, but more complex to use than . + Note: is unused and can be left unspecified. + + + + + Draws a mesh created with with given , color, and . This is used internally by . + + If the parameter is null, then the default value is Transform2D.Identity. + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a 2D on the pointed to by the . See also . + + + + + Draws particles on the pointed to by the . + + + + + Sets a that will be used to transform subsequent canvas item commands. + + + + + If is , ignore clipping on items drawn with this canvas item until this is called again with set to . + + + + + Subsequent drawing commands will be ignored unless they fall within the specified animation slice. This is a faster way to implement animations that loop on background rather than redrawing constantly. + + + + + If is , child nodes with the lowest Y position are drawn before those with a higher Y position. Y-sorting only affects children that inherit from the canvas item specified by the RID, not the canvas item itself. Equivalent to . + + + + + Sets the 's Z index, i.e. its draw order (lower indexes are drawn first). + + + + + If this is enabled, the Z index of the parent will be added to the children's Z index. + + + + + Sets the to copy a rect to the backbuffer. + + + + + Attaches a skeleton to the . Removes the previous skeleton. + + + + + Clears the and removes all commands in it. + + + + + Sets the index for the . + + + + + Sets a new to the canvas item specified by the RID. Equivalent to . + + + + + Sets if the uses its parent's material. + + + + + Sets the given as visibility notifier. defines the area of detecting visibility. is called when the enters the screen, is called when the exits the screen. If is , the item will no longer function as notifier. + This method can be used to manually mimic . + + + + + Sets the canvas group mode used during 2D rendering for the canvas item specified by the RID. For faster but more limited clipping, use instead. + Note: The equivalent node functionality is found in and . + + + + + Returns the bounding rectangle for a canvas item in local space, as calculated by the renderer. This bound is used internally for culling. + Warning: This function is intended for debugging in the editor, and will pass through and return a zero in exported projects. + + + + + Creates a canvas light and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches the canvas light to the canvas. Removes it from its previous canvas. + + + + + Enables or disables a canvas light. + + + + + Sets the scale factor of a 's texture. Equivalent to . + + + + + Sets the canvas light's . + + + + + Sets the texture to be used by a . Equivalent to . + + + + + Sets the offset of a 's texture. Equivalent to . + + + + + Sets the color for a light. + + + + + Sets a canvas light's height. + + + + + Sets a canvas light's energy. + + + + + Sets the Z range of objects that will be affected by this light. Equivalent to and . + + + + + The layer range that gets rendered with this light. + + + + + The light mask. See for more information on light masks. + + + + + The binary mask used to determine which layers this canvas light's shadows affects. See for more information on light masks. + + + + + The mode of the light, see constants. + + + + + Enables or disables the canvas light's shadow. + + + + + Sets the canvas light's shadow's filter, see constants. + + + + + Sets the color of the canvas light's shadow. + + + + + Smoothens the shadow. The lower, the smoother. + + + + + Sets the blend mode for the given canvas light. See for options. Equivalent to . + + + + + If is , turns on physics interpolation for the canvas light. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving a canvas item to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a canvas light. + This allows transforming a light without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a light occluder and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_light_occluder_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent node is . + + + + + Attaches a light occluder to the canvas. Removes it from its previous canvas. + + + + + Enables or disables light occluder. + + + + + Sets a light occluder's polygon. + + + + + Sets a light occluder's . + + + + + The light mask. See for more information on light masks. + + + + + If is , turns on physics interpolation for the light occluder. + + + + + Prevents physics interpolation for the current physics tick. + This is useful when moving an occluder to a new location, to give an instantaneous change rather than interpolation from the previous location. + + + + + Transforms both the current and previous stored transform for a light occluder. + This allows transforming an occluder without creating a "glitch" in the interpolation, which is particularly useful for large worlds utilizing a shifting origin. + + + + + Creates a new light occluder polygon and adds it to the RenderingServer. It can be accessed with the RID that is returned. This RID will be used in all canvas_occluder_polygon_* RenderingServer functions. + Once finished with your RID, you will want to free the RID using the RenderingServer's method. + Note: The equivalent resource is . + + + + + Sets the shape of the occluder polygon. + + + + + Sets the shape of the occluder polygon. + + + + + Sets an occluder polygons cull mode. See constants. + + + + + Sets the ProjectSettings.rendering/2d/shadow_atlas/size to use for shadow rendering (in pixels). The value is rounded up to the nearest power of 2. + + + + + Creates a new global shader uniform. + Note: Global shader parameter names are case-sensitive. + + + + + Removes the global shader uniform specified by . + + + + + Returns the list of global shader uniform names. + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Sets the global shader uniform to . + + + + + Overrides the global shader uniform with . Equivalent to the node. + + + + + Returns the value of the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Returns the type associated to the global shader uniform specified by . + Note: has a large performance penalty as the rendering thread needs to synchronize with the calling thread, which is slow. Do not use this method during gameplay to avoid stuttering. If you need to read values in a script after setting them, consider creating an autoload where you store the values you need to query at the same time you're setting them as global parameters. + + + + + Tries to free an object in the RenderingServer. To avoid memory leaks, this should be called after using an object as memory management does not occur automatically when using RenderingServer directly. + + + + + Schedules a callback to the given callable after a frame has been drawn. + + + + + Returns if changes have been made to the RenderingServer's data. is usually called if this happens. + + + + + Returns a statistic about the rendering engine which can be used for performance profiling. See for a list of values that can be queried. See also , which returns information specific to a viewport. + Note: Only 3D rendering is currently taken into account by some of these values, such as the number of draw calls. + Note: Rendering information is not available until at least 2 frames have been rendered by the engine. If rendering information is not available, returns 0. To print rendering information in _ready() successfully, use the following: + + func _ready(): + for _i in 2: + await get_tree().process_frame + + print(RenderingServer.get_rendering_info(RENDERING_INFO_TOTAL_DRAW_CALLS_IN_FRAME)) + + + + + + Returns the name of the video adapter (e.g. "GeForce GTX 1080/PCIe/SSE2"). + Note: When running a headless or server binary, this function returns an empty string. + Note: On the web platform, some browsers such as Firefox may report a different, fixed GPU name such as "GeForce GTX 980" (regardless of the user's actual GPU model). This is done to make fingerprinting more difficult. + + + + + Returns the vendor of the video adapter (e.g. "NVIDIA Corporation"). + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the type of the video adapter. Since dedicated graphics cards from a given generation will usually be significantly faster than integrated graphics made in the same generation, the device type can be used as a basis for automatic graphics settings adjustment. However, this is not always true, so make sure to provide users with a way to manually override graphics settings. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns the version of the graphics video adapter currently in use (e.g. "1.2.189" for Vulkan, "3.3.0 NVIDIA 510.60.02" for OpenGL). This version may be different from the actual latest version supported by the hardware, as Godot may not always request the latest version. See also . + Note: When running a headless or server binary, this function returns an empty string. + + + + + Returns the name of the current rendering driver. This can be vulkan, d3d12, metal, opengl3, opengl3_es, or opengl3_angle. See also . + The rendering driver is determined by ProjectSettings.rendering/rendering_device/driver, the --rendering-driver command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns the name of the current rendering method. This can be forward_plus, mobile, or gl_compatibility. See also . + The rendering method is determined by ProjectSettings.rendering/renderer/rendering_method, the --rendering-method command line argument that overrides this project setting, or an automatic fallback that is applied depending on the hardware. + + + + + Returns a mesh of a sphere with the given number of horizontal subdivisions, vertical subdivisions and radius. See also . + + + + + Returns the RID of the test cube. This mesh will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + + + + + Returns the RID of a 256×256 texture with a testing pattern on it (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the test texture and apply it to a node: + + var texture_rid = RenderingServer.get_test_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Returns the ID of a 4×4 white texture (in format). This texture will be created and returned on the first call to , then it will be cached for subsequent calls. See also . + Example: Get the white texture and apply it to a node: + + var texture_rid = RenderingServer.get_white_texture() + var texture = ImageTexture.create_from_image(RenderingServer.texture_2d_get(texture_rid)) + $Sprite2D.texture = texture + + + + + + Sets a boot image. The color defines the background color. If is , the image will be scaled to fit the screen size. If is , the image will be scaled with linear interpolation. If is , the image will be scaled with nearest-neighbor interpolation. + + + + + Returns the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Sets the default clear color which is used when a specific clear color has not been selected. See also . + + + + + Returns if the OS supports a certain . Features might be s3tc, etc, and etc2. + + + + + If is , generates debug wireframes for all meshes that are loaded when using the Compatibility renderer. By default, the engine does not generate debug wireframes at runtime, since they slow down loading of assets and take up VRAM. + Note: You must call this method before loading any meshes when using the Compatibility renderer, otherwise wireframes will not be used. + + + + + Returns the time taken to setup rendering on the CPU in milliseconds. This value is shared across all viewports and does not require to be enabled on a viewport to be queried. See also . + + + + + Forces a synchronization between the CPU and GPU, which may be required in certain cases. Only call this when needed, as CPU-GPU synchronization has a performance cost. + + + + + Forces redrawing of all viewports at once. Must be called from the main thread. + + + + + Returns the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Creates a RenderingDevice that can be used to do draw and compute operations on a separate thread. Cannot draw to the screen nor share data with the global RenderingDevice. + Note: When using the OpenGL rendering driver or when running in headless mode, this function always returns . + + + + + Returns if our code is currently executing on the rendering thread. + + + + + As the RenderingServer actual logic may run on an separate thread, accessing its internals from the main (or any other) thread will result in errors. To make it easier to run code that can safely access the rendering internals (such as and similar RD classes), push a callable via this function so it will be executed on the render thread. + + + + + This method does nothing and always returns . + + + + + Draws a circle on the pointed to by the . See also . + + + + + Draws a rectangle on the pointed to by the . See also . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Draws a 2D multiline on the pointed to by the . See also and . + + + + + Configures fog for the specified environment RID. See fog_* properties in for more information. + + + + + Emitted at the beginning of the frame, before the RenderingServer updates all the Viewports. + + + + + Emitted at the end of the frame, after the RenderingServer has finished updating all the Viewports. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'render_loop_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'texture_2d_create' method. + + + + + Cached name for the 'texture_2d_layered_create' method. + + + + + Cached name for the 'texture_3d_create' method. + + + + + Cached name for the 'texture_proxy_create' method. + + + + + Cached name for the 'texture_create_from_native_handle' method. + + + + + Cached name for the 'texture_2d_update' method. + + + + + Cached name for the 'texture_3d_update' method. + + + + + Cached name for the 'texture_proxy_update' method. + + + + + Cached name for the 'texture_2d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_layered_placeholder_create' method. + + + + + Cached name for the 'texture_3d_placeholder_create' method. + + + + + Cached name for the 'texture_2d_get' method. + + + + + Cached name for the 'texture_2d_layer_get' method. + + + + + Cached name for the 'texture_3d_get' method. + + + + + Cached name for the 'texture_replace' method. + + + + + Cached name for the 'texture_set_size_override' method. + + + + + Cached name for the 'texture_set_path' method. + + + + + Cached name for the 'texture_get_path' method. + + + + + Cached name for the 'texture_get_format' method. + + + + + Cached name for the 'texture_set_force_redraw_if_visible' method. + + + + + Cached name for the 'texture_rd_create' method. + + + + + Cached name for the 'texture_get_rd_texture' method. + + + + + Cached name for the 'texture_get_native_handle' method. + + + + + Cached name for the 'shader_create' method. + + + + + Cached name for the 'shader_set_code' method. + + + + + Cached name for the 'shader_set_path_hint' method. + + + + + Cached name for the 'shader_get_code' method. + + + + + Cached name for the 'get_shader_parameter_list' method. + + + + + Cached name for the 'shader_get_parameter_default' method. + + + + + Cached name for the 'shader_set_default_texture_parameter' method. + + + + + Cached name for the 'shader_get_default_texture_parameter' method. + + + + + Cached name for the 'material_create' method. + + + + + Cached name for the 'material_set_shader' method. + + + + + Cached name for the 'material_set_param' method. + + + + + Cached name for the 'material_get_param' method. + + + + + Cached name for the 'material_set_render_priority' method. + + + + + Cached name for the 'material_set_next_pass' method. + + + + + Cached name for the 'mesh_create_from_surfaces' method. + + + + + Cached name for the 'mesh_create' method. + + + + + Cached name for the 'mesh_surface_get_format_offset' method. + + + + + Cached name for the 'mesh_surface_get_format_vertex_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_normal_tangent_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_attribute_stride' method. + + + + + Cached name for the 'mesh_surface_get_format_skin_stride' method. + + + + + Cached name for the 'mesh_add_surface' method. + + + + + Cached name for the 'mesh_add_surface_from_arrays' method. + + + + + Cached name for the 'mesh_get_blend_shape_count' method. + + + + + Cached name for the 'mesh_set_blend_shape_mode' method. + + + + + Cached name for the 'mesh_get_blend_shape_mode' method. + + + + + Cached name for the 'mesh_surface_set_material' method. + + + + + Cached name for the 'mesh_surface_get_material' method. + + + + + Cached name for the 'mesh_get_surface' method. + + + + + Cached name for the 'mesh_surface_get_arrays' method. + + + + + Cached name for the 'mesh_surface_get_blend_shape_arrays' method. + + + + + Cached name for the 'mesh_get_surface_count' method. + + + + + Cached name for the 'mesh_set_custom_aabb' method. + + + + + Cached name for the 'mesh_get_custom_aabb' method. + + + + + Cached name for the 'mesh_clear' method. + + + + + Cached name for the 'mesh_surface_update_vertex_region' method. + + + + + Cached name for the 'mesh_surface_update_attribute_region' method. + + + + + Cached name for the 'mesh_surface_update_skin_region' method. + + + + + Cached name for the 'mesh_set_shadow_mesh' method. + + + + + Cached name for the 'multimesh_create' method. + + + + + Cached name for the 'multimesh_allocate_data' method. + + + + + Cached name for the 'multimesh_get_instance_count' method. + + + + + Cached name for the 'multimesh_set_mesh' method. + + + + + Cached name for the 'multimesh_instance_set_transform' method. + + + + + Cached name for the 'multimesh_instance_set_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_set_color' method. + + + + + Cached name for the 'multimesh_instance_set_custom_data' method. + + + + + Cached name for the 'multimesh_get_mesh' method. + + + + + Cached name for the 'multimesh_get_aabb' method. + + + + + Cached name for the 'multimesh_set_custom_aabb' method. + + + + + Cached name for the 'multimesh_get_custom_aabb' method. + + + + + Cached name for the 'multimesh_instance_get_transform' method. + + + + + Cached name for the 'multimesh_instance_get_transform_2d' method. + + + + + Cached name for the 'multimesh_instance_get_color' method. + + + + + Cached name for the 'multimesh_instance_get_custom_data' method. + + + + + Cached name for the 'multimesh_set_visible_instances' method. + + + + + Cached name for the 'multimesh_get_visible_instances' method. + + + + + Cached name for the 'multimesh_set_buffer' method. + + + + + Cached name for the 'multimesh_get_buffer_rd_rid' method. + + + + + Cached name for the 'multimesh_get_buffer' method. + + + + + Cached name for the 'multimesh_set_buffer_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolated' method. + + + + + Cached name for the 'multimesh_set_physics_interpolation_quality' method. + + + + + Cached name for the 'multimesh_instance_reset_physics_interpolation' method. + + + + + Cached name for the 'skeleton_create' method. + + + + + Cached name for the 'skeleton_allocate_data' method. + + + + + Cached name for the 'skeleton_get_bone_count' method. + + + + + Cached name for the 'skeleton_bone_set_transform' method. + + + + + Cached name for the 'skeleton_bone_get_transform' method. + + + + + Cached name for the 'skeleton_bone_set_transform_2d' method. + + + + + Cached name for the 'skeleton_bone_get_transform_2d' method. + + + + + Cached name for the 'skeleton_set_base_transform_2d' method. + + + + + Cached name for the 'directional_light_create' method. + + + + + Cached name for the 'omni_light_create' method. + + + + + Cached name for the 'spot_light_create' method. + + + + + Cached name for the 'light_set_color' method. + + + + + Cached name for the 'light_set_param' method. + + + + + Cached name for the 'light_set_shadow' method. + + + + + Cached name for the 'light_set_projector' method. + + + + + Cached name for the 'light_set_negative' method. + + + + + Cached name for the 'light_set_cull_mask' method. + + + + + Cached name for the 'light_set_distance_fade' method. + + + + + Cached name for the 'light_set_reverse_cull_face_mode' method. + + + + + Cached name for the 'light_set_shadow_caster_mask' method. + + + + + Cached name for the 'light_set_bake_mode' method. + + + + + Cached name for the 'light_set_max_sdfgi_cascade' method. + + + + + Cached name for the 'light_omni_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_shadow_mode' method. + + + + + Cached name for the 'light_directional_set_blend_splits' method. + + + + + Cached name for the 'light_directional_set_sky_mode' method. + + + + + Cached name for the 'light_projectors_set_filter' method. + + + + + Cached name for the 'lightmaps_set_bicubic_filter' method. + + + + + Cached name for the 'positional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_soft_shadow_filter_set_quality' method. + + + + + Cached name for the 'directional_shadow_atlas_set_size' method. + + + + + Cached name for the 'reflection_probe_create' method. + + + + + Cached name for the 'reflection_probe_set_update_mode' method. + + + + + Cached name for the 'reflection_probe_set_intensity' method. + + + + + Cached name for the 'reflection_probe_set_blend_distance' method. + + + + + Cached name for the 'reflection_probe_set_ambient_mode' method. + + + + + Cached name for the 'reflection_probe_set_ambient_color' method. + + + + + Cached name for the 'reflection_probe_set_ambient_energy' method. + + + + + Cached name for the 'reflection_probe_set_max_distance' method. + + + + + Cached name for the 'reflection_probe_set_size' method. + + + + + Cached name for the 'reflection_probe_set_origin_offset' method. + + + + + Cached name for the 'reflection_probe_set_as_interior' method. + + + + + Cached name for the 'reflection_probe_set_enable_box_projection' method. + + + + + Cached name for the 'reflection_probe_set_enable_shadows' method. + + + + + Cached name for the 'reflection_probe_set_cull_mask' method. + + + + + Cached name for the 'reflection_probe_set_reflection_mask' method. + + + + + Cached name for the 'reflection_probe_set_resolution' method. + + + + + Cached name for the 'reflection_probe_set_mesh_lod_threshold' method. + + + + + Cached name for the 'decal_create' method. + + + + + Cached name for the 'decal_set_size' method. + + + + + Cached name for the 'decal_set_texture' method. + + + + + Cached name for the 'decal_set_emission_energy' method. + + + + + Cached name for the 'decal_set_albedo_mix' method. + + + + + Cached name for the 'decal_set_modulate' method. + + + + + Cached name for the 'decal_set_cull_mask' method. + + + + + Cached name for the 'decal_set_distance_fade' method. + + + + + Cached name for the 'decal_set_fade' method. + + + + + Cached name for the 'decal_set_normal_fade' method. + + + + + Cached name for the 'decals_set_filter' method. + + + + + Cached name for the 'gi_set_use_half_resolution' method. + + + + + Cached name for the 'voxel_gi_create' method. + + + + + Cached name for the 'voxel_gi_allocate_data' method. + + + + + Cached name for the 'voxel_gi_get_octree_size' method. + + + + + Cached name for the 'voxel_gi_get_octree_cells' method. + + + + + Cached name for the 'voxel_gi_get_data_cells' method. + + + + + Cached name for the 'voxel_gi_get_distance_field' method. + + + + + Cached name for the 'voxel_gi_get_level_counts' method. + + + + + Cached name for the 'voxel_gi_get_to_cell_xform' method. + + + + + Cached name for the 'voxel_gi_set_dynamic_range' method. + + + + + Cached name for the 'voxel_gi_set_propagation' method. + + + + + Cached name for the 'voxel_gi_set_energy' method. + + + + + Cached name for the 'voxel_gi_set_baked_exposure_normalization' method. + + + + + Cached name for the 'voxel_gi_set_bias' method. + + + + + Cached name for the 'voxel_gi_set_normal_bias' method. + + + + + Cached name for the 'voxel_gi_set_interior' method. + + + + + Cached name for the 'voxel_gi_set_use_two_bounces' method. + + + + + Cached name for the 'voxel_gi_set_quality' method. + + + + + Cached name for the 'lightmap_create' method. + + + + + Cached name for the 'lightmap_set_textures' method. + + + + + Cached name for the 'lightmap_set_probe_bounds' method. + + + + + Cached name for the 'lightmap_set_probe_interior' method. + + + + + Cached name for the 'lightmap_set_probe_capture_data' method. + + + + + Cached name for the 'lightmap_get_probe_capture_points' method. + + + + + Cached name for the 'lightmap_get_probe_capture_sh' method. + + + + + Cached name for the 'lightmap_get_probe_capture_tetrahedra' method. + + + + + Cached name for the 'lightmap_get_probe_capture_bsp_tree' method. + + + + + Cached name for the 'lightmap_set_baked_exposure_normalization' method. + + + + + Cached name for the 'lightmap_set_probe_capture_update_speed' method. + + + + + Cached name for the 'particles_create' method. + + + + + Cached name for the 'particles_set_mode' method. + + + + + Cached name for the 'particles_set_emitting' method. + + + + + Cached name for the 'particles_get_emitting' method. + + + + + Cached name for the 'particles_set_amount' method. + + + + + Cached name for the 'particles_set_amount_ratio' method. + + + + + Cached name for the 'particles_set_lifetime' method. + + + + + Cached name for the 'particles_set_one_shot' method. + + + + + Cached name for the 'particles_set_pre_process_time' method. + + + + + Cached name for the 'particles_set_explosiveness_ratio' method. + + + + + Cached name for the 'particles_set_randomness_ratio' method. + + + + + Cached name for the 'particles_set_interp_to_end' method. + + + + + Cached name for the 'particles_set_emitter_velocity' method. + + + + + Cached name for the 'particles_set_custom_aabb' method. + + + + + Cached name for the 'particles_set_speed_scale' method. + + + + + Cached name for the 'particles_set_use_local_coordinates' method. + + + + + Cached name for the 'particles_set_process_material' method. + + + + + Cached name for the 'particles_set_fixed_fps' method. + + + + + Cached name for the 'particles_set_interpolate' method. + + + + + Cached name for the 'particles_set_fractional_delta' method. + + + + + Cached name for the 'particles_set_collision_base_size' method. + + + + + Cached name for the 'particles_set_transform_align' method. + + + + + Cached name for the 'particles_set_trails' method. + + + + + Cached name for the 'particles_set_trail_bind_poses' method. + + + + + Cached name for the 'particles_is_inactive' method. + + + + + Cached name for the 'particles_request_process' method. + + + + + Cached name for the 'particles_restart' method. + + + + + Cached name for the 'particles_set_subemitter' method. + + + + + Cached name for the 'particles_emit' method. + + + + + Cached name for the 'particles_set_draw_order' method. + + + + + Cached name for the 'particles_set_draw_passes' method. + + + + + Cached name for the 'particles_set_draw_pass_mesh' method. + + + + + Cached name for the 'particles_get_current_aabb' method. + + + + + Cached name for the 'particles_set_emission_transform' method. + + + + + Cached name for the 'particles_collision_create' method. + + + + + Cached name for the 'particles_collision_set_collision_type' method. + + + + + Cached name for the 'particles_collision_set_cull_mask' method. + + + + + Cached name for the 'particles_collision_set_sphere_radius' method. + + + + + Cached name for the 'particles_collision_set_box_extents' method. + + + + + Cached name for the 'particles_collision_set_attractor_strength' method. + + + + + Cached name for the 'particles_collision_set_attractor_directionality' method. + + + + + Cached name for the 'particles_collision_set_attractor_attenuation' method. + + + + + Cached name for the 'particles_collision_set_field_texture' method. + + + + + Cached name for the 'particles_collision_height_field_update' method. + + + + + Cached name for the 'particles_collision_set_height_field_resolution' method. + + + + + Cached name for the 'fog_volume_create' method. + + + + + Cached name for the 'fog_volume_set_shape' method. + + + + + Cached name for the 'fog_volume_set_size' method. + + + + + Cached name for the 'fog_volume_set_material' method. + + + + + Cached name for the 'visibility_notifier_create' method. + + + + + Cached name for the 'visibility_notifier_set_aabb' method. + + + + + Cached name for the 'visibility_notifier_set_callbacks' method. + + + + + Cached name for the 'occluder_create' method. + + + + + Cached name for the 'occluder_set_mesh' method. + + + + + Cached name for the 'camera_create' method. + + + + + Cached name for the 'camera_set_perspective' method. + + + + + Cached name for the 'camera_set_orthogonal' method. + + + + + Cached name for the 'camera_set_frustum' method. + + + + + Cached name for the 'camera_set_transform' method. + + + + + Cached name for the 'camera_set_cull_mask' method. + + + + + Cached name for the 'camera_set_environment' method. + + + + + Cached name for the 'camera_set_camera_attributes' method. + + + + + Cached name for the 'camera_set_compositor' method. + + + + + Cached name for the 'camera_set_use_vertical_aspect' method. + + + + + Cached name for the 'viewport_create' method. + + + + + Cached name for the 'viewport_set_use_xr' method. + + + + + Cached name for the 'viewport_set_size' method. + + + + + Cached name for the 'viewport_set_active' method. + + + + + Cached name for the 'viewport_set_parent_viewport' method. + + + + + Cached name for the 'viewport_attach_to_screen' method. + + + + + Cached name for the 'viewport_set_render_direct_to_screen' method. + + + + + Cached name for the 'viewport_set_canvas_cull_mask' method. + + + + + Cached name for the 'viewport_set_scaling_3d_mode' method. + + + + + Cached name for the 'viewport_set_scaling_3d_scale' method. + + + + + Cached name for the 'viewport_set_fsr_sharpness' method. + + + + + Cached name for the 'viewport_set_texture_mipmap_bias' method. + + + + + Cached name for the 'viewport_set_anisotropic_filtering_level' method. + + + + + Cached name for the 'viewport_set_update_mode' method. + + + + + Cached name for the 'viewport_get_update_mode' method. + + + + + Cached name for the 'viewport_set_clear_mode' method. + + + + + Cached name for the 'viewport_get_render_target' method. + + + + + Cached name for the 'viewport_get_texture' method. + + + + + Cached name for the 'viewport_set_disable_3d' method. + + + + + Cached name for the 'viewport_set_disable_2d' method. + + + + + Cached name for the 'viewport_set_environment_mode' method. + + + + + Cached name for the 'viewport_attach_camera' method. + + + + + Cached name for the 'viewport_set_scenario' method. + + + + + Cached name for the 'viewport_attach_canvas' method. + + + + + Cached name for the 'viewport_remove_canvas' method. + + + + + Cached name for the 'viewport_set_snap_2d_transforms_to_pixel' method. + + + + + Cached name for the 'viewport_set_snap_2d_vertices_to_pixel' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'viewport_set_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'viewport_set_canvas_transform' method. + + + + + Cached name for the 'viewport_set_canvas_stacking' method. + + + + + Cached name for the 'viewport_set_transparent_background' method. + + + + + Cached name for the 'viewport_set_global_canvas_transform' method. + + + + + Cached name for the 'viewport_set_sdf_oversize_and_scale' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_size' method. + + + + + Cached name for the 'viewport_set_positional_shadow_atlas_quadrant_subdivision' method. + + + + + Cached name for the 'viewport_set_msaa_3d' method. + + + + + Cached name for the 'viewport_set_msaa_2d' method. + + + + + Cached name for the 'viewport_set_use_hdr_2d' method. + + + + + Cached name for the 'viewport_set_screen_space_aa' method. + + + + + Cached name for the 'viewport_set_use_taa' method. + + + + + Cached name for the 'viewport_set_use_debanding' method. + + + + + Cached name for the 'viewport_set_use_occlusion_culling' method. + + + + + Cached name for the 'viewport_set_occlusion_rays_per_thread' method. + + + + + Cached name for the 'viewport_set_occlusion_culling_build_quality' method. + + + + + Cached name for the 'viewport_get_render_info' method. + + + + + Cached name for the 'viewport_set_debug_draw' method. + + + + + Cached name for the 'viewport_set_measure_render_time' method. + + + + + Cached name for the 'viewport_get_measured_render_time_cpu' method. + + + + + Cached name for the 'viewport_get_measured_render_time_gpu' method. + + + + + Cached name for the 'viewport_set_vrs_mode' method. + + + + + Cached name for the 'viewport_set_vrs_update_mode' method. + + + + + Cached name for the 'viewport_set_vrs_texture' method. + + + + + Cached name for the 'sky_create' method. + + + + + Cached name for the 'sky_set_radiance_size' method. + + + + + Cached name for the 'sky_set_mode' method. + + + + + Cached name for the 'sky_set_material' method. + + + + + Cached name for the 'sky_bake_panorama' method. + + + + + Cached name for the 'compositor_effect_create' method. + + + + + Cached name for the 'compositor_effect_set_enabled' method. + + + + + Cached name for the 'compositor_effect_set_callback' method. + + + + + Cached name for the 'compositor_effect_set_flag' method. + + + + + Cached name for the 'compositor_create' method. + + + + + Cached name for the 'compositor_set_compositor_effects' method. + + + + + Cached name for the 'environment_create' method. + + + + + Cached name for the 'environment_set_background' method. + + + + + Cached name for the 'environment_set_camera_id' method. + + + + + Cached name for the 'environment_set_sky' method. + + + + + Cached name for the 'environment_set_sky_custom_fov' method. + + + + + Cached name for the 'environment_set_sky_orientation' method. + + + + + Cached name for the 'environment_set_bg_color' method. + + + + + Cached name for the 'environment_set_bg_energy' method. + + + + + Cached name for the 'environment_set_canvas_max_layer' method. + + + + + Cached name for the 'environment_set_ambient_light' method. + + + + + Cached name for the 'environment_set_glow' method. + + + + + Cached name for the 'environment_set_tonemap' method. + + + + + Cached name for the 'environment_set_adjustment' method. + + + + + Cached name for the 'environment_set_ssr' method. + + + + + Cached name for the 'environment_set_ssao' method. + + + + + Cached name for the 'environment_set_fog' method. + + + + + Cached name for the 'environment_set_sdfgi' method. + + + + + Cached name for the 'environment_set_volumetric_fog' method. + + + + + Cached name for the 'environment_glow_set_use_bicubic_upscale' method. + + + + + Cached name for the 'environment_set_ssr_roughness_quality' method. + + + + + Cached name for the 'environment_set_ssao_quality' method. + + + + + Cached name for the 'environment_set_ssil_quality' method. + + + + + Cached name for the 'environment_set_sdfgi_ray_count' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_converge' method. + + + + + Cached name for the 'environment_set_sdfgi_frames_to_update_light' method. + + + + + Cached name for the 'environment_set_volumetric_fog_volume_size' method. + + + + + Cached name for the 'environment_set_volumetric_fog_filter_active' method. + + + + + Cached name for the 'environment_bake_panorama' method. + + + + + Cached name for the 'screen_space_roughness_limiter_set_active' method. + + + + + Cached name for the 'sub_surface_scattering_set_quality' method. + + + + + Cached name for the 'sub_surface_scattering_set_scale' method. + + + + + Cached name for the 'camera_attributes_create' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_quality' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur_bokeh_shape' method. + + + + + Cached name for the 'camera_attributes_set_dof_blur' method. + + + + + Cached name for the 'camera_attributes_set_exposure' method. + + + + + Cached name for the 'camera_attributes_set_auto_exposure' method. + + + + + Cached name for the 'scenario_create' method. + + + + + Cached name for the 'scenario_set_environment' method. + + + + + Cached name for the 'scenario_set_fallback_environment' method. + + + + + Cached name for the 'scenario_set_camera_attributes' method. + + + + + Cached name for the 'scenario_set_compositor' method. + + + + + Cached name for the 'instance_create2' method. + + + + + Cached name for the 'instance_create' method. + + + + + Cached name for the 'instance_set_base' method. + + + + + Cached name for the 'instance_set_scenario' method. + + + + + Cached name for the 'instance_set_layer_mask' method. + + + + + Cached name for the 'instance_set_pivot_data' method. + + + + + Cached name for the 'instance_set_transform' method. + + + + + Cached name for the 'instance_set_interpolated' method. + + + + + Cached name for the 'instance_reset_physics_interpolation' method. + + + + + Cached name for the 'instance_attach_object_instance_id' method. + + + + + Cached name for the 'instance_set_blend_shape_weight' method. + + + + + Cached name for the 'instance_set_surface_override_material' method. + + + + + Cached name for the 'instance_set_visible' method. + + + + + Cached name for the 'instance_geometry_set_transparency' method. + + + + + Cached name for the 'instance_set_custom_aabb' method. + + + + + Cached name for the 'instance_attach_skeleton' method. + + + + + Cached name for the 'instance_set_extra_visibility_margin' method. + + + + + Cached name for the 'instance_set_visibility_parent' method. + + + + + Cached name for the 'instance_set_ignore_culling' method. + + + + + Cached name for the 'instance_geometry_set_flag' method. + + + + + Cached name for the 'instance_geometry_set_cast_shadows_setting' method. + + + + + Cached name for the 'instance_geometry_set_material_override' method. + + + + + Cached name for the 'instance_geometry_set_material_overlay' method. + + + + + Cached name for the 'instance_geometry_set_visibility_range' method. + + + + + Cached name for the 'instance_geometry_set_lightmap' method. + + + + + Cached name for the 'instance_geometry_set_lod_bias' method. + + + + + Cached name for the 'instance_geometry_set_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_default_value' method. + + + + + Cached name for the 'instance_geometry_get_shader_parameter_list' method. + + + + + Cached name for the 'instances_cull_aabb' method. + + + + + Cached name for the 'instances_cull_ray' method. + + + + + Cached name for the 'instances_cull_convex' method. + + + + + Cached name for the 'bake_render_uv2' method. + + + + + Cached name for the 'canvas_create' method. + + + + + Cached name for the 'canvas_set_item_mirroring' method. + + + + + Cached name for the 'canvas_set_item_repeat' method. + + + + + Cached name for the 'canvas_set_modulate' method. + + + + + Cached name for the 'canvas_set_disable_scale' method. + + + + + Cached name for the 'canvas_texture_create' method. + + + + + Cached name for the 'canvas_texture_set_channel' method. + + + + + Cached name for the 'canvas_texture_set_shading_parameters' method. + + + + + Cached name for the 'canvas_texture_set_texture_filter' method. + + + + + Cached name for the 'canvas_texture_set_texture_repeat' method. + + + + + Cached name for the 'canvas_item_create' method. + + + + + Cached name for the 'canvas_item_set_parent' method. + + + + + Cached name for the 'canvas_item_set_default_texture_filter' method. + + + + + Cached name for the 'canvas_item_set_default_texture_repeat' method. + + + + + Cached name for the 'canvas_item_set_visible' method. + + + + + Cached name for the 'canvas_item_set_light_mask' method. + + + + + Cached name for the 'canvas_item_set_visibility_layer' method. + + + + + Cached name for the 'canvas_item_set_transform' method. + + + + + Cached name for the 'canvas_item_set_clip' method. + + + + + Cached name for the 'canvas_item_set_distance_field_mode' method. + + + + + Cached name for the 'canvas_item_set_custom_rect' method. + + + + + Cached name for the 'canvas_item_set_modulate' method. + + + + + Cached name for the 'canvas_item_set_self_modulate' method. + + + + + Cached name for the 'canvas_item_set_draw_behind_parent' method. + + + + + Cached name for the 'canvas_item_set_interpolated' method. + + + + + Cached name for the 'canvas_item_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_item_add_line' method. + + + + + Cached name for the 'canvas_item_add_polyline' method. + + + + + Cached name for the 'canvas_item_add_multiline' method. + + + + + Cached name for the 'canvas_item_add_rect' method. + + + + + Cached name for the 'canvas_item_add_circle' method. + + + + + Cached name for the 'canvas_item_add_texture_rect' method. + + + + + Cached name for the 'canvas_item_add_msdf_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_lcd_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_texture_rect_region' method. + + + + + Cached name for the 'canvas_item_add_nine_patch' method. + + + + + Cached name for the 'canvas_item_add_primitive' method. + + + + + Cached name for the 'canvas_item_add_polygon' method. + + + + + Cached name for the 'canvas_item_add_triangle_array' method. + + + + + Cached name for the 'canvas_item_add_mesh' method. + + + + + Cached name for the 'canvas_item_add_multimesh' method. + + + + + Cached name for the 'canvas_item_add_particles' method. + + + + + Cached name for the 'canvas_item_add_set_transform' method. + + + + + Cached name for the 'canvas_item_add_clip_ignore' method. + + + + + Cached name for the 'canvas_item_add_animation_slice' method. + + + + + Cached name for the 'canvas_item_set_sort_children_by_y' method. + + + + + Cached name for the 'canvas_item_set_z_index' method. + + + + + Cached name for the 'canvas_item_set_z_as_relative_to_parent' method. + + + + + Cached name for the 'canvas_item_set_copy_to_backbuffer' method. + + + + + Cached name for the 'canvas_item_attach_skeleton' method. + + + + + Cached name for the 'canvas_item_clear' method. + + + + + Cached name for the 'canvas_item_set_draw_index' method. + + + + + Cached name for the 'canvas_item_set_material' method. + + + + + Cached name for the 'canvas_item_set_use_parent_material' method. + + + + + Cached name for the 'canvas_item_set_visibility_notifier' method. + + + + + Cached name for the 'canvas_item_set_canvas_group_mode' method. + + + + + Cached name for the 'debug_canvas_item_get_rect' method. + + + + + Cached name for the 'canvas_light_create' method. + + + + + Cached name for the 'canvas_light_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_set_enabled' method. + + + + + Cached name for the 'canvas_light_set_texture_scale' method. + + + + + Cached name for the 'canvas_light_set_transform' method. + + + + + Cached name for the 'canvas_light_set_texture' method. + + + + + Cached name for the 'canvas_light_set_texture_offset' method. + + + + + Cached name for the 'canvas_light_set_color' method. + + + + + Cached name for the 'canvas_light_set_height' method. + + + + + Cached name for the 'canvas_light_set_energy' method. + + + + + Cached name for the 'canvas_light_set_z_range' method. + + + + + Cached name for the 'canvas_light_set_layer_range' method. + + + + + Cached name for the 'canvas_light_set_item_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_item_shadow_cull_mask' method. + + + + + Cached name for the 'canvas_light_set_mode' method. + + + + + Cached name for the 'canvas_light_set_shadow_enabled' method. + + + + + Cached name for the 'canvas_light_set_shadow_filter' method. + + + + + Cached name for the 'canvas_light_set_shadow_color' method. + + + + + Cached name for the 'canvas_light_set_shadow_smooth' method. + + + + + Cached name for the 'canvas_light_set_blend_mode' method. + + + + + Cached name for the 'canvas_light_set_interpolated' method. + + + + + Cached name for the 'canvas_light_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_create' method. + + + + + Cached name for the 'canvas_light_occluder_attach_to_canvas' method. + + + + + Cached name for the 'canvas_light_occluder_set_enabled' method. + + + + + Cached name for the 'canvas_light_occluder_set_polygon' method. + + + + + Cached name for the 'canvas_light_occluder_set_as_sdf_collision' method. + + + + + Cached name for the 'canvas_light_occluder_set_transform' method. + + + + + Cached name for the 'canvas_light_occluder_set_light_mask' method. + + + + + Cached name for the 'canvas_light_occluder_set_interpolated' method. + + + + + Cached name for the 'canvas_light_occluder_reset_physics_interpolation' method. + + + + + Cached name for the 'canvas_light_occluder_transform_physics_interpolation' method. + + + + + Cached name for the 'canvas_occluder_polygon_create' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_shape' method. + + + + + Cached name for the 'canvas_occluder_polygon_set_cull_mode' method. + + + + + Cached name for the 'canvas_set_shadow_texture_size' method. + + + + + Cached name for the 'global_shader_parameter_add' method. + + + + + Cached name for the 'global_shader_parameter_remove' method. + + + + + Cached name for the 'global_shader_parameter_get_list' method. + + + + + Cached name for the 'global_shader_parameter_set' method. + + + + + Cached name for the 'global_shader_parameter_set_override' method. + + + + + Cached name for the 'global_shader_parameter_get' method. + + + + + Cached name for the 'global_shader_parameter_get_type' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'request_frame_drawn_callback' method. + + + + + Cached name for the 'has_changed' method. + + + + + Cached name for the 'get_rendering_info' method. + + + + + Cached name for the 'get_video_adapter_name' method. + + + + + Cached name for the 'get_video_adapter_vendor' method. + + + + + Cached name for the 'get_video_adapter_type' method. + + + + + Cached name for the 'get_video_adapter_api_version' method. + + + + + Cached name for the 'get_current_rendering_driver_name' method. + + + + + Cached name for the 'get_current_rendering_method' method. + + + + + Cached name for the 'make_sphere_mesh' method. + + + + + Cached name for the 'get_test_cube' method. + + + + + Cached name for the 'get_test_texture' method. + + + + + Cached name for the 'get_white_texture' method. + + + + + Cached name for the 'set_boot_image' method. + + + + + Cached name for the 'get_default_clear_color' method. + + + + + Cached name for the 'set_default_clear_color' method. + + + + + Cached name for the 'has_os_feature' method. + + + + + Cached name for the 'set_debug_generate_wireframes' method. + + + + + Cached name for the 'is_render_loop_enabled' method. + + + + + Cached name for the 'set_render_loop_enabled' method. + + + + + Cached name for the 'get_frame_setup_time_cpu' method. + + + + + Cached name for the 'force_sync' method. + + + + + Cached name for the 'force_draw' method. + + + + + Cached name for the 'get_rendering_device' method. + + + + + Cached name for the 'create_local_rendering_device' method. + + + + + Cached name for the 'is_on_render_thread' method. + + + + + Cached name for the 'call_on_render_thread' method. + + + + + Cached name for the 'has_feature' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_pre_draw' signal. + + + + + Cached name for the 'frame_post_draw' signal. + + + + + Resource is the base class for all Godot-specific resource types, serving primarily as data containers. Since they inherit from , resources are reference-counted and freed when no longer in use. They can also be nested within other resources, and saved on disk. , one of the most common s in a Godot project, is also a resource, uniquely capable of storing and instantiating the s it contains as many times as desired. + In GDScript, resources can loaded from disk by their using @GDScript.load or @GDScript.preload. + The engine keeps a global cache of all loaded resources, referenced by paths (see ). A resource will be cached when loaded for the first time and removed from cache once all references are released. When a resource is cached, subsequent loads using its path will return the cached reference. + Note: In C#, resources will not be freed instantly after they are no longer in use. Instead, garbage collection will run periodically and will free resources that are no longer in use. This means that unused resources will remain in memory for a while before being removed. + + + + + If , the resource is duplicated for each instance of all scenes using it. At run-time, the resource can be modified in one scene without affecting other instances (see ). + Note: Changing this property at run-time has no effect on already created duplicate resources. + + + + + The unique path to this resource. If it has been saved to disk, the value will be its filepath. If the resource is exclusively contained within a scene, the value will be the 's filepath, followed by a unique identifier. + Note: Setting this property manually may fail if a resource with the same path has already been previously loaded. If necessary, use . + + + + + An optional name for this resource. When defined, its value is displayed to represent the resource in the Inspector dock. For built-in scripts, the name is displayed as part of the tab name in the script editor. + Note: Some resource formats do not support resource names. You can still set the name in the editor or via code, but it will be lost when the resource is reloaded. For example, only built-in scripts can have a resource name, while scripts stored in separate files cannot. + + + + + An unique identifier relative to the this resource's scene. If left empty, the ID is automatically generated when this resource is saved inside a . If the resource is not inside a scene, this property is empty by default. + Note: When the is saved, if multiple resources in the same scene use the same ID, only the earliest resource in the scene hierarchy keeps the original ID. The other resources are assigned new IDs from . + Note: Setting this property does not emit the signal. + Warning: When setting, the ID must only consist of letters, numbers, and underscores. Otherwise, it will fail and default to a randomly generated ID. + + + + + Override this method to return a custom when is called. + + + + + For resources that use a variable number of properties, either via or , this method should be implemented to correctly clear the resource's state. + + + + + Sets the resource's path to without involving the resource cache. + + + + + Override this method to customize the newly duplicated resource created from , if the original's is set to . + Example: Set a random damage value to every local resource from an instantiated scene: + + extends Resource + + var damage = 0 + + func _setup_local_to_scene(): + damage = randi_range(10, 40) + + + + + + Sets the to , potentially overriding an existing cache entry for this path. Further attempts to load an overridden resource by path will instead return this resource. + + + + + Sets the resource's path to without involving the resource cache. + + + + + Returns the of this resource (or an empty RID). Many resources (such as , , and so on) are high-level abstractions of resources stored in a specialized server (, , etc.), so this function will return the original . + + + + + If is set to and the resource has been loaded from a instantiation, returns the root of the scene where this resource is used. Otherwise, returns . + + + + + Calls . If is set to , this method is automatically called from by the newly duplicated resource within the scene instance. + + + + + For resources that use a variable number of properties, either via or , override to correctly clear the resource's state. + + + + + Sets the unique identifier to for the resource with the given in the resource cache. If the unique identifier is empty, the cache entry using is removed if it exists. + Note: This method is only implemented when running in an editor context. + + + + + Returns the unique identifier for the resource with the given from the resource cache. If the resource is not loaded and cached, an empty string is returned. + Note: This method is only implemented when running in an editor context. At runtime, it returns an empty string. + + + + + Returns if the resource is built-in (from the engine) or if it is user-defined. + + + + + Generates a unique identifier for a resource to be contained inside a , based on the current date, time, and a random value. The returned string is only composed of letters (a to y) and numbers (0 to 8). See also . + + + + + Emits the signal. This method is called automatically for some built-in resources. + Note: For custom resources, it's recommended to call this method whenever a meaningful change occurs, such as a modified property. This ensures that custom s depending on the resource are properly updated. + + var damage: + set(new_value): + if damage != new_value: + damage = new_value + emit_changed() + + + + + + Duplicates this resource, returning a new resource with its exported or properties copied from the original. + If is , a shallow copy is returned; nested resources within subresources are not duplicated and are shared with the original resource (with one exception; see below). If is , a deep copy is returned; nested subresources will be duplicated and are not shared (with two exceptions; see below). + is usually respected, with the following exceptions: + - Subresource properties with the flag are always duplicated. + - Subresource properties with the flag are never duplicated. + - Subresources inside and properties are never duplicated. + Note: For custom resources, this method will fail if has been defined with required parameters. + + + + + Emitted when the resource changes, usually when one of its properties is modified. See also . + Note: This signal is not emitted automatically for properties of custom resources. If necessary, a setter needs to be created to emit the signal. + + + + + Emitted by a newly duplicated resource with set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'resource_local_to_scene' property. + + + + + Cached name for the 'resource_path' property. + + + + + Cached name for the 'resource_name' property. + + + + + Cached name for the 'resource_scene_unique_id' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_rid' method. + + + + + Cached name for the '_reset_state' method. + + + + + Cached name for the '_set_path_cache' method. + + + + + Cached name for the '_setup_local_to_scene' method. + + + + + Cached name for the 'set_path' method. + + + + + Cached name for the 'take_over_path' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'set_path_cache' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'set_local_to_scene' method. + + + + + Cached name for the 'is_local_to_scene' method. + + + + + Cached name for the 'get_local_scene' method. + + + + + Cached name for the 'setup_local_to_scene' method. + + + + + Cached name for the 'reset_state' method. + + + + + Cached name for the 'set_id_for_path' method. + + + + + Cached name for the 'get_id_for_path' method. + + + + + Cached name for the 'is_built_in' method. + + + + + Cached name for the 'generate_scene_unique_id' method. + + + + + Cached name for the 'set_scene_unique_id' method. + + + + + Cached name for the 'get_scene_unique_id' method. + + + + + Cached name for the 'emit_changed' method. + + + + + Cached name for the 'duplicate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + Cached name for the 'setup_local_to_scene_requested' signal. + + + + + Godot loads resources in the editor or in exported games using ResourceFormatLoaders. They are queried automatically via the singleton, or when a resource with internal dependencies is loaded. Each file type may load as a different resource type, so multiple ResourceFormatLoaders are registered in the engine. + Extending this class allows you to define your own loader. Be sure to respect the documented return types and values. You should give it a global class name with class_name for it to be registered. Like built-in ResourceFormatLoaders, it will be called automatically when loading resources of its handled type(s). You may also implement a . + Note: You can also extend EditorImportPlugin if the resource type you need exists but Godot is unable to load its format. Choosing one way over another depends on if the format is suitable or not for the final exported game. For example, it's better to import .png textures as .ctex () first, so they can be loaded with better efficiency on the graphics card. + + + + + Neither the main resource (the one requested to be loaded) nor any of its subresources are retrieved from cache nor stored into it. Dependencies (external resources) are loaded with . + + + + + The main resource (the one requested to be loaded), its subresources, and its dependencies (external resources) are retrieved from cache if present, instead of loaded. Those not cached are loaded and then stored into the cache. The same rules are propagated recursively down the tree of dependencies (external resources). + + + + + Like , but the cache is checked for the main resource (the one requested to be loaded) as well as for each of its subresources. Those already in the cache, as long as the loaded and cached types match, have their data refreshed from storage into the already existing instances. Otherwise, they are recreated as completely new objects. + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + Like , but propagated recursively down the tree of dependencies (external resources). + + + + + If implemented, gets the dependencies of a given resource. If is , paths should be appended ::TypeName, where TypeName is the class name of the dependency. + Note: Custom resource types defined by scripts aren't known by the , so you might just return "Resource" for them. + + + + + Gets the list of extensions for files this loader is able to read. + + + + + Returns the script class name associated with the under the given . If the resource has no script or the script isn't a named class, it should return "". + + + + + Gets the class name of the resource associated with the given path. If the loader cannot handle it, it should return "". + Note: Custom resource types defined by scripts aren't known by the , so you might just return "Resource" for them. + + + + + Should return the unique ID for the resource associated with the given path. If this method is not overridden, a .uid file is generated along with the resource file, containing the unique ID. + + + + + Tells which resource class this loader can load. + Note: Custom resource types defined by scripts aren't known by the , so you might just handle "Resource" for them. + + + + + Loads a resource when the engine finds this loader to be compatible. If the loaded resource is the result of an import, will target the source file. Returns a object on success, or an constant in case of failure. + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + + + + + 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 , and if the type is within the ones provided by . + + + + + If implemented, renames dependencies within the given resource and saves it. is a dictionary { String => String } mapping old dependency paths to new paths. + Returns on success, or an constant in case of failure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_exists' method. + + + + + Cached name for the '_get_classes_used' method. + + + + + Cached name for the '_get_dependencies' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_get_resource_script_class' method. + + + + + Cached name for the '_get_resource_type' method. + + + + + Cached name for the '_get_resource_uid' method. + + + + + Cached name for the '_handles_type' method. + + + + + Cached name for the '_load' method. + + + + + Cached name for the '_recognize_path' method. + + + + + Cached name for the '_rename_dependencies' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The engine can save resources when you do it from the editor, or when you use the singleton. This is accomplished thanks to multiple s, each handling its own format and called automatically by the engine. + By default, Godot saves resources as .tres (text-based), .res (binary) or another built-in format, but you can choose to create your own format by extending this class. Be sure to respect the documented return types and values. You should give it a global class name with class_name for it to be registered. Like built-in ResourceFormatSavers, it will be called automatically when saving resources of its recognized type(s). You may also implement a . + + + + + Returns the list of extensions available for saving the resource object, provided it is recognized (see ). + + + + + Returns whether the given resource object can be saved by this saver. + + + + + Returns if this saver handles a given save path and otherwise. + If this method is not implemented, the default behavior returns whether the path's extension is within the ones provided by . + + + + + Saves the given resource object to a file at the target . is a bitmask composed with constants. + Returns on success, or an constant in case of failure. + + + + + Sets a new UID for the resource at the given . Returns on success, or an constant in case of failure. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_recognize' method. + + + + + Cached name for the '_recognize_path' method. + + + + + Cached name for the '_save' method. + + + + + Cached name for the '_set_uid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the base class for Godot's resource importers. To implement your own resource importers using editor plugins, see EditorImportPlugin. + + + + + The default import order. + + + + + The import order for scenes, which ensures scenes are imported after all other core resources such as textures. Custom importers should generally have an import order lower than 100 to avoid issues when importing scenes that rely on custom resources. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton used to load resource files from the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to load files into memory and convert them to a format that can be used by the engine. + Note: You have to import the files into the engine first to load them using . If you want to load s at run-time, you may use . If you want to import audio files, you can use the snippet described in . + Note: Non-resource files such as plain text files cannot be read using . Use for those files instead, and be aware that non-resource files are not exported by default (see notes in the class description for instructions on exporting them). + + + + + Loads the resource using threads. If is , multiple threads will be used to load the resource, which makes loading faster, but may affect the main thread (and thus cause game slowdowns). + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + + + + + Returns the status of a threaded loading operation started with for the resource at . See for possible return values. + An array variable can optionally be passed via , and will return a one-element array containing the ratio of completion of the threaded loading (between 0.0 and 1.0). + Note: The recommended way of using this method is to call it during different frames (e.g., in , instead of a loop). + + + + + Returns the resource loaded by . + If this is called before the loading thread is done (i.e. is not ), the calling thread will be blocked until the resource has finished loading. However, it's recommended to use to known when the load has actually completed. + + + + + Loads a resource at the given , caching the result for further access. + The registered s are queried sequentially to find the first one which can handle the file's extension, and then attempt loading. If loading fails, the remaining ResourceFormatLoaders are also attempted. + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + The property defines whether and how the cache should be used or updated when loading the resource. See for details. + Returns an empty resource if no could handle the file, and prints an error if no file is found at the specified path. + GDScript has a simplified @GDScript.load built-in method which can be used in most situations, leaving the use of for more advanced scenarios. + Note: If ProjectSettings.editor/export/convert_text_resources_to_binary is , @GDScript.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 . + Note: Relative paths will be prefixed with "res://" before loading, to avoid unexpected results make sure your paths are absolute. + + + + + Returns the list of recognized extensions for a resource type. + + + + + Registers a new . The ResourceLoader will use the ResourceFormatLoader as described in . + This method is performed implicitly for ResourceFormatLoaders written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Changes the behavior on missing sub-resources. The default behavior is to abort loading. + + + + + Returns the dependencies for the resource at the given . + Note: The dependencies are returned with slices separated by ::. You can use String.get_slice to get their components. + + for dep in ResourceLoader.get_dependencies(path): + print(dep.get_slice("::", 0)) # Prints UID. + print(dep.get_slice("::", 2)) # Prints path. + + + + + + Returns whether a cached resource is available for the given . + Once a resource has been loaded by the engine, it is cached in memory for faster access, and future calls to the method will use the cached version. The cached resource can be overridden by using on a new resource for that same path. + + + + + Returns the cached resource reference for the given . + Note: If the resource is not cached, the returned will be invalid. + + + + + Returns whether a recognized resource exists for the given . + An optional can be used to further specify the type that should be handled by the . Anything that inherits from can be used as a type hint, for example . + Note: If you use , this method will return for the taken path even if the resource wasn't saved (i.e. exists only in resource cache). + + + + + Returns the ID associated with a given resource path, or -1 when no such ID exists. + + + + + Lists a directory (as example: "res://assets/enemies"), returning all resources contained within. The resource files are the original file names as visible in the editor before exporting. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_threaded_request' method. + + + + + Cached name for the 'load_threaded_get_status' method. + + + + + Cached name for the 'load_threaded_get' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'get_recognized_extensions_for_type' method. + + + + + Cached name for the 'add_resource_format_loader' method. + + + + + Cached name for the 'remove_resource_format_loader' method. + + + + + Cached name for the 'set_abort_on_missing_resources' method. + + + + + Cached name for the 'get_dependencies' method. + + + + + Cached name for the 'has_cached' method. + + + + + Cached name for the 'get_cached_ref' method. + + + + + Cached name for the 'exists' method. + + + + + Cached name for the 'get_resource_uid' method. + + + + + Cached name for the 'list_directory' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node is used to preload sub-resources inside a scene, so when the scene is loaded, all the resources are ready to use and can be retrieved from the preloader. You can add the resources using the ResourcePreloader tab when the node is selected. + GDScript has a simplified @GDScript.preload built-in method which can be used in most situations, leaving the use of for more advanced scenarios. + + + + + Adds a resource to the preloader with the given . If a resource with the given already exists, the new resource will be renamed to " N" where N is an incrementing number starting from 2. + + + + + Removes the resource associated to from the preloader. + + + + + Renames a resource inside the preloader from to . + + + + + Returns if the preloader contains a resource associated to . + + + + + Returns the resource associated to . + + + + + Returns the list of resources inside the preloader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'resources' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_resources' method. + + + + + Cached name for the '_get_resources' method. + + + + + Cached name for the 'add_resource' method. + + + + + Cached name for the 'remove_resource' method. + + + + + Cached name for the 'rename_resource' method. + + + + + Cached name for the 'has_resource' method. + + + + + Cached name for the 'get_resource' method. + + + + + Cached name for the 'get_resource_list' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton for saving resource types to the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g. .tres or .tscn) or binary files (e.g. .res or .scn). + + + + + No resource saving option. + + + + + Save the resource with a path relative to the scene which uses it. + + + + + Bundles external resources. + + + + + Changes the of the saved resource to match its new location. + + + + + Do not save editor-specific metadata (identified by their __editor prefix). + + + + + Save as big endian (see ). + + + + + Compress the resource on save using . Only available for binary resource types. + + + + + Take over the paths of the saved subresources (see ). + + + + + Saves a resource to disk to the given path, using a that recognizes the resource object. If is empty, will try to use . + The bitmask can be specified to customize the save behavior using flags. + Returns on success. + Note: When the project is running, any generated UID associated with the resource will not be saved as the required code is only executed in editor mode. + + + + + Returns the list of extensions available for saving a resource of a given type. + + + + + Registers a new . The ResourceSaver will use the ResourceFormatSaver as described in . + This method is performed implicitly for ResourceFormatSavers written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Returns the resource ID for the given path. If is , a new resource ID will be generated if one for the path is not found. If is and the path is not found, is returned. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'get_recognized_extensions' method. + + + + + Cached name for the 'add_resource_format_saver' method. + + + + + Cached name for the 'remove_resource_format_saver' method. + + + + + Cached name for the 'get_resource_id_for_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A singleton for saving resource types to the filesystem. + It uses the many classes registered in the engine (either built-in or from a plugin) to save resource data to text-based (e.g. .tres or .tscn) or binary files (e.g. .res or .scn). + + + + + Saves a resource to disk to the given path, using a that recognizes the resource object. If is empty, will try to use . + The bitmask can be specified to customize the save behavior using flags. + Returns on success. + Note: When the project is running, any generated UID associated with the resource will not be saved as the required code is only executed in editor mode. + + + + + Returns the list of extensions available for saving a resource of a given type. + + + + + Registers a new . The ResourceSaver will use the ResourceFormatSaver as described in . + This method is performed implicitly for ResourceFormatSavers written in GDScript (see for more information). + + + + + Unregisters the given . + + + + + Returns the resource ID for the given path. If is , a new resource ID will be generated if one for the path is not found. If is and the path is not found, is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'get_recognized_extensions' method. + + + + + Cached name for the 'add_resource_format_saver' method. + + + + + Cached name for the 'remove_resource_format_saver' method. + + + + + Cached name for the 'get_resource_id_for_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files are renamed or moved. They can be accessed with uid://. + keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations. + + + + + The value to use for an invalid UID, for example if the resource could not be loaded. + Its text representation is uid://<invalid>. + + + + + Converts the given UID to a uid:// string value. + + + + + Extracts the UID value from the given uid:// string. + + + + + Generates a random resource UID which is guaranteed to be unique within the list of currently loaded UIDs. + In order for this UID to be registered, you must call or . + + + + + Returns whether the given UID value is known to the cache. + + + + + Adds a new UID value which is mapped to the given resource path. + Fails with an error if the UID already exists, so be sure to check beforehand, or use instead. + + + + + Updates the resource path of an existing UID. + Fails with an error if the UID does not exist, so be sure to check beforehand, or use instead. + + + + + Returns the path that the given UID value refers to. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Removes a loaded UID value from the cache. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'id_to_text' method. + + + + + Cached name for the 'text_to_id' method. + + + + + Cached name for the 'create_id' method. + + + + + Cached name for the 'has_id' method. + + + + + Cached name for the 'add_id' method. + + + + + Cached name for the 'set_id' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached name for the 'remove_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files are renamed or moved. They can be accessed with uid://. + keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations. + + + + + Converts the given UID to a uid:// string value. + + + + + Extracts the UID value from the given uid:// string. + + + + + Generates a random resource UID which is guaranteed to be unique within the list of currently loaded UIDs. + In order for this UID to be registered, you must call or . + + + + + Returns whether the given UID value is known to the cache. + + + + + Adds a new UID value which is mapped to the given resource path. + Fails with an error if the UID already exists, so be sure to check beforehand, or use instead. + + + + + Updates the resource path of an existing UID. + Fails with an error if the UID does not exist, so be sure to check beforehand, or use instead. + + + + + Returns the path that the given UID value refers to. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Removes a loaded UID value from the cache. + Fails with an error if the UID does not exist, so be sure to check beforehand. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'id_to_text' method. + + + + + Cached name for the 'text_to_id' method. + + + + + Cached name for the 'create_id' method. + + + + + Cached name for the 'has_id' method. + + + + + Cached name for the 'add_id' method. + + + + + Cached name for the 'set_id' method. + + + + + Cached name for the 'get_id_path' method. + + + + + Cached name for the 'remove_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Retrieves the pose (or global pose) relative to the parent Skeleton's rest in model space and transfers it to the child Skeleton. + This modifier rewrites the pose of the child skeleton directly in the parent skeleton's update process. This means that it overwrites the mapped bone pose set in the normal process on the target skeleton. If you want to set the target skeleton bone pose after retargeting, you will need to add a child to the target skeleton and thereby modify the pose. + Note: When the is enabled, even if it is an unmapped bone, it can cause visual problems because the global pose is applied ignoring the parent bone's pose if it has mapped bone children. See also . + + + + + for retargeting bones with names matching the bone list. + + + + + If , in case the target skeleton has fewer bones than the source skeleton, the source bone parent's transform will be ignored. + Instead, it is possible to retarget between models with different body shapes, and position, rotation, and scale can be retargeted separately. + If , retargeting is performed taking into account global pose. + In case the target skeleton has fewer bones than the source skeleton, the source bone parent's transform is taken into account. However, bone length between skeletons must match exactly, if not, the bones will be forced to expand or shrink. + This is useful for using dummy bone with length 0 to match postures when retargeting between models with different number of bones. + + + + + If , allows to retarget the position. + + + + + If , allows to retarget the rotation. + + + + + If , allows to retarget the scale. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'profile' property. + + + + + Cached name for the 'use_global_pose' property. + + + + + Cached name for the 'position_enabled' property. + + + + + Cached name for the 'rotation_enabled' property. + + + + + Cached name for the 'scale_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_profile' method. + + + + + Cached name for the 'get_profile' method. + + + + + Cached name for the 'set_use_global_pose' method. + + + + + Cached name for the 'is_using_global_pose' method. + + + + + Cached name for the 'set_position_enabled' method. + + + + + Cached name for the 'is_position_enabled' method. + + + + + Cached name for the 'set_rotation_enabled' method. + + + + + Cached name for the 'is_rotation_enabled' method. + + + + + Cached name for the 'set_scale_enabled' method. + + + + + Cached name for the 'is_scale_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and number of . A 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. + + + + + Gives the mesh a single flat face. + + + + + Gives the mesh two perpendicular flat faces, making a cross shape. + + + + + Determines the shape of the ribbon. + + + + + The baseline size of the ribbon. The size of a particular section segment is obtained by multiplying this size by the value of the at the given distance. + + + + + The total number of sections on the ribbon. + + + + + The length of a section of the ribbon. + + + + + The number of segments in a section. The is sampled on each segment to determine its size. Higher values result in a more detailed ribbon at the cost of performance. + + + + + Determines the size of the ribbon along its length. The size of a particular section segment is obtained by multiplying the baseline by the value of this curve at the given distance. For values smaller than 0, the faces will be inverted. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'sections' property. + + + + + Cached name for the 'section_length' property. + + + + + Cached name for the 'section_segments' property. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_sections' method. + + + + + Cached name for the 'get_sections' method. + + + + + Cached name for the 'set_section_length' method. + + + + + Cached name for the 'get_section_length' method. + + + + + Cached name for the 'set_section_segments' method. + + + + + Cached name for the 'get_section_segments' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A custom effect for a , which can be loaded in the inspector or using . + Note: For a to be usable, a BBCode tag must be defined as a member variable called bbcode in the script. + + // The RichTextEffect will be usable like this: `[example]Some text[/example]` + string bbcode = "example"; + + Note: As soon as a contains at least one , it will continuously process the effect unless the project is paused. This may impact battery life negatively. + + + + + Override this method to modify properties in . The method must return if the character could be transformed successfully. If the method returns , it will skip transformation to avoid displaying broken text. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_custom_fx' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , , and . By changing various properties of the object, such as , 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 . + Note: Changing the 2D transform or of a very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer as it allows you to directly access the physics state. + + + + + 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. + + + + + Kinematic body freeze mode. Similar to , but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated. + + + + + 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. + + + + + In this mode, the body's center of mass is set through . Defaults to the body's origin position. + + + + + In this mode, the body's damping value is added to any value set in areas or the default value. + + + + + In this mode, the body's damping value replaces any value set in areas or the default value. + + + + + Continuous collision detection disabled. This is the fastest way to detect body collisions, but can miss small, fast-moving objects. + + + + + Continuous collision detection enabled using raycasting. This is faster than shapecasting but less precise. + + + + + Continuous collision detection enabled using shapecasting. This is the slowest CCD method and the most precise. + + + + + The body's mass. + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + Multiplies the gravity applied to the body. The body's gravity is calculated from the ProjectSettings.physics/2d/default_gravity project setting and/or any additional gravity vector applied by s. + + + + + Defines the way the body's center of mass is set. See for possible values. + + + + + The body's custom center of mass, relative to the body's origin position, when is set to . This is the balanced point of the body, where applied forces only cause linear acceleration. Applying forces outside of the center of mass causes angular acceleration. + When is set to (default value), the center of mass is automatically computed. + + + + + The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body. The moment of inertia is usually computed automatically from the mass and the shapes, but this property allows you to set a custom value. + If set to 0, inertia is automatically computed (default value). + Note: This value does not change when inertia is automatically computed. Use to get the computed inertia. + + private RigidBody2D _ball; + + public override void _Ready() + { + _ball = GetNode<RigidBody2D>("Ball"); + } + + private float GetBallInertia() + { + return 1.0f / PhysicsServer2D.BodyGetDirectState(_ball.GetRid()).InverseInertia; + } + + + + + + If , the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the or methods. + + + + + If , the body can enter sleep mode when there is no movement. See . + + + + + If , the body cannot rotate. Gravity and forces only apply linear movement. + + + + + If , the body is frozen. Gravity and forces are not applied anymore. + See to set the body's behavior when frozen. + For a body that is always frozen, use or instead. + + + + + The body's freeze mode. Can be used to set the body's behavior when is enabled. See for possible values. + For a body that is always frozen, use or instead. + + + + + If , the standard force integration (like gravity or damping) will be disabled for this body. Other than collision response, the body will only move as determined by the method, if that virtual method is overridden. + Setting this property will call the method internally. + + + + + Continuous collision detection mode. + Continuous collision detection tries to predict where a moving body will collide instead of moving it and correcting its movement after collision. Continuous collision detection is slower, but more precise and misses fewer collisions with small, fast-moving objects. Raycasting and shapecasting methods are available. See for details. + + + + + If , the RigidBody2D will emit signals when it collides with another body. + Note: By default the maximum contacts reported is set to 0, meaning nothing will be recorded, see . + + + + + The maximum number of contacts that will be recorded. Requires a value greater than 0 and to be set to to start to register contacts. Use to retrieve the count or to retrieve bodies that have been collided with. + Note: The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner). + + + + + The body's linear velocity in pixels per second. Can be used sporadically, but don't set this every frame, because physics may run in another thread and runs at a different granularity. Use as your process loop for precise control of the body state. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's movement. By default, the body will use the ProjectSettings.physics/2d/default_linear_damp setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/2d/default_linear_damp for more details about damping. + + + + + The body's rotational velocity in radians per second. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's rotation. By default, the body will use the ProjectSettings.physics/2d/default_angular_damp setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/2d/default_angular_damp for more details about damping. + + + + + The body's total constant positional forces applied during each physics update. + See and . + + + + + The body's total constant rotational forces applied during each physics update. + See . + + + + + Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it is called before the standard force integration, but the property allows you to disable the standard force integration and do fully custom force integration for a body. + + + + + Returns the number of contacts this body has with other bodies. By default, this returns 0 unless bodies are configured to monitor contacts (see ). + Note: To retrieve the colliding bodies, use . + + + + + Sets the body's velocity on the given axis. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector2(0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector2(0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = 0. + + + + + Returns a list of the bodies colliding with this one. Requires to be set to and to be set high enough to detect all the collisions. + Note: The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of this RigidBody2D's s collides with another or 's s. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody2D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision between one of this RigidBody2D's s and another or 's s ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody2D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a collision with another or occurs. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision with another or ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Emitted when the physics engine changes the body's sleeping state. + Note: Changing the value will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or emit_signal("sleeping_state_changed") is used. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'gravity_scale' property. + + + + + Cached name for the 'center_of_mass_mode' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'inertia' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'can_sleep' property. + + + + + Cached name for the 'lock_rotation' property. + + + + + Cached name for the 'freeze' property. + + + + + Cached name for the 'freeze_mode' property. + + + + + Cached name for the 'custom_integrator' property. + + + + + Cached name for the 'continuous_cd' property. + + + + + Cached name for the 'contact_monitor' property. + + + + + Cached name for the 'max_contacts_reported' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'linear_damp_mode' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'angular_damp_mode' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'constant_force' property. + + + + + Cached name for the 'constant_torque' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'get_inertia' method. + + + + + Cached name for the 'set_inertia' method. + + + + + Cached name for the 'set_center_of_mass_mode' method. + + + + + Cached name for the 'get_center_of_mass_mode' method. + + + + + Cached name for the 'set_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached name for the 'set_gravity_scale' method. + + + + + Cached name for the 'get_gravity_scale' method. + + + + + Cached name for the 'set_linear_damp_mode' method. + + + + + Cached name for the 'get_linear_damp_mode' method. + + + + + Cached name for the 'set_angular_damp_mode' method. + + + + + Cached name for the 'get_angular_damp_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_max_contacts_reported' method. + + + + + Cached name for the 'get_max_contacts_reported' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'set_use_custom_integrator' method. + + + + + Cached name for the 'is_using_custom_integrator' method. + + + + + Cached name for the 'set_contact_monitor' method. + + + + + Cached name for the 'is_contact_monitor_enabled' method. + + + + + Cached name for the 'set_continuous_collision_detection_mode' method. + + + + + Cached name for the 'get_continuous_collision_detection_mode' method. + + + + + Cached name for the 'set_axis_velocity' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleeping' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'set_can_sleep' method. + + + + + Cached name for the 'is_able_to_sleep' method. + + + + + Cached name for the 'set_lock_rotation_enabled' method. + + + + + Cached name for the 'is_lock_rotation_enabled' method. + + + + + Cached name for the 'set_freeze_enabled' method. + + + + + Cached name for the 'is_freeze_enabled' method. + + + + + Cached name for the 'set_freeze_mode' method. + + + + + Cached name for the 'get_freeze_mode' method. + + + + + Cached name for the 'get_colliding_bodies' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'sleeping_state_changed' signal. + + + + + 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 , , and . By changing various properties of the object, such as , 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 . + Note: Changing the 3D transform or of a very often may lead to some unpredictable behaviors. If you need to directly affect the body, prefer as it allows you to directly access the physics state. + + + + + 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. + + + + + Kinematic body freeze mode. Similar to , but collides with other bodies along its path when moved. Useful for a frozen body that needs to be animated. + + + + + 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. + + + + + In this mode, the body's center of mass is set through . Defaults to the body's origin position. + + + + + In this mode, the body's damping value is added to any value set in areas or the default value. + + + + + In this mode, the body's damping value replaces any value set in areas or the default value. + + + + + The body's mass. + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + This is multiplied by ProjectSettings.physics/3d/default_gravity to produce this body's gravity. For example, a value of 1.0 will apply normal gravity, 2.0 will apply double the gravity, and 0.5 will apply half the gravity to this body. + + + + + Defines the way the body's center of mass is set. See for possible values. + + + + + The body's custom center of mass, relative to the body's origin position, when is set to . This is the balanced point of the body, where applied forces only cause linear acceleration. Applying forces outside of the center of mass causes angular acceleration. + When is set to (default value), the center of mass is automatically computed. + + + + + The body's moment of inertia. This is like mass, but for rotation: it determines how much torque it takes to rotate the body on each axis. The moment of inertia is usually computed automatically from the mass and the shapes, but this property allows you to set a custom value. + If set to Vector3.ZERO, inertia is automatically computed (default value). + Note: This value does not change when inertia is automatically computed. Use to get the computed inertia. + + private RigidBody3D _ball; + + public override void _Ready() + { + _ball = GetNode<RigidBody3D>("Ball"); + } + + private Vector3 GetBallInertia() + { + return PhysicsServer3D.BodyGetDirectState(_ball.GetRid()).InverseInertia.Inverse(); + } + + + + + + If , the body will not move and will not calculate forces until woken up by another body through, for example, a collision, or by using the or methods. + + + + + If , the body can enter sleep mode when there is no movement. See . + + + + + If , the body cannot rotate. Gravity and forces only apply linear movement. + + + + + If , the body is frozen. Gravity and forces are not applied anymore. + See to set the body's behavior when frozen. + For a body that is always frozen, use or instead. + + + + + The body's freeze mode. Can be used to set the body's behavior when is enabled. See for possible values. + For a body that is always frozen, use or instead. + + + + + If , the standard force integration (like gravity or damping) will be disabled for this body. Other than collision response, the body will only move as determined by the method, if that virtual method is overridden. + Setting this property will call the method internally. + + + + + If , continuous collision detection is used. + Continuous collision detection tries to predict where a moving body will collide, instead of moving it and correcting its movement if it collided. Continuous collision detection is more precise, and misses fewer impacts by small, fast-moving objects. Not using continuous collision detection is faster to compute, but can miss small, fast-moving objects. + + + + + If , the RigidBody3D will emit signals when it collides with another body. + Note: By default the maximum contacts reported is set to 0, meaning nothing will be recorded, see . + + + + + The maximum number of contacts that will be recorded. Requires a value greater than 0 and to be set to to start to register contacts. Use to retrieve the count or to retrieve bodies that have been collided with. + Note: The number of contacts is different from the number of collisions. Collisions between parallel edges will result in two contacts (one at each end), and collisions between parallel faces will result in four contacts (one at each corner). + + + + + The body's linear velocity in units per second. Can be used sporadically, but don't set this every frame, because physics may run in another thread and runs at a different granularity. Use as your process loop for precise control of the body state. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's movement. By default, the body will use the ProjectSettings.physics/3d/default_linear_damp project setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/3d/default_linear_damp for more details about damping. + + + + + The RigidBody3D's rotational velocity in radians per second. + + + + + Defines how is applied. See for possible values. + + + + + Damps the body's rotation. By default, the body will use the ProjectSettings.physics/3d/default_angular_damp project setting or any value override set by an the body is in. Depending on , you can set to be added to or to replace the body's damping value. + See ProjectSettings.physics/3d/default_angular_damp for more details about damping. + + + + + The body's total constant positional forces applied during each physics update. + See and . + + + + + The body's total constant rotational forces applied during each physics update. + See . + + + + + Called during physics processing, allowing you to read and safely modify the simulation state for the object. By default, it is called before the standard force integration, but the property allows you to disable the standard force integration and do fully custom force integration for a body. + + + + + Returns the inverse inertia tensor basis. This is used to calculate the angular acceleration resulting from a torque applied to the . + + + + + Returns the number of contacts this body has with other bodies. By default, this returns 0 unless bodies are configured to monitor contacts (see ). + Note: To retrieve the colliding bodies, use . + + + + + Sets an axis velocity. The velocity in the given vector axis will be set as the given vector length. This is useful for jumping behavior. + + + + + Applies a directional impulse without affecting rotation. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned impulse to the body. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational impulse to the body without affecting the position. + An impulse is time-independent! Applying an impulse every frame would result in a framerate-dependent force. For this reason, it should only be used when simulating one-time impacts (use the "_force" functions otherwise). + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Applies a directional force without affecting rotation. A force is time dependent and meant to be applied every physics update. + This is equivalent to using at the body's center of mass. + + + + + Applies a positioned force to the body. A force is time dependent and meant to be applied every physics update. + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Applies a rotational force without affecting position. A force is time dependent and meant to be applied every physics update. + Note: is required for this to work. To have , an active must be a child of the node, or you can manually set . + + + + + Adds a constant directional force without affecting rotation that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + This is equivalent to using at the body's center of mass. + + + + + Adds a constant positioned force to the body that keeps being applied over time until cleared with constant_force = Vector3(0, 0, 0). + is the offset from the body origin in global coordinates. + + If the parameter is null, then the default value is new Vector3(0.0f, 0.0f, 0.0f). + + + + Adds a constant rotational force without affecting position that keeps being applied over time until cleared with constant_torque = Vector3(0, 0, 0). + + + + + Returns a list of the bodies colliding with this one. Requires to be set to and to be set high enough to detect all the collisions. + Note: The result of this test is not immediate after moving objects. For performance, list of collisions is updated once per frame and before the physics step. Consider using signals instead. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of this RigidBody3D's s collides with another or 's s. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody3D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision between one of this RigidBody3D's s and another or 's s ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + bodyRid the of the other or 's used by the . s are detected if the Meshes have s. + body the , if it exists in the tree, of the other or . + bodyShapeIndex the index of the of the other or used by the . Get the node with body.shape_owner_get_owner(body.shape_find_owner(body_shape_index)). + localShapeIndex the index of the of this RigidBody3D used by the . Get the node with self.shape_owner_get_owner(self.shape_find_owner(local_shape_index)). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a collision with another or occurs. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the collision with another or ends. Requires to be set to and to be set high enough to detect all the collisions. s are detected if the has Collision s. + body the , if it exists in the tree, of the other or . + + + + + Emitted when the physics engine changes the body's sleeping state. + Note: Changing the value will not trigger this signal. It is only emitted if the sleeping state is changed by the physics engine or emit_signal("sleeping_state_changed") is used. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'gravity_scale' property. + + + + + Cached name for the 'center_of_mass_mode' property. + + + + + Cached name for the 'center_of_mass' property. + + + + + Cached name for the 'inertia' property. + + + + + Cached name for the 'sleeping' property. + + + + + Cached name for the 'can_sleep' property. + + + + + Cached name for the 'lock_rotation' property. + + + + + Cached name for the 'freeze' property. + + + + + Cached name for the 'freeze_mode' property. + + + + + Cached name for the 'custom_integrator' property. + + + + + Cached name for the 'continuous_cd' property. + + + + + Cached name for the 'contact_monitor' property. + + + + + Cached name for the 'max_contacts_reported' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'linear_damp_mode' property. + + + + + Cached name for the 'linear_damp' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'angular_damp_mode' property. + + + + + Cached name for the 'angular_damp' property. + + + + + Cached name for the 'constant_force' property. + + + + + Cached name for the 'constant_torque' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_integrate_forces' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_inertia' method. + + + + + Cached name for the 'get_inertia' method. + + + + + Cached name for the 'set_center_of_mass_mode' method. + + + + + Cached name for the 'get_center_of_mass_mode' method. + + + + + Cached name for the 'set_center_of_mass' method. + + + + + Cached name for the 'get_center_of_mass' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'get_inverse_inertia_tensor' method. + + + + + Cached name for the 'set_gravity_scale' method. + + + + + Cached name for the 'get_gravity_scale' method. + + + + + Cached name for the 'set_linear_damp_mode' method. + + + + + Cached name for the 'get_linear_damp_mode' method. + + + + + Cached name for the 'set_angular_damp_mode' method. + + + + + Cached name for the 'get_angular_damp_mode' method. + + + + + Cached name for the 'set_linear_damp' method. + + + + + Cached name for the 'get_linear_damp' method. + + + + + Cached name for the 'set_angular_damp' method. + + + + + Cached name for the 'get_angular_damp' method. + + + + + Cached name for the 'set_max_contacts_reported' method. + + + + + Cached name for the 'get_max_contacts_reported' method. + + + + + Cached name for the 'get_contact_count' method. + + + + + Cached name for the 'set_use_custom_integrator' method. + + + + + Cached name for the 'is_using_custom_integrator' method. + + + + + Cached name for the 'set_contact_monitor' method. + + + + + Cached name for the 'is_contact_monitor_enabled' method. + + + + + Cached name for the 'set_use_continuous_collision_detection' method. + + + + + Cached name for the 'is_using_continuous_collision_detection' method. + + + + + Cached name for the 'set_axis_velocity' method. + + + + + Cached name for the 'apply_central_impulse' method. + + + + + Cached name for the 'apply_impulse' method. + + + + + Cached name for the 'apply_torque_impulse' method. + + + + + Cached name for the 'apply_central_force' method. + + + + + Cached name for the 'apply_force' method. + + + + + Cached name for the 'apply_torque' method. + + + + + Cached name for the 'add_constant_central_force' method. + + + + + Cached name for the 'add_constant_force' method. + + + + + Cached name for the 'add_constant_torque' method. + + + + + Cached name for the 'set_constant_force' method. + + + + + Cached name for the 'get_constant_force' method. + + + + + Cached name for the 'set_constant_torque' method. + + + + + Cached name for the 'get_constant_torque' method. + + + + + Cached name for the 'set_sleeping' method. + + + + + Cached name for the 'is_sleeping' method. + + + + + Cached name for the 'set_can_sleep' method. + + + + + Cached name for the 'is_able_to_sleep' method. + + + + + Cached name for the 'set_lock_rotation_enabled' method. + + + + + Cached name for the 'is_lock_rotation_enabled' method. + + + + + Cached name for the 'set_freeze_enabled' method. + + + + + Cached name for the 'is_freeze_enabled' method. + + + + + Cached name for the 'set_freeze_mode' method. + + + + + Cached name for the 'get_freeze_mode' method. + + + + + Cached name for the 'get_colliding_bodies' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'body_shape_entered' signal. + + + + + Cached name for the 'body_shape_exited' signal. + + + + + Cached name for the 'body_entered' signal. + + + + + Cached name for the 'body_exited' signal. + + + + + Cached name for the 'sleeping_state_changed' signal. + + + + + Root motion refers to an animation technique where a mesh's skeleton is used to give impulse to a character. When working with 3D animations, a popular technique is for animators to use the root skeleton bone to give motion to the rest of the skeleton. This allows animating characters in a way where steps actually match the floor below. It also allows precise interaction with objects during cinematics. See also . + Note: is only visible in the editor. It will be hidden automatically in the running project. + + + + + Path to an node to use as a basis for root motion. + + + + + The grid's color. + + + + + The grid's cell size in 3D units. + + + + + The grid's radius in 3D units. The grid's opacity will fade gradually as the distance from the origin increases until this is reached. + + + + + If , the grid's points will all be on the same Y coordinate (local Y = 0). If , the points' original Y coordinate is preserved. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'animation_path' property. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'cell_size' property. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'zero_y' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_animation_path' method. + + + + + Cached name for the 'get_animation_path' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_cell_size' method. + + + + + Cached name for the 'get_cell_size' method. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_zero_y' method. + + + + + Cached name for the 'get_zero_y' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is the default implementation of , used to provide multiplayer functionalities in Godot Engine. + This implementation supports RPCs via and and requires to be passed a (it will fail for other object types). + This implementation additionally provide replication via the and nodes, and the resource. + Note: The high-level multiplayer API protocol is an implementation detail and isn't meant to be used by non-Godot servers. It may change without notice. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The root path to use for RPCs and replication. Instead of an absolute path, a relative path will be used to find the node upon which the RPC should be executed. + This effectively allows to have different branches of the scene tree to be managed by different MultiplayerAPI, allowing for example to run both client and server in the same scene. + + + + + The callback to execute when receiving authentication data sent via . If the is empty (default), peers will be automatically accepted as soon as they connect. + + + + + If set to a value greater than 0.0, the maximum duration in seconds peers can stay in the authenticating state, after which the authentication will automatically fail. See the and signals. + + + + + If , the MultiplayerAPI will allow encoding and decoding of object during RPCs. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threat such as remote code execution. + + + + + If , the MultiplayerAPI's refuses new incoming connections. + + + + + Enable or disable the server feature that notifies clients of other peers' connection/disconnection, and relays messages between them. When this option is , clients won't be automatically notified of other peers and won't be able to send them packets through the server. + Note: Changing this option while other peers are connected may lead to unexpected behaviors. + Note: Support for this feature may depend on the current configuration. See . + + + + + Maximum size of each synchronization packet. Higher values increase the chance of receiving full updates in a single frame, but also the chance of packet loss. See . + + + + + Maximum size of each delta packet. Higher values increase the chance of receiving full updates in a single frame, but also the chance of causing networking congestion (higher latency, disconnections). See . + + + + + Clears the current SceneMultiplayer network state (you shouldn't call this unless you know what you are doing). + + + + + Disconnects the peer identified by , removing it from the list of connected peers, and closing the underlying connection with it. + + + + + Returns the IDs of the peers currently trying to authenticate with this . + + + + + Sends the specified to the remote peer identified by as part of an authentication message. This can be used to authenticate peers, and control when is emitted (and the remote peer accepted as one of the connected peers). + + + + + Sends the specified to the remote peer identified by as part of an authentication message. This can be used to authenticate peers, and control when is emitted (and the remote peer accepted as one of the connected peers). + + + + + Mark the authentication step as completed for the remote peer identified by . The signal will be emitted for this peer once the remote side also completes the authentication. No further authentication messages are expected to be received from this peer. + If a peer disconnects before completing authentication, either due to a network issue, the expiring, or manually calling , the signal will be emitted instead of . + + + + + Sends the given raw to a specific peer identified by (see ). Default ID is 0, i.e. broadcast to all peers. + + + + + Sends the given raw to a specific peer identified by (see ). Default ID is 0, i.e. broadcast to all peers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's connects to a new peer and a valid is set. In this case, the will not be emitted until is called with given peer id. While in this state, the peer will not be included in the list returned by (but in the one returned by ), and only authentication data will be sent or received. See for sending authentication data. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's disconnects from a peer for which authentication had not yet completed. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when this MultiplayerAPI's receives a packet with custom data (see ). ID is the peer ID of the peer that sent the packet. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_path' property. + + + + + Cached name for the 'auth_callback' property. + + + + + Cached name for the 'auth_timeout' property. + + + + + Cached name for the 'allow_object_decoding' property. + + + + + Cached name for the 'refuse_new_connections' property. + + + + + Cached name for the 'server_relay' property. + + + + + Cached name for the 'max_sync_packet_size' property. + + + + + Cached name for the 'max_delta_packet_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_path' method. + + + + + Cached name for the 'get_root_path' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'disconnect_peer' method. + + + + + Cached name for the 'get_authenticating_peers' method. + + + + + Cached name for the 'send_auth' method. + + + + + Cached name for the 'complete_auth' method. + + + + + Cached name for the 'set_auth_callback' method. + + + + + Cached name for the 'get_auth_callback' method. + + + + + Cached name for the 'set_auth_timeout' method. + + + + + Cached name for the 'get_auth_timeout' method. + + + + + Cached name for the 'set_refuse_new_connections' method. + + + + + Cached name for the 'is_refusing_new_connections' method. + + + + + Cached name for the 'set_allow_object_decoding' method. + + + + + Cached name for the 'is_object_decoding_allowed' method. + + + + + Cached name for the 'set_server_relay_enabled' method. + + + + + Cached name for the 'is_server_relay_enabled' method. + + + + + Cached name for the 'send_bytes' method. + + + + + Cached name for the 'get_max_sync_packet_size' method. + + + + + Cached name for the 'set_max_sync_packet_size' method. + + + + + Cached name for the 'get_max_delta_packet_size' method. + + + + + Cached name for the 'set_max_delta_packet_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'peer_authenticating' signal. + + + + + Cached name for the 'peer_authentication_failed' signal. + + + + + Cached name for the 'peer_packet' signal. + + + + + Do not keep the given property synchronized. + + + + + Replicate the given property on process by constantly sending updates using unreliable transfer mode. + + + + + Replicate the given property on process by sending updates using reliable transfer mode when its value changes. + + + + + Returns a list of synchronized property s. + + + + + Adds the property identified by the given to the list of the properties being synchronized, optionally passing an . + Note: For details on restrictions and limitations on property synchronization, see . + + + + + Returns if the given is configured for synchronization. + + + + + Removes the property identified by the given from the configuration. + + + + + Finds the index of the given . + + + + + Returns if the property identified by the given is configured to be synchronized on spawn. + + + + + Sets whether the property identified by the given is configured to be synchronized on spawn. + + + + + Returns the replication mode for the property identified by the given . See . + + + + + Sets the synchronization mode for the property identified by the given . See . + + + + + Returns if the property identified by the given is configured to be synchronized on process. + + + + + Sets whether the property identified by the given is configured to be synchronized on process. + + + + + Returns if the property identified by the given is configured to be reliably synchronized when changes are detected on process. + + + + + Sets whether the property identified by the given is configured to be reliably synchronized when changes are detected on process. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_properties' method. + + + + + Cached name for the 'add_property' method. + + + + + Cached name for the 'has_property' method. + + + + + Cached name for the 'remove_property' method. + + + + + Cached name for the 'property_get_index' method. + + + + + Cached name for the 'property_get_spawn' method. + + + + + Cached name for the 'property_set_spawn' method. + + + + + Cached name for the 'property_get_replication_mode' method. + + + + + Cached name for the 'property_set_replication_mode' method. + + + + + Cached name for the 'property_get_sync' method. + + + + + Cached name for the 'property_set_sync' method. + + + + + Cached name for the 'property_get_watch' method. + + + + + Cached name for the 'property_set_watch' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Maintains a list of resources, nodes, exported and overridden properties, and built-in scripts associated with a scene. They cannot be modified from a , only accessed. Useful for peeking into what a contains without instantiating it. + This class cannot be instantiated directly, it is retrieved for a given scene as the result of . + + + + + If passed to , blocks edits to the scene state. + + + + + If passed to , provides inherited scene resources to the local scene. + Note: Only available in editor builds. + + + + + If passed to , provides local scene resources to the local scene. Only the main scene should receive the main edit state. + Note: Only available in editor builds. + + + + + If passed to , it's similar to , but for the case where the scene is being instantiated to be the base of another one. + Note: Only available in editor builds. + + + + + Returns the number of nodes in the scene. + The idx argument used to query node data in other get_node_* methods in the interval [0, get_node_count() - 1]. + + + + + Returns the type of the node at . + + + + + Returns the name of the node at . + + + + + Returns the path to the node at . + If is , returns the path of the node's parent instead. + + + + + Returns the path to the owner of the node at , relative to the root node. + + + + + Returns if the node at is an . + + + + + Returns the path to the represented scene file if the node at is an . + + + + + Returns a for the node at (i.e. the whole branch starting at this node, with its child nodes and resources), or if the node is not an instance. + + + + + Returns the list of group names associated with the node at . + + + + + Returns the node's index, which is its position relative to its siblings. This is only relevant and saved in scenes for cases where new nodes are added to an instantiated or inherited scene among siblings from the base scene. Despite the name, this index is not related to the argument used here and in other methods. + + + + + Returns the number of exported or overridden properties for the node at . + The prop_idx argument used to query node property data in other get_node_property_* methods in the interval [0, get_node_property_count() - 1]. + + + + + Returns the name of the property at for the node at . + + + + + Returns the value of the property at for the node at . + + + + + Returns the number of signal connections in the scene. + The idx argument used to query connection metadata in other get_connection_* methods in the interval [0, get_connection_count() - 1]. + + + + + Returns the path to the node that owns the signal at , relative to the root node. + + + + + Returns the name of the signal at . + + + + + Returns the path to the node that owns the method connected to the signal at , relative to the root node. + + + + + Returns the method connected to the signal at . + + + + + Returns the connection flags for the signal at . See constants. + + + + + Returns the list of bound parameters for the signal at . + + + + + Returns the number of unbound parameters for the signal at . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_node_count' method. + + + + + Cached name for the 'get_node_type' method. + + + + + Cached name for the 'get_node_name' method. + + + + + Cached name for the 'get_node_path' method. + + + + + Cached name for the 'get_node_owner_path' method. + + + + + Cached name for the 'is_node_instance_placeholder' method. + + + + + Cached name for the 'get_node_instance_placeholder' method. + + + + + Cached name for the 'get_node_instance' method. + + + + + Cached name for the 'get_node_groups' method. + + + + + Cached name for the 'get_node_index' method. + + + + + Cached name for the 'get_node_property_count' method. + + + + + Cached name for the 'get_node_property_name' method. + + + + + Cached name for the 'get_node_property_value' method. + + + + + Cached name for the 'get_connection_count' method. + + + + + Cached name for the 'get_connection_source' method. + + + + + Cached name for the 'get_connection_signal' method. + + + + + Cached name for the 'get_connection_target' method. + + + + + Cached name for the 'get_connection_method' method. + + + + + Cached name for the 'get_connection_flags' method. + + + + + Cached name for the 'get_connection_binds' method. + + + + + Cached name for the 'get_connection_unbinds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + As one of the most important classes, the manages the hierarchy of nodes in a scene, as well as scenes themselves. Nodes can be added, fetched 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 to organize your nodes into groups: every node can be added to 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 nodes belonging to any given group. + is the default implementation used by the engine, and is thus in charge of the game loop. + + + + + Call nodes within a group with no special behavior (default). + + + + + Call nodes within a group in reverse tree hierarchy order (all nested children are called before their respective parent nodes). + + + + + Call nodes within a group at the end of the current frame (can be either process or physics frame), similar to . + + + + + Call nodes within a group only once, even if the call is executed many times in the same frame. Must be combined with to work. + Note: Different arguments are not taken into account. Therefore, when the same call is executed with different arguments, only the first call will be performed. + + + + + If , the application automatically accepts quitting requests. + For mobile platforms, see . + + + + + If , the application quits automatically when navigating back (e.g. using the system "Back" button on Android). + To handle 'Go Back' button when this option is disabled, use . + + + + + If , collision shapes will be visible when running the game from the editor for debugging purposes. + Note: This property is not designed to be changed at run-time. Changing the value of while the project is running will not have the desired effect. + + + + + If , curves from and nodes will be visible when running the game from the editor for debugging purposes. + Note: This property is not designed to be changed at run-time. Changing the value of while the project is running will not have the desired effect. + + + + + If , navigation polygons will be visible when running the game from the editor for debugging purposes. + Note: This property is not designed to be changed at run-time. Changing the value of while the project is running will not have the desired effect. + + + + + If , the scene tree is considered paused. This causes the following behavior: + - 2D and 3D physics will be stopped, as well as collision detection and related signals. + - Depending on each node's , their , and callback methods may not called anymore. + + + + + The root of the scene currently being edited in the editor. This is usually a direct child of . + Note: This property does nothing in release builds. + + + + + The root node of the currently loaded main scene, usually as a direct child of . See also , , and . + Warning: Setting this property directly may not work as expected, as it does not add or remove any nodes from this tree. + + + + + The tree's root . This is top-most of the scene tree, and is always present. An absolute always starts from this node. Children of the root node may include the loaded , as well as any AutoLoad configured in the Project Settings. + Warning: Do not delete this node. This will result in unstable behavior, followed by a crash. + + + + + If (default value), enables automatic polling of the for this SceneTree during . + If , you need to manually call to process network packets and deliver RPCs. This allows running RPCs in a different loop (e.g. physics, thread, specific time step) and for manual protection when accessing the from threads. + + + + + If , the renderer will interpolate the transforms of physics objects between the last two transforms, so that smooth motion is seen even when physics ticks do not coincide with rendered frames. + The default value of this property is controlled by ProjectSettings.physics/common/physics_interpolation. + + + + + Returns if a node added to the given group exists in the tree. + + + + + Returns a new . After in seconds have passed, the timer will emit and will be automatically freed. + If is , the timer will be paused when setting to . + If is , the timer will update at the end of the physics frame, instead of the process frame. + If is , the timer will ignore and update with the real, elapsed time. + This method is commonly used to create a one-shot delay timer, as in the following example: + + public async Task SomeFunction() + { + GD.Print("start"); + await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName.Timeout); + GD.Print("end"); + } + + Note: The timer is always updated after all of the nodes in the tree. A node's method would be called before the timer updates (or if is set to ). + + + + + Creates and returns a new processed in this tree. The Tween will start automatically on the next process frame or physics frame (depending on its ). + Note: A created using this method is not bound to any . It may keep working until there is nothing left to animate. If you want the to be automatically killed when the is freed, use or . + + + + + Returns an of currently existing s in the tree, including paused tweens. + + + + + Returns the number of nodes inside this tree. + + + + + Returns how many frames have been processed, since the application started. This is not a measurement of elapsed time. + + + + + Quits the application at the end of the current iteration, with the given . + By convention, an exit code of 0 indicates success, whereas any other exit code indicates an error. For portability reasons, it should be between 0 and 125 (inclusive). + Note: On iOS this method doesn't work. Instead, as recommended by the iOS Human Interface Guidelines, the user is expected to close apps via the Home button. + + + + + Queues the given to be deleted, calling its at the end of the current frame. This method is similar to . + + + + + Calls the given on each node inside this tree added to the given . Use to customize this method's behavior (see ). Additional arguments for can be passed at the end of this method. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. + + # Calls "hide" to all nodes of the "enemies" group, at the end of the frame and in reverse tree order. + get_tree().call_group_flags( + SceneTree.GROUP_CALL_DEFERRED | SceneTree.GROUP_CALL_REVERSE, + "enemies", "hide") + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls the given on each node inside this tree added to the given . Use to customize this method's behavior (see ). Additional arguments for can be passed at the end of this method. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. + + # Calls "hide" to all nodes of the "enemies" group, at the end of the frame and in reverse tree order. + get_tree().call_group_flags( + SceneTree.GROUP_CALL_DEFERRED | SceneTree.GROUP_CALL_REVERSE, + "enemies", "hide") + + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls with the given to all nodes inside this tree added to the . Use to customize this method's behavior (see ). + + + + + Sets the given to on all nodes inside this tree added to the given . Nodes that do not have the are ignored. Use to customize this method's behavior (see ). + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Calls on each node inside this tree added to the given . You can pass arguments to by specifying them at the end of this method call. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. See also and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls on each node inside this tree added to the given . You can pass arguments to by specifying them at the end of this method call. Nodes that cannot call (either because the method doesn't exist or the arguments do not match) are ignored. See also and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + Note: In C#, must be in snake_case when referring to built-in Godot methods. Prefer using the names exposed in the MethodName class to avoid allocating a new on each call. + + + + + Calls with the given to all nodes inside this tree added to the . See also Godot notifications and and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + + + + + Sets the given to on all nodes inside this tree added to the given . Nodes that do not have the are ignored. See also and . + Note: This method acts immediately on all selected nodes at once, which may cause stuttering in some performance-intensive situations. + Note: In C#, must be in snake_case when referring to built-in Godot properties. Prefer using the names exposed in the PropertyName class to avoid allocating a new on each call. + + + + + Returns an containing all nodes inside this tree, that have been added to the given , in scene hierarchy order. + + + + + Returns the first found inside the tree, that has been added to the given , in scene hierarchy order. Returns if no match is found. See also . + + + + + Returns the number of nodes assigned to the given group. + + + + + Changes the running scene to the one at the given , after loading it into a and creating a new instance. + Returns on success, if the cannot be loaded into a , or if that scene cannot be instantiated. + Note: See for details on the order of operations. + + + + + Changes the running scene to a new instance of the given (which must be valid). + Returns on success, if the scene cannot be instantiated, or if the scene is invalid. + Note: Operations happen in the following order when is called: + 1. The current scene node is immediately removed from the tree. From that point, called on the current (outgoing) scene will return . will be , too, because the new scene is not available yet. + 2. At the end of the frame, the formerly current scene, already removed from the tree, will be deleted (freed from memory) and then the new scene will be instantiated and added to the tree. and will be back to working as usual. + This ensures that both scenes aren't running at the same time, while still freeing the previous scene in a safe way similar to . + + + + + Reloads the currently active scene, replacing with a new instance of its original . + Returns on success, if no is defined, if cannot be loaded into a , or if the scene cannot be instantiated. + + + + + If a current scene is loaded, calling this method will unload it. + + + + + Sets a custom with the given (controlling also the relative subpaths), or override the default one if is empty. + Note: No must be configured for the subpath containing , nested custom multiplayers are not allowed. I.e. if one is configured for "/root/Foo" setting one for "/root/Foo/Bar" will cause an error. + + + + + Searches for the configured for the given path, if one does not exist it searches the parent paths until one is found. If the path is empty, or none is found, the default one is returned. See . + + + + + Emitted any time the tree's hierarchy changes (nodes being moved, renamed, etc.). + + + + + Emitted when the of any node inside the tree is changed. Only emitted in the editor, to update the visibility of disabled nodes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node enters this tree. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node exits this tree. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node's is changed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the node's is called. Only emitted in the editor. + + + + + Emitted immediately before is called on every node in this tree. + + + + + Emitted immediately before is called on every node in this tree. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'auto_accept_quit' property. + + + + + Cached name for the 'quit_on_go_back' property. + + + + + Cached name for the 'debug_collisions_hint' property. + + + + + Cached name for the 'debug_paths_hint' property. + + + + + Cached name for the 'debug_navigation_hint' property. + + + + + Cached name for the 'paused' property. + + + + + Cached name for the 'edited_scene_root' property. + + + + + Cached name for the 'current_scene' property. + + + + + Cached name for the 'root' property. + + + + + Cached name for the 'multiplayer_poll' property. + + + + + Cached name for the 'physics_interpolation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_root' method. + + + + + Cached name for the 'has_group' method. + + + + + Cached name for the 'is_auto_accept_quit' method. + + + + + Cached name for the 'set_auto_accept_quit' method. + + + + + Cached name for the 'is_quit_on_go_back' method. + + + + + Cached name for the 'set_quit_on_go_back' method. + + + + + Cached name for the 'set_debug_collisions_hint' method. + + + + + Cached name for the 'is_debugging_collisions_hint' method. + + + + + Cached name for the 'set_debug_paths_hint' method. + + + + + Cached name for the 'is_debugging_paths_hint' method. + + + + + Cached name for the 'set_debug_navigation_hint' method. + + + + + Cached name for the 'is_debugging_navigation_hint' method. + + + + + Cached name for the 'set_edited_scene_root' method. + + + + + Cached name for the 'get_edited_scene_root' method. + + + + + Cached name for the 'set_pause' method. + + + + + Cached name for the 'is_paused' method. + + + + + Cached name for the 'create_timer' method. + + + + + Cached name for the 'create_tween' method. + + + + + Cached name for the 'get_processed_tweens' method. + + + + + Cached name for the 'get_node_count' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'quit' method. + + + + + Cached name for the 'set_physics_interpolation_enabled' method. + + + + + Cached name for the 'is_physics_interpolation_enabled' method. + + + + + Cached name for the 'queue_delete' method. + + + + + Cached name for the 'call_group_flags' method. + + + + + Cached name for the 'notify_group_flags' method. + + + + + Cached name for the 'set_group_flags' method. + + + + + Cached name for the 'call_group' method. + + + + + Cached name for the 'notify_group' method. + + + + + Cached name for the 'set_group' method. + + + + + Cached name for the 'get_nodes_in_group' method. + + + + + Cached name for the 'get_first_node_in_group' method. + + + + + Cached name for the 'get_node_count_in_group' method. + + + + + Cached name for the 'set_current_scene' method. + + + + + Cached name for the 'get_current_scene' method. + + + + + Cached name for the 'change_scene_to_file' method. + + + + + Cached name for the 'change_scene_to_packed' method. + + + + + Cached name for the 'reload_current_scene' method. + + + + + Cached name for the 'unload_current_scene' method. + + + + + Cached name for the 'set_multiplayer' method. + + + + + Cached name for the 'get_multiplayer' method. + + + + + Cached name for the 'set_multiplayer_poll_enabled' method. + + + + + Cached name for the 'is_multiplayer_poll_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tree_changed' signal. + + + + + Cached name for the 'tree_process_mode_changed' signal. + + + + + Cached name for the 'node_added' signal. + + + + + Cached name for the 'node_removed' signal. + + + + + Cached name for the 'node_renamed' signal. + + + + + Cached name for the 'node_configuration_warning_changed' signal. + + + + + Cached name for the 'process_frame' signal. + + + + + Cached name for the 'physics_frame' signal. + + + + + A one-shot timer managed by the scene tree, which emits on completion. See also . + As opposed to , it does not require the instantiation of a node. Commonly used to create a one-shot delay timer as in the following example: + + public async Task SomeFunction() + { + GD.Print("Timer started."); + await ToSignal(GetTree().CreateTimer(1.0f), SceneTreeTimer.SignalName.Timeout); + GD.Print("Timer ended."); + } + + The timer will be dereferenced after its time elapses. To preserve the timer, you can keep a reference to it. See . + Note: The timer is processed after all of the nodes in the current frame, i.e. node's method would be called before the timer (or if process_in_physics in has been set to ). + + + + + The time remaining (in seconds). + + + + + Emitted when the timer reaches 0. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'time_left' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_time_left' method. + + + + + Cached name for the 'get_time_left' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'timeout' signal. + + + + + A class stored as a resource. A script extends the functionality of all objects that instantiate it. + This is the base class for all scripts and should not be used directly. Trying to create a new script with this class will result in an error. + The new method of a script subclass creates a new instance. extends an existing object, if that object's class matches one of the script's base classes. + + + + + The script source code or an empty string if source code is not available. When set, does not reload the class implementation automatically. + + + + + Returns if the script can be instantiated. + + + + + Returns if is an instance of this script. + + + + + Returns if the script contains non-empty source code. + Note: If a script does not have source code, this does not mean that it is invalid or unusable. For example, a that was exported with binary tokenization has no source code, but still behaves as expected and could be instantiated. This can be checked with . + + + + + Reloads the script's class implementation. Returns an error code. + + + + + Returns the script directly inherited by this script. + + + + + Returns the script's base type. + + + + + Returns the class name associated with the script, if there is one. Returns an empty string otherwise. + To give the script a global name, you can use the class_name keyword in GDScript and the [GlobalClass] attribute in C#. + + using Godot; + + [GlobalClass] + public partial class MyNode : Node + { + } + + + + + + Returns if the script, or a base class, defines a signal with the given name. + + + + + Returns the list of properties in this . + + + + + Returns the list of methods in this . + + + + + Returns the list of user signals defined in this . + + + + + Returns a dictionary containing constant names and their values. + + + + + Returns the default value of the specified property. + + + + + Returns if the script is a tool script. A tool script can run in the editor. + + + + + Returns if the script is an abstract script. An abstract script does not have a constructor and cannot be instantiated. + + + + + Returns a mapping method names to their RPC configuration defined by this script. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source_code' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'can_instantiate' method. + + + + + Cached name for the 'instance_has' method. + + + + + Cached name for the 'has_source_code' method. + + + + + Cached name for the 'get_source_code' method. + + + + + Cached name for the 'set_source_code' method. + + + + + Cached name for the 'reload' method. + + + + + Cached name for the 'get_base_script' method. + + + + + Cached name for the 'get_instance_base_type' method. + + + + + Cached name for the 'get_global_name' method. + + + + + Cached name for the 'has_script_signal' method. + + + + + Cached name for the 'get_script_property_list' method. + + + + + Cached name for the 'get_script_method_list' method. + + + + + Cached name for the 'get_script_signal_list' method. + + + + + Cached name for the 'get_script_constant_map' method. + + + + + Cached name for the 'get_property_default_value' method. + + + + + Cached name for the 'is_tool' method. + + + + + Cached name for the 'is_abstract' method. + + + + + Cached name for the 'get_rpc_config' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Return the expected argument count for the given , or if it can't be determined (which will then fall back to the default behavior). + + + + + Returns if the script is an abstract script. An abstract script does not have a constructor and cannot be instantiated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_instantiate' method. + + + + + Cached name for the '_editor_can_reload_from_file' method. + + + + + Cached name for the '_get_base_script' method. + + + + + Cached name for the '_get_class_icon_path' method. + + + + + Cached name for the '_get_constants' method. + + + + + Cached name for the '_get_doc_class_name' method. + + + + + Cached name for the '_get_documentation' method. + + + + + Cached name for the '_get_global_name' method. + + + + + Cached name for the '_get_instance_base_type' method. + + + + + Cached name for the '_get_language' method. + + + + + Cached name for the '_get_member_line' method. + + + + + Cached name for the '_get_members' method. + + + + + Cached name for the '_get_method_info' method. + + + + + Cached name for the '_get_property_default_value' method. + + + + + Cached name for the '_get_rpc_config' method. + + + + + Cached name for the '_get_script_method_argument_count' method. + + + + + Cached name for the '_get_script_method_list' method. + + + + + Cached name for the '_get_script_property_list' method. + + + + + Cached name for the '_get_script_signal_list' method. + + + + + Cached name for the '_get_source_code' method. + + + + + Cached name for the '_has_method' method. + + + + + Cached name for the '_has_property_default_value' method. + + + + + Cached name for the '_has_script_signal' method. + + + + + Cached name for the '_has_source_code' method. + + + + + Cached name for the '_has_static_method' method. + + + + + Cached name for the '_inherits_script' method. + + + + + Cached name for the '_instance_has' method. + + + + + Cached name for the '_is_abstract' method. + + + + + Cached name for the '_is_placeholder_fallback_enabled' method. + + + + + Cached name for the '_is_tool' method. + + + + + Cached name for the '_is_valid' method. + + + + + Cached name for the '_reload' method. + + + + + Cached name for the '_set_source_code' method. + + + + + Cached name for the '_update_exports' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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). + + + + + 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. + + + + + The option is from user code which is not local and not in a derived class (e.g. Autoload Singletons). + + + + + The option is from other engine code, not covered by the other enum constants - e.g. built-in classes. + + + + + Returns the source associated with a given debug stack position. + + + + + Returns the line where the function is defined in the code, or -1 if the function is not present. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_global_constant' method. + + + + + Cached name for the '_add_named_global_constant' method. + + + + + Cached name for the '_auto_indent_code' method. + + + + + Cached name for the '_can_inherit_from_file' method. + + + + + Cached name for the '_can_make_function' method. + + + + + Cached name for the '_complete_code' method. + + + + + Cached name for the '_create_script' method. + + + + + Cached name for the '_debug_get_current_stack_info' method. + + + + + Cached name for the '_debug_get_error' method. + + + + + Cached name for the '_debug_get_globals' method. + + + + + Cached name for the '_debug_get_stack_level_count' method. + + + + + Cached name for the '_debug_get_stack_level_function' method. + + + + + Cached name for the '_debug_get_stack_level_line' method. + + + + + Cached name for the '_debug_get_stack_level_locals' method. + + + + + Cached name for the '_debug_get_stack_level_members' method. + + + + + Cached name for the '_debug_get_stack_level_source' method. + + + + + Cached name for the '_debug_parse_stack_level_expression' method. + + + + + Cached name for the '_find_function' method. + + + + + Cached name for the '_finish' method. + + + + + Cached name for the '_frame' method. + + + + + Cached name for the '_get_built_in_templates' method. + + + + + Cached name for the '_get_comment_delimiters' method. + + + + + Cached name for the '_get_doc_comment_delimiters' method. + + + + + Cached name for the '_get_extension' method. + + + + + Cached name for the '_get_global_class_name' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_public_annotations' method. + + + + + Cached name for the '_get_public_constants' method. + + + + + Cached name for the '_get_public_functions' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_get_reserved_words' method. + + + + + Cached name for the '_get_string_delimiters' method. + + + + + Cached name for the '_get_type' method. + + + + + Cached name for the '_handles_global_class_type' method. + + + + + Cached name for the '_has_named_classes' method. + + + + + Cached name for the '_init' method. + + + + + Cached name for the '_is_control_flow_keyword' method. + + + + + Cached name for the '_is_using_templates' method. + + + + + Cached name for the '_lookup_code' method. + + + + + Cached name for the '_make_function' method. + + + + + Cached name for the '_make_template' method. + + + + + Cached name for the '_open_in_external_editor' method. + + + + + Cached name for the '_overrides_external_editor' method. + + + + + Cached name for the '_preferred_file_name_casing' method. + + + + + Cached name for the '_profiling_set_save_native_calls' method. + + + + + Cached name for the '_profiling_start' method. + + + + + Cached name for the '_profiling_stop' method. + + + + + Cached name for the '_reload_all_scripts' method. + + + + + Cached name for the '_reload_scripts' method. + + + + + Cached name for the '_reload_tool_script' method. + + + + + Cached name for the '_remove_named_global_constant' method. + + + + + Cached name for the '_supports_builtin_mode' method. + + + + + Cached name for the '_supports_documentation' method. + + + + + Cached name for the '_thread_enter' method. + + + + + Cached name for the '_thread_exit' method. + + + + + Cached name for the '_validate' method. + + + + + Cached name for the '_validate_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for scrollbars, typically used to navigate through content that extends beyond the visible area of a control. Scrollbars are -based controls. + + + + + Overrides the step used when clicking increment and decrement buttons or when using arrow keys when the is focused. + + + + + Emitted when the scrollbar is being scrolled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'custom_step' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_custom_step' method. + + + + + Cached name for the 'get_custom_step' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'scrolling' signal. + + + + + 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 of the Control relative to the ScrollContainer. + + + + + Scrolling disabled, scrollbar will be invisible. + + + + + Scrolling enabled, scrollbar will be visible only if necessary, i.e. container's content is bigger than the container. + + + + + Scrolling enabled, scrollbar will be always visible. + + + + + Scrolling enabled, scrollbar will be hidden. + + + + + Combines and . The scrollbar is only visible if necessary, but the content size is adjusted as if it was always visible. It's useful for ensuring that content size stays the same regardless if the scrollbar is visible. + + + + + If , the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible. + + + + + If , focus is drawn when the ScrollContainer or one of its descendant nodes is focused. + + + + + The current horizontal scroll value. + Note: If you are setting this value in the function or earlier, it needs to be wrapped with , since scroll bar's is not initialized yet. + + func _ready(): + set_deferred("scroll_horizontal", 600) + + + + + + The current vertical scroll value. + Note: Setting it early needs to be deferred, just like in . + + func _ready(): + set_deferred("scroll_vertical", 600) + + + + + + Overrides the used when clicking the internal scroll bar's horizontal increment and decrement buttons or when using arrow keys when the is focused. + + + + + Overrides the used when clicking the internal scroll bar's vertical increment and decrement buttons or when using arrow keys when the is focused. + + + + + Controls whether horizontal scrollbar can be used and when it should be visible. See for options. + + + + + Controls whether vertical scrollbar can be used and when it should be visible. See for options. + + + + + Deadzone for touch scrolling. Lower deadzone makes the scrolling more sensitive. + + + + + Returns the horizontal scrollbar of this . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use . + + + + + Returns the vertical scrollbar of this . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable or hide a scrollbar, you can use . + + + + + Ensures the given is visible (must be a direct or indirect child of the ScrollContainer). Used by . + Note: This will not work on a node that was just added during the same frame. If you want to scroll to a newly added child, you must wait until the next frame using : + + add_child(child_node) + await get_tree().process_frame + ensure_control_visible(child_node) + + + + + + Emitted when scrolling starts when dragging the scrollable area with a touch event. This signal is not emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Emitted when scrolling stops when dragging the scrollable area with a touch event. This signal is not emitted when scrolling by dragging the scrollbar, scrolling with the mouse wheel or scrolling with keyboard/gamepad events. + Note: This signal is only emitted on Android or iOS, or on desktop/web platforms when ProjectSettings.input_devices/pointing/emulate_touch_from_mouse is enabled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'follow_focus' property. + + + + + Cached name for the 'draw_focus_border' property. + + + + + Cached name for the 'scroll_horizontal' property. + + + + + Cached name for the 'scroll_vertical' property. + + + + + Cached name for the 'scroll_horizontal_custom_step' property. + + + + + Cached name for the 'scroll_vertical_custom_step' property. + + + + + Cached name for the 'horizontal_scroll_mode' property. + + + + + Cached name for the 'vertical_scroll_mode' property. + + + + + Cached name for the 'scroll_deadzone' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_h_scroll' method. + + + + + Cached name for the 'get_h_scroll' method. + + + + + Cached name for the 'set_v_scroll' method. + + + + + Cached name for the 'get_v_scroll' method. + + + + + Cached name for the 'set_horizontal_custom_step' method. + + + + + Cached name for the 'get_horizontal_custom_step' method. + + + + + Cached name for the 'set_vertical_custom_step' method. + + + + + Cached name for the 'get_vertical_custom_step' method. + + + + + Cached name for the 'set_horizontal_scroll_mode' method. + + + + + Cached name for the 'get_horizontal_scroll_mode' method. + + + + + Cached name for the 'set_vertical_scroll_mode' method. + + + + + Cached name for the 'get_vertical_scroll_mode' method. + + + + + Cached name for the 'set_deadzone' method. + + + + + Cached name for the 'get_deadzone' method. + + + + + Cached name for the 'set_follow_focus' method. + + + + + Cached name for the 'is_following_focus' method. + + + + + Cached name for the 'get_h_scroll_bar' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'ensure_control_visible' method. + + + + + Cached name for the 'set_draw_focus_border' method. + + + + + Cached name for the 'get_draw_focus_border' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'scroll_started' signal. + + + + + Cached name for the 'scroll_ended' signal. + + + + + A 2D line segment shape, intended for use in physics. Usually used to provide a shape for a . + + + + + The segment's first point position. + + + + + The segment's second point position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'a' property. + + + + + Cached name for the 'b' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_a' method. + + + + + Cached name for the 'get_a' method. + + + + + Cached name for the 'set_b' method. + + + + + Cached name for the 'get_b' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A synchronization semaphore that can be used to synchronize multiple s. Initialized to zero on creation. For a binary version, see . + Warning: Semaphores must be used carefully to avoid deadlocks. + Warning: To guarantee that the operating system is able to perform proper cleanup (no crashes, no deadlocks), these conditions must be met: + - When a 's reference count reaches zero and it is therefore destroyed, no threads must be waiting on it. + - When a 's reference count reaches zero and it is therefore destroyed, it must not be waiting on any semaphore. + + + + + Waits for the , if its value is zero, blocks until non-zero. + + + + + Like , but won't block, so if the value is zero, fails immediately and returns . If non-zero, it returns to report success. + + + + + Lowers the , allowing one thread in, or more if is specified. + + + + + Lowers the , allowing one thread in, or more if is specified. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'wait' method. + + + + + Cached name for the 'try_wait' method. + + + + + Cached name for the 'post' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D ray shape, intended for use in physics. Usually used to provide a shape for a . When a collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a next to a character can allow it to instantly move up when touching stairs. + + + + + The ray's length. + + + + + If (default), the shape always separates and returns a normal along its own direction. + If , the shape can return the correct normal and separate in any direction, allowing sliding motion on slopes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'slide_on_slope' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_slide_on_slope' method. + + + + + Cached name for the 'get_slide_on_slope' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D ray shape, intended for use in physics. Usually used to provide a shape for a . When a collides with an object, it tries to separate itself from it by moving its endpoint to the collision point. For example, a next to a character can allow it to instantly move up when touching stairs. + + + + + The ray's length. + + + + + If (default), the shape always separates and returns a normal along its own direction. + If , the shape can return the correct normal and separate in any direction, allowing sliding motion on slopes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'length' property. + + + + + Cached name for the 'slide_on_slope' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_slide_on_slope' method. + + + + + Cached name for the 'get_slide_on_slope' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for separators, used for separating other controls. s are purely visual and normally drawn as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A custom shader program implemented in the Godot shading language, saved with the .gdshader extension. + This class is used by a 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. + + + + + Mode used to draw all 3D objects. + + + + + Mode used to draw all 2D objects. + + + + + Mode used to calculate particle information on a per-particle basis. Not used for drawing. + + + + + Mode used for drawing skies. Only works with shaders attached to objects. + + + + + Mode used for setting the color and density of volumetric fog effect. + + + + + Returns the shader's code as the user has written it, not the full generated code used internally. + + + + + Returns the shader mode for the shader. + + + + + Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the . + Note: must match the name of the uniform in the code exactly. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns the texture that is set as default for the specified parameter. + Note: must match the name of the uniform in the code exactly. + Note: If the sampler array is used use to access the specified texture. + + + + + Returns the list of shader uniforms that can be assigned to a , for use with and . The parameters returned are contained in dictionaries in a similar format to the ones returned by . + If argument is , parameter grouping hints are also included in the list. + + + + + Only available when running in the editor. Opens a popup that visualizes the generated shader code, including all variants and internal shader code. See also . + + + + + Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the . + Note: must match the name of the uniform in the code exactly. + Note: If the sampler array is used use to access the specified texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'code' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_code' method. + + + + + Cached name for the 'get_code' method. + + + + + Cached name for the 'set_default_texture_parameter' method. + + + + + Cached name for the 'get_default_texture_parameter' method. + + + + + Cached name for the 'get_shader_uniform_list' method. + + + + + Cached name for the 'inspect_native_shader_code' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Similar to how a node can be used to override the environment while a specific scene is loaded, 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 global_shader_parameter_* methods for more information. + Note: Only one can be used per scene. If there is more than one node in the scene tree, only the first node (in tree order) will be taken into account. + Note: All nodes are made part of a "shader_overrides_group" group when they are added to the scene tree. The currently active node also has a "shader_overrides_group_active" group added to it. You can use this to check which node is currently active. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A shader include file, saved with the .gdshaderinc extension. This class allows you to define a custom shader snippet that can be included in a by using the preprocessor directive #include, followed by the file path (e.g. #include "res://shader_lib.gdshaderinc"). The snippet doesn't have to be a valid shader on its own. + + + + + Returns the code of the shader include file. The returned text is what the user has written, not the full generated code used internally. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'code' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_code' method. + + + + + Cached name for the 'get_code' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object contains shader fragments from Godot's internal shaders. These can be used when access to internal uniform buffers and/or internal functions is required for instance when composing compositor effects or compute shaders. Only fragments for the current rendering device are loaded. + + + + + Returns a list of built-in include files that are currently registered. + + + + + Returns if an include file with this name exists. + + + + + Returns the code for the built-in shader fragment. You can also access this in your shader code through #include "filename". + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'list_built_in_include_files' method. + + + + + Cached name for the 'has_built_in_include_file' method. + + + + + Cached name for the 'get_built_in_include_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A material that uses a custom program to render visual items (canvas items, meshes, skies, fog), or to process particles. Compared to other materials, gives deeper control over the generated shader code. For more information, see the shaders documentation index below. + Multiple s can use the same shader and configure different values for the shader uniforms. + Note: For performance reasons, the signal is only emitted when the changes. Only in editor, it is also emitted for changes. + + + + + The program used to render this material. + + + + + Changes the value set for this material of a uniform in the shader. + Note: is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector). + Note: Changes to the shader uniform will be effective on all instances using this . To prevent this, use per-instance uniforms with or duplicate the resource using . Per-instance uniforms allow for better shader reuse and are therefore faster, so they should be preferred over duplicating the when possible. + + + + + Returns the current value set for this material of a uniform in the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'shader' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_shader' method. + + + + + Cached name for the 'get_shader' method. + + + + + Cached name for the 'set_shader_parameter' method. + + + + + Cached name for the 'get_shader_parameter' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all 2D shapes, intended for use in physics. + Performance: Primitive shapes, especially , are fast to check collisions against. is slower, and is the slowest. + + + + + The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved. + When set to 0, the default value from ProjectSettings.physics/2d/solver/default_contact_bias is used. + + + + + Returns if this shape is colliding with another. + This method needs the transformation matrix for this shape (), the shape to check collisions with (), and the transformation matrix of that shape (). + + + + + Returns whether this shape would collide with another, if a given movement was applied. + This method needs the transformation matrix for this shape (), the movement to test on this shape (), the shape to check collisions with (), the transformation matrix of that shape (), and the movement to test onto the other object (). + + + + + Returns a list of contact point pairs where this shape touches another. + If there are no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of . + A collision pair A, B can be used to calculate the collision normal with (B - A).normalized(), and the collision depth with (B - A).length(). This information is typically used to separate shapes, particularly in collision solvers. + This method needs the transformation matrix for this shape (), the shape to check collisions with (), and the transformation matrix of that shape (). + + + + + Returns a list of contact point pairs where this shape would touch another, if a given movement was applied. + If there would be no collisions, the returned list is empty. Otherwise, the returned list contains contact points arranged in pairs, with entries alternating between points on the boundary of this shape and points on the boundary of . + A collision pair A, B can be used to calculate the collision normal with (B - A).normalized(), and the collision depth with (B - A).length(). This information is typically used to separate shapes, particularly in collision solvers. + This method needs the transformation matrix for this shape (), the movement to test on this shape (), the shape to check collisions with (), the transformation matrix of that shape (), and the movement to test onto the other object (). + + + + + Draws a solid shape onto a with the API filled with the specified . The exact drawing method is specific for each shape and cannot be configured. + + + + + Returns a representing the shapes boundary. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'custom_solver_bias' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_custom_solver_bias' method. + + + + + Cached name for the 'get_custom_solver_bias' method. + + + + + Cached name for the 'collide' method. + + + + + Cached name for the 'collide_with_motion' method. + + + + + Cached name for the 'collide_and_get_contacts' method. + + + + + Cached name for the 'collide_with_motion_and_get_contacts' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for all 3D shapes, intended for use in physics. + Performance: Primitive shapes, especially , are fast to check collisions against. and are slower, and is the slowest. + + + + + The shape's custom solver bias. Defines how much bodies react to enforce contact separation when this shape is involved. + When set to 0, the default value from ProjectSettings.physics/3d/solver/default_contact_bias is used. + + + + + The collision margin for the shape. This is not used in Godot Physics. + Collision margins allow collision detection to be more efficient by adding an extra shell around shapes. Collision algorithms are more expensive when objects overlap by more than their margin, so a higher value for margins is better for performance, at the cost of accuracy around edges as it makes them less sharp. + + + + + Returns the used to draw the debug collision for this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'custom_solver_bias' property. + + + + + Cached name for the 'margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_custom_solver_bias' method. + + + + + Cached name for the 'get_custom_solver_bias' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'get_debug_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shape casting allows to detect collision objects by sweeping its along the cast direction determined by . This is similar to , but it allows for sweeping a region of space, rather than just a straight line. 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 set to Vector2(0, 0) and by calling within the same physics frame. This helps to overcome some limitations of when used as an instantaneous detection area, as collision information isn't immediately available to it. + Note: Shape casting is more computationally expensive than ray casting. + + + + + If , collisions will be reported. + + + + + The shape to be used for collision queries. + + + + + If , the parent node will be excluded from collision detection. + + + + + The shape's destination point, relative to this node's . + + + + + The collision margin for the shape. A larger margin helps detecting collisions more consistently, at the cost of precision. + + + + + The number of intersections can be limited with this parameter, to reduce the processing time. + + + + + The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + Returns the complete collision information from the collision sweep. The data returned is the same as in the method. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + Returns whether any object is intersecting with the shape's vector (considering the vector length). + + + + + The number of collisions detected at the point of impact. Use this to iterate over multiple collisions as provided by , , , and methods. + + + + + Updates the collision information for the shape immediately, without waiting for the next _physics_process call. Use this method, for example, when the shape or its parent has changed state. + Note: Setting to is not required for this to work. + + + + + Returns the collided of one of the multiple collisions at , or if no object is intersecting the shape (i.e. returns ). + + + + + Returns the of the collided object of one of the multiple collisions at . + + + + + Returns the shape ID of the colliding shape of one of the multiple collisions at , or 0 if no object is intersecting the shape (i.e. returns ). + + + + + Returns the collision point of one of the multiple collisions at where the shape intersects the colliding object. + Note: This point is in the global coordinate system. + + + + + Returns the normal of one of the multiple collisions at of the intersecting object. + + + + + Returns the fraction from this cast's origin to its of how far the shape can move without triggering a collision, as a value between 0.0 and 1.0. + + + + + Returns the fraction from this cast's origin to its of how far the shape must move to trigger a collision, as a value between 0.0 and 1.0. + In ideal conditions this would be the same as , however shape casting is calculated in discrete steps, so the precise point of collision can occur between two calculated positions. + + + + + Adds a collision exception so the shape does not report collisions with the specified . + + + + + Adds a collision exception so the shape does not report collisions with the specified node. + + + + + Removes a collision exception so the shape does report collisions with the specified . + + + + + Removes a collision exception so the shape does report collisions with the specified node. + + + + + Removes all collision exceptions for this shape. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'max_results' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_result' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_max_results' method. + + + + + Cached name for the 'get_max_results' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'force_shapecast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_closest_collision_safe_fraction' method. + + + + + Cached name for the 'get_closest_collision_unsafe_fraction' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'get_collision_result' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shape casting allows to detect collision objects by sweeping its along the cast direction determined by . This is similar to , but it allows for sweeping a region of space, rather than just a straight line. 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 set to Vector3(0, 0, 0) and by calling within the same physics frame. This helps to overcome some limitations of when used as an instantaneous detection area, as collision information isn't immediately available to it. + Note: Shape casting is more computationally expensive than ray casting. + + + + + If , collisions will be reported. + + + + + The shape to be used for collision queries. + + + + + If , the parent node will be excluded from collision detection. + + + + + The shape's destination point, relative to this node's . + + + + + The collision margin for the shape. A larger margin helps detecting collisions more consistently, at the cost of precision. + + + + + The number of intersections can be limited with this parameter, to reduce the processing time. + + + + + The shape's collision mask. Only objects in at least one collision layer enabled in the mask will be detected. See Collision layers and masks in the documentation for more information. + + + + + Returns the complete collision information from the collision sweep. The data returned is the same as in the method. + + + + + If , collisions with s will be reported. + + + + + If , collisions with s will be reported. + + + + + The custom color to use to draw the shape in the editor and at run-time if Visible Collision Shapes is enabled in the Debug menu. This color will be highlighted at run-time if the is colliding with something. + If set to Color(0.0, 0.0, 0.0) (by default), the color set in ProjectSettings.debug/shapes/collision/shape_color is used. + + + + + This method does nothing. + + + + + Returns whether any object is intersecting with the shape's vector (considering the vector length). + + + + + The number of collisions detected at the point of impact. Use this to iterate over multiple collisions as provided by , , , and methods. + + + + + Updates the collision information for the shape immediately, without waiting for the next _physics_process call. Use this method, for example, when the shape or its parent has changed state. + Note: Setting to is not required for this to work. + + + + + Returns the collided of one of the multiple collisions at , or if no object is intersecting the shape (i.e. returns ). + + + + + Returns the of the collided object of one of the multiple collisions at . + + + + + Returns the shape ID of the colliding shape of one of the multiple collisions at , or 0 if no object is intersecting the shape (i.e. returns ). + + + + + Returns the collision point of one of the multiple collisions at where the shape intersects the colliding object. + Note: This point is in the global coordinate system. + + + + + Returns the normal of one of the multiple collisions at of the intersecting object. + + + + + Returns the fraction from this cast's origin to its of how far the shape can move without triggering a collision, as a value between 0.0 and 1.0. + + + + + Returns the fraction from this cast's origin to its of how far the shape must move to trigger a collision, as a value between 0.0 and 1.0. + In ideal conditions this would be the same as , however shape casting is calculated in discrete steps, so the precise point of collision can occur between two calculated positions. + + + + + Adds a collision exception so the shape does not report collisions with the specified . + + + + + Adds a collision exception so the shape does not report collisions with the specified node. + + + + + Removes a collision exception so the shape does report collisions with the specified . + + + + + Removes a collision exception so the shape does report collisions with the specified node. + + + + + Removes all collision exceptions for this shape. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'exclude_parent' property. + + + + + Cached name for the 'target_position' property. + + + + + Cached name for the 'margin' property. + + + + + Cached name for the 'max_results' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'collision_result' property. + + + + + Cached name for the 'collide_with_areas' property. + + + + + Cached name for the 'collide_with_bodies' property. + + + + + Cached name for the 'debug_shape_custom_color' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'resource_changed' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_target_position' method. + + + + + Cached name for the 'get_target_position' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'set_max_results' method. + + + + + Cached name for the 'get_max_results' method. + + + + + Cached name for the 'is_colliding' method. + + + + + Cached name for the 'get_collision_count' method. + + + + + Cached name for the 'force_shapecast_update' method. + + + + + Cached name for the 'get_collider' method. + + + + + Cached name for the 'get_collider_rid' method. + + + + + Cached name for the 'get_collider_shape' method. + + + + + Cached name for the 'get_collision_point' method. + + + + + Cached name for the 'get_collision_normal' method. + + + + + Cached name for the 'get_closest_collision_safe_fraction' method. + + + + + Cached name for the 'get_closest_collision_unsafe_fraction' method. + + + + + Cached name for the 'add_exception_rid' method. + + + + + Cached name for the 'add_exception' method. + + + + + Cached name for the 'remove_exception_rid' method. + + + + + Cached name for the 'remove_exception' method. + + + + + Cached name for the 'clear_exceptions' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_exclude_parent_body' method. + + + + + Cached name for the 'get_exclude_parent_body' method. + + + + + Cached name for the 'set_collide_with_areas' method. + + + + + Cached name for the 'is_collide_with_areas_enabled' method. + + + + + Cached name for the 'set_collide_with_bodies' method. + + + + + Cached name for the 'is_collide_with_bodies_enabled' method. + + + + + Cached name for the 'get_collision_result' method. + + + + + Cached name for the 'set_debug_shape_custom_color' method. + + + + + Cached name for the 'get_debug_shape_custom_color' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Shortcuts are commonly used for interacting with a element from an (also known as hotkeys). + One shortcut can contain multiple s, allowing the possibility of triggering one action with multiple different inputs. + + + + + The shortcut's array. + Generally the used is an , though it can be any , including an . + + + + + Returns whether contains an which is valid. + + + + + Returns whether any in equals . This uses to compare events. + + + + + Returns the shortcut's first valid as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'events' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_events' method. + + + + + Cached name for the 'get_events' method. + + + + + Cached name for the 'has_valid_event' method. + + + + + Cached name for the 'matches_event' method. + + + + + Cached name for the 'get_as_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + parents a hierarchy of nodes. It holds a reference to each '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 should be created. The inverse kinematics be applied by increasing and creating the desired number of modifications. + + + + + Returns the number of nodes in the node hierarchy parented by Skeleton2D. + + + + + Returns a from the node hierarchy parented by Skeleton2D. The object to return is identified by the parameter . Bones are indexed by descending the node hierarchy from top to bottom, adding the children of each branch before moving to the next sibling. + + + + + Returns the of a Skeleton2D instance. + + + + + Sets the attached to this skeleton. + + + + + Returns the attached to this skeleton, if one exists. + + + + + Executes all the modifications on the , if the Skeleton2D has one assigned. + + + + + Sets the local pose transform, , for the bone at . + is the interpolation strength that will be used when applying the pose, and determines if the applied pose will remain. + Note: The pose transform needs to be a local transform relative to the node at ! + + + + + Returns the local pose override transform for . + + + + + Emitted when the setup attached to this skeletons changes. This is primarily used internally within the skeleton. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_bone_count' method. + + + + + Cached name for the 'get_bone' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_modification_stack' method. + + + + + Cached name for the 'get_modification_stack' method. + + + + + Cached name for the 'execute_modifications' method. + + + + + Cached name for the 'set_bone_local_pose_override' method. + + + + + Cached name for the 'get_bone_local_pose_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'bone_setup_changed' signal. + + + + + provides an interface for managing a hierarchy of bones, including pose, rest and animation (see ). 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. + + + + + Notification received when this skeleton's pose needs to be updated. In that case, this is called only once per frame in a deferred process. + + + + + Set a flag to process modification during physics frames (see ). + + + + + Set a flag to process modification during process frames (see ). + + + + + Multiplies the 3D position track animation. + Note: Unless this value is 1.0, the key value in animation will not match the actual position value. + + + + + If , forces the bones in their default rest pose, regardless of their values. In the editor, this also prevents the bones from being edited. + + + + + Sets the processing timing for the Modifier. + + + + + If you follow the recommended workflow and explicitly have as a child of , you can control whether it is affected by raycasting without running , by its . + However, for old (deprecated) configurations, has an internal virtual for compatibility. This property controls the internal virtual 's . + + + + + Adds a new bone with the given name. Returns the new bone's index, or -1 if this method fails. + Note: Bone names should be unique, non empty, and cannot include the : and / characters. + + + + + Returns the bone index that matches as its name. Returns -1 if no bone with this name exists. + + + + + Returns the name of the bone at index . + + + + + Sets the bone name, , for the bone at . + + + + + Returns bone metadata for with . + + + + + Returns a list of all metadata keys for . + + + + + Returns whether there exists any bone metadata for with key . + + + + + Sets bone metadata for , will set the meta to . + + + + + Returns all bone names concatenated with commas (,) as a single . + It is useful to set it as a hint for the enum property. + + + + + Returns the bone index which is the parent of the bone at . If -1, then bone has no parent. + Note: The parent bone returned will always be less than . + + + + + Sets the bone index as the parent of the bone at . If -1, then bone has no parent. + Note: must be less than . + + + + + Returns the number of bones in the skeleton. + + + + + Returns the number of times the bone hierarchy has changed within this skeleton, including renames. + The Skeleton version is not serialized: only use within a single instance of Skeleton3D. + Use for invalidating caches in IK solvers and other nodes which process bones. + + + + + Unparents the bone at and sets its rest position to that of its parent prior to being reset. + + + + + Returns an array containing the bone indexes of all the child node of the passed in bone, . + + + + + Returns an array with all of the bones that are parentless. Another way to look at this is that it returns the indexes of all the bones that are not dependent or modified by other bones in the Skeleton. + + + + + Returns the rest transform for a bone . + + + + + Sets the rest transform for bone . + + + + + Returns the global rest transform for . + + + + + Binds the given Skin to the Skeleton. + + + + + Returns all bones in the skeleton to their rest poses. + + + + + Clear all the bones in this skeleton. + + + + + Returns the pose transform of the specified bone. + Note: This is the pose you set to the skeleton in the process, the final pose can get overridden by modifiers in the deferred process, if you want to access the final pose, use . + + + + + Sets the pose transform, , for the bone at . + + + + + Sets the pose position of the bone at to . is a describing a position local to the node. + + + + + Sets the pose rotation of the bone at to . is a describing a rotation in the bone's local coordinate space with respect to the rotation of any parent bones. + + + + + Sets the pose scale of the bone at to . + + + + + Returns the pose position of the bone at . The returned is in the local coordinate space of the node. + + + + + Returns the pose rotation of the bone at . The returned is local to the bone with respect to the rotation of any parent bones. + + + + + Returns the pose scale of the bone at . + + + + + Sets the bone pose to rest for . + + + + + Sets all bone poses to rests. + + + + + Returns whether the bone pose for the bone at is enabled. + + + + + Disables the pose for the bone at if , enables the bone pose if . + + + + + Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone. + Note: This is the global pose you set to the skeleton in the process, the final global pose can get overridden by modifiers in the deferred process, if you want to access the final global pose, use . + + + + + Sets the global pose transform, , for the bone at . + Note: If other bone poses have been changed, this method executes a dirty poses recalculation and will cause performance to deteriorate. If you know that multiple global poses will be applied, consider using with precalculation. + + + + + Force updates the bone transforms/poses for all bones in the skeleton. + + + + + Force updates the bone transform for the bone at and all of its children. + + + + + Removes the global pose override on all bones in the skeleton. + + + + + Sets the global pose transform, , for the bone at . + is the interpolation strength that will be used when applying the pose, and determines if the applied pose will remain. + Note: The pose transform needs to be a global pose! To convert a world transform from a to a global bone pose, multiply the Transform3D.affine_inverse of the node's by the desired world transform. + + + + + Returns the global pose override transform for . + + + + + Returns the overall transform of the specified bone, with respect to the skeleton, but without any global pose overrides. Being relative to the skeleton frame, this is not the actual "global" transform of the bone. + + + + + Tells the nodes in the Skeleton to stop simulating. + + + + + Tells the nodes in the Skeleton to start simulating and reacting to the physics world. + Optionally, a list of bone names can be passed-in, allowing only the passed-in bones to be simulated. + + + + + Adds a collision exception to the physical bone. + Works just like the node. + + + + + Removes a collision exception to the physical bone. + Works just like the node. + + + + + Emitted when the rest is updated. + + + + + Emitted when the pose is updated. + Note: During the update process, this signal is not fired, so modification by is not detected. + + + + + Emitted when the final pose has been calculated will be applied to the skin in the update process. + This means that all processing is complete. In order to detect the completion of the processing of each , use . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the bone at boneIdx is toggled with . Use to check the new value. + + + + + Emitted when the value of changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'motion_scale' property. + + + + + Cached name for the 'show_rest_only' property. + + + + + Cached name for the 'modifier_callback_mode_process' property. + + + + + Cached name for the 'animate_physical_bones' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_bone' method. + + + + + Cached name for the 'find_bone' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_meta' method. + + + + + Cached name for the 'get_bone_meta_list' method. + + + + + Cached name for the 'has_bone_meta' method. + + + + + Cached name for the 'set_bone_meta' method. + + + + + Cached name for the 'get_concatenated_bone_names' method. + + + + + Cached name for the 'get_bone_parent' method. + + + + + Cached name for the 'set_bone_parent' method. + + + + + Cached name for the 'get_bone_count' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'unparent_bone_and_rest' method. + + + + + Cached name for the 'get_bone_children' method. + + + + + Cached name for the 'get_parentless_bones' method. + + + + + Cached name for the 'get_bone_rest' method. + + + + + Cached name for the 'set_bone_rest' method. + + + + + Cached name for the 'get_bone_global_rest' method. + + + + + Cached name for the 'create_skin_from_rest_transforms' method. + + + + + Cached name for the 'register_skin' method. + + + + + Cached name for the 'localize_rests' method. + + + + + Cached name for the 'clear_bones' method. + + + + + Cached name for the 'get_bone_pose' method. + + + + + Cached name for the 'set_bone_pose' method. + + + + + Cached name for the 'set_bone_pose_position' method. + + + + + Cached name for the 'set_bone_pose_rotation' method. + + + + + Cached name for the 'set_bone_pose_scale' method. + + + + + Cached name for the 'get_bone_pose_position' method. + + + + + Cached name for the 'get_bone_pose_rotation' method. + + + + + Cached name for the 'get_bone_pose_scale' method. + + + + + Cached name for the 'reset_bone_pose' method. + + + + + Cached name for the 'reset_bone_poses' method. + + + + + Cached name for the 'is_bone_enabled' method. + + + + + Cached name for the 'set_bone_enabled' method. + + + + + Cached name for the 'get_bone_global_pose' method. + + + + + Cached name for the 'set_bone_global_pose' method. + + + + + Cached name for the 'force_update_all_bone_transforms' method. + + + + + Cached name for the 'force_update_bone_child_transform' method. + + + + + Cached name for the 'set_motion_scale' method. + + + + + Cached name for the 'get_motion_scale' method. + + + + + Cached name for the 'set_show_rest_only' method. + + + + + Cached name for the 'is_show_rest_only' method. + + + + + Cached name for the 'set_modifier_callback_mode_process' method. + + + + + Cached name for the 'get_modifier_callback_mode_process' method. + + + + + Cached name for the 'clear_bones_global_pose_override' method. + + + + + Cached name for the 'set_bone_global_pose_override' method. + + + + + Cached name for the 'get_bone_global_pose_override' method. + + + + + Cached name for the 'get_bone_global_pose_no_override' method. + + + + + Cached name for the 'set_animate_physical_bones' method. + + + + + Cached name for the 'get_animate_physical_bones' method. + + + + + Cached name for the 'physical_bones_stop_simulation' method. + + + + + Cached name for the 'physical_bones_start_simulation' method. + + + + + Cached name for the 'physical_bones_add_collision_exception' method. + + + + + Cached name for the 'physical_bones_remove_collision_exception' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'rest_updated' signal. + + + + + Cached name for the 'pose_updated' signal. + + + + + Cached name for the 'skeleton_updated' signal. + + + + + Cached name for the 'bone_enabled_changed' signal. + + + + + Cached name for the 'bone_list_changed' signal. + + + + + Cached name for the 'show_rest_only_changed' signal. + + + + + SkeletonIK3D is used to rotate all bones of a 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 bones_global_pose_override property for all affected bones in the chain. If fully applied, this overwrites any bone transform from s or bone custom poses set by users. The applied amount can be controlled with the property. + + # Apply IK effect automatically on every new frame (not the current) + skeleton_ik_node.start() + + # Apply IK effect only on the current frame + skeleton_ik_node.start(true) + + # Stop IK effect and reset bones_global_pose_override on Skeleton + skeleton_ik_node.stop() + + # Apply full IK effect + skeleton_ik_node.set_influence(1.0) + + # Apply half IK effect + skeleton_ik_node.set_influence(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_influence(0.0) + + + + + + The name of the current root bone, the first bone in the IK chain. + + + + + The name of the current tip bone, the last bone in the IK chain placed at the transform (or if defined). + + + + + First target of the IK chain where the tip bone is placed and, if is , how the tip bone is rotated. If a path is available the nodes transform is used instead and this property is ignored. + + + + + If overwrites the rotation of the tip bone with the rotation of the (or if defined). + + + + + If , instructs the IK solver to consider the secondary magnet target (pole target) when calculating the bone chain. Use the magnet position (pole target) to control the bending of the IK chain. + + + + + Secondary target position (first is property or ) for the IK chain. Use magnet position (pole target) to control the bending of the IK chain. Only works if the bone chain has more than 2 bones. The middle chain bone position will be linearly interpolated with the magnet position. + + + + + Target node for the IK chain. If available, the node's current is used instead of the property. + + + + + The minimum distance between bone and goal target. If the distance is below this value, the IK solver stops further iterations. + + + + + Number of iteration loops used by the IK solver to produce more accurate (and elegant) bone chain results. + + + + + Interpolation value for how much the IK results are applied to the current skeleton bone chain. A value of 1.0 will overwrite all skeleton bone transforms completely while a value of 0.0 will visually disable the SkeletonIK. + + + + + Returns the parent node that was present when SkeletonIK entered the scene tree. Returns if the parent node was not a node when SkeletonIK3D entered the scene tree. + + + + + Returns if SkeletonIK is applying IK effects on continues frames to the bones. Returns if SkeletonIK is stopped or was used with the one_time parameter set to . + + + + + Starts applying IK effects on each frame to the bones but will only take effect starting on the next frame. If is , this will take effect immediately but also reset on the next frame. + + + + + Stops applying IK effects on each frame to the bones and also calls to remove existing overrides on all bones. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_bone' property. + + + + + Cached name for the 'tip_bone' property. + + + + + Cached name for the 'target' property. + + + + + Cached name for the 'override_tip_basis' property. + + + + + Cached name for the 'use_magnet' property. + + + + + Cached name for the 'magnet' property. + + + + + Cached name for the 'target_node' property. + + + + + Cached name for the 'min_distance' property. + + + + + Cached name for the 'max_iterations' property. + + + + + Cached name for the 'interpolation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_bone' method. + + + + + Cached name for the 'get_root_bone' method. + + + + + Cached name for the 'set_tip_bone' method. + + + + + Cached name for the 'get_tip_bone' method. + + + + + Cached name for the 'set_target_transform' method. + + + + + Cached name for the 'get_target_transform' method. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_override_tip_basis' method. + + + + + Cached name for the 'is_override_tip_basis' method. + + + + + Cached name for the 'set_use_magnet' method. + + + + + Cached name for the 'is_using_magnet' method. + + + + + Cached name for the 'set_magnet_position' method. + + + + + Cached name for the 'get_magnet_position' method. + + + + + Cached name for the 'get_parent_skeleton' method. + + + + + Cached name for the 'is_running' method. + + + + + Cached name for the 'set_min_distance' method. + + + + + Cached name for the 'get_min_distance' method. + + + + + Cached name for the 'set_max_iterations' method. + + + + + Cached name for the 'get_max_iterations' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_interpolation' method. + + + + + Cached name for the 'get_interpolation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource provides an interface that can be expanded so code that operates on nodes in a 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. + + + + + If , the modification's function will be called by the . + + + + + The execution mode for the modification. This tells the modification stack when to execute the modification. Some modifications have settings that are only available in certain execution modes. + + + + + Used for drawing editor-only modification gizmos. This function will only be called in the Godot editor and can be overridden to draw custom gizmos. + Note: You will need to use the Skeleton2D from and it's draw functions, as the resource cannot draw on its own. + + + + + Executes the given modification. This is where the modification performs whatever function it is designed to do. + + + + + Called when the modification is setup. This is where the modification performs initialization. + + + + + Returns the that this modification is bound to. Through the modification stack, you can access the Skeleton2D the modification is operating on. + + + + + Manually allows you to set the setup state of the modification. This function should only rarely be used, as the the modification is bound to should handle setting the modification up. + + + + + Returns whether this modification has been successfully setup or not. + + + + + Takes an angle and clamps it so it is within the passed-in and range. will inversely clamp the angle, clamping it to the range outside of the given bounds. + + + + + Sets whether this modification will call in the Godot editor to draw modification-specific gizmos. + + + + + Returns whether this modification will call in the Godot editor to draw modification-specific gizmos. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'execution_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw_editor_gizmo' method. + + + + + Cached name for the '_execute' method. + + + + + Cached name for the '_setup_modification' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'get_enabled' method. + + + + + Cached name for the 'get_modification_stack' method. + + + + + Cached name for the 'set_is_setup' method. + + + + + Cached name for the 'get_is_setup' method. + + + + + Cached name for the 'set_execution_mode' method. + + + + + Cached name for the 'get_execution_mode' method. + + + + + Cached name for the 'clamp_angle' method. + + + + + Cached name for the 'set_editor_draw_gizmo' method. + + + + + Cached name for the 'get_editor_draw_gizmo' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This uses an algorithm called Cyclic Coordinate Descent Inverse Kinematics, or CCDIK, to manipulate a chain of bones in a so it reaches a defined target. + CCDIK works by rotating a set of bones, typically called a "bone chain", on a single axis. Each bone is rotated to face the target from the tip (by default), which over a chain of bones allow it to rotate properly to reach the target. Because the bones only rotate on a single axis, CCDIK can look more robotic than other IK solvers. + Note: The CCDIK modifier has ccdik_joints, which are the data objects that hold the data for each joint in the CCDIK chain. This is different from a bone! CCDIK joints hold the data needed for each bone in the bone chain used by CCDIK. + CCDIK also fully supports angle constraints, allowing for more control over how a solution is met. + + + + + The NodePath to the node that is the target for the CCDIK modification. This node is what the CCDIK chain will attempt to rotate the bone chain to. + + + + + The end position of the CCDIK chain. Typically, this should be a child of a node attached to the final in the CCDIK chain. + + + + + The number of CCDIK joints in the CCDIK modification. + + + + + Sets the node assigned to the CCDIK joint at . + + + + + Returns the node assigned to the CCDIK joint at . + + + + + Sets the bone index, , of the CCDIK joint at . When possible, this will also update the bone2d_node of the CCDIK joint based on data provided by the linked skeleton. + + + + + Returns the index of the node assigned to the CCDIK joint at . + + + + + Sets whether the joint at is set to rotate from the joint, , or to rotate from the tip, . + + + + + Returns whether the joint at is set to rotate from the joint, , or to rotate from the tip, . The default is to rotate from the tip. + + + + + Determines whether angle constraints on the CCDIK joint at are enabled. When , constraints will be enabled and taken into account when solving. + + + + + Returns whether angle constraints on the CCDIK joint at are enabled. + + + + + Sets the minimum angle constraint for the joint at . + + + + + Returns the minimum angle constraint for the joint at . + + + + + Sets the maximum angle constraint for the joint at . + + + + + Returns the maximum angle constraint for the joint at . + + + + + Sets whether the CCDIK joint at uses an inverted joint constraint. + An inverted joint constraint only constraints the CCDIK joint to the angles outside of the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values. + + + + + Returns whether the CCDIK joint at uses an inverted joint constraint. See for details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'tip_nodepath' property. + + + + + Cached name for the 'ccdik_data_chain_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_tip_node' method. + + + + + Cached name for the 'get_tip_node' method. + + + + + Cached name for the 'set_ccdik_data_chain_length' method. + + + + + Cached name for the 'get_ccdik_data_chain_length' method. + + + + + Cached name for the 'set_ccdik_joint_bone2d_node' method. + + + + + Cached name for the 'get_ccdik_joint_bone2d_node' method. + + + + + Cached name for the 'set_ccdik_joint_bone_index' method. + + + + + Cached name for the 'get_ccdik_joint_bone_index' method. + + + + + Cached name for the 'set_ccdik_joint_rotate_from_joint' method. + + + + + Cached name for the 'get_ccdik_joint_rotate_from_joint' method. + + + + + Cached name for the 'set_ccdik_joint_enable_constraint' method. + + + + + Cached name for the 'get_ccdik_joint_enable_constraint' method. + + + + + Cached name for the 'set_ccdik_joint_constraint_angle_min' method. + + + + + Cached name for the 'get_ccdik_joint_constraint_angle_min' method. + + + + + Cached name for the 'set_ccdik_joint_constraint_angle_max' method. + + + + + Cached name for the 'get_ccdik_joint_constraint_angle_max' method. + + + + + Cached name for the 'set_ccdik_joint_constraint_angle_invert' method. + + + + + Cached name for the 'get_ccdik_joint_constraint_angle_invert' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This 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 . FABRIK also supports angle constraints, which are fully taken into account when solving. + Note: The FABRIK modifier has fabrik_joints, which are the data objects that hold the data for each joint in the FABRIK chain. This is different from nodes! FABRIK joints hold the data needed for each 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. + + + + + The NodePath to the node that is the target for the FABRIK modification. This node is what the FABRIK chain will attempt to rotate the bone chain to. + + + + + The number of FABRIK joints in the FABRIK modification. + + + + + Sets the node assigned to the FABRIK joint at . + + + + + Returns the node assigned to the FABRIK joint at . + + + + + Sets the bone index, , of the FABRIK joint at . When possible, this will also update the bone2d_node of the FABRIK joint based on data provided by the linked skeleton. + + + + + Returns the index of the node assigned to the FABRIK joint at . + + + + + Sets the magnet position vector for the joint at . + + + + + Returns the magnet position vector for the joint at . + + + + + Sets whether the joint at will use the target node's rotation rather than letting FABRIK rotate the node. + Note: This option only works for the tip/final joint in the chain. For all other nodes, this option will be ignored. + + + + + Returns whether the joint is using the target's rotation rather than allowing FABRIK to rotate the joint. This option only applies to the tip/final joint in the chain. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'fabrik_data_chain_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_fabrik_data_chain_length' method. + + + + + Cached name for the 'get_fabrik_data_chain_length' method. + + + + + Cached name for the 'set_fabrik_joint_bone2d_node' method. + + + + + Cached name for the 'get_fabrik_joint_bone2d_node' method. + + + + + Cached name for the 'set_fabrik_joint_bone_index' method. + + + + + Cached name for the 'get_fabrik_joint_bone_index' method. + + + + + Cached name for the 'set_fabrik_joint_magnet_position' method. + + + + + Cached name for the 'get_fabrik_joint_magnet_position' method. + + + + + Cached name for the 'set_fabrik_joint_use_target_rotation' method. + + + + + Cached name for the 'get_fabrik_joint_use_target_rotation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This modification moves a series of bones, typically called a bone chain, towards a target. What makes this modification special is that it calculates the velocity and acceleration for each bone in the bone chain, and runs a very light physics-like calculation using the inputted values. This allows the bones to overshoot the target and "jiggle" around. It can be configured to act more like a spring, or sway around like cloth might. + This modification is useful for adding additional motion to things like hair, the edges of clothing, and more. It has several settings to that allow control over how the joint moves when the target moves. + Note: The Jiggle modifier has jiggle_joints, which are the data objects that hold the data for each joint in the Jiggle chain. This is different from than nodes! Jiggle joints hold the data needed for each in the bone chain used by the Jiggle modification. + + + + + The NodePath to the node that is the target for the Jiggle modification. This node is what the Jiggle chain will attempt to rotate the bone chain to. + + + + + The amount of Jiggle joints in the Jiggle modification. + + + + + The default amount of stiffness assigned to the Jiggle joints, if they are not overridden. Higher values act more like springs, quickly moving into the correct position. + + + + + The default amount of mass assigned to the Jiggle joints, if they are not overridden. Higher values lead to faster movements and more overshooting. + + + + + The default amount of damping applied to the Jiggle joints, if they are not overridden. Higher values lead to more of the calculated velocity being applied. + + + + + Whether the gravity vector, , should be applied to the Jiggle joints, assuming they are not overriding the default settings. + + + + + The default amount of gravity applied to the Jiggle joints, if they are not overridden. + + + + + If , the Jiggle modifier will take colliders into account, keeping them from entering into these collision objects. + + + + + Returns whether the jiggle modifier is taking physics colliders into account when solving. + + + + + Sets the collision mask that the Jiggle modifier will use when reacting to colliders, if the Jiggle modifier is set to take colliders into account. + + + + + Returns the collision mask used by the Jiggle modifier when collisions are enabled. + + + + + Sets the node assigned to the Jiggle joint at . + + + + + Returns the node assigned to the Jiggle joint at . + + + + + Sets the bone index, , of the Jiggle joint at . When possible, this will also update the bone2d_node of the Jiggle joint based on data provided by the linked skeleton. + + + + + Returns the index of the node assigned to the Jiggle joint at . + + + + + Sets whether the Jiggle joint at should override the default Jiggle joint settings. Setting this to will make the joint use its own settings rather than the default ones attached to the modification. + + + + + Returns a boolean that indicates whether the joint at is overriding the default Jiggle joint data defined in the modification. + + + + + Sets the of stiffness of the Jiggle joint at . + + + + + Returns the stiffness of the Jiggle joint at . + + + + + Sets the of mass of the Jiggle joint at . + + + + + Returns the amount of mass of the jiggle joint at . + + + + + Sets the amount of damping of the Jiggle joint at . + + + + + Returns the amount of damping of the Jiggle joint at . + + + + + Sets whether the Jiggle joint at should use gravity. + + + + + Returns a boolean that indicates whether the joint at is using gravity or not. + + + + + Sets the gravity vector of the Jiggle joint at . + + + + + Returns a representing the amount of gravity the Jiggle joint at is influenced by. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'jiggle_data_chain_length' property. + + + + + Cached name for the 'stiffness' property. + + + + + Cached name for the 'mass' property. + + + + + Cached name for the 'damping' property. + + + + + Cached name for the 'use_gravity' property. + + + + + Cached name for the 'gravity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_jiggle_data_chain_length' method. + + + + + Cached name for the 'get_jiggle_data_chain_length' method. + + + + + Cached name for the 'set_stiffness' method. + + + + + Cached name for the 'get_stiffness' method. + + + + + Cached name for the 'set_mass' method. + + + + + Cached name for the 'get_mass' method. + + + + + Cached name for the 'set_damping' method. + + + + + Cached name for the 'get_damping' method. + + + + + Cached name for the 'set_use_gravity' method. + + + + + Cached name for the 'get_use_gravity' method. + + + + + Cached name for the 'set_gravity' method. + + + + + Cached name for the 'get_gravity' method. + + + + + Cached name for the 'set_use_colliders' method. + + + + + Cached name for the 'get_use_colliders' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_jiggle_joint_bone2d_node' method. + + + + + Cached name for the 'get_jiggle_joint_bone2d_node' method. + + + + + Cached name for the 'set_jiggle_joint_bone_index' method. + + + + + Cached name for the 'get_jiggle_joint_bone_index' method. + + + + + Cached name for the 'set_jiggle_joint_override' method. + + + + + Cached name for the 'get_jiggle_joint_override' method. + + + + + Cached name for the 'set_jiggle_joint_stiffness' method. + + + + + Cached name for the 'get_jiggle_joint_stiffness' method. + + + + + Cached name for the 'set_jiggle_joint_mass' method. + + + + + Cached name for the 'get_jiggle_joint_mass' method. + + + + + Cached name for the 'set_jiggle_joint_damping' method. + + + + + Cached name for the 'get_jiggle_joint_damping' method. + + + + + Cached name for the 'set_jiggle_joint_use_gravity' method. + + + + + Cached name for the 'get_jiggle_joint_use_gravity' method. + + + + + Cached name for the 'set_jiggle_joint_gravity' method. + + + + + Cached name for the 'get_jiggle_joint_gravity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This 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. + + + + + The index of the node that the modification will operate on. + + + + + The node that the modification will operate on. + + + + + The NodePath to the node that is the target for the LookAt modification. This node is what the modification will rotate the to. + + + + + Sets the amount of additional rotation that is to be applied after executing the modification. This allows for offsetting the results by the inputted rotation amount. + + + + + Returns the amount of additional rotation that is applied after the LookAt modification executes. + + + + + Sets whether this modification will use constraints or not. When , constraints will be applied when solving the LookAt modification. + + + + + Returns if the LookAt modification is using constraints. + + + + + Sets the constraint's minimum allowed angle. + + + + + Returns the constraint's minimum allowed angle. + + + + + Sets the constraint's maximum allowed angle. + + + + + Returns the constraint's maximum allowed angle. + + + + + When , the modification will use an inverted joint constraint. + An inverted joint constraint only constraints the to the angles outside of the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values. + + + + + Returns whether the constraints to this modification are inverted or not. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bone_index' property. + + + + + Cached name for the 'bone2d_node' property. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bone2d_node' method. + + + + + Cached name for the 'get_bone2d_node' method. + + + + + Cached name for the 'set_bone_index' method. + + + + + Cached name for the 'get_bone_index' method. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_additional_rotation' method. + + + + + Cached name for the 'get_additional_rotation' method. + + + + + Cached name for the 'set_enable_constraint' method. + + + + + Cached name for the 'get_enable_constraint' method. + + + + + Cached name for the 'set_constraint_angle_min' method. + + + + + Cached name for the 'get_constraint_angle_min' method. + + + + + Cached name for the 'set_constraint_angle_max' method. + + + + + Cached name for the 'get_constraint_angle_max' method. + + + + + Cached name for the 'set_constraint_angle_invert' method. + + + + + Cached name for the 'get_constraint_angle_invert' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This modification takes the transforms of nodes and applies them to nodes. This allows the nodes to react to physics thanks to the linked nodes. + + + + + The number of nodes linked in this modification. + + + + + Sets the node at . + Note: This is just the index used for this modification, not the bone index used in the . + + + + + Returns the node at . + + + + + Empties the list of nodes and populates it with all nodes that are children of the . + + + + + Tell the nodes to start simulating and interacting with the physics world. + Optionally, an array of bone names can be passed to this function, and that will cause only nodes with those names to start simulating. + + + + + Tell the nodes to stop simulating and interacting with the physics world. + Optionally, an array of bone names can be passed to this function, and that will cause only nodes with those names to stop simulating. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'physical_bone_chain_length' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_physical_bone_chain_length' method. + + + + + Cached name for the 'get_physical_bone_chain_length' method. + + + + + Cached name for the 'set_physical_bone_node' method. + + + + + Cached name for the 'get_physical_bone_node' method. + + + + + Cached name for the 'fetch_physical_bones' method. + + + + + Cached name for the 'start_simulation' method. + + + + + Cached name for the 'stop_simulation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This holds a reference to a , allowing you to use multiple modification stacks on a single . + Note: The modifications in the held will only be executed if their execution mode matches the execution mode of the SkeletonModification2DStackHolder. + + + + + Sets the that this modification is holding. This modification stack will then be executed when this modification is executed. + + + + + Returns the that this modification is holding. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_held_modification_stack' method. + + + + + Cached name for the 'get_held_modification_stack' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This 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 , but gives similar, natural looking results. + + + + + The NodePath to the node that is the target for the TwoBoneIK modification. This node is what the modification will use when bending the nodes. + + + + + The minimum distance the target can be at. If the target is closer than this distance, the modification will solve as if it's at this minimum distance. When set to 0, the modification will solve without distance constraints. + + + + + The maximum distance the target can be at. If the target is farther than this distance, the modification will solve as if it's at this maximum distance. When set to 0, the modification will solve without distance constraints. + + + + + If , the bones in the modification will bend outward as opposed to inwards when contracting. If , the bones will bend inwards when contracting. + + + + + Sets the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Returns the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Sets the index of the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Returns the index of the node that is being used as the first bone in the TwoBoneIK modification. + + + + + Sets the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Returns the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Sets the index of the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Returns the index of the node that is being used as the second bone in the TwoBoneIK modification. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'target_nodepath' property. + + + + + Cached name for the 'target_minimum_distance' property. + + + + + Cached name for the 'target_maximum_distance' property. + + + + + Cached name for the 'flip_bend_direction' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_target_node' method. + + + + + Cached name for the 'get_target_node' method. + + + + + Cached name for the 'set_target_minimum_distance' method. + + + + + Cached name for the 'get_target_minimum_distance' method. + + + + + Cached name for the 'set_target_maximum_distance' method. + + + + + Cached name for the 'get_target_maximum_distance' method. + + + + + Cached name for the 'set_flip_bend_direction' method. + + + + + Cached name for the 'get_flip_bend_direction' method. + + + + + Cached name for the 'set_joint_one_bone2d_node' method. + + + + + Cached name for the 'get_joint_one_bone2d_node' method. + + + + + Cached name for the 'set_joint_one_bone_idx' method. + + + + + Cached name for the 'get_joint_one_bone_idx' method. + + + + + Cached name for the 'set_joint_two_bone2d_node' method. + + + + + Cached name for the 'get_joint_two_bone2d_node' method. + + + + + Cached name for the 'set_joint_two_bone_idx' method. + + + + + Cached name for the 'get_joint_two_bone_idx' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This resource is used by the Skeleton and holds a stack of 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 before the arms on a humanoid skeleton. + This resource also controls how strongly all of the modifications are applied to the . + + + + + If , the modification's in the stack will be called. This is handled automatically through the node. + + + + + The interpolation strength of the modifications in stack. A value of 0 will make it where the modifications are not applied, a strength of 0.5 will be half applied, and a strength of 1 will allow the modifications to be fully applied and override the poses. + + + + + The number of modifications in the stack. + + + + + Sets up the modification stack so it can execute. This function should be called by and shouldn't be manually called unless you know what you are doing. + + + + + Executes all of the s in the stack that use the same execution mode as the passed-in , starting from index 0 to . + Note: The order of the modifications can matter depending on the modifications. For example, modifications on a spine should operate before modifications on the arms in order to get proper results. + + + + + Enables all s in the stack. + + + + + Returns the at the passed-in index, . + + + + + Adds the passed-in to the stack. + + + + + Deletes the at the index position , if it exists. + + + + + Sets the modification at to the passed-in modification, . + + + + + Returns a boolean that indicates whether the modification stack is setup and can execute. + + + + + Returns the node that the SkeletonModificationStack2D is bound to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'strength' property. + + + + + Cached name for the 'modification_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'setup' method. + + + + + Cached name for the 'execute' method. + + + + + Cached name for the 'enable_all_modifications' method. + + + + + Cached name for the 'get_modification' method. + + + + + Cached name for the 'add_modification' method. + + + + + Cached name for the 'delete_modification' method. + + + + + Cached name for the 'set_modification' method. + + + + + Cached name for the 'set_modification_count' method. + + + + + Cached name for the 'get_modification_count' method. + + + + + Cached name for the 'get_is_setup' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'get_enabled' method. + + + + + Cached name for the 'set_strength' method. + + + + + Cached name for the 'get_strength' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + retrieves a target by having a parent. + If there is , modification always performs after playback process of the . + This node should be used to implement custom IK solvers, constraints, or skeleton physics. + + + + + If , the will be processing. + + + + + Sets the influence of the modification. + Note: This value is used by to blend, so the should always apply only 100% of the result without interpolation. + + + + + Override this virtual method to implement a custom skeleton modifier. You should do things like get the 's current pose and apply the pose here. + must not apply to bone poses because the automatically applies influence to all bone poses set by the modifier. + + + + + Get parent node if found. + + + + + Notifies when the modification have been finished. + Note: If you want to get the modified bone pose by the modifier, you must use or at the moment this signal is fired. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'active' property. + + + + + Cached name for the 'influence' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_process_modification' method. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'set_active' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'set_influence' method. + + + + + Cached name for the 'get_influence' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'modification_processed' signal. + + + + + This resource is used in EditorScenePostImport. Some parameters are referring to bones in , , , and some other nodes are rewritten based on the parameters of . + Note: These parameters need to be set only when creating a custom profile. In , they are defined internally as read-only values. + + + + + Direction to the average coordinates of bone children. + + + + + Direction to the coordinates of specified bone child. + + + + + Direction is not calculated. + + + + + A bone name that will be used as the root bone in . This should be the bone of the parent of hips that exists at the world origin. + + + + + A bone name which will use model's height as the coefficient for normalization. For example, defines it as Hips. + + + + + The amount of groups of bones in retargeting section's editor. For example, has 4 groups. + This property exists to separate the bone list into several sections in the editor. + + + + + The amount of bones in retargeting section's editor. For example, has 56 bones. + The size of elements in updates when changing this property in it's assigned . + + + + + Returns the name of the group at that will be the drawing group in the editor. + + + + + Sets the name of the group at that will be the drawing group in the editor. + + + + + Returns the texture of the group at that will be the drawing group background image in the editor. + + + + + Sets the texture of the group at that will be the drawing group background image in the editor. + + + + + Returns the bone index that matches as its name. + + + + + Returns the name of the bone at that will be the key name in the . + In the retargeting process, the returned bone name is the bone name of the target skeleton. + + + + + Sets the name of the bone at that will be the key name in the . + In the retargeting process, the setting bone name is the bone name of the target skeleton. + + + + + Returns the name of the bone which is the parent to the bone at . The result is empty if the bone has no parent. + + + + + Sets the bone with name as the parent of the bone at . If an empty string is passed, then the bone has no parent. + + + + + Returns the tail direction of the bone at . + + + + + Sets the tail direction of the bone at . + Note: This only specifies the method of calculation. The actual coordinates required should be stored in an external skeleton, so the calculation itself needs to be done externally. + + + + + Returns the name of the bone which is the tail of the bone at . + + + + + Sets the bone with name as the tail of the bone at . + + + + + Returns the reference pose transform for bone . + + + + + Sets the reference pose transform for bone . + + + + + Returns the offset of the bone at that will be the button position in the editor. + This is the offset with origin at the top left corner of the square. + + + + + Sets the offset of the bone at that will be the button position in the editor. + This is the offset with origin at the top left corner of the square. + + + + + Returns the group of the bone at . + + + + + Sets the group of the bone at . + + + + + Returns whether the bone at is required for retargeting. + This value is used by the bone map editor. If this method returns , and no bone is assigned, the handle color will be red on the bone map editor. + + + + + Sets the required status for bone to . + + + + + This signal is emitted when change the value in profile. This is used to update key name in the and to redraw the editor. + Note: This signal is not connected directly to editor to simplify the reference, instead it is passed on to editor through the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'root_bone' property. + + + + + Cached name for the 'scale_base_bone' property. + + + + + Cached name for the 'group_size' property. + + + + + Cached name for the 'bone_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_root_bone' method. + + + + + Cached name for the 'get_root_bone' method. + + + + + Cached name for the 'set_scale_base_bone' method. + + + + + Cached name for the 'get_scale_base_bone' method. + + + + + Cached name for the 'set_group_size' method. + + + + + Cached name for the 'get_group_size' method. + + + + + Cached name for the 'get_group_name' method. + + + + + Cached name for the 'set_group_name' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'set_bone_size' method. + + + + + Cached name for the 'get_bone_size' method. + + + + + Cached name for the 'find_bone' method. + + + + + Cached name for the 'get_bone_name' method. + + + + + Cached name for the 'set_bone_name' method. + + + + + Cached name for the 'get_bone_parent' method. + + + + + Cached name for the 'set_bone_parent' method. + + + + + Cached name for the 'get_tail_direction' method. + + + + + Cached name for the 'set_tail_direction' method. + + + + + Cached name for the 'get_bone_tail' method. + + + + + Cached name for the 'set_bone_tail' method. + + + + + Cached name for the 'get_reference_pose' method. + + + + + Cached name for the 'set_reference_pose' method. + + + + + Cached name for the 'get_handle_offset' method. + + + + + Cached name for the 'set_handle_offset' method. + + + + + Cached name for the 'get_group' method. + + + + + Cached name for the 'set_group' method. + + + + + Cached name for the 'is_required' method. + + + + + Cached name for the 'set_required' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'profile_updated' signal. + + + + + A as a preset that is optimized for the human form. This exists for standardization, so all parameters are read-only. + A humanoid skeleton profile contains 54 bones divided in 4 groups: "Body", "Face", "LeftHand", and "RightHand". It is structured as follows: + + Root + └─ Hips + ├─ LeftUpperLeg + │ └─ LeftLowerLeg + │ └─ LeftFoot + │ └─ LeftToes + ├─ RightUpperLeg + │ └─ RightLowerLeg + │ └─ RightFoot + │ └─ RightToes + └─ Spine + └─ Chest + └─ UpperChest + ├─ Neck + │ └─ Head + │ ├─ Jaw + │ ├─ LeftEye + │ └─ RightEye + ├─ LeftShoulder + │ └─ LeftUpperArm + │ └─ LeftLowerArm + │ └─ LeftHand + │ ├─ LeftThumbMetacarpal + │ │ └─ LeftThumbProximal + │ ├─ LeftIndexProximal + │ │ └─ LeftIndexIntermediate + │ │ └─ LeftIndexDistal + │ ├─ LeftMiddleProximal + │ │ └─ LeftMiddleIntermediate + │ │ └─ LeftMiddleDistal + │ ├─ LeftRingProximal + │ │ └─ LeftRingIntermediate + │ │ └─ LeftRingDistal + │ └─ LeftLittleProximal + │ └─ LeftLittleIntermediate + │ └─ LeftLittleDistal + └─ RightShoulder + └─ RightUpperArm + └─ RightLowerArm + └─ RightHand + ├─ RightThumbMetacarpal + │ └─ RightThumbProximal + ├─ RightIndexProximal + │ └─ RightIndexIntermediate + │ └─ RightIndexDistal + ├─ RightMiddleProximal + │ └─ RightMiddleIntermediate + │ └─ RightMiddleDistal + ├─ RightRingProximal + │ └─ RightRingIntermediate + │ └─ RightRingDistal + └─ RightLittleProximal + └─ RightLittleIntermediate + └─ RightLittleDistal + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bind_count' method. + + + + + Cached name for the 'get_bind_count' method. + + + + + Cached name for the 'add_bind' method. + + + + + Cached name for the 'add_named_bind' method. + + + + + Cached name for the 'set_bind_pose' method. + + + + + Cached name for the 'get_bind_pose' method. + + + + + Cached name for the 'set_bind_name' method. + + + + + Cached name for the 'get_bind_name' method. + + + + + Cached name for the 'set_bind_bone' method. + + + + + Cached name for the 'get_bind_bone' method. + + + + + Cached name for the 'clear_binds' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An internal object containing a mapping from a used within the context of a particular to refer to the skeleton's in the RenderingServer. + See also and . + Note that despite the similar naming, the skeleton RID used in the does not have a direct one-to-one correspondence to a node. + In particular, a node with no children may be unknown to the . + On the other hand, a with multiple nodes which each have different objects may have multiple SkinReference instances (and hence, multiple skeleton s). + + + + + Returns the owned by this SkinReference, as returned by . + + + + + Returns the connected to this SkinReference. In the case of with no assigned, this will reference an internal default owned by that . + Note that a single may have more than one in the case that it is shared by meshes across multiple nodes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_skeleton' method. + + + + + Cached name for the 'get_skin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The class uses a to render a 3D environment's background and the light it emits by updating the reflection/radiance cubemaps. + + + + + Radiance texture size is 32×32 pixels. + + + + + Radiance texture size is 64×64 pixels. + + + + + Radiance texture size is 128×128 pixels. + + + + + Radiance texture size is 256×256 pixels. + + + + + Radiance texture size is 512×512 pixels. + + + + + Radiance texture size is 1024×1024 pixels. + + + + + Radiance texture size is 2048×2048 pixels. + + + + + Represents the size of the enum. + + + + + Automatically selects the appropriate process mode based on your sky shader. If your shader uses TIME or POSITION, this will use . If your shader uses any of the LIGHT_* variables or any custom uniforms, this uses . Otherwise, this defaults to . + + + + + Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than 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 ProjectSettings.rendering/reflections/sky_reflections/ggx_samples. + + + + + Uses the same high quality importance sampling to process the radiance map as , but updates over several frames. The number of frames is determined by ProjectSettings.rendering/reflections/sky_reflections/roughness_layers. Use this when you need highest quality radiance maps, but have a sky that updates slowly. + + + + + 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 ProjectSettings.rendering/reflections/sky_reflections/fast_filter_high_quality. + Note: The fast filtering algorithm is limited to 256×256 cubemaps, so must be set to . Otherwise, a warning is printed and the overridden radiance size is ignored. + + + + + used to draw the background. Can be , , , or even a if you want to use your own custom shader. + + + + + Sets the method for generating the radiance map from the sky. The radiance map is a cubemap with increasingly blurry versions of the sky corresponding to different levels of roughness. Radiance maps can be expensive to calculate. See for options. + + + + + The 's radiance map size. The higher the radiance map size, the more detailed the lighting from the will be. + See constants for values. + Note: Some hardware will have trouble with higher radiance sizes, especially and above. Only use such high values on high-end hardware. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'sky_material' property. + + + + + Cached name for the 'process_mode' property. + + + + + Cached name for the 'radiance_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radiance_size' method. + + + + + Cached name for the 'get_radiance_size' method. + + + + + Cached name for the 'set_process_mode' method. + + + + + Cached name for the 'get_process_mode' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstract base class for sliders, used to adjust a value by moving a grabber along a horizontal or vertical axis. Sliders are -based controls. + + + + + If , the slider can be interacted with. If , the value can be changed only by code. + + + + + If , the value can be changed using the mouse wheel. + + + + + Number of ticks displayed on the slider, including border ticks. Ticks are uniformly-distributed value markers. + + + + + If , the slider will display ticks for minimum and maximum values. + + + + + Emitted when the grabber starts being dragged. This is emitted before the corresponding signal. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the grabber stops being dragged. If valueChanged is , is different from the value when the dragging was started. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'scrollable' property. + + + + + Cached name for the 'tick_count' property. + + + + + Cached name for the 'ticks_on_borders' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_ticks' method. + + + + + Cached name for the 'get_ticks' method. + + + + + Cached name for the 'get_ticks_on_borders' method. + + + + + Cached name for the 'set_ticks_on_borders' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_scrollable' method. + + + + + Cached name for the 'is_scrollable' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'drag_started' signal. + + + + + Cached name for the 'drag_ended' signal. + + + + + 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 representing a piston base, while Body B could be a representing the piston head, moving up and down. + + + + + Constant for accessing linear_limit/upper_distance. The maximum difference between the pivot points on their X axis before damping happens. + + + + + Constant for accessing linear_limit/lower_distance. The minimum difference between the pivot points on their X axis before damping happens. + + + + + Constant for accessing linear_limit/softness. A factor applied to the movement across the slider axis once the limits get surpassed. The lower, the slower the movement. + + + + + Constant for accessing linear_limit/restitution. The amount of restitution once the limits are surpassed. The lower, the more velocity-energy gets lost. + + + + + Constant for accessing linear_limit/damping. The amount of damping once the slider limits are surpassed. + + + + + Constant for accessing linear_motion/softness. 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. + + + + + Constant for accessing linear_motion/restitution. The amount of restitution inside the slider limits. + + + + + Constant for accessing linear_motion/damping. The amount of damping inside the slider limits. + + + + + Constant for accessing linear_ortho/softness. A factor applied to the movement across axes orthogonal to the slider. + + + + + Constant for accessing linear_motion/restitution. The amount of restitution when movement is across axes orthogonal to the slider. + + + + + Constant for accessing linear_motion/damping. The amount of damping when movement is across axes orthogonal to the slider. + + + + + Constant for accessing angular_limit/upper_angle. The upper limit of rotation in the slider. + + + + + Constant for accessing angular_limit/lower_angle. The lower limit of rotation in the slider. + + + + + Constant for accessing angular_limit/softness. A factor applied to the all rotation once the limit is surpassed. + + + + + Constant for accessing angular_limit/restitution. The amount of restitution of the rotation when the limit is surpassed. + + + + + Constant for accessing angular_limit/damping. The amount of damping of the rotation when the limit is surpassed. + + + + + Constant for accessing angular_motion/softness. A factor applied to the all rotation in the limits. + + + + + Constant for accessing angular_motion/restitution. The amount of restitution of the rotation in the limits. + + + + + Constant for accessing angular_motion/damping. The amount of damping of the rotation in the limits. + + + + + Constant for accessing angular_ortho/softness. A factor applied to the all rotation across axes orthogonal to the slider. + + + + + Constant for accessing angular_ortho/restitution. The amount of restitution of the rotation across axes orthogonal to the slider. + + + + + Constant for accessing angular_ortho/damping. The amount of damping of the rotation across axes orthogonal to the slider. + + + + + Represents the size of the enum. + + + + + Assigns to the given parameter (see constants). + + + + + Returns the value of the given parameter (see constants). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_param' method. + + + + + Cached name for the 'get_param' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A deformable 3D physics mesh. Used to create elastic or deformable objects such as cloth, rubber, or other flexible materials. + Additionally, is subject to wind forces defined in (see , , and ). + Note: There are many known bugs in . Therefore, it's not recommended to use them for things that can affect gameplay (such as trampolines). + + + + + When is set to , remove from the physics simulation to stop all physics interactions with this . + Automatically re-added to the physics simulation when the is processed again. + + + + + When is set to , do not affect the physics simulation. + + + + + The physics layers this SoftBody3D is in. Collision objects can exist in one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + The physics layers this SoftBody3D scans. Collision objects can scan one or more of 32 different layers. See also . + Note: Object A can detect a contact with object B only if object B is in any of the layers that object A scans. See Collision layers and masks in the documentation for more information. + + + + + to a this SoftBody3D should avoid clipping. + + + + + Increasing this value will improve the resulting simulation, but can affect performance. Use with care. + + + + + The SoftBody3D's mass. + + + + + Higher values will result in a stiffer body, while lower values will increase the body's ability to bend. The value can be between 0.0 and 1.0 (inclusive). + + + + + The pressure coefficient of this soft body. Simulate pressure build-up from inside this body. Higher values increase the strength of this effect. + + + + + The body's damping coefficient. Higher values will slow down the body more noticeably when forces are applied. + + + + + The body's drag coefficient. Higher values increase this body's air resistance. + Note: This value is currently unused by Godot's default physics implementation. + + + + + If , the will respond to s. + + + + + Defines the behavior in physics when is set to . See for more details about the different modes. + + + + + Returns the internal used by the for this body. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 32. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 32. + + + + + Returns an array of nodes that were added as collision exceptions for this body. + + + + + Adds a body to the list of bodies that this body can't collide with. + + + + + Removes a body from the list of bodies that this body can't collide with. + + + + + Returns local translation of a vertex in the surface array. + + + + + Sets the pinned state of a surface vertex. When set to , the optional can define a the pinned vertex will be attached to. + + + + + Returns if vertex is set to pinned. + + + + + Sets the pinned state of a surface vertex. When set to , the optional can define a the pinned vertex will be attached to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_layer' property. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'parent_collision_ignore' property. + + + + + Cached name for the 'simulation_precision' property. + + + + + Cached name for the 'total_mass' property. + + + + + Cached name for the 'linear_stiffness' property. + + + + + Cached name for the 'pressure_coefficient' property. + + + + + Cached name for the 'damping_coefficient' property. + + + + + Cached name for the 'drag_coefficient' property. + + + + + Cached name for the 'ray_pickable' property. + + + + + Cached name for the 'disable_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_physics_rid' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_collision_layer' method. + + + + + Cached name for the 'get_collision_layer' method. + + + + + Cached name for the 'set_collision_mask_value' method. + + + + + Cached name for the 'get_collision_mask_value' method. + + + + + Cached name for the 'set_collision_layer_value' method. + + + + + Cached name for the 'get_collision_layer_value' method. + + + + + Cached name for the 'set_parent_collision_ignore' method. + + + + + Cached name for the 'get_parent_collision_ignore' method. + + + + + Cached name for the 'set_disable_mode' method. + + + + + Cached name for the 'get_disable_mode' method. + + + + + Cached name for the 'get_collision_exceptions' method. + + + + + Cached name for the 'add_collision_exception_with' method. + + + + + Cached name for the 'remove_collision_exception_with' method. + + + + + Cached name for the 'set_simulation_precision' method. + + + + + Cached name for the 'get_simulation_precision' method. + + + + + Cached name for the 'set_total_mass' method. + + + + + Cached name for the 'get_total_mass' method. + + + + + Cached name for the 'set_linear_stiffness' method. + + + + + Cached name for the 'get_linear_stiffness' method. + + + + + Cached name for the 'set_pressure_coefficient' method. + + + + + Cached name for the 'get_pressure_coefficient' method. + + + + + Cached name for the 'set_damping_coefficient' method. + + + + + Cached name for the 'get_damping_coefficient' method. + + + + + Cached name for the 'set_drag_coefficient' method. + + + + + Cached name for the 'get_drag_coefficient' method. + + + + + Cached name for the 'get_point_transform' method. + + + + + Cached name for the 'set_point_pinned' method. + + + + + Cached name for the 'is_point_pinned' method. + + + + + Cached name for the 'set_ray_pickable' method. + + + + + Cached name for the 'is_ray_pickable' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Class representing a spherical . + + + + + Radius of sphere. + + + + + Full height of the sphere. + + + + + Number of radial segments on the sphere. + + + + + Number of segments along the height of the sphere. + + + + + If , a hemisphere is created rather than a full sphere. + Note: To get a regular hemisphere, the height and radius of the sphere must be equal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'height' property. + + + + + Cached name for the 'radial_segments' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'is_hemisphere' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_height' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'set_radial_segments' method. + + + + + Cached name for the 'get_radial_segments' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_is_hemisphere' method. + + + + + Cached name for the 'get_is_hemisphere' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + stores a sphere shape that can be used by the engine's occlusion culling system. + See 's documentation for instructions on setting up occlusion culling. + + + + + The sphere's radius in 3D units. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D sphere shape, intended for use in physics. Usually used to provide a shape for a . + Performance: is fast to check collisions against. It is faster than , , and . + + + + + The sphere's radius. The shape's diameter is double the radius. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a numerical input text field. It allows entering integers and floating-point numbers. + Example: Create a , disable its context menu and set its text alignment to right. + + var spinBox = new SpinBox(); + AddChild(spinBox); + var lineEdit = spinBox.GetLineEdit(); + lineEdit.ContextMenuEnabled = false; + spinBox.AlignHorizontal = LineEdit.HorizontalAlignEnum.Right; + + See class for more options over the . + Note: With the 's context menu disabled, you can right-click the bottom half of the spinbox to set the value to its minimum, while right-clicking the top half sets the value to its maximum. + Note: relies on an underlying node. To theme a 's background, add theme items for and customize them. The has the SpinBoxInnerLineEdit theme variation, so that you can give it a distinct appearance from regular s. + Note: If you want to implement drag and drop for the underlying , you can use on the node returned by . + + + + + Changes the alignment of the underlying . + + + + + If , the will be editable. Otherwise, it will be read only. + + + + + Sets the value of the for this when the text is changed instead of submitted. See and . + + + + + Adds the specified prefix string before the numerical value of the . + + + + + Adds the specified suffix string after the numerical value of the . + + + + + If not 0, will always be rounded to a multiple of when interacting with the arrow buttons of the . + + + + + If , the will select the whole text when the gains focus. Clicking the up and down arrows won't trigger this behavior. + + + + + Applies the current value of this . + + + + + Returns the instance from this . You can use it to access properties and methods of . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'update_on_text_changed' property. + + + + + Cached name for the 'prefix' property. + + + + + Cached name for the 'suffix' property. + + + + + Cached name for the 'custom_arrow_step' property. + + + + + Cached name for the 'select_all_on_focus' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_suffix' method. + + + + + Cached name for the 'get_suffix' method. + + + + + Cached name for the 'set_prefix' method. + + + + + Cached name for the 'get_prefix' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'set_custom_arrow_step' method. + + + + + Cached name for the 'get_custom_arrow_step' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_update_on_text_changed' method. + + + + + Cached name for the 'get_update_on_text_changed' method. + + + + + Cached name for the 'set_select_all_on_focus' method. + + + + + Cached name for the 'is_select_all_on_focus' method. + + + + + Cached name for the 'apply' method. + + + + + Cached name for the 'get_line_edit' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The split dragger icon is always visible when autohide is , otherwise visible only when the cursor hovers it. + The size of the grabber icon determines the minimum separation. + The dragger icon is automatically hidden if the length of the grabber icon is longer than the split bar. + + + + + The split dragger icon is never visible regardless of the value of autohide. + The size of the grabber icon determines the minimum separation. + + + + + The split dragger icon is not visible, and the split bar is collapsed to zero thickness. + + + + + The initial offset of the splitting between the two s, with 0 being at the end of the first . + + + + + If , the dragger will be disabled and the children will be sized as if the was 0. + + + + + Enables or disables split dragging. + + + + + Determines the dragger's visibility. See for details. This property does not determine whether dragging is enabled or not. Use for that. + + + + + If , the will arrange its children vertically, rather than horizontally. + Can't be changed when using and . + + + + + Reduces the size of the drag area and split bar split_bar_background at the beginning of the container. + + + + + Reduces the size of the drag area and split bar split_bar_background at the end of the container. + + + + + Shifts the drag area in the axis of the container to prevent the drag area from overlapping the or other selectable of a child node. + + + + + Highlights the drag area so you can see where it is during development. The drag area is gold if is , and red if . + + + + + Clamps the value to not go outside the currently possible minimal and maximum values. + + + + + Returns the drag area . For example, you can move a pre-configured button into the drag area so that it rides along with the split bar. Try setting the anchors to center prior to the reparent() call. + + $BarnacleButton.reparent($SplitContainer.get_drag_area_control()) + + Note: The drag area is drawn over the 's children, so draw objects called from the and children added to the will also appear over the 's children. Try setting of custom children to to prevent blocking the mouse from dragging if desired. + Warning: This is a required internal node, removing and freeing it may cause a crash. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the dragger is dragged by user. + + + + + Emitted when the user starts dragging. + + + + + Emitted when the user ends dragging. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'split_offset' property. + + + + + Cached name for the 'collapsed' property. + + + + + Cached name for the 'dragging_enabled' property. + + + + + Cached name for the 'dragger_visibility' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached name for the 'drag_area_margin_begin' property. + + + + + Cached name for the 'drag_area_margin_end' property. + + + + + Cached name for the 'drag_area_offset' property. + + + + + Cached name for the 'drag_area_highlight_in_editor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_split_offset' method. + + + + + Cached name for the 'get_split_offset' method. + + + + + Cached name for the 'clamp_split_offset' method. + + + + + Cached name for the 'set_collapsed' method. + + + + + Cached name for the 'is_collapsed' method. + + + + + Cached name for the 'set_dragger_visibility' method. + + + + + Cached name for the 'get_dragger_visibility' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached name for the 'set_dragging_enabled' method. + + + + + Cached name for the 'is_dragging_enabled' method. + + + + + Cached name for the 'set_drag_area_margin_begin' method. + + + + + Cached name for the 'get_drag_area_margin_begin' method. + + + + + Cached name for the 'set_drag_area_margin_end' method. + + + + + Cached name for the 'get_drag_area_margin_end' method. + + + + + Cached name for the 'set_drag_area_offset' method. + + + + + Cached name for the 'get_drag_area_offset' method. + + + + + Cached name for the 'set_drag_area_highlight_in_editor' method. + + + + + Cached name for the 'is_drag_area_highlight_in_editor_enabled' method. + + + + + Cached name for the 'get_drag_area_control' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'dragged' signal. + + + + + Cached name for the 'drag_started' signal. + + + + + Cached name for the 'drag_ended' signal. + + + + + A Spotlight is a type of 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 . + Note: When using the Mobile rendering method, only 8 spot lights can be displayed on each mesh resource. Attempting to display more than 8 spot lights on a single mesh resource will result in spot lights flickering in and out as the camera moves. When using the Compatibility rendering method, only 8 spot lights can be displayed on each mesh resource by default, but this can be increased by adjusting ProjectSettings.rendering/limits/opengl/max_lights_per_object. + Note: When using the Mobile or Compatibility rendering methods, spot lights will only correctly affect meshes whose visibility AABB intersects with the light's AABB. If using a shader to deform the mesh in a way that makes it go outside its AABB, must be increased on the mesh. Otherwise, the light may not be visible on the mesh. + + + + + The maximal range that can be reached by the spotlight. Note that the effectively lit area may appear to be smaller depending on the in use. No matter the in use, the light will never reach anything outside this range. + Note: is not affected by (the light's scale or its parent's scale). + + + + + Controls the distance attenuation function for spotlights. + A value of 0.0 will maintain a constant brightness through most of the range, but smoothly attenuate the light at the edge of the range. Use a value of 2.0 for physically accurate lights as it results in the proper inverse square attenutation. + Note: Setting attenuation to 2.0 or higher may result in distant objects receiving minimal light, even within range. For example, with a range of 4096, an object at 100 units is attenuated by a factor of 0.0001. With a default brightness of 1, the light would not be visible at that distance. + Note: Using negative or values higher than 10.0 may lead to unexpected results. + + + + + The spotlight's angle in degrees. + Note: is not affected by (the light's scale or its parent's scale). + + + + + The spotlight's angular attenuation curve. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'spot_range' property. + + + + + Cached name for the 'spot_attenuation' property. + + + + + Cached name for the 'spot_angle' property. + + + + + Cached name for the 'spot_angle_attenuation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 's collision check). + + + + + The layers against which the collision check shall be done. See Collision layers and masks in the documentation for more information. + + + + + The to use for the SpringArm3D. + When the shape is set, the SpringArm3D will cast the on its z axis instead of performing a ray cast. + + + + + The maximum extent of the SpringArm3D. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm3D's child nodes. + To know more about how to perform a shape cast or a ray cast, please consult the documentation. + + + + + When the collision check is made, a candidate length for the SpringArm3D is given. + The margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm3D. + This margin is useful for when the SpringArm3D has a as a child node: without the margin, the would be placed on the exact point of collision, while with the margin the would be placed close to the point of collision. + + + + + Returns the spring arm's current length. + + + + + Adds the object with the given to the list of objects excluded from the collision check. + + + + + Removes the given from the list of objects excluded from the collision check. + + + + + Clears the list of objects excluded from the collision check. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collision_mask' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'spring_length' property. + + + + + Cached name for the 'margin' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_hit_length' method. + + + + + Cached name for the 'set_length' method. + + + + + Cached name for the 'get_length' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'add_excluded_object' method. + + + + + Cached name for the 'remove_excluded_object' method. + + + + + Cached name for the 'clear_excluded_objects' method. + + + + + Cached name for the 'set_collision_mask' method. + + + + + Cached name for the 'get_collision_mask' method. + + + + + Cached name for the 'set_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + object to draw. + + + + + If , texture is centered. + Note: For games with a pixel art aesthetic, textures may appear deformed when centered. This is caused by their position being between pixels. To prevent this, set this property to , or consider enabling ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel and ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel. + + + + + The texture's drawing offset. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + The number of columns in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + The number of rows in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + Current frame to display from sprite sheet. or must be greater than 1. This property is automatically adjusted when or are changed to keep pointing to the same visual frame (same column and row). If that's impossible, this value is reset to 0. + + + + + Coordinates of the frame to display from sprite sheet. This is as an alias for the property. or must be greater than 1. + + + + + If , texture is cut from a larger atlas texture. See . + + + + + The region of the atlas texture to display. must be . + + + + + If , the area outside of the is clipped to avoid bleeding of the surrounding texture pixels. must be . + + + + + Returns , if the pixel at the given position is opaque and in other case. The position is in local coordinates. + Note: It also returns , if the sprite's texture is or if the given position is invalid. + + + + + Returns a representing the Sprite2D's boundary in local coordinates. + Example: Detect if the Sprite2D was clicked: + + public override void _Input(InputEvent @event) + { + if (@event is InputEventMouseButton inputEventMouse) + { + if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left) + { + if (GetRect().HasPoint(ToLocal(inputEventMouse.Position))) + { + GD.Print("A click!"); + } + } + } + } + + + + + + Emitted when the changes. + + + + + Emitted when the changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'centered' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached name for the 'hframes' property. + + + + + Cached name for the 'vframes' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_coords' property. + + + + + Cached name for the 'region_enabled' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached name for the 'region_filter_clip_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_centered' method. + + + + + Cached name for the 'is_centered' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_region_enabled' method. + + + + + Cached name for the 'is_region_enabled' method. + + + + + Cached name for the 'is_pixel_opaque' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_region_filter_clip_enabled' method. + + + + + Cached name for the 'is_region_filter_clip_enabled' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_coords' method. + + + + + Cached name for the 'get_frame_coords' method. + + + + + Cached name for the 'set_vframes' method. + + + + + Cached name for the 'get_vframes' method. + + + + + Cached name for the 'set_hframes' method. + + + + + Cached name for the 'get_hframes' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'texture_changed' signal. + + + + + 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 where properties such as the billboard mode are defined. + + + + + object to draw. If is used, this will be overridden. The size information is still used. + + + + + The number of columns in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + The number of rows in the sprite sheet. When this property is changed, is adjusted so that the same visual frame is maintained (same row and column). If that's impossible, is reset to 0. + + + + + Current frame to display from sprite sheet. or must be greater than 1. This property is automatically adjusted when or are changed to keep pointing to the same visual frame (same column and row). If that's impossible, this value is reset to 0. + + + + + Coordinates of the frame to display from sprite sheet. This is as an alias for the property. or must be greater than 1. + + + + + If , the sprite will use and display only the specified part of its texture. + + + + + The region of the atlas texture to display. must be . + + + + + Emitted when the changes. + + + + + Emitted when the changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'hframes' property. + + + + + Cached name for the 'vframes' property. + + + + + Cached name for the 'frame' property. + + + + + Cached name for the 'frame_coords' property. + + + + + Cached name for the 'region_enabled' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_region_enabled' method. + + + + + Cached name for the 'is_region_enabled' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached name for the 'set_frame_coords' method. + + + + + Cached name for the 'get_frame_coords' method. + + + + + Cached name for the 'set_vframes' method. + + + + + Cached name for the 'get_vframes' method. + + + + + Cached name for the 'set_hframes' method. + + + + + Cached name for the 'get_hframes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'frame_changed' signal. + + + + + Cached name for the 'texture_changed' signal. + + + + + A node that displays 2D texture information in a 3D environment. See also where many other properties are defined. + + + + + If set, the texture's transparency and the opacity are used to make those parts of the sprite invisible. + + + + + If set, lights in the environment affect the sprite. + + + + + If set, texture can be seen from the back as well. If not, the texture is invisible when looking at it from behind. + + + + + 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. + + + + + Label is scaled by depth so that it always appears the same size on screen. + + + + + Represents the size of the enum. + + + + + This mode performs standard alpha blending. It can display translucent areas, but transparency sorting issues may be visible when multiple transparent materials are overlapping. + + + + + 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 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 alpha testing or 1-bit transparency. + + + + + This mode draws fully opaque pixels in the depth prepass. This is slower than or , but it allows displaying translucent areas and smooth edges while using proper sorting. + + + + + This mode draws cuts off all values below a spatially-deterministic threshold, the rest will remain opaque. + + + + + If , texture will be centered. + + + + + The texture's drawing offset. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + A color value used to multiply the texture's colors. Can be used for mood-coloring or to simulate the color of ambient light. + Note: Unlike for 2D, colors with values above 1.0 (overbright) are not supported. + Note: If a is defined on the , the material override must be configured to take vertex colors into account for albedo. Otherwise, the color defined in will be ignored. For a , must be . For a , ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. + + + + + The size of one pixel's width on the sprite to scale it in 3D. + + + + + The direction in which the front of the texture faces. + + + + + The billboard mode to use for the sprite. See for possible values. + Note: When billboarding is enabled and the material also casts shadows, billboards will face the camera in the scene when rendering shadows. In scenes with multiple cameras, the intended shadow cannot be determined and this will result in undefined behavior. See GitHub Pull Request #72638 for details. + + + + + If , the texture's transparency and the opacity are used to make those parts of the sprite invisible. + + + + + If , the in the has effects on the sprite. + + + + + If , texture can be seen from the back as well, if , it is invisible when looking at it from behind. + + + + + If , depth testing is disabled and the object will be drawn in render order. + + + + + If , the label is rendered at the same size regardless of distance. + + + + + The alpha cutting mode to use for the sprite. See for possible values. + + + + + Threshold at which the alpha scissor will discard values. + + + + + The hashing scale for Alpha Hash. Recommended values between 0 and 2. + + + + + The type of alpha antialiasing to apply. See . + + + + + Threshold at which antialiasing will be applied on the alpha channel. + + + + + Filter flags for the texture. See for options. + Note: Linear filtering may cause artifacts around the edges, which are especially noticeable on opaque textures. To prevent this, use textures with transparent or identical colors around the edges. + + + + + Sets the render priority for the sprite. Higher priority objects will be sorted in front of lower priority objects. + Note: This only applies if is set to (default value). + Note: This only applies to sorting of transparent objects. This will not impact how transparent objects are sorted relative to opaque objects. This is because opaque objects are not sorted, while transparent objects are sorted from back to front (subject to priority). + + + + + If , the specified flag will be enabled. See for a list of flags. + + + + + Returns the value of the specified flag. + + + + + Returns the rectangle representing this sprite. + + + + + Returns a with the sprite's vertices following its current configuration (such as its and ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'centered' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'pixel_size' property. + + + + + Cached name for the 'axis' property. + + + + + Cached name for the 'billboard' property. + + + + + Cached name for the 'transparent' property. + + + + + Cached name for the 'shaded' property. + + + + + Cached name for the 'double_sided' property. + + + + + Cached name for the 'no_depth_test' property. + + + + + Cached name for the 'fixed_size' property. + + + + + Cached name for the 'alpha_cut' property. + + + + + Cached name for the 'alpha_scissor_threshold' property. + + + + + Cached name for the 'alpha_hash_scale' property. + + + + + Cached name for the 'alpha_antialiasing_mode' property. + + + + + Cached name for the 'alpha_antialiasing_edge' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'render_priority' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_centered' method. + + + + + Cached name for the 'is_centered' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_render_priority' method. + + + + + Cached name for the 'get_render_priority' method. + + + + + Cached name for the 'set_pixel_size' method. + + + + + Cached name for the 'get_pixel_size' method. + + + + + Cached name for the 'set_axis' method. + + + + + Cached name for the 'get_axis' method. + + + + + Cached name for the 'set_draw_flag' method. + + + + + Cached name for the 'get_draw_flag' method. + + + + + Cached name for the 'set_alpha_cut_mode' method. + + + + + Cached name for the 'get_alpha_cut_mode' method. + + + + + Cached name for the 'set_alpha_scissor_threshold' method. + + + + + Cached name for the 'get_alpha_scissor_threshold' method. + + + + + Cached name for the 'set_alpha_hash_scale' method. + + + + + Cached name for the 'get_alpha_hash_scale' method. + + + + + Cached name for the 'set_alpha_antialiasing' method. + + + + + Cached name for the 'get_alpha_antialiasing' method. + + + + + Cached name for the 'set_alpha_antialiasing_edge' method. + + + + + Cached name for the 'get_alpha_antialiasing_edge' method. + + + + + Cached name for the 'set_billboard_mode' method. + + + + + Cached name for the 'get_billboard_mode' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'get_item_rect' method. + + + + + Cached name for the 'generate_triangle_mesh' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Sprite frame library for an or node. Contains frames and animation data for playback. + + + + + Adds a new animation to the library. + + + + + Returns if the animation exists. + + + + + Duplicates the animation to a new animation named . Fails if already exists, or if does not exist. + + + + + Removes the animation. + + + + + Changes the animation's name to . + + + + + Returns an array containing the names associated to each animation. Values are placed in alphabetical order. + + + + + Sets the speed for the animation in frames per second. + + + + + Returns the speed in frames per second for the animation. + + + + + If is , the animation will loop when it reaches the end, or the start if it is played in reverse. + + + + + Returns if the given animation is configured to loop when it finishes playing. Otherwise, returns . + + + + + Adds a frame to the animation. If is -1, the frame will be added to the end of the animation. specifies the relative duration, see for details. + + + + + Sets the and the of the frame in the animation. specifies the relative duration, see for details. + + + + + Removes the animation's frame . + + + + + Returns the number of frames for the animation. + + + + + Returns the texture of the frame in the animation. + + + + + Returns a relative duration of the frame in the animation (defaults to 1.0). For example, a frame with a duration of 2.0 is displayed twice as long as a frame with a duration of 1.0. You can calculate the absolute duration (in seconds) of a frame using the following formula: + + absolute_duration = relative_duration / (animation_fps * abs(playing_speed)) + + In this example, playing_speed refers to either or . + + + + + Removes all frames from the animation. + + + + + Removes all animations. An empty default animation will be created. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'animations' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_animation' method. + + + + + Cached name for the 'has_animation' method. + + + + + Cached name for the 'duplicate_animation' method. + + + + + Cached name for the 'remove_animation' method. + + + + + Cached name for the 'rename_animation' method. + + + + + Cached name for the 'get_animation_names' method. + + + + + Cached name for the 'set_animation_speed' method. + + + + + Cached name for the 'get_animation_speed' method. + + + + + Cached name for the 'set_animation_loop' method. + + + + + Cached name for the 'get_animation_loop' method. + + + + + Cached name for the 'add_frame' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'remove_frame' method. + + + + + Cached name for the 'get_frame_count' method. + + + + + Cached name for the 'get_frame_texture' method. + + + + + Cached name for the 'get_frame_duration' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'clear_all' method. + + + + + Cached name for the '_set_animations' method. + + + + + Cached name for the '_get_animations' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 's properties are inherited from . uses separate textures for ambient occlusion, roughness and metallic maps. To use a single ORM map for all 3 textures, use an instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, s (with set to ), and . + When is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use instead. + is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using and ). + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + The body's constant linear velocity. This does not move the body, but affects touching bodies, as if it were moving. + + + + + The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'constant_linear_velocity' property. + + + + + Cached name for the 'constant_angular_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant_linear_velocity' method. + + + + + Cached name for the 'set_constant_angular_velocity' method. + + + + + Cached name for the 'get_constant_linear_velocity' method. + + + + + Cached name for the 'get_constant_angular_velocity' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, s (with set to ), and . + When is moved, it is teleported to its new position without affecting other physics bodies in its path. If this is not desired, use instead. + is useful for completely static objects like floors and walls, as well as moving surfaces like conveyor belts and circular revolving platforms (by using and ). + + + + + The physics material override for the body. + If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one. + + + + + The body's constant linear velocity. This does not move the body, but affects touching bodies, as if it were moving. + + + + + The body's constant angular velocity. This does not rotate the body, but affects touching bodies, as if it were rotating. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'physics_material_override' property. + + + + + Cached name for the 'constant_linear_velocity' property. + + + + + Cached name for the 'constant_angular_velocity' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant_linear_velocity' method. + + + + + Cached name for the 'set_constant_angular_velocity' method. + + + + + Cached name for the 'get_constant_linear_velocity' method. + + + + + Cached name for the 'get_constant_angular_velocity' method. + + + + + Cached name for the 'set_physics_material_override' method. + + + + + Cached name for the 'get_physics_material_override' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Status indicator tooltip. + + + + + Status indicator icon. + + + + + Status indicator native popup menu. If this is set, the signal is not emitted. + Note: Native popup is only supported if supports feature. + + + + + If , the status indicator is visible. + + + + + Returns the status indicator rectangle in screen coordinates. If this status indicator is not visible, returns an empty . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the status indicator is pressed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tooltip' property. + + + + + Cached name for the 'icon' property. + + + + + Cached name for the 'menu' property. + + + + + Cached name for the 'visible' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tooltip' method. + + + + + Cached name for the 'get_tooltip' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'get_icon' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'set_menu' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + StreamPeer is an abstract base class mostly used for stream-based protocols (such as TCP). It provides an API for sending and receiving data through streams as raw data or strings. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + If , this will using big-endian format for encoding and decoding. + + + + + Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an code. + + + + + Sends a chunk of data through the connection, blocking if necessary until the data is done sending. This function returns an code. + + + + + Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an code and an integer, describing how much data was actually sent. + + + + + Sends a chunk of data through the connection. If all the data could not be sent at once, only part of it will. This function returns two values, an code and an integer, describing how much data was actually sent. + + + + + Returns a chunk data with the received bytes. The number of bytes to be received can be requested in the argument. If not enough bytes are available, the function will block until the desired amount is received. This function returns two values, an code and a data array. + + + + + Returns a chunk data with the received bytes. The number of bytes to be received can be requested in the "bytes" argument. If not enough bytes are available, the function will return how many were actually received. This function returns two values, an code, and a data array. + + + + + Returns the number of bytes this has available. + + + + + Puts a signed byte into the stream. + + + + + Puts an unsigned byte into the stream. + + + + + Puts a signed 16-bit value into the stream. + + + + + Puts an unsigned 16-bit value into the stream. + + + + + Puts a signed 32-bit value into the stream. + + + + + Puts an unsigned 32-bit value into the stream. + + + + + Puts a signed 64-bit value into the stream. + + + + + Puts an unsigned 64-bit value into the stream. + + + + + Puts a half-precision float into the stream. + + + + + Puts a single-precision float into the stream. + + + + + Puts a double-precision float into the stream. + + + + + Puts a zero-terminated ASCII string into the stream prepended by a 32-bit unsigned integer representing its size. + Note: To put an ASCII string without prepending its size, you can use : + + PutData("Hello World".ToAsciiBuffer()); + + + + + + Puts a zero-terminated UTF-8 string into the stream prepended by a 32 bits unsigned integer representing its size. + Note: To put a UTF-8 string without prepending its size, you can use : + + PutData("Hello World".ToUtf8Buffer()); + + + + + + Puts a Variant into the stream. If is encoding objects is allowed (and can potentially include code). + Internally, this uses the same encoding mechanism as the @GlobalScope.var_to_bytes method. + + + + + Gets a signed byte from the stream. + + + + + Gets an unsigned byte from the stream. + + + + + Gets a signed 16-bit value from the stream. + + + + + Gets an unsigned 16-bit value from the stream. + + + + + Gets a signed 32-bit value from the stream. + + + + + Gets an unsigned 32-bit value from the stream. + + + + + Gets a signed 64-bit value from the stream. + + + + + Gets an unsigned 64-bit value from the stream. + + + + + Gets a half-precision float from the stream. + + + + + Gets a single-precision float from the stream. + + + + + Gets a double-precision float from the stream. + + + + + Gets an ASCII string with byte-length from the stream. If is negative (default) the length will be read from the stream using the reverse process of . + + + + + Gets a UTF-8 string with byte-length from the stream (this decodes the string sent as UTF-8). If is negative (default) the length will be read from the stream using the reverse process of . + + + + + Gets a Variant from the stream. If is , decoding objects is allowed. + Internally, this uses the same decoding mechanism as the @GlobalScope.bytes_to_var method. + Warning: Deserialized objects can contain code which gets executed. Do not use this option if the serialized object comes from untrusted sources to avoid potential security threats such as remote code execution. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'big_endian' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'put_data' method. + + + + + Cached name for the 'put_partial_data' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'get_partial_data' method. + + + + + Cached name for the 'get_available_bytes' method. + + + + + Cached name for the 'set_big_endian' method. + + + + + Cached name for the 'is_big_endian_enabled' method. + + + + + Cached name for the 'put_8' method. + + + + + Cached name for the 'put_u8' method. + + + + + Cached name for the 'put_16' method. + + + + + Cached name for the 'put_u16' method. + + + + + Cached name for the 'put_32' method. + + + + + Cached name for the 'put_u32' method. + + + + + Cached name for the 'put_64' method. + + + + + Cached name for the 'put_u64' method. + + + + + Cached name for the 'put_half' method. + + + + + Cached name for the 'put_float' method. + + + + + Cached name for the 'put_double' method. + + + + + Cached name for the 'put_string' method. + + + + + Cached name for the 'put_utf8_string' method. + + + + + Cached name for the 'put_var' method. + + + + + Cached name for the 'get_8' method. + + + + + Cached name for the 'get_u8' method. + + + + + Cached name for the 'get_16' method. + + + + + Cached name for the 'get_u16' method. + + + + + Cached name for the 'get_32' method. + + + + + Cached name for the 'get_u32' method. + + + + + Cached name for the 'get_64' method. + + + + + Cached name for the 'get_u64' method. + + + + + Cached name for the 'get_half' method. + + + + + Cached name for the 'get_float' method. + + + + + Cached name for the 'get_double' method. + + + + + Cached name for the 'get_string' method. + + + + + Cached name for the 'get_utf8_string' method. + + + + + Cached name for the 'get_var' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, can be used directly. + A 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. + + + + + The underlying data buffer. Setting this value resets the cursor. + + + + + Moves the cursor to the specified position. must be a valid index of . + + + + + Returns the size of . + + + + + Returns the current cursor position. + + + + + Resizes the . This doesn't update the cursor. + + + + + Clears the and resets the cursor. + + + + + Returns a new with the same content. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'data_array' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'resize' method. + + + + + Cached name for the 'set_data_array' method. + + + + + Cached name for the 'get_data_array' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'duplicate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_available_bytes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 (or ), calling on this stream will compress (or decompress) the data, writing it to the internal buffer. Calling will return the pending bytes in the internal buffer, and will retrieve the compressed (or decompressed) bytes from it. When the stream is over, you must call to ensure the internal buffer is properly flushed (make sure to call on last time to check if more data needs to be read after that). + + + + + Start the stream in compression mode with the given , if is uses deflate instead of GZIP. + + + + + Start the stream in decompression mode with the given , if is uses deflate instead of GZIP. + + + + + Finalizes the stream, compressing or decompressing any buffered chunk left. + + + + + Clears this stream, resetting the internal state. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start_compression' method. + + + + + Cached name for the 'start_decompression' method. + + + + + Cached name for the 'finish' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A stream peer that handles TCP connections. This object can be used to connect to TCP servers, or also is returned by a TCP server. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The initial status of the . This is also the status after disconnecting. + + + + + A status representing a that is connecting to a host. + + + + + A status representing a that is connected to a host. + + + + + A status representing a in error state. + + + + + Opens the TCP socket, and binds it to the specified local address. + This method is generally not needed, and only used to force the subsequent call to to use the specified and as source address. This can be desired in some NAT punchthrough techniques, or when forcing the source network interface. + + + + + Connects to the specified host:port pair. A hostname will be resolved if valid. Returns on success. + + + + + Poll the socket, updating its state. See . + + + + + Returns the status of the connection, see . + + + + + Returns the IP of this peer. + + + + + Returns the port of this peer. + + + + + Returns the local port to which this peer is bound. + + + + + Disconnects from host. + + + + + If is , packets will be sent immediately. If is (the default), packet transfers will be delayed and combined using Nagle's algorithm. + Note: It's recommended to leave this disabled for applications that send large packets or need to transfer a lot of data, as enabling this can decrease the total available bandwidth. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'bind' method. + + + + + Cached name for the 'connect_to_host' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'get_connected_host' method. + + + + + Cached name for the 'get_connected_port' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'disconnect_from_host' method. + + + + + Cached name for the 'set_no_delay' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A stream peer that handles TLS connections. This object can be used to connect to a TLS server or accept a single TLS client connection. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + A status representing a that is disconnected. + + + + + A status representing a during handshaking. + + + + + A status representing a that is connected to a host. + + + + + A status representing a in error state. + + + + + An error status that shows a mismatch in the TLS certificate domain presented by the host and the domain requested for validation. + + + + + Poll the connection to check for incoming bytes. Call this right before for it to work properly. + + + + + Accepts a peer connection as a server using the given . See . + + + + + Connects to a peer using an underlying and verifying the remote certificate is correctly signed for the given . You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + + + + + Returns the status of the connection. See for values. + + + + + Returns the underlying connection, used in or . + + + + + Disconnects from host. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'accept_stream' method. + + + + + Cached name for the 'connect_to_stream' method. + + + + + Cached name for the 'get_status' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'disconnect_from_stream' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an abstract base class for drawing stylized boxes for UI elements. It is used for panels, buttons, backgrounds, backgrounds, etc. and also for testing a transparency mask for pointer signals. If mask test fails on a assigned as mask to a control, clicks and motion signals will go through it to the one below. + Note: For control nodes that have Theme Properties, the focus is displayed over the normal, hover or pressed . This makes the focus more reusable across different nodes. + + + + + The left margin for the contents of this style box. Increasing this value reduces the space available to the contents from the left. + Refer to for extra considerations. + + + + + The top margin for the contents of this style box. Increasing this value reduces the space available to the contents from the top. + Refer to for extra considerations. + + + + + The right margin for the contents of this style box. Increasing this value reduces the space available to the contents from the right. + Refer to for extra considerations. + + + + + The bottom margin for the contents of this style box. Increasing this value reduces the space available to the contents from the bottom. + If this value is negative, it is ignored and a child-specific margin is used instead. For example, for , the border thickness (if any) is used instead. + It is up to the code using this style box to decide what these contents are: for example, a respects this content margin for the textual contents of the button. + should be used to fetch this value as consumer instead of reading these properties directly. This is because it correctly respects negative values and the fallback mentioned above. + + + + + Virtual method to be implemented by the user. Returns a custom minimum size that the stylebox must respect when drawing. By default 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. + + + + + Returns the minimum size that this stylebox can be shrunk to. + + + + + Sets the default value of the specified to pixels. + + + + + Sets the default margin to pixels for all sides. + + + + + Returns the default margin of the specified . + + + + + Returns the content margin offset for the specified . + Positive values reduce size inwards, unlike 's margin values. + + + + + Returns the "offset" of a stylebox. This helper function returns a value equivalent to Vector2(style.get_margin(MARGIN_LEFT), style.get_margin(MARGIN_TOP)). + + + + + Draws this stylebox using a canvas item identified by the given . + The value can either be the result of called on an existing -derived node, or directly from creating a canvas item in the with . + + + + + Returns the that handles its or callback at this moment. + + + + + Test a position in a rectangle, return whether it passes the mask test. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'content_margin_left' property. + + + + + Cached name for the 'content_margin_top' property. + + + + + Cached name for the 'content_margin_right' property. + + + + + Cached name for the 'content_margin_bottom' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw' method. + + + + + Cached name for the '_get_draw_rect' method. + + + + + Cached name for the '_get_minimum_size' method. + + + + + Cached name for the '_test_mask' method. + + + + + Cached name for the 'get_minimum_size' method. + + + + + Cached name for the 'set_content_margin' method. + + + + + Cached name for the 'set_content_margin_all' method. + + + + + Cached name for the 'get_content_margin' method. + + + + + Cached name for the 'get_margin' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'get_current_item_drawn' method. + + + + + Cached name for the 'test_mask' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An empty that can be used to display nothing instead of the default style (e.g. it can "disable" focus styles). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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: + + height = 30 + corner_radius_top_left = 50 + corner_radius_bottom_left = 100 + + The relative system now would take the 1:2 ratio of the two left corners to calculate the actual corner width. Both corners added will never be more than the height. Result: + + corner_radius_top_left: 10 + corner_radius_bottom_left: 20 + + + + + + The background color of the stylebox. + + + + + Toggles drawing of the inner part of the stylebox. + + + + + If set to a non-zero value on either axis, distorts the StyleBox horizontally and/or vertically. This can be used for "futuristic"-style UIs. Positive values skew the StyleBox towards the right (X axis) and upwards (Y axis), while negative values skew the StyleBox towards the left (X axis) and downwards (Y axis). + Note: To ensure text does not touch the StyleBox's edges, consider increasing the 's content margin (see ). It is preferable to increase the content margin instead of the expand margin (see ), as increasing the expand margin does not increase the size of the clickable area for s. + + + + + Border width for the left border. + + + + + Border width for the top border. + + + + + Border width for the right border. + + + + + Border width for the bottom border. + + + + + Sets the color of the border. + + + + + If , the border will fade into the background color. + + + + + The top-left corner's radius. If 0, the corner is not rounded. + + + + + The top-right corner's radius. If 0, the corner is not rounded. + + + + + The bottom-right corner's radius. If 0, the corner is not rounded. + + + + + The bottom-left corner's radius. If 0, the corner is not rounded. + + + + + This sets the number of vertices used for each corner. Higher values result in rounder corners but take more processing power to compute. When choosing a value, you should take the corner radius () into account. + For corner radii less than 10, 4 or 5 should be enough. For corner radii less than 30, values between 8 and 12 should be enough. + A corner detail of 1 will result in chamfered corners instead of rounded corners, which is useful for some artistic effects. + + + + + Expands the stylebox outside of the control rect on the left edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + Expands the stylebox outside of the control rect on the top edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + Expands the stylebox outside of the control rect on the right edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + Expands the stylebox outside of the control rect on the bottom edge. Useful in combination with to draw a border outside the control rect. + Note: Unlike , does not affect the size of the clickable area for s. This can negatively impact usability if used wrong, as the user may try to click an area of the StyleBox that cannot actually receive clicks. + + + + + The color of the shadow. This has no effect if is lower than 1. + + + + + The shadow size in pixels. + + + + + The shadow offset in pixels. Adjusts the position of the shadow relatively to the stylebox. + + + + + Antialiasing draws a small ring around the edges, which fades to transparency. As a result, edges look much smoother. This is only noticeable when using rounded corners or . + Note: When using beveled corners with 45-degree angles ( = 1), it is recommended to set to to ensure crisp visuals and avoid possible visual glitches. + + + + + This changes the size of the antialiasing effect. 1.0 is recommended for an optimal result at 100% scale, identical to how rounded rectangles are rendered in web browsers and most vector drawing software. + Note: Higher values may produce a blur effect but can also create undesired artifacts on small boxes with large-radius corners. + + + + + Sets the border width to pixels for all sides. + + + + + Returns the smallest border width out of all four borders. + + + + + Sets the specified 's border width to pixels. + + + + + Returns the specified 's border width. + + + + + Sets the corner radius to pixels for all corners. + + + + + Sets the corner radius to pixels for the given . See for possible values. + + + + + Returns the given 's radius. See for possible values. + + + + + Sets the expand margin to pixels for the specified . + + + + + Sets the expand margin to pixels for all sides. + + + + + Returns the size of the specified 's expand margin. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'bg_color' property. + + + + + Cached name for the 'draw_center' property. + + + + + Cached name for the 'skew' property. + + + + + Cached name for the 'border_width_left' property. + + + + + Cached name for the 'border_width_top' property. + + + + + Cached name for the 'border_width_right' property. + + + + + Cached name for the 'border_width_bottom' property. + + + + + Cached name for the 'border_color' property. + + + + + Cached name for the 'border_blend' property. + + + + + Cached name for the 'corner_radius_top_left' property. + + + + + Cached name for the 'corner_radius_top_right' property. + + + + + Cached name for the 'corner_radius_bottom_right' property. + + + + + Cached name for the 'corner_radius_bottom_left' property. + + + + + Cached name for the 'corner_detail' property. + + + + + Cached name for the 'expand_margin_left' property. + + + + + Cached name for the 'expand_margin_top' property. + + + + + Cached name for the 'expand_margin_right' property. + + + + + Cached name for the 'expand_margin_bottom' property. + + + + + Cached name for the 'shadow_color' property. + + + + + Cached name for the 'shadow_size' property. + + + + + Cached name for the 'shadow_offset' property. + + + + + Cached name for the 'anti_aliasing' property. + + + + + Cached name for the 'anti_aliasing_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_bg_color' method. + + + + + Cached name for the 'get_bg_color' method. + + + + + Cached name for the 'set_border_color' method. + + + + + Cached name for the 'get_border_color' method. + + + + + Cached name for the 'set_border_width_all' method. + + + + + Cached name for the 'get_border_width_min' method. + + + + + Cached name for the 'set_border_width' method. + + + + + Cached name for the 'get_border_width' method. + + + + + Cached name for the 'set_border_blend' method. + + + + + Cached name for the 'get_border_blend' method. + + + + + Cached name for the 'set_corner_radius_all' method. + + + + + Cached name for the 'set_corner_radius' method. + + + + + Cached name for the 'get_corner_radius' method. + + + + + Cached name for the 'set_expand_margin' method. + + + + + Cached name for the 'set_expand_margin_all' method. + + + + + Cached name for the 'get_expand_margin' method. + + + + + Cached name for the 'set_draw_center' method. + + + + + Cached name for the 'is_draw_center_enabled' method. + + + + + Cached name for the 'set_skew' method. + + + + + Cached name for the 'get_skew' method. + + + + + Cached name for the 'set_shadow_color' method. + + + + + Cached name for the 'get_shadow_color' method. + + + + + Cached name for the 'set_shadow_size' method. + + + + + Cached name for the 'get_shadow_size' method. + + + + + Cached name for the 'set_shadow_offset' method. + + + + + Cached name for the 'get_shadow_offset' method. + + + + + Cached name for the 'set_anti_aliased' method. + + + + + Cached name for the 'is_anti_aliased' method. + + + + + Cached name for the 'set_aa_size' method. + + + + + Cached name for the 'get_aa_size' method. + + + + + Cached name for the 'set_corner_detail' method. + + + + + Cached name for the 'get_corner_detail' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A that displays a single line of a given color and thickness. The line can be either horizontal or vertical. Useful for separators. + + + + + The line's color. + + + + + The number of pixels the line will extend before the 's bounds. If set to a negative value, the line will begin inside the 's bounds. + + + + + The number of pixels the line will extend past the 's bounds. If set to a negative value, the line will end inside the 's bounds. + + + + + The line's thickness in pixels. + + + + + If , the line will be vertical. If , the line will be horizontal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'color' property. + + + + + Cached name for the 'grow_begin' property. + + + + + Cached name for the 'grow_end' property. + + + + + Cached name for the 'thickness' property. + + + + + Cached name for the 'vertical' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'set_thickness' method. + + + + + Cached name for the 'get_thickness' method. + + + + + Cached name for the 'set_grow_begin' method. + + + + + Cached name for the 'get_grow_begin' method. + + + + + Cached name for the 'set_grow_end' method. + + + + + Cached name for the 'get_grow_end' method. + + + + + Cached name for the 'set_vertical' method. + + + + + Cached name for the 'is_vertical' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture-based nine-patch , in a way similar to . 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. + + + + + Stretch the stylebox's texture. This results in visible distortion unless the texture size matches the stylebox's size perfectly. + + + + + Repeats the stylebox's texture to match the stylebox's size according to the nine-patch system. + + + + + Repeats the stylebox's texture to match the stylebox's size according to the nine-patch system. Unlike , the texture may be slightly stretched to make the nine-patch texture tile seamlessly. + + + + + The texture to use when drawing this style box. + + + + + Increases the left margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the left border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Increases the top margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the top border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Increases the right margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the right border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Increases the bottom margin of the 3×3 texture box. + A higher value means more of the source texture is considered to be part of the bottom border of the 3×3 box. + This is also the value used as fallback for if it is negative. + + + + + Expands the left margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Expands the top margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Expands the right margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Expands the bottom margin of this style box when drawing, causing it to be drawn larger than requested. + + + + + Controls how the stylebox's texture will be stretched or tiled horizontally. See for possible values. + + + + + Controls how the stylebox's texture will be stretched or tiled vertically. See for possible values. + + + + + The region to use from the . + This is equivalent to first wrapping the in an with the same region. + If empty (Rect2(0, 0, 0, 0)), the whole is used. + + + + + Modulates the color of the texture when this style box is drawn. + + + + + If , the nine-patch texture's center tile will be drawn. + + + + + Sets the margin to pixels for the specified . + + + + + Sets the margin to pixels for all sides. + + + + + Returns the margin size of the specified . + + + + + Sets the expand margin to pixels for the specified . + + + + + Sets the expand margin to pixels for all sides. + + + + + Returns the expand margin size of the specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_margin_left' property. + + + + + Cached name for the 'texture_margin_top' property. + + + + + Cached name for the 'texture_margin_right' property. + + + + + Cached name for the 'texture_margin_bottom' property. + + + + + Cached name for the 'expand_margin_left' property. + + + + + Cached name for the 'expand_margin_top' property. + + + + + Cached name for the 'expand_margin_right' property. + + + + + Cached name for the 'expand_margin_bottom' property. + + + + + Cached name for the 'axis_stretch_horizontal' property. + + + + + Cached name for the 'axis_stretch_vertical' property. + + + + + Cached name for the 'region_rect' property. + + + + + Cached name for the 'modulate_color' property. + + + + + Cached name for the 'draw_center' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_margin' method. + + + + + Cached name for the 'set_texture_margin_all' method. + + + + + Cached name for the 'get_texture_margin' method. + + + + + Cached name for the 'set_expand_margin' method. + + + + + Cached name for the 'set_expand_margin_all' method. + + + + + Cached name for the 'get_expand_margin' method. + + + + + Cached name for the 'set_region_rect' method. + + + + + Cached name for the 'get_region_rect' method. + + + + + Cached name for the 'set_draw_center' method. + + + + + Cached name for the 'is_draw_center_enabled' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_h_axis_stretch_mode' method. + + + + + Cached name for the 'get_h_axis_stretch_mode' method. + + + + + Cached name for the 'set_v_axis_stretch_mode' method. + + + + + Cached name for the 'get_v_axis_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Isolates a rectangular region of a scene to be displayed independently. This can be used, for example, to display UI in 3D space. + Note: is a that isn't a , i.e. it doesn't draw anything by itself. To display anything, must have a non-zero size and be either put inside a or assigned to a . + + + + + Always clear the render target before drawing. + + + + + Never clear the render target. + + + + + Clear the render target on the next frame, then switch to . + + + + + Do not update the render target. + + + + + Update the render target once, then switch to . + + + + + Update the render target only when it is visible. This is the default value. + + + + + Update the render target only when its parent is visible. + + + + + Always update the render target. + + + + + The width and height of the sub-viewport. Must be set to a value greater than or equal to 2 pixels on both dimensions. Otherwise, nothing will be displayed. + Note: If the parent node is a and its is , the viewport size cannot be changed manually. + + + + + The 2D size override of the sub-viewport. If either the width or height is 0, the override is disabled. + + + + + If , the 2D size override affects stretch as well. + + + + + The clear mode when the sub-viewport is used as a render target. + Note: This property is intended for 2D usage. + + + + + The update mode when the sub-viewport is used as a render target. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'size_2d_override' property. + + + + + Cached name for the 'size_2d_override_stretch' property. + + + + + Cached name for the 'render_target_clear_mode' property. + + + + + Cached name for the 'render_target_update_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_size_2d_override' method. + + + + + Cached name for the 'get_size_2d_override' method. + + + + + Cached name for the 'set_size_2d_override_stretch' method. + + + + + Cached name for the 'is_size_2d_override_stretch_enabled' method. + + + + + Cached name for the 'set_update_mode' method. + + + + + Cached name for the 'get_update_mode' method. + + + + + Cached name for the 'set_clear_mode' method. + + + + + Cached name for the 'get_clear_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A container that displays the contents of underlying child nodes. It uses the combined size of the s as minimum size, unless is enabled. + Note: Changing a 's will cause its contents to appear distorted. To change its visual size without causing distortion, adjust the node's margins instead (if it's not already in a container). + Note: The forwards mouse-enter and mouse-exit notifications to its sub-viewports. + + + + + If , the sub-viewport will be automatically resized to the control's size. + Note: If , this will prohibit changing of its children manually. + + + + + Divides the sub-viewport's effective resolution by this value while preserving its scale. This can be used to speed up rendering. + For example, a 1280×720 sub-viewport with set to 2 will be rendered at 640×360 while occupying the same size in the container. + Note: must be for this property to work. + + + + + Configure, if either the or alternatively the nodes of its children should be available as targets of mouse-related functionalities, like identifying the drop target in drag-and-drop operations or cursor shape of hovered node. + If , the nodes inside its children are considered as targets. + If , the itself will be considered as a target. + + + + + Virtual method to be implemented by the user. If it returns , the is propagated to children. Propagation doesn't happen if it returns . If the function is not implemented, all events are propagated to SubViewports. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'stretch' property. + + + + + Cached name for the 'stretch_shrink' property. + + + + + Cached name for the 'mouse_target' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_propagate_input_event' method. + + + + + Cached name for the 'set_stretch' method. + + + + + Cached name for the 'is_stretch_enabled' method. + + + + + Cached name for the 'set_stretch_shrink' method. + + + + + Cached name for the 'get_stretch_shrink' method. + + + + + Cached name for the 'set_mouse_target' method. + + + + + Cached name for the 'is_mouse_target_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for syntax highlighters. Provides syntax highlighting data to a . The associated will call into the on an as-needed basis. + Note: A instance should not be used across multiple nodes. + + + + + Virtual method which can be overridden to clear any local caches. + + + + + Virtual method which can be overridden to return syntax highlighting data. + See for more details. + + + + + Virtual method which can be overridden to update any local caches. + + + + + Returns the syntax highlighting data for the line at index . If the line is not cached, calls first to calculate the data. + Each entry is a column number containing a nested . The column number denotes the start of a region, the region will end if another region is found, or at the end of the line. The nested contains the data for that region. Currently only the key "color" is supported. + Example: Possible return value. This means columns 0 to 4 should be red, and columns 5 to the end of the line should be green: + + { + 0: { + "color": Color(1, 0, 0) + }, + 5: { + "color": Color(0, 1, 0) + } + } + + + + + + Clears then updates the caches. Override for a callback. + Note: This is called automatically when the associated node, updates its own cache. + + + + + Clears all cached syntax highlighting data. + Then calls overridable method . + + + + + Returns the associated node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_clear_highlighting_cache' method. + + + + + Cached name for the '_get_line_syntax_highlighting' method. + + + + + Cached name for the '_update_cache' method. + + + + + Cached name for the 'get_line_syntax_highlighting' method. + + + + + Cached name for the 'update_cache' method. + + + + + Cached name for the 'clear_highlighting_cache' method. + + + + + Cached name for the 'get_text_edit' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + loads a font from a system font with the first matching name from . + 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 of the system font for precise control over its features. + Note: This class is implemented on iOS, Linux, macOS and Windows, on other platforms it will fallback to default theme font. + + + + + Array of font family names to search, first matching font found is used. + + + + + If set to , italic or oblique font is preferred. + + + + + Preferred weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Preferred font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Font anti-aliasing mode. + + + + + If set to , generate mipmaps for the font textures. + + + + + If set to , embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). + + + + + If set to , system fonts can be automatically used as fallbacks. + + + + + If set to , auto-hinting is supported and preferred over font built-in hinting. + + + + + Font hinting mode. + + + + + Font glyph subpixel positioning mode. Subpixel positioning provides shaper text and better kerning for smaller font sizes, at the cost of memory usage and font rasterization speed. Use to automatically enable it based on the font size. + + + + + If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + If set to , glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + + + + + The width of the range around the shape between the minimum and maximum representable signed distance. If using font outlines, must be set to at least twice the size of the largest font outline. The default value of 16 allows outline sizes up to 8 to look correct. + + + + + Source font size used to generate MSDF textures. Higher values allow for more precision, but are slower to render and require more memory. Only increase this value if you notice a visible lack of precision in glyph rendering. + + + + + Font oversampling factor, if set to 0.0 global oversampling factor is used instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'font_names' property. + + + + + Cached name for the 'font_italic' property. + + + + + Cached name for the 'font_weight' property. + + + + + Cached name for the 'font_stretch' property. + + + + + Cached name for the 'antialiasing' property. + + + + + Cached name for the 'generate_mipmaps' property. + + + + + Cached name for the 'disable_embedded_bitmaps' property. + + + + + Cached name for the 'allow_system_fallback' property. + + + + + Cached name for the 'force_autohinter' property. + + + + + Cached name for the 'hinting' property. + + + + + Cached name for the 'subpixel_positioning' property. + + + + + Cached name for the 'keep_rounding_remainders' property. + + + + + Cached name for the 'multichannel_signed_distance_field' property. + + + + + Cached name for the 'msdf_pixel_range' property. + + + + + Cached name for the 'msdf_size' property. + + + + + Cached name for the 'oversampling' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_antialiasing' method. + + + + + Cached name for the 'get_antialiasing' method. + + + + + Cached name for the 'set_disable_embedded_bitmaps' method. + + + + + Cached name for the 'get_disable_embedded_bitmaps' method. + + + + + Cached name for the 'set_generate_mipmaps' method. + + + + + Cached name for the 'get_generate_mipmaps' method. + + + + + Cached name for the 'set_allow_system_fallback' method. + + + + + Cached name for the 'is_allow_system_fallback' method. + + + + + Cached name for the 'set_force_autohinter' method. + + + + + Cached name for the 'is_force_autohinter' method. + + + + + Cached name for the 'set_hinting' method. + + + + + Cached name for the 'get_hinting' method. + + + + + Cached name for the 'set_subpixel_positioning' method. + + + + + Cached name for the 'get_subpixel_positioning' method. + + + + + Cached name for the 'set_keep_rounding_remainders' method. + + + + + Cached name for the 'get_keep_rounding_remainders' method. + + + + + Cached name for the 'set_multichannel_signed_distance_field' method. + + + + + Cached name for the 'is_multichannel_signed_distance_field' method. + + + + + Cached name for the 'set_msdf_pixel_range' method. + + + + + Cached name for the 'get_msdf_pixel_range' method. + + + + + Cached name for the 'set_msdf_size' method. + + + + + Cached name for the 'get_msdf_size' method. + + + + + Cached name for the 'set_oversampling' method. + + + + + Cached name for the 'get_oversampling' method. + + + + + Cached name for the 'get_font_names' method. + + + + + Cached name for the 'set_font_names' method. + + + + + Cached name for the 'get_font_italic' method. + + + + + Cached name for the 'set_font_italic' method. + + + + + Cached name for the 'set_font_weight' method. + + + + + Cached name for the 'set_font_stretch' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A TCP server. Listens to connections on a port and returns a when it gets an incoming connection. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Listen on the binding to . + If is set as "*" (default), the server will listen on all available addresses (both IPv4 and IPv6). + If is set as "0.0.0.0" (for IPv4) or "::" (for IPv6), the server will listen on all available addresses matching that IP type. + If is set to any valid address (e.g. "192.168.1.101", "::1", etc.), the server will only listen on the interface with that address (or fail if no interface with the given address exists). + + + + + Returns if a connection is available for taking. + + + + + Returns if the server is currently listening for connections. + + + + + Returns the local port this server is listening to. + + + + + If a connection is available, returns a StreamPeerTCP with the connection. + + + + + Stops listening. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'listen' method. + + + + + Cached name for the 'is_connection_available' method. + + + + + Cached name for the 'is_listening' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'take_connection' method. + + + + + Cached name for the 'stop' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + TLSOptions abstracts the configuration options for the and classes. + Objects of this class cannot be instantiated directly, and one of the static methods , , or should be used instead. + + + + + + Creates a TLS client configuration which validates certificates and their common names (fully qualified domain names). + You can specify a custom of certification authorities (the default CA list will be used if ), and optionally provide a if you expect the certificate to have a common name other than the server FQDN. + Note: On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature. + + + + + Creates an unsafe TLS client configuration where certificate validation is optional. You can optionally provide a valid , but the common name of the certificates will never be checked. Using this configuration for purposes other than testing is not recommended. + Note: On the Web platform, TLS verification is always enforced against the CA list of the web browser. This is considered a security feature. + + + + + Creates a TLS server configuration using the provided and . + Note: The should include the full certificate chain up to the signing CA (certificates file can be concatenated using a general purpose text editor). + + + + + Returns if created with , otherwise. + + + + + Returns if created with , otherwise. + + + + + Returns the common name (domain name) override specified when creating with . + + + + + Returns the CA chain specified when creating with or . + + + + + Returns the specified when creating with . + + + + + Returns the specified when creating with . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'client' method. + + + + + Cached name for the 'client_unsafe' method. + + + + + Cached name for the 'server' method. + + + + + Cached name for the 'is_server' method. + + + + + Cached name for the 'is_unsafe_client' method. + + + + + Cached name for the 'get_common_name_override' method. + + + + + Cached name for the 'get_trusted_ca_chain' method. + + + + + Cached name for the 'get_private_key' method. + + + + + Cached name for the 'get_own_certificate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control that provides a horizontal bar with tabs. Similar to but is only in charge of drawing tabs, not interacting with children. + + + + + Places tabs to the left. + + + + + Places tabs in the middle. + + + + + Places tabs to the right. + + + + + Represents the size of the enum. + + + + + Never show the close buttons. + + + + + Only show the close button on the currently active tab. + + + + + Show the close button on all tabs. + + + + + Represents the size of the enum. + + + + + The index of the current selected tab. A value of -1 means that no tab is selected and can only be set when is or if all tabs are hidden or disabled. + + + + + Sets the position at which tabs will be placed. See for details. + + + + + If , tabs overflowing this node's width will be hidden, displaying two navigation buttons instead. Otherwise, this node's minimum size is updated so that all tabs are visible. + + + + + Sets when the close button will appear on the tabs. See for details. + + + + + Sets the maximum width which all tabs should be limited to. Unlimited if set to 0. + + + + + if , the mouse's scroll wheel can be used to navigate the scroll view. + + + + + If , tabs can be rearranged with mouse drag. + + + + + s with the same rearrange group ID will allow dragging the tabs between them. Enable drag with . + Setting this to -1 will disable rearranging between s. + + + + + If , the tab offset will be changed to keep the currently selected tab visible. + + + + + If , enables selecting a tab with the right mouse button. + + + + + If , all tabs can be deselected so that no tab is selected. Click on the current tab to deselect it. + + + + + The number of tabs currently in the bar. + + + + + Returns the previously active tab index. + + + + + Selects the first available tab with lower index than the currently selected. Returns if tab selection changed. + + + + + Selects the first available tab with greater index than the currently selected. Returns if tab selection changed. + + + + + Sets a for the tab at index . + + + + + Returns the title of the tab at index . + + + + + Sets a for tab at index . + Note: By default, if the is empty and the tab text is truncated (not all characters fit into the tab), the title will be displayed as a tooltip. To hide the tooltip, assign " " as the text. + + + + + Returns the tooltip text of the tab at index . + + + + + Sets tab title base writing direction. + + + + + Returns tab title text base writing direction. + + + + + Sets language code of tab title used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns tab title language code. + + + + + Sets an for the tab at index . + + + + + Returns the icon for the tab at index or if the tab has no icon. + + + + + Sets the maximum allowed width of the icon for the tab at index . This limit is applied on top of the default size of the icon and on top of icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Returns the maximum allowed width of the icon for the tab at index . + + + + + Sets an for the button of the tab at index (located to the right, before the close button), making it visible and clickable (See ). Giving it a value will hide the button. + + + + + Returns the icon for the right button of the tab at index or if the right button has no icon. + + + + + If is , disables the tab at index , making it non-interactable. + + + + + Returns if the tab at index is disabled. + + + + + If is , hides the tab at index , making it disappear from the tab area. + + + + + Returns if the tab at index is hidden. + + + + + Sets the metadata value for the tab at index , which can be retrieved later using . + + + + + Returns the metadata value set to the tab at index using . If no metadata was previously set, returns by default. + + + + + Removes the tab at index . + + + + + Adds a new tab. + + + + + Returns the index of the tab at local coordinates . Returns -1 if the point is outside the control boundaries or if there's no tab at the queried position. + + + + + Returns the number of hidden tabs offsetted to the left. + + + + + Returns if the offset buttons (the ones that appear when there's not enough space for all tabs) are visible. + + + + + Moves the scroll view to make the tab visible. + + + + + Returns tab with local position and size. + + + + + Moves a tab from to . + + + + + Clears all tabs. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is selected via click, directional input, or script, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when switching to another tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is clicked, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is right-clicked. must be enabled. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab's close button is pressed. + Note: Tabs are not removed automatically once the close button is pressed, this behavior needs to be programmed manually. For example: + + GetNode<TabBar>("TabBar").TabClosePressed += GetNode<TabBar>("TabBar").RemoveTab; + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab's right button is pressed. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is hovered by the mouse. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the active tab is rearranged via mouse drag. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'current_tab' property. + + + + + Cached name for the 'tab_alignment' property. + + + + + Cached name for the 'clip_tabs' property. + + + + + Cached name for the 'tab_close_display_policy' property. + + + + + Cached name for the 'max_tab_width' property. + + + + + Cached name for the 'scrolling_enabled' property. + + + + + Cached name for the 'drag_to_rearrange_enabled' property. + + + + + Cached name for the 'tabs_rearrange_group' property. + + + + + Cached name for the 'scroll_to_selected' property. + + + + + Cached name for the 'select_with_rmb' property. + + + + + Cached name for the 'deselect_enabled' property. + + + + + Cached name for the 'tab_count' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tab_count' method. + + + + + Cached name for the 'get_tab_count' method. + + + + + Cached name for the 'set_current_tab' method. + + + + + Cached name for the 'get_current_tab' method. + + + + + Cached name for the 'get_previous_tab' method. + + + + + Cached name for the 'select_previous_available' method. + + + + + Cached name for the 'select_next_available' method. + + + + + Cached name for the 'set_tab_title' method. + + + + + Cached name for the 'get_tab_title' method. + + + + + Cached name for the 'set_tab_tooltip' method. + + + + + Cached name for the 'get_tab_tooltip' method. + + + + + Cached name for the 'set_tab_text_direction' method. + + + + + Cached name for the 'get_tab_text_direction' method. + + + + + Cached name for the 'set_tab_language' method. + + + + + Cached name for the 'get_tab_language' method. + + + + + Cached name for the 'set_tab_icon' method. + + + + + Cached name for the 'get_tab_icon' method. + + + + + Cached name for the 'set_tab_icon_max_width' method. + + + + + Cached name for the 'get_tab_icon_max_width' method. + + + + + Cached name for the 'set_tab_button_icon' method. + + + + + Cached name for the 'get_tab_button_icon' method. + + + + + Cached name for the 'set_tab_disabled' method. + + + + + Cached name for the 'is_tab_disabled' method. + + + + + Cached name for the 'set_tab_hidden' method. + + + + + Cached name for the 'is_tab_hidden' method. + + + + + Cached name for the 'set_tab_metadata' method. + + + + + Cached name for the 'get_tab_metadata' method. + + + + + Cached name for the 'remove_tab' method. + + + + + Cached name for the 'add_tab' method. + + + + + Cached name for the 'get_tab_idx_at_point' method. + + + + + Cached name for the 'set_tab_alignment' method. + + + + + Cached name for the 'get_tab_alignment' method. + + + + + Cached name for the 'set_clip_tabs' method. + + + + + Cached name for the 'get_clip_tabs' method. + + + + + Cached name for the 'get_tab_offset' method. + + + + + Cached name for the 'get_offset_buttons_visible' method. + + + + + Cached name for the 'ensure_tab_visible' method. + + + + + Cached name for the 'get_tab_rect' method. + + + + + Cached name for the 'move_tab' method. + + + + + Cached name for the 'set_tab_close_display_policy' method. + + + + + Cached name for the 'get_tab_close_display_policy' method. + + + + + Cached name for the 'set_max_tab_width' method. + + + + + Cached name for the 'get_max_tab_width' method. + + + + + Cached name for the 'set_scrolling_enabled' method. + + + + + Cached name for the 'get_scrolling_enabled' method. + + + + + Cached name for the 'set_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'get_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'set_tabs_rearrange_group' method. + + + + + Cached name for the 'get_tabs_rearrange_group' method. + + + + + Cached name for the 'set_scroll_to_selected' method. + + + + + Cached name for the 'get_scroll_to_selected' method. + + + + + Cached name for the 'set_select_with_rmb' method. + + + + + Cached name for the 'get_select_with_rmb' method. + + + + + Cached name for the 'set_deselect_enabled' method. + + + + + Cached name for the 'get_deselect_enabled' method. + + + + + Cached name for the 'clear_tabs' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tab_selected' signal. + + + + + Cached name for the 'tab_changed' signal. + + + + + Cached name for the 'tab_clicked' signal. + + + + + Cached name for the 'tab_rmb_clicked' signal. + + + + + Cached name for the 'tab_close_pressed' signal. + + + + + Cached name for the 'tab_button_pressed' signal. + + + + + Cached name for the 'tab_hovered' signal. + + + + + Cached name for the 'active_tab_rearranged' signal. + + + + + Arranges child controls into a tabbed view, creating a tab for each one. The active tab's corresponding control is made visible, while all other child controls are hidden. Ignores non-control children. + Note: The drawing of the clickable tabs is handled by this node; is not needed. + + + + + Places the tab bar at the top. + + + + + Places the tab bar at the bottom. The tab bar's will be flipped vertically. + + + + + Represents the size of the enum. + + + + + Sets the position at which tabs will be placed. See for details. + + + + + The current tab index. When set, this index's node's visible property is set to and all others are set to . + A value of -1 means that no tab is selected. + + + + + Sets the position of the tab bar. See for details. + + + + + If , tabs overflowing this node's width will be hidden, displaying two navigation buttons instead. Otherwise, this node's minimum size is updated so that all tabs are visible. + + + + + If , tabs are visible. If , tabs' content and titles are hidden. + + + + + If , all tabs are drawn in front of the panel. If , inactive tabs are drawn behind the panel. + + + + + If , tabs can be rearranged with mouse drag. + + + + + s with the same rearrange group ID will allow dragging the tabs between them. Enable drag with . + Setting this to -1 will disable rearranging between s. + + + + + If , child nodes that are hidden have their minimum size take into account in the total, instead of only the currently visible one. + + + + + The focus access mode for the internal node. + + + + + If , all tabs can be deselected so that no tab is selected. Click on the to deselect it. + Only the tab header will be shown if no tabs are selected. + + + + + Returns the number of tabs. + + + + + Returns the previously active tab index. + + + + + Selects the first available tab with lower index than the currently selected. Returns if tab selection changed. + + + + + Selects the first available tab with greater index than the currently selected. Returns if tab selection changed. + + + + + Returns the child node located at the active tab index. + + + + + Returns the contained in this container. + Warning: This is a required internal node, removing and freeing it or editing its tabs may cause a crash. If you wish to edit the tabs, use the methods provided in . + + + + + Returns the node from the tab at index . + + + + + Sets a custom title for the tab at index (tab titles default to the name of the indexed child node). Set it back to the child's name to make the tab default to it again. + + + + + Returns the title of the tab at index . Tab titles default to the name of the indexed child node, but this can be overridden with . + + + + + Sets a custom tooltip text for tab at index . + Note: By default, if the is empty and the tab text is truncated (not all characters fit into the tab), the title will be displayed as a tooltip. To hide the tooltip, assign " " as the text. + + + + + Returns the tooltip text of the tab at index . + + + + + Sets an icon for the tab at index . + + + + + Returns the for the tab at index or if the tab has no . + + + + + Sets the maximum allowed width of the icon for the tab at index . This limit is applied on top of the default size of the icon and on top of icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Returns the maximum allowed width of the icon for the tab at index . + + + + + If is , disables the tab at index , making it non-interactable. + + + + + Returns if the tab at index is disabled. + + + + + If is , hides the tab at index , making it disappear from the tab area. + + + + + Returns if the tab at index is hidden. + + + + + Sets the metadata value for the tab at index , which can be retrieved later using . + + + + + Returns the metadata value set to the tab at index using . If no metadata was previously set, returns by default. + + + + + Sets the button icon from the tab at index . + + + + + Returns the button icon from the tab at index . + + + + + Returns the index of the tab at local coordinates . Returns -1 if the point is outside the control boundaries or if there's no tab at the queried position. + + + + + Returns the index of the tab tied to the given . The control must be a child of the . + + + + + If set on a node instance, a popup menu icon appears in the top-right corner of the (setting it to will make it go away). Clicking it will expand the node. + + + + + Returns the node instance if one has been set already with . + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the active tab is rearranged via mouse drag. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when switching to another tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is clicked, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is hovered by the mouse. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tab is selected via click, directional input, or script, even if it is the current tab. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user clicks on the button icon on this tab. + + + + + Emitted when the 's button is clicked. See for details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tab_alignment' property. + + + + + Cached name for the 'current_tab' property. + + + + + Cached name for the 'tabs_position' property. + + + + + Cached name for the 'clip_tabs' property. + + + + + Cached name for the 'tabs_visible' property. + + + + + Cached name for the 'all_tabs_in_front' property. + + + + + Cached name for the 'drag_to_rearrange_enabled' property. + + + + + Cached name for the 'tabs_rearrange_group' property. + + + + + Cached name for the 'use_hidden_tabs_for_min_size' property. + + + + + Cached name for the 'tab_focus_mode' property. + + + + + Cached name for the 'deselect_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tab_count' method. + + + + + Cached name for the 'set_current_tab' method. + + + + + Cached name for the 'get_current_tab' method. + + + + + Cached name for the 'get_previous_tab' method. + + + + + Cached name for the 'select_previous_available' method. + + + + + Cached name for the 'select_next_available' method. + + + + + Cached name for the 'get_current_tab_control' method. + + + + + Cached name for the 'get_tab_bar' method. + + + + + Cached name for the 'get_tab_control' method. + + + + + Cached name for the 'set_tab_alignment' method. + + + + + Cached name for the 'get_tab_alignment' method. + + + + + Cached name for the 'set_tabs_position' method. + + + + + Cached name for the 'get_tabs_position' method. + + + + + Cached name for the 'set_clip_tabs' method. + + + + + Cached name for the 'get_clip_tabs' method. + + + + + Cached name for the 'set_tabs_visible' method. + + + + + Cached name for the 'are_tabs_visible' method. + + + + + Cached name for the 'set_all_tabs_in_front' method. + + + + + Cached name for the 'is_all_tabs_in_front' method. + + + + + Cached name for the 'set_tab_title' method. + + + + + Cached name for the 'get_tab_title' method. + + + + + Cached name for the 'set_tab_tooltip' method. + + + + + Cached name for the 'get_tab_tooltip' method. + + + + + Cached name for the 'set_tab_icon' method. + + + + + Cached name for the 'get_tab_icon' method. + + + + + Cached name for the 'set_tab_icon_max_width' method. + + + + + Cached name for the 'get_tab_icon_max_width' method. + + + + + Cached name for the 'set_tab_disabled' method. + + + + + Cached name for the 'is_tab_disabled' method. + + + + + Cached name for the 'set_tab_hidden' method. + + + + + Cached name for the 'is_tab_hidden' method. + + + + + Cached name for the 'set_tab_metadata' method. + + + + + Cached name for the 'get_tab_metadata' method. + + + + + Cached name for the 'set_tab_button_icon' method. + + + + + Cached name for the 'get_tab_button_icon' method. + + + + + Cached name for the 'get_tab_idx_at_point' method. + + + + + Cached name for the 'get_tab_idx_from_control' method. + + + + + Cached name for the 'set_popup' method. + + + + + Cached name for the 'get_popup' method. + + + + + Cached name for the 'set_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'get_drag_to_rearrange_enabled' method. + + + + + Cached name for the 'set_tabs_rearrange_group' method. + + + + + Cached name for the 'get_tabs_rearrange_group' method. + + + + + Cached name for the 'set_use_hidden_tabs_for_min_size' method. + + + + + Cached name for the 'get_use_hidden_tabs_for_min_size' method. + + + + + Cached name for the 'set_tab_focus_mode' method. + + + + + Cached name for the 'get_tab_focus_mode' method. + + + + + Cached name for the 'set_deselect_enabled' method. + + + + + Cached name for the 'get_deselect_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'active_tab_rearranged' signal. + + + + + Cached name for the 'tab_changed' signal. + + + + + Cached name for the 'tab_clicked' signal. + + + + + Cached name for the 'tab_hovered' signal. + + + + + Cached name for the 'tab_selected' signal. + + + + + Cached name for the 'tab_button_pressed' signal. + + + + + Cached name for the 'pre_popup_pressed' signal. + + + + + 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 . + Note: Most viewport, caret, and edit methods contain a caret_index argument for support. The argument should be one of the following: -1 for all carets, 0 for the main caret, or greater than 0 for secondary carets in the order they were created. + Note: When holding down Alt, the vertical scroll wheel will scroll 5 times as fast as it would normally do. This also works in the Godot script editor. + + + + + Cuts (copies and clears) the selected text. + + + + + Copies the selected text. + + + + + Pastes the clipboard text over the selected text (or at the cursor's position). + + + + + Erases the whole text. + + + + + Selects the whole text. + + + + + Undoes the previous action. + + + + + Redoes the previous action. + + + + + ID of "Text Writing Direction" submenu. + + + + + Sets text direction to inherited. + + + + + Sets text direction to automatic. + + + + + Sets text direction to left-to-right. + + + + + Sets text direction to right-to-left. + + + + + Toggles control character display. + + + + + ID of "Insert Control Character" submenu. + + + + + Inserts left-to-right mark (LRM) character. + + + + + Inserts right-to-left mark (RLM) character. + + + + + Inserts start of left-to-right embedding (LRE) character. + + + + + Inserts start of right-to-left embedding (RLE) character. + + + + + Inserts start of left-to-right override (LRO) character. + + + + + Inserts start of right-to-left override (RLO) character. + + + + + Inserts pop direction formatting (PDF) character. + + + + + Inserts Arabic letter mark (ALM) character. + + + + + Inserts left-to-right isolate (LRI) character. + + + + + Inserts right-to-left isolate (RLI) character. + + + + + Inserts first strong isolate (FSI) character. + + + + + Inserts pop direction isolate (PDI) character. + + + + + Inserts zero width joiner (ZWJ) character. + + + + + Inserts zero width non-joiner (ZWNJ) character. + + + + + Inserts word joiner (WJ) character. + + + + + Inserts soft hyphen (SHY) character. + + + + + Represents the size of the enum. + + + + + No current action. + + + + + A typing action. + + + + + A backwards delete action. + + + + + A forward delete action. + + + + + Match case when searching. + + + + + Match whole words when searching. + + + + + Search from end to beginning. + + + + + Vertical line caret. + + + + + Block caret. + + + + + Not selecting. + + + + + Select as if shift is pressed. + + + + + Select single characters as if the user single clicked. + + + + + Select whole words as if the user double clicked. + + + + + Select whole lines as if the user triple clicked. + + + + + Line wrapping is disabled. + + + + + Line wrapping occurs at the control boundary, beyond what would normally be visible. + + + + + When a gutter is set to string using , it is used to contain text set via the method. + + + + + When a gutter is set to icon using , it is used to contain an icon set via the method. + + + + + When a gutter is set to custom using , it is used to contain custom visuals controlled by a callback method set via the method. + + + + + String value of the . + + + + + Text shown when the is empty. It is not the 's default value (see ). + + + + + If , existing text cannot be modified and new text cannot be added. + + + + + If , a right-click displays the context menu. + + + + + If , shortcut keys for context menu items are enabled, even if the context menu is disabled. + + + + + If , text can be selected. + If , text can not be selected by the user or by the or methods. + + + + + If , the selected text will be deselected when focus is lost. + + + + + If , allow drag and drop of selected text. Text can still be dropped from other sources. + + + + + If , the native virtual keyboard is shown when focused on platforms that support it. + + + + + If , using middle mouse button to paste clipboard will be disabled. + Note: This method is only implemented on Linux. + + + + + If , copying or cutting without a selection is performed on all lines with a caret. Otherwise, copy and cut require a selection. + + + + + Sets the line wrapping mode to use. + + + + + If is set to , sets text wrapping mode. To see how each mode behaves, see . + + + + + If , all wrapped lines are indented to the same amount as the unwrapped line. + + + + + Scroll smoothly over the text rather than jumping to the next location. + + + + + Sets the scroll speed with the minimap or when is enabled. + + + + + Allow scrolling past the last line into "virtual" space. + + + + + If there is a vertical scrollbar, this determines the current vertical scroll value in line numbers, starting at 0 for the top line. + + + + + If there is a horizontal scrollbar, this determines the current horizontal scroll value in pixels. + + + + + If , will disable vertical scroll and fit minimum height to the number of visible lines. When both this property and are , no scrollbars will be displayed. + + + + + If , will disable horizontal scroll and fit minimum width to the widest line in the text. When both this property and are , no scrollbars will be displayed. + + + + + If , a minimap is shown, providing an outline of your source code. The minimap uses a fixed-width text size. + + + + + The width, in pixels, of the minimap. + + + + + Set the type of caret to draw. + + + + + If , makes the caret blink. + + + + + The interval at which the caret blinks (in seconds). + + + + + If , caret will be visible when is disabled. + + + + + If , a right-click moves the caret at the mouse position before displaying the context menu. + If , the context menu ignores mouse location. + + + + + Allow moving caret, selecting and removing the individual composite character components. + Note: Backspace is always removing individual composite character components. + + + + + If , multiple carets are allowed. Left-clicking with Alt adds a new caret. See and . + + + + + If , using Ctrl + Left or Ctrl + Right (Cmd + Left or Cmd + Right on macOS) bindings will stop moving caret only if a space or punctuation is detected. If , it will also stop the caret if a character is part of !"#$%&'()*+,-./:;<=>?@[\]^`{|}~, the Unicode General Punctuation table, or the Unicode CJK Punctuation table. Useful for subword moving. This behavior also will be applied to the behavior of text selection. + + + + + If , using Ctrl + Left or Ctrl + Right (Cmd + Left or Cmd + Right on macOS) bindings will use the behavior of . If , it will also stop the caret if a character within is detected. Useful for subword moving. This behavior also will be applied to the behavior of text selection. + + + + + The characters to consider as word delimiters if is . The characters should be defined without separation, for example #_!. + + + + + The syntax highlighter to use. + Note: A instance should not be used across multiple nodes. + + + + + If , all occurrences of the selected text will be highlighted. + + + + + If , the line containing the cursor is highlighted. + + + + + If , control characters are displayed. + + + + + If , the "tab" character will have a visible representation. + + + + + If , the "space" character will have a visible representation. + + + + + Base text writing direction. + + + + + Language code used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Override this method to define what happens when the user presses the backspace key. + + + + + Override this method to define what happens when the user performs a copy operation. + + + + + Override this method to define what happens when the user performs a cut operation. + + + + + Override this method to define what happens when the user types in the provided key . + + + + + Override this method to define what happens when the user performs a paste operation. + + + + + Override this method to define what happens when the user performs a paste operation with middle mouse button. + Note: This method is only implemented on Linux. + + + + + Returns if the user has text in the Input Method Editor (IME). + + + + + Closes the Input Method Editor (IME) if it is open. Any text in the IME will be lost. + + + + + Applies text from the Input Method Editor (IME) to each caret and closes the IME if it is open. + + + + + Sets the tab size for the to use. + + + + + Returns the 's' tab size. + + + + + If , enables overtype mode. In this mode, typing overrides existing text instead of inserting text. The ProjectSettings.input/ui_text_toggle_insert_mode action toggles overtype mode. See . + + + + + Returns if overtype mode is enabled. See . + + + + + Performs a full reset of , including undo history. + + + + + Returns the number of lines in the text. + + + + + Sets the text for a specific . + Carets on the line will attempt to keep their visual x position. + + + + + Returns the text of a specific line. + + + + + Returns the width in pixels of the on . + + + + + Returns the maximum value of the line height among all lines. + Note: The return value is influenced by line_spacing and font_size. And it will not be less than 1. + + + + + Returns the indent level of the given line. This is the number of spaces and tabs at the beginning of the line, with the tabs taking the tab size into account (see ). + + + + + Returns the first column containing a non-whitespace character on the given line. If there is only whitespace, returns the number of characters. + + + + + Swaps the two lines. Carets will be swapped with the lines. + + + + + Inserts a new line with at . + + + + + Removes the line of text at . Carets on this line will attempt to match their previous visual x position. + If is carets will move to the next line down, otherwise carets will move up. + + + + + Insert the specified text at the caret position. + + + + + Inserts the at and . + If is , carets and selections that begin at and will moved to the end of the inserted text, along with all carets after it. + If is , selections that end at and will be extended to the end of the inserted text. These parameters can be used to insert text inside of or outside of selections. + + + + + Removes text between the given positions. + + + + + Returns the last unhidden line in the entire . + + + + + Returns the count to the next visible line from to line + visible_amount. Can also count backwards. For example if a has 5 lines with lines 2 and 3 hidden, calling this with line = 1, visible_amount = 1 would return 3. + + + + + Similar to , but takes into account the line wrap indexes. In the returned vector, x is the line, y is the wrap index. + + + + + Called when the user presses the backspace key. Can be overridden with . + + + + + Cut's the current selection. Can be overridden with . + + + + + Copies the current text selection. Can be overridden with . + + + + + Paste at the current location. Can be overridden with . + + + + + Pastes the primary clipboard. + + + + + Starts an action, will end the current action if is different. + An action will also end after a call to , after ProjectSettings.gui/timers/text_edit_idle_detect_sec is triggered or a new undoable step outside the and calls. + + + + + Marks the end of steps in the current action started with . + + + + + Starts a multipart edit. All edits will be treated as one action until is called. + + + + + Ends a multipart edit, started with . If called outside a complex operation, the current operation is pushed onto the undo/redo stack. + + + + + Returns if an "undo" action is available. + + + + + Returns if a "redo" action is available. + + + + + Perform undo operation. + + + + + Perform redo operation. + + + + + Clears the undo history. + + + + + Tag the current version as saved. + + + + + Returns the current version of the . The version is a count of recorded operations by the undo/redo history. + + + + + Returns the last tagged saved version from . + + + + + Sets the search text. See . + + + + + Sets the search . This is used with to highlight occurrences of the searched text. Search flags can be specified from the enum. + + + + + Perform a search inside the text. Search flags can be specified in the enum. + In the returned vector, x is the column, y is the line. If no results are found, both are equal to -1. + + Vector2I result = Search("print", (uint)TextEdit.SearchFlags.WholeWords, 0, 0); + if (result.X != -1) + { + // Result found. + int lineNumber = result.Y; + int columnNumber = result.X; + } + + + + + + Provide custom tooltip text. The callback method must take the following args: hovered_word: String. + + + + + Returns the local mouse position adjusted for the text direction. + + + + + Returns the word at . + + + + + Returns the line and column at the given position. In the returned vector, x is the column, y is the line. If is and the position is not over the text, both vector values will be set to -1. + + + + + Returns the local position for the given and . If x or y of the returned vector equal -1, the position is outside of the viewable area of the control. + Note: The Y position corresponds to the bottom side of the line. Use to get the top side position. + + + + + Returns the local position and size for the grapheme at the given and . If x or y position of the returned rect equal -1, the position is outside of the viewable area of the control. + Note: The Y position of the returned rect corresponds to the top side of the line, unlike which returns the bottom side. + + + + + Returns the equivalent minimap line at . + + + + + Returns if the user is dragging their mouse for scrolling, selecting, or text dragging. + + + + + Returns if the mouse is over a selection. If is , the edges are considered part of the selection. + + + + + Adds a new caret at the given location. Returns the index of the new caret, or -1 if the location is invalid. + + + + + Removes the given caret index. + Note: This can result in adjustment of all other caret indices. + + + + + Removes all additional carets. + + + + + Returns the number of carets in this . + + + + + Adds an additional caret above or below every caret. If is the new caret will be added below and above otherwise. + + + + + Returns the carets sorted by selection beginning from lowest line and column to highest (from top to bottom of text). + If is , carets from will be ignored. + + + + + Collapse all carets in the given range to the and position. + applies to both ends. + If is , carets that are collapsed will be for . + will be called if any carets were collapsed. + + + + + Merges any overlapping carets. Will favor the newest caret, or the caret with a selection. + If is , the merge will be queued to happen at the end of the multicaret edit. See and . + Note: This is not called when a caret changes position but after certain actions, so it is possible to get into a state where carets overlap. + + + + + Starts an edit for multiple carets. The edit must be ended with . Multicaret edits can be used to edit text at multiple carets and delay merging the carets until the end, so the caret indexes aren't affected immediately. and can be nested, and the merge will happen at the last . + + begin_complex_operation() + begin_multicaret_edit() + for i in range(get_caret_count()): + if multicaret_edit_ignore_caret(i): + continue + # Logic here. + end_multicaret_edit() + end_complex_operation() + + + + + + Ends an edit for multiple carets, that was started with . If this was the last and was called, carets will be merged. + + + + + Returns if a has been called and has not yet been called. + + + + + Returns if the given should be ignored as part of a multicaret edit. See and . Carets that should be ignored are ones that were part of removed text and will likely be merged at the end of the edit, or carets that were added during the edit. + It is recommended to continue within a loop iterating on multiple carets if a caret should be ignored. + + + + + Returns if the caret is visible, otherwise. A caret will be considered hidden if it is outside the scrollable area when scrolling is enabled. + Note: does not account for a caret being off-screen if it is still within the scrollable area. It will return even if the caret is off-screen as long as it meets 's own conditions for being visible. This includes uses of and that cause the to expand beyond the viewport's bounds. + + + + + Returns the caret pixel draw position. + + + + + Moves the caret to the specified index. The caret column will be moved to the same visual position it was at the last time was called, or clamped to the end of the line. + If is , the viewport will center at the caret position after the move occurs. + If is , the specified can be hidden. + If is -1, the caret column will be clamped to the 's length. If is greater than -1, the column will be moved to attempt to match the visual x position on the line's to the position from the last time was called. + Note: If supporting multiple carets this will not check for any overlap. See . + + + + + Returns the line the editing caret is on. + + + + + Moves the caret to the specified index. + If is , the viewport will center at the caret position after the move occurs. + Note: If supporting multiple carets this will not check for any overlap. See . + + + + + Returns the column the editing caret is at. + + + + + Returns the wrap index the editing caret is on. + + + + + Returns a text with the word under the caret's location. + + + + + Sets the current selection mode. + + + + + Returns the current selection mode. + + + + + Select all the text. + If is , no selection will occur. + + + + + Selects the word under the caret. + + + + + Adds a selection and a caret for the next occurrence of the current selection. If there is no active selection, selects word under caret. + + + + + Moves a selection and a caret for the next occurrence of the current selection. If there is no active selection, moves to the next occurrence of the word under caret. + + + + + Selects text from and to and for the given . This moves the selection origin and the caret. If the positions are the same, the selection will be deselected. + If is , no selection will occur. + Note: If supporting multiple carets this will not check for any overlap. See . + + + + + Returns if the user has selected text. + + + + + Returns the text inside the selection of a caret, or all the carets if is its default value -1. + + + + + Returns the caret index of the selection at the given and , or -1 if there is none. + If is , the position must be inside the selection and not at either end. If is , carets without a selection will also be considered. + + + + + Returns an of line ranges where x is the first line and y is the last line. All lines within these ranges will have a caret on them or be part of a selection. Each line will only be part of one line range, even if it has multiple carets on it. + If a selection's end column () is at column 0, that line will not be included. If a selection begins on the line after another selection ends and is , or they begin and end on the same line, one line range will include both selections. + + + + + Returns the origin line of the selection. This is the opposite end from the caret. + + + + + Returns the origin column of the selection. This is the opposite end from the caret. + + + + + Sets the selection origin line to the for the given . If the selection origin is moved to the caret position, the selection will deselect. + If is , The line will be set to the nearest unhidden line below or above. + If is -1, the selection origin column will be clamped to the 's length. If is greater than -1, the column will be moved to attempt to match the visual x position on the line's to the position from the last time or was called. + + + + + Sets the selection origin column to the for the given . If the selection origin is moved to the caret position, the selection will deselect. + + + + + Returns the selection begin line. Returns the caret line if there is no selection. + + + + + Returns the selection begin column. Returns the caret column if there is no selection. + + + + + Returns the selection end line. Returns the caret line if there is no selection. + + + + + Returns the selection end column. Returns the caret column if there is no selection. + + + + + Returns if the caret of the selection is after the selection origin. This can be used to determine the direction of the selection. + + + + + Deselects the current selection. + + + + + Deletes the selected text. + + + + + Returns if the given line is wrapped. + + + + + Returns the number of times the given line is wrapped. + + + + + Returns the wrap index of the given column on the given line. This ranges from 0 to . + + + + + Returns an array of s representing each wrapped index. + + + + + Returns the of the . + + + + + Returns the used by . + + + + + Returns the scroll position for of . + + + + + Positions the of at the top of the viewport. + + + + + Returns the first visible line. + + + + + Positions the of at the center of the viewport. + + + + + Positions the of at the bottom of the viewport. + + + + + Returns the last visible line. Use for the wrap index. + + + + + Returns the last visible wrap index of the last visible line. + + + + + Returns the number of lines that can visually fit, rounded down, based on this control's height. + + + + + Returns the total number of lines between and (inclusive) in the text. This includes wrapped lines and excludes folded lines. If the range covers all lines it is equivalent to . + + + + + Returns the total number of lines in the text. This includes wrapped lines and excludes folded lines. If is set to and no lines are folded (see ) then this is equivalent to . See for a limited range of lines. + + + + + Adjust the viewport so the caret is visible. + + + + + Centers the viewport on the line the editing caret is at. This also resets the value to 0. + + + + + Returns the number of lines that may be drawn on the minimap. + + + + + Register a new gutter to this . Use to have a specific gutter order. A value of -1 appends the gutter to the right. + + + + + Removes the gutter at the given index. + + + + + Returns the number of gutters registered. + + + + + Sets the name of the gutter at the given index. + + + + + Returns the name of the gutter at the given index. + + + + + Sets the type of gutter at the given index. Gutters can contain icons, text, or custom visuals. See for options. + + + + + Returns the type of the gutter at the given index. Gutters can contain icons, text, or custom visuals. See for options. + + + + + Set the width of the gutter at the given index. + + + + + Returns the width of the gutter at the given index. + + + + + If , the gutter at the given index is drawn. The gutter type () determines how it is drawn. See . + + + + + Returns if the gutter at the given index is currently drawn. See . + + + + + If , the mouse cursor will change to a pointing hand () when hovering over the gutter at the given index. See and . + + + + + Returns if the gutter at the given index is clickable. See . + + + + + If , the line data of the gutter at the given index can be overridden when using . See . + + + + + Returns if the gutter at the given index is overwritable. See . + + + + + Merge the gutters from into . Only overwritable gutters will be copied. See . + + + + + Set a custom draw callback for the gutter at the given index. must take the following arguments: A line index , a gutter index , and an area . This callback only works when the gutter type is (see ). + + + + + Returns the total width of all gutters and internal padding. + + + + + Sets the metadata for on to . + + + + + Returns the metadata currently in at . + + + + + Sets the text for on to . This only works when the gutter type is (see ). + + + + + Returns the text currently in at . This only works when the gutter type is (see ). + + + + + Sets the icon for on to . This only works when the gutter type is (see ). + + + + + Returns the icon currently in at . This only works when the gutter type is (see ). + + + + + Sets the color for on to . + + + + + Returns the color currently in at . + + + + + If is , makes the on the given clickable. This is like , but for a single line. If is , this will not have any effect. See and . + + + + + Returns if the gutter at the given index on the given line is clickable. See . + + + + + Sets the custom background color of the given line. If transparent, this color is applied on top of the default background color (See background_color). If set to Color(0, 0, 0, 0), no additional color is applied. + + + + + Returns the custom background color of the given line. If no color is set, returns Color(0, 0, 0, 0). + + + + + Returns the of this . By default, this menu is displayed when right-clicking on the . + You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see ). For example: + + public override void _Ready() + { + var menu = GetMenu(); + // Remove all items after "Redo". + menu.ItemCount = menu.GetItemIndex(TextEdit.MenuItems.Redo) + 1; + // Add custom items. + menu.AddSeparator(); + menu.AddItem("Insert Date", TextEdit.MenuItems.Max + 1); + // Add event handler. + menu.IdPressed += OnItemPressed; + } + + public void OnItemPressed(int id) + { + if (id == TextEdit.MenuItems.Max + 1) + { + InsertTextAtCaret(Time.GetDateStringFromSystem()); + } + } + + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns if the menu is visible. Use this instead of get_menu().visible to improve performance (so the creation of the menu is avoided). See . + + + + + Executes a given action as defined in the enum. + + + + + This method does nothing. + + + + + Returns a list of caret indexes in their edit order, this done from bottom to top. Edit order refers to the way actions such as are applied. + + + + + Returns the original start line of the selection. + + + + + Returns the original start column of the selection. + + + + + Sets the current selection mode. + + + + + Emitted when is called or is set. + + + + + Emitted when the text changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted immediately when the text changes. + When text is added fromLine will be less than toLine. On a remove toLine will be less than fromLine. + + + + + Emitted when any caret changes position. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a gutter is clicked. + + + + + Emitted when a gutter is added. + + + + + Emitted when a gutter is removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'placeholder_text' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'context_menu_enabled' property. + + + + + Cached name for the 'shortcut_keys_enabled' property. + + + + + Cached name for the 'selecting_enabled' property. + + + + + Cached name for the 'deselect_on_focus_loss_enabled' property. + + + + + Cached name for the 'drag_and_drop_selection_enabled' property. + + + + + Cached name for the 'virtual_keyboard_enabled' property. + + + + + Cached name for the 'middle_mouse_paste_enabled' property. + + + + + Cached name for the 'empty_selection_clipboard_enabled' property. + + + + + Cached name for the 'wrap_mode' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'indent_wrapped_lines' property. + + + + + Cached name for the 'scroll_smooth' property. + + + + + Cached name for the 'scroll_v_scroll_speed' property. + + + + + Cached name for the 'scroll_past_end_of_file' property. + + + + + Cached name for the 'scroll_vertical' property. + + + + + Cached name for the 'scroll_horizontal' property. + + + + + Cached name for the 'scroll_fit_content_height' property. + + + + + Cached name for the 'scroll_fit_content_width' property. + + + + + Cached name for the 'minimap_draw' property. + + + + + Cached name for the 'minimap_width' property. + + + + + Cached name for the 'caret_type' property. + + + + + Cached name for the 'caret_blink' property. + + + + + Cached name for the 'caret_blink_interval' property. + + + + + Cached name for the 'caret_draw_when_editable_disabled' property. + + + + + Cached name for the 'caret_move_on_right_click' property. + + + + + Cached name for the 'caret_mid_grapheme' property. + + + + + Cached name for the 'caret_multiple' property. + + + + + Cached name for the 'use_default_word_separators' property. + + + + + Cached name for the 'use_custom_word_separators' property. + + + + + Cached name for the 'custom_word_separators' property. + + + + + Cached name for the 'syntax_highlighter' property. + + + + + Cached name for the 'highlight_all_occurrences' property. + + + + + Cached name for the 'highlight_current_line' property. + + + + + Cached name for the 'draw_control_chars' property. + + + + + Cached name for the 'draw_tabs' property. + + + + + Cached name for the 'draw_spaces' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_backspace' method. + + + + + Cached name for the '_copy' method. + + + + + Cached name for the '_cut' method. + + + + + Cached name for the '_handle_unicode_input' method. + + + + + Cached name for the '_paste' method. + + + + + Cached name for the '_paste_primary_clipboard' method. + + + + + Cached name for the 'has_ime_text' method. + + + + + Cached name for the 'cancel_ime' method. + + + + + Cached name for the 'apply_ime' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_tab_size' method. + + + + + Cached name for the 'get_tab_size' method. + + + + + Cached name for the 'set_indent_wrapped_lines' method. + + + + + Cached name for the 'is_indent_wrapped_lines' method. + + + + + Cached name for the 'set_overtype_mode_enabled' method. + + + + + Cached name for the 'is_overtype_mode_enabled' method. + + + + + Cached name for the 'set_context_menu_enabled' method. + + + + + Cached name for the 'is_context_menu_enabled' method. + + + + + Cached name for the 'set_shortcut_keys_enabled' method. + + + + + Cached name for the 'is_shortcut_keys_enabled' method. + + + + + Cached name for the 'set_virtual_keyboard_enabled' method. + + + + + Cached name for the 'is_virtual_keyboard_enabled' method. + + + + + Cached name for the 'set_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'is_middle_mouse_paste_enabled' method. + + + + + Cached name for the 'set_empty_selection_clipboard_enabled' method. + + + + + Cached name for the 'is_empty_selection_clipboard_enabled' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'set_placeholder' method. + + + + + Cached name for the 'get_placeholder' method. + + + + + Cached name for the 'set_line' method. + + + + + Cached name for the 'get_line' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'get_line_height' method. + + + + + Cached name for the 'get_indent_level' method. + + + + + Cached name for the 'get_first_non_whitespace_column' method. + + + + + Cached name for the 'swap_lines' method. + + + + + Cached name for the 'insert_line_at' method. + + + + + Cached name for the 'remove_line_at' method. + + + + + Cached name for the 'insert_text_at_caret' method. + + + + + Cached name for the 'insert_text' method. + + + + + Cached name for the 'remove_text' method. + + + + + Cached name for the 'get_last_unhidden_line' method. + + + + + Cached name for the 'get_next_visible_line_offset_from' method. + + + + + Cached name for the 'get_next_visible_line_index_offset_from' method. + + + + + Cached name for the 'backspace' method. + + + + + Cached name for the 'cut' method. + + + + + Cached name for the 'copy' method. + + + + + Cached name for the 'paste' method. + + + + + Cached name for the 'paste_primary_clipboard' method. + + + + + Cached name for the 'start_action' method. + + + + + Cached name for the 'end_action' method. + + + + + Cached name for the 'begin_complex_operation' method. + + + + + Cached name for the 'end_complex_operation' method. + + + + + Cached name for the 'has_undo' method. + + + + + Cached name for the 'has_redo' method. + + + + + Cached name for the 'undo' method. + + + + + Cached name for the 'redo' method. + + + + + Cached name for the 'clear_undo_history' method. + + + + + Cached name for the 'tag_saved_version' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached name for the 'get_saved_version' method. + + + + + Cached name for the 'set_search_text' method. + + + + + Cached name for the 'set_search_flags' method. + + + + + Cached name for the 'search' method. + + + + + Cached name for the 'set_tooltip_request_func' method. + + + + + Cached name for the 'get_local_mouse_pos' method. + + + + + Cached name for the 'get_word_at_pos' method. + + + + + Cached name for the 'get_line_column_at_pos' method. + + + + + Cached name for the 'get_pos_at_line_column' method. + + + + + Cached name for the 'get_rect_at_line_column' method. + + + + + Cached name for the 'get_minimap_line_at_pos' method. + + + + + Cached name for the 'is_dragging_cursor' method. + + + + + Cached name for the 'is_mouse_over_selection' method. + + + + + Cached name for the 'set_caret_type' method. + + + + + Cached name for the 'get_caret_type' method. + + + + + Cached name for the 'set_caret_blink_enabled' method. + + + + + Cached name for the 'is_caret_blink_enabled' method. + + + + + Cached name for the 'set_caret_blink_interval' method. + + + + + Cached name for the 'get_caret_blink_interval' method. + + + + + Cached name for the 'set_draw_caret_when_editable_disabled' method. + + + + + Cached name for the 'is_drawing_caret_when_editable_disabled' method. + + + + + Cached name for the 'set_move_caret_on_right_click_enabled' method. + + + + + Cached name for the 'is_move_caret_on_right_click_enabled' method. + + + + + Cached name for the 'set_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'is_caret_mid_grapheme_enabled' method. + + + + + Cached name for the 'set_multiple_carets_enabled' method. + + + + + Cached name for the 'is_multiple_carets_enabled' method. + + + + + Cached name for the 'add_caret' method. + + + + + Cached name for the 'remove_caret' method. + + + + + Cached name for the 'remove_secondary_carets' method. + + + + + Cached name for the 'get_caret_count' method. + + + + + Cached name for the 'add_caret_at_carets' method. + + + + + Cached name for the 'get_sorted_carets' method. + + + + + Cached name for the 'collapse_carets' method. + + + + + Cached name for the 'merge_overlapping_carets' method. + + + + + Cached name for the 'begin_multicaret_edit' method. + + + + + Cached name for the 'end_multicaret_edit' method. + + + + + Cached name for the 'is_in_mulitcaret_edit' method. + + + + + Cached name for the 'multicaret_edit_ignore_caret' method. + + + + + Cached name for the 'is_caret_visible' method. + + + + + Cached name for the 'get_caret_draw_pos' method. + + + + + Cached name for the 'set_caret_line' method. + + + + + Cached name for the 'get_caret_line' method. + + + + + Cached name for the 'set_caret_column' method. + + + + + Cached name for the 'get_caret_column' method. + + + + + Cached name for the 'get_caret_wrap_index' method. + + + + + Cached name for the 'get_word_under_caret' method. + + + + + Cached name for the 'set_use_default_word_separators' method. + + + + + Cached name for the 'is_default_word_separators_enabled' method. + + + + + Cached name for the 'set_use_custom_word_separators' method. + + + + + Cached name for the 'is_custom_word_separators_enabled' method. + + + + + Cached name for the 'set_custom_word_separators' method. + + + + + Cached name for the 'get_custom_word_separators' method. + + + + + Cached name for the 'set_selecting_enabled' method. + + + + + Cached name for the 'is_selecting_enabled' method. + + + + + Cached name for the 'set_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'is_deselect_on_focus_loss_enabled' method. + + + + + Cached name for the 'set_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'is_drag_and_drop_selection_enabled' method. + + + + + Cached name for the 'set_selection_mode' method. + + + + + Cached name for the 'get_selection_mode' method. + + + + + Cached name for the 'select_all' method. + + + + + Cached name for the 'select_word_under_caret' method. + + + + + Cached name for the 'add_selection_for_next_occurrence' method. + + + + + Cached name for the 'skip_selection_for_next_occurrence' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'has_selection' method. + + + + + Cached name for the 'get_selected_text' method. + + + + + Cached name for the 'get_selection_at_line_column' method. + + + + + Cached name for the 'get_line_ranges_from_carets' method. + + + + + Cached name for the 'get_selection_origin_line' method. + + + + + Cached name for the 'get_selection_origin_column' method. + + + + + Cached name for the 'set_selection_origin_line' method. + + + + + Cached name for the 'set_selection_origin_column' method. + + + + + Cached name for the 'get_selection_from_line' method. + + + + + Cached name for the 'get_selection_from_column' method. + + + + + Cached name for the 'get_selection_to_line' method. + + + + + Cached name for the 'get_selection_to_column' method. + + + + + Cached name for the 'is_caret_after_selection_origin' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'delete_selection' method. + + + + + Cached name for the 'set_line_wrapping_mode' method. + + + + + Cached name for the 'get_line_wrapping_mode' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'is_line_wrapped' method. + + + + + Cached name for the 'get_line_wrap_count' method. + + + + + Cached name for the 'get_line_wrap_index_at_column' method. + + + + + Cached name for the 'get_line_wrapped_text' method. + + + + + Cached name for the 'set_smooth_scroll_enabled' method. + + + + + Cached name for the 'is_smooth_scroll_enabled' method. + + + + + Cached name for the 'get_v_scroll_bar' method. + + + + + Cached name for the 'get_h_scroll_bar' method. + + + + + Cached name for the 'set_v_scroll' method. + + + + + Cached name for the 'get_v_scroll' method. + + + + + Cached name for the 'set_h_scroll' method. + + + + + Cached name for the 'get_h_scroll' method. + + + + + Cached name for the 'set_scroll_past_end_of_file_enabled' method. + + + + + Cached name for the 'is_scroll_past_end_of_file_enabled' method. + + + + + Cached name for the 'set_v_scroll_speed' method. + + + + + Cached name for the 'get_v_scroll_speed' method. + + + + + Cached name for the 'set_fit_content_height_enabled' method. + + + + + Cached name for the 'is_fit_content_height_enabled' method. + + + + + Cached name for the 'set_fit_content_width_enabled' method. + + + + + Cached name for the 'is_fit_content_width_enabled' method. + + + + + Cached name for the 'get_scroll_pos_for_line' method. + + + + + Cached name for the 'set_line_as_first_visible' method. + + + + + Cached name for the 'get_first_visible_line' method. + + + + + Cached name for the 'set_line_as_center_visible' method. + + + + + Cached name for the 'set_line_as_last_visible' method. + + + + + Cached name for the 'get_last_full_visible_line' method. + + + + + Cached name for the 'get_last_full_visible_line_wrap_index' method. + + + + + Cached name for the 'get_visible_line_count' method. + + + + + Cached name for the 'get_visible_line_count_in_range' method. + + + + + Cached name for the 'get_total_visible_line_count' method. + + + + + Cached name for the 'adjust_viewport_to_caret' method. + + + + + Cached name for the 'center_viewport_to_caret' method. + + + + + Cached name for the 'set_draw_minimap' method. + + + + + Cached name for the 'is_drawing_minimap' method. + + + + + Cached name for the 'set_minimap_width' method. + + + + + Cached name for the 'get_minimap_width' method. + + + + + Cached name for the 'get_minimap_visible_lines' method. + + + + + Cached name for the 'add_gutter' method. + + + + + Cached name for the 'remove_gutter' method. + + + + + Cached name for the 'get_gutter_count' method. + + + + + Cached name for the 'set_gutter_name' method. + + + + + Cached name for the 'get_gutter_name' method. + + + + + Cached name for the 'set_gutter_type' method. + + + + + Cached name for the 'get_gutter_type' method. + + + + + Cached name for the 'set_gutter_width' method. + + + + + Cached name for the 'get_gutter_width' method. + + + + + Cached name for the 'set_gutter_draw' method. + + + + + Cached name for the 'is_gutter_drawn' method. + + + + + Cached name for the 'set_gutter_clickable' method. + + + + + Cached name for the 'is_gutter_clickable' method. + + + + + Cached name for the 'set_gutter_overwritable' method. + + + + + Cached name for the 'is_gutter_overwritable' method. + + + + + Cached name for the 'merge_gutters' method. + + + + + Cached name for the 'set_gutter_custom_draw' method. + + + + + Cached name for the 'get_total_gutter_width' method. + + + + + Cached name for the 'set_line_gutter_metadata' method. + + + + + Cached name for the 'get_line_gutter_metadata' method. + + + + + Cached name for the 'set_line_gutter_text' method. + + + + + Cached name for the 'get_line_gutter_text' method. + + + + + Cached name for the 'set_line_gutter_icon' method. + + + + + Cached name for the 'get_line_gutter_icon' method. + + + + + Cached name for the 'set_line_gutter_item_color' method. + + + + + Cached name for the 'get_line_gutter_item_color' method. + + + + + Cached name for the 'set_line_gutter_clickable' method. + + + + + Cached name for the 'is_line_gutter_clickable' method. + + + + + Cached name for the 'set_line_background_color' method. + + + + + Cached name for the 'get_line_background_color' method. + + + + + Cached name for the 'set_syntax_highlighter' method. + + + + + Cached name for the 'get_syntax_highlighter' method. + + + + + Cached name for the 'set_highlight_current_line' method. + + + + + Cached name for the 'is_highlight_current_line_enabled' method. + + + + + Cached name for the 'set_highlight_all_occurrences' method. + + + + + Cached name for the 'is_highlight_all_occurrences_enabled' method. + + + + + Cached name for the 'get_draw_control_chars' method. + + + + + Cached name for the 'set_draw_control_chars' method. + + + + + Cached name for the 'set_draw_tabs' method. + + + + + Cached name for the 'is_drawing_tabs' method. + + + + + Cached name for the 'set_draw_spaces' method. + + + + + Cached name for the 'is_drawing_spaces' method. + + + + + Cached name for the 'get_menu' method. + + + + + Cached name for the 'is_menu_visible' method. + + + + + Cached name for the 'menu_option' method. + + + + + Cached name for the 'adjust_carets_after_edit' method. + + + + + Cached name for the 'get_caret_index_edit_order' method. + + + + + Cached name for the 'get_selection_line' method. + + + + + Cached name for the 'get_selection_column' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'text_set' signal. + + + + + Cached name for the 'text_changed' signal. + + + + + Cached name for the 'lines_edited_from' signal. + + + + + Cached name for the 'caret_changed' signal. + + + + + Cached name for the 'gutter_clicked' signal. + + + + + Cached name for the 'gutter_added' signal. + + + + + Cached name for the 'gutter_removed' signal. + + + + + Abstraction over for handling a single line of text. + + + + + Text writing direction. + + + + + Text orientation. + + + + + If set to text will display invalid characters. + + + + + If set to text will display control characters. + + + + + Text line width. + + + + + Sets text alignment within the line as if the line was horizontal. + + + + + Line alignment rules. For more info see . + + + + + Sets the clipping behavior when the text exceeds the text line's set width. See for a description of all modes. + + + + + Ellipsis character used for text clipping. + + + + + Clears text line (removes text and inline objects). + + + + + Overrides BiDi for the structured text. + Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately. + + + + + Adds text span and font to draw it. + + + + + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Sets new size and alignment of embedded object. + + + + + Aligns text to the given tab-stops. + + + + + Aligns text to the given tab-stops. + + + + + Returns array of inline objects. + + + + + Returns bounding rectangle of the inline object. + + + + + Returns size of the bounding box of the text. + + + + + Returns TextServer buffer RID. + + + + + Returns the text ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + + + + + Returns the text descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + + + + + Returns width (for horizontal layout) or height (for vertical) of the text. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Returns thickness of the underline. + + + + + Draw text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns caret character offset at the specified pixel offset at the baseline. This function always returns a valid position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'orientation' property. + + + + + Cached name for the 'preserve_invalid' property. + + + + + Cached name for the 'preserve_control' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'flags' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'ellipsis_char' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_orientation' method. + + + + + Cached name for the 'get_orientation' method. + + + + + Cached name for the 'set_preserve_invalid' method. + + + + + Cached name for the 'get_preserve_invalid' method. + + + + + Cached name for the 'set_preserve_control' method. + + + + + Cached name for the 'get_preserve_control' method. + + + + + Cached name for the 'set_bidi_override' method. + + + + + Cached name for the 'add_string' method. + + + + + Cached name for the 'add_object' method. + + + + + Cached name for the 'resize_object' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'tab_align' method. + + + + + Cached name for the 'set_flags' method. + + + + + Cached name for the 'get_flags' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_ellipsis_char' method. + + + + + Cached name for the 'get_ellipsis_char' method. + + + + + Cached name for the 'get_objects' method. + + + + + Cached name for the 'get_object_rect' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'get_line_ascent' method. + + + + + Cached name for the 'get_line_descent' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'get_line_underline_position' method. + + + + + Cached name for the 'get_line_underline_thickness' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'draw_outline' method. + + + + + Cached name for the 'hit_test' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Generate an 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. + + + + + The text to generate mesh from. + Note: Due to being a , it doesn't follow the rules of . If disabling translation is desired, it should be done manually with . + + + + + Font configuration used to display text. + + + + + Font size of the 's text. + + + + + Controls the text's horizontal alignment. Supports left, center, right, and fill, or justify. Set it to one of the constants. + + + + + Controls the text's vertical alignment. Supports top, center, bottom. Set it to one of the constants. + + + + + If , all the text displays as UPPERCASE. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + If set to something other than , the text gets wrapped inside the node's bounding rectangle. If you resize the node, it will change its height automatically to show all the text. To see how each mode behaves, see . + + + + + Line fill alignment rules. See for more information. + + + + + The size of one pixel's width on the text to scale it in 3D. + + + + + Step (in pixels) used to approximate Bézier curves. + + + + + Depths of the mesh, if set to 0.0 only front surface, is generated, and UV layout is changed to use full texture for the front face only. + + + + + Text width (in pixels), used for fill alignment. + + + + + The text drawing offset (in pixels). + + + + + Base text writing direction. + + + + + Language code used for text shaping algorithms, if left empty current locale is used instead. + + + + + Set BiDi algorithm override for the structured text. + + + + + Set additional options for BiDi override. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'text' property. + + + + + Cached name for the 'font' property. + + + + + Cached name for the 'font_size' property. + + + + + Cached name for the 'horizontal_alignment' property. + + + + + Cached name for the 'vertical_alignment' property. + + + + + Cached name for the 'uppercase' property. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached name for the 'autowrap_mode' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'pixel_size' property. + + + + + Cached name for the 'curve_step' property. + + + + + Cached name for the 'depth' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'offset' property. + + + + + Cached name for the 'text_direction' property. + + + + + Cached name for the 'language' property. + + + + + Cached name for the 'structured_text_bidi_override' property. + + + + + Cached name for the 'structured_text_bidi_override_options' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_horizontal_alignment' method. + + + + + Cached name for the 'get_horizontal_alignment' method. + + + + + Cached name for the 'set_vertical_alignment' method. + + + + + Cached name for the 'get_vertical_alignment' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_depth' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'set_pixel_size' method. + + + + + Cached name for the 'get_pixel_size' method. + + + + + Cached name for the 'set_offset' method. + + + + + Cached name for the 'get_offset' method. + + + + + Cached name for the 'set_curve_step' method. + + + + + Cached name for the 'get_curve_step' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_uppercase' method. + + + + + Cached name for the 'is_uppercase' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Abstraction over for handling a single paragraph of text. + + + + + Text writing direction. + + + + + Custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Text orientation. + + + + + If set to text will display invalid characters. + + + + + If set to text will display control characters. + + + + + Paragraph horizontal alignment. + + + + + Line breaking rules. For more info see . + + + + + Line fill alignment rules. See for more information. + + + + + Sets the clipping behavior when the text exceeds the paragraph's set width. See for a description of all modes. + + + + + Ellipsis character used for text clipping. + + + + + Paragraph width. + + + + + Limits the lines of text shown. + + + + + Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative. + + + + + Clears text paragraph (removes text and inline objects). + + + + + Overrides BiDi for the structured text. + Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately. + + + + + Sets drop cap, overrides previously set drop cap. Drop cap (dropped capital) is a decorative element at the beginning of a paragraph that is larger than the rest of the text. + + If the parameter is null, then the default value is new Rect2(new Vector2(0.0f, 0.0f), new Vector2(0.0f, 0.0f)). + + + + Removes dropcap. + + + + + Adds text span and font to draw it. + + + + + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Sets new size and alignment of embedded object. + + + + + Aligns paragraph to the given tab-stops. + + + + + Aligns paragraph to the given tab-stops. + + + + + Returns the size of the bounding box of the paragraph, without line breaks. + + + + + Returns the size of the bounding box of the paragraph. + + + + + Returns TextServer full string buffer RID. + + + + + Returns TextServer line buffer RID. + + + + + Returns drop cap text buffer RID. + + + + + Returns number of lines in the paragraph. + + + + + Returns array of inline objects in the line. + + + + + Returns bounding rectangle of the inline object. + + + + + Returns size of the bounding box of the line of text. Returned size is rounded up. + + + + + Returns character range of the line. + + + + + Returns the text line ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + + + + + Returns the text line descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + + + + + Returns width (for horizontal layout) or height (for vertical) of the line of text. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Returns thickness of the underline. + + + + + Returns drop cap bounding box size. + + + + + Returns number of lines used by dropcap. + + + + + Draw all lines of the text and drop cap into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw outlines of all lines of the text and drop cap into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw single line of text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw outline of the single line of text into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw drop cap into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw drop cap outline into a canvas item at a given position, with . specifies the top left corner of the bounding box. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns caret character offset at the specified coordinates. This function always returns a valid position. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'direction' property. + + + + + Cached name for the 'custom_punctuation' property. + + + + + Cached name for the 'orientation' property. + + + + + Cached name for the 'preserve_invalid' property. + + + + + Cached name for the 'preserve_control' property. + + + + + Cached name for the 'alignment' property. + + + + + Cached name for the 'break_flags' property. + + + + + Cached name for the 'justification_flags' property. + + + + + Cached name for the 'text_overrun_behavior' property. + + + + + Cached name for the 'ellipsis_char' property. + + + + + Cached name for the 'width' property. + + + + + Cached name for the 'max_lines_visible' property. + + + + + Cached name for the 'line_spacing' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_direction' method. + + + + + Cached name for the 'get_direction' method. + + + + + Cached name for the 'set_custom_punctuation' method. + + + + + Cached name for the 'get_custom_punctuation' method. + + + + + Cached name for the 'set_orientation' method. + + + + + Cached name for the 'get_orientation' method. + + + + + Cached name for the 'set_preserve_invalid' method. + + + + + Cached name for the 'get_preserve_invalid' method. + + + + + Cached name for the 'set_preserve_control' method. + + + + + Cached name for the 'get_preserve_control' method. + + + + + Cached name for the 'set_bidi_override' method. + + + + + Cached name for the 'set_dropcap' method. + + + + + Cached name for the 'clear_dropcap' method. + + + + + Cached name for the 'add_string' method. + + + + + Cached name for the 'add_object' method. + + + + + Cached name for the 'resize_object' method. + + + + + Cached name for the 'set_alignment' method. + + + + + Cached name for the 'get_alignment' method. + + + + + Cached name for the 'tab_align' method. + + + + + Cached name for the 'set_break_flags' method. + + + + + Cached name for the 'get_break_flags' method. + + + + + Cached name for the 'set_justification_flags' method. + + + + + Cached name for the 'get_justification_flags' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_ellipsis_char' method. + + + + + Cached name for the 'get_ellipsis_char' method. + + + + + Cached name for the 'set_width' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_non_wrapped_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_rid' method. + + + + + Cached name for the 'get_line_rid' method. + + + + + Cached name for the 'get_dropcap_rid' method. + + + + + Cached name for the 'get_line_count' method. + + + + + Cached name for the 'set_max_lines_visible' method. + + + + + Cached name for the 'get_max_lines_visible' method. + + + + + Cached name for the 'set_line_spacing' method. + + + + + Cached name for the 'get_line_spacing' method. + + + + + Cached name for the 'get_line_objects' method. + + + + + Cached name for the 'get_line_object_rect' method. + + + + + Cached name for the 'get_line_size' method. + + + + + Cached name for the 'get_line_range' method. + + + + + Cached name for the 'get_line_ascent' method. + + + + + Cached name for the 'get_line_descent' method. + + + + + Cached name for the 'get_line_width' method. + + + + + Cached name for the 'get_line_underline_position' method. + + + + + Cached name for the 'get_line_underline_thickness' method. + + + + + Cached name for the 'get_dropcap_size' method. + + + + + Cached name for the 'get_dropcap_lines' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'draw_outline' method. + + + + + Cached name for the 'draw_line' method. + + + + + Cached name for the 'draw_line_outline' method. + + + + + Cached name for the 'draw_dropcap' method. + + + + + Cached name for the 'draw_dropcap_outline' method. + + + + + Cached name for the 'hit_test' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API backend for managing fonts and rendering text. + Note: This is a low-level API, consider using , , and classes instead. + This is an abstract class, so to get the currently active instance, use the following code: + + var ts = TextServerManager.GetPrimaryInterface(); + + + + + + Font glyphs are rasterized as 1-bit bitmaps. + + + + + Font glyphs are rasterized as 8-bit grayscale anti-aliased bitmaps. + + + + + Font glyphs are rasterized for LCD screens. + LCD subpixel layout is determined by the value of gui/theme/lcd_subpixel_layout project settings. + LCD subpixel anti-aliasing mode is suitable only for rendering horizontal, unscaled text in 2D. + + + + + Unknown or unsupported subpixel layout, LCD subpixel antialiasing is disabled. + + + + + Horizontal RGB subpixel layout. + + + + + Horizontal BGR subpixel layout. + + + + + Vertical RGB subpixel layout. + + + + + Vertical BGR subpixel layout. + + + + + Represents the size of the enum. + + + + + Text direction is determined based on contents and current locale. + + + + + Text is written from left to right. + + + + + Text is written from right to left. + + + + + Text writing direction is the same as base string writing direction. Used for BiDi override only. + + + + + Text is written horizontally. + + + + + Left to right text is written vertically from top to bottom. + Right to left text is written vertically from bottom to top. + + + + + Do not justify text. + + + + + Justify text by adding and removing kashidas. + + + + + Justify text by changing width of the spaces between the words. + + + + + Remove trailing and leading spaces from the justified text. + + + + + Only apply justification to the part of the text after the last tab. + + + + + Apply justification to the trimmed line with ellipsis. + + + + + Do not apply justification to the last line of the paragraph. + + + + + Do not apply justification to the last line of the paragraph with visible characters (takes precedence over ). + + + + + Always apply justification to the paragraphs with a single line ( and are ignored). + + + + + Autowrap is disabled. + + + + + 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. + + + + + Wraps the text inside the node's bounding rectangle by soft-breaking between words. + + + + + Behaves similarly to , but force-breaks a word if that single word does not fit in one line. + + + + + Do not break the line. + + + + + Break the line at the line mandatory break characters (e.g. "\n"). + + + + + Break the line between the words. + + + + + Break the line between any unconnected graphemes. + + + + + Should be used only in conjunction with , break the line between any unconnected graphemes, if it's impossible to break it between the words. + + + + + Remove edge spaces from the broken line segments. + + + + + Subtract first line indentation width from all lines after the first one. + + + + + Trims text before the shaping. e.g, increasing or value is visually identical to typing the text. + Note: In this mode, trimmed text is not processed at all. It is not accounted for in line breaking and size calculations. + + + + + Displays glyphs that are mapped to the first or characters from the beginning of the text. + + + + + Displays or glyphs, starting from the left or from the right, depending on value. + + + + + Displays or glyphs, starting from the left. + + + + + Displays or glyphs, starting from the right. + + + + + No text trimming is performed. + + + + + Trims the text per character. + + + + + Trims the text per word. + + + + + Trims the text per character and adds an ellipsis to indicate that parts are hidden. + + + + + Trims the text per word and adds an ellipsis to indicate that parts are hidden. + + + + + No trimming is performed. + + + + + Trims the text when it exceeds the given width. + + + + + Trims the text per word instead of per grapheme. + + + + + Determines whether an ellipsis should be added at the end of the text. + + + + + Determines whether the ellipsis at the end of the text is enforced and may not be hidden. + + + + + Accounts for the text being justified before attempting to trim it (see ). + + + + + Grapheme is supported by the font, and can be drawn. + + + + + Grapheme is part of right-to-left or bottom-to-top run. + + + + + Grapheme is not part of source text, it was added by justification process. + + + + + Grapheme is whitespace. + + + + + Grapheme is mandatory break point (e.g. "\n"). + + + + + Grapheme is optional break point (e.g. space). + + + + + Grapheme is the tabulation character. + + + + + Grapheme is kashida. + + + + + Grapheme is punctuation character. + + + + + Grapheme is underscore character. + + + + + Grapheme is connected to the previous grapheme. Breaking line before this grapheme is not safe. + + + + + It is safe to insert a U+0640 before this grapheme for elongation. + + + + + Grapheme is an object replacement character for the embedded object. + + + + + Grapheme is a soft hyphen. + + + + + Disables font hinting (smoother but less crisp). + + + + + Use the light font hinting mode. + + + + + Use the default font hinting mode (crisper but less smooth). + Note: This hinting mode changes both horizontal and vertical glyph metrics. If applied to monospace font, some glyphs might have different width. + + + + + Glyph horizontal position is rounded to the whole pixel size, each glyph is rasterized once. + + + + + Glyph horizontal position is rounded based on font size. + - To one quarter of the pixel size if font size is smaller or equal to . + - To one half of the pixel size if font size is smaller or equal to . + - To the whole pixel size for larger fonts. + + + + + Glyph horizontal position is rounded to one half of the pixel size, each glyph is rasterized up to two times. + + + + + Glyph horizontal position is rounded to one quarter of the pixel size, each glyph is rasterized up to four times. + + + + + Maximum font size which will use one half of the pixel subpixel positioning in mode. + + + + + Maximum font size which will use one quarter of the pixel subpixel positioning in mode. + + + + + TextServer supports simple text layouts. + + + + + TextServer supports bidirectional text layouts. + + + + + TextServer supports vertical layouts. + + + + + TextServer supports complex text shaping. + + + + + TextServer supports justification using kashidas. + + + + + TextServer supports complex line/word breaking rules (e.g. dictionary based). + + + + + TextServer supports loading bitmap fonts. + + + + + TextServer supports loading dynamic (TrueType, OpeType, etc.) fonts. + + + + + TextServer supports multichannel signed distance field dynamic font rendering. + + + + + TextServer supports loading system fonts. + + + + + TextServer supports variable fonts. + + + + + TextServer supports locale dependent and context sensitive case conversion. + + + + + TextServer require external data file for some features, see . + + + + + TextServer supports UAX #31 identifier validation, see . + + + + + TextServer supports Unicode Technical Report #36 and Unicode Technical Standard #39 based spoof detection features. + + + + + Contour point is on the curve. + + + + + Contour point isn't on the curve, but serves as a control point for a conic (quadratic) Bézier arc. + + + + + Contour point isn't on the curve, but serves as a control point for a cubic Bézier arc. + + + + + Spacing for each glyph. + + + + + Spacing for the space character. + + + + + Spacing at the top of the line. + + + + + Spacing at the bottom of the line. + + + + + Represents the size of the enum. + + + + + Font is bold. + + + + + Font is italic or oblique. + + + + + Font have fixed-width characters. + + + + + Use default Unicode BiDi algorithm. + + + + + BiDi override for URI. + + + + + BiDi override for file path. + + + + + BiDi override for email. + + + + + BiDi override for lists. Structured text options: list separator . + + + + + BiDi override for GDScript. + + + + + User defined structured text BiDi override function. + + + + + Bitmap font is not scaled. + + + + + Bitmap font is scaled to the closest integer multiple of the font's fixed size. This is the recommended option for pixel art fonts. + + + + + Bitmap font is scaled to an arbitrary (fractional) size. This is the recommended option for non-pixel art fonts. + + + + + Returns if the server supports a feature. + + + + + Returns the name of the server interface. + + + + + Returns text server features, see . + + + + + Loads optional TextServer database (e.g. ICU break iterators and dictionaries). + Note: This function should be called before any other TextServer functions used, otherwise it won't have any effect. + + + + + Returns default TextServer database (e.g. ICU break iterators and dictionaries) filename. + + + + + Returns TextServer database (e.g. ICU break iterators and dictionaries) description. + + + + + Saves optional TextServer database (e.g. ICU break iterators and dictionaries) to the file. + Note: This function is used by during project export, to include TextServer database. + + + + + Returns default TextServer database (e.g. ICU break iterators and dictionaries). + + + + + Returns if locale is right-to-left. + + + + + Converts readable feature, variation, script, or language name to OpenType tag. + + + + + Converts OpenType tag to readable feature, variation, script, or language name. + + + + + Returns if is valid resource owned by this text server. + + + + + Frees an object created by this . + + + + + Creates a new, empty font cache entry resource. To free the resulting resource, use the method. + + + + + Creates a new variation existing font which is reusing the same glyph cache and font data. To free the resulting resource, use the method. + + + + + Sets font source data, e.g contents of the dynamic font source file. + + + + + Sets font source data, e.g contents of the dynamic font source file. + + + + + Sets an active face index in the TrueType / OpenType collection. + + + + + Returns an active face index in the TrueType / OpenType collection. + + + + + Returns number of faces in the TrueType / OpenType collection. + + + + + Sets the font style flags, see . + Note: This value is used for font matching only and will not affect font rendering. Use , , , or instead. + + + + + Returns font style flags, see . + + + + + Sets the font family name. + + + + + Returns font family name. + + + + + Returns with OpenType font name strings (localized font names, version, description, license information, sample text, etc.). + + + + + Sets the font style name. + + + + + Returns font style name. + + + + + Sets weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + Note: This value is used for font matching only and will not affect font rendering. Use , , or instead. + + + + + Returns weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Sets font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + Note: This value is used for font matching only and will not affect font rendering. Use , , or instead. + + + + + Returns font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Sets font anti-aliasing mode. + + + + + Returns font anti-aliasing mode. + + + + + If set to , embedded font bitmap loading is disabled (bitmap-only and color fonts ignore this property). + + + + + Returns whether the font's embedded bitmap loading is disabled. + + + + + If set to font texture mipmap generation is enabled. + + + + + Returns if font texture mipmap generation is enabled. + + + + + If set to , glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + Note: MSDF font rendering does not render glyphs with overlapping shapes correctly. Overlapping shapes are not valid per the OpenType standard, but are still commonly found in many font files, especially those converted by Google Fonts. To avoid issues with overlapping glyphs, consider downloading the font file directly from the type foundry instead of relying on Google Fonts. + + + + + Returns if glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + + + + + Sets the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Returns the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Sets source font size used to generate MSDF textures. + + + + + Returns source font size used to generate MSDF textures. + + + + + Sets bitmap font fixed size. If set to value greater than zero, same cache entry will be used for all font sizes. + + + + + Returns bitmap font fixed size. + + + + + Sets bitmap font scaling mode. This property is used only if fixed_size is greater than zero. + + + + + Returns bitmap font scaling mode. + + + + + If set to , system fonts can be automatically used as fallbacks. + + + + + Returns if system fonts can be automatically used as fallbacks. + + + + + If set to auto-hinting is preferred over font built-in hinting. + + + + + Returns if auto-hinting is supported and preferred over font built-in hinting. Used by dynamic fonts only. + + + + + Sets font hinting mode. Used by dynamic fonts only. + + + + + Returns the font hinting mode. Used by dynamic fonts only. + + + + + Sets font subpixel glyph positioning mode. + + + + + Returns font subpixel glyph positioning mode. + + + + + Sets glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Returns glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Sets font embolden strength. If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Returns font embolden strength. + + + + + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Returns the spacing for (see ) in pixels (not relative to the font size). + + + + + Sets extra baseline offset (as a fraction of font height). + + + + + Returns extra baseline offset (as a fraction of font height). + + + + + Sets 2D transform, applied to the font outlines, can be used for slanting, flipping, and rotating glyphs. + For example, to simulate italic typeface by slanting, apply the following transform Transform2D(1.0, slant, 0.0, 1.0, 0.0, 0.0). + + + + + Returns 2D transform applied to the font outlines. + + + + + Sets variation coordinates for the specified font cache entry. See for more info. + + + + + Returns variation coordinates for the specified font cache entry. See for more info. + + + + + Sets font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Returns font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Returns list of the font sizes in the cache. Each size is with font size and outline size. + + + + + Removes all font sizes from the cache entry. + + + + + Removes specified font size from the cache entry. + + + + + Sets the font ascent (number of pixels above the baseline). + + + + + Returns the font ascent (number of pixels above the baseline). + + + + + Sets the font descent (number of pixels below the baseline). + + + + + Returns the font descent (number of pixels below the baseline). + + + + + Sets pixel offset of the underline below the baseline. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Sets thickness of the underline in pixels. + + + + + Returns thickness of the underline in pixels. + + + + + Sets scaling factor of the color bitmap font. + + + + + Returns scaling factor of the color bitmap font. + + + + + Returns number of textures used by font cache entry. + + + + + Removes all textures from font cache entry. + Note: This function will not remove glyphs associated with the texture, use to remove them manually. + + + + + Removes specified texture from the cache entry. + Note: This function will not remove glyphs associated with the texture, remove them manually, using . + + + + + Sets font cache texture image data. + + + + + Returns font cache texture image data. + + + + + Sets array containing glyph packing data. + + + + + Sets array containing glyph packing data. + + + + + Returns array containing glyph packing data. + + + + + Returns list of rendered glyphs in the cache entry. + + + + + Removes all rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Removes specified rendered glyph information from the cache entry. + Note: This function will not remove textures associated with the glyphs, use to remove them manually. + + + + + Returns glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Sets glyph advance (offset of the next glyph). + Note: Advance for glyphs outlines is the same as the base glyph advance and is not saved. + + + + + Returns glyph offset from the baseline. + + + + + Sets glyph offset from the baseline. + + + + + Returns size of the glyph. + + + + + Sets size of the glyph. + + + + + Returns rectangle in the cache texture containing the glyph. + + + + + Sets rectangle in the cache texture containing the glyph. + + + + + Returns index of the cache texture containing the glyph. + + + + + Sets index of the cache texture containing the glyph. + + + + + Returns resource ID of the cache texture containing the glyph. + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + + + + Returns size of the cache texture containing the glyph. + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + + + + Returns outline contours of the glyph as a with the following contents: + points - [], containing outline points. x and y are point coordinates. z is the type of the point, using the values. + contours - [], containing indices the end points of each contour. + orientation - , contour orientation. If , clockwise contours must be filled. + - Two successive points indicate a line segment. + - One point between two points indicates a single conic (quadratic) Bézier arc. + - Two points between two points indicate a single cubic Bézier arc. + - Two successive points indicate two successive conic (quadratic) Bézier arcs with a virtual point at their middle. + - Each contour is closed. The last point of a contour uses the first point of a contour as its next point, and vice versa. The first point can be point. + + + + + Returns list of the kerning overrides. + + + + + Removes all kerning overrides. + + + + + Removes kerning override for the pair of glyphs. + + + + + Sets kerning for the pair of glyphs. + + + + + Returns kerning for the pair of glyphs. + + + + + Returns the glyph index of a , optionally modified by the . See . + + + + + Returns character code associated with , or 0 if is invalid. See . + + + + + Returns if a Unicode is available in the font. + + + + + Returns a string containing all the characters available in the font. + + + + + Returns an array containing all glyph indices in the font. + + + + + Renders the range of characters to the font cache texture. + + + + + Renders specified glyph to the font cache texture. + + + + + Draws single glyph into a canvas item at the position, using at the size . + Note: Glyph index is specific to the font, use glyphs indices returned by or . + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws single glyph outline of size into a canvas item at the position, using at the size . + Note: Glyph index is specific to the font, use glyphs indices returned by or . + Note: If there are pending glyphs to render, calling this function might trigger the texture cache update. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns , if font supports given language (ISO 639 code). + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Remove language support override. + + + + + Returns list of language support overrides. + + + + + Returns , if font supports given script (ISO 15924 code). + + + + + Adds override for . + + + + + Returns if support override is enabled for the . + + + + + Removes script support override. + + + + + Returns list of script support overrides. + + + + + Sets font OpenType feature set override. + + + + + Returns font OpenType feature set override. + + + + + Returns the dictionary of the supported OpenType features. + + + + + Returns the dictionary of the supported OpenType variation coordinates. + + + + + Returns the font oversampling factor, shared by all fonts in the TextServer. + + + + + Sets oversampling factor, shared by all font in the TextServer. + Note: This value can be automatically changed by display server. + + + + + Returns size of the replacement character (box with character hexadecimal code that is drawn in place of invalid characters). + + + + + Draws box displaying character hexadecimal code. Used for replacing missing characters. + + + + + Creates a new buffer for complex text layout, with the given and . To free the resulting buffer, use method. + Note: Direction is ignored if server does not support feature (supported by ). + Note: Orientation is ignored if server does not support feature (supported by ). + + + + + Clears text buffer (removes text and inline objects). + + + + + Sets desired text direction. If set to , direction will be detected based on the buffer contents and current locale. + Note: Direction is ignored if server does not support feature (supported by ). + + + + + Returns direction of the text. + + + + + Returns direction of the text, inferred by the BiDi algorithm. + + + + + Overrides BiDi for the structured text. + Override ranges should cover full source text without overlaps. BiDi algorithm will be used on each range separately. + + + + + Sets custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Returns custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Sets ellipsis character used for text clipping. + + + + + Returns ellipsis character used for text clipping. + + + + + Sets desired text orientation. + Note: Orientation is ignored if server does not support feature (supported by ). + + + + + Returns text orientation. + + + + + If set to text buffer will display invalid characters as hexadecimal codes, otherwise nothing is displayed. + + + + + Returns if text buffer is configured to display hexadecimal codes in place of invalid characters. + Note: If set to , nothing is displayed in place of invalid characters. + + + + + If set to text buffer will display control characters. + + + + + Returns if text buffer is configured to display control characters. + + + + + Sets extra spacing added between glyphs or lines in pixels. + + + + + Returns extra spacing added between glyphs or lines in pixels. + + + + + Adds text span and font to draw it to the text buffer. + + + + + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Sets new size and alignment of embedded object. + + + + + Returns number of text spans added using or . + + + + + Returns text span metadata. + + + + + Changes text span font, font size, and OpenType features, without changing the text. + + + + + Returns text buffer for the substring of the text in the text buffer (including inline objects). + + + + + Returns the parent buffer from which the substring originates. + + + + + Adjusts text width to fit to specified width, returns new text width. + + + + + Aligns shaped text to the given tab-stops. + + + + + Aligns shaped text to the given tab-stops. + + + + + Shapes buffer if it's not shaped. Returns if the string is shaped successfully. + Note: It is not necessary to call this function manually, buffer will be shaped automatically as soon as any of its output data is requested. + + + + + Returns if buffer is successfully shaped. + + + + + Returns if text buffer contains any visible characters. + + + + + Returns an array of glyphs in the visual order. + + + + + Returns text glyphs in the logical order. + + + + + Returns number of glyphs in the buffer. + + + + + Returns substring buffer character range in the parent buffer. + + + + + Breaks text to the lines and columns. Returns character ranges for each segment. + + + + + Breaks text to the lines and columns. Returns character ranges for each segment. + + + + + Breaks text to the lines and returns character ranges for each line. + + + + + Breaks text into words and returns array of character ranges. Use to set what characters are used for breaking (see ). + + + + + Returns the position of the overrun trim. + + + + + Returns position of the ellipsis. + + + + + Returns array of the glyphs in the ellipsis. + + + + + Returns number of glyphs in the ellipsis. + + + + + Trims text if it exceeds the given width. + + + + + Returns array of inline objects. + + + + + Returns bounding rectangle of the inline object. + + + + + Returns the character range of the inline object. + + + + + Returns the glyph index of the inline object. + + + + + Returns size of the text. + + + + + Returns the text ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + Note: Overall ascent can be higher than font ascent, if some glyphs are displaced from the baseline. + + + + + Returns the text descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + Note: Overall descent can be higher than font descent, if some glyphs are displaced from the baseline. + + + + + Returns width (for horizontal layout) or height (for vertical) of the text. + + + + + Returns pixel offset of the underline below the baseline. + + + + + Returns thickness of the underline. + + + + + Returns shapes of the carets corresponding to the character offset in the text. Returned caret shape is 1 pixel wide rectangle. + + + + + Returns selection rectangles for the specified character range. + + + + + Returns grapheme index at the specified pixel offset at the baseline, or -1 if none is found. + + + + + Returns caret character offset at the specified pixel offset at the baseline. This function always returns a valid position. + + + + + Returns composite character's bounds as offsets from the start of the line. + + + + + Returns grapheme end position closest to the . + + + + + Returns grapheme start position closest to the . + + + + + Returns array of the composite character boundaries. + + + + + Returns composite character end position closest to the . + + + + + Returns composite character start position closest to the . + + + + + Returns composite character position closest to the . + + + + + Draw shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draw the outline of the shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns dominant direction of in the range of text. + + + + + Converts a number from the Western Arabic (0..9) to the numeral systems used in . + If is omitted, the active locale will be used. + + + + + Converts from the numeral systems used in to Western Arabic (0..9). + + + + + Returns percent sign used in the . + + + + + Returns an array of the word break boundaries. Elements in the returned array are the offsets of the start and end of words. Therefore the length of the array is always even. + When is greater than zero, line break boundaries are returned instead. + + var ts = TextServerManager.get_primary_interface() + print(ts.string_get_word_breaks("The Godot Engine, 4")) # Prints [0, 3, 4, 9, 10, 16, 18, 19], which corresponds to the following substrings: "The", "Godot", "Engine", "4" + print(ts.string_get_word_breaks("The Godot Engine, 4", "en", 5)) # Prints [0, 3, 4, 9, 10, 15, 15, 19], which corresponds to the following substrings: "The", "Godot", "Engin", "e, 4" + print(ts.string_get_word_breaks("The Godot Engine, 4", "en", 10)) # Prints [0, 9, 10, 19], which corresponds to the following substrings: "The Godot", "Engine, 4" + + + + + + Returns array of the composite character boundaries. + + var ts = TextServerManager.get_primary_interface() + print(ts.string_get_character_breaks("Test ❤️‍🔥 Test")) # Prints [1, 2, 3, 4, 5, 9, 10, 11, 12, 13, 14] + + + + + + Returns index of the first string in which is visually confusable with the , or -1 if none is found. + Note: This method doesn't detect invisible characters, for spoof detection use it in combination with . + Note: Always returns -1 if the server does not support the feature. + + + + + Returns index of the first string in which is visually confusable with the , or -1 if none is found. + Note: This method doesn't detect invisible characters, for spoof detection use it in combination with . + Note: Always returns -1 if the server does not support the feature. + + + + + Returns if is likely to be an attempt at confusing the reader. + Note: Always returns if the server does not support the feature. + + + + + Strips diacritics from the string. + Note: The result may be longer or shorter than the original. + + + + + Returns if is a valid identifier. + If the text server supports the feature, a valid identifier must: + - Conform to normalization form C. + - Begin with a Unicode character of class XID_Start or "_". + - May contain Unicode characters of class XID_Continue in the other positions. + - Use UAX #31 recommended scripts only (mixed scripts are allowed). + If the feature is not supported, a valid identifier must: + - Begin with a Unicode character of class XID_Start or "_". + - May contain Unicode characters of class XID_Continue in the other positions. + + + + + Returns if the given code point is a valid letter, i.e. it belongs to the Unicode category "L". + + + + + Returns the string converted to uppercase. + Note: Casing is locale dependent and context sensitive if server support feature (supported by ). + Note: The result may be longer or shorter than the original. + + + + + Returns the string converted to lowercase. + Note: Casing is locale dependent and context sensitive if server support feature (supported by ). + Note: The result may be longer or shorter than the original. + + + + + Returns the string converted to title case. + Note: Casing is locale dependent and context sensitive if server support feature (supported by ). + Note: The result may be longer or shorter than the original. + + + + + Default implementation of the BiDi algorithm override function. See for more info. + + + + + Breaks text into words and returns array of character ranges. Use to set what characters are used for breaking (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_feature' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_features' method. + + + + + Cached name for the 'load_support_data' method. + + + + + Cached name for the 'get_support_data_filename' method. + + + + + Cached name for the 'get_support_data_info' method. + + + + + Cached name for the 'save_support_data' method. + + + + + Cached name for the 'get_support_data' method. + + + + + Cached name for the 'is_locale_right_to_left' method. + + + + + Cached name for the 'name_to_tag' method. + + + + + Cached name for the 'tag_to_name' method. + + + + + Cached name for the 'has' method. + + + + + Cached name for the 'free_rid' method. + + + + + Cached name for the 'create_font' method. + + + + + Cached name for the 'create_font_linked_variation' method. + + + + + Cached name for the 'font_set_data' method. + + + + + Cached name for the 'font_set_face_index' method. + + + + + Cached name for the 'font_get_face_index' method. + + + + + Cached name for the 'font_get_face_count' method. + + + + + Cached name for the 'font_set_style' method. + + + + + Cached name for the 'font_get_style' method. + + + + + Cached name for the 'font_set_name' method. + + + + + Cached name for the 'font_get_name' method. + + + + + Cached name for the 'font_get_ot_name_strings' method. + + + + + Cached name for the 'font_set_style_name' method. + + + + + Cached name for the 'font_get_style_name' method. + + + + + Cached name for the 'font_set_weight' method. + + + + + Cached name for the 'font_get_weight' method. + + + + + Cached name for the 'font_set_stretch' method. + + + + + Cached name for the 'font_get_stretch' method. + + + + + Cached name for the 'font_set_antialiasing' method. + + + + + Cached name for the 'font_get_antialiasing' method. + + + + + Cached name for the 'font_set_disable_embedded_bitmaps' method. + + + + + Cached name for the 'font_get_disable_embedded_bitmaps' method. + + + + + Cached name for the 'font_set_generate_mipmaps' method. + + + + + Cached name for the 'font_get_generate_mipmaps' method. + + + + + Cached name for the 'font_set_multichannel_signed_distance_field' method. + + + + + Cached name for the 'font_is_multichannel_signed_distance_field' method. + + + + + Cached name for the 'font_set_msdf_pixel_range' method. + + + + + Cached name for the 'font_get_msdf_pixel_range' method. + + + + + Cached name for the 'font_set_msdf_size' method. + + + + + Cached name for the 'font_get_msdf_size' method. + + + + + Cached name for the 'font_set_fixed_size' method. + + + + + Cached name for the 'font_get_fixed_size' method. + + + + + Cached name for the 'font_set_fixed_size_scale_mode' method. + + + + + Cached name for the 'font_get_fixed_size_scale_mode' method. + + + + + Cached name for the 'font_set_allow_system_fallback' method. + + + + + Cached name for the 'font_is_allow_system_fallback' method. + + + + + Cached name for the 'font_set_force_autohinter' method. + + + + + Cached name for the 'font_is_force_autohinter' method. + + + + + Cached name for the 'font_set_hinting' method. + + + + + Cached name for the 'font_get_hinting' method. + + + + + Cached name for the 'font_set_subpixel_positioning' method. + + + + + Cached name for the 'font_get_subpixel_positioning' method. + + + + + Cached name for the 'font_set_keep_rounding_remainders' method. + + + + + Cached name for the 'font_get_keep_rounding_remainders' method. + + + + + Cached name for the 'font_set_embolden' method. + + + + + Cached name for the 'font_get_embolden' method. + + + + + Cached name for the 'font_set_spacing' method. + + + + + Cached name for the 'font_get_spacing' method. + + + + + Cached name for the 'font_set_baseline_offset' method. + + + + + Cached name for the 'font_get_baseline_offset' method. + + + + + Cached name for the 'font_set_transform' method. + + + + + Cached name for the 'font_get_transform' method. + + + + + Cached name for the 'font_set_variation_coordinates' method. + + + + + Cached name for the 'font_get_variation_coordinates' method. + + + + + Cached name for the 'font_set_oversampling' method. + + + + + Cached name for the 'font_get_oversampling' method. + + + + + Cached name for the 'font_get_size_cache_list' method. + + + + + Cached name for the 'font_clear_size_cache' method. + + + + + Cached name for the 'font_remove_size_cache' method. + + + + + Cached name for the 'font_set_ascent' method. + + + + + Cached name for the 'font_get_ascent' method. + + + + + Cached name for the 'font_set_descent' method. + + + + + Cached name for the 'font_get_descent' method. + + + + + Cached name for the 'font_set_underline_position' method. + + + + + Cached name for the 'font_get_underline_position' method. + + + + + Cached name for the 'font_set_underline_thickness' method. + + + + + Cached name for the 'font_get_underline_thickness' method. + + + + + Cached name for the 'font_set_scale' method. + + + + + Cached name for the 'font_get_scale' method. + + + + + Cached name for the 'font_get_texture_count' method. + + + + + Cached name for the 'font_clear_textures' method. + + + + + Cached name for the 'font_remove_texture' method. + + + + + Cached name for the 'font_set_texture_image' method. + + + + + Cached name for the 'font_get_texture_image' method. + + + + + Cached name for the 'font_set_texture_offsets' method. + + + + + Cached name for the 'font_get_texture_offsets' method. + + + + + Cached name for the 'font_get_glyph_list' method. + + + + + Cached name for the 'font_clear_glyphs' method. + + + + + Cached name for the 'font_remove_glyph' method. + + + + + Cached name for the 'font_get_glyph_advance' method. + + + + + Cached name for the 'font_set_glyph_advance' method. + + + + + Cached name for the 'font_get_glyph_offset' method. + + + + + Cached name for the 'font_set_glyph_offset' method. + + + + + Cached name for the 'font_get_glyph_size' method. + + + + + Cached name for the 'font_set_glyph_size' method. + + + + + Cached name for the 'font_get_glyph_uv_rect' method. + + + + + Cached name for the 'font_set_glyph_uv_rect' method. + + + + + Cached name for the 'font_get_glyph_texture_idx' method. + + + + + Cached name for the 'font_set_glyph_texture_idx' method. + + + + + Cached name for the 'font_get_glyph_texture_rid' method. + + + + + Cached name for the 'font_get_glyph_texture_size' method. + + + + + Cached name for the 'font_get_glyph_contours' method. + + + + + Cached name for the 'font_get_kerning_list' method. + + + + + Cached name for the 'font_clear_kerning_map' method. + + + + + Cached name for the 'font_remove_kerning' method. + + + + + Cached name for the 'font_set_kerning' method. + + + + + Cached name for the 'font_get_kerning' method. + + + + + Cached name for the 'font_get_glyph_index' method. + + + + + Cached name for the 'font_get_char_from_glyph_index' method. + + + + + Cached name for the 'font_has_char' method. + + + + + Cached name for the 'font_get_supported_chars' method. + + + + + Cached name for the 'font_get_supported_glyphs' method. + + + + + Cached name for the 'font_render_range' method. + + + + + Cached name for the 'font_render_glyph' method. + + + + + Cached name for the 'font_draw_glyph' method. + + + + + Cached name for the 'font_draw_glyph_outline' method. + + + + + Cached name for the 'font_is_language_supported' method. + + + + + Cached name for the 'font_set_language_support_override' method. + + + + + Cached name for the 'font_get_language_support_override' method. + + + + + Cached name for the 'font_remove_language_support_override' method. + + + + + Cached name for the 'font_get_language_support_overrides' method. + + + + + Cached name for the 'font_is_script_supported' method. + + + + + Cached name for the 'font_set_script_support_override' method. + + + + + Cached name for the 'font_get_script_support_override' method. + + + + + Cached name for the 'font_remove_script_support_override' method. + + + + + Cached name for the 'font_get_script_support_overrides' method. + + + + + Cached name for the 'font_set_opentype_feature_overrides' method. + + + + + Cached name for the 'font_get_opentype_feature_overrides' method. + + + + + Cached name for the 'font_supported_feature_list' method. + + + + + Cached name for the 'font_supported_variation_list' method. + + + + + Cached name for the 'font_get_global_oversampling' method. + + + + + Cached name for the 'font_set_global_oversampling' method. + + + + + Cached name for the 'get_hex_code_box_size' method. + + + + + Cached name for the 'draw_hex_code_box' method. + + + + + Cached name for the 'create_shaped_text' method. + + + + + Cached name for the 'shaped_text_clear' method. + + + + + Cached name for the 'shaped_text_set_direction' method. + + + + + Cached name for the 'shaped_text_get_direction' method. + + + + + Cached name for the 'shaped_text_get_inferred_direction' method. + + + + + Cached name for the 'shaped_text_set_bidi_override' method. + + + + + Cached name for the 'shaped_text_set_custom_punctuation' method. + + + + + Cached name for the 'shaped_text_get_custom_punctuation' method. + + + + + Cached name for the 'shaped_text_set_custom_ellipsis' method. + + + + + Cached name for the 'shaped_text_get_custom_ellipsis' method. + + + + + Cached name for the 'shaped_text_set_orientation' method. + + + + + Cached name for the 'shaped_text_get_orientation' method. + + + + + Cached name for the 'shaped_text_set_preserve_invalid' method. + + + + + Cached name for the 'shaped_text_get_preserve_invalid' method. + + + + + Cached name for the 'shaped_text_set_preserve_control' method. + + + + + Cached name for the 'shaped_text_get_preserve_control' method. + + + + + Cached name for the 'shaped_text_set_spacing' method. + + + + + Cached name for the 'shaped_text_get_spacing' method. + + + + + Cached name for the 'shaped_text_add_string' method. + + + + + Cached name for the 'shaped_text_add_object' method. + + + + + Cached name for the 'shaped_text_resize_object' method. + + + + + Cached name for the 'shaped_get_span_count' method. + + + + + Cached name for the 'shaped_get_span_meta' method. + + + + + Cached name for the 'shaped_set_span_update_font' method. + + + + + Cached name for the 'shaped_text_substr' method. + + + + + Cached name for the 'shaped_text_get_parent' method. + + + + + Cached name for the 'shaped_text_fit_to_width' method. + + + + + Cached name for the 'shaped_text_tab_align' method. + + + + + Cached name for the 'shaped_text_shape' method. + + + + + Cached name for the 'shaped_text_is_ready' method. + + + + + Cached name for the 'shaped_text_has_visible_chars' method. + + + + + Cached name for the 'shaped_text_get_glyphs' method. + + + + + Cached name for the 'shaped_text_sort_logical' method. + + + + + Cached name for the 'shaped_text_get_glyph_count' method. + + + + + Cached name for the 'shaped_text_get_range' method. + + + + + Cached name for the 'shaped_text_get_line_breaks_adv' method. + + + + + Cached name for the 'shaped_text_get_line_breaks' method. + + + + + Cached name for the 'shaped_text_get_word_breaks' method. + + + + + Cached name for the 'shaped_text_get_trim_pos' method. + + + + + Cached name for the 'shaped_text_get_ellipsis_pos' method. + + + + + Cached name for the 'shaped_text_get_ellipsis_glyphs' method. + + + + + Cached name for the 'shaped_text_get_ellipsis_glyph_count' method. + + + + + Cached name for the 'shaped_text_overrun_trim_to_width' method. + + + + + Cached name for the 'shaped_text_get_objects' method. + + + + + Cached name for the 'shaped_text_get_object_rect' method. + + + + + Cached name for the 'shaped_text_get_object_range' method. + + + + + Cached name for the 'shaped_text_get_object_glyph' method. + + + + + Cached name for the 'shaped_text_get_size' method. + + + + + Cached name for the 'shaped_text_get_ascent' method. + + + + + Cached name for the 'shaped_text_get_descent' method. + + + + + Cached name for the 'shaped_text_get_width' method. + + + + + Cached name for the 'shaped_text_get_underline_position' method. + + + + + Cached name for the 'shaped_text_get_underline_thickness' method. + + + + + Cached name for the 'shaped_text_get_carets' method. + + + + + Cached name for the 'shaped_text_get_selection' method. + + + + + Cached name for the 'shaped_text_hit_test_grapheme' method. + + + + + Cached name for the 'shaped_text_hit_test_position' method. + + + + + Cached name for the 'shaped_text_get_grapheme_bounds' method. + + + + + Cached name for the 'shaped_text_next_grapheme_pos' method. + + + + + Cached name for the 'shaped_text_prev_grapheme_pos' method. + + + + + Cached name for the 'shaped_text_get_character_breaks' method. + + + + + Cached name for the 'shaped_text_next_character_pos' method. + + + + + Cached name for the 'shaped_text_prev_character_pos' method. + + + + + Cached name for the 'shaped_text_closest_character_pos' method. + + + + + Cached name for the 'shaped_text_draw' method. + + + + + Cached name for the 'shaped_text_draw_outline' method. + + + + + Cached name for the 'shaped_text_get_dominant_direction_in_range' method. + + + + + Cached name for the 'format_number' method. + + + + + Cached name for the 'parse_number' method. + + + + + Cached name for the 'percent_sign' method. + + + + + Cached name for the 'string_get_word_breaks' method. + + + + + Cached name for the 'string_get_character_breaks' method. + + + + + Cached name for the 'is_confusable' method. + + + + + Cached name for the 'spoof_check' method. + + + + + Cached name for the 'strip_diacritics' method. + + + + + Cached name for the 'is_valid_identifier' method. + + + + + Cached name for the 'is_valid_letter' method. + + + + + Cached name for the 'string_to_upper' method. + + + + + Cached name for the 'string_to_lower' method. + + + + + Cached name for the 'string_to_title' method. + + + + + Cached name for the 'parse_structured_text' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An implementation of that uses HarfBuzz, ICU and SIL Graphite to support BiDi, complex text layouts and contextual OpenType features. This is Godot's default primary interface. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A dummy interface that doesn't do anything. Useful for freeing up memory when rendering text is not needed, as text servers are resource-intensive. It can also be used for performance comparisons in complex GUIs to check the impact of text rendering. + A dummy text server is always available at the start of a project. Here's how to access it: + + var dummy_text_server = TextServerManager.find_interface("Dummy") + if dummy_text_server != null: + TextServerManager.set_primary_interface(dummy_text_server) + # If the other text servers are unneeded, they can be removed: + for i in TextServerManager.get_interface_count(): + var text_server = TextServerManager.get_interface(i) + if text_server != dummy_text_server: + TextServerManager.remove_interface(text_server) + + The command line argument --text-driver Dummy (case-sensitive) can be used to force the "Dummy" on any project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + External implementations should inherit from this class. + + + + + Optional. + This method is called before text server is unregistered. + + + + + Required. + Creates a new, empty font cache entry resource. + + + + + Optional, implement if font supports extra spacing or baseline offset. + Creates a new variation existing font which is reusing the same glyph cache and font data. + + + + + Required. + Creates a new buffer for complex text layout, with the given and . + + + + + Optional. + Draws box displaying character hexadecimal code. + + + + + Required. + Removes all rendered glyph information from the cache entry. + + + + + Optional. + Removes all kerning overrides. + + + + + Required. + Removes all font sizes from the cache entry. + + + + + Required. + Removes all textures from font cache entry. + + + + + Required. + Draws single glyph into a canvas item at the position, using at the size . + + + + + Required. + Draws single glyph outline of size into a canvas item at the position, using at the size . + + + + + Optional. + Returns font anti-aliasing mode. + + + + + Required. + Returns the font ascent (number of pixels above the baseline). + + + + + Optional. + Returns extra baseline offset (as a fraction of font height). + + + + + Required. + Returns character code associated with , or 0 if is invalid. + + + + + Required. + Returns the font descent (number of pixels below the baseline). + + + + + Optional. + Returns whether the font's embedded bitmap loading is disabled. + + + + + Optional. + Returns font embolden strength. + + + + + Optional. + Returns number of faces in the TrueType / OpenType collection. + + + + + Optional. + Returns an active face index in the TrueType / OpenType collection. + + + + + Required. + Returns bitmap font fixed size. + + + + + Required. + Returns bitmap font scaling mode. + + + + + Optional. + Returns if font texture mipmap generation is enabled. + + + + + Optional. + Returns the font oversampling factor, shared by all fonts in the TextServer. + + + + + Required. + Returns glyph advance (offset of the next glyph). + + + + + Optional. + Returns outline contours of the glyph. + + + + + Required. + Returns the glyph index of a , optionally modified by the . + + + + + Required. + Returns list of rendered glyphs in the cache entry. + + + + + Required. + Returns glyph offset from the baseline. + + + + + Required. + Returns size of the glyph. + + + + + Required. + Returns index of the cache texture containing the glyph. + + + + + Required. + Returns resource ID of the cache texture containing the glyph. + + + + + Required. + Returns size of the cache texture containing the glyph. + + + + + Required. + Returns rectangle in the cache texture containing the glyph. + + + + + Optional. + Returns the font hinting mode. Used by dynamic fonts only. + + + + + Optional. + Returns glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Optional. + Returns kerning for the pair of glyphs. + + + + + Optional. + Returns list of the kerning overrides. + + + + + Optional. + Returns if support override is enabled for the . + + + + + Optional. + Returns list of language support overrides. + + + + + Optional. + Returns the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Optional. + Returns source font size used to generate MSDF textures. + + + + + Optional. + Returns font family name. + + + + + Optional. + Returns font OpenType feature set override. + + + + + Optional. + Returns with OpenType font name strings (localized font names, version, description, license information, sample text, etc.). + + + + + Optional. + Returns font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Required. + Returns scaling factor of the color bitmap font. + + + + + Optional. + Returns if support override is enabled for the . + + + + + Optional. + Returns list of script support overrides. + + + + + Required. + Returns list of the font sizes in the cache. Each size is with font size and outline size. + + + + + Optional. + Returns the spacing for (see ) in pixels (not relative to the font size). + + + + + Optional. + Returns font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Optional. + Returns font style flags, see . + + + + + Optional. + Returns font style name. + + + + + Optional. + Returns font subpixel glyph positioning mode. + + + + + Required. + Returns a string containing all the characters available in the font. + + + + + Required. + Returns an array containing all glyph indices in the font. + + + + + Required. + Returns number of textures used by font cache entry. + + + + + Required. + Returns font cache texture image data. + + + + + Optional. + Returns array containing glyph packing data. + + + + + Optional. + Returns 2D transform applied to the font outlines. + + + + + Required. + Returns pixel offset of the underline below the baseline. + + + + + Required. + Returns thickness of the underline in pixels. + + + + + Optional. + Returns variation coordinates for the specified font cache entry. + + + + + Optional. + Returns weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Required. + Returns if a Unicode is available in the font. + + + + + Optional. + Returns if system fonts can be automatically used as fallbacks. + + + + + Optional. + Returns if auto-hinting is supported and preferred over font built-in hinting. + + + + + Optional. + Returns , if font supports given language (ISO 639 code). + + + + + Optional. + Returns if glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. + + + + + Optional. + Returns , if font supports given script (ISO 15924 code). + + + + + Required. + Removes specified rendered glyph information from the cache entry. + + + + + Optional. + Removes kerning override for the pair of glyphs. + + + + + Optional. + Remove language support override. + + + + + Optional. + Removes script support override. + + + + + Required. + Removes specified font size from the cache entry. + + + + + Required. + Removes specified texture from the cache entry. + + + + + Optional. + Renders specified glyph to the font cache texture. + + + + + Optional. + Renders the range of characters to the font cache texture. + + + + + Optional. + If set to , system fonts can be automatically used as fallbacks. + + + + + Optional. + Sets font anti-aliasing mode. + + + + + Required. + Sets the font ascent (number of pixels above the baseline). + + + + + Optional. + Sets extra baseline offset (as a fraction of font height). + + + + + Optional. + Sets font source data, e.g contents of the dynamic font source file. + + + + + Required. + Sets the font descent (number of pixels below the baseline). + + + + + Optional. + If set to , embedded font bitmap loading is disabled. + + + + + Sets font embolden strength. If is not equal to zero, emboldens the font outlines. Negative values reduce the outline thickness. + + + + + Optional. + Sets an active face index in the TrueType / OpenType collection. + + + + + Required. + Sets bitmap font fixed size. If set to value greater than zero, same cache entry will be used for all font sizes. + + + + + Required. + Sets bitmap font scaling mode. This property is used only if fixed_size is greater than zero. + + + + + Optional. + If set to auto-hinting is preferred over font built-in hinting. + + + + + Optional. + If set to font texture mipmap generation is enabled. + + + + + Optional. + Sets oversampling factor, shared by all font in the TextServer. + + + + + Required. + Sets glyph advance (offset of the next glyph). + + + + + Required. + Sets glyph offset from the baseline. + + + + + Required. + Sets size of the glyph. + + + + + Required. + Sets index of the cache texture containing the glyph. + + + + + Required. + Sets rectangle in the cache texture containing the glyph. + + + + + Optional. + Sets font hinting mode. Used by dynamic fonts only. + + + + + Optional. + Sets glyph position rounding behavior. If set to , when aligning glyphs to the pixel boundaries rounding remainders are accumulated to ensure more uniform glyph distribution. This setting has no effect if subpixel positioning is enabled. + + + + + Optional. + Sets kerning for the pair of glyphs. + + + + + Optional. + Adds override for . + + + + + Optional. + Sets the width of the range around the shape between the minimum and maximum representable signed distance. + + + + + Optional. + Sets source font size used to generate MSDF textures. + + + + + Optional. + If set to , glyphs of all sizes are rendered using single multichannel signed distance field generated from the dynamic font vector data. MSDF rendering allows displaying the font at any scaling factor without blurriness, and without incurring a CPU cost when the font size changes (since the font no longer needs to be rasterized on the CPU). As a downside, font hinting is not available with MSDF. The lack of font hinting may result in less crisp and less readable fonts at small sizes. + + + + + Optional. + Sets the font family name. + + + + + Optional. + Sets font OpenType feature set override. + + + + + Optional. + Sets font oversampling factor, if set to 0.0 global oversampling factor is used instead. Used by dynamic fonts only. + + + + + Required. + Sets scaling factor of the color bitmap font. + + + + + Optional. + Adds override for . + + + + + Optional. + Sets the spacing for (see ) to in pixels (not relative to the font size). + + + + + Optional. + Sets font stretch amount, compared to a normal width. A percentage value between 50% and 200%. + + + + + Optional. + Sets the font style flags, see . + + + + + Optional. + Sets the font style name. + + + + + Optional. + Sets font subpixel glyph positioning mode. + + + + + Required. + Sets font cache texture image data. + + + + + Optional. + Sets array containing glyph packing data. + + + + + Optional. + Sets 2D transform, applied to the font outlines, can be used for slanting, flipping, and rotating glyphs. + + + + + Required. + Sets pixel offset of the underline below the baseline. + + + + + Required. + Sets thickness of the underline in pixels. + + + + + Optional. + Sets variation coordinates for the specified font cache entry. + + + + + Optional. + Sets weight (boldness) of the font. A value in the 100...999 range, normal font weight is 400, bold font weight is 700. + + + + + Optional. + Returns the dictionary of the supported OpenType features. + + + + + Optional. + Returns the dictionary of the supported OpenType variation coordinates. + + + + + Optional. + Converts a number from the Western Arabic (0..9) to the numeral systems used in . + + + + + Required. + Frees an object created by this . + + + + + Required. + Returns text server features, see . + + + + + Optional. + Returns size of the replacement character (box with character hexadecimal code that is drawn in place of invalid characters). + + + + + Required. + Returns the name of the server interface. + + + + + Optional. + Returns default TextServer database (e.g. ICU break iterators and dictionaries). + + + + + Optional. + Returns default TextServer database (e.g. ICU break iterators and dictionaries) filename. + + + + + Optional. + Returns TextServer database (e.g. ICU break iterators and dictionaries) description. + + + + + Required. + Returns if is valid resource owned by this text server. + + + + + Required. + Returns if the server supports a feature. + + + + + Optional. + Returns index of the first string in which is visually confusable with the , or -1 if none is found. + + + + + Required. + Returns if locale is right-to-left. + + + + + Optional. + Returns if is a valid identifier. + + + + + Optional. + Loads optional TextServer database (e.g. ICU break iterators and dictionaries). + + + + + Optional. + Converts readable feature, variation, script, or language name to OpenType tag. + + + + + Optional. + Converts from the numeral systems used in to Western Arabic (0..9). + + + + + Optional. + Default implementation of the BiDi algorithm override function. See for more info. + + + + + Optional. + Returns percent sign used in the . + + + + + Optional. + Saves optional TextServer database (e.g. ICU break iterators and dictionaries) to the file. + + + + + Required. + Returns number of text spans added using or . + + + + + Required. + Returns text span metadata. + + + + + Required. + Changes text span font, font size, and OpenType features, without changing the text. + + + + + Required. + Adds inline object to the text buffer, must be unique. In the text, object is represented as object replacement characters. + + + + + Required. + Adds text span and font to draw it to the text buffer. + + + + + Required. + Clears text buffer (removes text and inline objects). + + + + + Optional. + Returns composite character position closest to the . + + + + + Optional. + Draw shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + + + + Optional. + Draw the outline of the shaped text into a canvas item at a given position, with . specifies the leftmost point of the baseline (for horizontal layout) or topmost point of the baseline (for vertical layout). + + + + + Optional. + Adjusts text width to fit to specified width, returns new text width. + + + + + Required. + Returns the text ascent (number of pixels above the baseline for horizontal layout or to the left of baseline for vertical). + + + + + Optional. + Returns array of the composite character boundaries. + + + + + Optional. + Returns ellipsis character used for text clipping. + + + + + Optional. + Returns custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Required. + Returns the text descent (number of pixels below the baseline for horizontal layout or to the right of baseline for vertical). + + + + + Optional. + Returns direction of the text. + + + + + Optional. + Returns dominant direction of in the range of text. + + + + + Required. + Returns number of glyphs in the ellipsis. + + + + + Required. + Returns position of the ellipsis. + + + + + Required. + Returns number of glyphs in the buffer. + + + + + Optional. + Returns composite character's bounds as offsets from the start of the line. + + + + + Optional. + Returns direction of the text, inferred by the BiDi algorithm. + + + + + Optional. + Breaks text to the lines and returns character ranges for each line. + + + + + Optional. + Breaks text to the lines and columns. Returns character ranges for each segment. + + + + + Required. + Returns the glyph index of the inline object. + + + + + Required. + Returns the character range of the inline object. + + + + + Required. + Returns bounding rectangle of the inline object. + + + + + Required. + Returns array of inline objects. + + + + + Optional. + Returns text orientation. + + + + + Required. + Returns the parent buffer from which the substring originates. + + + + + Optional. + Returns if text buffer is configured to display control characters. + + + + + Optional. + Returns if text buffer is configured to display hexadecimal codes in place of invalid characters. + + + + + Required. + Returns substring buffer character range in the parent buffer. + + + + + Optional. + Returns selection rectangles for the specified character range. + + + + + Required. + Returns size of the text. + + + + + Optional. + Returns extra spacing added between glyphs or lines in pixels. + + + + + Required. + Returns the position of the overrun trim. + + + + + Required. + Returns pixel offset of the underline below the baseline. + + + + + Required. + Returns thickness of the underline. + + + + + Required. + Returns width (for horizontal layout) or height (for vertical) of the text. + + + + + Optional. + Breaks text into words and returns array of character ranges. Use to set what characters are used for breaking (see ). + + + + + Optional. + Returns grapheme index at the specified pixel offset at the baseline, or -1 if none is found. + + + + + Optional. + Returns caret character offset at the specified pixel offset at the baseline. This function always returns a valid position. + + + + + Required. + Returns if buffer is successfully shaped. + + + + + Optional. + Returns composite character end position closest to the . + + + + + Optional. + Returns grapheme end position closest to the . + + + + + Optional. + Trims text if it exceeds the given width. + + + + + Optional. + Returns composite character start position closest to the . + + + + + Optional. + Returns grapheme start position closest to the . + + + + + Required. + Sets new size and alignment of embedded object. + + + + + Optional. + Overrides BiDi for the structured text. + + + + + Optional. + Sets ellipsis character used for text clipping. + + + + + Optional. + Sets custom punctuation character list, used for word breaking. If set to empty string, server defaults are used. + + + + + Optional. + Sets desired text direction. If set to , direction will be detected based on the buffer contents and current locale. + + + + + Optional. + Sets desired text orientation. + + + + + Optional. + If set to text buffer will display control characters. + + + + + Optional. + If set to text buffer will display invalid characters as hexadecimal codes, otherwise nothing is displayed. + + + + + Optional. + Sets extra spacing added between glyphs or lines in pixels. + + + + + Required. + Shapes buffer if it's not shaped. Returns if the string is shaped successfully. + + + + + Required. + Returns text buffer for the substring of the text in the text buffer (including inline objects). + + + + + Optional. + Aligns shaped text to the given tab-stops. + + + + + Optional. + Updates break points in the shaped text. This method is called by default implementation of text breaking functions. + + + + + Optional. + Updates justification points in the shaped text. This method is called by default implementation of text justification functions. + + + + + Optional. + Returns if is likely to be an attempt at confusing the reader. + + + + + Optional. + Returns array of the composite character boundaries. + + + + + Optional. + Returns an array of the word break boundaries. Elements in the returned array are the offsets of the start and end of words. Therefore the length of the array is always even. + + + + + Optional. + Returns the string converted to lowercase. + + + + + Optional. + Returns the string converted to title case. + + + + + Optional. + Returns the string converted to uppercase. + + + + + Optional. + Strips diacritics from the string. + + + + + Optional. + Converts OpenType tag to readable feature, variation, script, or language name. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_cleanup' method. + + + + + Cached name for the '_create_font' method. + + + + + Cached name for the '_create_font_linked_variation' method. + + + + + Cached name for the '_create_shaped_text' method. + + + + + Cached name for the '_draw_hex_code_box' method. + + + + + Cached name for the '_font_clear_glyphs' method. + + + + + Cached name for the '_font_clear_kerning_map' method. + + + + + Cached name for the '_font_clear_size_cache' method. + + + + + Cached name for the '_font_clear_textures' method. + + + + + Cached name for the '_font_draw_glyph' method. + + + + + Cached name for the '_font_draw_glyph_outline' method. + + + + + Cached name for the '_font_get_antialiasing' method. + + + + + Cached name for the '_font_get_ascent' method. + + + + + Cached name for the '_font_get_baseline_offset' method. + + + + + Cached name for the '_font_get_char_from_glyph_index' method. + + + + + Cached name for the '_font_get_descent' method. + + + + + Cached name for the '_font_get_disable_embedded_bitmaps' method. + + + + + Cached name for the '_font_get_embolden' method. + + + + + Cached name for the '_font_get_face_count' method. + + + + + Cached name for the '_font_get_face_index' method. + + + + + Cached name for the '_font_get_fixed_size' method. + + + + + Cached name for the '_font_get_fixed_size_scale_mode' method. + + + + + Cached name for the '_font_get_generate_mipmaps' method. + + + + + Cached name for the '_font_get_global_oversampling' method. + + + + + Cached name for the '_font_get_glyph_advance' method. + + + + + Cached name for the '_font_get_glyph_contours' method. + + + + + Cached name for the '_font_get_glyph_index' method. + + + + + Cached name for the '_font_get_glyph_list' method. + + + + + Cached name for the '_font_get_glyph_offset' method. + + + + + Cached name for the '_font_get_glyph_size' method. + + + + + Cached name for the '_font_get_glyph_texture_idx' method. + + + + + Cached name for the '_font_get_glyph_texture_rid' method. + + + + + Cached name for the '_font_get_glyph_texture_size' method. + + + + + Cached name for the '_font_get_glyph_uv_rect' method. + + + + + Cached name for the '_font_get_hinting' method. + + + + + Cached name for the '_font_get_keep_rounding_remainders' method. + + + + + Cached name for the '_font_get_kerning' method. + + + + + Cached name for the '_font_get_kerning_list' method. + + + + + Cached name for the '_font_get_language_support_override' method. + + + + + Cached name for the '_font_get_language_support_overrides' method. + + + + + Cached name for the '_font_get_msdf_pixel_range' method. + + + + + Cached name for the '_font_get_msdf_size' method. + + + + + Cached name for the '_font_get_name' method. + + + + + Cached name for the '_font_get_opentype_feature_overrides' method. + + + + + Cached name for the '_font_get_ot_name_strings' method. + + + + + Cached name for the '_font_get_oversampling' method. + + + + + Cached name for the '_font_get_scale' method. + + + + + Cached name for the '_font_get_script_support_override' method. + + + + + Cached name for the '_font_get_script_support_overrides' method. + + + + + Cached name for the '_font_get_size_cache_list' method. + + + + + Cached name for the '_font_get_spacing' method. + + + + + Cached name for the '_font_get_stretch' method. + + + + + Cached name for the '_font_get_style' method. + + + + + Cached name for the '_font_get_style_name' method. + + + + + Cached name for the '_font_get_subpixel_positioning' method. + + + + + Cached name for the '_font_get_supported_chars' method. + + + + + Cached name for the '_font_get_supported_glyphs' method. + + + + + Cached name for the '_font_get_texture_count' method. + + + + + Cached name for the '_font_get_texture_image' method. + + + + + Cached name for the '_font_get_texture_offsets' method. + + + + + Cached name for the '_font_get_transform' method. + + + + + Cached name for the '_font_get_underline_position' method. + + + + + Cached name for the '_font_get_underline_thickness' method. + + + + + Cached name for the '_font_get_variation_coordinates' method. + + + + + Cached name for the '_font_get_weight' method. + + + + + Cached name for the '_font_has_char' method. + + + + + Cached name for the '_font_is_allow_system_fallback' method. + + + + + Cached name for the '_font_is_force_autohinter' method. + + + + + Cached name for the '_font_is_language_supported' method. + + + + + Cached name for the '_font_is_multichannel_signed_distance_field' method. + + + + + Cached name for the '_font_is_script_supported' method. + + + + + Cached name for the '_font_remove_glyph' method. + + + + + Cached name for the '_font_remove_kerning' method. + + + + + Cached name for the '_font_remove_language_support_override' method. + + + + + Cached name for the '_font_remove_script_support_override' method. + + + + + Cached name for the '_font_remove_size_cache' method. + + + + + Cached name for the '_font_remove_texture' method. + + + + + Cached name for the '_font_render_glyph' method. + + + + + Cached name for the '_font_render_range' method. + + + + + Cached name for the '_font_set_allow_system_fallback' method. + + + + + Cached name for the '_font_set_antialiasing' method. + + + + + Cached name for the '_font_set_ascent' method. + + + + + Cached name for the '_font_set_baseline_offset' method. + + + + + Cached name for the '_font_set_data' method. + + + + + Cached name for the '_font_set_descent' method. + + + + + Cached name for the '_font_set_disable_embedded_bitmaps' method. + + + + + Cached name for the '_font_set_embolden' method. + + + + + Cached name for the '_font_set_face_index' method. + + + + + Cached name for the '_font_set_fixed_size' method. + + + + + Cached name for the '_font_set_fixed_size_scale_mode' method. + + + + + Cached name for the '_font_set_force_autohinter' method. + + + + + Cached name for the '_font_set_generate_mipmaps' method. + + + + + Cached name for the '_font_set_global_oversampling' method. + + + + + Cached name for the '_font_set_glyph_advance' method. + + + + + Cached name for the '_font_set_glyph_offset' method. + + + + + Cached name for the '_font_set_glyph_size' method. + + + + + Cached name for the '_font_set_glyph_texture_idx' method. + + + + + Cached name for the '_font_set_glyph_uv_rect' method. + + + + + Cached name for the '_font_set_hinting' method. + + + + + Cached name for the '_font_set_keep_rounding_remainders' method. + + + + + Cached name for the '_font_set_kerning' method. + + + + + Cached name for the '_font_set_language_support_override' method. + + + + + Cached name for the '_font_set_msdf_pixel_range' method. + + + + + Cached name for the '_font_set_msdf_size' method. + + + + + Cached name for the '_font_set_multichannel_signed_distance_field' method. + + + + + Cached name for the '_font_set_name' method. + + + + + Cached name for the '_font_set_opentype_feature_overrides' method. + + + + + Cached name for the '_font_set_oversampling' method. + + + + + Cached name for the '_font_set_scale' method. + + + + + Cached name for the '_font_set_script_support_override' method. + + + + + Cached name for the '_font_set_spacing' method. + + + + + Cached name for the '_font_set_stretch' method. + + + + + Cached name for the '_font_set_style' method. + + + + + Cached name for the '_font_set_style_name' method. + + + + + Cached name for the '_font_set_subpixel_positioning' method. + + + + + Cached name for the '_font_set_texture_image' method. + + + + + Cached name for the '_font_set_texture_offsets' method. + + + + + Cached name for the '_font_set_transform' method. + + + + + Cached name for the '_font_set_underline_position' method. + + + + + Cached name for the '_font_set_underline_thickness' method. + + + + + Cached name for the '_font_set_variation_coordinates' method. + + + + + Cached name for the '_font_set_weight' method. + + + + + Cached name for the '_font_supported_feature_list' method. + + + + + Cached name for the '_font_supported_variation_list' method. + + + + + Cached name for the '_format_number' method. + + + + + Cached name for the '_free_rid' method. + + + + + Cached name for the '_get_features' method. + + + + + Cached name for the '_get_hex_code_box_size' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_support_data' method. + + + + + Cached name for the '_get_support_data_filename' method. + + + + + Cached name for the '_get_support_data_info' method. + + + + + Cached name for the '_has' method. + + + + + Cached name for the '_has_feature' method. + + + + + Cached name for the '_is_confusable' method. + + + + + Cached name for the '_is_locale_right_to_left' method. + + + + + Cached name for the '_is_valid_identifier' method. + + + + + Cached name for the '_is_valid_letter' method. + + + + + Cached name for the '_load_support_data' method. + + + + + Cached name for the '_name_to_tag' method. + + + + + Cached name for the '_parse_number' method. + + + + + Cached name for the '_parse_structured_text' method. + + + + + Cached name for the '_percent_sign' method. + + + + + Cached name for the '_save_support_data' method. + + + + + Cached name for the '_shaped_get_span_count' method. + + + + + Cached name for the '_shaped_get_span_meta' method. + + + + + Cached name for the '_shaped_set_span_update_font' method. + + + + + Cached name for the '_shaped_text_add_object' method. + + + + + Cached name for the '_shaped_text_add_string' method. + + + + + Cached name for the '_shaped_text_clear' method. + + + + + Cached name for the '_shaped_text_closest_character_pos' method. + + + + + Cached name for the '_shaped_text_draw' method. + + + + + Cached name for the '_shaped_text_draw_outline' method. + + + + + Cached name for the '_shaped_text_fit_to_width' method. + + + + + Cached name for the '_shaped_text_get_ascent' method. + + + + + Cached name for the '_shaped_text_get_character_breaks' method. + + + + + Cached name for the '_shaped_text_get_custom_ellipsis' method. + + + + + Cached name for the '_shaped_text_get_custom_punctuation' method. + + + + + Cached name for the '_shaped_text_get_descent' method. + + + + + Cached name for the '_shaped_text_get_direction' method. + + + + + Cached name for the '_shaped_text_get_dominant_direction_in_range' method. + + + + + Cached name for the '_shaped_text_get_ellipsis_glyph_count' method. + + + + + Cached name for the '_shaped_text_get_ellipsis_pos' method. + + + + + Cached name for the '_shaped_text_get_glyph_count' method. + + + + + Cached name for the '_shaped_text_get_grapheme_bounds' method. + + + + + Cached name for the '_shaped_text_get_inferred_direction' method. + + + + + Cached name for the '_shaped_text_get_line_breaks' method. + + + + + Cached name for the '_shaped_text_get_line_breaks_adv' method. + + + + + Cached name for the '_shaped_text_get_object_glyph' method. + + + + + Cached name for the '_shaped_text_get_object_range' method. + + + + + Cached name for the '_shaped_text_get_object_rect' method. + + + + + Cached name for the '_shaped_text_get_objects' method. + + + + + Cached name for the '_shaped_text_get_orientation' method. + + + + + Cached name for the '_shaped_text_get_parent' method. + + + + + Cached name for the '_shaped_text_get_preserve_control' method. + + + + + Cached name for the '_shaped_text_get_preserve_invalid' method. + + + + + Cached name for the '_shaped_text_get_range' method. + + + + + Cached name for the '_shaped_text_get_selection' method. + + + + + Cached name for the '_shaped_text_get_size' method. + + + + + Cached name for the '_shaped_text_get_spacing' method. + + + + + Cached name for the '_shaped_text_get_trim_pos' method. + + + + + Cached name for the '_shaped_text_get_underline_position' method. + + + + + Cached name for the '_shaped_text_get_underline_thickness' method. + + + + + Cached name for the '_shaped_text_get_width' method. + + + + + Cached name for the '_shaped_text_get_word_breaks' method. + + + + + Cached name for the '_shaped_text_hit_test_grapheme' method. + + + + + Cached name for the '_shaped_text_hit_test_position' method. + + + + + Cached name for the '_shaped_text_is_ready' method. + + + + + Cached name for the '_shaped_text_next_character_pos' method. + + + + + Cached name for the '_shaped_text_next_grapheme_pos' method. + + + + + Cached name for the '_shaped_text_overrun_trim_to_width' method. + + + + + Cached name for the '_shaped_text_prev_character_pos' method. + + + + + Cached name for the '_shaped_text_prev_grapheme_pos' method. + + + + + Cached name for the '_shaped_text_resize_object' method. + + + + + Cached name for the '_shaped_text_set_bidi_override' method. + + + + + Cached name for the '_shaped_text_set_custom_ellipsis' method. + + + + + Cached name for the '_shaped_text_set_custom_punctuation' method. + + + + + Cached name for the '_shaped_text_set_direction' method. + + + + + Cached name for the '_shaped_text_set_orientation' method. + + + + + Cached name for the '_shaped_text_set_preserve_control' method. + + + + + Cached name for the '_shaped_text_set_preserve_invalid' method. + + + + + Cached name for the '_shaped_text_set_spacing' method. + + + + + Cached name for the '_shaped_text_shape' method. + + + + + Cached name for the '_shaped_text_substr' method. + + + + + Cached name for the '_shaped_text_tab_align' method. + + + + + Cached name for the '_shaped_text_update_breaks' method. + + + + + Cached name for the '_shaped_text_update_justification_ops' method. + + + + + Cached name for the '_spoof_check' method. + + + + + Cached name for the '_string_get_character_breaks' method. + + + + + Cached name for the '_string_get_word_breaks' method. + + + + + Cached name for the '_string_to_lower' method. + + + + + Cached name for the '_string_to_title' method. + + + + + Cached name for the '_string_to_upper' method. + + + + + Cached name for the '_strip_diacritics' method. + + + + + Cached name for the '_tag_to_name' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is the API backend for loading, enumerating, and switching s. + Note: Switching text server at runtime is possible, but will invalidate all fonts and text buffers. Make sure to unload all controls, fonts, and themes before doing so. + + + + + Registers a interface. + + + + + Returns the number of interfaces currently registered. + + + + + Removes an interface. All fonts and shaped text caches should be freed before removing an interface. + + + + + Returns the interface registered at a given index. + + + + + Returns a list of available interfaces, with the index and name of each interface. + + + + + Finds an interface by its . + + + + + Sets the primary interface. + + + + + Returns the primary interface currently in use. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + is the API backend for loading, enumerating, and switching s. + Note: Switching text server at runtime is possible, but will invalidate all fonts and text buffers. Make sure to unload all controls, fonts, and themes before doing so. + + + + + Registers a interface. + + + + + Returns the number of interfaces currently registered. + + + + + Removes an interface. All fonts and shaped text caches should be freed before removing an interface. + + + + + Returns the interface registered at a given index. + + + + + Returns a list of available interfaces, with the index and name of each interface. + + + + + Finds an interface by its . + + + + + Sets the primary interface. + + + + + Returns the primary interface currently in use. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + is the base class for all texture types. Common texture types are and . See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A texture works by registering an image in the video hardware, which then can be used in 3D models or 2D or GUI . + Textures are often created by loading them from a file. See @GDScript.load. + is a base for other resources. It cannot be used directly. + Note: The maximum texture size is 16384×16384 pixels due to graphics hardware limitations. Larger textures may fail to import. + + + + + Called when the entire is requested to be drawn over a , with the top-left offset specified in . specifies a multiplier for the colors being drawn, while specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation). + Note: This is only used in 2D rendering, not 3D. + + + + + Called when the is requested to be drawn onto 's specified . specifies a multiplier for the colors being drawn, while specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation). + Note: This is only used in 2D rendering, not 3D. + + + + + Called when a part of the specified by 's coordinates is requested to be drawn onto 's specified . specifies a multiplier for the colors being drawn, while specifies whether drawing should be performed in column-major order instead of row-major order (resulting in 90-degree clockwise rotation). + Note: This is only used in 2D rendering, not 3D. + + + + + Called when the 's height is queried. + + + + + Called when the 's width is queried. + + + + + Called when the presence of an alpha channel in the is queried. + + + + + Called when a pixel's opaque state in the is queried at the specified (x, y) position. + + + + + Returns the texture width in pixels. + + + + + Returns the texture height in pixels. + + + + + Returns the texture size in pixels. + + + + + Returns if this has an alpha channel. + + + + + Draws the texture using a with the API at the specified . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws the texture using a with the API. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Draws a part of the texture using a with the API. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Returns an that is a copy of data from this (a new is created each time). s can be accessed and manipulated directly. + Note: This will return if this is invalid. + Note: This will fetch the texture data from the GPU, which might cause performance problems when overused. Avoid calling every frame, especially on large textures. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_draw' method. + + + + + Cached name for the '_draw_rect' method. + + + + + Cached name for the '_draw_rect_region' method. + + + + + Cached name for the '_get_height' method. + + + + + Cached name for the '_get_width' method. + + + + + Cached name for the '_has_alpha' method. + + + + + Cached name for the '_is_pixel_opaque' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'has_alpha' method. + + + + + Cached name for the 'draw' method. + + + + + Cached name for the 'draw_rect' method. + + + + + Cached name for the 'draw_rect_region' method. + + + + + Cached name for the 'get_image' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A Texture2DArray is different from a Texture3D: The Texture2DArray does not support trilinear interpolation between the s, i.e. no blending. See also and , which are texture arrays with specialized cubemap functions. + A Texture2DArray is also different from an : 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. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture array class allows you to use a 2D array texture created directly on the as a texture for materials, meshes, etc. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a 2D texture created directly on the as a texture for materials, meshes, etc. + + + + + The RID of the texture object created on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_rd_rid' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_rd_rid' method. + + + + + Cached name for the 'get_texture_rd_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. is the base class for all 3-dimensional texture types. See also . + 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. + + + + + Called when the 's data is queried. + + + + + Called when the 's depth is queried. + + + + + Called when the 's format is queried. + + + + + Called when the 's height is queried. + + + + + Called when the 's width is queried. + + + + + Called when the presence of mipmaps in the is queried. + + + + + Returns the current format being used by this texture. See for details. + + + + + Returns the 's width in pixels. Width is typically represented by the X axis. + + + + + Returns the 's height in pixels. Width is typically represented by the Y axis. + + + + + Returns the 's depth in pixels. Depth is typically represented by the Z axis (a dimension not present in ). + + + + + Returns if the has generated mipmaps. + + + + + Returns the 's data as an array of s. Each represents a slice of the , with different slices mapping to different depth (Z axis) levels. + + + + + Creates a placeholder version of this resource (). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_data' method. + + + + + Cached name for the '_get_depth' method. + + + + + Cached name for the '_get_format' method. + + + + + Cached name for the '_get_height' method. + + + + + Cached name for the '_get_width' method. + + + + + Cached name for the '_has_mipmaps' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_depth' method. + + + + + Cached name for the 'has_mipmaps' method. + + + + + Cached name for the 'get_data' method. + + + + + Cached name for the 'create_placeholder' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a 3D texture created directly on the as a texture for materials, meshes, etc. + + + + + The RID of the texture object created on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_rd_rid' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_rd_rid' method. + + + + + Cached name for the 'get_texture_rd_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + has the same functionality as , except it uses sprites instead of Godot's resource. It is faster to create, but it doesn't support localization like more complex s. + See also which contains common properties and methods associated with this node. + Note: Setting a texture for the "normal" state () is recommended. If is not set, the will still receive input events and be clickable, but the user will not be able to see it unless they activate another one of its states with a texture assigned (e.g., hover over it to show ). + + + + + Scale to fit the node's bounding rectangle. + + + + + Tile inside the node's bounding rectangle. + + + + + The texture keeps its original size and stays in the bounding rectangle's top-left corner. + + + + + The texture keeps its original size and stays centered in the node's bounding rectangle. + + + + + Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio. + + + + + Scale the texture to fit the node's bounding rectangle, center it, and maintain its aspect ratio. + + + + + Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits. + + + + + Texture to display by default, when the node is not in the disabled, hover or pressed state. This texture is still displayed in the focused state, with drawn on top. + + + + + Texture to display on mouse down over the node, if the node has keyboard focus and the player presses the Enter key or if the player presses the key. If not assigned, the displays instead when pressed. + + + + + Texture to display when the mouse hovers over the node. If not assigned, the displays instead when hovered over. + + + + + Texture to display when the node is disabled. See . If not assigned, the displays instead. + + + + + Texture to overlay on the base texture when the node has mouse or keyboard focus. Because is displayed on top of the base texture, a partially transparent texture should be used to ensure the base texture remains visible. A texture that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a fully transparent texture of any size. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons. + + + + + Pure black and white image to use for click detection. On the mask, white pixels represent the button's clickable area. Use it to create buttons with curved shapes. + + + + + If , the size of the texture won't be considered for minimum size calculation, so the can be shrunk down past the texture size. + + + + + Controls the texture's behavior when you resize the node's bounding rectangle. See the constants for available options. + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_normal' property. + + + + + Cached name for the 'texture_pressed' property. + + + + + Cached name for the 'texture_hover' property. + + + + + Cached name for the 'texture_disabled' property. + + + + + Cached name for the 'texture_focused' property. + + + + + Cached name for the 'texture_click_mask' property. + + + + + Cached name for the 'ignore_texture_size' property. + + + + + Cached name for the 'stretch_mode' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_normal' method. + + + + + Cached name for the 'set_texture_pressed' method. + + + + + Cached name for the 'set_texture_hover' method. + + + + + Cached name for the 'set_texture_disabled' method. + + + + + Cached name for the 'set_texture_focused' method. + + + + + Cached name for the 'set_click_mask' method. + + + + + Cached name for the 'set_ignore_texture_size' method. + + + + + Cached name for the 'set_stretch_mode' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'get_texture_normal' method. + + + + + Cached name for the 'get_texture_pressed' method. + + + + + Cached name for the 'get_texture_hover' method. + + + + + Cached name for the 'get_texture_disabled' method. + + + + + Cached name for the 'get_texture_focused' method. + + + + + Cached name for the 'get_click_mask' method. + + + + + Cached name for the 'get_ignore_texture_size' method. + + + + + Cached name for the 'get_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a cubemap array texture created directly on the as a texture for materials, meshes, etc. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This texture class allows you to use a cubemap texture created directly on the as a texture for materials, meshes, etc. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. See also . + Data is set on a per-layer basis. For s, the layer specifies the array layer. + All images need to have the same width, height and number of mipmap levels. + A can be loaded with . + Internally, Godot maps these files to their respective counterparts in the target rendering driver (Vulkan, OpenGL3). + + + + + Texture is a generic . + + + + + Texture is a , with each side in its own layer (6 in total). + + + + + Texture is a , with each cubemap being made of 6 layers. + + + + + Called when the 's format is queried. + + + + + Called when the 's height is queried. + + + + + Called when the data for a layer in the is queried. + + + + + Called when the layers' type in the is queried. + + + + + Called when the number of layers in the is queried. + + + + + Called when the 's width queried. + + + + + Called when the presence of mipmaps in the is queried. + + + + + Returns the current format being used by this texture. See for details. + + + + + Returns the 's type. The type determines how the data is accessed, with cubemaps having special types. + + + + + Returns the width of the texture in pixels. Width is typically represented by the X axis. + + + + + Returns the height of the texture in pixels. Height is typically represented by the Y axis. + + + + + Returns the number of referenced s. + + + + + Returns if the layers have generated mipmaps. + + + + + Returns an resource with the data from specified . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_format' method. + + + + + Cached name for the '_get_height' method. + + + + + Cached name for the '_get_layer_data' method. + + + + + Cached name for the '_get_layered_type' method. + + + + + Cached name for the '_get_layers' method. + + + + + Cached name for the '_get_width' method. + + + + + Cached name for the '_has_mipmaps' method. + + + + + Cached name for the 'get_format' method. + + + + + Cached name for the 'get_layered_type' method. + + + + + Cached name for the 'get_width' method. + + + + + Cached name for the 'get_height' method. + + + + + Cached name for the 'get_layers' method. + + + + + Cached name for the 'has_mipmaps' method. + + + + + Cached name for the 'get_layer_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for , and . Cannot be used directly, but contains all the functions necessary for accessing the derived resource types. + + + + + The RID of the texture object created on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_rd_rid' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_rd_rid' method. + + + + + Cached name for the 'get_texture_rd_rid' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + TextureProgressBar works like , but uses up to 3 textures instead of Godot's resource. It can be used to create horizontal, vertical and radial progress bars. + + + + + The fills from left to right. + + + + + The fills from right to left. + + + + + The fills from top to bottom. + + + + + The fills from bottom to top. + + + + + Turns the node into a radial bar. The fills clockwise. See , and to control the way the bar fills up. + + + + + Turns the node into a radial bar. The fills counterclockwise. See , and to control the way the bar fills up. + + + + + The fills from the center, expanding both towards the left and the right. + + + + + The fills from the center, expanding both towards the top and the bottom. + + + + + Turns the node into a radial bar. The fills radially from the center, expanding both clockwise and counterclockwise. See , and to control the way the bar fills up. + + + + + The fill direction. See for possible values. + + + + + Starting angle for the fill of if is , , or . When the node's value is equal to its min_value, the texture doesn't show up at all. When the value increases, the texture fills and tends towards . + Note: is wrapped between 0 and 360 degrees (inclusive). + + + + + Upper limit for the fill of if is , , or . When the node's value is equal to its max_value, the texture fills up to this angle. + See , . + + + + + Offsets if is , , or . + Note: The effective radial center always stays within the bounds. If you need to move it outside the texture's bounds, modify the to contain additional empty space where needed. + + + + + If , Godot treats the bar's textures like in . Use the stretch_margin_* properties like to set up the nine patch's 3×3 grid. When using a radial , this setting will enable stretching. + + + + + The width of the 9-patch's left column. Only effective if is . + + + + + The height of the 9-patch's top row. Only effective if is . + + + + + The width of the 9-patch's right column. Only effective if is . + + + + + The height of the 9-patch's bottom row. A margin of 16 means the 9-slice's bottom corners and side will have a height of 16 pixels. You can set all 4 margin values individually to create panels with non-uniform borders. Only effective if is . + + + + + that draws under the progress bar. The bar's background. + + + + + that draws over the progress bar. Use it to add highlights or an upper-frame that hides part of . + + + + + that clips based on the node's value and . As value increased, the texture fills up. It shows entirely when value reaches max_value. It doesn't show at all if value is equal to min_value. + The value property comes from . See , , . + + + + + The offset of . Useful for and with fancy borders, to avoid transparent margins in your progress texture. + + + + + Multiplies the color of the bar's texture. + + + + + Multiplies the color of the bar's texture. The effect is similar to , except it only affects this specific texture instead of the entire node. + + + + + Multiplies the color of the bar's texture. + + + + + Sets the stretch margin with the specified index. See and related properties. + + + + + Returns the stretch margin with the specified index. See and related properties. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fill_mode' property. + + + + + Cached name for the 'radial_initial_angle' property. + + + + + Cached name for the 'radial_fill_degrees' property. + + + + + Cached name for the 'radial_center_offset' property. + + + + + Cached name for the 'nine_patch_stretch' property. + + + + + Cached name for the 'stretch_margin_left' property. + + + + + Cached name for the 'stretch_margin_top' property. + + + + + Cached name for the 'stretch_margin_right' property. + + + + + Cached name for the 'stretch_margin_bottom' property. + + + + + Cached name for the 'texture_under' property. + + + + + Cached name for the 'texture_over' property. + + + + + Cached name for the 'texture_progress' property. + + + + + Cached name for the 'texture_progress_offset' property. + + + + + Cached name for the 'tint_under' property. + + + + + Cached name for the 'tint_over' property. + + + + + Cached name for the 'tint_progress' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_under_texture' method. + + + + + Cached name for the 'get_under_texture' method. + + + + + Cached name for the 'set_progress_texture' method. + + + + + Cached name for the 'get_progress_texture' method. + + + + + Cached name for the 'set_over_texture' method. + + + + + Cached name for the 'get_over_texture' method. + + + + + Cached name for the 'set_fill_mode' method. + + + + + Cached name for the 'get_fill_mode' method. + + + + + Cached name for the 'set_tint_under' method. + + + + + Cached name for the 'get_tint_under' method. + + + + + Cached name for the 'set_tint_progress' method. + + + + + Cached name for the 'get_tint_progress' method. + + + + + Cached name for the 'set_tint_over' method. + + + + + Cached name for the 'get_tint_over' method. + + + + + Cached name for the 'set_texture_progress_offset' method. + + + + + Cached name for the 'get_texture_progress_offset' method. + + + + + Cached name for the 'set_radial_initial_angle' method. + + + + + Cached name for the 'get_radial_initial_angle' method. + + + + + Cached name for the 'set_radial_center_offset' method. + + + + + Cached name for the 'get_radial_center_offset' method. + + + + + Cached name for the 'set_fill_degrees' method. + + + + + Cached name for the 'get_fill_degrees' method. + + + + + Cached name for the 'set_stretch_margin' method. + + + + + Cached name for the 'get_stretch_margin' method. + + + + + Cached name for the 'set_nine_patch_stretch' method. + + + + + Cached name for the 'get_nine_patch_stretch' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control that displays a texture, for example an icon inside a GUI. The texture's placement can be controlled with the property. It can scale, tile, or stay centered inside its bounding rectangle. + + + + + The minimum size will be equal to texture size, i.e. can't be smaller than the texture. + + + + + The size of the texture won't be considered for minimum size calculation, so the can be shrunk down past the texture size. + + + + + The height of the texture will be ignored. Minimum width will be equal to the current height. Useful for horizontal layouts, e.g. inside . + + + + + Same as , but keeps texture's aspect ratio. + + + + + The width of the texture will be ignored. Minimum height will be equal to the current width. Useful for vertical layouts, e.g. inside . + + + + + Same as , but keeps texture's aspect ratio. + + + + + Scale to fit the node's bounding rectangle. + + + + + Tile inside the node's bounding rectangle. + + + + + The texture keeps its original size and stays in the bounding rectangle's top-left corner. + + + + + The texture keeps its original size and stays centered in the node's bounding rectangle. + + + + + Scale the texture to fit the node's bounding rectangle, but maintain the texture's aspect ratio. + + + + + Scale the texture to fit the node's bounding rectangle, center it and maintain its aspect ratio. + + + + + Scale the texture so that the shorter side fits the bounding rectangle. The other side clips to the node's limits. + + + + + The node's resource. + + + + + Defines how minimum size is determined based on the texture's size. See for options. + + + + + Controls the texture's behavior when resizing the node's bounding rectangle. See . + + + + + If , texture is flipped horizontally. + + + + + If , texture is flipped vertically. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'expand_mode' property. + + + + + Cached name for the 'stretch_mode' property. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_expand_mode' method. + + + + + Cached name for the 'get_expand_mode' method. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'is_flipped_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'is_flipped_v' method. + + + + + Cached name for the 'set_stretch_mode' method. + + + + + Cached name for the 'get_stretch_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A resource used for styling/skinning and nodes. While individual controls can be styled using their local theme overrides (see ), theme resources allow you to store and apply the same settings across all controls sharing the same type (e.g. style all 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 ProjectSettings.gui/theme/custom to set up a project-scope theme that will be available to every control in your project. + Use of any control node to set up a theme that will be available to that control and all of its direct and indirect children. + + + + + Theme's item type. + + + + + Theme's constant item type. + + + + + Theme's item type. + + + + + Theme's font size item type. + + + + + Theme's icon item type. + + + + + Theme's item type. + + + + + Maximum value for the DataType enum. + + + + + The default base scale factor of this theme resource. Used by some controls to scale their visual properties based on the global scale factor. If this value is set to 0.0, the global scale factor is used (see ). + Use to check if this value is valid. + + + + + The default font of this theme resource. Used as the default value when trying to fetch a font resource that doesn't exist in this theme or is in invalid state. If the default font is also missing or invalid, the engine fallback value is used (see ). + Use to check if this value is valid. + + + + + The default font size of this theme resource. Used as the default value when trying to fetch a font size value that doesn't exist in this theme or is in invalid state. If the default font size is also missing or invalid, the engine fallback value is used (see ). + Values below 1 are invalid and can be used to unset the property. Use to check if this value is valid. + + + + + Creates or changes the value of the icon property defined by and . Use to remove the property. + + + + + Returns the icon property defined by and , if it exists. + Returns the engine fallback icon value if the property doesn't exist (see ). Use to check for existence. + + + + + Returns if the icon property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the icon property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the icon property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for icon properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for icon properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the property defined by and . Use to remove the property. + + + + + Returns the property defined by and , if it exists. + Returns the engine fallback stylebox value if the property doesn't exist (see ). Use to check for existence. + + + + + Returns if the property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the property defined by and . Use to remove the property. + + + + + Returns the property defined by and , if it exists. + Returns the default theme font if the property doesn't exist and the default theme font is set up (see ). Use to check for existence of the property and to check for existence of the default theme font. + Returns the engine fallback font value, if neither exist (see ). + + + + + Returns if the property defined by and exists, or if the default theme font is set up (see ). + Returns if neither exist. Use to define the property. + + + + + Renames the property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the font size property defined by and . Use to remove the property. + + + + + Returns the font size property defined by and , if it exists. + Returns the default theme font size if the property doesn't exist and the default theme font size is set up (see ). Use to check for existence of the property and to check for existence of the default theme font. + Returns the engine fallback font size value, if neither exist (see ). + + + + + Returns if the font size property defined by and exists, or if the default theme font size is set up (see ). + Returns if neither exist. Use to define the property. + + + + + Renames the font size property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the font size property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for font size properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for font size properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the property defined by and . Use to remove the property. + + + + + Returns the property defined by and , if it exists. + Returns the default color value if the property doesn't exist. Use to check for existence. + + + + + Returns if the property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + + + + + Creates or changes the value of the constant property defined by and . Use to remove the property. + + + + + Returns the constant property defined by and , if it exists. + Returns 0 if the property doesn't exist. Use to check for existence. + + + + + Returns if the constant property defined by and exists. + Returns if it doesn't exist. Use to define it. + + + + + Renames the constant property defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + + + + + Removes the constant property defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + + + + + Returns a list of names for constant properties defined with . Use to get a list of possible theme type names. + + + + + Returns a list of all unique theme type names for constant properties. Use to get a list of all unique theme types. + + + + + Returns if has a valid value. + Returns if it doesn't. The value must be greater than 0.0 to be considered valid. + + + + + Returns if has a valid value. + Returns if it doesn't. + + + + + Returns if has a valid value. + Returns if it doesn't. The value must be greater than 0 to be considered valid. + + + + + Creates or changes the value of the theme property of defined by and . Use to remove the property. + Fails if the type is not accepted by . + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns the theme property of defined by and , if it exists. + Returns the engine fallback value if the property doesn't exist (see ). Use to check for existence. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns if the theme property of defined by and exists. + Returns if it doesn't exist. Use to define it. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Renames the theme property of defined by and to , if it exists. + Fails if it doesn't exist, or if a similar property with the new name already exists. Use to check for existence, and to remove the existing property. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Removes the theme property of defined by and , if it exists. + Fails if it doesn't exist. Use to check for existence. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns a list of names for properties of defined with . Use to get a list of possible theme type names. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Returns a list of all unique theme type names for properties. Use to get a list of all unique theme types. + Note: This method is analogous to calling the corresponding data type specific method, but can be used for more generalized logic. + + + + + Marks as a variation of . + This adds as a suggested option for on a that is of the class. + Variations can also be nested, i.e. can be another variation. If a chain of variations ends with a matching the class of the , the whole chain is going to be suggested as options. + Note: Suggestions only show up if this theme resource is set as the project default theme. See ProjectSettings.gui/theme/custom. + + + + + Returns if is marked as a variation of . + + + + + Unmarks as being a variation of another theme type. See . + + + + + Returns the name of the base theme type if is a valid variation type. Returns an empty string otherwise. + + + + + Returns a list of all type variations for the given . + + + + + Adds an empty theme type for every valid data type. + Note: Empty types are not saved with the theme. This method only exists to perform in-memory changes to the resource. Use available set_* methods to add theme items. + + + + + Removes the theme type, gracefully discarding defined theme items. If the type is a variation, this information is also erased. If the type is a base for type variations, those variations lose their base. + + + + + Returns a list of all unique theme type names. Use the appropriate get_*_type_list method to get a list of unique theme types for a single data type. + + + + + Adds missing and overrides existing definitions with values from the theme resource. + Note: This modifies the current theme. If you want to merge two themes together without modifying either one, create a new empty theme and merge the other two into it one after another. + + + + + Removes all the theme properties defined on the theme resource. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_base_scale' property. + + + + + Cached name for the 'default_font' property. + + + + + Cached name for the 'default_font_size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'get_icon' method. + + + + + Cached name for the 'has_icon' method. + + + + + Cached name for the 'rename_icon' method. + + + + + Cached name for the 'clear_icon' method. + + + + + Cached name for the 'get_icon_list' method. + + + + + Cached name for the 'get_icon_type_list' method. + + + + + Cached name for the 'set_stylebox' method. + + + + + Cached name for the 'get_stylebox' method. + + + + + Cached name for the 'has_stylebox' method. + + + + + Cached name for the 'rename_stylebox' method. + + + + + Cached name for the 'clear_stylebox' method. + + + + + Cached name for the 'get_stylebox_list' method. + + + + + Cached name for the 'get_stylebox_type_list' method. + + + + + Cached name for the 'set_font' method. + + + + + Cached name for the 'get_font' method. + + + + + Cached name for the 'has_font' method. + + + + + Cached name for the 'rename_font' method. + + + + + Cached name for the 'clear_font' method. + + + + + Cached name for the 'get_font_list' method. + + + + + Cached name for the 'get_font_type_list' method. + + + + + Cached name for the 'set_font_size' method. + + + + + Cached name for the 'get_font_size' method. + + + + + Cached name for the 'has_font_size' method. + + + + + Cached name for the 'rename_font_size' method. + + + + + Cached name for the 'clear_font_size' method. + + + + + Cached name for the 'get_font_size_list' method. + + + + + Cached name for the 'get_font_size_type_list' method. + + + + + Cached name for the 'set_color' method. + + + + + Cached name for the 'get_color' method. + + + + + Cached name for the 'has_color' method. + + + + + Cached name for the 'rename_color' method. + + + + + Cached name for the 'clear_color' method. + + + + + Cached name for the 'get_color_list' method. + + + + + Cached name for the 'get_color_type_list' method. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached name for the 'has_constant' method. + + + + + Cached name for the 'rename_constant' method. + + + + + Cached name for the 'clear_constant' method. + + + + + Cached name for the 'get_constant_list' method. + + + + + Cached name for the 'get_constant_type_list' method. + + + + + Cached name for the 'set_default_base_scale' method. + + + + + Cached name for the 'get_default_base_scale' method. + + + + + Cached name for the 'has_default_base_scale' method. + + + + + Cached name for the 'set_default_font' method. + + + + + Cached name for the 'get_default_font' method. + + + + + Cached name for the 'has_default_font' method. + + + + + Cached name for the 'set_default_font_size' method. + + + + + Cached name for the 'get_default_font_size' method. + + + + + Cached name for the 'has_default_font_size' method. + + + + + Cached name for the 'set_theme_item' method. + + + + + Cached name for the 'get_theme_item' method. + + + + + Cached name for the 'has_theme_item' method. + + + + + Cached name for the 'rename_theme_item' method. + + + + + Cached name for the 'clear_theme_item' method. + + + + + Cached name for the 'get_theme_item_list' method. + + + + + Cached name for the 'get_theme_item_type_list' method. + + + + + Cached name for the 'set_type_variation' method. + + + + + Cached name for the 'is_type_variation' method. + + + + + Cached name for the 'clear_type_variation' method. + + + + + Cached name for the 'get_type_variation_base' method. + + + + + Cached name for the 'get_type_variation_list' method. + + + + + Cached name for the 'add_type' method. + + + + + Cached name for the 'remove_type' method. + + + + + Cached name for the 'get_type_list' method. + + + + + Cached name for the 'merge_with' method. + + + + + Cached name for the 'clear' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This singleton provides access to static information about resources used by the engine and by your projects. You can fetch the default engine theme, as well as your project configured theme. + also contains fallback values for theme properties. + + + + + The fallback base scale factor of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font size of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback icon of every node and resource. Used when no other value is available to the control. + + + + + The fallback stylebox of every node and resource. Used when no other value is available to the control. + + + + + Returns a reference to the default engine . This theme resource is responsible for the out-of-the-box look of nodes and cannot be overridden. + + + + + Returns a reference to the custom project . This theme resources allows to override the default engine theme for every control node in the project. + To set the project theme, see ProjectSettings.gui/theme/custom. + + + + + Emitted when one of the fallback values had been changed. Use it to refresh the look of controls that may rely on the fallback theme items. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_base_scale' property. + + + + + Cached name for the 'fallback_font' property. + + + + + Cached name for the 'fallback_font_size' property. + + + + + Cached name for the 'fallback_icon' property. + + + + + Cached name for the 'fallback_stylebox' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_default_theme' method. + + + + + Cached name for the 'get_project_theme' method. + + + + + Cached name for the 'set_fallback_base_scale' method. + + + + + Cached name for the 'get_fallback_base_scale' method. + + + + + Cached name for the 'set_fallback_font' method. + + + + + Cached name for the 'get_fallback_font' method. + + + + + Cached name for the 'set_fallback_font_size' method. + + + + + Cached name for the 'get_fallback_font_size' method. + + + + + Cached name for the 'set_fallback_icon' method. + + + + + Cached name for the 'get_fallback_icon' method. + + + + + Cached name for the 'set_fallback_stylebox' method. + + + + + Cached name for the 'get_fallback_stylebox' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_changed' signal. + + + + + This singleton provides access to static information about resources used by the engine and by your projects. You can fetch the default engine theme, as well as your project configured theme. + also contains fallback values for theme properties. + + + + + The fallback base scale factor of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback font size of every node and resource. Used when no other value is available to the control. + See also . + + + + + The fallback icon of every node and resource. Used when no other value is available to the control. + + + + + The fallback stylebox of every node and resource. Used when no other value is available to the control. + + + + + Returns a reference to the default engine . This theme resource is responsible for the out-of-the-box look of nodes and cannot be overridden. + + + + + Returns a reference to the custom project . This theme resources allows to override the default engine theme for every control node in the project. + To set the project theme, see ProjectSettings.gui/theme/custom. + + + + + Emitted when one of the fallback values had been changed. Use it to refresh the look of controls that may rely on the fallback theme items. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_base_scale' property. + + + + + Cached name for the 'fallback_font' property. + + + + + Cached name for the 'fallback_font_size' property. + + + + + Cached name for the 'fallback_icon' property. + + + + + Cached name for the 'fallback_stylebox' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_default_theme' method. + + + + + Cached name for the 'get_project_theme' method. + + + + + Cached name for the 'set_fallback_base_scale' method. + + + + + Cached name for the 'get_fallback_base_scale' method. + + + + + Cached name for the 'set_fallback_font' method. + + + + + Cached name for the 'get_fallback_font' method. + + + + + Cached name for the 'set_fallback_font_size' method. + + + + + Cached name for the 'get_fallback_font_size' method. + + + + + Cached name for the 'set_fallback_icon' method. + + + + + Cached name for the 'get_fallback_icon' method. + + + + + Cached name for the 'set_fallback_stylebox' method. + + + + + Cached name for the 'get_fallback_stylebox' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'fallback_changed' signal. + + + + + A unit of execution in a process. Can run methods on s simultaneously. The use of synchronization via or is advised if working with shared objects. + Warning: + To ensure proper cleanup without crashes or deadlocks, when a 's reference count reaches zero and it is therefore destroyed, the following conditions must be met: + - It must not have any objects locked. + - It must not be waiting on any objects. + - should have been called on it. + + + + + A thread running with lower priority than normally. + + + + + A thread with a standard priority. + + + + + A thread running with higher priority than normally. + + + + + Starts a new that calls . + If the method takes some arguments, you can pass them using Callable.bind. + The of the can be changed by passing a value from the enum. + Returns on success, or on failure. + + + + + Returns the current 's ID, uniquely identifying it among all threads. If the has not started running or if has been called, this returns an empty string. + + + + + Returns if this has been started. Once started, this will return until it is joined using . For checking if a is still executing its task, use . + + + + + Returns if this is currently running the provided function. This is useful for determining if can be called without blocking the calling thread. + To check if a is joinable, use . + + + + + Joins the and waits for it to finish. Returns the output of the passed to . + Should either be used when you want to retrieve the value returned from the method called by the or before freeing the instance that contains the . + To determine if this can be called without blocking the calling thread, check if is . + + + + + Sets whether the thread safety checks the engine normally performs in methods of certain classes (e.g., ) should happen on the current thread. + The default, for every thread, is that they are enabled (as if called with being ). + Those checks are conservative. That means that they will only succeed in considering a call thread-safe (and therefore allow it to happen) if the engine can guarantee such safety. + Because of that, there may be cases where the user may want to disable them ( being ) to make certain operations allowed again. By doing so, it becomes the user's responsibility to ensure thread safety (e.g., by using ) for those objects that are otherwise protected by the engine. + Note: This is an advanced usage of the engine. You are advised to use it only if you know what you are doing and there is no safer way. + Note: This is useful for scripts running on either arbitrary objects or tasks submitted to the . It doesn't apply to code running during group processing, where the checks will be always performed. + Note: Even in the case of having disabled the checks in a task, there's no need to re-enable them at the end. The engine will do so. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'get_id' method. + + + + + Cached name for the 'is_started' method. + + + + + Cached name for the 'is_alive' method. + + + + + Cached name for the 'wait_to_finish' method. + + + + + Cached name for the 'set_thread_safety_checks_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + object represents a single tile in a . It is usually edited using the tileset editor, but it can be modified at runtime using . + + + + + If , the tile will have its texture flipped horizontally. + + + + + If , the tile will have its texture flipped vertically. + + + + + If , the tile will display transposed, i.e. with horizontal and vertical texture UVs swapped. + + + + + Offsets the position of where the tile is drawn. + + + + + Color modulation of the tile. + + + + + The to use for this . This can be a to use the default shader, or a to use a custom shader. + + + + + Ordering index of this tile, relative to . + + + + + Vertical point of the tile used for determining y-sorted order. + + + + + ID of the terrain set that the tile uses. + + + + + ID of the terrain from the terrain set that the tile uses. + + + + + Relative probability of this tile being selected when drawing a pattern of random tiles. + + + + + Sets the occluder polygon count in the TileSet occlusion layer with index . + + + + + Returns the number of occluder polygons of the tile in the TileSet occlusion layer with index . + + + + + Adds an occlusion polygon to the tile on the TileSet occlusion layer with index . + + + + + Removes the polygon at index for TileSet occlusion layer with index . + + + + + Sets the occluder for polygon with index in the TileSet occlusion layer with index . + + + + + Returns the occluder polygon at index from the TileSet occlusion layer with index . + The , , and parameters can be to transform the returned polygon. + + + + + Sets the occluder for the TileSet occlusion layer with index . + + + + + Returns the occluder polygon of the tile for the TileSet occlusion layer with index . + , , and allow transforming the returned polygon. + + + + + Sets the constant linear velocity. This does not move the tile. This linear velocity is applied to objects colliding with this tile. This is useful to create conveyor belts. + + + + + Returns the constant linear velocity applied to objects colliding with this tile. + + + + + Sets the constant angular velocity. This does not rotate the tile. This angular velocity is applied to objects colliding with this tile. + + + + + Returns the constant angular velocity applied to objects colliding with this tile. + + + + + Sets the polygons count for TileSet physics layer with index . + + + + + Returns how many polygons the tile has for TileSet physics layer with index . + + + + + Adds a collision polygon to the tile on the given TileSet physics layer. + + + + + Removes the polygon at index for TileSet physics layer with index . + + + + + Sets the points of the polygon at index for TileSet physics layer with index . + + + + + Sets the points of the polygon at index for TileSet physics layer with index . + + + + + Returns the points of the polygon at index for TileSet physics layer with index . + + + + + Enables/disables one-way collisions on the polygon at index for TileSet physics layer with index . + + + + + Returns whether one-way collisions are enabled for the polygon at index for TileSet physics layer with index . + + + + + Sets the one-way margin (for one-way platforms) of the polygon at index for TileSet physics layer with index . + + + + + Returns the one-way margin (for one-way platforms) of the polygon at index for TileSet physics layer with index . + + + + + Sets the tile's terrain bit for the given direction. To check that a direction is valid, use . + + + + + Returns the tile's terrain bit for the given direction. To check that a direction is valid, use . + + + + + Returns whether the given direction is valid for this tile. + + + + + Sets the navigation polygon for the TileSet navigation layer with index . + + + + + Returns the navigation polygon of the tile for the TileSet navigation layer with index . + , , and allow transforming the returned polygon. + + + + + Sets the tile's custom data value for the TileSet custom data layer with name . + + + + + Returns the custom data value for custom data layer named . + + + + + Sets the tile's custom data value for the TileSet custom data layer with index . + + + + + Returns the custom data value for custom data layer with index . + + + + + Returns the occluder polygon of the tile for the TileSet occlusion layer with index . + , , and allow transforming the returned polygon. + + + + + Returns the navigation polygon of the tile for the TileSet navigation layer with index . + , , and allow transforming the returned polygon. + + + + + Emitted when any of the properties are changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flip_h' property. + + + + + Cached name for the 'flip_v' property. + + + + + Cached name for the 'transpose' property. + + + + + Cached name for the 'texture_origin' property. + + + + + Cached name for the 'modulate' property. + + + + + Cached name for the 'material' property. + + + + + Cached name for the 'z_index' property. + + + + + Cached name for the 'y_sort_origin' property. + + + + + Cached name for the 'terrain_set' property. + + + + + Cached name for the 'terrain' property. + + + + + Cached name for the 'probability' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_flip_h' method. + + + + + Cached name for the 'get_flip_h' method. + + + + + Cached name for the 'set_flip_v' method. + + + + + Cached name for the 'get_flip_v' method. + + + + + Cached name for the 'set_transpose' method. + + + + + Cached name for the 'get_transpose' method. + + + + + Cached name for the 'set_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached name for the 'set_texture_origin' method. + + + + + Cached name for the 'get_texture_origin' method. + + + + + Cached name for the 'set_modulate' method. + + + + + Cached name for the 'get_modulate' method. + + + + + Cached name for the 'set_z_index' method. + + + + + Cached name for the 'get_z_index' method. + + + + + Cached name for the 'set_y_sort_origin' method. + + + + + Cached name for the 'get_y_sort_origin' method. + + + + + Cached name for the 'set_occluder_polygons_count' method. + + + + + Cached name for the 'get_occluder_polygons_count' method. + + + + + Cached name for the 'add_occluder_polygon' method. + + + + + Cached name for the 'remove_occluder_polygon' method. + + + + + Cached name for the 'set_occluder_polygon' method. + + + + + Cached name for the 'get_occluder_polygon' method. + + + + + Cached name for the 'set_occluder' method. + + + + + Cached name for the 'get_occluder' method. + + + + + Cached name for the 'set_constant_linear_velocity' method. + + + + + Cached name for the 'get_constant_linear_velocity' method. + + + + + Cached name for the 'set_constant_angular_velocity' method. + + + + + Cached name for the 'get_constant_angular_velocity' method. + + + + + Cached name for the 'set_collision_polygons_count' method. + + + + + Cached name for the 'get_collision_polygons_count' method. + + + + + Cached name for the 'add_collision_polygon' method. + + + + + Cached name for the 'remove_collision_polygon' method. + + + + + Cached name for the 'set_collision_polygon_points' method. + + + + + Cached name for the 'get_collision_polygon_points' method. + + + + + Cached name for the 'set_collision_polygon_one_way' method. + + + + + Cached name for the 'is_collision_polygon_one_way' method. + + + + + Cached name for the 'set_collision_polygon_one_way_margin' method. + + + + + Cached name for the 'get_collision_polygon_one_way_margin' method. + + + + + Cached name for the 'set_terrain_set' method. + + + + + Cached name for the 'get_terrain_set' method. + + + + + Cached name for the 'set_terrain' method. + + + + + Cached name for the 'get_terrain' method. + + + + + Cached name for the 'set_terrain_peering_bit' method. + + + + + Cached name for the 'get_terrain_peering_bit' method. + + + + + Cached name for the 'is_valid_terrain_peering_bit' method. + + + + + Cached name for the 'set_navigation_polygon' method. + + + + + Cached name for the 'get_navigation_polygon' method. + + + + + Cached name for the 'set_probability' method. + + + + + Cached name for the 'get_probability' method. + + + + + Cached name for the 'set_custom_data' method. + + + + + Cached name for the 'get_custom_data' method. + + + + + Cached name for the 'set_custom_data_by_layer_id' method. + + + + + Cached name for the 'get_custom_data_by_layer_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + Node for 2D tile-based maps. A uses a which contain a list of tiles which are used to create grid-based maps. Unlike the node, which is deprecated, has only one layer of tiles. You can use several to achieve the same result as a node. + For performance reasons, all TileMap updates are batched at the end of a frame. Notably, this means that scene tiles from a may be initialized after their parent. This is only queued when inside the scene tree. + To force an update earlier on, call . + + + + + Hide the collisions or navigation debug shapes in the editor, and use the debug settings to determine their visibility in game (i.e. or ). + + + + + Always hide the collisions or navigation debug shapes. + + + + + Always show the collisions or navigation debug shapes. + + + + + The raw tile map data as a byte array. + + + + + If , disables this completely (rendering, collision, navigation, scene tiles, etc.) + + + + + The used by this layer. The textures, collisions, and additional behavior of all available tiles are stored here. + + + + + Enable or disable light occlusion. + + + + + This Y-sort origin value is added to each tile's Y-sort origin value. This allows, for example, to fake a different height level. This can be useful for top-down view games. + + + + + If is enabled, setting this to will reverse the order the tiles are drawn on the X-axis. + + + + + The 's quadrant size. A quadrant is a group of tiles to be drawn together on a single canvas item, for optimization purposes. defines the length of a square's side, in the map's coordinate system, that forms the quadrant. Thus, the default quadrant size groups together 16 * 16 = 256 tiles. + The quadrant size does not apply on a Y-sorted , as tiles are grouped by Y position instead in that case. + Note: As quadrants are created according to the map's coordinate system, the quadrant's "square shape" might not look like square in the 's local coordinate system. + + + + + Enable or disable collisions. + + + + + If , this collision shapes will be instantiated as kinematic bodies. This can be needed for moving nodes (i.e. moving platforms). + + + + + Show or hide the 's collision shapes. If set to , this depends on the show collision debug settings. + + + + + If , navigation regions are enabled. + + + + + Show or hide the 's navigation meshes. If set to , this depends on the show navigation debug settings. + + + + + Called with a object about to be used internally by the , allowing its modification at runtime. + This method is only called if is implemented and returns for the given tile . + Warning: The 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. + Note: If the properties of object should change over time, use to notify the it needs an update. + + + + + Called when this 's cells need an internal update. This update may be caused from individual cells being modified or by a change in the (causing all cells to be queued for an update). The first call to this function is always for initializing all the 's cells. contains the coordinates of all modified cells, roughly in the order they were modified. is when the 's internals should be fully cleaned up. This is the case when: + - The layer is disabled; + - The layer is not visible; + - is set to ; + - The node is removed from the tree; + - The node is freed. + Note that any internal update happening while one of these conditions is verified is considered to be a "cleanup". See also . + Warning: Implementing this method may degrade the 's performance. + + + + + Should return if the tile at coordinates requires a runtime update. + Warning: Make sure this function only returns when needed. Any tile processed at runtime without a need for it will imply a significant performance penalty. + Note: If the result of this function should change, use to notify the it needs an update. + + + + + Sets the tile identifiers for the cell at coordinates . Each tile of the is identified using three parts: + - The source identifier identifies a identifier. See , + - The atlas coordinate identifier identifies a tile coordinates in the atlas (if the source is a ). For it should always be Vector2i(0, 0), + - The alternative tile identifier identifies a tile alternative in the atlas (if the source is a ), and the scene for a . + If is set to -1, to Vector2i(-1, -1), or to -1, the cell will be erased. An erased cell gets all its identifiers automatically set to their respective invalid values, namely -1, Vector2i(-1, -1) and -1. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Erases the cell at coordinates . + + + + + Clears cells containing tiles that do not exist in the . + + + + + Clears all cells. + + + + + Returns the tile source ID of the cell at coordinates . Returns -1 if the cell does not exist. + + + + + Returns the tile atlas coordinates ID of the cell at coordinates . Returns Vector2i(-1, -1) if the cell does not exist. + + + + + Returns the tile alternative ID of the cell at coordinates . + + + + + Returns the object associated with the given cell, or if the cell does not exist or is not a . + + func get_clicked_tile_power(): + var clicked_cell = tile_map_layer.local_to_map(tile_map_layer.get_local_mouse_position()) + var data = tile_map_layer.get_cell_tile_data(clicked_cell) + if data: + return data.get_custom_data("power") + else: + return 0 + + + + + + Returns if the cell at coordinates is flipped horizontally. The result is valid only for atlas sources. + + + + + Returns if the cell at coordinates is flipped vertically. The result is valid only for atlas sources. + + + + + Returns if the cell at coordinates is transposed. The result is valid only for atlas sources. + + + + + Returns a array with the positions of all cells containing a tile. A cell is considered empty if its source identifier equals -1, its atlas coordinate identifier is Vector2(-1, -1) and its alternative identifier is -1. + + + + + Returns a array with the positions of all cells containing a tile. Tiles may be filtered according to their source (), their atlas coordinates (), or alternative id (). + If a parameter has its value set to the default one, this parameter is not used to filter a cell. Thus, if all parameters have their respective default values, this method returns the same result as . + A cell is considered empty if its source identifier equals -1, its atlas coordinate identifier is Vector2(-1, -1) and its alternative identifier is -1. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns a rectangle enclosing the used (non-empty) tiles of the map. + + + + + Creates and returns a new from the given array of cells. See also . + + + + + Pastes the at the given in the tile map. See also . + + + + + Update all the cells in the coordinates array so that they use the given for the given . If an updated cell has the same terrain as one of its neighboring cells, this function tries to join the two. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + Note: To work correctly, this method requires the 's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Update all the cells in the coordinates array so that they use the given for the given . The function will also connect two successive cell in the path with the same terrain. This function might update neighboring tiles if needed to create correct terrain transitions. + If is , empty terrains will be ignored when trying to find the best fitting tile for the given terrain constraints. + Note: To work correctly, this method requires the 's TileSet to have terrains set up with all required terrain combinations. Otherwise, it may produce unexpected results. + + + + + Returns whether the provided belongs to one of this 's cells. + + + + + Returns the coordinates of the tile for given physics body . Such an can be retrieved from , when colliding with a tile. + + + + + Triggers a direct update of the . Usually, calling this function is not needed, as node updates automatically when one of its properties or cells is modified. + However, for performance reasons, those updates are batched and delayed to the end of the frame. Calling this function will force the to update right away instead. + Warning: Updating the is computationally expensive and may impact performance. Try to limit the number of updates and how many tiles they impact. + + + + + Notifies the node that calls to or will lead to different results. This will thus trigger a update. + Warning: Updating the is computationally expensive and may impact performance. Try to limit the number of calls to this function to avoid unnecessary update. + Note: This does not trigger a direct update of the , the update will be done at the end of the frame as usual (unless you call ). + + + + + Returns for the given coordinates in a the corresponding cell coordinates if the pattern was pasted at the coordinates (see ). This mapping is required as in half-offset tile shapes, the mapping might not work by calculating position_in_tile_map + coords_in_pattern. + + + + + Returns the list of all neighboring cells to the one at . Any neighboring cell is one that is touching edges, so for a square cell 4 cells would be returned, for a hexagon 6 cells are returned. + + + + + Returns the neighboring cell to the one at coordinates , identified by the direction. This method takes into account the different layouts a TileMap can take. + + + + + Returns the centered position of a cell in the 's local coordinate space. To convert the returned value into global coordinates, use . See also . + Note: This may not correspond to the visual position of the tile, i.e. it ignores the property of individual tiles. + + + + + Returns the map coordinates of the cell containing the given . If is in global coordinates, consider using before passing it to this method. See also . + + + + + Sets a custom as a navigation map. If not set, uses the default navigation map instead. + + + + + Returns the of the navigation used by this . + By default this returns the default navigation map, unless a custom map was provided using . + + + + + Emitted when this 's properties changes. This includes modified cells, properties, or changes made to its assigned . + Note: This signal may be emitted very often when batch-modifying a . Avoid executing complex processing in a connected function, and consider delaying it to the end of the frame instead (i.e. calling ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tile_map_data' property. + + + + + Cached name for the 'enabled' property. + + + + + Cached name for the 'tile_set' property. + + + + + Cached name for the 'occlusion_enabled' property. + + + + + Cached name for the 'y_sort_origin' property. + + + + + Cached name for the 'x_draw_order_reversed' property. + + + + + Cached name for the 'rendering_quadrant_size' property. + + + + + Cached name for the 'collision_enabled' property. + + + + + Cached name for the 'use_kinematic_bodies' property. + + + + + Cached name for the 'collision_visibility_mode' property. + + + + + Cached name for the 'navigation_enabled' property. + + + + + Cached name for the 'navigation_visibility_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_tile_data_runtime_update' method. + + + + + Cached name for the '_update_cells' method. + + + + + Cached name for the '_use_tile_data_runtime_update' method. + + + + + Cached name for the 'set_cell' method. + + + + + Cached name for the 'erase_cell' method. + + + + + Cached name for the 'fix_invalid_tiles' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_cell_source_id' method. + + + + + Cached name for the 'get_cell_atlas_coords' method. + + + + + Cached name for the 'get_cell_alternative_tile' method. + + + + + Cached name for the 'get_cell_tile_data' method. + + + + + Cached name for the 'is_cell_flipped_h' method. + + + + + Cached name for the 'is_cell_flipped_v' method. + + + + + Cached name for the 'is_cell_transposed' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_used_cells_by_id' method. + + + + + Cached name for the 'get_used_rect' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'set_pattern' method. + + + + + Cached name for the 'set_cells_terrain_connect' method. + + + + + Cached name for the 'set_cells_terrain_path' method. + + + + + Cached name for the 'has_body_rid' method. + + + + + Cached name for the 'get_coords_for_body_rid' method. + + + + + Cached name for the 'update_internals' method. + + + + + Cached name for the 'notify_runtime_tile_data_update' method. + + + + + Cached name for the 'map_pattern' method. + + + + + Cached name for the 'get_surrounding_cells' method. + + + + + Cached name for the 'get_neighbor_cell' method. + + + + + Cached name for the 'map_to_local' method. + + + + + Cached name for the 'local_to_map' method. + + + + + Cached name for the 'set_tile_map_data_from_array' method. + + + + + Cached name for the 'get_tile_map_data_as_array' method. + + + + + Cached name for the 'set_enabled' method. + + + + + Cached name for the 'is_enabled' method. + + + + + Cached name for the 'set_tile_set' method. + + + + + Cached name for the 'get_tile_set' method. + + + + + Cached name for the 'set_y_sort_origin' method. + + + + + Cached name for the 'get_y_sort_origin' method. + + + + + Cached name for the 'set_x_draw_order_reversed' method. + + + + + Cached name for the 'is_x_draw_order_reversed' method. + + + + + Cached name for the 'set_rendering_quadrant_size' method. + + + + + Cached name for the 'get_rendering_quadrant_size' method. + + + + + Cached name for the 'set_collision_enabled' method. + + + + + Cached name for the 'is_collision_enabled' method. + + + + + Cached name for the 'set_use_kinematic_bodies' method. + + + + + Cached name for the 'is_using_kinematic_bodies' method. + + + + + Cached name for the 'set_collision_visibility_mode' method. + + + + + Cached name for the 'get_collision_visibility_mode' method. + + + + + Cached name for the 'set_occlusion_enabled' method. + + + + + Cached name for the 'is_occlusion_enabled' method. + + + + + Cached name for the 'set_navigation_enabled' method. + + + + + Cached name for the 'is_navigation_enabled' method. + + + + + Cached name for the 'set_navigation_map' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'set_navigation_visibility_mode' method. + + + + + Cached name for the 'get_navigation_visibility_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'changed' signal. + + + + + This resource holds a set of cells to help bulk manipulations of . + A pattern always start at the (0,0) coordinates and cannot have cells with negative coordinates. + + + + + Sets the tile identifiers for the cell at coordinates . See . + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns whether the pattern has a tile at the given coordinates. + + + + + Remove the cell at the given coordinates. + + + + + Returns the tile source ID of the cell at . + + + + + Returns the tile atlas coordinates ID of the cell at . + + + + + Returns the tile alternative ID of the cell at . + + + + + Returns the list of used cell coordinates in the pattern. + + + + + Returns the size, in cells, of the pattern. + + + + + Sets the size of the pattern. + + + + + Returns whether the pattern is empty or not. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cell' method. + + + + + Cached name for the 'has_cell' method. + + + + + Cached name for the 'remove_cell' method. + + + + + Cached name for the 'get_cell_source_id' method. + + + + + Cached name for the 'get_cell_atlas_coords' method. + + + + + Cached name for the 'get_cell_alternative_tile' method. + + + + + Cached name for the 'get_used_cells' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'is_empty' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A TileSet is a library of tiles for a . A TileSet handles a list of , each of them storing a set of tiles. + Tiles can either be from a , which renders tiles out of a texture with support for physics, navigation, etc., or from a , 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. + + + + + Rectangular tile shape. + + + + + Diamond tile shape (for isometric look). + Note: Isometric works best if and all its layers have Y-sort enabled. + + + + + Rectangular tile shape with one row/column out of two offset by half a tile. + + + + + Hexagonal tile shape. + + + + + Tile coordinates layout where both axis stay consistent with their respective local horizontal and vertical axis. + + + + + Same as , but the first half-offset is negative instead of positive. + + + + + Tile coordinates layout where the horizontal axis stay horizontal, and the vertical one goes down-right. + + + + + Tile coordinates layout where the vertical axis stay vertical, and the horizontal one goes down-right. + + + + + Tile coordinates layout where the horizontal axis goes up-right, and the vertical one goes down-right. + + + + + Tile coordinates layout where the horizontal axis goes down-right, and the vertical one goes down-left. + + + + + Horizontal half-offset. + + + + + Vertical half-offset. + + + + + Neighbor on the right side. + + + + + Neighbor in the right corner. + + + + + Neighbor on the bottom right side. + + + + + Neighbor in the bottom right corner. + + + + + Neighbor on the bottom side. + + + + + Neighbor in the bottom corner. + + + + + Neighbor on the bottom left side. + + + + + Neighbor in the bottom left corner. + + + + + Neighbor on the left side. + + + + + Neighbor in the left corner. + + + + + Neighbor on the top left side. + + + + + Neighbor in the top left corner. + + + + + Neighbor on the top side. + + + + + Neighbor in the top corner. + + + + + Neighbor on the top right side. + + + + + Neighbor in the top right corner. + + + + + Requires both corners and side to match with neighboring tiles' terrains. + + + + + Requires corners to match with neighboring tiles' terrains. + + + + + Requires sides to match with neighboring tiles' terrains. + + + + + The tile shape. + + + + + For all half-offset shapes (Isometric, Hexagonal and Half-Offset square), changes the way tiles are indexed in the TileMap grid. + + + + + For all half-offset shapes (Isometric, Hexagonal and Half-Offset square), determines the offset axis. + + + + + The tile size, in pixels. For all tile shapes, this size corresponds to the encompassing rectangle of the tile shape. This is thus the minimal cell size required in an atlas. + + + + + Enables/Disable uv clipping when rendering the tiles. + + + + + Returns a new unused source ID. This generated ID is the same that a call to would return. + + + + + Adds a to the TileSet. If is not -1, also set its source ID. Otherwise, a unique identifier is automatically generated. + The function returns the added source ID or -1 if the source could not be added. + Warning: A source cannot belong to two TileSets at the same time. If the added source was attached to another , it will be removed from that one. + + + + + Removes the source with the given source ID. + + + + + Changes a source's ID. + + + + + Returns the number of in this TileSet. + + + + + Returns the source ID for source with index . + + + + + Returns if this TileSet has a source for the given source ID. + + + + + Returns the with ID . + + + + + Returns the occlusion layers count. + + + + + Adds an occlusion layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Occlusion layers allow assigning occlusion polygons to atlas tiles. + + + + + Moves the occlusion layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the occlusion layer at index . Also updates the atlas tiles accordingly. + + + + + Sets the occlusion layer (as in the rendering server) for occluders in the given TileSet occlusion layer. + + + + + Returns the light mask of the occlusion layer. + + + + + Enables or disables SDF collision for occluders in the given TileSet occlusion layer. + + + + + Returns if the occluders from this layer use sdf_collision. + + + + + Returns the physics layers count. + + + + + Adds a physics layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Physics layers allow assigning collision polygons to atlas tiles. + + + + + Moves the physics layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the physics layer at index . Also updates the atlas tiles accordingly. + + + + + Sets the collision layer (as in the physics server) for bodies in the given TileSet physics layer. + + + + + Returns the collision layer (as in the physics server) bodies on the given TileSet's physics layer are in. + + + + + Sets the collision mask for bodies in the given TileSet physics layer. + + + + + Returns the collision mask of bodies on the given TileSet's physics layer. + + + + + Sets the collision priority for bodies in the given TileSet physics layer. + + + + + Returns the collision priority of bodies on the given TileSet's physics layer. + + + + + Sets the physics material for bodies in the given TileSet physics layer. + + + + + Returns the physics material of bodies on the given TileSet's physics layer. + + + + + Returns the terrain sets count. + + + + + Adds a new terrain set at the given position in the array. If is -1, adds it at the end of the array. + + + + + Moves the terrain set at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the terrain set at index . Also updates the atlas tiles accordingly. + + + + + Sets a terrain mode. Each mode determines which bits of a tile shape is used to match the neighboring tiles' terrains. + + + + + Returns a terrain set mode. + + + + + Returns the number of terrains in the given terrain set. + + + + + Adds a new terrain to the given terrain set at the given position in the array. If is -1, adds it at the end of the array. + + + + + Moves the terrain at index for terrain set to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the terrain at index in the given terrain set . Also updates the atlas tiles accordingly. + + + + + Sets a terrain's name. + + + + + Returns a terrain's name. + + + + + Sets a terrain's color. This color is used for identifying the different terrains in the TileSet editor. + + + + + Returns a terrain's color. + + + + + Returns the navigation layers count. + + + + + Adds a navigation layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Navigation layers allow assigning a navigable area to atlas tiles. + + + + + Moves the navigation layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the navigation layer at index . Also updates the atlas tiles accordingly. + + + + + Sets the navigation layers (as in the navigation server) for navigation regions in the given TileSet navigation layer. + + + + + Returns the navigation layers (as in the Navigation server) of the given TileSet navigation layer. + + + + + Based on , enables or disables the specified navigation layer of the TileSet navigation data layer identified by the given , given a navigation_layers between 1 and 32. + + + + + Returns whether or not the specified navigation layer of the TileSet navigation data layer identified by the given is enabled, given a navigation_layers between 1 and 32. + + + + + Returns the custom data layers count. + + + + + Adds a custom data layer to the TileSet at the given position in the array. If is -1, adds it at the end of the array. + Custom data layers allow assigning custom properties to atlas tiles. + + + + + Moves the custom data layer at index to the given position in the array. Also updates the atlas tiles accordingly. + + + + + Removes the custom data layer at index . Also updates the atlas tiles accordingly. + + + + + Returns the index of the custom data layer identified by the given name. + + + + + Sets the name of the custom data layer identified by the given index. Names are identifiers of the layer therefore if the name is already taken it will fail and raise an error. + + + + + Returns the name of the custom data layer identified by the given index. + + + + + Sets the type of the custom data layer identified by the given index. + + + + + Returns the type of the custom data layer identified by the given index. + + + + + Creates a source-level proxy for the given source ID. A proxy will map set of tile identifiers to another set of identifiers. Both the atlas coordinates ID and the alternative tile ID are kept the same when using source-level proxies. + This can be used to replace a source in all TileMaps using this TileSet, as TileMap nodes will find and use the proxy's target source when one is available. + Proxied tiles can be automatically replaced in TileMap nodes using the editor. + + + + + Returns the source-level proxy for the given source identifier. + If the TileSet has no proxy for the given identifier, returns -1. + + + + + Returns if there is a source-level proxy for the given source ID. + + + + + Removes a source-level tile proxy. + + + + + Creates a coordinates-level proxy for the given identifiers. A proxy will map set of tile identifiers to another set of identifiers. The alternative tile ID is kept the same when using coordinates-level proxies. + This can be used to replace a tile in all TileMaps using this TileSet, as TileMap nodes will find and use the proxy's target tile when one is available. + Proxied tiles can be automatically replaced in TileMap nodes using the editor. + + + + + Returns the coordinate-level proxy for the given identifiers. The returned array contains the two target identifiers of the proxy (source ID and atlas coordinates ID). + If the TileSet has no proxy for the given identifiers, returns an empty Array. + + + + + Returns if there is a coodinates-level proxy for the given identifiers. + + + + + Removes a coordinates-level proxy for the given identifiers. + + + + + Create an alternative-level proxy for the given identifiers. A proxy will map set of tile identifiers to another set of identifiers. + This can be used to replace a tile in all TileMaps using this TileSet, as TileMap nodes will find and use the proxy's target tile when one is available. + Proxied tiles can be automatically replaced in TileMap nodes using the editor. + + + + + Returns the alternative-level proxy for the given identifiers. The returned array contains the three proxie's target identifiers (source ID, atlas coords ID and alternative tile ID). + If the TileSet has no proxy for the given identifiers, returns an empty Array. + + + + + Returns if there is an alternative-level proxy for the given identifiers. + + + + + Removes an alternative-level proxy for the given identifiers. + + + + + According to the configured proxies, maps the provided identifiers to a new set of identifiers. The source ID, atlas coordinates ID and alternative tile ID are returned as a 3 elements Array. + This function first look for matching alternative-level proxies, then coordinates-level proxies, then source-level proxies. + If no proxy corresponding to provided identifiers are found, returns the same values the ones used as arguments. + + + + + Clears tile proxies pointing to invalid tiles. + + + + + Clears all tile proxies. + + + + + Adds a to be stored in the TileSet resource. If provided, insert it at the given . + + + + + Returns the at the given . + + + + + Remove the at the given index. + + + + + Returns the number of this tile set handles. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tile_shape' property. + + + + + Cached name for the 'tile_layout' property. + + + + + Cached name for the 'tile_offset_axis' property. + + + + + Cached name for the 'tile_size' property. + + + + + Cached name for the 'uv_clipping' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_next_source_id' method. + + + + + Cached name for the 'add_source' method. + + + + + Cached name for the 'remove_source' method. + + + + + Cached name for the 'set_source_id' method. + + + + + Cached name for the 'get_source_count' method. + + + + + Cached name for the 'get_source_id' method. + + + + + Cached name for the 'has_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached name for the 'set_tile_shape' method. + + + + + Cached name for the 'get_tile_shape' method. + + + + + Cached name for the 'set_tile_layout' method. + + + + + Cached name for the 'get_tile_layout' method. + + + + + Cached name for the 'set_tile_offset_axis' method. + + + + + Cached name for the 'get_tile_offset_axis' method. + + + + + Cached name for the 'set_tile_size' method. + + + + + Cached name for the 'get_tile_size' method. + + + + + Cached name for the 'set_uv_clipping' method. + + + + + Cached name for the 'is_uv_clipping' method. + + + + + Cached name for the 'get_occlusion_layers_count' method. + + + + + Cached name for the 'add_occlusion_layer' method. + + + + + Cached name for the 'move_occlusion_layer' method. + + + + + Cached name for the 'remove_occlusion_layer' method. + + + + + Cached name for the 'set_occlusion_layer_light_mask' method. + + + + + Cached name for the 'get_occlusion_layer_light_mask' method. + + + + + Cached name for the 'set_occlusion_layer_sdf_collision' method. + + + + + Cached name for the 'get_occlusion_layer_sdf_collision' method. + + + + + Cached name for the 'get_physics_layers_count' method. + + + + + Cached name for the 'add_physics_layer' method. + + + + + Cached name for the 'move_physics_layer' method. + + + + + Cached name for the 'remove_physics_layer' method. + + + + + Cached name for the 'set_physics_layer_collision_layer' method. + + + + + Cached name for the 'get_physics_layer_collision_layer' method. + + + + + Cached name for the 'set_physics_layer_collision_mask' method. + + + + + Cached name for the 'get_physics_layer_collision_mask' method. + + + + + Cached name for the 'set_physics_layer_collision_priority' method. + + + + + Cached name for the 'get_physics_layer_collision_priority' method. + + + + + Cached name for the 'set_physics_layer_physics_material' method. + + + + + Cached name for the 'get_physics_layer_physics_material' method. + + + + + Cached name for the 'get_terrain_sets_count' method. + + + + + Cached name for the 'add_terrain_set' method. + + + + + Cached name for the 'move_terrain_set' method. + + + + + Cached name for the 'remove_terrain_set' method. + + + + + Cached name for the 'set_terrain_set_mode' method. + + + + + Cached name for the 'get_terrain_set_mode' method. + + + + + Cached name for the 'get_terrains_count' method. + + + + + Cached name for the 'add_terrain' method. + + + + + Cached name for the 'move_terrain' method. + + + + + Cached name for the 'remove_terrain' method. + + + + + Cached name for the 'set_terrain_name' method. + + + + + Cached name for the 'get_terrain_name' method. + + + + + Cached name for the 'set_terrain_color' method. + + + + + Cached name for the 'get_terrain_color' method. + + + + + Cached name for the 'get_navigation_layers_count' method. + + + + + Cached name for the 'add_navigation_layer' method. + + + + + Cached name for the 'move_navigation_layer' method. + + + + + Cached name for the 'remove_navigation_layer' method. + + + + + Cached name for the 'set_navigation_layer_layers' method. + + + + + Cached name for the 'get_navigation_layer_layers' method. + + + + + Cached name for the 'set_navigation_layer_layer_value' method. + + + + + Cached name for the 'get_navigation_layer_layer_value' method. + + + + + Cached name for the 'get_custom_data_layers_count' method. + + + + + Cached name for the 'add_custom_data_layer' method. + + + + + Cached name for the 'move_custom_data_layer' method. + + + + + Cached name for the 'remove_custom_data_layer' method. + + + + + Cached name for the 'get_custom_data_layer_by_name' method. + + + + + Cached name for the 'set_custom_data_layer_name' method. + + + + + Cached name for the 'get_custom_data_layer_name' method. + + + + + Cached name for the 'set_custom_data_layer_type' method. + + + + + Cached name for the 'get_custom_data_layer_type' method. + + + + + Cached name for the 'set_source_level_tile_proxy' method. + + + + + Cached name for the 'get_source_level_tile_proxy' method. + + + + + Cached name for the 'has_source_level_tile_proxy' method. + + + + + Cached name for the 'remove_source_level_tile_proxy' method. + + + + + Cached name for the 'set_coords_level_tile_proxy' method. + + + + + Cached name for the 'get_coords_level_tile_proxy' method. + + + + + Cached name for the 'has_coords_level_tile_proxy' method. + + + + + Cached name for the 'remove_coords_level_tile_proxy' method. + + + + + Cached name for the 'set_alternative_level_tile_proxy' method. + + + + + Cached name for the 'get_alternative_level_tile_proxy' method. + + + + + Cached name for the 'has_alternative_level_tile_proxy' method. + + + + + Cached name for the 'remove_alternative_level_tile_proxy' method. + + + + + Cached name for the 'map_tile_proxy' method. + + + + + Cached name for the 'cleanup_invalid_tile_proxies' method. + + + + + Cached name for the 'clear_tile_proxies' method. + + + + + Cached name for the 'add_pattern' method. + + + + + Cached name for the 'get_pattern' method. + + + + + Cached name for the 'remove_pattern' method. + + + + + Cached name for the 'get_patterns_count' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An atlas is a grid of tiles laid out on a texture. Each tile in the grid must be exposed using . 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 , 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 layers. Those properties are stored in a TileData object that can be accessed and modified using . + As TileData properties are stored directly in the TileSetAtlasSource resource, their properties might also be set using TileSetAtlasSource.set("<coords_x>:<coords_y>/<alternative_id>/<tile_data_property>"). + + + + + Represents cell's horizontal flip flag. Should be used directly with to flip placed tiles by altering their alternative IDs. + + var alternate_id = $TileMap.get_cell_alternative_tile(0, Vector2i(2, 2)) + if not alternate_id & TileSetAtlasSource.TRANSFORM_FLIP_H: + # If tile is not already flipped, flip it. + $TileMap.set_cell(0, Vector2i(2, 2), source_id, atlas_coords, alternate_id | TileSetAtlasSource.TRANSFORM_FLIP_H) + + Note: These transformations can be combined to do the equivalent of 0, 90, 180, and 270 degree rotations, as shown below: + + enum TileTransform { + ROTATE_0 = 0, + ROTATE_90 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource.TRANSFORM_FLIP_H, + ROTATE_180 = TileSetAtlasSource.TRANSFORM_FLIP_H | TileSetAtlasSource.TRANSFORM_FLIP_V, + ROTATE_270 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource.TRANSFORM_FLIP_V, + } + + + + + + Represents cell's vertical flip flag. See for usage. + + + + + Represents cell's transposed flag. See for usage. + + + + + Tile animations start at same time, looking identical. + + + + + Tile animations start at random times, looking varied. + + + + + Represents the size of the enum. + + + + + The atlas texture. + + + + + Margins, in pixels, to offset the origin of the grid in the texture. + + + + + Separation, in pixels, between each tile texture region of the grid. + + + + + The base tile size in the texture (in pixel). This size must be bigger than or equal to the TileSet's tile_size value. + + + + + If , generates an internal texture with an additional one pixel padding around each tile. Texture padding avoids a common artifact where lines appear between tiles. + Disabling this setting might lead a small performance improvement, as generating the internal texture requires both memory and processing time when the TileSetAtlasSource resource is modified. + + + + + Creates a new tile at coordinates with the given . + + If the parameter is null, then the default value is new Vector2I(1, 1). + + + + Remove a tile and its alternative at coordinates . + + + + + Move the tile and its alternatives at the coordinates to the coordinates with the size. This functions will fail if a tile is already present in the given area. + If is Vector2i(-1, -1), keeps the tile's coordinates. If is Vector2i(-1, -1), keeps the tile's size. + To avoid an error, first check if a move is possible using . + + If the parameter is null, then the default value is new Vector2I(-1, -1). + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns the size of the tile (in the grid coordinates system) at coordinates . + + + + + Returns whether there is enough room in an atlas to create/modify a tile with the given properties. If is provided, act as is the given tile was not present in the atlas. This may be used when you want to modify a tile's properties. + + If the parameter is null, then the default value is new Vector2I(-1, -1). + + + + Returns an array of tiles coordinates ID that will be automatically removed when modifying one or several of those properties: , , or . This can be used to undo changes that would have caused tiles data loss. + + + + + If there is a tile covering the coordinates, returns the top-left coordinates of the tile (thus its coordinate ID). Returns Vector2i(-1, -1) otherwise. + + + + + Checks if the source has any tiles that don't fit the texture area (either partially or completely). + + + + + Removes all tiles that don't fit the available texture area. This method iterates over all the source's tiles, so it's advised to use beforehand. + + + + + Sets the number of columns in the animation layout of the tile at coordinates . If set to 0, then the different frames of the animation are laid out as a single horizontal line in the atlas. + + + + + Returns how many columns the tile at has in its animation layout. + + + + + Sets the margin (in grid tiles) between each tile in the animation layout of the tile at coordinates has. + + + + + Returns the separation (as in the atlas grid) between each frame of an animated tile at coordinates . + + + + + Sets the animation speed of the tile at coordinates has. + + + + + Returns the animation speed of the tile at coordinates . + + + + + Sets the tile animation mode of the tile at to . See also . + + + + + Returns the tile animation mode of the tile at . See also . + + + + + Sets how many animation frames the tile at coordinates has. + + + + + Returns how many animation frames has the tile at coordinates . + + + + + Sets the animation frame of frame for the tile at coordinates . + + + + + Returns the animation frame duration of frame for the tile at coordinates . + + + + + Returns the sum of the sum of the frame durations of the tile at coordinates . This value needs to be divided by the animation speed to get the actual animation loop duration. + + + + + Creates an alternative tile for the tile at coordinates . If is -1, give it an automatically generated unique ID, or assigns it the given ID otherwise. + Returns the new alternative identifier, or -1 if the alternative could not be created with a provided . + + + + + Remove a tile's alternative with alternative ID . + Calling this function with equals to 0 will fail, as the base tile alternative cannot be removed. + + + + + Change a tile's alternative ID from to . + Calling this function with of 0 will fail, as the base tile alternative cannot be moved. + + + + + Returns the alternative ID a following call to would return. + + + + + Returns the object for the given atlas coordinates and alternative ID. + + + + + Returns the atlas grid size, which depends on how many tiles can fit in the texture. It thus depends on the 's size, the atlas , and the tiles' . + + + + + Returns a tile's texture region in the atlas texture. For animated tiles, a argument might be provided for the different frames of the animation. + + + + + If is , returns . Otherwise, returns and internal created that includes the padding. + + + + + Returns the region of the tile at coordinates for the given inside the texture returned by . + Note: If is , returns the same as . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'margins' property. + + + + + Cached name for the 'separation' property. + + + + + Cached name for the 'texture_region_size' property. + + + + + Cached name for the 'use_texture_padding' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_margins' method. + + + + + Cached name for the 'get_margins' method. + + + + + Cached name for the 'set_separation' method. + + + + + Cached name for the 'get_separation' method. + + + + + Cached name for the 'set_texture_region_size' method. + + + + + Cached name for the 'get_texture_region_size' method. + + + + + Cached name for the 'set_use_texture_padding' method. + + + + + Cached name for the 'get_use_texture_padding' method. + + + + + Cached name for the 'create_tile' method. + + + + + Cached name for the 'remove_tile' method. + + + + + Cached name for the 'move_tile_in_atlas' method. + + + + + Cached name for the 'get_tile_size_in_atlas' method. + + + + + Cached name for the 'has_room_for_tile' method. + + + + + Cached name for the 'get_tiles_to_be_removed_on_change' method. + + + + + Cached name for the 'get_tile_at_coords' method. + + + + + Cached name for the 'has_tiles_outside_texture' method. + + + + + Cached name for the 'clear_tiles_outside_texture' method. + + + + + Cached name for the 'set_tile_animation_columns' method. + + + + + Cached name for the 'get_tile_animation_columns' method. + + + + + Cached name for the 'set_tile_animation_separation' method. + + + + + Cached name for the 'get_tile_animation_separation' method. + + + + + Cached name for the 'set_tile_animation_speed' method. + + + + + Cached name for the 'get_tile_animation_speed' method. + + + + + Cached name for the 'set_tile_animation_mode' method. + + + + + Cached name for the 'get_tile_animation_mode' method. + + + + + Cached name for the 'set_tile_animation_frames_count' method. + + + + + Cached name for the 'get_tile_animation_frames_count' method. + + + + + Cached name for the 'set_tile_animation_frame_duration' method. + + + + + Cached name for the 'get_tile_animation_frame_duration' method. + + + + + Cached name for the 'get_tile_animation_total_duration' method. + + + + + Cached name for the 'create_alternative_tile' method. + + + + + Cached name for the 'remove_alternative_tile' method. + + + + + Cached name for the 'set_alternative_tile_id' method. + + + + + Cached name for the 'get_next_alternative_tile_id' method. + + + + + Cached name for the 'get_tile_data' method. + + + + + Cached name for the 'get_atlas_grid_size' method. + + + + + Cached name for the 'get_tile_texture_region' method. + + + + + Cached name for the 'get_runtime_texture' method. + + + + + Cached name for the 'get_runtime_tile_texture_region' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + When placed on a , tiles from will automatically instantiate an associated scene at the cell's position in the TileMap. + Scenes are instantiated as children of the when it enters the tree. If you add/remove a scene tile in the that is already inside the tree, the will automatically instantiate/free the scene accordingly. + Note: Scene tiles all occupy one tile slot and instead use alternate tile ID to identify scene index. will always return 1. Use to get a number of scenes in a . + Use this code if you want to find the scene path at a given tile in : + + int sourceId = tileMapLayer.GetCellSourceId(new Vector2I(x, y)); + if (sourceId > -1) + { + TileSetSource source = tileMapLayer.TileSet.GetSource(sourceId); + if (source is TileSetScenesCollectionSource sceneSource) + { + int altId = tileMapLayer.GetCellAlternativeTile(new Vector2I(x, y)); + // The assigned PackedScene. + PackedScene scene = sceneSource.GetSceneTileScene(altId); + } + } + + + + + + Returns the number or scene tiles this TileSet source has. + + + + + Returns the scene tile ID of the scene tile at . + + + + + Returns whether this TileSet source has a scene tile with . + + + + + Creates a scene-based tile out of the given scene. + Returns a newly generated unique ID. + + + + + Changes a scene tile's ID from to . This will fail if there is already a tile with an ID equal to . + + + + + Assigns a resource to the scene tile with . This will fail if the scene does not extend CanvasItem, as positioning properties are needed to place the scene on the TileMap. + + + + + Returns the resource of scene tile with . + + + + + Sets whether or not the scene tile with should display a placeholder in the editor. This might be useful for scenes that are not visible. + + + + + Returns whether the scene tile with displays a placeholder in the editor. + + + + + Remove the scene tile with . + + + + + Returns the scene ID a following call to would return. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_scene_tiles_count' method. + + + + + Cached name for the 'get_scene_tile_id' method. + + + + + Cached name for the 'has_scene_tile_id' method. + + + + + Cached name for the 'create_scene_tile' method. + + + + + Cached name for the 'set_scene_tile_id' method. + + + + + Cached name for the 'set_scene_tile_scene' method. + + + + + Cached name for the 'get_scene_tile_scene' method. + + + + + Cached name for the 'set_scene_tile_display_placeholder' method. + + + + + Cached name for the 'get_scene_tile_display_placeholder' method. + + + + + Cached name for the 'remove_scene_tile' method. + + + + + Cached name for the 'get_next_scene_tile_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Exposes a set of tiles for a 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 class. + Depending on the TileSet source type, those IDs might have restrictions on their values, this is why the base class only exposes getters for them. + You can iterate over all tiles exposed by a TileSetSource by first iterating over coordinates IDs using and , then over alternative IDs using and . + Warning: can only be added to one TileSet at the same time. Calling on a second will remove the source from the first one. + + + + + Returns how many tiles this atlas source defines (not including alternative tiles). + + + + + Returns the tile coordinates ID of the tile with index . + + + + + Returns if this atlas has a tile with coordinates ID . + + + + + Returns the number of alternatives tiles for the coordinates ID . + For , this always return at least 1, as the base tile with ID 0 is always part of the alternatives list. + Returns -1 if there is not tile at the given coords. + + + + + Returns the alternative ID for the tile with coordinates ID at index . + + + + + Returns if the base tile at coordinates has an alternative with ID . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tiles_count' method. + + + + + Cached name for the 'get_tile_id' method. + + + + + Cached name for the 'has_tile' method. + + + + + Cached name for the 'get_alternative_tiles_count' method. + + + + + Cached name for the 'get_alternative_tile_id' method. + + + + + Cached name for the 'has_alternative_tile' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The Time singleton allows converting time between various formats and also getting time information from the system. + This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before 1582-10-15 is 1582-10-14, not 1582-10-04. The year before 1 AD (aka 1 BC) is number 0, with the year before that (2 BC) being -1, etc. + Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually. + When getting time information from the system, the time can either be in the local timezone or UTC depending on the utc parameter. However, the method always uses UTC as it returns the seconds passed since the Unix epoch. + Important: The _from_system methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always use or for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease). + + + + + The month of January, represented numerically as 01. + + + + + The month of February, represented numerically as 02. + + + + + The month of March, represented numerically as 03. + + + + + The month of April, represented numerically as 04. + + + + + The month of May, represented numerically as 05. + + + + + The month of June, represented numerically as 06. + + + + + The month of July, represented numerically as 07. + + + + + The month of August, represented numerically as 08. + + + + + The month of September, represented numerically as 09. + + + + + The month of October, represented numerically as 10. + + + + + The month of November, represented numerically as 11. + + + + + The month of December, represented numerically as 12. + + + + + The day of the week Sunday, represented numerically as 0. + + + + + The day of the week Monday, represented numerically as 1. + + + + + The day of the week Tuesday, represented numerically as 2. + + + + + The day of the week Wednesday, represented numerically as 3. + + + + + The day of the week Thursday, represented numerically as 4. + + + + + The day of the week Friday, represented numerically as 5. + + + + + The day of the week Saturday, represented numerically as 6. + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + The returned Dictionary's values will be the same as the if the Unix timestamp is the current time, with the exception of Daylight Savings Time as it cannot be determined from the epoch. + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, and weekday. + + + + + Converts the given time to a dictionary of keys: hour, minute, and second. + + + + + Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD). + + + + + Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS). + + + + + Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + If is , then the weekday entry is excluded (the calculation is relatively expensive). + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given dictionary of keys to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts a dictionary of time values to a Unix timestamp. + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + You can pass the output from directly into this function and get the same as what was put in. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime dictionary. + + + + + Converts the given ISO 8601 date and/or time string to a Unix timestamp. The string can contain a date only, a time only, or both. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime string. + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given timezone offset in minutes to a timezone offset string. For example, -480 returns "-08:00", 345 returns "+05:45", and 0 returns "+00:00". + + + + + Returns the current date as a dictionary of keys: year, month, day, weekday, hour, minute, second, and dst (Daylight Savings Time). + + + + + Returns the current date as a dictionary of keys: year, month, day, and weekday. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as a dictionary of keys: hour, minute, and second. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current date and time as an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Returns the current date as an ISO 8601 date string (YYYY-MM-DD). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as an ISO 8601 time string (HH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time zone as a dictionary of keys: bias and name. + - bias is the offset from UTC in minutes, since not all time zones are multiples of an hour from UTC. + - name is the localized name of the time zone, according to the OS locale settings of the current user. + + + + + Returns the current Unix timestamp in seconds based on the system time in UTC. This method is implemented by the operating system and always returns the time in UTC. The Unix timestamp is the number of seconds passed since 1970-01-01 at 00:00:00, the Unix epoch. + Note: Unlike other methods that use integer timestamps, this method returns the timestamp as a for sub-second precision. + + + + + Returns the amount of time passed in milliseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly 500 million years). + + + + + Returns the amount of time passed in microseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly half a million years). + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_datetime_dict_from_unix_time' method. + + + + + Cached name for the 'get_date_dict_from_unix_time' method. + + + + + Cached name for the 'get_time_dict_from_unix_time' method. + + + + + Cached name for the 'get_datetime_string_from_unix_time' method. + + + + + Cached name for the 'get_date_string_from_unix_time' method. + + + + + Cached name for the 'get_time_string_from_unix_time' method. + + + + + Cached name for the 'get_datetime_dict_from_datetime_string' method. + + + + + Cached name for the 'get_datetime_string_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_string' method. + + + + + Cached name for the 'get_offset_string_from_offset_minutes' method. + + + + + Cached name for the 'get_datetime_dict_from_system' method. + + + + + Cached name for the 'get_date_dict_from_system' method. + + + + + Cached name for the 'get_time_dict_from_system' method. + + + + + Cached name for the 'get_datetime_string_from_system' method. + + + + + Cached name for the 'get_date_string_from_system' method. + + + + + Cached name for the 'get_time_string_from_system' method. + + + + + Cached name for the 'get_time_zone_from_system' method. + + + + + Cached name for the 'get_unix_time_from_system' method. + + + + + Cached name for the 'get_ticks_msec' method. + + + + + Cached name for the 'get_ticks_usec' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The Time singleton allows converting time between various formats and also getting time information from the system. + This class conforms with as many of the ISO 8601 standards as possible. All dates follow the Proleptic Gregorian calendar. As such, the day before 1582-10-15 is 1582-10-14, not 1582-10-04. The year before 1 AD (aka 1 BC) is number 0, with the year before that (2 BC) being -1, etc. + Conversion methods assume "the same timezone", and do not handle timezone conversions or DST automatically. Leap seconds are also not handled, they must be done manually if desired. Suffixes such as "Z" are not handled, you need to strip them away manually. + When getting time information from the system, the time can either be in the local timezone or UTC depending on the utc parameter. However, the method always uses UTC as it returns the seconds passed since the Unix epoch. + Important: The _from_system methods use the system clock that the user can manually set. Never use this method for precise time calculation since its results are subject to automatic adjustments by the user or the operating system. Always use or for precise time calculation instead, since they are guaranteed to be monotonic (i.e. never decrease). + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + The returned Dictionary's values will be the same as the if the Unix timestamp is the current time, with the exception of Daylight Savings Time as it cannot be determined from the epoch. + + + + + Converts the given Unix timestamp to a dictionary of keys: year, month, day, and weekday. + + + + + Converts the given time to a dictionary of keys: hour, minute, and second. + + + + + Converts the given Unix timestamp to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts the given Unix timestamp to an ISO 8601 date string (YYYY-MM-DD). + + + + + Converts the given Unix timestamp to an ISO 8601 time string (HH:MM:SS). + + + + + Converts the given ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS) to a dictionary of keys: year, month, day, weekday, hour, minute, and second. + If is , then the weekday entry is excluded (the calculation is relatively expensive). + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given dictionary of keys to an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Converts a dictionary of time values to a Unix timestamp. + The given dictionary can be populated with the following keys: year, month, day, hour, minute, and second. Any other entries (including dst) are ignored. + If the dictionary is empty, 0 is returned. If some keys are omitted, they default to the equivalent values for the Unix epoch timestamp 0 (1970-01-01 at 00:00:00). + You can pass the output from directly into this function and get the same as what was put in. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime dictionary. + + + + + Converts the given ISO 8601 date and/or time string to a Unix timestamp. The string can contain a date only, a time only, or both. + Note: Unix timestamps are often in UTC. This method does not do any timezone conversion, so the timestamp will be in the same timezone as the given datetime string. + Note: Any decimal fraction in the time string will be ignored silently. + + + + + Converts the given timezone offset in minutes to a timezone offset string. For example, -480 returns "-08:00", 345 returns "+05:45", and 0 returns "+00:00". + + + + + Returns the current date as a dictionary of keys: year, month, day, weekday, hour, minute, second, and dst (Daylight Savings Time). + + + + + Returns the current date as a dictionary of keys: year, month, day, and weekday. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as a dictionary of keys: hour, minute, and second. + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current date and time as an ISO 8601 date and time string (YYYY-MM-DDTHH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + If is , the date and time bits are separated by an empty space character instead of the letter T. + + + + + Returns the current date as an ISO 8601 date string (YYYY-MM-DD). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time as an ISO 8601 time string (HH:MM:SS). + The returned values are in the system's local time when is , otherwise they are in UTC. + + + + + Returns the current time zone as a dictionary of keys: bias and name. + - bias is the offset from UTC in minutes, since not all time zones are multiples of an hour from UTC. + - name is the localized name of the time zone, according to the OS locale settings of the current user. + + + + + Returns the current Unix timestamp in seconds based on the system time in UTC. This method is implemented by the operating system and always returns the time in UTC. The Unix timestamp is the number of seconds passed since 1970-01-01 at 00:00:00, the Unix epoch. + Note: Unlike other methods that use integer timestamps, this method returns the timestamp as a for sub-second precision. + + + + + Returns the amount of time passed in milliseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly 500 million years). + + + + + Returns the amount of time passed in microseconds since the engine started. + Will always be positive or 0 and uses a 64-bit value (it will wrap after roughly half a million years). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_datetime_dict_from_unix_time' method. + + + + + Cached name for the 'get_date_dict_from_unix_time' method. + + + + + Cached name for the 'get_time_dict_from_unix_time' method. + + + + + Cached name for the 'get_datetime_string_from_unix_time' method. + + + + + Cached name for the 'get_date_string_from_unix_time' method. + + + + + Cached name for the 'get_time_string_from_unix_time' method. + + + + + Cached name for the 'get_datetime_dict_from_datetime_string' method. + + + + + Cached name for the 'get_datetime_string_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_dict' method. + + + + + Cached name for the 'get_unix_time_from_datetime_string' method. + + + + + Cached name for the 'get_offset_string_from_offset_minutes' method. + + + + + Cached name for the 'get_datetime_dict_from_system' method. + + + + + Cached name for the 'get_date_dict_from_system' method. + + + + + Cached name for the 'get_time_dict_from_system' method. + + + + + Cached name for the 'get_datetime_string_from_system' method. + + + + + Cached name for the 'get_date_string_from_system' method. + + + + + Cached name for the 'get_time_string_from_system' method. + + + + + Cached name for the 'get_time_zone_from_system' method. + + + + + Cached name for the 'get_unix_time_from_system' method. + + + + + Cached name for the 'get_ticks_msec' method. + + + + + Cached name for the 'get_ticks_usec' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is a countdown timer and is the simplest way to handle time-based logic in the engine. When a timer reaches the end of its , it will emit the signal. + After a timer enters the tree, it can be manually started with . A timer node is also started automatically if is . + Without requiring much code, a timer node can be added and configured in the editor. The signal it emits can also be connected through the Node dock in the editor: + + func _on_timer_timeout(): + print("Time to attack!") + + Note: To create a one-shot timer without instantiating a node, use . + Note: Timers are affected by . The higher the time scale, the sooner timers will end. How often a timer processes may depend on the framerate or . + + + + + Update the timer every physics process frame (see ). + + + + + Update the timer every process (rendered) frame (see ). + + + + + Specifies when the timer is updated during the main loop (see ). + + + + + The time required for the timer to end, in seconds. This property can also be set every time is called. + Note: Timers can only process once per physics or process frame (depending on the ). An unstable framerate may cause the timer to end inconsistently, which is especially noticeable if the wait time is lower than roughly 0.05 seconds. For very short timers, it is recommended to write your own code instead of using a node. Timers are also affected by . + + + + + If , the timer will stop after reaching the end. Otherwise, as by default, the timer will automatically restart. + + + + + If , the timer will start immediately when it enters the scene tree. + Note: After the timer enters the tree, this property is automatically set to . + Note: This property does nothing when the timer is running in the editor. + + + + + If , the timer is paused. A paused timer does not process until this property is set back to , even when is called. + + + + + The timer's remaining time in seconds. This is always 0 if the timer is stopped. + Note: This property is read-only and cannot be modified. It is based on . + + + + + Starts the timer, or resets the timer if it was started already. Fails if the timer is not inside the tree. If is greater than 0, this value is used for the . + Note: This method does not resume a paused timer. See . + + + + + Stops the timer. + + + + + Returns if the timer is stopped or has not started. + + + + + Emitted when the timer reaches the end. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'process_callback' property. + + + + + Cached name for the 'wait_time' property. + + + + + Cached name for the 'one_shot' property. + + + + + Cached name for the 'autostart' property. + + + + + Cached name for the 'paused' property. + + + + + Cached name for the 'time_left' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_wait_time' method. + + + + + Cached name for the 'get_wait_time' method. + + + + + Cached name for the 'set_one_shot' method. + + + + + Cached name for the 'is_one_shot' method. + + + + + Cached name for the 'set_autostart' method. + + + + + Cached name for the 'has_autostart' method. + + + + + Cached name for the 'start' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_paused' method. + + + + + Cached name for the 'is_paused' method. + + + + + Cached name for the 'is_stopped' method. + + + + + Cached name for the 'get_time_left' method. + + + + + Cached name for the 'set_timer_process_callback' method. + + + + + Cached name for the 'get_timer_process_callback' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'timeout' signal. + + + + + Class representing a torus . + + + + + The inner radius of the torus. + + + + + The outer radius of the torus. + + + + + The number of slices the torus is constructed of. + + + + + The number of edges each ring of the torus is constructed of. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'inner_radius' property. + + + + + Cached name for the 'outer_radius' property. + + + + + Cached name for the 'rings' property. + + + + + Cached name for the 'ring_segments' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_inner_radius' method. + + + + + Cached name for the 'get_inner_radius' method. + + + + + Cached name for the 'set_outer_radius' method. + + + + + Cached name for the 'get_outer_radius' method. + + + + + Cached name for the 'set_rings' method. + + + + + Cached name for the 'get_rings' method. + + + + + Cached name for the 'set_ring_segments' method. + + + + + Cached name for the 'get_ring_segments' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , TouchScreenButton supports multitouch out of the box. Several TouchScreenButtons can be pressed at the same time with touch input. + This node inherits from . Unlike with nodes, you cannot set anchors on it. If you want to create menus or user interfaces, you may want to use nodes instead. To make button nodes react to touch events, you can enable ProjectSettings.input_devices/pointing/emulate_mouse_from_touch 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. + + + + + Always visible. + + + + + Visible on touch screens only. + + + + + The button's texture for the normal state. + + + + + The button's texture for the pressed state. + + + + + The button's bitmask. + + + + + The button's shape. + + + + + If , the button's shape is centered in the provided texture. If no texture is used, this property has no effect. + + + + + If , the button's shape is visible in the editor. + + + + + If , the and signals are emitted whenever a pressed finger goes in and out of the button, even if the pressure started outside the active area of the button. + Note: This is a "pass-by" (not "bypass") press mode. + + + + + The button's action. Actions can be handled with . + + + + + The button's visibility mode. See for possible values. + + + + + Returns if this button is currently pressed. + + + + + Emitted when the button is pressed (down). + + + + + Emitted when the button is released (up). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_normal' property. + + + + + Cached name for the 'texture_pressed' property. + + + + + Cached name for the 'bitmask' property. + + + + + Cached name for the 'shape' property. + + + + + Cached name for the 'shape_centered' property. + + + + + Cached name for the 'shape_visible' property. + + + + + Cached name for the 'passby_press' property. + + + + + Cached name for the 'action' property. + + + + + Cached name for the 'visibility_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_normal' method. + + + + + Cached name for the 'get_texture_normal' method. + + + + + Cached name for the 'set_texture_pressed' method. + + + + + Cached name for the 'get_texture_pressed' method. + + + + + Cached name for the 'set_bitmask' method. + + + + + Cached name for the 'get_bitmask' method. + + + + + Cached name for the 'set_shape' method. + + + + + Cached name for the 'get_shape' method. + + + + + Cached name for the 'set_shape_centered' method. + + + + + Cached name for the 'is_shape_centered' method. + + + + + Cached name for the 'set_shape_visible' method. + + + + + Cached name for the 'is_shape_visible' method. + + + + + Cached name for the 'set_action' method. + + + + + Cached name for the 'get_action' method. + + + + + Cached name for the 'set_visibility_mode' method. + + + + + Cached name for the 'get_visibility_mode' method. + + + + + Cached name for the 'set_passby_press' method. + + + + + Cached name for the 'is_passby_press_enabled' method. + + + + + Cached name for the 'is_pressed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pressed' signal. + + + + + Cached name for the 'released' signal. + + + + + 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. + + + + + The locale of the translation. + + + + + Virtual method to override . + + + + + Virtual method to override . + + + + + Adds a message if nonexistent, followed by its translation. + An additional context could be used to specify the translation context or differentiate polysemic words. + + + + + Adds a message involving plural translation if nonexistent, followed by its translation. + An additional context could be used to specify the translation context or differentiate polysemic words. + + + + + Adds a message involving plural translation if nonexistent, followed by its translation. + An additional context could be used to specify the translation context or differentiate polysemic words. + + + + + Returns a message's translation. + + + + + Returns a message's translation involving plurals. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + + + + + Erases a message. + + + + + Returns all the messages (keys). + + + + + Returns all the messages (translated text). + + + + + Returns the number of existing messages. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'messages' property. + + + + + Cached name for the 'locale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_message' method. + + + + + Cached name for the '_get_plural_message' method. + + + + + Cached name for the 'set_locale' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'add_message' method. + + + + + Cached name for the 'add_plural_message' method. + + + + + Cached name for the 'get_message' method. + + + + + Cached name for the 'get_plural_message' method. + + + + + Cached name for the 'erase_message' method. + + + + + Cached name for the 'get_message_list' method. + + + + + Cached name for the 'get_translated_message_list' method. + + + + + Cached name for the 'get_message_count' method. + + + + + Cached name for the '_set_messages' method. + + + + + Cached name for the '_get_messages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is a self-contained collection of resources. Translations can be added to or removed from it. + If you're working with the main translation domain, it is more convenient to use the wrap methods on . + + + + + If , enables pseudolocalization for the project. This can be used to spot untranslatable strings or layout issues that may occur once the project is localized to languages that have longer strings than the source language. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Replace all characters with their accented variants during pseudolocalization. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Double vowels in strings during pseudolocalization to simulate the lengthening of text due to localization. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + If , emulate bidirectional (right-to-left) text when pseudolocalization is enabled. This can be used to spot issues with RTL layout and UI mirroring that will crop up if the project is localized to RTL languages such as Arabic or Hebrew. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Replace all characters in the string with *. Useful for finding non-localizable strings. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Skip placeholders for string formatting like %s or %f during pseudolocalization. Useful to identify strings which need additional control characters to display correctly. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + The expansion ratio to use during pseudolocalization. A value of 0.3 is sufficient for most practical purposes, and will increase the length of each string by 30%. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Prefix that will be prepended to the pseudolocalized string. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Suffix that will be appended to the pseudolocalized string. + Note: Updating this property does not automatically update texts in the scene tree. Please propagate the notification manually after you have finished modifying pseudolocalization related options. + + + + + Returns the instance that best matches . Returns if there are no matches. + + + + + Adds a translation. + + + + + Removes the given translation. + + + + + Removes all translations. + + + + + Returns the current locale's translation for the given message and context. + + + + + Returns the current locale's translation for the given message, plural message and context. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + + + + + Returns the pseudolocalized string based on the passed in. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pseudolocalization_enabled' property. + + + + + Cached name for the 'pseudolocalization_accents_enabled' property. + + + + + Cached name for the 'pseudolocalization_double_vowels_enabled' property. + + + + + Cached name for the 'pseudolocalization_fake_bidi_enabled' property. + + + + + Cached name for the 'pseudolocalization_override_enabled' property. + + + + + Cached name for the 'pseudolocalization_skip_placeholders_enabled' property. + + + + + Cached name for the 'pseudolocalization_expansion_ratio' property. + + + + + Cached name for the 'pseudolocalization_prefix' property. + + + + + Cached name for the 'pseudolocalization_suffix' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_translation_object' method. + + + + + Cached name for the 'add_translation' method. + + + + + Cached name for the 'remove_translation' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'translate_plural' method. + + + + + Cached name for the 'is_pseudolocalization_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_accents_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_accents_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_double_vowels_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_double_vowels_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_fake_bidi_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_fake_bidi_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_override_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_override_enabled' method. + + + + + Cached name for the 'is_pseudolocalization_skip_placeholders_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_skip_placeholders_enabled' method. + + + + + Cached name for the 'get_pseudolocalization_expansion_ratio' method. + + + + + Cached name for the 'set_pseudolocalization_expansion_ratio' method. + + + + + Cached name for the 'get_pseudolocalization_prefix' method. + + + + + Cached name for the 'set_pseudolocalization_prefix' method. + + + + + Cached name for the 'get_pseudolocalization_suffix' method. + + + + + Cached name for the 'set_pseudolocalization_suffix' method. + + + + + Cached name for the 'pseudolocalize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The translation server is the API backend that manages all language translations. + Translations are stored in s, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty . The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with godot. are reserved for engine internals. + + + + + If , enables the use of pseudolocalization on the main translation domain. See ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization for details. + + + + + Sets the locale of the project. The string will be standardized to match known locales (e.g. en-US would be matched to en_US). + If translations have been loaded beforehand for the new locale, they will be applied. + + + + + Returns the current locale of the project. + See also and to query the locale of the user system. + + + + + Returns the current locale of the editor. + Note: When called from an exported project returns the same value as . + + + + + Compares two locales and returns a similarity score between 0 (no match) and 10 (full match). + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Returns array of known language codes. + + + + + Returns a readable language name for the code. + + + + + Returns an array of known script codes. + + + + + Returns a readable script name for the code. + + + + + Returns an array of known country codes. + + + + + Returns a readable country name for the code. + + + + + Returns a locale's language and its variant (e.g. "en_US" would return "English (United States)"). + + + + + Returns the current locale's translation for the given message and context. + Note: This method always uses the main translation domain. + + + + + Returns the current locale's translation for the given message, plural message and context. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + Note: This method always uses the main translation domain. + + + + + Adds a translation to the main translation domain. + + + + + Removes the given translation from the main translation domain. + + + + + Returns the instance that best matches in the main translation domain. Returns if there are no matches. + + + + + Returns if a translation domain with the specified name exists. + + + + + Returns the translation domain with the specified name. An empty translation domain will be created and added if it does not exist. + + + + + Removes the translation domain with the specified name. + Note: Trying to remove the main translation domain is an error. + + + + + Removes all translations from the main translation domain. + + + + + Returns an array of all loaded locales of the project. + + + + + Reparses the pseudolocalization options and reloads the translation for the main translation domain. + + + + + Returns the pseudolocalized string based on the passed in. + Note: This method always uses the main translation domain. + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pseudolocalization_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_locale' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_tool_locale' method. + + + + + Cached name for the 'compare_locales' method. + + + + + Cached name for the 'standardize_locale' method. + + + + + Cached name for the 'get_all_languages' method. + + + + + Cached name for the 'get_language_name' method. + + + + + Cached name for the 'get_all_scripts' method. + + + + + Cached name for the 'get_script_name' method. + + + + + Cached name for the 'get_all_countries' method. + + + + + Cached name for the 'get_country_name' method. + + + + + Cached name for the 'get_locale_name' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'translate_plural' method. + + + + + Cached name for the 'add_translation' method. + + + + + Cached name for the 'remove_translation' method. + + + + + Cached name for the 'get_translation_object' method. + + + + + Cached name for the 'has_domain' method. + + + + + Cached name for the 'get_or_add_domain' method. + + + + + Cached name for the 'remove_domain' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_loaded_locales' method. + + + + + Cached name for the 'is_pseudolocalization_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_enabled' method. + + + + + Cached name for the 'reload_pseudolocalization' method. + + + + + Cached name for the 'pseudolocalize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The translation server is the API backend that manages all language translations. + Translations are stored in s, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty . The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with godot. are reserved for engine internals. + + + + + If , enables the use of pseudolocalization on the main translation domain. See ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization for details. + + + + + Sets the locale of the project. The string will be standardized to match known locales (e.g. en-US would be matched to en_US). + If translations have been loaded beforehand for the new locale, they will be applied. + + + + + Returns the current locale of the project. + See also and to query the locale of the user system. + + + + + Returns the current locale of the editor. + Note: When called from an exported project returns the same value as . + + + + + Compares two locales and returns a similarity score between 0 (no match) and 10 (full match). + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Returns array of known language codes. + + + + + Returns a readable language name for the code. + + + + + Returns an array of known script codes. + + + + + Returns a readable script name for the code. + + + + + Returns an array of known country codes. + + + + + Returns a readable country name for the code. + + + + + Returns a locale's language and its variant (e.g. "en_US" would return "English (United States)"). + + + + + Returns the current locale's translation for the given message and context. + Note: This method always uses the main translation domain. + + + + + Returns the current locale's translation for the given message, plural message and context. + The number is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language. + Note: This method always uses the main translation domain. + + + + + Adds a translation to the main translation domain. + + + + + Removes the given translation from the main translation domain. + + + + + Returns the instance that best matches in the main translation domain. Returns if there are no matches. + + + + + Returns if a translation domain with the specified name exists. + + + + + Returns the translation domain with the specified name. An empty translation domain will be created and added if it does not exist. + + + + + Removes the translation domain with the specified name. + Note: Trying to remove the main translation domain is an error. + + + + + Removes all translations from the main translation domain. + + + + + Returns an array of all loaded locales of the project. + + + + + Reparses the pseudolocalization options and reloads the translation for the main translation domain. + + + + + Returns the pseudolocalized string based on the passed in. + Note: This method always uses the main translation domain. + + + + + Returns a string standardized to match known locales (e.g. en-US would be matched to en_US). If is , the locale may have a default script or country added. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'pseudolocalization_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_locale' method. + + + + + Cached name for the 'get_locale' method. + + + + + Cached name for the 'get_tool_locale' method. + + + + + Cached name for the 'compare_locales' method. + + + + + Cached name for the 'standardize_locale' method. + + + + + Cached name for the 'get_all_languages' method. + + + + + Cached name for the 'get_language_name' method. + + + + + Cached name for the 'get_all_scripts' method. + + + + + Cached name for the 'get_script_name' method. + + + + + Cached name for the 'get_all_countries' method. + + + + + Cached name for the 'get_country_name' method. + + + + + Cached name for the 'get_locale_name' method. + + + + + Cached name for the 'translate' method. + + + + + Cached name for the 'translate_plural' method. + + + + + Cached name for the 'add_translation' method. + + + + + Cached name for the 'remove_translation' method. + + + + + Cached name for the 'get_translation_object' method. + + + + + Cached name for the 'has_domain' method. + + + + + Cached name for the 'get_or_add_domain' method. + + + + + Cached name for the 'remove_domain' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'get_loaded_locales' method. + + + + + Cached name for the 'is_pseudolocalization_enabled' method. + + + + + Cached name for the 'set_pseudolocalization_enabled' method. + + + + + Cached name for the 'reload_pseudolocalization' method. + + + + + Cached name for the 'pseudolocalize' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A single item of a control. It can contain other s as children, which allows it to create a hierarchy. It can also contain text and buttons. is not a , it is internal to the . + To create a , use or . To remove a , use . + Note: The ID values used for buttons are 32-bit, unlike which is always 64-bit. They go from -2147483648 to 2147483647. + + + + + Cell shows a string label, optionally with an icon. When editable, the text can be edited using a , or a popup if is used. + + + + + Cell shows a checkbox, optionally with text and an icon. The checkbox can be pressed, released, or indeterminate (via ). The checkbox can't be clicked unless the cell is editable. + + + + + Cell shows a numeric range. When editable, it can be edited using a range slider. Use to set the value and to configure the range. + This cell can also be used in a text dropdown mode when you assign a text with . Separate options with a comma, e.g. "Option1,Option2,Option3". + + + + + Cell shows an icon. It can't be edited nor display text. The icon is always centered within the cell. + + + + + Cell shows as a clickable button. It will display an arrow similar to , but doesn't feature a dropdown (for that you can use ). Clicking the button emits the signal. The button is flat by default, you can use to display it with a . + This mode also supports custom drawing using . + + + + + If , the TreeItem is collapsed. + + + + + If , the is visible (default). + Note that if a is set to not be visible, none of its children will be visible either. + + + + + If , folding is disabled for this TreeItem. + + + + + The custom minimum height. + + + + + Sets the given column's cell mode to . This determines how the cell is displayed and edited. See constants for details. + + + + + Returns the column's cell mode. + + + + + Sets the given column's auto translate mode to . + All columns use by default, which uses the same auto translate mode as the itself. + + + + + Returns the column's auto translate mode. + + + + + If is , the given is multiline editable. + Note: This option only affects the type of control ( or ) that appears when editing the column. You can set multiline values with even if the column is not multiline editable. + + + + + Returns if the given is multiline editable. + + + + + If is , the given is checked. Clears column's indeterminate status. + + + + + If is , the given is marked indeterminate. + Note: If set from , then column is cleared of checked status. + + + + + Returns if the given is checked. + + + + + Returns if the given is indeterminate. + + + + + Propagates this item's checked status to its children and parents for the given . It is possible to process the items affected by this method call by connecting to . The order that the items affected will be processed is as follows: the item invoking this method, children of that item, and finally parents of that item. If is , then will not be emitted. + + + + + Sets the given column's text value. + + + + + Returns the given column's text. + + + + + Sets item's text base writing direction. + + + + + Returns item's text base writing direction. + + + + + Sets the autowrap mode in the given . If set to something other than , the text gets wrapped inside the cell's bounding rectangle. + + + + + Returns the text autowrap mode in the given . By default it is . + + + + + Sets the clipping behavior when the text exceeds the item's bounding rectangle in the given . + + + + + Returns the clipping behavior when the text exceeds the item's bounding rectangle in the given . By default it is . + + + + + Set BiDi algorithm override for the structured text. Has effect for cells that display text. + + + + + Returns the BiDi algorithm override set for this cell. + + + + + Set additional options for BiDi override. Has effect for cells that display text. + + + + + Returns the additional BiDi options set for this cell. + + + + + Sets language code of item's text used for line-breaking and text shaping algorithms, if left empty current locale is used instead. + + + + + Returns item's text language code. + + + + + Sets a string to be shown after a column's value (for example, a unit abbreviation). + + + + + Gets the suffix string shown after the column value. + + + + + Sets the given cell's icon . If the cell is in mode, the icon is displayed in the center of the cell. Otherwise, the icon is displayed before the cell's text. does not display an icon. + + + + + Returns the given column's icon . Error if no icon is set. + + + + + Sets the given cell's icon overlay . The cell has to be in mode, and icon has to be set. Overlay is drawn on top of icon, in the bottom left corner. + + + + + Returns the given column's icon overlay . + + + + + Sets the given column's icon's texture region. + + + + + Returns the icon region as . + + + + + Sets the maximum allowed width of the icon in the given . This limit is applied on top of the default size of the icon and on top of Tree.icon_max_width. The height is adjusted according to the icon's ratio. + + + + + Returns the maximum allowed width of the icon in the given . + + + + + Modulates the given column's icon with . + + + + + Returns the modulating the column's icon. + + + + + Sets the value of a column. + + + + + Returns the value of a column. + + + + + Sets the range of accepted values for a column. The column must be in the mode. + If is , the edit mode slider will use an exponential scale as with . + + + + + Returns a dictionary containing the range parameters for a given column. The keys are "min", "max", "step", and "expr". + + + + + Sets the metadata value for the given column, which can be retrieved later using . This can be used, for example, to store a reference to the original data. + + + + + Returns the metadata value that was set for the given column using . + + + + + Sets the given column's custom draw callback to the method on . + The method named should accept two arguments: the that is drawn and its position and size as a . + + + + + Sets the given column's custom draw callback. Use an empty (Callable()) to clear the custom callback. The cell has to be in to use this feature. + The should accept two arguments: the that is drawn and its position and size as a . + + + + + Returns the custom callback of column . + + + + + Collapses or uncollapses this and all the descendants of this item. + + + + + Returns if this , or any of its descendants, is collapsed. + If is it ignores non-visible s. + + + + + Returns if is and all its ancestors are also visible. + + + + + Uncollapses all s necessary to reveal this , i.e. all ancestor s. + + + + + If is , the given is selectable. + + + + + Returns if the given is selectable. + + + + + Returns if the given is selected. + + + + + Selects the given . + + + + + Deselects the given column. + + + + + If is , the given is editable. + + + + + Returns if the given is editable. + + + + + Sets the given column's custom color. + + + + + Returns the custom color of column . + + + + + Resets the color for the given column to default. + + + + + Sets custom font used to draw text in the given . + + + + + Returns custom font used to draw text in the column . + + + + + Sets custom font size used to draw text in the given . + + + + + Returns custom font size used to draw text in the column . + + + + + Sets the given column's custom background color and whether to just use it as an outline. + + + + + Resets the background color for the given column to default. + + + + + Returns the custom background color of column . + + + + + Makes a cell with display as a non-flat button with a . + + + + + Returns if the cell was made into a button with . + + + + + Removes all buttons from all columns of this item. + + + + + Adds a button with to the end of the cell at column . The is used to identify the button in the according signal and can be different from the buttons index. If not specified, the next available index is used, which may be retrieved by calling immediately before this method. Optionally, the button can be and have a . + + + + + Returns the number of buttons in column . + + + + + Returns the tooltip text for the button at index in column . + + + + + Returns the ID for the button at index in column . + + + + + Returns the button index if there is a button with ID in column , otherwise returns -1. + + + + + Returns the color of the button with ID in column . If the specified button does not exist, returns Color.BLACK. + + + + + Returns the of the button at index in column . + + + + + Sets the tooltip text for the button at index in the given . + + + + + Sets the given column's button at index to . + + + + + Removes the button at index in column . + + + + + If , disables the button at index in the given . + + + + + Sets the given column's button color at index to . + + + + + Returns if the button at index for the given is disabled. + + + + + Sets the given column's tooltip text. + + + + + Returns the given column's tooltip text. + + + + + Sets the given column's text alignment. See for possible values. + + + + + Returns the given column's text alignment. + + + + + If is , the given is expanded to the right. + + + + + Returns if expand_right is set. + + + + + Creates an item and adds it as a child. + The new item will be inserted as position (the default value -1 means the last position), or it will be the last child if is higher than the child count. + + + + + Adds a previously unparented as a direct child of this one. The item must not be a part of any or parented to any . See also . + + + + + Removes the given child and all its children from the . Note that it doesn't free the item from memory, so it can be reused later (see ). To completely remove a use . + Note: If you want to move a child from one to another, then instead of removing and adding it manually you can use or . + + + + + Returns the that owns this TreeItem. + + + + + Returns the next sibling TreeItem in the tree or a object if there is none. + + + + + Returns the previous sibling TreeItem in the tree or a object if there is none. + + + + + Returns the parent TreeItem or a object if there is none. + + + + + Returns the TreeItem's first child. + + + + + Returns the next TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the first element in the tree when called on the last element, otherwise it returns . + + + + + Returns the previous TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the last element in the tree when called on the first visible element, otherwise it returns . + + + + + Returns the next visible TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the first visible element in the tree when called on the last visible element, otherwise it returns . + + + + + Returns the previous visible sibling TreeItem in the tree (in the context of a depth-first search) or a object if there is none. + If is enabled, the method will wrap around to the last visible element in the tree when called on the first visible element, otherwise it returns . + + + + + Returns a child item by its (see ). This method is often used for iterating all children of an item. + Negative indices access the children from the last one. + + + + + Returns the number of child items. + + + + + Returns an array of references to the item's children. + + + + + Returns the node's order in the tree. For example, if called on the first child item the position is 0. + + + + + Moves this TreeItem right before the given . + Note: You can't move to the root or move the root. + + + + + Moves this TreeItem right after the given . + Note: You can't move to the root or move the root. + + + + + Calls the on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. + + + + + Calls the on the actual TreeItem and its children recursively. Pass parameters as a comma separated list. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'collapsed' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'disable_folding' property. + + + + + Cached name for the 'custom_minimum_height' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_cell_mode' method. + + + + + Cached name for the 'get_cell_mode' method. + + + + + Cached name for the 'set_auto_translate_mode' method. + + + + + Cached name for the 'get_auto_translate_mode' method. + + + + + Cached name for the 'set_edit_multiline' method. + + + + + Cached name for the 'is_edit_multiline' method. + + + + + Cached name for the 'set_checked' method. + + + + + Cached name for the 'set_indeterminate' method. + + + + + Cached name for the 'is_checked' method. + + + + + Cached name for the 'is_indeterminate' method. + + + + + Cached name for the 'propagate_check' method. + + + + + Cached name for the 'set_text' method. + + + + + Cached name for the 'get_text' method. + + + + + Cached name for the 'set_text_direction' method. + + + + + Cached name for the 'get_text_direction' method. + + + + + Cached name for the 'set_autowrap_mode' method. + + + + + Cached name for the 'get_autowrap_mode' method. + + + + + Cached name for the 'set_text_overrun_behavior' method. + + + + + Cached name for the 'get_text_overrun_behavior' method. + + + + + Cached name for the 'set_structured_text_bidi_override' method. + + + + + Cached name for the 'get_structured_text_bidi_override' method. + + + + + Cached name for the 'set_structured_text_bidi_override_options' method. + + + + + Cached name for the 'get_structured_text_bidi_override_options' method. + + + + + Cached name for the 'set_language' method. + + + + + Cached name for the 'get_language' method. + + + + + Cached name for the 'set_suffix' method. + + + + + Cached name for the 'get_suffix' method. + + + + + Cached name for the 'set_icon' method. + + + + + Cached name for the 'get_icon' method. + + + + + Cached name for the 'set_icon_overlay' method. + + + + + Cached name for the 'get_icon_overlay' method. + + + + + Cached name for the 'set_icon_region' method. + + + + + Cached name for the 'get_icon_region' method. + + + + + Cached name for the 'set_icon_max_width' method. + + + + + Cached name for the 'get_icon_max_width' method. + + + + + Cached name for the 'set_icon_modulate' method. + + + + + Cached name for the 'get_icon_modulate' method. + + + + + Cached name for the 'set_range' method. + + + + + Cached name for the 'get_range' method. + + + + + Cached name for the 'set_range_config' method. + + + + + Cached name for the 'get_range_config' method. + + + + + Cached name for the 'set_metadata' method. + + + + + Cached name for the 'get_metadata' method. + + + + + Cached name for the 'set_custom_draw' method. + + + + + Cached name for the 'set_custom_draw_callback' method. + + + + + Cached name for the 'get_custom_draw_callback' method. + + + + + Cached name for the 'set_collapsed' method. + + + + + Cached name for the 'is_collapsed' method. + + + + + Cached name for the 'set_collapsed_recursive' method. + + + + + Cached name for the 'is_any_collapsed' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'is_visible_in_tree' method. + + + + + Cached name for the 'uncollapse_tree' method. + + + + + Cached name for the 'set_custom_minimum_height' method. + + + + + Cached name for the 'get_custom_minimum_height' method. + + + + + Cached name for the 'set_selectable' method. + + + + + Cached name for the 'is_selectable' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached name for the 'set_custom_color' method. + + + + + Cached name for the 'get_custom_color' method. + + + + + Cached name for the 'clear_custom_color' method. + + + + + Cached name for the 'set_custom_font' method. + + + + + Cached name for the 'get_custom_font' method. + + + + + Cached name for the 'set_custom_font_size' method. + + + + + Cached name for the 'get_custom_font_size' method. + + + + + Cached name for the 'set_custom_bg_color' method. + + + + + Cached name for the 'clear_custom_bg_color' method. + + + + + Cached name for the 'get_custom_bg_color' method. + + + + + Cached name for the 'set_custom_as_button' method. + + + + + Cached name for the 'is_custom_set_as_button' method. + + + + + Cached name for the 'clear_buttons' method. + + + + + Cached name for the 'add_button' method. + + + + + Cached name for the 'get_button_count' method. + + + + + Cached name for the 'get_button_tooltip_text' method. + + + + + Cached name for the 'get_button_id' method. + + + + + Cached name for the 'get_button_by_id' method. + + + + + Cached name for the 'get_button_color' method. + + + + + Cached name for the 'get_button' method. + + + + + Cached name for the 'set_button_tooltip_text' method. + + + + + Cached name for the 'set_button' method. + + + + + Cached name for the 'erase_button' method. + + + + + Cached name for the 'set_button_disabled' method. + + + + + Cached name for the 'set_button_color' method. + + + + + Cached name for the 'is_button_disabled' method. + + + + + Cached name for the 'set_tooltip_text' method. + + + + + Cached name for the 'get_tooltip_text' method. + + + + + Cached name for the 'set_text_alignment' method. + + + + + Cached name for the 'get_text_alignment' method. + + + + + Cached name for the 'set_expand_right' method. + + + + + Cached name for the 'get_expand_right' method. + + + + + Cached name for the 'set_disable_folding' method. + + + + + Cached name for the 'is_folding_disabled' method. + + + + + Cached name for the 'create_child' method. + + + + + Cached name for the 'add_child' method. + + + + + Cached name for the 'remove_child' method. + + + + + Cached name for the 'get_tree' method. + + + + + Cached name for the 'get_next' method. + + + + + Cached name for the 'get_prev' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'get_first_child' method. + + + + + Cached name for the 'get_next_in_tree' method. + + + + + Cached name for the 'get_prev_in_tree' method. + + + + + Cached name for the 'get_next_visible' method. + + + + + Cached name for the 'get_prev_visible' method. + + + + + Cached name for the 'get_child' method. + + + + + Cached name for the 'get_child_count' method. + + + + + Cached name for the 'get_children' method. + + + + + Cached name for the 'get_index' method. + + + + + Cached name for the 'move_before' method. + + + + + Cached name for the 'move_after' method. + + + + + Cached name for the 'call_recursive' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Mesh type used internally for collision calculations. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + represents a straight tube-shaped mesh with variable width. The tube is composed of a number of cylindrical sections, each with the same and number of . A 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. + + + + + The baseline radius of the tube. The radius of a particular section ring is obtained by multiplying this radius by the value of the at the given distance. + + + + + The number of sides on the tube. For example, a value of 5 means the tube will be pentagonal. Higher values result in a more detailed tube at the cost of performance. + + + + + The total number of sections on the tube. + + + + + The length of a section of the tube. + + + + + The number of rings in a section. The is sampled on each ring to determine its radius. Higher values result in a more detailed tube at the cost of performance. + + + + + If , generates a cap at the top of the tube. This can be set to to speed up generation and rendering when the cap is never seen by the camera. + + + + + If , generates a cap at the bottom of the tube. This can be set to to speed up generation and rendering when the cap is never seen by the camera. + + + + + Determines the radius of the tube along its length. The radius of a particular section ring is obtained by multiplying the baseline by the value of this curve at the given distance. For values smaller than 0, the faces will be inverted. Should be a unit . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'radius' property. + + + + + Cached name for the 'radial_steps' property. + + + + + Cached name for the 'sections' property. + + + + + Cached name for the 'section_length' property. + + + + + Cached name for the 'section_rings' property. + + + + + Cached name for the 'cap_top' property. + + + + + Cached name for the 'cap_bottom' property. + + + + + Cached name for the 'curve' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_radial_steps' method. + + + + + Cached name for the 'get_radial_steps' method. + + + + + Cached name for the 'set_sections' method. + + + + + Cached name for the 'get_sections' method. + + + + + Cached name for the 'set_section_length' method. + + + + + Cached name for the 'get_section_length' method. + + + + + Cached name for the 'set_section_rings' method. + + + + + Cached name for the 'get_section_rings' method. + + + + + Cached name for the 'set_cap_top' method. + + + + + Cached name for the 'is_cap_top' method. + + + + + Cached name for the 'set_cap_bottom' method. + + + + + Cached name for the 'is_cap_bottom' method. + + + + + Cached name for the 'set_curve' method. + + + + + Cached name for the 'get_curve' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Tweens are mostly useful for animations requiring a numerical property to be interpolated over a range of values. The name tween comes from in-betweening, an animation technique where you specify keyframes and the computer interpolates the frames that appear between them. Animating something with a is called tweening. + is more suited than 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 ; it would be difficult to do the same thing with an node. Tweens are also more light-weight than , 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 with a delay. + A can be created by using either or . s created manually (i.e. by using Tween.new()) are invalid and can't be used for tweening values. + A tween animation is created by adding s to the object, using , , or : + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f); + tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f); + tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree)); + + This sequence will make the $Sprite node turn red, then shrink, before finally calling to free the sprite. s are executed one after another by default. This behavior can be changed using and . + When a is created with one of the tween_* methods, a chained method call can be used to tweak the properties of this . For example, if you want to set a different transition type in the above example, you can use : + + Tween tween = GetTree().CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f).SetTrans(Tween.TransitionType.Sine); + tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f).SetTrans(Tween.TransitionType.Bounce); + tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree)); + + Most of the methods can be chained this way too. In the following example the is bound to the running script's node and a default transition is set for its s: + + var tween = GetTree().CreateTween().BindNode(this).SetTrans(Tween.TransitionType.Elastic); + tween.TweenProperty(GetNode("Sprite"), "modulate", Colors.Red, 1.0f); + tween.TweenProperty(GetNode("Sprite"), "scale", Vector2.Zero, 1.0f); + tween.TweenCallback(Callable.From(GetNode("Sprite").QueueFree)); + + Another interesting use for s is animating arbitrary sets of objects: + + Tween tween = CreateTween(); + foreach (Node sprite in GetChildren()) + tween.TweenProperty(sprite, "position", Vector2.Zero, 1.0f); + + In the example above, all children of a node are moved one after another to position (0, 0). + You should avoid using more than one 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 to a variable: + + private Tween _tween; + + public void Animate() + { + if (_tween != null) + _tween.Kill(); // Abort the previous animation + _tween = CreateTween(); + } + + Some s use transitions and eases. The first accepts a constant, and refers to the way the timing of the animation is handled (see easings.net for some examples). The second accepts an constant, and controls where the trans_type is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different constants with , and use the one that looks best. + Tween easing and transition types cheatsheet + Note: Tweens are not designed to be reused and trying to do so results in an undefined behavior. Create a new Tween for each animation and every time you replay an animation from start. Keep in mind that Tweens start immediately, so only create a Tween when you want to start animating. + Note: The tween is processed after all of the nodes in the current frame, i.e. node's method would be called before the tween (or depending on the value passed to ). + + + + + The updates after each physics frame (see ). + + + + + The updates after each process frame (see ). + + + + + If the has a bound node, it will process when that node can process (see ). Otherwise it's the same as . + + + + + If is paused, the will also pause. + + + + + The will process regardless of whether is paused. + + + + + The animation is interpolated linearly. + + + + + The animation is interpolated using a sine function. + + + + + The animation is interpolated with a quintic (to the power of 5) function. + + + + + The animation is interpolated with a quartic (to the power of 4) function. + + + + + The animation is interpolated with a quadratic (to the power of 2) function. + + + + + The animation is interpolated with an exponential (to the power of x) function. + + + + + The animation is interpolated with elasticity, wiggling around the edges. + + + + + The animation is interpolated with a cubic (to the power of 3) function. + + + + + The animation is interpolated with a function using square roots. + + + + + The animation is interpolated by bouncing at the end. + + + + + The animation is interpolated backing out at ends. + + + + + The animation is interpolated like a spring towards the end. + + + + + The interpolation starts slowly and speeds up towards the end. + + + + + The interpolation starts quickly and slows down towards the end. + + + + + A combination of and . The interpolation is slowest at both ends. + + + + + A combination of and . The interpolation is fastest at both ends. + + + + + Creates and appends a . This method tweens a of an between an initial value and in a span of time equal to , in seconds. The initial value by default is the property's value at the time the tweening of the starts. + + Tween tween = CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "position", new Vector2(100.0f, 200.0f), 1.0f); + tween.TweenProperty(GetNode("Sprite"), "position", new Vector2(200.0f, 300.0f), 1.0f); + + will move the sprite to position (100, 200) and then to (200, 300). If you use or , the starting position will be overwritten by the given value instead. See other methods in to see how the tweening can be tweaked further. + Note: You can find the correct property name by hovering over the property in the Inspector. You can also provide the components of a property directly by using "property:component" (eg. position:x), where it would only apply to that particular component. + Example: Moving an object twice from the same position, with different transition types: + + Tween tween = CreateTween(); + tween.TweenProperty(GetNode("Sprite"), "position", Vector2.Right * 300.0f, 1.0f).AsRelative().SetTrans(Tween.TransitionType.Sine); + tween.TweenProperty(GetNode("Sprite"), "position", Vector2.Right * 300.0f, 1.0f).AsRelative().FromCurrent().SetTrans(Tween.TransitionType.Expo); + + + + + + Creates and appends an . This method can be used to create delays in the tween animation, as an alternative to using the delay in other s, or when there's no animation (in which case the acts as a timer). is the length of the interval, in seconds. + Example: Creating an interval in code execution: + + // ... some code + await ToSignal(CreateTween().TweenInterval(2.0f), Tween.SignalName.Finished); + // ... more code + + Example: Creating an object that moves back and forth and jumps every few seconds: + + Tween tween = CreateTween().SetLoops(); + tween.TweenProperty(GetNode("Sprite"), "position:x", 200.0f, 1.0f).AsRelative(); + tween.TweenCallback(Callable.From(Jump)); + tween.TweenInterval(2.0f); + tween.TweenProperty(GetNode("Sprite"), "position:x", -200.0f, 1.0f).AsRelative(); + tween.TweenCallback(Callable.From(Jump)); + tween.TweenInterval(2.0f); + + + + + + Creates and appends a . This method can be used to call an arbitrary method in any object. Use Callable.bind to bind additional arguments for the call. + Example: Object that keeps shooting every 1 second: + + Tween tween = GetTree().CreateTween().SetLoops(); + tween.TweenCallback(Callable.From(Shoot)).SetDelay(1.0f); + + Example: Turning a sprite red and then blue, with 2 second delay: + + Tween tween = GetTree().CreateTween(); + Sprite2D sprite = GetNode<Sprite2D>("Sprite"); + tween.TweenCallback(Callable.From(() => sprite.Modulate = Colors.Red)).SetDelay(2.0f); + tween.TweenCallback(Callable.From(() => sprite.Modulate = Colors.Blue)).SetDelay(2.0f); + + + + + + Creates and appends a . This method is similar to a combination of and . It calls a method over time with a tweened value provided as an argument. The value is tweened between and over the time specified by , in seconds. Use Callable.bind to bind additional arguments for the call. You can use and to tweak the easing and transition of the value or to delay the tweening. + Example: Making a 3D object look from one point to another point: + + Tween tween = CreateTween(); + tween.TweenMethod(Callable.From((Vector3 target) => LookAt(target, Vector3.Up)), new Vector3(-1.0f, 0.0f, -1.0f), new Vector3(1.0f, 0.0f, -1.0f), 1.0f); // Use lambdas to bind additional arguments for the call. + + Example: Setting the text of a , using an intermediate method and after a delay: + + public override void _Ready() + { + base._Ready(); + + Tween tween = CreateTween(); + tween.TweenMethod(Callable.From<int>(SetLabelText), 0.0f, 10.0f, 1.0f).SetDelay(1.0f); + } + + private void SetLabelText(int value) + { + GetNode<Label>("Label").Text = $"Counting {value}"; + } + + + + + + Processes the by the given value, in seconds. This is mostly useful for manual control when the is paused. It can also be used to end the animation immediately, by setting longer than the whole duration of the animation. + Returns if the still has s that haven't finished. + + + + + Stops the tweening and resets the to its initial state. This will not remove any appended s. + Note: This does not reset targets of s to their values when the first started. + + var tween = create_tween() + + # Will move from 0 to 500 over 1 second. + position.x = 0.0 + tween.tween_property(self, "position:x", 500, 1.0) + + # Will be at (about) 250 when the timer finishes. + await get_tree().create_timer(0.5).timeout + + # Will now move from (about) 250 to 500 over 1 second, + # thus at half the speed as before. + tween.stop() + tween.play() + + Note: If a Tween is stopped and not bound to any node, it will exist indefinitely until manually started or invalidated. If you lose a reference to such Tween, you can retrieve it using . + + + + + Pauses the tweening. The animation can be resumed by using . + Note: If a Tween is paused and not bound to any node, it will exist indefinitely until manually started or invalidated. If you lose a reference to such Tween, you can retrieve it using . + + + + + Resumes a paused or stopped . + + + + + Aborts all tweening operations and invalidates the . + + + + + Returns the total time in seconds the has been animating (i.e. the time since it started, not counting pauses etc.). The time is affected by , and will reset it to 0. + Note: As it results from accumulating frame deltas, the time returned after the has finished animating will be slightly greater than the actual duration. + + + + + Returns whether the is currently running, i.e. it wasn't paused and it's not finished. + + + + + Returns whether the is valid. A valid is a contained by the scene tree (i.e. the array from will contain this ). A might become invalid when it has finished tweening, is killed, or when created with Tween.new(). Invalid s can't have s appended. + + + + + Binds this with the given . s are processed directly by the , so they run independently of the animated nodes. When you bind a with the , the will halt the animation when the object is not inside tree and the will be automatically killed when the bound object is freed. Also will make the pausing behavior dependent on the bound node. + For a shorter way to create and bind a , you can use . + + + + + Determines whether the should run after process frames (see ) or physics frames (see ). + Default value is . + + + + + Determines the behavior of the when the is paused. Check for options. + Default value is . + + + + + If is , the s appended after this method will by default run simultaneously, as opposed to sequentially. + Note: Just like with , the tweener added right before this method will also be part of the parallel step. + + tween.tween_property(self, "position", Vector2(300, 0), 0.5) + tween.set_parallel() + tween.tween_property(self, "modulate", Color.GREEN, 0.5) # Runs together with the position tweener. + + + + + + Sets the number of times the tweening sequence will be repeated, i.e. set_loops(2) will run the animation twice. + Calling this method without arguments will make the run infinitely, until either it is killed with , the 's bound node is freed, or all the animated objects have been freed (which makes further animation impossible). + Warning: Make sure to always add some duration/delay when using infinite loops. To prevent the game freezing, 0-duration looped animations (e.g. a single with no delay) are stopped after a small number of loops, which may produce unexpected results. If a 's lifetime depends on some node, always use . + + + + + Returns the number of remaining loops for this (see ). A return value of -1 indicates an infinitely looping , and a return value of 0 indicates that the has already finished. + + + + + Scales the speed of tweening. This affects all s and their delays. + + + + + Sets the default transition type for s and s appended after this method. + Before this method is called, the default transition type is . + + var tween = create_tween() + tween.tween_property(self, "position", Vector2(300, 0), 0.5) # Uses TRANS_LINEAR. + tween.set_trans(Tween.TRANS_SINE) + tween.tween_property(self, "rotation_degrees", 45.0, 0.5) # Uses TRANS_SINE. + + + + + + Sets the default ease type for s and s appended after this method. + Before this method is called, the default ease type is . + + var tween = create_tween() + tween.tween_property(self, "position", Vector2(300, 0), 0.5) # Uses EASE_IN_OUT. + tween.set_ease(Tween.EASE_IN) + tween.tween_property(self, "rotation_degrees", 45.0, 0.5) # Uses EASE_IN. + + + + + + Makes the next run parallelly to the previous one. + + Tween tween = CreateTween(); + tween.TweenProperty(...); + tween.Parallel().TweenProperty(...); + tween.Parallel().TweenProperty(...); + + All s in the example will run at the same time. + You can make the parallel by default by using . + + + + + Used to chain two s after is called with . + + Tween tween = CreateTween().SetParallel(true); + tween.TweenProperty(...); + tween.TweenProperty(...); // Will run parallelly with above. + tween.Chain().TweenProperty(...); // Will run after two above are finished. + + + + + + This method can be used for manual interpolation of a value, when you don't want to do animating for you. It's similar to @GlobalScope.lerp, but with support for custom transition and easing. + is the starting value of the interpolation. + is the change of the value in the interpolation, i.e. it's equal to final_value - initial_value. + is the time in seconds that passed after the interpolation started and it's used to control the position of the interpolation. E.g. when it's equal to half of the , the interpolated value will be halfway between initial and final values. This value can also be greater than or lower than 0, which will extrapolate the value. + is the total time of the interpolation. + Note: If is equal to 0, the method will always return the final value, regardless of provided. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one step of the is complete, providing the step index. One step is either a single or a group of s running in parallel. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a full loop is complete (see ), providing the loop index. This signal is not emitted after the final loop, use instead for this case. + + + + + Emitted when the has finished all tweening. Never emitted when the is set to infinite looping (see ). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'tween_property' method. + + + + + Cached name for the 'tween_interval' method. + + + + + Cached name for the 'tween_callback' method. + + + + + Cached name for the 'tween_method' method. + + + + + Cached name for the 'custom_step' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'pause' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'kill' method. + + + + + Cached name for the 'get_total_elapsed_time' method. + + + + + Cached name for the 'is_running' method. + + + + + Cached name for the 'is_valid' method. + + + + + Cached name for the 'bind_node' method. + + + + + Cached name for the 'set_process_mode' method. + + + + + Cached name for the 'set_pause_mode' method. + + + + + Cached name for the 'set_parallel' method. + + + + + Cached name for the 'set_loops' method. + + + + + Cached name for the 'get_loops_left' method. + + + + + Cached name for the 'set_speed_scale' method. + + + + + Cached name for the 'set_trans' method. + + + + + Cached name for the 'set_ease' method. + + + + + Cached name for the 'parallel' method. + + + + + Cached name for the 'chain' method. + + + + + Cached name for the 'interpolate_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'step_finished' signal. + + + + + Cached name for the 'loop_finished' signal. + + + + + Cached name for the 'finished' signal. + + + + + Tweeners are objects that perform a specific animating task, e.g. interpolating a property or calling a method at a given time. A can't be created manually, you need to use a dedicated method from . + + + + + Emitted when the has just finished its job or became invalid (e.g. due to a freed object). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + A simple server that opens a UDP socket and returns connected upon receiving new packets. See also . + After starting the server (), you will need to it at regular intervals (e.g. inside ) for it to process new packets, delivering them to the appropriate , and taking new connections. + Below a small example of how it can be used: + + // ServerNode.cs + using Godot; + using System.Collections.Generic; + + public partial class ServerNode : Node + { + private UdpServer _server = new UdpServer(); + private List<PacketPeerUdp> _peers = new List<PacketPeerUdp>(); + + public override void _Ready() + { + _server.Listen(4242); + } + + public override void _Process(double delta) + { + _server.Poll(); // Important! + if (_server.IsConnectionAvailable()) + { + PacketPeerUdp peer = _server.TakeConnection(); + byte[] packet = peer.GetPacket(); + GD.Print($"Accepted Peer: {peer.GetPacketIP()}:{peer.GetPacketPort()}"); + GD.Print($"Received Data: {packet.GetStringFromUtf8()}"); + // Reply so it knows we received the message. + peer.PutPacket(packet); + // Keep a reference so we can keep contacting the remote peer. + _peers.Add(peer); + } + foreach (var peer in _peers) + { + // Do something with the peers. + } + } + } + + + // ClientNode.cs + using Godot; + + public partial class ClientNode : Node + { + private PacketPeerUdp _udp = new PacketPeerUdp(); + private bool _connected = false; + + public override void _Ready() + { + _udp.ConnectToHost("127.0.0.1", 4242); + } + + public override void _Process(double delta) + { + if (!_connected) + { + // Try to contact server + _udp.PutPacket("The Answer Is..42!".ToUtf8Buffer()); + } + if (_udp.GetAvailablePacketCount() > 0) + { + GD.Print($"Connected: {_udp.GetPacket().GetStringFromUtf8()}"); + _connected = true; + } + } + } + + + + + + Define the maximum number of pending connections, during , any new pending connection exceeding that value will be automatically dropped. Setting this value to 0 effectively prevents any new pending connection to be accepted (e.g. when all your players have connected). + + + + + Starts the server by opening a UDP socket listening on the given . You can optionally specify a to only listen for packets sent to that address. See also . + + + + + Call this method at regular intervals (e.g. inside ) to process new packets. And packet from known address/port pair will be delivered to the appropriate , any packet received from an unknown address/port pair will be added as a pending connection (see , ). The maximum number of pending connection is defined via . + + + + + Returns if a packet with a new address/port combination was received on the socket. + + + + + Returns the local port this server is listening to. + + + + + Returns if the socket is open and listening on a port. + + + + + Returns the first pending connection (connected to the appropriate address/port). Will return if no new connection is available. See also , . + + + + + Stops the server, closing the UDP socket if open. Will close all connected accepted via (remote peers will not be notified). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'max_pending_connections' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'listen' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'is_connection_available' method. + + + + + Cached name for the 'get_local_port' method. + + + + + Cached name for the 'is_listening' method. + + + + + Cached name for the 'take_connection' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'set_max_pending_connections' method. + + + + + Cached name for the 'get_max_pending_connections' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class can be used to discover compatible 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 7777, note both and can return errors that should be checked): + + var upnp = UPNP.new() + upnp.discover() + upnp.add_port_mapping(7777) + + To close a specific port (e.g. after you have finished using it): + + upnp.delete_port_mapping(port) + + Note: UPnP discovery blocks the current thread. To perform discovery without blocking the main thread, use s like this: + + # Emitted when UPnP port mapping setup is completed (regardless of success or failure). + signal upnp_completed(error) + + # Replace this with your own server port number between 1024 and 65535. + const SERVER_PORT = 3928 + var thread = null + + func _upnp_setup(server_port): + # UPNP queries take some time. + var upnp = UPNP.new() + var err = upnp.discover() + + if err != OK: + push_error(str(err)) + upnp_completed.emit(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") + upnp_completed.emit(OK) + + func _ready(): + thread = Thread.new() + thread.start(_upnp_setup.bind(SERVER_PORT)) + + func _exit_tree(): + # Wait for thread finish here to handle game exit while the thread is running. + thread.wait_to_finish() + + Terminology: In the context of UPnP networking, "gateway" (or "internet gateway device", short IGD) refers to network devices that allow computers in the local network to access the internet ("wide area network", WAN). These gateways are often also called "routers". + Pitfalls: + - As explained above, these calls are blocking and shouldn't be run on the main thread, especially as they can block for multiple seconds at a time. Use threading! + - Networking is physical and messy. Packets get lost in transit or get filtered, addresses, free ports and assigned mappings change, and devices may leave or join the network at any time. Be mindful of this, be diligent when checking and handling errors, and handle these gracefully if you can: add clear error UI, timeouts and re-try handling. + - Port mappings may change (and be removed) at any time, and the remote/external IP address of the gateway can change likewise. You should consider re-querying the external IP and try to update/refresh the port mapping periodically (for example, every 5 minutes and on networking failures). + - Not all devices support UPnP, and some users disable UPnP support. You need to handle this (e.g. documenting and requiring the user to manually forward ports, or adding alternative methods of NAT traversal, like a relay/mirror server, or NAT hole punching, STUN/TURN, etc.). + - Consider what happens on mapping conflicts. Maybe multiple users on the same network would like to play your game at the same time, or maybe another application uses the same port. Make the port configurable, and optimally choose a port automatically (re-trying with a different port on failure). + Further reading: If you want to know more about UPnP (and the Internet Gateway Device (IGD) and Port Control Protocol (PCP) specifically), Wikipedia is a good first stop, the specification can be found at the Open Connectivity Foundation and Godot's implementation is based on the MiniUPnP client. + + + + + UPNP command or discovery was successful. + + + + + Not authorized to use the command on the . May be returned when the user disabled UPNP on their router. + + + + + No port mapping was found for the given port, protocol combination on the given . + + + + + Inconsistent parameters. + + + + + No such entry in array. May be returned if a given port, protocol combination is not found on an . + + + + + The action failed. + + + + + The does not allow wildcard values for the source IP address. + + + + + The does not allow wildcard values for the external port. + + + + + The does not allow wildcard values for the internal port. + + + + + The remote host value must be a wildcard. + + + + + The external port value must be a wildcard. + + + + + No port maps are available. May also be returned if port mapping functionality is not available. + + + + + Conflict with other mechanism. May be returned instead of if a port mapping conflicts with an existing one. + + + + + Conflict with an existing port mapping. + + + + + External and internal port values must be the same. + + + + + Only permanent leases are supported. Do not use the duration parameter when adding port mappings. + + + + + Invalid gateway. + + + + + Invalid port. + + + + + Invalid protocol. + + + + + Invalid duration. + + + + + Invalid arguments. + + + + + Invalid response. + + + + + Invalid parameter. + + + + + HTTP error. + + + + + Socket error. + + + + + Error allocating memory. + + + + + No gateway available. You may need to call first, or discovery didn't detect any valid IGDs (InternetGatewayDevices). + + + + + No devices available. You may need to call first, or discovery didn't detect any valid s. + + + + + Unknown error. + + + + + Multicast interface to use for discovery. Uses the default multicast interface if empty. + + + + + If 0, the local port to use for discovery is chosen automatically by the system. If 1, discovery will be done from the source port 1900 (same as destination port). Otherwise, the value will be used as the port. + + + + + If , IPv6 is used for discovery. + + + + + Returns the number of discovered s. + + + + + Returns the at the given . + + + + + Adds the given to the list of discovered devices. + + + + + Sets the device at from the list of discovered devices to . + + + + + Removes the device at from the list of discovered devices. + + + + + Clears the list of discovered devices. + + + + + Returns the default gateway. That is the first discovered that is also a valid IGD (InternetGatewayDevice). + + + + + Discovers local s. Clears the list of previously discovered devices. + Filters for IGD (InternetGatewayDevice) type devices by default, as those manage port forwarding. is the time to wait for responses in milliseconds. is the time-to-live; only touch this if you know what you're doing. + See for possible return values. + + + + + Returns the external address of the default gateway (see ) as string. Returns an empty string on error. + + + + + Adds a mapping to forward the external (between 1 and 65535, although recommended to use port 1024 or above) on the default gateway (see ) to the on the local machine for the given protocol (either "TCP" or "UDP", with UDP being the default). If a port mapping for the given port and protocol combination already exists on that gateway device, this method tries to overwrite it. If that is not desired, you can retrieve the gateway manually with and call on it, if any. Note that forwarding a well-known port (below 1024) with UPnP may fail depending on the device. + Depending on the gateway device, if a mapping for that port already exists, it will either be updated or it will refuse this command due to that conflict, especially if the existing mapping for that port wasn't created via UPnP or points to a different network address (or device) than this one. + If is 0 (the default), the same port number is used for both the external and the internal port (the value). + The description () is shown in some routers management UIs and can be used to point out which application added the mapping. + The mapping's lease can be limited by specifying a duration in seconds. The default of 0 means no duration, i.e. a permanent lease and notably some devices only support these permanent leases. Note that whether permanent or not, this is only a request and the gateway may still decide at any point to remove the mapping (which usually happens on a reboot of the gateway, when its external IP address changes, or on some models when it detects a port mapping has become inactive, i.e. had no traffic for multiple minutes). If not 0 (permanent), the allowed range according to spec is between 120 (2 minutes) and 86400 seconds (24 hours). + See for possible return values. + + + + + Deletes the port mapping for the given port and protocol combination on the default gateway (see ) if one exists. must be a valid port between 1 and 65535, can be either "TCP" or "UDP". May be refused for mappings pointing to addresses other than this one, for well-known ports (below 1024), or for mappings not added via UPnP. See for possible return values. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'discover_multicast_if' property. + + + + + Cached name for the 'discover_local_port' property. + + + + + Cached name for the 'discover_ipv6' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_device_count' method. + + + + + Cached name for the 'get_device' method. + + + + + Cached name for the 'add_device' method. + + + + + Cached name for the 'set_device' method. + + + + + Cached name for the 'remove_device' method. + + + + + Cached name for the 'clear_devices' method. + + + + + Cached name for the 'get_gateway' method. + + + + + Cached name for the 'discover' method. + + + + + Cached name for the 'query_external_address' method. + + + + + Cached name for the 'add_port_mapping' method. + + + + + Cached name for the 'delete_port_mapping' method. + + + + + Cached name for the 'set_discover_multicast_if' method. + + + + + Cached name for the 'get_discover_multicast_if' method. + + + + + Cached name for the 'set_discover_local_port' method. + + + + + Cached name for the 'get_discover_local_port' method. + + + + + Cached name for the 'set_discover_ipv6' method. + + + + + Cached name for the 'is_discover_ipv6' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Universal Plug and Play (UPnP) device. See 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. + + + + + OK. + + + + + HTTP error. + + + + + Empty HTTP response. + + + + + Returned response contained no URLs. + + + + + Not a valid IGD. + + + + + Disconnected. + + + + + Unknown device. + + + + + Invalid control. + + + + + Memory allocation error. + + + + + Unknown error. + + + + + URL to the device description. + + + + + Service type. + + + + + IDG control URL. + + + + + IGD service type. + + + + + Address of the local machine in the network connecting it to this . + + + + + IGD status. See . + + + + + Returns if this is a valid IGD (InternetGatewayDevice) which potentially supports port forwarding. + + + + + Returns the external IP address of this or an empty string. + + + + + Adds a port mapping to forward the given external port on this for the given protocol to the local machine. See . + + + + + Deletes the port mapping identified by the given port and protocol combination on this device. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'description_url' property. + + + + + Cached name for the 'service_type' property. + + + + + Cached name for the 'igd_control_url' property. + + + + + Cached name for the 'igd_service_type' property. + + + + + Cached name for the 'igd_our_addr' property. + + + + + Cached name for the 'igd_status' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_valid_gateway' method. + + + + + Cached name for the 'query_external_address' method. + + + + + Cached name for the 'add_port_mapping' method. + + + + + Cached name for the 'delete_port_mapping' method. + + + + + Cached name for the 'set_description_url' method. + + + + + Cached name for the 'get_description_url' method. + + + + + Cached name for the 'set_service_type' method. + + + + + Cached name for the 'get_service_type' method. + + + + + Cached name for the 'set_igd_control_url' method. + + + + + Cached name for the 'get_igd_control_url' method. + + + + + Cached name for the 'set_igd_service_type' method. + + + + + Cached name for the 'get_igd_service_type' method. + + + + + Cached name for the 'set_igd_our_addr' method. + + + + + Cached name for the 'get_igd_our_addr' method. + + + + + Cached name for the 'set_igd_status' method. + + + + + Cached name for the 'get_igd_status' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uniform set cache manager for Rendering Device based renderers. Provides a way to create a uniform set and reuse it in subsequent calls for as long as the uniform set exists. Uniform set will automatically be cleaned up when dependent objects are freed. + + + + + Creates/returns a cached uniform set based on the provided uniforms for a given shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_cache' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of that can only arrange its child controls vertically. Child controls are rearranged automatically when their minimum size changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A variant of 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A vertical scrollbar, typically used to navigate through content that extends beyond the visible height of a control. It is a -based control and goes from top (min) to bottom (max). Note that this direction is the opposite of 's. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A vertical separator used for separating other controls that are arranged horizontally. is purely visual and normally drawn as a . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A vertical slider, used to adjust a value by moving a grabber along a vertical axis. It is a -based control and goes from bottom (min) to top (max). Note that this direction is the opposite of 's. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 for the main body of the vehicle, you must also add a node for each wheel. You should also add a 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 , , and properties. The position or orientation of this node shouldn't be changed directly. + Note: The origin point of your VehicleBody3D will determine the center of gravity of your vehicle. To make the vehicle more grounded, the origin point is usually kept low, moving the and upwards. + Note: This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you may have to write your own physics integration using or . + + + + + Accelerates the vehicle by applying an engine force. The vehicle is only sped up if the wheels that have set to and are in contact with a surface. The of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. + Note: The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears. + A negative value will result in the vehicle reversing. + + + + + Slows down the vehicle by applying a braking force. The vehicle is only slowed down if the wheels are in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking. + + + + + The steering angle for the vehicle. Setting this to a non-zero value will result in the vehicle turning when it's moving. Wheels that have set to will automatically be rotated. + Note: This property is edited in the inspector in degrees. In code the property is set in radians. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'engine_force' property. + + + + + Cached name for the 'brake' property. + + + + + Cached name for the 'steering' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_engine_force' method. + + + + + Cached name for the 'get_engine_force' method. + + + + + Cached name for the 'set_brake' method. + + + + + Cached name for the 'get_brake' method. + + + + + Cached name for the 'set_steering' method. + + + + + Cached name for the 'get_steering' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A node used as a child of a parent to simulate the behavior of one of its wheels. This node also acts as a collider to detect if the wheel is touching a surface. + Note: This class has known issues and isn't designed to provide realistic 3D vehicle physics. If you want advanced vehicle physics, you may need to write your own physics integration using another class. + + + + + Accelerates the wheel by applying an engine force. The wheel is only sped up if it is in contact with a surface. The of the vehicle has an effect on the acceleration of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 50 range for acceleration. + Note: The simulation does not take the effect of gears into account, you will need to add logic for this if you wish to simulate gears. + A negative value will result in the wheel reversing. + + + + + Slows down the wheel by applying a braking force. The wheel is only slowed down if it is in contact with a surface. The force you need to apply to adequately slow down your vehicle depends on the of the vehicle. For a vehicle with a mass set to 1000, try a value in the 25 - 30 range for hard braking. + + + + + The steering angle for the wheel, in radians. Setting this to a non-zero value will result in the vehicle turning when it's moving. + + + + + If , this wheel transfers engine force to the ground to propel the vehicle forward. This value is used in conjunction with and ignored if you are using the per-wheel value instead. + + + + + If , this wheel will be turned when the car steers. This value is used in conjunction with and ignored if you are using the per-wheel value instead. + + + + + This value affects the roll of your vehicle. If set to 1.0 for all wheels, your vehicle will resist body roll, while a value of 0.0 will be prone to rolling over. + + + + + The radius of the wheel in meters. + + + + + This is the distance in meters the wheel is lowered from its origin point. Don't set this to 0.0 and move the wheel into position, instead move the origin point of your wheel (the gizmo in Godot) to the position the wheel will take when bottoming out, then use the rest length to move the wheel down to the position it should be in when the car is in rest. + + + + + This determines how much grip this wheel has. It is combined with the friction setting of the surface the wheel is in contact with. 0.0 means no grip, 1.0 is normal grip. For a drift car setup, try setting the grip of the rear wheels slightly lower than the front wheels, or use a lower value to simulate tire wear. + It's best to set this to 1.0 when starting out. + + + + + This is the distance the suspension can travel. As Godot units are equivalent to meters, keep this setting relatively low. Try a value between 0.1 and 0.3 depending on the type of car. + + + + + The stiffness of the suspension, measured in Newtons per millimeter (N/mm), or megagrams per second squared (Mg/s²). Use a value lower than 50 for an off-road car, a value between 50 and 100 for a race car and try something around 200 for something like a Formula 1 car. + + + + + The maximum force the spring can resist. This value should be higher than a quarter of the of the or the spring will not carry the weight of the vehicle. Good results are often obtained by a value that is about 3× to 4× this number. + + + + + The damping applied to the suspension spring when being compressed, meaning when the wheel is moving up relative to the vehicle. It is measured in Newton-seconds per millimeter (N⋅s/mm), or megagrams per second (Mg/s). This value should be between 0.0 (no damping) and 1.0, but may be more. A value of 0.0 means the car will keep bouncing as the spring keeps its energy. A good value for this is around 0.3 for a normal car, 0.5 for a race car. + + + + + The damping applied to the suspension spring when rebounding or extending, meaning when the wheel is moving down relative to the vehicle. It is measured in Newton-seconds per millimeter (N⋅s/mm), or megagrams per second (Mg/s). This value should be between 0.0 (no damping) and 1.0, but may be more. This value should always be slightly higher than the property. For a value of 0.3, try a relaxation value of 0.5. + + + + + Returns if this wheel is in contact with a surface. + + + + + Returns the contacting body node if valid in the tree, as . At the moment, is not supported so the node will be always of type . + Returns if the wheel is not in contact with a surface, or the contact body is not a . + + + + + Returns the point of the suspension's collision in world space if the wheel is in contact. If the wheel isn't in contact with anything, returns the maximum point of the wheel's ray cast in world space, which is defined by wheel_rest_length + wheel_radius. + + + + + Returns the normal of the suspension's collision in world space if the wheel is in contact. If the wheel isn't in contact with anything, returns a vector pointing directly along the suspension axis toward the vehicle in world space. + + + + + Returns a value between 0.0 and 1.0 that indicates whether this wheel is skidding. 0.0 is skidding (the wheel has lost grip, e.g. icy terrain), 1.0 means not skidding (the wheel has full grip, e.g. dry asphalt road). + + + + + Returns the rotational speed of the wheel in revolutions per minute. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'engine_force' property. + + + + + Cached name for the 'brake' property. + + + + + Cached name for the 'steering' property. + + + + + Cached name for the 'use_as_traction' property. + + + + + Cached name for the 'use_as_steering' property. + + + + + Cached name for the 'wheel_roll_influence' property. + + + + + Cached name for the 'wheel_radius' property. + + + + + Cached name for the 'wheel_rest_length' property. + + + + + Cached name for the 'wheel_friction_slip' property. + + + + + Cached name for the 'suspension_travel' property. + + + + + Cached name for the 'suspension_stiffness' property. + + + + + Cached name for the 'suspension_max_force' property. + + + + + Cached name for the 'damping_compression' property. + + + + + Cached name for the 'damping_relaxation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_radius' method. + + + + + Cached name for the 'get_radius' method. + + + + + Cached name for the 'set_suspension_rest_length' method. + + + + + Cached name for the 'get_suspension_rest_length' method. + + + + + Cached name for the 'set_suspension_travel' method. + + + + + Cached name for the 'get_suspension_travel' method. + + + + + Cached name for the 'set_suspension_stiffness' method. + + + + + Cached name for the 'get_suspension_stiffness' method. + + + + + Cached name for the 'set_suspension_max_force' method. + + + + + Cached name for the 'get_suspension_max_force' method. + + + + + Cached name for the 'set_damping_compression' method. + + + + + Cached name for the 'get_damping_compression' method. + + + + + Cached name for the 'set_damping_relaxation' method. + + + + + Cached name for the 'get_damping_relaxation' method. + + + + + Cached name for the 'set_use_as_traction' method. + + + + + Cached name for the 'is_used_as_traction' method. + + + + + Cached name for the 'set_use_as_steering' method. + + + + + Cached name for the 'is_used_as_steering' method. + + + + + Cached name for the 'set_friction_slip' method. + + + + + Cached name for the 'get_friction_slip' method. + + + + + Cached name for the 'is_in_contact' method. + + + + + Cached name for the 'get_contact_body' method. + + + + + Cached name for the 'get_contact_point' method. + + + + + Cached name for the 'get_contact_normal' method. + + + + + Cached name for the 'set_roll_influence' method. + + + + + Cached name for the 'get_roll_influence' method. + + + + + Cached name for the 'get_skidinfo' method. + + + + + Cached name for the 'get_rpm' method. + + + + + Cached name for the 'set_engine_force' method. + + + + + Cached name for the 'get_engine_force' method. + + + + + Cached name for the 'set_brake' method. + + + + + Cached name for the 'get_brake' method. + + + + + Cached name for the 'set_steering' method. + + + + + Cached name for the 'get_steering' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base resource type for all video streams. Classes that derive from can all be used as resource types to play back videos in . + + + + + The video file path or URI that this resource handles. + For , this filename should be an Ogg Theora video file with the .ogv extension. + + + + + Called when the video starts playing, to initialize and return a subclass of . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'file' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_instantiate_playback' method. + + + + + Cached name for the 'set_file' method. + + + + + Cached name for the 'get_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is intended to be overridden by video decoder extensions with custom implementations of . + + + + + Returns the number of audio channels. + + + + + Returns the video duration in seconds, if known, or 0 if unknown. + + + + + Returns the audio sample rate used for mixing. + + + + + Return the current playback timestamp. Called in response to the getter. + + + + + Allocates a in which decoded video frames will be drawn. + + + + + Returns the paused status, as set by . + + + + + Returns the playback state, as determined by calls to and . + + + + + Called in response to or . Note that manual playback may also invoke multiple times before this method is called. should return once playing. + + + + + Seeks to seconds. Called in response to the setter. + + + + + Select the audio track . Called when playback starts, and in response to the setter. + + + + + Set the paused status of video playback. must return . Called in response to the setter. + + + + + Stops playback. May be called multiple times before , or in response to . should return once stopped. + + + + + Ticks video playback for seconds. Called every frame as long as both and return . + + + + + Render audio frames (of floats each) from , starting from index in the array. Returns the number of audio frames rendered, or -1 on error. + + If the parameter is null, then the default value is Array.Empty<float>(). + + + + Render audio frames (of floats each) from , starting from index in the array. Returns the number of audio frames rendered, or -1 on error. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_channels' method. + + + + + Cached name for the '_get_length' method. + + + + + Cached name for the '_get_mix_rate' method. + + + + + Cached name for the '_get_playback_position' method. + + + + + Cached name for the '_get_texture' method. + + + + + Cached name for the '_is_paused' method. + + + + + Cached name for the '_is_playing' method. + + + + + Cached name for the '_play' method. + + + + + Cached name for the '_seek' method. + + + + + Cached name for the '_set_audio_track' method. + + + + + Cached name for the '_set_paused' method. + + + + + Cached name for the '_stop' method. + + + + + Cached name for the '_update' method. + + + + + Cached name for the 'mix_audio' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A control used for playback of resources. + Supported video formats are Ogg Theora (.ogv, ) and any format exposed via a GDExtension plugin. + Warning: On Web, video playback will perform poorly due to missing architecture-specific assembly optimizations. + + + + + The embedded audio track to play. + + + + + The assigned video stream. See description for supported formats. + + + + + Audio volume in dB. + + + + + Audio volume as a linear value. + + + + + If , playback starts when the scene loads. + + + + + If , the video is paused. + + + + + If , the video scales to the control size. Otherwise, the control minimum size will be automatically adjusted to match the video stream's dimensions. + + + + + If , the video restarts when it reaches its end. + + + + + Amount of time in milliseconds to store in buffer while playing. + + + + + The current position of the stream, in seconds. + Note: Changing this value won't have any effect as seeking is not implemented yet, except in video formats implemented by a GDExtension add-on. + + + + + Audio bus to use for sound playback. + + + + + Starts the video playback from the beginning. If the video is paused, this will not unpause the video. + + + + + Stops the video playback and sets the stream position to 0. + Note: Although the stream position will be set to 0, the first frame of the video stream won't become the current frame. + + + + + Returns if the video is playing. + Note: The video is still considered playing if paused during playback. + + + + + Returns the video stream's name, or "<No Stream>" if no video stream is assigned. + + + + + The length of the current stream, in seconds. + Note: For streams (the built-in format supported by Godot), this value will always be zero, as getting the stream length is not implemented yet. The feature may be supported by video formats implemented by a GDExtension add-on. + + + + + Returns the current frame as a . + + + + + Emitted when playback is finished. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'audio_track' property. + + + + + Cached name for the 'stream' property. + + + + + Cached name for the 'volume_db' property. + + + + + Cached name for the 'volume' property. + + + + + Cached name for the 'autoplay' property. + + + + + Cached name for the 'paused' property. + + + + + Cached name for the 'expand' property. + + + + + Cached name for the 'loop' property. + + + + + Cached name for the 'buffering_msec' property. + + + + + Cached name for the 'stream_position' property. + + + + + Cached name for the 'bus' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_stream' method. + + + + + Cached name for the 'get_stream' method. + + + + + Cached name for the 'play' method. + + + + + Cached name for the 'stop' method. + + + + + Cached name for the 'is_playing' method. + + + + + Cached name for the 'set_paused' method. + + + + + Cached name for the 'is_paused' method. + + + + + Cached name for the 'set_loop' method. + + + + + Cached name for the 'has_loop' method. + + + + + Cached name for the 'set_volume' method. + + + + + Cached name for the 'get_volume' method. + + + + + Cached name for the 'set_volume_db' method. + + + + + Cached name for the 'get_volume_db' method. + + + + + Cached name for the 'set_audio_track' method. + + + + + Cached name for the 'get_audio_track' method. + + + + + Cached name for the 'get_stream_name' method. + + + + + Cached name for the 'get_stream_length' method. + + + + + Cached name for the 'set_stream_position' method. + + + + + Cached name for the 'get_stream_position' method. + + + + + Cached name for the 'set_autoplay' method. + + + + + Cached name for the 'has_autoplay' method. + + + + + Cached name for the 'set_expand' method. + + + + + Cached name for the 'has_expand' method. + + + + + Cached name for the 'set_buffering_msec' method. + + + + + Cached name for the 'get_buffering_msec' method. + + + + + Cached name for the 'set_bus' method. + + + + + Cached name for the 'get_bus' method. + + + + + Cached name for the 'get_video_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'finished' signal. + + + + + resource handling the Ogg Theora video format with .ogv extension. The Theora codec is decoded on the CPU. + Note: While Ogg Theora videos can also have an .ogg extension, you will have to rename the extension to .ogv to use those videos within Godot. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 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. + + + + + This quadrant will not be used. + + + + + This quadrant will only be used by one shadow map. + + + + + This quadrant will be split in 4 and used by up to 4 shadow maps. + + + + + This quadrant will be split 16 ways and used by up to 16 shadow maps. + + + + + This quadrant will be split 64 ways and used by up to 64 shadow maps. + + + + + This quadrant will be split 256 ways and used by up to 256 shadow maps. Unless the is very high, the shadows in this quadrant will be very low resolution. + + + + + This quadrant will be split 1024 ways and used by up to 1024 shadow maps. Unless the is very high, the shadows in this quadrant will be very low resolution. + + + + + Represents the size of the enum. + + + + + Use bilinear scaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will result in undersampling while values greater than 1.0 will result in supersampling. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 1.0 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 disables scaling. + + + + + Use AMD FidelityFX Super Resolution 2.2 upscaling for the viewport's 3D buffer. The amount of scaling can be set using . Values less than 1.0 will be result in the viewport being upscaled using FSR2. Values greater than 1.0 are not supported and bilinear downsampling will be used instead. A value of 1.0 will use FSR2 at native resolution as a TAA solution. + + + + + Represents the size of the enum. + + + + + Multisample antialiasing mode disabled. This is the default value, and is also the fastest setting. + + + + + Use 2× Multisample Antialiasing. This has a moderate performance cost. It helps reduce aliasing noticeably, but 4× MSAA still looks substantially better. + + + + + Use 4× Multisample Antialiasing. This has a significant performance cost, and is generally a good compromise between performance and quality. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Anisotropic filtering is disabled. + + + + + Use 2× anisotropic filtering. + + + + + Use 4× anisotropic filtering. This is the default value. + + + + + Use 8× anisotropic filtering. + + + + + Use 16× anisotropic filtering. + + + + + Represents the size of the enum. + + + + + Do not perform any antialiasing in the full screen post-process. + + + + + 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. + + + + + Represents the size of the enum. + + + + + Amount of objects in frame. + + + + + Amount of vertices in frame. + + + + + Amount of draw calls in frame. + + + + + Represents the size of the enum. + + + + + Visible render pass (excluding shadows). + + + + + 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. + + + + + Canvas item rendering. This includes all 2D rendering. + + + + + Represents the size of the enum. + + + + + Objects are displayed normally. + + + + + Objects are displayed without light information. + + + + + Objects are displayed without textures and only with lighting information. + + + + + 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. + + + + + Objects are displayed as wireframe models. + Note: must be called before loading any meshes for wireframes to be visible when using the Compatibility renderer. + + + + + Objects are displayed without lighting information and their textures replaced by normal mapping. + + + + + Objects are displayed with only the albedo value from s. + + + + + Objects are displayed with only the lighting value from s. + + + + + Objects are displayed with only the emission color from s. + + + + + Draws the shadow atlas that stores shadows from s and s in the upper left quadrant of the . + + + + + Draws the shadow atlas that stores shadows from s in the upper left quadrant of the . + + + + + Draws the scene luminance buffer (if available) in the upper left quadrant of the . + + + + + 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 set in your . + + + + + 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 set in your . + + + + + Colors each PSSM split for the 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. + + + + + Draws the decal atlas used by s and light projector textures in the upper left quadrant of the . + + + + + Draws the cascades used to render signed distance field global illumination (SDFGI). + Does nothing if the current environment's is or SDFGI is not supported on the platform. + + + + + Draws the probes used for signed distance field global illumination (SDFGI). + Does nothing if the current environment's is or SDFGI is not supported on the platform. + + + + + Draws the buffer used for global illumination (GI). + + + + + Draws all of the objects at their highest polycount, without low level of detail (LOD). + + + + + Draws the cluster used by nodes to optimize light rendering. + + + + + Draws the cluster used by nodes to optimize light rendering. + + + + + Draws the cluster used by nodes to optimize decal rendering. + + + + + Draws the cluster used by nodes to optimize decal rendering. + + + + + Draws the buffer used for occlusion culling. + + + + + Draws vector lines over the viewport to indicate the movement of pixels between frames. + + + + + Draws the internal resolution buffer of the scene before post-processing is applied. + + + + + 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). + + + + + 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). + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + Represents the size of the enum. + + + + + 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. + + + + + 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. + + + + + Flip the texture when repeating so that the edge lines up instead of abruptly changing. + + + + + Represents the size of the enum. + + + + + The signed distance field only covers the viewport's own rectangle. + + + + + The signed distance field is expanded to cover 20% of the viewport's size around the borders. + + + + + The signed distance field is expanded to cover 50% of the viewport's size around the borders. + + + + + The signed distance field is expanded to cover 100% (double) of the viewport's size around the borders. + + + + + Represents the size of the enum. + + + + + The signed distance field is rendered at full resolution. + + + + + The signed distance field is rendered at half the resolution of this viewport. + + + + + The signed distance field is rendered at a quarter the resolution of this viewport. + + + + + Represents the size of the enum. + + + + + Variable Rate Shading is disabled. + + + + + Variable Rate Shading uses a texture. Note, for stereoscopic use a texture atlas with a texture for each view. + + + + + Variable Rate Shading's texture is supplied by the primary . + + + + + Represents the size of the enum. + + + + + The input texture for variable rate shading will not be processed. + + + + + The input texture for variable rate shading will be processed once. + + + + + The input texture for variable rate shading will be processed each frame. + + + + + Represents the size of the enum. + + + + + Disable 3D rendering (but keep 2D rendering). + + + + + If , the viewport will use the primary XR interface to render XR output. When applicable this can result in a stereoscopic image and the resulting render being output to a headset. + + + + + If , the viewport will use a unique copy of the defined in . + + + + + The custom which can be used as 3D environment source. + + + + + The custom which can be used as 2D environment source. + + + + + If , the viewport should render its background as transparent. + + + + + If , this viewport will mark incoming input events as handled by itself. If , this is instead done by the first parent viewport that is set to handle input locally. + A will automatically set this property to for the contained inside of it. + See also and . + + + + + If , nodes will internally snap to full pixels. Their position can still be sub-pixel, but the decimals will not have effect. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. + + + + + If , vertices of nodes will snap to full pixels. Only affects the final vertex positions, not the transforms. This can lead to a crisper appearance at the cost of less smooth movement, especially when smoothing is enabled. + + + + + The multisample antialiasing mode for 2D/Canvas rendering. A higher number results in smoother edges at the cost of significantly worse performance. A value of or is best unless targeting very high-end systems. This has no effect on shader-induced aliasing or texture aliasing. + See also ProjectSettings.rendering/anti_aliasing/quality/msaa_2d and . + + + + + The multisample antialiasing mode for 3D rendering. A higher number results in smoother edges at the cost of significantly worse performance. A value of or is best unless targeting very high-end systems. See also bilinear scaling 3D for supersampling, which provides higher quality but is much more expensive. This has no effect on shader-induced aliasing or texture aliasing. + See also ProjectSettings.rendering/anti_aliasing/quality/msaa_3d and . + + + + + Sets the screen-space antialiasing method used. Screen-space antialiasing works by selectively blurring edges in a post-process shader. It differs from MSAA which takes multiple coverage samples while rendering objects. Screen-space AA methods are typically faster than MSAA and will smooth out specular aliasing, but tend to make scenes appear blurry. + See also ProjectSettings.rendering/anti_aliasing/quality/screen_space_aa and . + + + + + Enables temporal antialiasing for this viewport. TAA works by jittering the camera and accumulating the images of the last rendered frames, motion vector rendering is used to account for camera and object motion. + Note: The implementation is not complete yet, some visual instances such as particles and skinned meshes may show artifacts. + See also ProjectSettings.rendering/anti_aliasing/quality/use_taa and . + + + + + If , uses a fast post-processing filter to make banding significantly less visible in 3D. 2D rendering is not affected by debanding unless the is . + In some cases, debanding may introduce a slightly noticeable dithering pattern. It's recommended to enable debanding only when actually needed since the dithering pattern will make lossless-compressed screenshots larger. + See also ProjectSettings.rendering/anti_aliasing/quality/use_debanding and . + + + + + If , nodes will be usable for occlusion culling in 3D for this viewport. For the root viewport, ProjectSettings.rendering/occlusion_culling/use_occlusion_culling must be set to instead. + Note: Enabling occlusion culling has a cost on the CPU. Only enable occlusion culling if you actually plan to use it, and think whether your scene can actually benefit from occlusion culling. 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 ( and ) compared to occlusion culling. + Note: Due to memory constraints, occlusion culling is not supported by default in Web export templates. It can be enabled by compiling custom Web export templates with module_raycast_enabled=yes. + + + + + The automatic LOD bias to use for meshes rendered within the (this is analogous to ). Higher values will use less detailed versions of meshes that have LOD variations generated. If set to 0.0, automatic LOD is disabled. Increase to improve performance at the cost of geometry detail. + To control this property on the root viewport, set the ProjectSettings.rendering/mesh_lod/lod_change/threshold_pixels project setting. + Note: does not affect visibility ranges (also known as "manual" LOD or hierarchical LOD). + + + + + The overlay mode for test rendered geometry in debug purposes. + + + + + If , 2D rendering will use an high dynamic range (HDR) format framebuffer matching the bit depth of the 3D framebuffer. When using the Forward+ renderer this will be an RGBA16 framebuffer, while when using the Mobile renderer it will be an RGB10_A2 framebuffer. Additionally, 2D rendering will take place in linear color space and will be converted to sRGB space immediately before blitting to the screen (if the Viewport is attached to the screen). Practically speaking, this means that the end result of the Viewport will not be clamped into the 0-1 range and can be used in 3D rendering without color space adjustments. This allows 2D rendering to take advantage of effects requiring high dynamic range (e.g. 2D glow) as well as substantially improves the appearance of effects requiring highly detailed gradients. + Note: This setting will have no effect when using the Compatibility renderer, which always renders in low dynamic range for performance reasons. + + + + + Sets scaling 3D mode. Bilinear scaling renders at different resolution to either undersample or supersample the viewport. FidelityFX Super Resolution 1.0, abbreviated to FSR, is an upscaling technology that produces high quality images at fast framerates by using a spatially aware upscaling algorithm. FSR is slightly more expensive than bilinear, but it produces significantly higher image quality. FSR should be used where possible. + To control this property on the root viewport, set the ProjectSettings.rendering/scaling_3d/mode project setting. + + + + + Scales the 3D render buffer based on the viewport size uses an image filter specified in ProjectSettings.rendering/scaling_3d/mode to scale the output image to the full viewport size. Values lower than 1.0 can be used to speed up 3D rendering at the cost of quality (undersampling). Values greater than 1.0 are only valid for bilinear mode and can be used to improve 3D rendering quality at a high performance cost (supersampling). See also ProjectSettings.rendering/anti_aliasing/quality/msaa_3d for multi-sample antialiasing, which is significantly cheaper but only smooths the edges of polygons. + When using FSR upscaling, AMD recommends exposing the following values as preset options to users "Ultra Quality: 0.77", "Quality: 0.67", "Balanced: 0.59", "Performance: 0.5" instead of exposing the entire scale. + To control this property on the root viewport, set the ProjectSettings.rendering/scaling_3d/scale project setting. + + + + + Affects the final texture sharpness by reading from a lower or higher mipmap (also called "texture LOD bias"). Negative values make mipmapped textures sharper but grainier when viewed at a distance, while positive values make mipmapped textures blurrier (even when up close). + Enabling temporal antialiasing () will automatically apply a -0.5 offset to this value, while enabling FXAA () will automatically apply a -0.25 offset to this value. If both TAA and FXAA are enabled at the same time, an offset of -0.75 is applied to this value. + Note: If is lower than 1.0 (exclusive), is used to adjust the automatic mipmap bias which is calculated internally based on the scale factor. The formula for this is log2(scaling_3d_scale) + mipmap_bias. + To control this property on the root viewport, set the ProjectSettings.rendering/textures/default_filters/texture_mipmap_bias project setting. + + + + + Sets the maximum number of samples to take when using anisotropic filtering on textures (as a power of two). A higher sample count will result in sharper textures at oblique angles, but is more expensive to compute. A value of 0 forcibly disables anisotropic filtering, even on materials where it is enabled. + The anisotropic filtering level also affects decals and light projectors if they are configured to use anisotropic filtering. See ProjectSettings.rendering/textures/decals/filter and ProjectSettings.rendering/textures/light_projectors/filter. + Note: In 3D, for this setting to have an effect, set to or on materials. + Note: In 2D, for this setting to have an effect, set to or on the node displaying the texture (or in ). However, anisotropic filtering is rarely useful in 2D, so only enable it for textures in 2D if it makes a meaningful visual difference. + + + + + Determines how sharp the upscaled image will be when using the FSR upscaling mode. Sharpness halves with every whole number. Values go from 0.0 (sharpest) to 2.0. Values above 2.0 won't make a visible difference. + To control this property on the root viewport, set the ProjectSettings.rendering/scaling_3d/fsr_sharpness project setting. + + + + + The Variable Rate Shading (VRS) mode that is used for this viewport. Note, if hardware does not support VRS this property is ignored. + + + + + Sets the update mode for Variable Rate Shading (VRS) for the viewport. VRS requires the input texture to be converted to the format usable by the VRS method supported by the hardware. The update mode defines how often this happens. If the GPU does not support VRS, or VRS is not enabled, this property is ignored. + + + + + Texture to use when is set to . + The texture must use a lossless compression format so that colors can be matched precisely. The following VRS densities are mapped to various colors, with brighter colors representing a lower level of shading precision: + + - 1×1 = rgb(0, 0, 0) - #000000 + - 1×2 = rgb(0, 85, 0) - #005500 + - 2×1 = rgb(85, 0, 0) - #550000 + - 2×2 = rgb(85, 85, 0) - #555500 + - 2×4 = rgb(85, 170, 0) - #55aa00 + - 4×2 = rgb(170, 85, 0) - #aa5500 + - 4×4 = rgb(170, 170, 0) - #aaaa00 + - 4×8 = rgb(170, 255, 0) - #aaff00 - Not supported on most hardware + - 8×4 = rgb(255, 170, 0) - #ffaa00 - Not supported on most hardware + - 8×8 = rgb(255, 255, 0) - #ffff00 - Not supported on most hardware + + + + + + Sets the default filter mode used by s in this Viewport. See for options. + + + + + Sets the default repeat mode used by s in this Viewport. See for options. + + + + + If , the viewport will process 2D audio streams. + + + + + If , the viewport will process 3D audio streams. + + + + + If , the objects rendered by viewport become subjects of mouse picking process. + Note: The number of simultaneously pickable objects is limited to 64 and they are selected in a non-deterministic order, which can be different in each picking process. + + + + + If , objects receive mouse picking events sorted primarily by their and secondarily by their position in the scene tree. If , the order is undetermined. + Note: This setting is disabled by default because of its potential expensive computational cost. + Note: Sorting happens after selecting the pickable objects. Because of the limitation of 64 simultaneously pickable objects, it is not guaranteed that the object with the highest receives the picking event. + + + + + If , the input_event signal will only be sent to one physics object in the mouse picking process. If you want to get the top object only, you must also enable . + If , an input_event signal will be sent to all physics objects in the mouse picking process. + This applies to 2D CanvasItem object picking only. + + + + + If , the viewport will not receive input events. + + + + + If , the GUI controls on the viewport will lay pixel perfectly. + + + + + If , sub-windows (popups and dialogs) will be embedded inside application window as control-like nodes. If , they will appear as separate windows handled by the operating system. + + + + + Controls how much of the original viewport's size should be covered by the 2D signed distance field. This SDF can be sampled in shaders and is also used for collision. Higher values allow portions of occluders located outside the viewport to still be taken into account in the generated signed distance field, at the cost of performance. If you notice particles falling through s as the occluders leave the viewport, increase this setting. + The percentage is added on each axis and on both sides. For example, with the default , the signed distance field will cover 20% of the viewport's size outside the viewport on each side (top, right, bottom, left). + + + + + The resolution scale to use for the 2D signed distance field. Higher values lead to a more precise and more stable signed distance field as the camera moves, at the cost of performance. + + + + + The shadow atlas' resolution (used for omni and spot lights). The value is rounded up to the nearest power of 2. + Note: If this is set to 0, no positional shadows will be visible at all. This can improve performance significantly on low-end systems by reducing both the CPU and GPU load (as fewer draw calls are needed to draw the scene without shadows). + + + + + Use 16 bits for the omni/spot shadow depth map. Enabling this results in shadows having less precision and may result in shadow acne, but can lead to performance improvements on some devices. + + + + + The subdivision amount of the first quadrant on the shadow atlas. + + + + + The subdivision amount of the second quadrant on the shadow atlas. + + + + + The subdivision amount of the third quadrant on the shadow atlas. + + + + + The subdivision amount of the fourth quadrant on the shadow atlas. + + + + + The canvas transform of the viewport, useful for changing the on-screen positions of all child s. This is relative to the global canvas transform of the viewport. + + + + + The global canvas transform of the viewport. The canvas transform is relative to this. + + + + + The rendering layers in which this renders nodes. + + + + + Returns the first valid for this viewport, searching the property of itself and any Viewport ancestor. + + + + + Returns the automatically computed 2D stretch transform, taking the 's stretch settings into account. The final value is multiplied by , but only for the root viewport. If this method is called on a (e.g., in a scene tree with and ), the scale factor of the root window will not be applied. Using Transform2D.get_scale on the returned value, this can be used to compensate for scaling when zooming a node, or to scale down a to be pixel-perfect regardless of the automatically computed scale factor. + Note: Due to how pixel scaling works, the transform's X scale value may differ slightly from the Y scale, even when is set to a mode that preserves pixel aspect ratio. If is , the X value may differ significantly from Y due to differences between the original aspect ratio and the window aspect ratio. + + + + + Returns the transform from the viewport's coordinate system to the embedder's coordinate system. + + + + + Returns the transform from the Viewport's coordinates to the screen coordinates of the containing window manager window. + + + + + Returns the visible rectangle in global screen coordinates. + + + + + Returns rendering statistics of the given type. See and for options. + + + + + Returns the viewport's texture. + Note: When trying to store the current texture (e.g. in a file), it might be completely black or outdated if used too early, especially when used in e.g. . To make sure the texture you get is correct, you can await signal. + + func _ready(): + await RenderingServer.frame_post_draw + $Viewport.get_texture().get_image().save_png("user://Screenshot.png") + + Note: When is the returned texture will be an HDR image encoded in linear space. + + + + + Returns the viewport's RID from the . + + + + + Helper method which calls the set_text() method on the currently focused , provided that it is defined (e.g. if the focused Control is or ). + + + + + Triggers the given in this . This can be used to pass an between viewports, or to locally apply inputs that were sent over the network or saved to a file. + If is , the event's position is in the embedder's coordinates and will be converted to viewport coordinates. If is , the event's position is in viewport coordinates. + While this method serves a similar purpose as , it does not remap the specified based on project settings like ProjectSettings.input_devices/pointing/emulate_touch_from_mouse. + Calling this method will propagate calls to child nodes for following methods in the given order: + - + - for nodes + - + - + - + If an earlier method marks the input as handled via , any later method in this list will not be called. + If none of the methods handle the event and is , the event is used for physics object picking. + + + + + Triggers the given in this . This can be used to pass an between viewports, or to locally apply inputs that were sent over the network or saved to a file. + If is , the event's position is in the embedder's coordinates and will be converted to viewport coordinates. If is , the event's position is in viewport coordinates. + Calling this method will propagate calls to child nodes for following methods in the given order: + - + - + - + If an earlier method marks the input as handled via , any later method in this list will not be called. + If none of the methods handle the event and is , the event is used for physics object picking. + Note: This method doesn't propagate input events to embedded s or s. + + + + + Returns the mouse's position in this using the coordinate system of this . + + + + + Moves the mouse pointer to the specified position in this using the coordinate system of this . + Note: is only supported on Windows, macOS and Linux. It has no effect on Android, iOS and Web. + + + + + Force instantly updating the display based on the current mouse cursor position. This includes updating the mouse cursor shape and sending necessary , , and signals and their respective mouse_exited counterparts. + + + + + Cancels the drag operation that was previously started through or forced with . + + + + + Returns the drag data from the GUI, that was previously returned by . + + + + + Returns if a drag operation is currently ongoing and where the drop action could happen in this viewport. + Alternative to and when you prefer polling the value. + + + + + Returns if the drag operation is successful. + + + + + Removes the focus from the currently focused within this viewport. If no has the focus, does nothing. + + + + + Returns the currently focused within this viewport. If no is focused, returns . + + + + + Returns the that the mouse is currently hovering over in this viewport. If no has the cursor, returns . + Typically the leaf node or deepest level of the subtree which claims hover. This is very useful when used together with to find if the mouse is within a control tree. + + + + + Sets the number of subdivisions to use in the specified quadrant. A higher number of subdivisions allows you to have more shadows in the scene at once, but reduces the quality of the shadows. A good practice is to have quadrants with a varying number of subdivisions and to have as few subdivisions as possible. + + + + + Returns the positional shadow atlas quadrant subdivision of the specified quadrant. + + + + + Stops the input from propagating further down the . + Note: This does not affect the methods in , only the way events are propagated. + + + + + Returns whether the current has been handled. Input events are not handled until has been called during the lifetime of an . + This is usually done as part of input handling methods like , or others, as well as in corresponding signal handlers. + If is set to , this method will try finding the first parent viewport that is set to handle input locally, and return its value for instead. + + + + + Returns a list of the visible embedded s inside the viewport. + Note: s inside other viewports will not be listed. + + + + + Set/clear individual bits on the rendering layer mask. This simplifies editing this 's layers. + + + + + Returns an individual bit on the rendering layer mask. + + + + + Returns the currently active 2D audio listener. Returns if there are no active 2D audio listeners, in which case the active 2D camera will be treated as listener. + + + + + Returns the currently active 2D camera. Returns if there are no active cameras. + + + + + Returns the first valid for this viewport, searching the property of itself and any Viewport ancestor. + + + + + Returns the currently active 3D audio listener. Returns if there are no active 3D audio listeners, in which case the active 3D camera will be treated as listener. + + + + + Returns the currently active 3D camera. + + + + + Emitted when the size of the viewport is changed, whether by resizing of window, or some other means. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a Control node grabs keyboard focus. + Note: A Control node losing focus doesn't cause this signal to be emitted. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'disable_3d' property. + + + + + Cached name for the 'use_xr' property. + + + + + Cached name for the 'own_world_3d' property. + + + + + Cached name for the 'world_3d' property. + + + + + Cached name for the 'world_2d' property. + + + + + Cached name for the 'transparent_bg' property. + + + + + Cached name for the 'handle_input_locally' property. + + + + + Cached name for the 'snap_2d_transforms_to_pixel' property. + + + + + Cached name for the 'snap_2d_vertices_to_pixel' property. + + + + + Cached name for the 'msaa_2d' property. + + + + + Cached name for the 'msaa_3d' property. + + + + + Cached name for the 'screen_space_aa' property. + + + + + Cached name for the 'use_taa' property. + + + + + Cached name for the 'use_debanding' property. + + + + + Cached name for the 'use_occlusion_culling' property. + + + + + Cached name for the 'mesh_lod_threshold' property. + + + + + Cached name for the 'debug_draw' property. + + + + + Cached name for the 'use_hdr_2d' property. + + + + + Cached name for the 'scaling_3d_mode' property. + + + + + Cached name for the 'scaling_3d_scale' property. + + + + + Cached name for the 'texture_mipmap_bias' property. + + + + + Cached name for the 'anisotropic_filtering_level' property. + + + + + Cached name for the 'fsr_sharpness' property. + + + + + Cached name for the 'vrs_mode' property. + + + + + Cached name for the 'vrs_update_mode' property. + + + + + Cached name for the 'vrs_texture' property. + + + + + Cached name for the 'canvas_item_default_texture_filter' property. + + + + + Cached name for the 'canvas_item_default_texture_repeat' property. + + + + + Cached name for the 'audio_listener_enable_2d' property. + + + + + Cached name for the 'audio_listener_enable_3d' property. + + + + + Cached name for the 'physics_object_picking' property. + + + + + Cached name for the 'physics_object_picking_sort' property. + + + + + Cached name for the 'physics_object_picking_first_only' property. + + + + + Cached name for the 'gui_disable_input' property. + + + + + Cached name for the 'gui_snap_controls_to_pixels' property. + + + + + Cached name for the 'gui_embed_subwindows' property. + + + + + Cached name for the 'sdf_oversize' property. + + + + + Cached name for the 'sdf_scale' property. + + + + + Cached name for the 'positional_shadow_atlas_size' property. + + + + + Cached name for the 'positional_shadow_atlas_16_bits' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_0' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_1' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_2' property. + + + + + Cached name for the 'positional_shadow_atlas_quad_3' property. + + + + + Cached name for the 'canvas_transform' property. + + + + + Cached name for the 'global_canvas_transform' property. + + + + + Cached name for the 'canvas_cull_mask' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_world_2d' method. + + + + + Cached name for the 'get_world_2d' method. + + + + + Cached name for the 'find_world_2d' method. + + + + + Cached name for the 'set_canvas_transform' method. + + + + + Cached name for the 'get_canvas_transform' method. + + + + + Cached name for the 'set_global_canvas_transform' method. + + + + + Cached name for the 'get_global_canvas_transform' method. + + + + + Cached name for the 'get_stretch_transform' method. + + + + + Cached name for the 'get_final_transform' method. + + + + + Cached name for the 'get_screen_transform' method. + + + + + Cached name for the 'get_visible_rect' method. + + + + + Cached name for the 'set_transparent_background' method. + + + + + Cached name for the 'has_transparent_background' method. + + + + + Cached name for the 'set_use_hdr_2d' method. + + + + + Cached name for the 'is_using_hdr_2d' method. + + + + + Cached name for the 'set_msaa_2d' method. + + + + + Cached name for the 'get_msaa_2d' method. + + + + + Cached name for the 'set_msaa_3d' method. + + + + + Cached name for the 'get_msaa_3d' method. + + + + + Cached name for the 'set_screen_space_aa' method. + + + + + Cached name for the 'get_screen_space_aa' method. + + + + + Cached name for the 'set_use_taa' method. + + + + + Cached name for the 'is_using_taa' method. + + + + + Cached name for the 'set_use_debanding' method. + + + + + Cached name for the 'is_using_debanding' method. + + + + + Cached name for the 'set_use_occlusion_culling' method. + + + + + Cached name for the 'is_using_occlusion_culling' method. + + + + + Cached name for the 'set_debug_draw' method. + + + + + Cached name for the 'get_debug_draw' method. + + + + + Cached name for the 'get_render_info' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_physics_object_picking' method. + + + + + Cached name for the 'get_physics_object_picking' method. + + + + + Cached name for the 'set_physics_object_picking_sort' method. + + + + + Cached name for the 'get_physics_object_picking_sort' method. + + + + + Cached name for the 'set_physics_object_picking_first_only' method. + + + + + Cached name for the 'get_physics_object_picking_first_only' method. + + + + + Cached name for the 'get_viewport_rid' method. + + + + + Cached name for the 'push_text_input' method. + + + + + Cached name for the 'push_input' method. + + + + + Cached name for the 'push_unhandled_input' method. + + + + + Cached name for the 'get_mouse_position' method. + + + + + Cached name for the 'warp_mouse' method. + + + + + Cached name for the 'update_mouse_cursor_state' method. + + + + + Cached name for the 'gui_cancel_drag' method. + + + + + Cached name for the 'gui_get_drag_data' method. + + + + + Cached name for the 'gui_is_dragging' method. + + + + + Cached name for the 'gui_is_drag_successful' method. + + + + + Cached name for the 'gui_release_focus' method. + + + + + Cached name for the 'gui_get_focus_owner' method. + + + + + Cached name for the 'gui_get_hovered_control' method. + + + + + Cached name for the 'set_disable_input' method. + + + + + Cached name for the 'is_input_disabled' method. + + + + + Cached name for the 'set_positional_shadow_atlas_size' method. + + + + + Cached name for the 'get_positional_shadow_atlas_size' method. + + + + + Cached name for the 'set_positional_shadow_atlas_16_bits' method. + + + + + Cached name for the 'get_positional_shadow_atlas_16_bits' method. + + + + + Cached name for the 'set_snap_controls_to_pixels' method. + + + + + Cached name for the 'is_snap_controls_to_pixels_enabled' method. + + + + + Cached name for the 'set_snap_2d_transforms_to_pixel' method. + + + + + Cached name for the 'is_snap_2d_transforms_to_pixel_enabled' method. + + + + + Cached name for the 'set_snap_2d_vertices_to_pixel' method. + + + + + Cached name for the 'is_snap_2d_vertices_to_pixel_enabled' method. + + + + + Cached name for the 'set_positional_shadow_atlas_quadrant_subdiv' method. + + + + + Cached name for the 'get_positional_shadow_atlas_quadrant_subdiv' method. + + + + + Cached name for the 'set_input_as_handled' method. + + + + + Cached name for the 'is_input_handled' method. + + + + + Cached name for the 'set_handle_input_locally' method. + + + + + Cached name for the 'is_handling_input_locally' method. + + + + + Cached name for the 'set_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'get_default_canvas_item_texture_filter' method. + + + + + Cached name for the 'set_embedding_subwindows' method. + + + + + Cached name for the 'is_embedding_subwindows' method. + + + + + Cached name for the 'get_embedded_subwindows' method. + + + + + Cached name for the 'set_canvas_cull_mask' method. + + + + + Cached name for the 'get_canvas_cull_mask' method. + + + + + Cached name for the 'set_canvas_cull_mask_bit' method. + + + + + Cached name for the 'get_canvas_cull_mask_bit' method. + + + + + Cached name for the 'set_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'get_default_canvas_item_texture_repeat' method. + + + + + Cached name for the 'set_sdf_oversize' method. + + + + + Cached name for the 'get_sdf_oversize' method. + + + + + Cached name for the 'set_sdf_scale' method. + + + + + Cached name for the 'get_sdf_scale' method. + + + + + Cached name for the 'set_mesh_lod_threshold' method. + + + + + Cached name for the 'get_mesh_lod_threshold' method. + + + + + Cached name for the 'set_as_audio_listener_2d' method. + + + + + Cached name for the 'is_audio_listener_2d' method. + + + + + Cached name for the 'get_audio_listener_2d' method. + + + + + Cached name for the 'get_camera_2d' method. + + + + + Cached name for the 'set_world_3d' method. + + + + + Cached name for the 'get_world_3d' method. + + + + + Cached name for the 'find_world_3d' method. + + + + + Cached name for the 'set_use_own_world_3d' method. + + + + + Cached name for the 'is_using_own_world_3d' method. + + + + + Cached name for the 'get_audio_listener_3d' method. + + + + + Cached name for the 'get_camera_3d' method. + + + + + Cached name for the 'set_as_audio_listener_3d' method. + + + + + Cached name for the 'is_audio_listener_3d' method. + + + + + Cached name for the 'set_disable_3d' method. + + + + + Cached name for the 'is_3d_disabled' method. + + + + + Cached name for the 'set_use_xr' method. + + + + + Cached name for the 'is_using_xr' method. + + + + + Cached name for the 'set_scaling_3d_mode' method. + + + + + Cached name for the 'get_scaling_3d_mode' method. + + + + + Cached name for the 'set_scaling_3d_scale' method. + + + + + Cached name for the 'get_scaling_3d_scale' method. + + + + + Cached name for the 'set_fsr_sharpness' method. + + + + + Cached name for the 'get_fsr_sharpness' method. + + + + + Cached name for the 'set_texture_mipmap_bias' method. + + + + + Cached name for the 'get_texture_mipmap_bias' method. + + + + + Cached name for the 'set_anisotropic_filtering_level' method. + + + + + Cached name for the 'get_anisotropic_filtering_level' method. + + + + + Cached name for the 'set_vrs_mode' method. + + + + + Cached name for the 'get_vrs_mode' method. + + + + + Cached name for the 'set_vrs_update_mode' method. + + + + + Cached name for the 'get_vrs_update_mode' method. + + + + + Cached name for the 'set_vrs_texture' method. + + + + + Cached name for the 'get_vrs_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'size_changed' signal. + + + + + Cached name for the 'gui_focus_changed' signal. + + + + + A provides the content of a as a dynamic . This can be used to combine the rendering of , and nodes. For example, you can use this texture to display a 3D scene inside a , or a 2D overlay in a . + To get a in code, use the method on the target viewport. + Note: A is always local to its scene (see ). If the scene root is not ready, it may return incorrect data (see ). + Note: Instantiating scenes containing a high-resolution may cause noticeable stutter. + Note: When using a with set to , the returned texture will be an HDR image encoded in linear space. This may look darker than normal when displayed directly on screen. To convert to gamma space, you can do the following: + + img.convert(Image.FORMAT_RGBA8) + imb.linear_to_srgb() + + Note: Some nodes such as , , and do not support using directly. To use texture data from a in these nodes, you need to create an by calling on the and passing the result to . This conversion is a slow operation, so it should not be performed every frame. + + + + + The path to the node to display. This is relative to the local scene root (see ), not to the nodes that use this texture. + Note: In the editor, this path is automatically updated when the target viewport or one of its ancestors is renamed or moved. At runtime, this path may not automatically update if the scene root cannot be found. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'viewport_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_viewport_path_in_scene' method. + + + + + Cached name for the 'get_viewport_path_in_scene' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains a rectangular region of 2D space and a target node. The target node will be automatically enabled (via its 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 if you only want to be notified when the region is visible on screen. + Note: uses the render culling code to determine whether it's visible on screen, so it won't function unless is set to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Determines how the target node is enabled. Corresponds to . When the node is disabled, it always uses . + + + + + The path to the target node, relative to the . The target node is cached; it's only assigned when setting this property (if the is inside the scene tree) and every time the enters the scene tree. If the path is empty, no node will be affected. If the path is invalid, an error is also generated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_mode' property. + + + + + Cached name for the 'enable_node_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_mode' method. + + + + + Cached name for the 'get_enable_mode' method. + + + + + Cached name for the 'set_enable_node_path' method. + + + + + Cached name for the 'get_enable_node_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains a box-shaped region of 3D space and a target node. The target node will be automatically enabled (via its 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 if you only want to be notified when the region is visible on screen. + Note: 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 is set to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Corresponds to . + + + + + Determines how the target node is enabled. Corresponds to . When the node is disabled, it always uses . + + + + + The path to the target node, relative to the . The target node is cached; it's only assigned when setting this property (if the is inside the scene tree) and every time the enters the scene tree. If the path is empty, no node will be affected. If the path is invalid, an error is also generated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'enable_mode' property. + + + + + Cached name for the 'enable_node_path' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_enable_mode' method. + + + + + Cached name for the 'get_enable_mode' method. + + + + + Cached name for the 'set_enable_node_path' method. + + + + + Cached name for the 'get_enable_node_path' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, and likewise it will emit a 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 . + Note: uses the render culling code to determine whether it's visible on screen, so it won't function unless is set to . + + + + + The VisibleOnScreenNotifier2D's bounding rectangle. + + + + + If , the bounding rectangle is on the screen. + Note: It takes one frame for the 's visibility to be determined once added to the scene tree, so this method will always return right after it is instantiated, before the draw pass. + + + + + Emitted when the VisibleOnScreenNotifier2D enters the screen. + + + + + Emitted when the VisibleOnScreenNotifier2D exits the screen. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'rect' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_rect' method. + + + + + Cached name for the 'get_rect' method. + + + + + Cached name for the 'is_on_screen' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'screen_entered' signal. + + + + + Cached name for the 'screen_exited' signal. + + + + + represents a box-shaped region of 3D space. When any part of this region becomes visible on screen or in a 's view, it will emit a signal, and likewise it will emit a 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 . + Note: 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 is set to . + + + + + The 's bounding box. + + + + + Returns if the bounding box is on the screen. + Note: It takes one frame for the 's visibility to be assessed once added to the scene tree, so this method will always return right after it is instantiated. + + + + + Emitted when the enters the screen. + + + + + Emitted when the exits the screen. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'aabb' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_aabb' method. + + + + + Cached name for the 'is_on_screen' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'screen_entered' signal. + + + + + Cached name for the 'screen_exited' signal. + + + + + The is used to connect a resource to a visual representation. All visual 3D nodes inherit from the . In general, you should not access the properties directly as they are accessed and managed by the nodes that inherit from . is the node representation of the instance. + + + + + The render layer(s) this is drawn on. + This object will only be visible for s whose cull mask includes any of the render layers this is set to. + For s, this can be used to control which s are affected by a specific light. For , this can be used to control which particles are effected by a specific attractor. For s, this can be used to control which s are affected by a specific decal. + To adjust more easily using a script, use and . + Note: , SDFGI and will always take all layers into account to determine what contributes to global illumination. If this is an issue, set to for meshes and to for lights to exclude them from global illumination. + + + + + The amount by which the depth of this will be adjusted when sorting by depth. Uses the same units as the engine (which are typically meters). Adjusting it to a higher value will make the reliably draw on top of other s that are otherwise positioned at the same spot. To ensure it always draws on top of other objects around it (not positioned at the same spot), set the value to be greater than the distance between this and the other nearby s. + + + + + If , the object is sorted based on the center. The object will be sorted based on the global position otherwise. + The center based sorting is generally more accurate for 3D models. The position based sorting instead allows to better control the drawing order when working with and . + + + + + Sets the resource that is instantiated by this , which changes how the engine handles the under the hood. Equivalent to . + + + + + Returns the RID of the resource associated with this . For example, if the Node is a , this will return the RID of the associated . + + + + + Returns the RID of this instance. This RID is the same as the RID returned by . This RID is needed if you want to call functions directly on this . + + + + + Based on , enables or disables the specified layer in the , given a between 1 and 20. + + + + + Returns whether or not the specified layer of the is enabled, given a between 1 and 20. + + + + + Returns the (also known as the bounding box) for this . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'layers' property. + + + + + Cached name for the 'sorting_offset' property. + + + + + Cached name for the 'sorting_use_aabb_center' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_aabb' method. + + + + + Cached name for the 'set_base' method. + + + + + Cached name for the 'get_base' method. + + + + + Cached name for the 'get_instance' method. + + + + + Cached name for the 'set_layer_mask' method. + + + + + Cached name for the 'get_layer_mask' method. + + + + + Cached name for the 'set_layer_mask_value' method. + + + + + Cached name for the 'get_layer_mask_value' method. + + + + + Cached name for the 'set_sorting_offset' method. + + + + + Cached name for the 'get_sorting_offset' method. + + + + + Cached name for the 'set_sorting_use_aabb_center' method. + + + + + Cached name for the 'is_sorting_use_aabb_center' method. + + + + + Cached name for the 'get_aabb' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class provides a graph-like visual editor for creating a . Although s do not require coding, they share the same logic with script shaders. They use 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. + + + + + Indicates an invalid node. + + + + + Indicates an output node of . + + + + + A vertex shader, operating on vertices. + + + + + A fragment shader, operating on fragments (pixels). + + + + + A shader for light calculations. + + + + + A function for the "start" stage of particle shader. + + + + + A function for the "process" stage of particle shader. + + + + + A function for the "collide" stage (particle collision handler) of particle shader. + + + + + A function for the "start" stage of particle shader, with customized output. + + + + + A function for the "process" stage of particle shader, with customized output. + + + + + A shader for 3D environment's sky. + + + + + A compute shader that runs for each froxel of the volumetric fog map. + + + + + Represents the size of the enum. + + + + + Varying is passed from Vertex function to Fragment and Light functions. + + + + + Varying is passed from Fragment function to Light function. + + + + + Represents the size of the enum. + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type unsigned . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Varying is of type . + + + + + Represents the size of the enum. + + + + + The offset vector of the whole graph. + + + + + Sets the mode of this shader. + + + + + Adds the specified to the shader. + + + + + Returns the shader node instance with specified and . + + + + + Sets the position of the specified node. + + + + + Returns the position of the specified node within the shader graph. + + + + + Returns the list of all nodes in the shader with the specified type. + + + + + Returns next valid node ID that can be added to the shader graph. + + + + + Removes the specified node from the shader. + + + + + Replaces the specified node with a node of new class type. + + + + + Returns if the specified node and port connection exist. + + + + + Returns if the specified nodes and ports can be connected together. + + + + + Connects the specified nodes and ports. + + + + + Connects the specified nodes and ports. + + + + + Connects the specified nodes and ports, even if they can't be connected. Such connection is invalid and will not function properly. + + + + + Returns the list of connected nodes with the specified type. + + + + + Attaches the given node to the given frame. + + + + + Detaches the given node from the frame it is attached to. + + + + + Adds a new varying value node to the shader. + + + + + Removes a varying value node with the given . Prints an error if a node with this name is not found. + + + + + Returns if the shader has a varying with the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'graph_offset' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'get_node' method. + + + + + Cached name for the 'set_node_position' method. + + + + + Cached name for the 'get_node_position' method. + + + + + Cached name for the 'get_node_list' method. + + + + + Cached name for the 'get_valid_node_id' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'replace_node' method. + + + + + Cached name for the 'is_node_connection' method. + + + + + Cached name for the 'can_connect_nodes' method. + + + + + Cached name for the 'connect_nodes' method. + + + + + Cached name for the 'disconnect_nodes' method. + + + + + Cached name for the 'connect_nodes_forced' method. + + + + + Cached name for the 'get_node_connections' method. + + + + + Cached name for the 'set_graph_offset' method. + + + + + Cached name for the 'get_graph_offset' method. + + + + + Cached name for the 'attach_node_to_frame' method. + + + + + Cached name for the 'detach_node_from_frame' method. + + + + + Cached name for the 'add_varying' method. + + + + + Cached name for the 'remove_varying' method. + + + + + Cached name for the 'has_varying' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Floating-point scalar. Translated to float type in shader code. + + + + + Integer scalar. Translated to int type in shader code. + + + + + Unsigned integer scalar. Translated to uint type in shader code. + + + + + 2D vector of floating-point values. Translated to vec2 type in shader code. + + + + + 3D vector of floating-point values. Translated to vec3 type in shader code. + + + + + 4D vector of floating-point values. Translated to vec4 type in shader code. + + + + + Boolean type. Translated to bool type in shader code. + + + + + Transform type. Translated to mat4 type in shader code. + + + + + Sampler type. Translated to reference of sampler uniform in shader code. Can only be used for input ports in non-uniform nodes. + + + + + Represents the size of the enum. + + + + + Sets the output port index which will be showed for preview. If set to -1 no port will be open for preview. + + + + + Represents the index of the frame this node is linked to. If set to -1 the node is not linked to any frame. + + + + + Returns 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. + + + + + Sets the default for the selected input . + + + + + Returns the default value of the input . + + + + + Removes the default value of the input . + + + + + Clears the default input ports value. + + + + + Sets the default input ports values using an of the form [index0, value0, index1, value1, ...]. For example: [0, Vector3(0, 0, 0), 1, Vector3(0, 0, 0)]. + + + + + Returns an containing default values for all of the input ports of the node in the form [index0, value0, index1, value1, ...]. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'output_port_for_preview' property. + + + + + Cached name for the 'default_input_values' property. + + + + + Cached name for the 'expanded_output_ports' property. + + + + + Cached name for the 'linked_parent_graph_frame' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_default_input_port' method. + + + + + Cached name for the 'set_output_port_for_preview' method. + + + + + Cached name for the 'get_output_port_for_preview' method. + + + + + Cached name for the '_set_output_ports_expanded' method. + + + + + Cached name for the '_get_output_ports_expanded' method. + + + + + Cached name for the 'set_input_port_default_value' method. + + + + + Cached name for the 'get_input_port_default_value' method. + + + + + Cached name for the 'remove_input_port_default_value' method. + + + + + Cached name for the 'clear_default_input_values' method. + + + + + Cached name for the 'set_default_input_values' method. + + + + + Cached name for the 'get_default_input_values' method. + + + + + Cached name for the 'set_frame' method. + + + + + Cached name for the 'get_frame' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The output port of this node needs to be connected to Model View Matrix port of . + + + + + Billboarding is disabled and the node does nothing. + + + + + A standard billboarding algorithm is enabled. + + + + + A billboarding algorithm to rotate around Y-axis is enabled. + + + + + A billboarding algorithm designed to use on particles is enabled. + + + + + Represents the size of the enum. + + + + + Controls how the object faces the camera. See . + + + + + If , the shader will keep the scale set for the mesh. Otherwise, the scale is lost when billboarding. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'billboard_type' property. + + + + + Cached name for the 'keep_scale' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_billboard_type' method. + + + + + Cached name for the 'get_billboard_type' method. + + + + + Cached name for the 'set_keep_scale_enabled' method. + + + + + Cached name for the 'is_keep_scale_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Has only one output port and no inputs. + Translated to bool in the shader language. + + + + + A boolean constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform bool in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Constrains a value to lie between min and max values. + + + + + A floating-point scalar. + + + + + An integer scalar. + + + + + An unsigned integer scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Has two output ports representing RGB and alpha channels of . + Translated to vec3 rgb and float alpha in the shader language. + + + + + A constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept a to the input port and transform it according to . + + + + + Converts the color to grayscale using the following formula: + + 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); + + + + + + Converts HSV vector to RGB equivalent. + + + + + Converts RGB vector to HSV equivalent. + + + + + Applies sepia tone effect using the following formula: + + 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); + + + + + + Converts color from linear color space to sRGB color space using the following formula: + + vec3 c = clamp(c, vec3(0.0), vec3(1.0)); + const vec3 a = vec3(0.055f); + return mix((vec3(1.0f) + a) * pow(c.rgb, vec3(1.0f / 2.4f)) - a, 12.92f * c.rgb, lessThan(c.rgb, vec3(0.0031308f))); + + The Compatibility renderer uses a simpler formula: + + vec3 c = input; + return max(vec3(1.055) * pow(c, vec3(0.416666667)) - vec3(0.055), vec3(0.0)); + + + + + + Converts color from sRGB color space to linear color space using the following formula: + + vec3 c = input; + return mix(pow((c.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), c.rgb * (1.0 / 12.92), lessThan(c.rgb, vec3(0.04045))); + + The Compatibility renderer uses a simpler formula: + + vec3 c = input; + return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878); + + + + + + Represents the size of the enum. + + + + + A function to be applied to the input color. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two color inputs. + + + + + Produce a screen effect with the following formula: + + result = vec3(1.0) - (vec3(1.0) - a) * (vec3(1.0) - b); + + + + + + Produce a difference effect with the following formula: + + result = abs(a - b); + + + + + + Produce a darken effect with the following formula: + + result = min(a, b); + + + + + + Produce a lighten effect with the following formula: + + result = max(a, b); + + + + + + Produce an overlay effect with the following formula: + + 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); + } + } + + + + + + Produce a dodge effect with the following formula: + + result = a / (vec3(1.0) - b); + + + + + + Produce a burn effect with the following formula: + + result = vec3(1.0) - (vec3(1.0) - a) / b; + + + + + + Produce a soft light effect with the following formula: + + 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)); + } + } + + + + + + Produce a hard light effect with the following formula: + + 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)); + } + } + + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec4 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node was replaced by and only exists to preserve compatibility. In the editor it behaves exactly like . + + + + + This property only exists to preserve data authored in earlier versions of Godot. It has currently no function. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'description' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_description' method. + + + + + Cached name for the 'get_description' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Compares a and b of by . Returns a boolean scalar. Translates to if instruction in shader code. + + + + + A floating-point scalar. + + + + + An integer scalar. + + + + + An unsigned integer scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + A boolean type. + + + + + A transform (mat4) type. + + + + + Represents the size of the enum. + + + + + Comparison for equality (a == b). + + + + + Comparison for inequality (a != b). + + + + + Comparison for greater than (a > b). Cannot be used if set to or . + + + + + Comparison for greater than or equal (a >= b). Cannot be used if set to or . + + + + + Comparison for less than (a < b). Cannot be used if set to or . + + + + + Comparison for less than or equal (a <= b). Cannot be used if set to or . + + + + + Represents the size of the enum. + + + + + The result will be if all components in the vector satisfy the comparison condition. + + + + + The result will be if any component in the vector satisfies the comparison condition. + + + + + Represents the size of the enum. + + + + + The type to be used in the comparison. See for options. + + + + + A comparison function. See for options. + + + + + Extra condition which is applied if is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'type' property. + + + + + Cached name for the 'function' property. + + + + + Cached name for the 'condition' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_comparison_type' method. + + + + + Cached name for the 'get_comparison_type' method. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached name for the 'set_condition' method. + + + + + Cached name for the 'get_condition' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is an abstract class. See the derived types for descriptions of the possible values. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to texture(cubemap, vec3) in the shader language. Returns a color vector and alpha channel as scalar. + + + + + Use the set via . If this is set to , the samplerCube port is ignored. + + + + + Use the sampler reference passed via the samplerCube port. If this is set to , the texture is ignored. + + + + + Represents the size of the enum. + + + + + No hints are added to the uniform declaration. + + + + + Adds source_color as hint to the uniform declaration for proper sRGB to linear conversion. + + + + + Adds hint_normal as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. + + + + + Represents the size of the enum. + + + + + Defines which source should be used for the sampling. See for options. + + + + + The texture to sample when using as . + + + + + Defines the type of data provided by the source texture. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source' property. + + + + + Cached name for the 'cube_map' property. + + + + + Cached name for the 'texture_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached name for the 'set_cube_map' method. + + + + + Cached name for the 'get_cube_map' method. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform samplerCube in the shader language. The output value can be used as port for . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Comes with a built-in editor for texture's curves. + + + + + The source texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Comes with a built-in editor for texture's curves. + + + + + The source texture. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + By inheriting this class you can create a custom script addon which will be automatically added to the Visual Shader Editor. The 's behavior is defined by overriding the provided virtual methods. + In order for the node to be registered as an editor addon, you must use the @tool annotation and provide a class_name for your custom script. For example: + + @tool + extends VisualShaderNodeCustom + class_name VisualShaderNodeNoise + + + + + + 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 "MyGame/MyFunctions/Noise". + Defining this method is optional. If not overridden, the node will be filed under the "Addons" category. + + + + + 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 """ multiline string construct can be used for convenience). + The and arrays contain the string names of the various input and output variables, as defined by _get_input_* and _get_output_* virtual methods in this class. + The output ports can be assigned values in the shader code. For example, return output_vars[0] + " = " + input_vars[0] + ";". + You can customize the generated code based on the shader (see ) and/or (see ). + Defining this method is required. + + + + + 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 optional. If not overridden, the connection will be created to the first valid port. + + + + + Override this method to define the description of the associated custom node in the Visual Shader Editor's members dialog. + Defining this method is optional. + + + + + 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 """ 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 (see ) and/or (see ). + Defining this method is optional. + + + + + 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 """ 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 (see ). + Defining this method is optional. + + + + + Override this method to define the number of input ports of the associated custom node. + Defining this method is required. If not overridden, the node has no input ports. + + + + + Override this method to define the default value for the specified input port. Prefer use this over . + Defining this method is required. If not overridden, the node has no default values for their input ports. + + + + + 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 input_vars array in . + Defining this method is optional, but recommended. If not overridden, input ports are named as "in" + str(port). + + + + + Override this method to define the returned type of each input port of the associated custom node (see for possible types). + Defining this method is optional, but recommended. If not overridden, input ports will return the type. + + + + + 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 optional, but recommended. If not overridden, the node will be named as "Unnamed". + + + + + Override this method to define the number of output ports of the associated custom node. + Defining this method is required. If not overridden, the node has no output ports. + + + + + 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 output_vars array in . + Defining this method is optional, but recommended. If not overridden, output ports are named as "out" + str(port). + + + + + Override this method to define the returned type of each output port of the associated custom node (see for possible types). + Defining this method is optional, but recommended. If not overridden, output ports will return the type. + + + + + Override this method to define the number of the properties. + Defining this method is optional. + + + + + Override this method to define the default index of the property of the associated custom node. + Defining this method is optional. + + + + + Override this method to define the names of the property of the associated custom node. + Defining this method is optional. + + + + + Override this method to define the options inside the drop-down list property of the associated custom node. + Defining this method is optional. + + + + + 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 optional. If not overridden, no return icon is shown. + + + + + Override this method to prevent the node to be visible in the member dialog for the certain (see ) and/or (see ). + Defining this method is optional. If not overridden, it's . + + + + + Override this method to enable high-end mark in the Visual Shader Editor's members dialog. + Defining this method is optional. If not overridden, it's . + + + + + Returns the selected index of the drop-down list option within a graph. You may use this function to define the specific behavior in the or . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'initialized' property. + + + + + Cached name for the 'properties' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_category' method. + + + + + Cached name for the '_get_code' method. + + + + + Cached name for the '_get_default_input_port' method. + + + + + Cached name for the '_get_description' method. + + + + + Cached name for the '_get_func_code' method. + + + + + Cached name for the '_get_global_code' method. + + + + + Cached name for the '_get_input_port_count' method. + + + + + Cached name for the '_get_input_port_default_value' method. + + + + + Cached name for the '_get_input_port_name' method. + + + + + Cached name for the '_get_input_port_type' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_output_port_count' method. + + + + + Cached name for the '_get_output_port_name' method. + + + + + Cached name for the '_get_output_port_type' method. + + + + + Cached name for the '_get_property_count' method. + + + + + Cached name for the '_get_property_default_index' method. + + + + + Cached name for the '_get_property_name' method. + + + + + Cached name for the '_get_property_options' method. + + + + + Cached name for the '_get_return_icon_type' method. + + + + + Cached name for the '_is_available' method. + + + + + Cached name for the '_is_highend' method. + + + + + Cached name for the '_set_initialized' method. + + + + + Cached name for the '_is_initialized' method. + + + + + Cached name for the '_set_properties' method. + + + + + Cached name for the '_get_properties' method. + + + + + Cached name for the 'get_option_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node is only available in Fragment and Light visual shaders. + + + + + A floating-point scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + Sum of absolute derivative in x and y. + + + + + Derivative in x using local differencing. + + + + + Derivative in y using local differencing. + + + + + Represents the size of the enum. + + + + + 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 dFdx() or dFdy() in text shaders. + + + + + 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 , but may not be suitable when more precision is needed. This is equivalent to using dFdxCoarse() or dFdyCoarse() in text shaders. + + + + + The derivative will be calculated using the current fragment and its immediate neighbors. This tends to be slower than using , but may be necessary when more precision is needed. This is equivalent to using dFdxFine() or dFdyFine() in text shaders. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. See for options. + + + + + A derivative function type. See for options. + + + + + Sets the level of precision to use for the derivative function. See for options. When using the Compatibility renderer, this setting has no effect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached name for the 'function' property. + + + + + Cached name for the 'precision' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached name for the 'set_precision' method. + + + + + Cached name for the 'get_precision' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to determinant(x) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The distance fade effect fades out each pixel based on its distance to another object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to dot(a, b) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Custom Godot Shading Language expression, with a custom number of input and output ports. + The provided code is directly injected into the graph's matching shader function (vertex, fragment, or light), so it cannot be used to declare functions, varyings, uniforms, or global constants. See for such global definitions. + + + + + An expression in Godot Shading Language, which will be injected at the start of the graph's matching shader function (vertex, fragment, or light), and thus cannot be used to declare functions, varyings, uniforms, or global constants. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'expression' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_expression' method. + + + + + Cached name for the 'get_expression' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to faceforward(N, I, Nref) in the shader language. The function has three vector parameters: N, the vector to orient, I, the incident vector, and Nref, the reference vector. If the dot product of I and Nref is smaller than zero the return value is N. Otherwise, -N is returned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to float in the shader language. + + + + + A floating-point constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept a floating-point scalar (x) to the input port and transform it according to . + + + + + Returns the sine of the parameter. Translates to sin(x) in the Godot Shader Language. + + + + + Returns the cosine of the parameter. Translates to cos(x) in the Godot Shader Language. + + + + + Returns the tangent of the parameter. Translates to tan(x) in the Godot Shader Language. + + + + + Returns the arc-sine of the parameter. Translates to asin(x) in the Godot Shader Language. + + + + + Returns the arc-cosine of the parameter. Translates to acos(x) in the Godot Shader Language. + + + + + Returns the arc-tangent of the parameter. Translates to atan(x) in the Godot Shader Language. + + + + + Returns the hyperbolic sine of the parameter. Translates to sinh(x) in the Godot Shader Language. + + + + + Returns the hyperbolic cosine of the parameter. Translates to cosh(x) in the Godot Shader Language. + + + + + Returns the hyperbolic tangent of the parameter. Translates to tanh(x) in the Godot Shader Language. + + + + + Returns the natural logarithm of the parameter. Translates to log(x) in the Godot Shader Language. + + + + + Returns the natural exponentiation of the parameter. Translates to exp(x) in the Godot Shader Language. + + + + + Returns the square root of the parameter. Translates to sqrt(x) in the Godot Shader Language. + + + + + Returns the absolute value of the parameter. Translates to abs(x) in the Godot Shader Language. + + + + + Extracts the sign of the parameter. Translates to sign(x) in the Godot Shader Language. + + + + + Finds the nearest integer less than or equal to the parameter. Translates to floor(x) in the Godot Shader Language. + + + + + Finds the nearest integer to the parameter. Translates to round(x) in the Godot Shader Language. + + + + + Finds the nearest integer that is greater than or equal to the parameter. Translates to ceil(x) in the Godot Shader Language. + + + + + Computes the fractional part of the argument. Translates to fract(x) in the Godot Shader Language. + + + + + Clamps the value between 0.0 and 1.0 using min(max(x, 0.0), 1.0). + + + + + Negates the x using -(x). + + + + + Returns the arc-hyperbolic-cosine of the parameter. Translates to acosh(x) in the Godot Shader Language. + + + + + Returns the arc-hyperbolic-sine of the parameter. Translates to asinh(x) in the Godot Shader Language. + + + + + Returns the arc-hyperbolic-tangent of the parameter. Translates to atanh(x) in the Godot Shader Language. + + + + + Convert a quantity in radians to degrees. Translates to degrees(x) in the Godot Shader Language. + + + + + Returns 2 raised by the power of the parameter. Translates to exp2(x) in the Godot Shader Language. + + + + + Returns the inverse of the square root of the parameter. Translates to inversesqrt(x) in the Godot Shader Language. + + + + + Returns the base 2 logarithm of the parameter. Translates to log2(x) in the Godot Shader Language. + + + + + Convert a quantity in degrees to radians. Translates to radians(x) in the Godot Shader Language. + + + + + Finds reciprocal value of dividing 1 by x (i.e. 1 / x). + + + + + Finds the nearest even integer to the parameter. Translates to roundEven(x) in the Godot Shader Language. + + + + + Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. Translates to trunc(x) in the Godot Shader Language. + + + + + Subtracts scalar x from 1 (i.e. 1 - x). + + + + + Represents the size of the enum. + + + + + A function to be applied to the scalar. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two floating-point inputs: a and b. + + + + + Sums two numbers using a + b. + + + + + Subtracts two numbers using a - b. + + + + + Multiplies two numbers using a * b. + + + + + Divides two numbers using a / b. + + + + + Calculates the remainder of two numbers. Translates to mod(a, b) in the Godot Shader Language. + + + + + Raises the a to the power of b. Translates to pow(a, b) in the Godot Shader Language. + + + + + Returns the greater of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the lesser of two numbers. Translates to min(a, b) in the Godot Shader Language. + + + + + Returns the arc-tangent of the parameters. Translates to atan(a, b) in the Godot Shader Language. + + + + + Generates a step function by comparing b(x) to a(edge). Returns 0.0 if x is smaller than edge and otherwise 1.0. Translates to step(a, b) in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform float in the shader language. + + + + + No hint used. + + + + + A range hint for scalar value, which limits possible input values between and . Translated to hint_range(min, max) in shader code. + + + + + A range hint for scalar value with step, which limits possible input values between and , with a step (increment) of ). Translated to hint_range(min, max, step) in shader code. + + + + + Represents the size of the enum. + + + + + A hint applied to the uniform, which controls the values it can take when set through the Inspector. + + + + + Maximum value for range hints. Used if is set to or . + + + + + Minimum value for range hints. Used if is set to or . + + + + + Step (increment) value for the range hint with step. Used if is set to . + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hint' property. + + + + + Cached name for the 'min' property. + + + + + Cached name for the 'max' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hint' method. + + + + + Cached name for the 'get_hint' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A rectangular frame that can be used to group visual shader nodes together to improve organization. + Nodes attached to the frame will move with it when it is dragged and it can automatically resize to enclose all attached nodes. + Its title, description and color can be customized. + + + + + The title of the node. + + + + + If , the frame will be tinted with the color specified in . + + + + + The color of the frame when is . + + + + + If , the frame will automatically resize to enclose all attached nodes. + + + + + The list of nodes attached to the frame. + + + + + Adds a node to the list of nodes attached to the frame. Should not be called directly, use the method instead. + + + + + Removes a node from the list of nodes attached to the frame. Should not be called directly, use the method instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'tint_color_enabled' property. + + + + + Cached name for the 'tint_color' property. + + + + + Cached name for the 'autoshrink' property. + + + + + Cached name for the 'attached_nodes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'set_tint_color_enabled' method. + + + + + Cached name for the 'is_tint_color_enabled' method. + + + + + Cached name for the 'set_tint_color' method. + + + + + Cached name for the 'get_tint_color' method. + + + + + Cached name for the 'set_autoshrink_enabled' method. + + + + + Cached name for the 'is_autoshrink_enabled' method. + + + + + Cached name for the 'add_attached_node' method. + + + + + Cached name for the 'remove_attached_node' method. + + + + + Cached name for the 'set_attached_nodes' method. + + + + + Cached name for the 'get_attached_nodes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns falloff based on the dot product of surface normal and view direction of camera (pass associated inputs to it). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 s (which are injected in the main shader functions). You can also declare varyings, uniforms and global constants. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Currently, has no direct usage, use the derived classes instead. + + + + + Defines all input ports using a formatted as a colon-separated list: id,type,name; (see ). + + + + + Returns a description of the input ports as a colon-separated list using the format id,type,name; (see ). + + + + + Defines all output ports using a formatted as a colon-separated list: id,type,name; (see ). + + + + + Returns a description of the output ports as a colon-separated list using the format id,type,name; (see ). + + + + + Returns if the specified port name does not override an existed port name and is valid within the shader. + + + + + Adds an input port with the specified (see ) and . + + + + + Removes the specified input port. + + + + + Returns the number of input ports in use. Alternative for . + + + + + Returns if the specified input port exists. + + + + + Removes all previously specified input ports. + + + + + Adds an output port with the specified (see ) and . + + + + + Removes the specified output port. + + + + + Returns the number of output ports in use. Alternative for . + + + + + Returns if the specified output port exists. + + + + + Removes all previously specified output ports. + + + + + Renames the specified input port. + + + + + Sets the specified input port's type (see ). + + + + + Renames the specified output port. + + + + + Sets the specified output port's type (see ). + + + + + Returns a free input port ID which can be used in . + + + + + Returns a free output port ID which can be used in . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_inputs' method. + + + + + Cached name for the 'get_inputs' method. + + + + + Cached name for the 'set_outputs' method. + + + + + Cached name for the 'get_outputs' method. + + + + + Cached name for the 'is_valid_port_name' method. + + + + + Cached name for the 'add_input_port' method. + + + + + Cached name for the 'remove_input_port' method. + + + + + Cached name for the 'get_input_port_count' method. + + + + + Cached name for the 'has_input_port' method. + + + + + Cached name for the 'clear_input_ports' method. + + + + + Cached name for the 'add_output_port' method. + + + + + Cached name for the 'remove_output_port' method. + + + + + Cached name for the 'get_output_port_count' method. + + + + + Cached name for the 'has_output_port' method. + + + + + Cached name for the 'clear_output_ports' method. + + + + + Cached name for the 'set_input_port_name' method. + + + + + Cached name for the 'set_input_port_type' method. + + + + + Cached name for the 'set_output_port_name' method. + + + + + Cached name for the 'set_output_port_type' method. + + + + + Cached name for the 'get_free_input_port_id' method. + + + + + Cached name for the 'get_free_output_port_id' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This visual shader node has six input ports: + - Port 1 and 2 provide the two floating-point numbers a and b that will be compared. + - Port 3 is the tolerance, which allows similar floating-point numbers to be considered equal. + - Ports 4, 5, and 6 are the possible outputs, returned if a == b, a > b, or a < b respectively. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Gives access to input variables (built-ins) available for the shader. See the shading reference for the list of available built-ins for each shader type (check Tutorials section for link). + + + + + One of the several input constants in lower-case style like: "vertex" (VERTEX) or "point_size" (POINT_SIZE). + + + + + Returns a translated name of the current constant in the Godot Shader Language. E.g. "ALBEDO" if the equal to "albedo". + + + + + Emitted when input is changed via . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'input_name' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_input_name' method. + + + + + Cached name for the 'get_input_name' method. + + + + + Cached name for the 'get_input_real_name' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'input_type_changed' signal. + + + + + Translated to int in the shader language. + + + + + An integer constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept an integer scalar (x) to the input port and transform it according to . + + + + + Returns the absolute value of the parameter. Translates to abs(x) in the Godot Shader Language. + + + + + Negates the x using -(x). + + + + + Extracts the sign of the parameter. Translates to sign(x) in the Godot Shader Language. + + + + + Returns the result of bitwise NOT operation on the integer. Translates to ~a in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + A function to be applied to the scalar. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two integer inputs: a and b. + + + + + Sums two numbers using a + b. + + + + + Subtracts two numbers using a - b. + + + + + Multiplies two numbers using a * b. + + + + + Divides two numbers using a / b. + + + + + Calculates the remainder of two numbers using a % b. + + + + + Returns the greater of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the lesser of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the result of bitwise AND operation on the integer. Translates to a & b in the Godot Shader Language. + + + + + Returns the result of bitwise OR operation for two integers. Translates to a | b in the Godot Shader Language. + + + + + Returns the result of bitwise XOR operation for two integers. Translates to a ^ b in the Godot Shader Language. + + + + + Returns the result of bitwise left shift operation on the integer. Translates to a << b in the Godot Shader Language. + + + + + Returns the result of bitwise right shift operation on the integer. Translates to a >> b in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A of type . Offers additional customization for range of accepted values. + + + + + The parameter will not constrain its value. + + + + + The parameter's value must be within the specified / range. + + + + + The parameter's value must be within the specified range, with the given between values. + + + + + The parameter uses an enum to associate preset values to names in the editor. + + + + + Represents the size of the enum. + + + + + Range hint of this node. Use it to customize valid parameter range. + + + + + The minimum value this parameter can take. must be either or for this to take effect. + + + + + The maximum value this parameter can take. must be either or for this to take effect. + + + + + The step between parameter's values. Forces the parameter to be a multiple of the given value. must be for this to take effect. + + + + + The names used for the enum select in the editor. must be for this to take effect. + + + + + If , the node will have a custom default value. + + + + + Default value of this parameter, which will be used if not set externally. must be enabled; defaults to 0 otherwise. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hint' property. + + + + + Cached name for the 'min' property. + + + + + Cached name for the 'max' property. + + + + + Cached name for the 'step' property. + + + + + Cached name for the 'enum_names' property. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hint' method. + + + + + Cached name for the 'get_hint' method. + + + + + Cached name for the 'set_min' method. + + + + + Cached name for the 'get_min' method. + + + + + Cached name for the 'set_max' method. + + + + + Cached name for the 'get_max' method. + + + + + Cached name for the 'set_step' method. + + + + + Cached name for the 'get_step' method. + + + + + Cached name for the 'set_enum_names' method. + + + + + Cached name for the 'get_enum_names' method. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns the boolean result of the comparison between INF or NaN and a scalar parameter. + + + + + Comparison with INF (Infinity). + + + + + Comparison with NaN (Not a Number; indicates invalid numeric results, such as division by zero). + + + + + Represents the size of the enum. + + + + + The comparison function. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node can be used in fragment shaders. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to mix(a, b, weight) in the shader language. + + + + + A floating-point scalar. + + + + + A 2D vector type. + + + + + The a and b ports use a 2D vector type. The weight port uses a scalar type. + + + + + A 3D vector type. + + + + + The a and b ports use a 3D vector type. The weight port uses a scalar type. + + + + + A 4D vector type. + + + + + The a and b ports use a 4D vector type. The weight port uses a scalar type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Uses three operands to compute (a * b + c) expression. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + OuterProduct treats the first parameter c as a column vector (matrix with one column) and the second parameter r as a row vector (matrix with one row) and does a linear algebraic matrix multiply c * r, yielding a matrix whose number of rows is the number of components in c and whose number of columns is the number of components in r. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This visual shader node is present in all shader graphs in form of "Output" block with multiple output value ports. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A parameter represents a variable in the shader which is set externally, i.e. from the . Parameters are exposed as properties in the and can be assigned from the Inspector or from a script. + + + + + The parameter will be tied to the using this shader. + + + + + The parameter will use a global value, defined in Project Settings. + + + + + The parameter will be tied to the node with attached using this shader. + + + + + Represents the size of the enum. + + + + + Name of the parameter, by which it can be accessed through the properties. + + + + + Defines the scope of the parameter. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'parameter_name' property. + + + + + Cached name for the 'qualifier' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_parameter_name' method. + + + + + Cached name for the 'get_parameter_name' method. + + + + + Cached name for the 'set_qualifier' method. + + + + + Cached name for the 'get_qualifier' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Creating a reference to a allows you to reuse this parameter in different shaders or shader stages easily. + + + + + The name of the parameter which this reference points to. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'parameter_name' property. + + + + + Cached name for the 'param_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_parameter_name' method. + + + + + Cached name for the 'get_parameter_name' method. + + + + + Cached name for the '_set_parameter_type' method. + + + + + Cached name for the '_get_parameter_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Particle accelerator can be used in "process" step of particle shader. It will accelerate the particles. Connect it to the Velocity output port. + + + + + The particles will be accelerated based on their velocity. + + + + + The particles will be accelerated towards or away from the center. + + + + + The particles will be accelerated tangentially to the radius vector from center to their position. + + + + + Represents the size of the enum. + + + + + Defines in what manner the particles will be accelerated. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in box shape with the specified extents. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node internally calls emit_subparticle shader method. It will emit a particle from the configured sub-emitter and also allows to customize how its emitted. Requires a sub-emitter assigned to the particles node with this shader. + + + + + If enabled, the particle starts with the position defined by this node. + + + + + If enabled, the particle starts with the rotation and scale defined by this node. + + + + + If enabled,the particle starts with the velocity defined by this node. + + + + + If enabled, the particle starts with the color defined by this node. + + + + + If enabled, the particle starts with the CUSTOM data defined by this node. + + + + + Flags used to override the properties defined in the sub-emitter's process material. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'flags' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_flags' method. + + + + + Cached name for the 'get_flags' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + If , the result of this emitter is projected to 2D space. By default it is and meant for use in 3D space. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode_2d' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mode_2d' method. + + + + + Cached name for the 'is_mode_2d' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in a shape of the assigned . It will emit from the mesh's surfaces, either all or only the specified one. + + + + + The that defines emission shape. + + + + + If , the particles will emit from all surfaces of the mesh. + + + + + Index of the surface that emits particles. must be for this to take effect. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mesh' property. + + + + + Cached name for the 'use_all_surfaces' property. + + + + + Cached name for the 'surface_index' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_mesh' method. + + + + + Cached name for the 'get_mesh' method. + + + + + Cached name for the 'set_use_all_surfaces' method. + + + + + Cached name for the 'is_use_all_surfaces' method. + + + + + Cached name for the 'set_surface_index' method. + + + + + Cached name for the 'get_surface_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node helps to multiply a position input vector by rotation using specific axis. Intended to work with emitters. + + + + + If , the angle will be interpreted in degrees instead of radians. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'degrees_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_degrees_mode' method. + + + + + Cached name for the 'is_degrees_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Randomness node will output pseudo-random values of the given type based on the specified minimum and maximum values. + + + + + A floating-point scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in ring shape with the specified inner and outer radii and height. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + that makes the particles emitted in sphere shape with the specified inner and outer radii. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The proximity fade effect fades out each pixel based on its distance to another object. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Remap will transform the input range into output range, e.g. you can change a 0..1 value to -2..2 etc. See @GlobalScope.remap for more details. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + The value port uses a 2D vector type, while the input min, input max, output min, and output max ports use a floating-point scalar type. + + + + + A 3D vector type. + + + + + The value port uses a 3D vector type, while the input min, input max, output min, and output max ports use a floating-point scalar type. + + + + + A 4D vector type. + + + + + The value port uses a 4D vector type, while the input min, input max, output min, and output max ports use a floating-point scalar type. + + + + + Represents the size of the enum. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Automatically adapts its port type to the type of the incoming connection and ensures valid connections. + + + + + Returns the port type of the reroute node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'port_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_port_type' method. + + + + + Cached name for the 'get_port_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resizable nodes have a handle that allows the user to adjust their size as needed. + + + + + The size of the node in the visual shader graph. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'size' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Casts a ray against the screen SDF (signed-distance field) and returns the distance travelled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to sdf_to_screen_uv(sdf_pos) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A virtual class, use the descendants instead. + + + + + Creates internal uniform and provides a way to assign it within node. + + + + + Use the uniform texture from sampler port. + + + + + Represents the size of the enum. + + + + + An input source type. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The ScreenNormalWorldSpace node allows to create outline effects. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to screen_uv_to_sdf(uv) in the shader language. If the UV port isn't connected, SCREEN_UV is used instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to smoothstep(edge0, edge1, x) in the shader language. + Returns 0.0 if x is smaller than edge0 and 1.0 if x is larger than edge1. Otherwise, the return value is interpolated between 0.0 and 1.0 using Hermite polynomials. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + The x port uses a 2D vector type. The first two ports use a floating-point scalar type. + + + + + A 3D vector type. + + + + + The x port uses a 3D vector type. The first two ports use a floating-point scalar type. + + + + + A 4D vector type. + + + + + The a and b ports use a 4D vector type. The weight port uses a scalar type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to step(edge, x) in the shader language. + Returns 0.0 if x is smaller than edge and 1.0 otherwise. + + + + + A floating-point scalar type. + + + + + A 2D vector type. + + + + + The x port uses a 2D vector type, while the edge port uses a floating-point scalar type. + + + + + A 3D vector type. + + + + + The x port uses a 3D vector type, while the edge port uses a floating-point scalar type. + + + + + A 4D vector type. + + + + + The a and b ports use a 4D vector type. The weight port uses a scalar type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Returns an associated value of the type if the provided boolean value is or . + + + + + A floating-point scalar. + + + + + An integer scalar. + + + + + An unsigned integer scalar. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + A boolean type. + + + + + A transform type. + + + + + Represents the size of the enum. + + + + + A type of operands and returned value. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from. + + + + + Use the texture given as an argument for this function. + + + + + Use the current viewport's texture as the source. + + + + + Use the texture from this shader's texture built-in (e.g. a texture of a ). + + + + + Use the texture from this shader's normal map built-in. + + + + + 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). + + + + + Use the texture provided in the input port for this function. + + + + + 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). + + + + + 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). + + + + + Represents the size of the enum. + + + + + No hints are added to the uniform declaration. + + + + + Adds source_color as hint to the uniform declaration for proper sRGB to linear conversion. + + + + + Adds hint_normal as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. + + + + + Represents the size of the enum. + + + + + Determines the source for the lookup. See for options. + + + + + The source texture, if needed for the selected . + + + + + Specifies the type of the texture if is set to . See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'source' property. + + + + + Cached name for the 'texture' property. + + + + + Cached name for the 'texture_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_source' method. + + + + + Cached name for the 'get_source' method. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform sampler2DArray in the shader language. + + + + + A source texture array. Used if is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_array' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_array' method. + + + + + Cached name for the 'get_texture_array' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This parameter allows to provide a collection of textures for the shader. You can use to extract the textures from array. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform sampler2D in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the provided texture, with support for multiple texture sources to choose from. + + + + + A source texture. Used if is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture' method. + + + + + Cached name for the 'get_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform sampler3D in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the texture provided as a uniform for the shader. + + + + + No hints are added to the uniform declaration. + + + + + Adds source_color as hint to the uniform declaration for proper sRGB to linear conversion. + + + + + Adds hint_normal as hint to the uniform declaration, which internally converts the texture for proper usage as normal map. + + + + + Adds hint_anisotropy as hint to the uniform declaration to use for a flowmap. + + + + + Represents the size of the enum. + + + + + Defaults to fully opaque white color. + + + + + Defaults to fully opaque black color. + + + + + Defaults to fully transparent black color. + + + + + Represents the size of the enum. + + + + + Sample the texture using the filter determined by the node this shader is attached to. + + + + + 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). + + + + + 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). + + + + + The texture filter reads from the nearest pixel and blends between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter blends between the nearest 4 pixels and between the nearest 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ). 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 zoom or sprite scaling), as mipmaps are important to smooth out pixels that are smaller than on-screen pixels. + + + + + The texture filter reads from the nearest pixel and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + The texture filter blends between the nearest 4 pixels and blends between 2 mipmaps (or uses the nearest mipmap if ProjectSettings.rendering/textures/default_filters/use_nearest_mipmap_filter is ) 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 ProjectSettings.rendering/textures/default_filters/anisotropic_filtering_level. + Note: This texture filter is rarely useful in 2D projects. is usually more appropriate in this case. + + + + + Represents the size of the enum. + + + + + Sample the texture using the repeat mode determined by the node this shader is attached to. + + + + + Texture will repeat normally. + + + + + Texture will not repeat. + + + + + Represents the size of the enum. + + + + + The texture source is not specified in the shader. + + + + + The texture source is the screen texture which captures all opaque objects drawn this frame. + + + + + The texture source is the depth texture from the depth prepass. + + + + + The texture source is the normal-roughness buffer from the depth prepass. + + + + + Represents the size of the enum. + + + + + Defines the type of data provided by the source texture. See for options. + + + + + Sets the default color if no texture is assigned to the uniform. + + + + + Sets the texture filtering mode. See for options. + + + + + Sets the texture repeating mode. See for options. + + + + + Sets the texture source mode. Used for reading from the screen, depth, or normal_roughness texture. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'texture_type' property. + + + + + Cached name for the 'color_default' property. + + + + + Cached name for the 'texture_filter' property. + + + + + Cached name for the 'texture_repeat' property. + + + + + Cached name for the 'texture_source' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_texture_type' method. + + + + + Cached name for the 'get_texture_type' method. + + + + + Cached name for the 'set_color_default' method. + + + + + Cached name for the 'get_color_default' method. + + + + + Cached name for the 'set_texture_filter' method. + + + + + Cached name for the 'get_texture_filter' method. + + + + + Cached name for the 'set_texture_repeat' method. + + + + + Cached name for the 'get_texture_repeat' method. + + + + + Cached name for the 'set_texture_source' method. + + + + + Cached name for the 'get_texture_source' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Performs a lookup operation on the texture provided as a uniform for the shader, with support for triplanar mapping. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to texture_sdf(sdf_pos) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translates to texture_sdf_normal(sdf_pos) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Creates a 4×4 transform matrix using four vectors of type vec3. Each vector is one row in the matrix and the last column is a vec4(0, 0, 0, 1). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant , which can be used as an input node. + + + + + A constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Takes a 4×4 transform matrix and decomposes it into four vec3 values, one from each row of the matrix. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Computes an inverse or transpose function on the provided . + + + + + Perform the inverse operation on the matrix. + + + + + Perform the transpose operation on the matrix. + + + + + Represents the size of the enum. + + + + + The function to be computed. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two transform (4×4 matrices) inputs. + + + + + Multiplies transform a by the transform b. + + + + + Multiplies transform b by the transform a. + + + + + Performs a component-wise multiplication of transform a by the transform b. + + + + + Performs a component-wise multiplication of transform b by the transform a. + + + + + Adds two transforms. + + + + + Subtracts the transform a from the transform b. + + + + + Subtracts the transform b from the transform a. + + + + + Divides the transform a by the transform b. + + + + + Divides the transform b by the transform a. + + + + + Represents the size of the enum. + + + + + The type of the operation to be performed on the transforms. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform mat4 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A multiplication operation on a transform (4×4 matrix) and a vector, with support for different multiplication operators. + + + + + Multiplies transform a by the vector b. + + + + + Multiplies vector b by the transform a. + + + + + Multiplies transform a by the vector b, skipping the last row and column of the transform. + + + + + Multiplies vector b by the transform a, skipping the last row and column of the transform. + + + + + Represents the size of the enum. + + + + + The multiplication type to be performed. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uint in the shader language. + + + + + An unsigned integer constant which represents a state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Accept an unsigned integer scalar (x) to the input port and transform it according to . + + + + + Negates the x using -(x). + + + + + Returns the result of bitwise NOT operation on the integer. Translates to ~a in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + A function to be applied to the scalar. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Applies to two unsigned integer inputs: a and b. + + + + + Sums two numbers using a + b. + + + + + Subtracts two numbers using a - b. + + + + + Multiplies two numbers using a * b. + + + + + Divides two numbers using a / b. + + + + + Calculates the remainder of two numbers using a % b. + + + + + Returns the greater of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the lesser of two numbers. Translates to max(a, b) in the Godot Shader Language. + + + + + Returns the result of bitwise AND operation on the integer. Translates to a & b in the Godot Shader Language. + + + + + Returns the result of bitwise OR operation for two integers. Translates to a | b in the Godot Shader Language. + + + + + Returns the result of bitwise XOR operation for two integers. Translates to a ^ b in the Godot Shader Language. + + + + + Returns the result of bitwise left shift operation on the integer. Translates to a << b in the Godot Shader Language. + + + + + Returns the result of bitwise right shift operation on the integer. Translates to a >> b in the Godot Shader Language. + + + + + Represents the size of the enum. + + + + + An operator to be applied to the inputs. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A of type unsigned . Offers additional customization for range of accepted values. + + + + + If , the node will have a custom default value. + + + + + Default value of this parameter, which will be used if not set externally. must be enabled; defaults to 0 otherwise. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + UV functions are similar to functions, but the input port of this node uses the shader's UV value by default. + + + + + Translates uv by using scale and offset values using the following formula: uv = uv + offset * scale. uv port is connected to UV built-in by default. + + + + + Scales uv by using scale and pivot values using the following formula: uv = (uv - pivot) * scale + pivot. uv port is connected to UV built-in by default. + + + + + Represents the size of the enum. + + + + + A function to be applied to the texture coordinates. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Varying values are shader variables that can be passed between shader functions, e.g. from Vertex shader to Fragment shader. + + + + + Name of the variable. Must be unique. + + + + + Type of the variable. Determines where the variable can be accessed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'varying_name' property. + + + + + Cached name for the 'varying_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_varying_name' method. + + + + + Cached name for the 'get_varying_name' method. + + + + + Cached name for the 'set_varying_type' method. + + + + + Cached name for the 'get_varying_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant , which can be used as an input node. + + + + + A constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec2 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant , which can be used as an input node. + + + + + A constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec3 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A constant 4D vector, which can be used as an input node. + + + + + A 4D vector (represented as a ) constant which represents the state of this node. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'constant' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_constant' method. + + + + + Cached name for the 'get_constant' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to uniform vec4 in the shader language. + + + + + Enables usage of the . + + + + + A default value to be assigned within the shader. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'default_value_enabled' property. + + + + + Cached name for the 'default_value' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_value_enabled' method. + + + + + Cached name for the 'is_default_value_enabled' method. + + + + + Cached name for the 'set_default_value' method. + + + + + Cached name for the 'get_default_value' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is an abstract class. See the derived types for descriptions of the possible operations. + + + + + A 2D vector type. + + + + + A 3D vector type. + + + + + A 4D vector type. + + + + + Represents the size of the enum. + + + + + A vector type that this operation is performed on. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'op_type' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_op_type' method. + + + + + Cached name for the 'get_op_type' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Creates a vec2, vec3 or vec4 using scalar values that can be provided from separate inputs. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Takes a vec2, vec3 or vec4 and decomposes it into scalar values that can be used as separate outputs. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Calculates distance from point represented by vector p0 to vector p1. + Translated to distance(p0, p1) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A visual shader node able to perform different functions using vectors. + + + + + Normalizes the vector so that it has a length of 1 but points in the same direction. + + + + + Clamps the value between 0.0 and 1.0. + + + + + Returns the opposite value of the parameter. + + + + + Returns 1/vector. + + + + + Returns the absolute value of the parameter. + + + + + Returns the arc-cosine of the parameter. + + + + + Returns the inverse hyperbolic cosine of the parameter. + + + + + Returns the arc-sine of the parameter. + + + + + Returns the inverse hyperbolic sine of the parameter. + + + + + Returns the arc-tangent of the parameter. + + + + + Returns the inverse hyperbolic tangent of the parameter. + + + + + Finds the nearest integer that is greater than or equal to the parameter. + + + + + Returns the cosine of the parameter. + + + + + Returns the hyperbolic cosine of the parameter. + + + + + Converts a quantity in radians to degrees. + + + + + Base-e Exponential. + + + + + Base-2 Exponential. + + + + + Finds the nearest integer less than or equal to the parameter. + + + + + Computes the fractional part of the argument. + + + + + Returns the inverse of the square root of the parameter. + + + + + Natural logarithm. + + + + + Base-2 logarithm. + + + + + Converts a quantity in degrees to radians. + + + + + Finds the nearest integer to the parameter. + + + + + Finds the nearest even integer to the parameter. + + + + + Extracts the sign of the parameter, i.e. returns -1 if the parameter is negative, 1 if it's positive and 0 otherwise. + + + + + Returns the sine of the parameter. + + + + + Returns the hyperbolic sine of the parameter. + + + + + Returns the square root of the parameter. + + + + + Returns the tangent of the parameter. + + + + + Returns the hyperbolic tangent of the parameter. + + + + + Returns a value equal to the nearest integer to the parameter whose absolute value is not larger than the absolute value of the parameter. + + + + + Returns 1.0 - vector. + + + + + Represents the size of the enum. + + + + + The function to be performed. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'function' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_function' method. + + + + + Cached name for the 'get_function' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to length(p0) in the shader language. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A visual shader node for use of vector operators. Operates on vector a and vector b. + + + + + Adds two vectors. + + + + + Subtracts a vector from a vector. + + + + + Multiplies two vectors. + + + + + Divides vector by vector. + + + + + Returns the remainder of the two vectors. + + + + + Returns the value of the first parameter raised to the power of the second, for each component of the vectors. + + + + + Returns the greater of two values, for each component of the vectors. + + + + + Returns the lesser of two values, for each component of the vectors. + + + + + Calculates the cross product of two vectors. + + + + + Returns the arc-tangent of the parameters. + + + + + Returns the vector that points in the direction of reflection. a is incident vector and b is the normal vector. + + + + + Vector step operator. Returns 0.0 if a is smaller than b and 1.0 otherwise. + + + + + Represents the size of the enum. + + + + + The operator to be used. See for options. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'operator' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_operator' method. + + + + + Cached name for the 'get_operator' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Translated to refract(I, N, eta) in the shader language, where I is the incident vector, N is the normal vector and eta is the ratio of the indices of the refraction. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. 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. + Note: is only supported in the Forward+ rendering method, not Mobile or Compatibility. + Procedural generation: 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 ). + Performance: is relatively demanding on the GPU and is not suited to low-end hardware such as integrated graphics (consider instead). To improve performance, adjust ProjectSettings.rendering/global_illumination/voxel_gi/quality and enable 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 in your project's options menus. A node can be disabled by hiding it. + Note: Meshes should have sufficiently thick walls to avoid light leaks (avoid one-sided walls). For interior levels, enclose your level geometry in a sufficiently large box and bridge the loops to close the mesh. To further prevent light leaks, you can also strategically place temporary nodes with their set to . These temporary nodes can then be hidden after baking the node. + + + + + 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. + + + + + Use 128 subdivisions. This is the default quality setting. + + + + + Use 256 subdivisions. + + + + + Use 512 subdivisions. This is the highest quality setting, but the slowest. On lower-end hardware, this could cause the GPU to stall. + + + + + Represents the size of the enum. + + + + + Number of times to subdivide the grid that the operates on. A higher number results in finer detail and thus higher visual quality, while lower numbers result in better performance. + + + + + The size of the area covered by the . If you make the size larger without increasing the subdivisions with , the size of each cell will increase and result in lower detailed lighting. + Note: Size is clamped to 1.0 unit or more on each axis. + + + + + The resource that specifies exposure levels to bake at. Auto-exposure and non exposure properties will be ignored. Exposure settings should be used to reduce the dynamic range present when baking. If exposure is too high, the will have banding artifacts or may have over-exposure artifacts. + + + + + The resource that holds the data for this . + + + + + Bakes the effect from all s marked with and s marked with either or . If is , after baking the light, this will generate a that has a cube representing each solid cell with each cube colored to the cell's albedo color. This can be used to visualize the 's data and debug any issues that may be occurring. + Note: works from the editor and in exported projects. This makes it suitable for procedurally generated or user-built levels. Baking a node generally takes from 5 to 20 seconds in most scenes. Reducing can speed up baking. + Note: s and s must be fully ready before is called. If you are procedurally creating those and some meshes or lights are missing from your baked , use call_deferred("bake") instead of calling directly. + + + + + Calls with create_visual_debug enabled. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'subdiv' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'data' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_probe_data' method. + + + + + Cached name for the 'get_probe_data' method. + + + + + Cached name for the 'set_subdiv' method. + + + + + Cached name for the 'get_subdiv' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached name for the 'bake' method. + + + + + Cached name for the 'debug_bake' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + contains baked voxel global illumination for use in a node. 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 node again. + Note: To prevent text-based scene files (.tscn) from growing too much and becoming slow to load and save, always save to an external binary resource file (.res) instead of embedding it within the scene. This can be done by clicking the dropdown arrow next to the resource, choosing Edit, clicking the floppy disk icon at the top of the Inspector then choosing Save As.... + + + + + The dynamic range to use (1.0 represents a low dynamic range scene brightness). Higher values can be used to provide brighter indirect lighting, at the cost of more visible color banding in dark areas (both in indirect lighting and reflections). To avoid color banding, it's recommended to use the lowest value that does not result in visible light clipping. + + + + + The energy of the indirect lighting and reflections produced by the node. Higher values result in brighter indirect lighting. If indirect lighting looks too flat, try decreasing while increasing at the same time. See also which influences the indirect lighting's effective brightness. + + + + + The normal bias to use for indirect lighting and reflections. Higher values reduce self-reflections visible in non-rough materials, at the cost of more visible light leaking and flatter-looking indirect lighting. To prioritize hiding self-reflections over lighting quality, set to 0.0 and to a value between 1.0 and 2.0. + + + + + The normal bias to use for indirect lighting and reflections. Higher values reduce self-reflections visible in non-rough materials, at the cost of more visible light leaking and flatter-looking indirect lighting. See also . To prioritize hiding self-reflections over lighting quality, set to 0.0 and to a value between 1.0 and 2.0. + + + + + The multiplier to use when light bounces off a surface. Higher values result in brighter indirect lighting. If indirect lighting looks too flat, try decreasing while increasing at the same time. See also which influences the indirect lighting's effective brightness. + + + + + If , performs two bounces of indirect lighting instead of one. This makes indirect lighting look more natural and brighter at a small performance cost. The second bounce is also visible in reflections. If the scene appears too bright after enabling , adjust and . + + + + + If , lighting is ignored by the node. If , lighting is taken into account by the node. lighting updates in real-time, which means it can be changed without having to bake the node again. + + + + + Returns the bounds of the baked voxel data as an , which should match after being baked (which only contains the size as a ). + Note: If the size was modified without baking the VoxelGI data, then the value of and will not match. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the '_data' property. + + + + + Cached name for the 'dynamic_range' property. + + + + + Cached name for the 'energy' property. + + + + + Cached name for the 'bias' property. + + + + + Cached name for the 'normal_bias' property. + + + + + Cached name for the 'propagation' property. + + + + + Cached name for the 'use_two_bounces' property. + + + + + Cached name for the 'interior' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'allocate' method. + + + + + Cached name for the 'get_bounds' method. + + + + + Cached name for the 'get_octree_size' method. + + + + + Cached name for the 'get_to_cell_xform' method. + + + + + Cached name for the 'get_octree_cells' method. + + + + + Cached name for the 'get_data_cells' method. + + + + + Cached name for the 'get_level_counts' method. + + + + + Cached name for the 'set_dynamic_range' method. + + + + + Cached name for the 'get_dynamic_range' method. + + + + + Cached name for the 'set_energy' method. + + + + + Cached name for the 'get_energy' method. + + + + + Cached name for the 'set_bias' method. + + + + + Cached name for the 'get_bias' method. + + + + + Cached name for the 'set_normal_bias' method. + + + + + Cached name for the 'get_normal_bias' method. + + + + + Cached name for the 'set_propagation' method. + + + + + Cached name for the 'get_propagation' method. + + + + + Cached name for the 'set_interior' method. + + + + + Cached name for the 'is_interior' method. + + + + + Cached name for the 'set_use_two_bounces' method. + + + + + Cached name for the 'is_using_two_bounces' method. + + + + + Cached name for the '_set_data' method. + + + + + Cached name for the '_get_data' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A weakref can hold a without contributing to the reference counter. A weakref can be created from an using @GlobalScope.weakref. If this object is not a reference, weakref still works, however, it does not have any effect on the object. Weakrefs are useful in cases where multiple classes have variables that refer to each other. Without weakrefs, using these classes could lead to memory leaks, since both references keep each other from being released. Making part of the variables a weakref can prevent this cyclic dependency, and allows the references to be released. + + + + + Returns the this weakref is referring to. Returns if that object no longer exists. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_ref' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Tells the channel to send data over this channel as text. An external peer (non-Godot) would receive this as a string. + + + + + Tells the channel to send data over this channel as binary. An external peer (non-Godot) would receive this as array buffer or blob. + + + + + The channel was created, but it's still trying to connect. + + + + + The channel is currently open, and data can flow over it. + + + + + The channel is being closed, no new messages will be accepted, but those already in queue will be flushed. + + + + + The channel was closed, or connection failed. + + + + + The transfer mode to use when sending outgoing packet. Either text or binary. + + + + + Reserved, but not used for now. + + + + + Closes this data channel, notifying the other peer. + + + + + Returns if the last received packet was transferred as text. See . + + + + + Returns the current state of this channel, see . + + + + + Returns the label assigned to this channel during creation. + + + + + Returns if this channel was created with ordering enabled (default). + + + + + Returns the ID assigned to this channel during creation (or auto-assigned during negotiation). + If the channel is not negotiated out-of-band the ID will only be available after the connection is established (will return 65535 until then). + + + + + Returns the maxPacketLifeTime value assigned to this channel during creation. + Will be 65535 if not specified. + + + + + Returns the maxRetransmits value assigned to this channel during creation. + Will be 65535 if not specified. + + + + + Returns the sub-protocol assigned to this channel during creation. An empty string if not specified. + + + + + Returns if this channel was created with out-of-band configuration. + + + + + Returns the number of bytes currently queued to be sent over this channel. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'write_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'was_string_packet' method. + + + + + Cached name for the 'set_write_mode' method. + + + + + Cached name for the 'get_write_mode' method. + + + + + Cached name for the 'get_ready_state' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'is_ordered' method. + + + + + Cached name for the 'get_id' method. + + + + + Cached name for the 'get_max_packet_life_time' method. + + + + + Cached name for the 'get_max_retransmits' method. + + + + + Cached name for the 'get_protocol' method. + + + + + Cached name for the 'is_negotiated' method. + + + + + Cached name for the 'get_buffered_amount' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_close' method. + + + + + Cached name for the '_get_available_packet_count' method. + + + + + Cached name for the '_get_buffered_amount' method. + + + + + Cached name for the '_get_id' method. + + + + + Cached name for the '_get_label' method. + + + + + Cached name for the '_get_max_packet_life_time' method. + + + + + Cached name for the '_get_max_packet_size' method. + + + + + Cached name for the '_get_max_retransmits' method. + + + + + Cached name for the '_get_protocol' method. + + + + + Cached name for the '_get_ready_state' method. + + + + + Cached name for the '_get_write_mode' method. + + + + + Cached name for the '_is_negotiated' method. + + + + + Cached name for the '_is_ordered' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_set_write_mode' method. + + + + + Cached name for the '_was_string_packet' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class constructs a full mesh of (one connection for each peer) that can be used as a . + You can add each via or remove them via . Peers must be added in 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 or the method will return enabling peer exchange and packet relaying when supported by the implementation. + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + Initialize the multiplayer peer as a server (with unique ID of 1). This mode enables , allowing the upper layer to perform peer exchange and packet relaying. + You can optionally specify a array of which will be used to create extra channels (WebRTC only supports one transfer mode per channel). + + + + + Initialize the multiplayer peer as a client with the given (must be between 2 and 2147483647). In this mode, you should only call once and with of 1. This mode enables , allowing the upper layer to perform peer exchange and packet relaying. + You can optionally specify a array of which will be used to create extra channels (WebRTC only supports one transfer mode per channel). + + + + + Initialize the multiplayer peer as a mesh (i.e. all peers connect to each other) with the given (must be between 1 and 2147483647). + + + + + Add a new peer to the mesh with the given . The must be in state . + Three channels will be created for reliable, unreliable, and ordered transport. The value of will be passed to the "maxPacketLifetime" option when creating unreliable and ordered channels (see ). + + + + + Remove the peer with given from the mesh. If the peer was connected, and was emitted for it, then will be emitted. + + + + + Returns if the given is in the peers map (it might not be connected though). + + + + + Returns a dictionary representation of the peer with given with three keys. "connection" containing the to this peer, "channels" an array of three , and "connected" a boolean representing if the peer connection is currently connected (all three channels are open). + + + + + Returns a dictionary which keys are the peer ids and values the peer representation as in . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_server' method. + + + + + Cached name for the 'create_client' method. + + + + + Cached name for the 'create_mesh' method. + + + + + Cached name for the 'add_peer' method. + + + + + Cached name for the 'remove_peer' method. + + + + + Cached name for the 'has_peer' method. + + + + + Cached name for the 'get_peer' method. + + + + + Cached name for the 'get_peers' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A WebRTC connection between the local computer and a remote peer. Provides an interface to connect, maintain and monitor the connection. + Setting up a WebRTC connection between two peers may not seem a trivial task, but it can be broken down into 3 main steps: + - The peer that wants to initiate the connection (A from now on) creates an offer and send it to the other peer (B from now on). + - B receives the offer, generate and answer, and sends it to A). + - A and B 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. + + + + + The connection is new, data channels and an offer can be created in this state. + + + + + The peer is connecting, ICE is in progress, none of the transports has failed. + + + + + The peer is connected, all ICE transports are connected. + + + + + At least one ICE transport is disconnected. + + + + + One or more of the ICE transports failed. + + + + + The peer connection is closed (after calling for example). + + + + + The peer connection was just created and hasn't done any networking yet. + + + + + The ICE agent is in the process of gathering candidates for the connection. + + + + + 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. + + + + + There is no ongoing exchange of offer and answer underway. This may mean that the is new () or that negotiation is complete and a connection has been established (). + + + + + The local peer has called , passing in SDP representing an offer (usually created by calling ), and the offer has been applied successfully. + + + + + 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 . + + + + + The offer sent by the remote peer has been applied and an answer has been created and applied by calling . 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. + + + + + A provisional answer has been received and successfully applied in response to an offer previously sent and established by calling . + + + + + The has been closed. + + + + + Sets the as the default returned when creating a new . + + + + + Re-initialize this peer connection, closing any previously active connection, and going back to state . A dictionary of options can be passed to configure the peer connection. + Valid options are: + + { + "iceServers": [ + { + "urls": [ "stun:stun.example.com:3478" ], # One or more STUN servers. + }, + { + "urls": [ "turn:turn.example.com:3478" ], # One or more TURN servers. + "username": "a_username", # Optional username for the TURN server. + "credential": "a_password", # Optional password for the TURN server. + } + ] + } + + + + + + Returns a new (or on failure) with given and optionally configured via the dictionary. This method can only be called when the connection is in state . + There are two ways to create a working data channel: either call on only one of the peer and listen to on the other, or call on both peers, with the same values, and the "negotiated" option set to . + Valid are: + + { + "negotiated": true, # When set to true (default off), means the channel is negotiated out of band. "id" must be set too. "data_channel_received" will not be called. + "id": 1, # When "negotiated" is true this value must also be set to the same value on both peer. + + # Only one of maxRetransmits and maxPacketLifeTime can be specified, not both. They make the channel unreliable (but also better at real time). + "maxRetransmits": 1, # Specify the maximum number of attempt the peer will make to retransmits packets if they are not acknowledged. + "maxPacketLifeTime": 100, # Specify the maximum amount of time before giving up retransmitions of unacknowledged packets (in milliseconds). + "ordered": true, # When in unreliable mode (i.e. either "maxRetransmits" or "maxPacketLifetime" is set), "ordered" (true by default) specify if packet ordering is to be enforced. + + "protocol": "my-custom-protocol", # A custom sub-protocol string for this channel. + } + + Note: You must keep a reference to channels created this way, or it will be closed. + + + + + Creates a new SDP offer to start a WebRTC connection with a remote peer. At least one must have been created before calling this method. + If this functions returns , will be called when the session is ready to be sent. + + + + + Sets the SDP description of the local peer. This should be called in response to . + After calling this function the peer will start emitting (unless an different from is returned). + + + + + Sets the SDP description of the remote peer. This should be called with the values generated by a remote peer and received over the signaling server. + If is "offer" the peer will emit with the appropriate answer. + If is "answer" the peer will start emitting . + + + + + Add an ice candidate generated by a remote peer (and received over the signaling server). See . + + + + + Call this method frequently (e.g. in or ) to properly receive signals. + + + + + Close the peer connection and all data channels associated with it. + Note: You cannot reuse this object for a new connection unless you call . + + + + + Returns the connection state. See . + + + + + Returns the ICE of the connection. This lets you detect, for example, when collection of ICE candidates has finished. + + + + + Returns the signaling state on the local end of the connection while connecting or reconnecting to another peer. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after a successful call to or (when it generates an answer). The parameters are meant to be passed to on this object, and sent to the remote peer over the signaling server. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new ICE candidate has been created. The three parameters are meant to be passed to the remote peer over the signaling server. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new in-band channel is received, i.e. when the channel was created with negotiated: false (default). + The object will be an instance of . You must keep a reference of it or it will be closed automatically. See . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_default_extension' method. + + + + + Cached name for the 'initialize' method. + + + + + Cached name for the 'create_data_channel' method. + + + + + Cached name for the 'create_offer' method. + + + + + Cached name for the 'set_local_description' method. + + + + + Cached name for the 'set_remote_description' method. + + + + + Cached name for the 'add_ice_candidate' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'get_connection_state' method. + + + + + Cached name for the 'get_gathering_state' method. + + + + + Cached name for the 'get_signaling_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'session_description_created' signal. + + + + + Cached name for the 'ice_candidate_created' signal. + + + + + Cached name for the 'data_channel_received' signal. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_add_ice_candidate' method. + + + + + Cached name for the '_close' method. + + + + + Cached name for the '_create_data_channel' method. + + + + + Cached name for the '_create_offer' method. + + + + + Cached name for the '_get_connection_state' method. + + + + + Cached name for the '_get_gathering_state' method. + + + + + Cached name for the '_get_signaling_state' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_poll' method. + + + + + Cached name for the '_set_local_description' method. + + + + + Cached name for the '_set_remote_description' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Base class for WebSocket server and client, allowing them to be used as multiplayer peer for the . + Note: When exporting to Android, make sure to enable the INTERNET permission in the Android export preset before exporting the project or using one-click deploy. Otherwise, network communication of any kind will be blocked by Android. + + + + + The supported WebSocket sub-protocols. See for more details. + + + + + The extra headers to use during handshake. See for more details. + + + + + The inbound buffer size for connected peers. See for more details. + + + + + The outbound buffer size for connected peers. See for more details. + + + + + The maximum time each peer can stay in a connecting state before being dropped. + + + + + The maximum number of queued packets for connected peers. See for more details. + + + + + Starts a new multiplayer client connecting to the given . TLS certificates will be verified against the hostname when connecting using the wss:// protocol. You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + Note: It is recommended to specify the scheme part of the URL, i.e. the should start with either ws:// or wss://. + + + + + Starts a new multiplayer server listening on the given . You can optionally specify a , and provide valid to use TLS. See . + + + + + Returns the associated to the given . + + + + + Returns the IP address of the given peer. + + + + + Returns the remote port of the given peer. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'supported_protocols' property. + + + + + Cached name for the 'handshake_headers' property. + + + + + Cached name for the 'inbound_buffer_size' property. + + + + + Cached name for the 'outbound_buffer_size' property. + + + + + Cached name for the 'handshake_timeout' property. + + + + + Cached name for the 'max_queued_packets' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_client' method. + + + + + Cached name for the 'create_server' method. + + + + + Cached name for the 'get_peer' method. + + + + + Cached name for the 'get_peer_address' method. + + + + + Cached name for the 'get_peer_port' method. + + + + + Cached name for the 'get_supported_protocols' method. + + + + + Cached name for the 'set_supported_protocols' method. + + + + + Cached name for the 'get_handshake_headers' method. + + + + + Cached name for the 'set_handshake_headers' method. + + + + + Cached name for the 'get_inbound_buffer_size' method. + + + + + Cached name for the 'set_inbound_buffer_size' method. + + + + + Cached name for the 'get_outbound_buffer_size' method. + + + + + Cached name for the 'set_outbound_buffer_size' method. + + + + + Cached name for the 'get_handshake_timeout' method. + + + + + Cached name for the 'set_handshake_timeout' method. + + + + + Cached name for the 'set_max_queued_packets' method. + + + + + Cached name for the 'get_max_queued_packets' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 , and WebSocket text frames using (prefer text frames when interacting with text-based API). You can check the frame type of the last packet via . + To start a WebSocket client, first call , then regularly call (e.g. during process). You can query the socket state via , get the number of pending packets using , and retrieve them via . + + To use the peer as part of a WebSocket server refer to and the online tutorial. + + + + + Specifies that WebSockets messages should be transferred as text payload (only valid UTF-8 is allowed). + + + + + Specifies that WebSockets messages should be transferred as binary payload (any byte combination is allowed). + + + + + Socket has been created. The connection is not yet open. + + + + + The connection is open and ready to communicate. + + + + + 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. + + + + + The connection is closed or couldn't be opened. + + + + + The WebSocket sub-protocols allowed during the WebSocket handshake. + + + + + The extra HTTP headers to be sent during the WebSocket handshake. + Note: Not supported in Web exports due to browsers' restrictions. + + + + + The size of the input buffer in bytes (roughly the maximum amount of memory that will be allocated for the inbound packets). + + + + + The size of the input buffer in bytes (roughly the maximum amount of memory that will be allocated for the outbound packets). + + + + + The maximum amount of packets that will be allowed in the queues (both inbound and outbound). + + + + + The interval (in seconds) at which the peer will automatically send WebSocket "ping" control frames. When set to 0, no "ping" control frames will be sent. + Note: Has no effect in Web exports due to browser restrictions. + + + + + Connects to the given URL. TLS certificates will be verified against the hostname when connecting using the wss:// protocol. You can pass the optional parameter to customize the trusted certification authorities, or disable the common name verification. See and . + Note: This method is non-blocking, and will return before the connection is established as long as the provided parameters are valid and the peer is not in an invalid state (e.g. already connected). Regularly call (e.g. during process) and check the result of to know whether the connection succeeds or fails. + Note: To avoid mixed content warnings or errors in Web, you may have to use a that starts with wss:// (secure) instead of ws://. When doing so, make sure to use the fully qualified domain name that matches the one defined in the server's TLS certificate. Do not connect directly via the IP address for wss:// connections, as it won't match with the TLS certificate. + + + + + Accepts a peer connection performing the HTTP handshake as a WebSocket server. The must be a valid TCP stream retrieved via , or a TLS stream accepted via . + Note: Not supported in Web exports due to browsers' restrictions. + + + + + Sends the given using the desired . When sending a , prefer using . + + + + + Sends the given using the desired . When sending a , prefer using . + + + + + Sends the given using WebSocket text mode. Prefer this method over when interacting with third-party text-based API (e.g. when using formatted messages). + + + + + Returns if the last received packet was sent as a text payload. See . + + + + + Updates the connection state and receive incoming packets. Call this function regularly to keep it in a clean state. + + + + + Closes this WebSocket connection. is the status code for the closure (see RFC 6455 section 7.4 for a list of valid status codes). is the human readable reason for closing the connection (can be any UTF-8 string that's smaller than 123 bytes). If is negative, the connection will be closed immediately without notifying the remote peer. + Note: To achieve a clean close, you will need to keep polling until is reached. + Note: The Web export might not support all status codes. Please refer to browser-specific documentation for more details. + + + + + Returns the IP address of the connected peer. + Note: Not available in the Web export. + + + + + Returns the remote port of the connected peer. + Note: Not available in the Web export. + + + + + Returns the selected WebSocket sub-protocol for this connection or an empty string if the sub-protocol has not been selected yet. + + + + + Returns the URL requested by this peer. The URL is derived from the url passed to or from the HTTP headers when acting as server (i.e. when using ). + + + + + Disable Nagle's algorithm on the underlying TCP socket (default). See for more information. + Note: Not available in the Web export. + + + + + Returns the current amount of data in the outbound websocket buffer. Note: Web exports use WebSocket.bufferedAmount, while other platforms use an internal buffer. + + + + + Returns the ready state of the connection. See . + + + + + Returns the received WebSocket close frame status code, or -1 when the connection was not cleanly closed. Only call this method when returns . + + + + + Returns the received WebSocket close frame status reason string. Only call this method when returns . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'supported_protocols' property. + + + + + Cached name for the 'handshake_headers' property. + + + + + Cached name for the 'inbound_buffer_size' property. + + + + + Cached name for the 'outbound_buffer_size' property. + + + + + Cached name for the 'max_queued_packets' property. + + + + + Cached name for the 'heartbeat_interval' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'connect_to_url' method. + + + + + Cached name for the 'accept_stream' method. + + + + + Cached name for the 'send' method. + + + + + Cached name for the 'send_text' method. + + + + + Cached name for the 'was_string_packet' method. + + + + + Cached name for the 'poll' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'get_connected_host' method. + + + + + Cached name for the 'get_connected_port' method. + + + + + Cached name for the 'get_selected_protocol' method. + + + + + Cached name for the 'get_requested_url' method. + + + + + Cached name for the 'set_no_delay' method. + + + + + Cached name for the 'get_current_outbound_buffered_amount' method. + + + + + Cached name for the 'get_ready_state' method. + + + + + Cached name for the 'get_close_code' method. + + + + + Cached name for the 'get_close_reason' method. + + + + + Cached name for the 'get_supported_protocols' method. + + + + + Cached name for the 'set_supported_protocols' method. + + + + + Cached name for the 'get_handshake_headers' method. + + + + + Cached name for the 'set_handshake_headers' method. + + + + + Cached name for the 'get_inbound_buffer_size' method. + + + + + Cached name for the 'set_inbound_buffer_size' method. + + + + + Cached name for the 'get_outbound_buffer_size' method. + + + + + Cached name for the 'set_outbound_buffer_size' method. + + + + + Cached name for the 'set_max_queued_packets' method. + + + + + Cached name for the 'get_max_queued_packets' method. + + + + + Cached name for the 'set_heartbeat_interval' method. + + + + + Cached name for the 'get_heartbeat_interval' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 is forced to use signals, where other XR interfaces would instead use functions that return a result immediately. This makes quite a bit more complicated to initialize than other XR interfaces. + Here's the minimum code required to start an immersive VR session: + + extends Node3D + + var webxr_interface + var vr_supported = false + + func _ready(): + # We assume this node has a button as a child. + # This button is for the user to consent to entering immersive VR mode. + $Button.pressed.connect(self._on_button_pressed) + + webxr_interface = XRServer.find_interface("WebXR") + if webxr_interface: + # WebXR uses a lot of asynchronous callbacks, so we connect to various + # signals in order to receive them. + webxr_interface.session_supported.connect(self._webxr_session_supported) + webxr_interface.session_started.connect(self._webxr_session_started) + webxr_interface.session_ended.connect(self._webxr_session_ended) + webxr_interface.session_failed.connect(self._webxr_session_failed) + + # This returns immediately - our _webxr_session_supported() method + # (which we connected to the "session_supported" signal above) will + # be called sometime later to let us know if it's supported or not. + webxr_interface.is_session_supported("immersive-vr") + + func _webxr_session_supported(session_mode, supported): + if session_mode == 'immersive-vr': + vr_supported = supported + + func _on_button_pressed(): + if not vr_supported: + OS.alert("Your browser doesn't support VR") + return + + # We want an immersive VR session, as opposed to AR ('immersive-ar') or a + # simple 3DoF viewer ('viewer'). + webxr_interface.session_mode = 'immersive-vr' + # 'bounded-floor' is room scale, 'local-floor' is a standing or sitting + # experience (it puts you 1.6m above the ground if you have 3DoF headset), + # whereas as 'local' puts you down at the XROrigin. + # This list means it'll first try to request 'bounded-floor', then + # fallback on 'local-floor' and ultimately 'local', if nothing else is + # supported. + webxr_interface.requested_reference_space_types = 'bounded-floor, local-floor, local' + # In order to use 'local-floor' or 'bounded-floor' we must also + # mark the features as required or optional. By including 'hand-tracking' + # as an optional feature, it will be enabled if supported. + webxr_interface.required_features = 'local-floor' + webxr_interface.optional_features = 'bounded-floor, hand-tracking' + + # 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) + # This will be the list of features that were successfully enabled + # (except on browsers that don't support this property). + print("Enabled features: ", webxr_interface.enabled_features) + + func _webxr_session_ended(): + $Button.visible = true + # If the user exits immersive mode, then we tell Godot to render to the web + # page again. + get_viewport().use_xr = false + + func _webxr_session_failed(message): + OS.alert("Failed to initialize: " + message) + + There are a couple ways to handle "controller" input: + - Using nodes and their and 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 , 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. + + + + + We don't know the target ray mode. + + + + + Target ray originates at the viewer's eyes and points in the direction they are looking. + + + + + Target ray from a handheld pointer, most likely a VR touch controller. + + + + + Target ray from touch screen, mouse or other tactile input device. + + + + + The session mode used by when setting up the WebXR session. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRSessionMode, including: "immersive-vr", "immersive-ar", and "inline". + + + + + A comma-seperated list of required features used by when setting up the WebXR session. + If a user's browser or device doesn't support one of the given features, initialization will fail and will be emitted. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRReferenceSpaceType, or include other features like "hand-tracking" to enable hand tracking. + + + + + A comma-seperated list of optional features used by when setting up the WebXR session. + If a user's browser or device doesn't support one of the given features, initialization will continue, but you won't be able to use the requested feature. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRReferenceSpaceType, or include other features like "hand-tracking" to enable hand tracking. + + + + + A comma-seperated list of reference space types used by when setting up the WebXR session. + The reference space types are requested in order, and the first one supported by the users device or browser will be used. The property contains the reference space type that was ultimately selected. + This doesn't have any effect on the interface when already initialized. + Possible values come from WebXR's XRReferenceSpaceType. If you want to use a particular reference space type, it must be listed in either or . + + + + + The reference space type (from the list of requested types set in the property), that was ultimately used by when setting up the WebXR session. + Possible values come from WebXR's XRReferenceSpaceType. If you want to use a particular reference space type, it must be listed in either or . + + + + + A comma-separated list of features that were successfully enabled by when setting up the WebXR session. + This may include features requested by setting and , and will only be available after has been emitted. + Note: This may not be support by all web browsers, in which case it will be an empty string. + + + + + Indicates if the WebXR session's imagery is visible to the user. + Possible values come from WebXR's XRVisibilityState, including "hidden", "visible", and "visible-blurred". + + + + + Checks if the given is supported by the user's browser. + Possible values come from WebXR's XRSessionMode, including: "immersive-vr", "immersive-ar", and "inline". + This method returns nothing, instead it emits the signal with the result. + + + + + Returns if there is an active input source with the given . + + + + + Gets an for the given . + In the context of WebXR, an input source can be an advanced VR controller like the Oculus Touch or Index controllers, or even a tap on the screen, a spoken voice command or a button press on the device itself. When a non-traditional input source is used, interpret the position and orientation of the as a ray pointing at the object the user wishes to interact with. + Use this method to get information about the input source that triggered one of these signals: + - + - + - + - + - + - + + + + + Returns the target ray mode for the given . + This can help interpret the input coming from that input source. See XRInputSource.targetRayMode for more information. + + + + + Returns the display refresh rate for the current HMD. Not supported on all HMDs and browsers. It may not report an accurate value until after using . + + + + + Sets the display refresh rate for the current HMD. Not supported on all HMDs and browsers. It won't take effect right away until after is emitted. + + + + + Returns display refresh rates supported by the current HMD. Only returned if this feature is supported by the web browser and after the interface has been initialized. + + + + + Represents the method that handles the event of a class. + + + + + Emitted by to indicate if the given sessionMode is supported or not. + + + + + Emitted by if the session is successfully started. + At this point, it's safe to do get_viewport().use_xr = true to instruct Godot to start rendering to the XR device. + + + + + Emitted when the user ends the WebXR session (which can be done using UI from the browser or device). + At this point, you should do get_viewport().use_xr = false to instruct Godot to resume rendering to the screen. + + + + + Represents the method that handles the event of a class. + + + + + Emitted by if the session fails to start. + message may optionally contain an error message from WebXR, or an empty string if no message is available. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input source has started its "primary action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after one of the input sources has finished its "primary action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input sources has finished its "primary action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input sources has started its "primary squeeze action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted after one of the input sources has finished its "primary squeeze action". + Use and to get more information about the input source. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when one of the input sources has finished its "primary squeeze action". + Use and to get more information about the input source. + + + + + Emitted when has changed. + + + + + Emitted to indicate that the reference space has been reset or reconfigured. + When (or whether) this is emitted depends on the user's browser or device, but may include when the user has changed the dimensions of their play space (which you may be able to access via ) or pressed/held a button to recenter their position. + See WebXR's XRReferenceSpace reset event for more information. + + + + + Emitted after the display's refresh rate has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'session_mode' property. + + + + + Cached name for the 'required_features' property. + + + + + Cached name for the 'optional_features' property. + + + + + Cached name for the 'requested_reference_space_types' property. + + + + + Cached name for the 'reference_space_type' property. + + + + + Cached name for the 'enabled_features' property. + + + + + Cached name for the 'visibility_state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_session_supported' method. + + + + + Cached name for the 'set_session_mode' method. + + + + + Cached name for the 'get_session_mode' method. + + + + + Cached name for the 'set_required_features' method. + + + + + Cached name for the 'get_required_features' method. + + + + + Cached name for the 'set_optional_features' method. + + + + + Cached name for the 'get_optional_features' method. + + + + + Cached name for the 'get_reference_space_type' method. + + + + + Cached name for the 'get_enabled_features' method. + + + + + Cached name for the 'set_requested_reference_space_types' method. + + + + + Cached name for the 'get_requested_reference_space_types' method. + + + + + Cached name for the 'is_input_source_active' method. + + + + + Cached name for the 'get_input_source_tracker' method. + + + + + Cached name for the 'get_input_source_target_ray_mode' method. + + + + + Cached name for the 'get_visibility_state' method. + + + + + Cached name for the 'get_display_refresh_rate' method. + + + + + Cached name for the 'set_display_refresh_rate' method. + + + + + Cached name for the 'get_available_display_refresh_rates' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'session_supported' signal. + + + + + Cached name for the 'session_started' signal. + + + + + Cached name for the 'session_ended' signal. + + + + + Cached name for the 'session_failed' signal. + + + + + Cached name for the 'selectstart' signal. + + + + + Cached name for the 'select' signal. + + + + + Cached name for the 'selectend' signal. + + + + + Cached name for the 'squeezestart' signal. + + + + + Cached name for the 'squeeze' signal. + + + + + Cached name for the 'squeezeend' signal. + + + + + Cached name for the 'visibility_state_changed' signal. + + + + + Cached name for the 'reference_space_reset' signal. + + + + + Cached name for the 'display_refresh_rate_changed' signal. + + + + + A node that creates a window. The window can either be a native system window or embedded inside another (see ). + At runtime, s will not close automatically when requested. You need to handle it manually using the signal (this applies both to pressing the close button and clicking outside of a popup). + + + + + Emitted when 's visibility changes, right before . + + + + + Sent when the node needs to refresh its theme items. This happens in one of the following cases: + - The property is changed on this node or any of its ancestors. + - The property is changed on this node. + - The node enters the scene tree. + Note: As an optimization, this notification won't be sent from changes that occur while this node is outside of the scene tree. Instead, all of the theme item updates can be applied at once when the node enters the scene tree. + + + + + Windowed mode, i.e. doesn't occupy the whole screen (unless set to the size of the screen). + + + + + Minimized window mode, i.e. is not visible and available on window manager's window list. Normally happens when the minimize button is pressed. + + + + + Maximized window mode, i.e. will occupy whole screen area except task bar and still display its borders. Normally happens when the maximize button is pressed. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Multi-window full-screen mode has a 1px border of the ProjectSettings.rendering/environment/defaults/default_clear_color color. + On macOS: A new desktop is used to display the running project. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + 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. + On Android: This enables immersive mode. + On Windows: Depending on video driver, full screen transition might cause screens to go black for a moment. + On macOS: 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. + On Linux (X11): Exclusive full screen mode bypasses compositor. + Note: Regardless of the platform, enabling full screen will change the window size to match the monitor's size. Therefore, make sure your project supports multiple resolutions when enabling full screen mode. + + + + + The window can't be resized by dragging its resize grip. It's still possible to resize the window using . This flag is ignored for full screen windows. Set with . + + + + + The window do not have native title bar and other decorations. This flag is ignored for full-screen windows. Set with . + + + + + The window is floating on top of all other windows. This flag is ignored for full-screen windows. Set with . + + + + + The window background can be transparent. Set with . + Note: This flag has no effect if either ProjectSettings.display/window/per_pixel_transparency/allowed, or the window's is set to . + + + + + The window can't be focused. No-focus window will ignore all input, except mouse clicks. Set with . + + + + + Window is part of menu or 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 ). + Note: This flag has no effect in embedded windows (unless said window is a ). + + + + + 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 . + Note: This flag is implemented only on macOS. + Note: This flag has no effect in embedded windows. + + + + + All mouse events are passed to the underlying window of the same application. + Note: This flag has no effect in embedded windows. + + + + + Window style is overridden, forcing sharp corners. + Note: This flag has no effect in embedded windows. + Note: This flag is implemented only on Windows (11). + + + + + Windows is excluded from screenshots taken by , , and . + Note: This flag is implemented on macOS and Windows. + Note: Setting this flag will NOT prevent other apps from capturing an image, it should not be used as a security measure. + + + + + Max value of the . + + + + + The content will not be scaled to match the 's size. + + + + + The content will be rendered at the target size. This is more performance-expensive than , but provides better results. + + + + + The content will be rendered at the base size and then scaled to the target size. More performant than , but results in pixelated image. + + + + + The aspect will be ignored. Scaling will simply stretch the content to fit the target size. + + + + + 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. + + + + + The content can be expanded vertically. Scaling horizontally will result in keeping the width ratio and then black bars on left and right sides. + + + + + The content can be expanded horizontally. Scaling vertically will result in keeping the height ratio and then black bars on top and bottom sides. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + Automatic layout direction, determined from the parent window layout direction. + + + + + Automatic layout direction, determined from the current locale. + + + + + Left-to-right layout direction. + + + + + Right-to-left layout direction. + + + + + Automatic layout direction, determined from the system locale. + + + + + Represents the size of the enum. + + + + + Initial window position is determined by . + + + + + Initial window position is the center of the primary screen. + + + + + Initial window position is the center of the main window screen. + + + + + Initial window position is the center of screen. + + + + + Initial window position is the center of the screen containing the mouse pointer. + + + + + Initial window position is the center of the screen containing the window with the keyboard focus. + + + + + Set's the window's current mode. + Note: Fullscreen mode is not exclusive full screen on Windows and Linux. + Note: This method only works with native windows, i.e. the main window and -derived nodes when is disabled in the main viewport. + + + + + The window's title. If the is native, title styles set in will have no effect. + + + + + Specifies the initial type of position for the . See constants. + + + + + The window's position in pixels. + If ProjectSettings.display/window/subwindows/embed_subwindows is , the position is in absolute screen coordinates. This typically applies to editor plugins. If the setting is , the window's position is in the coordinates of its parent . + Note: This property only works if is set to . + + + + + The window's size in pixels. + + + + + The screen the window is currently on. + + + + + Sets a polygonal region of the window which accepts mouse events. Mouse events outside the region will be passed through. + Passing an empty array will disable passthrough support (all mouse events will be intercepted by the window, which is the default behavior). + + // Set region, using Path2D node. + GetNode<Window>("Window").MousePassthrough = GetNode<Path2D>("Path2D").Curve.GetBakedPoints(); + + // Set region, using Polygon2D node. + GetNode<Window>("Window").MousePassthrough = GetNode<Polygon2D>("Polygon2D").Polygon; + + // Reset region to default. + GetNode<Window>("Window").MousePassthrough = new Vector2[] {}; + + Note: This property is ignored if is set to . + Note: On Windows, the portion of a window that lies outside the region is not drawn, while on Linux (X11) and macOS it is. + Note: This property is implemented on Linux (X11), macOS and Windows. + + + + + If , the window is visible. + + + + + If , the window's size will automatically update when a child node is added or removed, ignoring if the new size is bigger. + If , you need to call manually. + + + + + If , the is transient, i.e. it's considered a child of another . The transient window will be destroyed with its transient parent and will return focus to their parent when closed. The transient window is displayed on top of a non-exclusive full-screen parent window. Transient windows can't enter full-screen mode. + Note that behavior might be different depending on the platform. + + + + + If , and the is , this window will (at the time of becoming visible) become transient to the currently focused window instead of the immediate parent window in the hierarchy. Note that the transient parent is assigned at the time this window becomes visible, so changing it afterwards has no effect until re-shown. + + + + + If , the will be in exclusive mode. Exclusive windows are always on top of their parent and will block all input going to the parent . + Needs enabled to work. + + + + + If , the window can't be resized. Minimize and maximize buttons are disabled. + + + + + If , the window will have no borders. + + + + + If , the window will be on top of all other windows. Does not work if is enabled. + + + + + If , the 's background can be transparent. This is best used with embedded windows. + Note: Transparency support is implemented on Linux, macOS and Windows, but availability might vary depending on GPU driver, display manager, and compositor capabilities. + Note: This property has no effect if ProjectSettings.display/window/per_pixel_transparency/allowed is set to . + + + + + If , the can't be focused nor interacted with. It can still be visible. + + + + + If , the will be considered a popup. Popups are sub-windows that don't show as separate windows in system's window manager's window list and will send close request when anything is clicked outside of them (unless is enabled). + + + + + If , the contents is expanded to the full size of the window, window title bar is transparent. + Note: This property is implemented only on macOS. + Note: This property only works with native windows. + + + + + If , all mouse events will be passed to the underlying window of the same application. See also . + Note: This property is implemented on Linux (X11), macOS and Windows. + Note: This property only works with native windows. + + + + + If , the will override the OS window style to display sharp corners. + Note: This property is implemented only on Windows (11). + Note: This property only works with native windows. + + + + + Windows is excluded from screenshots taken by , , and . + + + + + If , native window will be used regardless of parent viewport and project settings. + + + + + If non-zero, the can't be resized to be smaller than this size. + Note: This property will be ignored in favor of if is enabled and if its size is bigger. + + + + + If non-zero, the can't be resized to be bigger than this size. + Note: This property will be ignored if the value is lower than . + + + + + If , the width is expanded to keep the title bar text fully visible. + + + + + Base size of the content (i.e. nodes that are drawn inside the window). If non-zero, 's content will be scaled when the window is resized to a different size. + + + + + Specifies how the content is scaled when the is resized. + + + + + Specifies how the content's aspect behaves when the is resized. The base aspect is determined by . + + + + + The policy to use to determine the final scale factor for 2D elements. This affects how is applied, in addition to the automatic scale factor determined by . + + + + + Specifies the base scale of 's content when its is equal to . See also . + + + + + Toggles if any text should automatically change to its translated version depending on the current locale. + + + + + The resource this node and all its and children use. If a child node has its own resource set, theme items are merged with child's definitions having higher priority. + Note: styles will have no effect unless the window is embedded. + + + + + The name of a theme type variation used by this to look up its own theme items. See for more details. + + + + + Virtual method to be implemented by the user. Overrides the value returned by . + + + + + Returns the ID of the window. + + + + + Centers a native window on the current screen and an embedded window on its embedder . + + + + + Resets the size to the minimum size, which is the max of and (if is enabled) . This is equivalent to calling set_size(Vector2i()) (or any size below the minimum). + + + + + Returns the window's position including its border. + Note: If is , this method returns the same value as . + + + + + Returns the window's size including its border. + Note: If is , this method returns the same value as . + + + + + Sets a specified window flag. + + + + + Returns if the is set. + + + + + Returns if the window can be maximized (the maximize button is enabled). + + + + + Tells the OS that the needs an attention. This makes the window stand out in some way depending on the system, e.g. it might blink on the task bar. + + + + + Causes the window to grab focus, allowing it to receive user input. + + + + + Hides the window. This is not the same as minimized state. Hidden window can't be interacted with and needs to be made visible with . + + + + + Makes the appear. This enables interactions with the and doesn't change any of its property other than visibility (unlike e.g. ). + + + + + If is , the window is automatically unparented when going invisible. + Note: Make sure to keep a reference to the node, otherwise it will be orphaned. You also need to manually call to free the window if it's not parented. + + + + + Returns whether the window is being drawn to the screen. + + + + + Returns if the window is focused. + + + + + Causes the window to grab focus, allowing it to receive user input. + + + + + If is , enables system's native IME (Input Method Editor). + + + + + Moves IME to the given position. + + + + + Returns if the window is currently embedded in another window. + + + + + Returns the combined minimum size from the child nodes of the window. Use to update it when child nodes have changed. + The value returned by this method can be overridden with . + + + + + Enables font oversampling. This makes fonts look better when they are scaled up. + + + + + Returns if font oversampling is enabled. See . + + + + + Requests an update of the size to fit underlying nodes. + + + + + Prevents *_theme_*_override methods from emitting until is called. + + + + + Ends a bulk theme override update. See . + + + + + Creates a local override for a theme icon with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also and for more details. + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme font size with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Creates a local override for a theme with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also and for more details. + + + + + Creates a local override for a theme constant with the specified . Local overrides always take precedence when fetching theme items for the control. An override can be removed with . + See also . + + + + + Removes a local override for a theme icon with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme font size with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme with the specified previously added by or via the Inspector dock. + + + + + Removes a local override for a theme constant with the specified previously added by or via the Inspector dock. + + + + + Returns an icon from the first matching in the tree if that has an icon item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a stylebox item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a font item with the specified and . + See for details. + + + + + Returns a font size from the first matching in the tree if that has a font size item with the specified and . + See for details. + + + + + Returns a from the first matching in the tree if that has a color item with the specified and . + See for more details. + + + + + Returns a constant from the first matching in the tree if that has a constant item with the specified and . + See for more details. + + + + + Returns if there is a local override for a theme icon with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme font size with the specified in this node. + See . + + + + + Returns if there is a local override for a theme with the specified in this node. + See . + + + + + Returns if there is a local override for a theme constant with the specified in this node. + See . + + + + + Returns if there is a matching in the tree that has an icon item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a stylebox item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a font size item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a color item with the specified and . + See for details. + + + + + Returns if there is a matching in the tree that has a constant item with the specified and . + See for details. + + + + + Returns the default base scale value from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font from the first matching in the tree if that has a valid value. + See for details. + + + + + Returns the default font size value from the first matching in the tree if that has a valid value. + See for details. + + + + + Sets layout direction and text writing direction. Right-to-left layouts are necessary for certain languages (e.g. Arabic and Hebrew). + + + + + Returns layout direction and text writing direction. + + + + + Returns if layout is right-to-left. + + + + + Shows the and makes it transient (see ). If is provided, it will be set as the 's size. Fails if called on the main window. + If ProjectSettings.display/window/subwindows/embed_subwindows is (single-window mode), 's coordinates are global and relative to the main window's top-left corner (excluding window decorations). If 's position coordinates are negative, the window will be located outside the main window and may not be visible as a result. + If ProjectSettings.display/window/subwindows/embed_subwindows is (multi-window mode), 's coordinates are global and relative to the top-left corner of the leftmost screen. If 's position coordinates are negative, the window will be placed at the top-left corner of the screen. + Note: must be in global coordinates if specified. + + If the parameter is null, then the default value is new Rect2I(new Vector2I(0, 0), new Vector2I(0, 0)). + + + + Popups the with a position shifted by parent 's position. If the is embedded, has the same effect as . + + + + + Popups the at the center of the current screen, with optionally given minimum size. If the is embedded, it will be centered in the parent instead. + Note: Calling it with the default value of is equivalent to calling it with . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + If is embedded, popups the centered inside its embedder and sets its size as a of embedder's size. + If is a native window, popups the centered inside the screen of its parent and sets its size as a of the screen size. + + + + + Popups the centered inside its parent . determines the maximum size of the , in relation to its parent. + Note: Calling it with the default value of is equivalent to calling it with . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + If the parameter is null, then the default value is new Rect2I(new Vector2I(0, 0), new Vector2I(0, 0)). + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + + + + Attempts to parent this dialog to the last exclusive window relative to , and then calls on it. The dialog must have no current parent, otherwise the method fails. + See also and . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Represents the method that handles the event of a class. + + + + + Emitted when the is currently focused and receives any input, passing the received event as an argument. The event's position, if present, is in the embedder's coordinate system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when files are dragged from the OS file manager and dropped in the game window. The argument is a list of file paths. + + func _ready(): + get_window().files_dropped.connect(on_files_dropped) + + func on_files_dropped(files): + print(files) + + Note: This signal only works with native windows, i.e. the main window and -derived nodes when is disabled in the main viewport. + + + + + Emitted when the mouse cursor enters the 's visible area, that is not occluded behind other s or windows, provided its is and regardless if it's currently focused or not. + + + + + Emitted when the mouse cursor leaves the 's visible area, that is not occluded behind other s or windows, provided its is and regardless if it's currently focused or not. + + + + + Emitted when the gains focus. + + + + + Emitted when the loses its focus. + + + + + Emitted when the 's close button is pressed or when is enabled and user clicks outside the window. + This signal can be used to handle window closing, e.g. by connecting it to . + + + + + Emitted when a go back request is sent (e.g. pressing the "Back" button on Android), right after . + + + + + Emitted when is made visible or disappears. + + + + + Emitted right after call, before the appears or does anything. + + + + + Emitted when the notification is sent. + + + + + Emitted when the 's DPI changes as a result of OS-level changes (e.g. moving the window from a Retina display to a lower resolution one). + Note: Only implemented on macOS. + + + + + Emitted when window title bar decorations are changed, e.g. macOS window enter/exit full screen mode, or extend-to-title flag is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'mode' property. + + + + + Cached name for the 'title' property. + + + + + Cached name for the 'initial_position' property. + + + + + Cached name for the 'position' property. + + + + + Cached name for the 'size' property. + + + + + Cached name for the 'current_screen' property. + + + + + Cached name for the 'mouse_passthrough_polygon' property. + + + + + Cached name for the 'visible' property. + + + + + Cached name for the 'wrap_controls' property. + + + + + Cached name for the 'transient' property. + + + + + Cached name for the 'transient_to_focused' property. + + + + + Cached name for the 'exclusive' property. + + + + + Cached name for the 'unresizable' property. + + + + + Cached name for the 'borderless' property. + + + + + Cached name for the 'always_on_top' property. + + + + + Cached name for the 'transparent' property. + + + + + Cached name for the 'unfocusable' property. + + + + + Cached name for the 'popup_window' property. + + + + + Cached name for the 'extend_to_title' property. + + + + + Cached name for the 'mouse_passthrough' property. + + + + + Cached name for the 'sharp_corners' property. + + + + + Cached name for the 'exclude_from_capture' property. + + + + + Cached name for the 'force_native' property. + + + + + Cached name for the 'min_size' property. + + + + + Cached name for the 'max_size' property. + + + + + Cached name for the 'keep_title_visible' property. + + + + + Cached name for the 'content_scale_size' property. + + + + + Cached name for the 'content_scale_mode' property. + + + + + Cached name for the 'content_scale_aspect' property. + + + + + Cached name for the 'content_scale_stretch' property. + + + + + Cached name for the 'content_scale_factor' property. + + + + + Cached name for the 'auto_translate' property. + + + + + Cached name for the 'theme' property. + + + + + Cached name for the 'theme_type_variation' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_contents_minimum_size' method. + + + + + Cached name for the 'set_title' method. + + + + + Cached name for the 'get_title' method. + + + + + Cached name for the 'get_window_id' method. + + + + + Cached name for the 'set_initial_position' method. + + + + + Cached name for the 'get_initial_position' method. + + + + + Cached name for the 'set_current_screen' method. + + + + + Cached name for the 'get_current_screen' method. + + + + + Cached name for the 'set_position' method. + + + + + Cached name for the 'get_position' method. + + + + + Cached name for the 'move_to_center' method. + + + + + Cached name for the 'set_size' method. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'reset_size' method. + + + + + Cached name for the 'get_position_with_decorations' method. + + + + + Cached name for the 'get_size_with_decorations' method. + + + + + Cached name for the 'set_max_size' method. + + + + + Cached name for the 'get_max_size' method. + + + + + Cached name for the 'set_min_size' method. + + + + + Cached name for the 'get_min_size' method. + + + + + Cached name for the 'set_mode' method. + + + + + Cached name for the 'get_mode' method. + + + + + Cached name for the 'set_flag' method. + + + + + Cached name for the 'get_flag' method. + + + + + Cached name for the 'is_maximize_allowed' method. + + + + + Cached name for the 'request_attention' method. + + + + + Cached name for the 'move_to_foreground' method. + + + + + Cached name for the 'set_visible' method. + + + + + Cached name for the 'is_visible' method. + + + + + Cached name for the 'hide' method. + + + + + Cached name for the 'show' method. + + + + + Cached name for the 'set_transient' method. + + + + + Cached name for the 'is_transient' method. + + + + + Cached name for the 'set_transient_to_focused' method. + + + + + Cached name for the 'is_transient_to_focused' method. + + + + + Cached name for the 'set_exclusive' method. + + + + + Cached name for the 'is_exclusive' method. + + + + + Cached name for the 'set_unparent_when_invisible' method. + + + + + Cached name for the 'can_draw' method. + + + + + Cached name for the 'has_focus' method. + + + + + Cached name for the 'grab_focus' method. + + + + + Cached name for the 'set_ime_active' method. + + + + + Cached name for the 'set_ime_position' method. + + + + + Cached name for the 'is_embedded' method. + + + + + Cached name for the 'get_contents_minimum_size' method. + + + + + Cached name for the 'set_force_native' method. + + + + + Cached name for the 'get_force_native' method. + + + + + Cached name for the 'set_content_scale_size' method. + + + + + Cached name for the 'get_content_scale_size' method. + + + + + Cached name for the 'set_content_scale_mode' method. + + + + + Cached name for the 'get_content_scale_mode' method. + + + + + Cached name for the 'set_content_scale_aspect' method. + + + + + Cached name for the 'get_content_scale_aspect' method. + + + + + Cached name for the 'set_content_scale_stretch' method. + + + + + Cached name for the 'get_content_scale_stretch' method. + + + + + Cached name for the 'set_keep_title_visible' method. + + + + + Cached name for the 'get_keep_title_visible' method. + + + + + Cached name for the 'set_content_scale_factor' method. + + + + + Cached name for the 'get_content_scale_factor' method. + + + + + Cached name for the 'set_use_font_oversampling' method. + + + + + Cached name for the 'is_using_font_oversampling' method. + + + + + Cached name for the 'set_mouse_passthrough_polygon' method. + + + + + Cached name for the 'get_mouse_passthrough_polygon' method. + + + + + Cached name for the 'set_wrap_controls' method. + + + + + Cached name for the 'is_wrapping_controls' method. + + + + + Cached name for the 'child_controls_changed' method. + + + + + Cached name for the 'set_theme' method. + + + + + Cached name for the 'get_theme' method. + + + + + Cached name for the 'set_theme_type_variation' method. + + + + + Cached name for the 'get_theme_type_variation' method. + + + + + Cached name for the 'begin_bulk_theme_override' method. + + + + + Cached name for the 'end_bulk_theme_override' method. + + + + + Cached name for the 'add_theme_icon_override' method. + + + + + Cached name for the 'add_theme_stylebox_override' method. + + + + + Cached name for the 'add_theme_font_override' method. + + + + + Cached name for the 'add_theme_font_size_override' method. + + + + + Cached name for the 'add_theme_color_override' method. + + + + + Cached name for the 'add_theme_constant_override' method. + + + + + Cached name for the 'remove_theme_icon_override' method. + + + + + Cached name for the 'remove_theme_stylebox_override' method. + + + + + Cached name for the 'remove_theme_font_override' method. + + + + + Cached name for the 'remove_theme_font_size_override' method. + + + + + Cached name for the 'remove_theme_color_override' method. + + + + + Cached name for the 'remove_theme_constant_override' method. + + + + + Cached name for the 'get_theme_icon' method. + + + + + Cached name for the 'get_theme_stylebox' method. + + + + + Cached name for the 'get_theme_font' method. + + + + + Cached name for the 'get_theme_font_size' method. + + + + + Cached name for the 'get_theme_color' method. + + + + + Cached name for the 'get_theme_constant' method. + + + + + Cached name for the 'has_theme_icon_override' method. + + + + + Cached name for the 'has_theme_stylebox_override' method. + + + + + Cached name for the 'has_theme_font_override' method. + + + + + Cached name for the 'has_theme_font_size_override' method. + + + + + Cached name for the 'has_theme_color_override' method. + + + + + Cached name for the 'has_theme_constant_override' method. + + + + + Cached name for the 'has_theme_icon' method. + + + + + Cached name for the 'has_theme_stylebox' method. + + + + + Cached name for the 'has_theme_font' method. + + + + + Cached name for the 'has_theme_font_size' method. + + + + + Cached name for the 'has_theme_color' method. + + + + + Cached name for the 'has_theme_constant' method. + + + + + Cached name for the 'get_theme_default_base_scale' method. + + + + + Cached name for the 'get_theme_default_font' method. + + + + + Cached name for the 'get_theme_default_font_size' method. + + + + + Cached name for the 'set_layout_direction' method. + + + + + Cached name for the 'get_layout_direction' method. + + + + + Cached name for the 'is_layout_rtl' method. + + + + + Cached name for the 'set_auto_translate' method. + + + + + Cached name for the 'is_auto_translating' method. + + + + + Cached name for the 'popup' method. + + + + + Cached name for the 'popup_on_parent' method. + + + + + Cached name for the 'popup_centered' method. + + + + + Cached name for the 'popup_centered_ratio' method. + + + + + Cached name for the 'popup_centered_clamped' method. + + + + + Cached name for the 'popup_exclusive' method. + + + + + Cached name for the 'popup_exclusive_on_parent' method. + + + + + Cached name for the 'popup_exclusive_centered' method. + + + + + Cached name for the 'popup_exclusive_centered_ratio' method. + + + + + Cached name for the 'popup_exclusive_centered_clamped' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'window_input' signal. + + + + + Cached name for the 'files_dropped' signal. + + + + + Cached name for the 'mouse_entered' signal. + + + + + Cached name for the 'mouse_exited' signal. + + + + + Cached name for the 'focus_entered' signal. + + + + + Cached name for the 'focus_exited' signal. + + + + + Cached name for the 'close_requested' signal. + + + + + Cached name for the 'go_back_requested' signal. + + + + + Cached name for the 'visibility_changed' signal. + + + + + Cached name for the 'about_to_popup' signal. + + + + + Cached name for the 'theme_changed' signal. + + + + + Cached name for the 'dpi_changed' signal. + + + + + Cached name for the 'titlebar_changed' signal. + + + + + The singleton allocates a set of s (called worker threads) on project startup and provides methods for offloading tasks to them. This can be used for simple multithreading without having to create s. + Tasks hold the to be run by the threads. can be used to create regular tasks, which will be taken by one worker thread, or group tasks, which can be distributed between multiple worker threads. Group tasks execute the multiple times, which makes them useful for iterating over a lot of elements, such as the enemies in an arena. + Here's a sample on how to offload an expensive function to worker threads: + + private List<Node> _enemies = new List<Node>(); // A list to be filled with enemies. + + private void ProcessEnemyAI(int enemyIndex) + { + Node processedEnemy = _enemies[enemyIndex]; + // Expensive logic here. + } + + public override void _Process(double delta) + { + long taskId = WorkerThreadPool.AddGroupTask(Callable.From<int>(ProcessEnemyAI), _enemies.Count); + // Other code... + WorkerThreadPool.WaitForGroupTaskCompletion(taskId); + // Other code that depends on the enemy AI already being processed. + } + + The above code relies on the number of elements in the enemies array remaining constant during the multithreaded part. + Note: Using this singleton could affect performance negatively if the task being distributed between threads is not computationally expensive. + + + + + Adds as a task to be executed by a worker thread. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the task with the given ID is completed. + Note: You should only call this method between adding the task and awaiting its completion. + + + + + Pauses the thread that calls this method until the task with the given ID is completed. + Returns if the task could be successfully awaited. + Returns if a task with the passed ID does not exist (maybe because it was already awaited and disposed of). + Returns if the call is made from another running task and, due to task scheduling, there's potential for deadlocking (e.g., the task to await may be at a lower level in the call stack and therefore can't progress). This is an advanced situation that should only matter when some tasks depend on others (in the current implementation, the tricky case is a task trying to wait on an older one). + + + + + Adds as a group task to be executed by the worker threads. The will be called a number of times based on , with the first thread calling it with the value 0 as a parameter, and each consecutive execution incrementing this value by 1 until it reaches element - 1. + The number of threads the task is distributed to is defined by , where the default value -1 means it is distributed to all worker threads. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a group task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the group task with the given ID is completed. + Note: You should only call this method between adding the group task and awaiting its completion. + + + + + Returns how many times the of the group task with the given ID has already been executed by the worker threads. + Note: If a thread has started executing the but is yet to finish, it won't be counted. + + + + + Pauses the thread that calls this method until the group task with the given ID is completed. + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_task' method. + + + + + Cached name for the 'is_task_completed' method. + + + + + Cached name for the 'wait_for_task_completion' method. + + + + + Cached name for the 'add_group_task' method. + + + + + Cached name for the 'is_group_task_completed' method. + + + + + Cached name for the 'get_group_processed_element_count' method. + + + + + Cached name for the 'wait_for_group_task_completion' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The singleton allocates a set of s (called worker threads) on project startup and provides methods for offloading tasks to them. This can be used for simple multithreading without having to create s. + Tasks hold the to be run by the threads. can be used to create regular tasks, which will be taken by one worker thread, or group tasks, which can be distributed between multiple worker threads. Group tasks execute the multiple times, which makes them useful for iterating over a lot of elements, such as the enemies in an arena. + Here's a sample on how to offload an expensive function to worker threads: + + private List<Node> _enemies = new List<Node>(); // A list to be filled with enemies. + + private void ProcessEnemyAI(int enemyIndex) + { + Node processedEnemy = _enemies[enemyIndex]; + // Expensive logic here. + } + + public override void _Process(double delta) + { + long taskId = WorkerThreadPool.AddGroupTask(Callable.From<int>(ProcessEnemyAI), _enemies.Count); + // Other code... + WorkerThreadPool.WaitForGroupTaskCompletion(taskId); + // Other code that depends on the enemy AI already being processed. + } + + The above code relies on the number of elements in the enemies array remaining constant during the multithreaded part. + Note: Using this singleton could affect performance negatively if the task being distributed between threads is not computationally expensive. + + + + + Adds as a task to be executed by a worker thread. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the task with the given ID is completed. + Note: You should only call this method between adding the task and awaiting its completion. + + + + + Pauses the thread that calls this method until the task with the given ID is completed. + Returns if the task could be successfully awaited. + Returns if a task with the passed ID does not exist (maybe because it was already awaited and disposed of). + Returns if the call is made from another running task and, due to task scheduling, there's potential for deadlocking (e.g., the task to await may be at a lower level in the call stack and therefore can't progress). This is an advanced situation that should only matter when some tasks depend on others (in the current implementation, the tricky case is a task trying to wait on an older one). + + + + + Adds as a group task to be executed by the worker threads. The will be called a number of times based on , with the first thread calling it with the value 0 as a parameter, and each consecutive execution incrementing this value by 1 until it reaches element - 1. + The number of threads the task is distributed to is defined by , where the default value -1 means it is distributed to all worker threads. determines if the task has a high priority or a low priority (default). You can optionally provide a to help with debugging. + Returns a group task ID that can be used by other methods. + Warning: Every task must be waited for completion using or at some point so that any allocated resources inside the task can be cleaned up. + + + + + Returns if the group task with the given ID is completed. + Note: You should only call this method between adding the group task and awaiting its completion. + + + + + Returns how many times the of the group task with the given ID has already been executed by the worker threads. + Note: If a thread has started executing the but is yet to finish, it won't be counted. + + + + + Pauses the thread that calls this method until the group task with the given ID is completed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_task' method. + + + + + Cached name for the 'is_task_completed' method. + + + + + Cached name for the 'wait_for_task_completion' method. + + + + + Cached name for the 'add_group_task' method. + + + + + Cached name for the 'is_group_task_completed' method. + + + + + Cached name for the 'get_group_processed_element_count' method. + + + + + Cached name for the 'wait_for_group_task_completion' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The of this world's canvas resource. Used by the for 2D drawing. + + + + + The of this world's physics space resource. Used by the for 2D physics, treating it as both a space and an area. + + + + + The of this world's navigation map. Used by the . + + + + + Direct access to the world's physics 2D space state. Used for querying current and potential collisions. When using multi-threaded physics, access is limited to in the main thread. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'canvas' property. + + + + + Cached name for the 'space' property. + + + + + Cached name for the 'navigation_map' property. + + + + + Cached name for the 'direct_space_state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_canvas' method. + + + + + Cached name for the 'get_space' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'get_direct_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + The World3D's . + + + + + The World3D's fallback environment will be used if fails or is missing. + + + + + The default resource to use if none set on the . + + + + + The World3D's physics space. + + + + + The of this world's navigation map. Used by the . + + + + + The World3D's visual scenario. + + + + + Direct access to the world's physics 3D space state. Used for querying current and potential collisions. When using multi-threaded physics, access is limited to in the main thread. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'environment' property. + + + + + Cached name for the 'fallback_environment' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'space' property. + + + + + Cached name for the 'navigation_map' property. + + + + + Cached name for the 'scenario' property. + + + + + Cached name for the 'direct_space_state' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_space' method. + + + + + Cached name for the 'get_navigation_map' method. + + + + + Cached name for the 'get_scenario' method. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_fallback_environment' method. + + + + + Cached name for the 'get_fallback_environment' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached name for the 'get_direct_space_state' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 2D world boundary shape, intended for use in physics. 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. + + + + + The line's normal, typically a unit vector. Its direction indicates the non-colliding half-plane. Can be of any length but zero. Defaults to Vector2.UP. + + + + + The distance from the origin to the line, expressed in terms of (according to its direction and magnitude). Actual absolute distance from the origin to the line can be calculated as abs(distance) / normal.length(). + In the scalar equation of the line ax + by = d, this is d, while the (a, b) coordinates are represented by the property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'normal' property. + + + + + Cached name for the 'distance' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_normal' method. + + + + + Cached name for the 'get_normal' method. + + + + + Cached name for the 'set_distance' method. + + + + + Cached name for the 'get_distance' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A 3D world boundary shape, intended for use in physics. works like an infinite plane that forces all physics bodies to stay above it. The '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. + + + + + The used by the for collision. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'plane' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_plane' method. + + + + + Cached name for the 'get_plane' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The node is used to configure the default for the scene. + The parameters defined in the can be overridden by an node set on the current . Additionally, only one may be instantiated in a given scene at a time. + The 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. + + + + + The resource used by this , defining the default properties. + + + + + The default resource to use if none set on the . + + + + + The default resource to use if none set on the . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'environment' property. + + + + + Cached name for the 'camera_attributes' property. + + + + + Cached name for the 'compositor' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_environment' method. + + + + + Cached name for the 'get_environment' method. + + + + + Cached name for the 'set_camera_attributes' method. + + + + + Cached name for the 'get_camera_attributes' method. + + + + + Cached name for the 'set_compositor' method. + + + + + Cached name for the 'get_compositor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The X509Certificate class represents an X509 certificate. Certificates can be loaded and saved like any other . + They can be used as the server certificate in (along with the proper ), and to specify the only certificate that should be accepted when connecting to a TLS server via . + + + + + Saves a certificate to the given (should be a "*.crt" file). + + + + + Loads a certificate from ("*.crt" file). + + + + + Returns a string representation of the certificate, or an empty string if the certificate is invalid. + + + + + Loads a certificate from the given . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'save' method. + + + + + Cached name for the 'load' method. + + + + + Cached name for the 'save_to_string' method. + + + + + Cached name for the 'load_from_string' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Provides a low-level interface for creating parsers for XML files. This class can serve as base to make custom XML parsers. + To parse XML, you must open a file with the method or a buffer with the method. Then, the 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 to parse an SVG file (which is based on XML), printing each element and its attributes as a dictionary: + + var parser = new XmlParser(); + parser.Open("path/to/file.svg"); + while (parser.Read() != Error.FileEof) + { + if (parser.GetNodeType() == XmlParser.NodeType.Element) + { + var nodeName = parser.GetNodeName(); + var attributesDict = new Godot.Collections.Dictionary(); + for (int idx = 0; idx < parser.GetAttributeCount(); idx++) + { + attributesDict[parser.GetAttributeName(idx)] = parser.GetAttributeValue(idx); + } + GD.Print($"The {nodeName} element has the following attributes: {attributesDict}"); + } + } + + + + + + There's no node (no file or buffer opened). + + + + + An element node type, also known as a tag, e.g. <title>. + + + + + An end of element node type, e.g. </title>. + + + + + A text node type, i.e. text that is not inside an element. This includes whitespace. + + + + + A comment node type, e.g. <!--A comment-->. + + + + + A node type for CDATA (Character Data) sections, e.g. <![CDATA[CDATA section]]>. + + + + + An unknown node type. + + + + + Parses the next node in the file. This method returns an error code. + + + + + Returns the type of the current node. Compare with constants. + + + + + Returns the name of a node. This method will raise an error if the currently parsed node is a text node. + Note: The content of a node and the comment string of a node are also considered names. + + + + + Returns the contents of a text node. This method will raise an error if the current parsed node is of any other type. + + + + + Returns the byte offset of the currently parsed node since the beginning of the file or buffer. This is usually equivalent to the number of characters before the read position. + + + + + Returns the number of attributes in the currently parsed element. + Note: If this method is used while the currently parsed node is not or , this count will not be updated and will still reflect the last element. + + + + + Returns the name of an attribute of the currently parsed element, specified by the index. + + + + + Returns the value of an attribute of the currently parsed element, specified by the index. + + + + + Returns if the currently parsed element has an attribute with the . + + + + + Returns the value of an attribute of the currently parsed element, specified by its . This method will raise an error if the element has no such attribute. + + + + + Returns the value of an attribute of the currently parsed element, specified by its . This method will return an empty string if the element has no such attribute. + + + + + Returns if the currently parsed element is empty, e.g. <element />. + + + + + Returns the current line in the parsed file, counting from 0. + + + + + Skips the current section. If the currently parsed node contains more inner nodes, they will be ignored and the cursor will go to the closing of the current element. + + + + + Moves the buffer cursor to a certain offset (since the beginning) and reads the next node there. This method returns an error code. + + + + + Opens an XML for parsing. This method returns an error code. + + + + + Opens an XML raw for parsing. This method returns an error code. + + + + + Opens an XML raw for parsing. This method returns an error code. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'read' method. + + + + + Cached name for the 'get_node_type' method. + + + + + Cached name for the 'get_node_name' method. + + + + + Cached name for the 'get_node_data' method. + + + + + Cached name for the 'get_node_offset' method. + + + + + Cached name for the 'get_attribute_count' method. + + + + + Cached name for the 'get_attribute_name' method. + + + + + Cached name for the 'get_attribute_value' method. + + + + + Cached name for the 'has_attribute' method. + + + + + Cached name for the 'get_named_attribute_value' method. + + + + + Cached name for the 'get_named_attribute_value_safe' method. + + + + + Cached name for the 'is_empty' method. + + + + + Cached name for the 'get_current_line' method. + + + + + Cached name for the 'skip_section' method. + + + + + Cached name for the 'seek' method. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'open_buffer' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The point is an 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. + + + + + Returns the estimated size of the plane that was detected. Say when the anchor relates to a table in the real world, this is the estimated size of the surface of that table. + + + + + Returns a plane aligned with our anchor; handy for intersection testing. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_size' method. + + + + + Cached name for the 'get_plane' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node uses body tracking data from an to pose the skeleton of a body mesh. + Positioning of the body is performed by creating an ancestor of the body mesh driven by the same . + The body tracking position-data is scaled by when applied to the skeleton, which can be used to adjust the tracked body to match the scale of the body model. + + + + + The skeleton's upper body joints are updated. + + + + + The skeleton's lower body joints are updated. + + + + + The skeleton's hand joints are updated. + + + + + The skeleton's bones are fully updated (both position and rotation) to match the tracked bones. + + + + + The skeleton's bones are only rotated to align with the tracked bones, preserving bone length. + + + + + Represents the size of the enum. + + + + + The name of the registered with to obtain the body tracking data from. + + + + + Specifies the body parts to update. + + + + + Specifies the type of updates to perform on the bones. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'body_tracker' property. + + + + + Cached name for the 'body_update' property. + + + + + Cached name for the 'bone_update' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_body_tracker' method. + + + + + Cached name for the 'get_body_tracker' method. + + + + + Cached name for the 'set_body_update' method. + + + + + Cached name for the 'get_body_update' method. + + + + + Cached name for the 'set_bone_update' method. + + + + + Cached name for the 'get_bone_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A body tracking system will create an instance of this object and add it to the . This tracking system will then obtain skeleton data, convert it to the Godot Humanoid skeleton and store this data on the object. + Use to animate a body mesh using body tracking data. + + + + + Upper body tracking supported. + + + + + Lower body tracking supported. + + + + + Hand tracking supported. + + + + + Root joint. + + + + + Hips joint. + + + + + Spine joint. + + + + + Chest joint. + + + + + Upper chest joint. + + + + + Neck joint. + + + + + Head joint. + + + + + Head tip joint. + + + + + Left shoulder joint. + + + + + Left upper arm joint. + + + + + Left lower arm joint. + + + + + Right shoulder joint. + + + + + Right upper arm joint. + + + + + Right lower arm joint. + + + + + Left upper leg joint. + + + + + Left lower leg joint. + + + + + Left foot joint. + + + + + Left toes joint. + + + + + Right upper leg joint. + + + + + Right lower leg joint. + + + + + Right foot joint. + + + + + Right toes joint. + + + + + Left hand joint. + + + + + Left palm joint. + + + + + Left wrist joint. + + + + + Left thumb metacarpal joint. + + + + + Left thumb phalanx proximal joint. + + + + + Left thumb phalanx distal joint. + + + + + Left thumb tip joint. + + + + + Left index finger metacarpal joint. + + + + + Left index finger phalanx proximal joint. + + + + + Left index finger phalanx intermediate joint. + + + + + Left index finger phalanx distal joint. + + + + + Left index finger tip joint. + + + + + Left middle finger metacarpal joint. + + + + + Left middle finger phalanx proximal joint. + + + + + Left middle finger phalanx intermediate joint. + + + + + Left middle finger phalanx distal joint. + + + + + Left middle finger tip joint. + + + + + Left ring finger metacarpal joint. + + + + + Left ring finger phalanx proximal joint. + + + + + Left ring finger phalanx intermediate joint. + + + + + Left ring finger phalanx distal joint. + + + + + Left ring finger tip joint. + + + + + Left pinky finger metacarpal joint. + + + + + Left pinky finger phalanx proximal joint. + + + + + Left pinky finger phalanx intermediate joint. + + + + + Left pinky finger phalanx distal joint. + + + + + Left pinky finger tip joint. + + + + + Right hand joint. + + + + + Right palm joint. + + + + + Right wrist joint. + + + + + Right thumb metacarpal joint. + + + + + Right thumb phalanx proximal joint. + + + + + Right thumb phalanx distal joint. + + + + + Right thumb tip joint. + + + + + Right index finger metacarpal joint. + + + + + Right index finger phalanx proximal joint. + + + + + Right index finger phalanx intermediate joint. + + + + + Right index finger phalanx distal joint. + + + + + Right index finger tip joint. + + + + + Right middle finger metacarpal joint. + + + + + Right middle finger phalanx proximal joint. + + + + + Right middle finger phalanx intermediate joint. + + + + + Right middle finger phalanx distal joint. + + + + + Right middle finger tip joint. + + + + + Right ring finger metacarpal joint. + + + + + Right ring finger phalanx proximal joint. + + + + + Right ring finger phalanx intermediate joint. + + + + + Right ring finger phalanx distal joint. + + + + + Right ring finger tip joint. + + + + + Right pinky finger metacarpal joint. + + + + + Right pinky finger phalanx proximal joint. + + + + + Right pinky finger phalanx intermediate joint. + + + + + Right pinky finger phalanx distal joint. + + + + + Right pinky finger tip joint. + + + + + Represents the size of the enum. + + + + + The joint's orientation data is valid. + + + + + The joint's orientation is actively tracked. May not be set if tracking has been temporarily lost. + + + + + The joint's position data is valid. + + + + + The joint's position is actively tracked. May not be set if tracking has been temporarily lost. + + + + + If , the body tracking data is valid. + + + + + The type of body tracking data captured. + + + + + Sets flags about the validity of the tracking data for the given body joint. + + + + + Returns flags about the validity of the tracking data for the given body joint (see ). + + + + + Sets the transform for the given body joint. + + + + + Returns the transform for the given body joint. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'has_tracking_data' property. + + + + + Cached name for the 'body_flags' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_has_tracking_data' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'set_body_flags' method. + + + + + Cached name for the 'get_body_flags' method. + + + + + Cached name for the 'set_joint_flags' method. + + + + + Cached name for the 'get_joint_flags' method. + + + + + Cached name for the 'set_joint_transform' method. + + + + + Cached name for the 'get_joint_transform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a helper 3D 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is a helper 3D 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 . 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. + + + + + Returns if the button with the given is pressed. + + + + + Returns a for the input with the given . This works for any input type, the variant will be typed according to the actions configuration. + + + + + Returns a numeric value for the input with the given . This is used for triggers and grip sensors. + + + + + Returns a for the input with the given . This is used for thumbsticks and thumbpads found on many controllers. + + + + + Returns the hand holding this controller, if known. See . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this controller is pressed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this controller is released. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a trigger or similar input on this controller changes value. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a thumbstick or thumbpad on this controller is moved. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the interaction profile on this controller is changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'is_button_pressed' method. + + + + + Cached name for the 'get_input' method. + + + + + Cached name for the 'get_float' method. + + + + + Cached name for the 'get_vector2' method. + + + + + Cached name for the 'get_tracker_hand' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'button_pressed' signal. + + + + + Cached name for the 'button_released' signal. + + + + + Cached name for the 'input_float_changed' signal. + + + + + Cached name for the 'input_vector2_changed' signal. + + + + + Cached name for the 'profile_changed' signal. + + + + + An instance of this object represents a controller that is tracked. + As controllers are turned on and the detects them, instances of this object are automatically added to this list of active tracking objects accessible through the . + The consumes objects of this type and should be used in your project. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node applies weights from a to a mesh with supporting face blend shapes. + The Unified Expressions blend shapes are supported, as well as ARKit and SRanipal blend shapes. + The node attempts to identify blend shapes based on name matching. Blend shapes should match the names listed in the Unified Expressions Compatibility chart. + + + + + The path. + + + + + The of the face . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'face_tracker' property. + + + + + Cached name for the 'target' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_face_tracker' method. + + + + + Cached name for the 'get_face_tracker' method. + + + + + Cached name for the 'set_target' method. + + + + + Cached name for the 'get_target' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + An instance of this object represents a tracked face and its corresponding blend shapes. The blend shapes come from the Unified Expressions standard, and contain extended details and visuals for each blend shape. Additionally the Tracking Standard Comparison page documents the relationship between Unified Expressions and other standards. + As face trackers are turned on they are registered with the . + + + + + Right eye looks outwards. + + + + + Right eye looks inwards. + + + + + Right eye looks upwards. + + + + + Right eye looks downwards. + + + + + Left eye looks outwards. + + + + + Left eye looks inwards. + + + + + Left eye looks upwards. + + + + + Left eye looks downwards. + + + + + Closes the right eyelid. + + + + + Closes the left eyelid. + + + + + Squeezes the right eye socket muscles. + + + + + Squeezes the left eye socket muscles. + + + + + Right eyelid widens beyond relaxed. + + + + + Left eyelid widens beyond relaxed. + + + + + Dilates the right eye pupil. + + + + + Dilates the left eye pupil. + + + + + Constricts the right eye pupil. + + + + + Constricts the left eye pupil. + + + + + Right eyebrow pinches in. + + + + + Left eyebrow pinches in. + + + + + Outer right eyebrow pulls down. + + + + + Outer left eyebrow pulls down. + + + + + Inner right eyebrow pulls up. + + + + + Inner left eyebrow pulls up. + + + + + Outer right eyebrow pulls up. + + + + + Outer left eyebrow pulls up. + + + + + Right side face sneers. + + + + + Left side face sneers. + + + + + Right side nose canal dilates. + + + + + Left side nose canal dilates. + + + + + Right side nose canal constricts. + + + + + Left side nose canal constricts. + + + + + Raises the right side cheek. + + + + + Raises the left side cheek. + + + + + Puffs the right side cheek. + + + + + Puffs the left side cheek. + + + + + Sucks in the right side cheek. + + + + + Sucks in the left side cheek. + + + + + Opens jawbone. + + + + + Closes the mouth. + + + + + Pushes jawbone right. + + + + + Pushes jawbone left. + + + + + Pushes jawbone forward. + + + + + Pushes jawbone backward. + + + + + Flexes jaw muscles. + + + + + Raises the jawbone. + + + + + Upper right lip part tucks in the mouth. + + + + + Upper left lip part tucks in the mouth. + + + + + Lower right lip part tucks in the mouth. + + + + + Lower left lip part tucks in the mouth. + + + + + Right lip corner folds into the mouth. + + + + + Left lip corner folds into the mouth. + + + + + Upper right lip part pushes into a funnel. + + + + + Upper left lip part pushes into a funnel. + + + + + Lower right lip part pushes into a funnel. + + + + + Lower left lip part pushes into a funnel. + + + + + Upper right lip part pushes outwards. + + + + + Upper left lip part pushes outwards. + + + + + Lower right lip part pushes outwards. + + + + + Lower left lip part pushes outwards. + + + + + Upper right part of the lip pulls up. + + + + + Upper left part of the lip pulls up. + + + + + Lower right part of the lip pulls up. + + + + + Lower left part of the lip pulls up. + + + + + Upper right lip part pushes in the cheek. + + + + + Upper left lip part pushes in the cheek. + + + + + Moves upper lip right. + + + + + Moves upper lip left. + + + + + Moves lower lip right. + + + + + Moves lower lip left. + + + + + Right lip corner pulls diagonally up and out. + + + + + Left lip corner pulls diagonally up and out. + + + + + Right corner lip slants up. + + + + + Left corner lip slants up. + + + + + Right corner lip pulls down. + + + + + Left corner lip pulls down. + + + + + Mouth corner lip pulls out and down. + + + + + Mouth corner lip pulls out and down. + + + + + Right lip corner is pushed backwards. + + + + + Left lip corner is pushed backwards. + + + + + Raises and slightly pushes out the upper mouth. + + + + + Raises and slightly pushes out the lower mouth. + + + + + Right side lips press and flatten together vertically. + + + + + Left side lips press and flatten together vertically. + + + + + Right side lips squeeze together horizontally. + + + + + Left side lips squeeze together horizontally. + + + + + Tongue visibly sticks out of the mouth. + + + + + Tongue points upwards. + + + + + Tongue points downwards. + + + + + Tongue points right. + + + + + Tongue points left. + + + + + Sides of the tongue funnel, creating a roll. + + + + + Tongue arches up then down inside the mouth. + + + + + Tongue arches down then up inside the mouth. + + + + + Tongue squishes together and thickens. + + + + + Tongue flattens and thins out. + + + + + Tongue tip rotates clockwise, with the rest following gradually. + + + + + Tongue tip rotates counter-clockwise, with the rest following gradually. + + + + + Inner mouth throat closes. + + + + + The Adam's apple visibly swallows. + + + + + Right side neck visibly flexes. + + + + + Left side neck visibly flexes. + + + + + Closes both eye lids. + + + + + Widens both eye lids. + + + + + Squints both eye lids. + + + + + Dilates both pupils. + + + + + Constricts both pupils. + + + + + Pulls the right eyebrow down and in. + + + + + Pulls the left eyebrow down and in. + + + + + Pulls both eyebrows down and in. + + + + + Right brow appears worried. + + + + + Left brow appears worried. + + + + + Both brows appear worried. + + + + + Entire face sneers. + + + + + Both nose canals dilate. + + + + + Both nose canals constrict. + + + + + Puffs both cheeks. + + + + + Sucks in both cheeks. + + + + + Raises both cheeks. + + + + + Tucks in the upper lips. + + + + + Tucks in the lower lips. + + + + + Tucks in both lips. + + + + + Funnels in the upper lips. + + + + + Funnels in the lower lips. + + + + + Funnels in both lips. + + + + + Upper lip part pushes outwards. + + + + + Lower lip part pushes outwards. + + + + + Lips push outwards. + + + + + Raises the upper lips. + + + + + Lowers the lower lips. + + + + + Mouth opens, revealing teeth. + + + + + Moves mouth right. + + + + + Moves mouth left. + + + + + Right side of the mouth smiles. + + + + + Left side of the mouth smiles. + + + + + Mouth expresses a smile. + + + + + Right side of the mouth expresses sadness. + + + + + Left side of the mouth expresses sadness. + + + + + Mouth expresses sadness. + + + + + Mouth stretches. + + + + + Lip corners dimple. + + + + + Mouth tightens. + + + + + Mouth presses together. + + + + + Represents the size of the enum. + + + + + The array of face blend shape weights with indices corresponding to the enum. + + + + + Returns the requested face blend shape weight. + + + + + Sets a face blend shape weight. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'blend_shapes' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_blend_shape' method. + + + + + Cached name for the 'set_blend_shape' method. + + + + + Cached name for the 'get_blend_shapes' method. + + + + + Cached name for the 'set_blend_shapes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node uses hand tracking data from an to pose the skeleton of a hand mesh. + Positioning of hands is performed by creating an ancestor of the hand mesh driven by the same . + The hand tracking position-data is scaled by when applied to the skeleton, which can be used to adjust the tracked hand to match the scale of the hand model. + + + + + The skeleton's bones are fully updated (both position and rotation) to match the tracked bones. + + + + + The skeleton's bones are only rotated to align with the tracked bones, preserving bone length. + + + + + Represents the size of the enum. + + + + + The name of the registered with to obtain the hand tracking data from. + + + + + Specifies the type of updates to perform on the bones. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'hand_tracker' property. + + + + + Cached name for the 'bone_update' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_hand_tracker' method. + + + + + Cached name for the 'get_hand_tracker' method. + + + + + Cached name for the 'set_bone_update' method. + + + + + Cached name for the 'get_bone_update' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + A hand tracking system will create an instance of this object and add it to the . This tracking system will then obtain skeleton data, convert it to the Godot Humanoid hand skeleton and store this data on the object. + Use to animate a hand mesh using hand tracking data. + + + + + The source of hand tracking data is unknown. + + + + + The source of hand tracking data is unobstructed, meaning that an accurate method of hand tracking is used. These include optical hand tracking, data gloves, etc. + + + + + The source of hand tracking data is a controller, meaning that joint positions are inferred from controller inputs. + + + + + No hand tracking data is tracked, this either means the hand is obscured, the controller is turned off, or tracking is not supported for the current input type. + + + + + Represents the size of the enum. + + + + + Palm joint. + + + + + Wrist joint. + + + + + Thumb metacarpal joint. + + + + + Thumb phalanx proximal joint. + + + + + Thumb phalanx distal joint. + + + + + Thumb tip joint. + + + + + Index finger metacarpal joint. + + + + + Index finger phalanx proximal joint. + + + + + Index finger phalanx intermediate joint. + + + + + Index finger phalanx distal joint. + + + + + Index finger tip joint. + + + + + Middle finger metacarpal joint. + + + + + Middle finger phalanx proximal joint. + + + + + Middle finger phalanx intermediate joint. + + + + + Middle finger phalanx distal joint. + + + + + Middle finger tip joint. + + + + + Ring finger metacarpal joint. + + + + + Ring finger phalanx proximal joint. + + + + + Ring finger phalanx intermediate joint. + + + + + Ring finger phalanx distal joint. + + + + + Ring finger tip joint. + + + + + Pinky finger metacarpal joint. + + + + + Pinky finger phalanx proximal joint. + + + + + Pinky finger phalanx intermediate joint. + + + + + Pinky finger phalanx distal joint. + + + + + Pinky finger tip joint. + + + + + Represents the size of the enum. + + + + + The hand joint's orientation data is valid. + + + + + The hand joint's orientation is actively tracked. May not be set if tracking has been temporarily lost. + + + + + The hand joint's position data is valid. + + + + + The hand joint's position is actively tracked. May not be set if tracking has been temporarily lost. + + + + + The hand joint's linear velocity data is valid. + + + + + The hand joint's angular velocity data is valid. + + + + + If , the hand tracking data is valid. + + + + + The source of the hand tracking data. + + + + + Sets flags about the validity of the tracking data for the given hand joint. + + + + + Returns flags about the validity of the tracking data for the given hand joint (see ). + + + + + Sets the transform for the given hand joint. + + + + + Returns the transform for the given hand joint. + + + + + Sets the radius of the given hand joint. + + + + + Returns the radius of the given hand joint. + + + + + Sets the linear velocity for the given hand joint. + + + + + Returns the linear velocity for the given hand joint. + + + + + Sets the angular velocity for the given hand joint. + + + + + Returns the angular velocity for the given hand joint. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'has_tracking_data' property. + + + + + Cached name for the 'hand_tracking_source' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_has_tracking_data' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'set_hand_tracking_source' method. + + + + + Cached name for the 'get_hand_tracking_source' method. + + + + + Cached name for the 'set_hand_joint_flags' method. + + + + + Cached name for the 'get_hand_joint_flags' method. + + + + + Cached name for the 'set_hand_joint_transform' method. + + + + + Cached name for the 'get_hand_joint_transform' method. + + + + + Cached name for the 'set_hand_joint_radius' method. + + + + + Cached name for the 'get_hand_joint_radius' method. + + + + + Cached name for the 'set_hand_joint_linear_velocity' method. + + + + + Cached name for the 'get_hand_joint_linear_velocity' method. + + + + + Cached name for the 'set_hand_joint_angular_velocity' method. + + + + + Cached name for the 'get_hand_joint_angular_velocity' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + + + + + No XR capabilities. + + + + + This interface can work with normal rendering output (non-HMD based AR). + + + + + This interface supports stereoscopic rendering. + + + + + This interface supports quad rendering (not yet supported by Godot). + + + + + This interface supports VR. + + + + + This interface supports AR (video background and real world tracking). + + + + + 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 ). Using a separate viewport node frees up the main viewport for other purposes. + + + + + Tracking is behaving as expected. + + + + + Tracking is hindered by excessive motion (the player is moving faster than tracking can keep up). + + + + + Tracking is hindered by insufficient features, it's too dark (for camera-based tracking), player is blocked, etc. + + + + + We don't know the status of the tracking or this interface does not provide feedback. + + + + + Tracking is not functional (camera not plugged in or obscured, lighthouses turned off, etc.). + + + + + Play area mode not set or not available. + + + + + Play area only supports orientation tracking, no positional tracking, area will center around player. + + + + + Player is in seated position, limited positional tracking, fixed guardian around player. + + + + + Player is free to move around, full positional tracking. + + + + + Same as but origin point is fixed to the center of the physical space. In this mode, system-level recentering may be disabled, requiring the use of . + + + + + Opaque blend mode. This is typically used for VR devices. + + + + + Additive blend mode. This is typically used for AR devices or VR devices with passthrough. + + + + + 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. + + + + + if this is the primary interface. + + + + + The play area mode for this interface. + + + + + Specify how XR should blend in the environment. This is specific to certain AR and passthrough devices where camera images are blended in by the XR compositor. + + + + + On an AR interface, if anchor detection is enabled. + + + + + Returns the name of this interface ("OpenXR", "OpenVR", "OpenHMD", "ARKit", etc.). + + + + + Returns a combination of flags providing information about the capabilities of this interface. + + + + + Returns if this interface has been initialized. + + + + + Call this to initialize this interface. The first interface that is initialized is identified as the primary interface and it will be used for rendering output. + After initializing the interface you want to use you then need to enable the AR/VR mode of a viewport and rendering should commence. + Note: You must enable the XR mode on the main viewport for any device that uses the main output of Godot, such as for mobile VR. + If you do this for a platform that handles its own output (such as OpenVR) Godot will show just one eye without distortion on screen. Alternatively, you can add a separate viewport node to your scene and enable AR/VR on that viewport. It will be used to output to the HMD, leaving you free to do anything you like in the main window, such as using a separate camera as a spectator camera or rendering something completely different. + While currently not used, you can activate additional interfaces. You may wish to do this if you want to track controllers from other platforms. However, at this point in time only one interface can render to an HMD. + + + + + Turns the interface off. + + + + + Returns a with extra system info. Interfaces are expected to return XRRuntimeName and XRRuntimeVersion providing info about the used XR runtime. Additional entries may be provided specific to an interface. + Note:This information may only be available after was successfully called. + + + + + If supported, returns the status of our tracking. This will allow you to provide feedback to the user whether there are issues with positional tracking. + + + + + Returns the resolution at which we should render our intermediate results before things like lens distortion are applied by the VR platform. + + + + + Returns the number of views that need to be rendered for this device. 1 for Monoscopic, 2 for Stereoscopic. + + + + + Triggers a haptic pulse on a device associated with this interface. + is the name of the action for this pulse. + is optional and can be used to direct the pulse to a specific device provided that device is bound to this haptic. + is the frequency of the pulse, set to 0.0 to have the system use a default frequency. + is the amplitude of the pulse between 0.0 and 1.0. + is the duration of the pulse in seconds. + is a delay in seconds before the pulse is given. + + + + + Call this to find out if a given play area mode is supported by this interface. + + + + + Sets the active play area mode, will return if the mode can't be used with this interface. + Note: Changing this after the interface has already been initialized can be jarring for the player, so it's recommended to recenter on the HMD with (if switching to ) or make the switch during a scene change. + + + + + Returns an array of vectors that represent the physical play area mapped to the virtual space around the point. The points form a convex polygon that can be used to react to or visualize the play area. This returns an empty array if this feature is not supported or if the information is not yet available. + + + + + If this is an AR interface that requires displaying a camera feed as the background, this method returns the feed ID in the for this interface. + + + + + Returns if this interface supports passthrough. + + + + + Returns if passthrough is enabled. + + + + + Starts passthrough, will return if passthrough couldn't be started. + Note: The viewport used for XR must have a transparent background, otherwise passthrough may not properly render. + + + + + Stops passthrough. + + + + + Returns the transform for a view/eye. + is the view/eye index. + is the transform that maps device coordinates to scene coordinates, typically the of the current XROrigin3D. + + + + + Returns the projection matrix for a view/eye. + + + + + Returns the an array of supported environment blend modes, see . + + + + + Sets the active environment blend mode. + is the environment blend mode starting with the next frame. + Note: Not all runtimes support all environment blend modes, so it is important to check this at startup. For example: + + func _ready(): + var xr_interface = XRServer.find_interface("OpenXR") + if xr_interface and xr_interface.is_initialized(): + var vp = get_viewport() + vp.use_xr = true + var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, XRInterface.XR_ENV_BLEND_MODE_ADDITIVE] + var modes = xr_interface.get_supported_environment_blend_modes() + for mode in acceptable_modes: + if mode in modes: + xr_interface.set_environment_blend_mode(mode) + break + + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the play area is changed. This can be a result of the player resetting the boundary or entering a new play area, the player changing the play area mode, the world scale changing or the player resetting their headset orientation. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'interface_is_primary' property. + + + + + Cached name for the 'xr_play_area_mode' property. + + + + + Cached name for the 'environment_blend_mode' property. + + + + + Cached name for the 'ar_is_anchor_detection_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_capabilities' method. + + + + + Cached name for the 'is_primary' method. + + + + + Cached name for the 'set_primary' method. + + + + + Cached name for the 'is_initialized' method. + + + + + Cached name for the 'initialize' method. + + + + + Cached name for the 'uninitialize' method. + + + + + Cached name for the 'get_system_info' method. + + + + + Cached name for the 'get_tracking_status' method. + + + + + Cached name for the 'get_render_target_size' method. + + + + + Cached name for the 'get_view_count' method. + + + + + Cached name for the 'trigger_haptic_pulse' method. + + + + + Cached name for the 'supports_play_area_mode' method. + + + + + Cached name for the 'get_play_area_mode' method. + + + + + Cached name for the 'set_play_area_mode' method. + + + + + Cached name for the 'get_play_area' method. + + + + + Cached name for the 'get_anchor_detection_is_enabled' method. + + + + + Cached name for the 'set_anchor_detection_is_enabled' method. + + + + + Cached name for the 'get_camera_feed_id' method. + + + + + Cached name for the 'is_passthrough_supported' method. + + + + + Cached name for the 'is_passthrough_enabled' method. + + + + + Cached name for the 'start_passthrough' method. + + + + + Cached name for the 'stop_passthrough' method. + + + + + Cached name for the 'get_transform_for_view' method. + + + + + Cached name for the 'get_projection_for_view' method. + + + + + Cached name for the 'get_supported_environment_blend_modes' method. + + + + + Cached name for the 'set_environment_blend_mode' method. + + + + + Cached name for the 'get_environment_blend_mode' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'play_area_changed' signal. + + + + + External XR interface plugins should inherit from this class. + + + + + Called if interface is active and queues have been submitted. + + + + + Return if anchor detection is enabled for this interface. + + + + + Returns the camera feed ID for the registered with the that should be presented as the background on an AR capable device (if applicable). + + + + + Returns the that positions the in the world. + + + + + Returns the capabilities of this interface. + + + + + Return color texture into which to render (if applicable). + + + + + Return depth texture into which to render (if applicable). + + + + + Returns the name of this interface. + + + + + Returns a [] that represents the play areas boundaries (if applicable). + + + + + Returns the play area mode that sets up our play area. + + + + + Returns the projection matrix for the given view as a []. + + + + + Returns the size of our render target for this interface, this overrides the size of the marked as the xr viewport. + + + + + Returns a [] with pose names configured by this interface. Note that user configuration can override this list. + + + + + Returns a [] with tracker names configured by this interface. Note that user configuration can override this list. + + + + + Returns a with system information related to this interface. + + + + + Returns a specifying the current status of our tracking. + + + + + Returns a for a given view. + + + + + Return velocity texture into which to render (if applicable). + + + + + Returns the number of views this interface requires, 1 for mono, 2 for stereoscopic. + + + + + Initializes the interface, returns on success. + + + + + Returns if this interface has been initialized. + + + + + Called after the XR draw logic has completed. + + + + + Called if this is our primary before we start processing a for every active XR , returns if that viewport should be rendered. An XR interface may return if the user has taken off their headset and we can pause rendering. + + + + + Called if this is active before rendering starts. Most XR interfaces will sync tracking at this point in time. + + + + + Called if this is active before our physics and game process is called. Most XR interfaces will update its s at this point in time. + + + + + Enables anchor detection on this interface if supported. + + + + + Set the play area mode for this interface. + + + + + Returns if this interface supports this play area mode. + + + + + Triggers a haptic pulse to be emitted on the specified tracker. + + + + + Uninitialize the interface. + + + + + Blits our render results to screen optionally applying lens distortion. This can only be called while processing _commit_views. + + + + + Returns a valid for a texture to which we should render the current frame if supported by the interface. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_end_frame' method. + + + + + Cached name for the '_get_anchor_detection_is_enabled' method. + + + + + Cached name for the '_get_camera_feed_id' method. + + + + + Cached name for the '_get_camera_transform' method. + + + + + Cached name for the '_get_capabilities' method. + + + + + Cached name for the '_get_color_texture' method. + + + + + Cached name for the '_get_depth_texture' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_play_area' method. + + + + + Cached name for the '_get_play_area_mode' method. + + + + + Cached name for the '_get_projection_for_view' method. + + + + + Cached name for the '_get_render_target_size' method. + + + + + Cached name for the '_get_suggested_pose_names' method. + + + + + Cached name for the '_get_suggested_tracker_names' method. + + + + + Cached name for the '_get_system_info' method. + + + + + Cached name for the '_get_tracking_status' method. + + + + + Cached name for the '_get_transform_for_view' method. + + + + + Cached name for the '_get_velocity_texture' method. + + + + + Cached name for the '_get_view_count' method. + + + + + Cached name for the '_get_vrs_texture' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_is_initialized' method. + + + + + Cached name for the '_post_draw_viewport' method. + + + + + Cached name for the '_pre_draw_viewport' method. + + + + + Cached name for the '_pre_render' method. + + + + + Cached name for the '_process' method. + + + + + Cached name for the '_set_anchor_detection_is_enabled' method. + + + + + Cached name for the '_set_play_area_mode' method. + + + + + Cached name for the '_supports_play_area_mode' method. + + + + + Cached name for the '_trigger_haptic_pulse' method. + + + + + Cached name for the '_uninitialize' method. + + + + + Cached name for the 'get_color_texture' method. + + + + + Cached name for the 'get_depth_texture' method. + + + + + Cached name for the 'get_velocity_texture' method. + + + + + Cached name for the 'add_blit' method. + + + + + Cached name for the 'get_render_target_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node can be bound to a specific pose of a and will automatically have its updated by the . Nodes of this type must be added as children of the node. + + + + + The name of the tracker we're bound to. Which trackers are available is not known during design time. + Godot defines a number of standard trackers such as left_hand and right_hand but others may be configured within a given . + + + + + The name of the pose we're bound to. Which poses a tracker supports is not known during design time. + Godot defines number of standard pose names such as aim and grip but other may be configured within a given . + + + + + Enables showing the node when tracking starts, and hiding the node when tracking is lost. + + + + + Returns if the has been registered and the is being tracked. + + + + + Returns if the has current tracking data for the being tracked. + + + + + Returns the containing the current state of the pose being tracked. This gives access to additional properties of this pose. + + + + + Triggers a haptic pulse on a device associated with this interface. + is the name of the action for this pulse. + is the frequency of the pulse, set to 0.0 to have the system use a default frequency. + is the amplitude of the pulse between 0.0 and 1.0. + is the duration of the pulse in seconds. + is a delay in seconds before the pulse is given. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the starts or stops receiving updated tracking data for the being tracked. The tracking argument indicates whether the tracker is getting updated tracking data. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'tracker' property. + + + + + Cached name for the 'pose' property. + + + + + Cached name for the 'show_when_tracked' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_tracker' method. + + + + + Cached name for the 'get_tracker' method. + + + + + Cached name for the 'set_pose_name' method. + + + + + Cached name for the 'get_pose_name' method. + + + + + Cached name for the 'set_show_when_tracked' method. + + + + + Cached name for the 'get_show_when_tracked' method. + + + + + Cached name for the 'get_is_active' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'get_pose' method. + + + + + Cached name for the 'trigger_haptic_pulse' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'tracking_changed' signal. + + + + + 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 , , and 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 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. + + + + + The scale of the game world compared to the real world. This is the same as . By default, most AR/VR platforms assume that 1 game unit corresponds to 1 real world meter. + + + + + If , this origin node is currently being used by the . Only one origin point can be used at a time. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'world_scale' property. + + + + + Cached name for the 'current' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_world_scale' method. + + + + + Cached name for the 'get_world_scale' method. + + + + + Cached name for the 'set_current' method. + + + + + Cached name for the 'is_current' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + No tracking information is available for this pose. + + + + + Tracking information may be inaccurate or estimated. For example, with inside out tracking this would indicate a controller may be (partially) obscured. + + + + + Tracking information is considered accurate and up to date. + + + + + If our tracking data is up to date. If we're no longer receiving new tracking data and our state is whatever that last valid state was. + + + + + The name of this pose. Usually, this name is derived from an action map set up by the user. Godot also suggests some pose names that objects are expected to implement: + - root is the root location, often used for tracked objects that do not have further nodes. + - aim is the tip of a controller with its orientation pointing outwards, often used for raycasts. + - grip is the location where the user grips the controller. + - skeleton is the root location for a hand mesh, when using hand tracking and an animated skeleton is supplied by the XR runtime. + + + + + The transform containing the original and transform as reported by the XR runtime. + + + + + The linear velocity of this pose. + + + + + The angular velocity for this pose. + + + + + The tracking confidence for this pose, provides insight on how accurate the spatial positioning of this record is. + + + + + Returns the with world scale and our reference frame applied. This is the transform used to position objects. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'has_tracking_data' property. + + + + + Cached name for the 'name' property. + + + + + Cached name for the 'transform' property. + + + + + Cached name for the 'linear_velocity' property. + + + + + Cached name for the 'angular_velocity' property. + + + + + Cached name for the 'tracking_confidence' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_has_tracking_data' method. + + + + + Cached name for the 'get_has_tracking_data' method. + + + + + Cached name for the 'set_name' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'set_transform' method. + + + + + Cached name for the 'get_transform' method. + + + + + Cached name for the 'get_adjusted_transform' method. + + + + + Cached name for the 'set_linear_velocity' method. + + + + + Cached name for the 'get_linear_velocity' method. + + + + + Cached name for the 'set_angular_velocity' method. + + + + + Cached name for the 'get_angular_velocity' method. + + + + + Cached name for the 'set_tracking_confidence' method. + + + + + Cached name for the 'get_tracking_confidence' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 detects them, instances of this object are automatically added to this list of active tracking objects accessible through the . + The and 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. + + + + + The hand this tracker is held in is unknown or not applicable. + + + + + This tracker is the left hand controller. + + + + + This tracker is the right hand controller. + + + + + Represents the size of the enum. + + + + + The profile associated with this tracker, interface dependent but will indicate the type of controller being tracked. + + + + + Defines which hand this tracker relates to. + + + + + Returns if the tracker is available and is currently tracking the bound pose. + + + + + Returns the current state object for the bound pose. + + + + + Marks this pose as invalid, we don't clear the last reported state but it allows users to decide if trackers need to be hidden if we lose tracking or just remain at their last known position. + + + + + Sets the transform, linear velocity, angular velocity and tracking confidence for the given pose. This method is called by a implementation and should not be used directly. + + + + + Returns an input for this tracker. It can return a boolean, float or value depending on whether the input is a button, trigger or thumbstick/thumbpad. + + + + + Changes the value for the given input. This method is called by a implementation and should not be used directly. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the state of a pose tracked by this tracker changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a pose tracked by this tracker stops getting updated tracking data. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this tracker is pressed. Note that many XR runtimes allow other inputs to be mapped to buttons. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a button on this tracker is released. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a trigger or similar input on this tracker changes value. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a thumbstick or thumbpad on this tracker moves. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the profile of our tracker changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'profile' property. + + + + + Cached name for the 'hand' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tracker_profile' method. + + + + + Cached name for the 'set_tracker_profile' method. + + + + + Cached name for the 'get_tracker_hand' method. + + + + + Cached name for the 'set_tracker_hand' method. + + + + + Cached name for the 'has_pose' method. + + + + + Cached name for the 'get_pose' method. + + + + + Cached name for the 'invalidate_pose' method. + + + + + Cached name for the 'set_pose' method. + + + + + Cached name for the 'get_input' method. + + + + + Cached name for the 'set_input' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'pose_changed' signal. + + + + + Cached name for the 'pose_lost_tracking' signal. + + + + + Cached name for the 'button_pressed' signal. + + + + + Cached name for the 'button_released' signal. + + + + + Cached name for the 'input_float_changed' signal. + + + + + Cached name for the 'input_vector2_changed' signal. + + + + + Cached name for the 'profile_changed' signal. + + + + + The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing. + + + + + 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. + + + + + The tracker tracks the location of a controller. + + + + + The tracker tracks the location of a base station. + + + + + The tracker tracks the location and size of an AR anchor. + + + + + The tracker tracks the location and joints of a hand. + + + + + The tracker tracks the location and joints of a body. + + + + + The tracker tracks the expressions of a face. + + + + + Used internally to filter trackers of any known type. + + + + + Used internally if we haven't set the tracker type yet. + + + + + Used internally to select all trackers. + + + + + 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. + + + + + 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. + + + + + Does not reset the orientation of the HMD, only the position of the player gets centered. + + + + + The scale of the game world compared to the real world. By default, most AR/VR platforms assume that 1 game unit corresponds to 1 real world meter. + + + + + The current origin of our tracking space in the virtual world. This is used by the renderer to properly position the camera with new tracking data. + Note: This property is managed by the current node. It is exposed for access from GDExtensions. + + + + + If set to , the scene will be rendered as if the camera is locked to the . + Note: This doesn't provide a very comfortable experience for users. This setting exists for doing benchmarking or automated testing, where you want to control what is rendered via code. + + + + + The primary currently bound to the . + + + + + Returns the reference frame transform. Mostly used internally and exposed for GDExtension build interfaces. + + + + + Clears the reference frame that was set by previous calls to . + + + + + This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently. + For platforms that do not offer spatial tracking, our origin point (0, 0, 0) is the location of our HMD, but you have little control over the direction the player is facing in the real world. + For platforms that do offer spatial tracking, our origin point depends very much on the system. For OpenVR, our origin point is usually the center of the tracking space, on the ground. For other platforms, it's often the location of the tracking camera. + This method allows you to center your tracker on the location of the HMD. It will take the current location of the HMD and use that to adjust all your tracking data; in essence, realigning the real world to your player's current position in the game world. + For this method to produce usable results, tracking information must be available. This often takes a few frames after starting your game. + You should call this method after a few seconds have passed. For example, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism. + + + + + Returns the primary interface's transformation. + + + + + Registers an object. + + + + + Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns . + + + + + Removes this . + + + + + Returns the interface registered at the given index in the list of interfaces. + + + + + Returns a list of available interfaces the ID and name of each interface. + + + + + Finds an interface by its . For example, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it. + + + + + Registers a new that tracks a physical object. + + + + + Removes this . + + + + + Returns a dictionary of trackers for . + + + + + Returns the positional tracker with the given . + + + + + Removes this . + + + + + Registers a new that tracks a physical object. + + + + + Emitted when the reference frame transform changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new tracker has been added. If you don't use a fixed number of controllers or if you're using s for an AR solution, it is important to react to this signal to add the appropriate or nodes related to this new tracker. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an existing tracker has been updated. This can happen if the user switches controllers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tracker is removed. You should remove any or points if applicable. This is not mandatory, the nodes simply become inactive and will be made active again when a new tracker becomes available (i.e. a new controller is switched on that takes the place of the previous one). + + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'world_scale' property. + + + + + Cached name for the 'world_origin' property. + + + + + Cached name for the 'camera_locked_to_origin' property. + + + + + Cached name for the 'primary_interface' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_world_scale' method. + + + + + Cached name for the 'set_world_scale' method. + + + + + Cached name for the 'get_world_origin' method. + + + + + Cached name for the 'set_world_origin' method. + + + + + Cached name for the 'get_reference_frame' method. + + + + + Cached name for the 'clear_reference_frame' method. + + + + + Cached name for the 'center_on_hmd' method. + + + + + Cached name for the 'get_hmd_transform' method. + + + + + Cached name for the 'set_camera_locked_to_origin' method. + + + + + Cached name for the 'is_camera_locked_to_origin' method. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'add_tracker' method. + + + + + Cached name for the 'remove_tracker' method. + + + + + Cached name for the 'get_trackers' method. + + + + + Cached name for the 'get_tracker' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'reference_frame_changed' signal. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + Cached name for the 'tracker_added' signal. + + + + + Cached name for the 'tracker_updated' signal. + + + + + Cached name for the 'tracker_removed' signal. + + + + + The AR/VR server is the heart of our Advanced and Virtual Reality solution and handles all the processing. + + + + + The scale of the game world compared to the real world. By default, most AR/VR platforms assume that 1 game unit corresponds to 1 real world meter. + + + + + The current origin of our tracking space in the virtual world. This is used by the renderer to properly position the camera with new tracking data. + Note: This property is managed by the current node. It is exposed for access from GDExtensions. + + + + + If set to , the scene will be rendered as if the camera is locked to the . + Note: This doesn't provide a very comfortable experience for users. This setting exists for doing benchmarking or automated testing, where you want to control what is rendered via code. + + + + + The primary currently bound to the . + + + + + Returns the reference frame transform. Mostly used internally and exposed for GDExtension build interfaces. + + + + + Clears the reference frame that was set by previous calls to . + + + + + This is an important function to understand correctly. AR and VR platforms all handle positioning slightly differently. + For platforms that do not offer spatial tracking, our origin point (0, 0, 0) is the location of our HMD, but you have little control over the direction the player is facing in the real world. + For platforms that do offer spatial tracking, our origin point depends very much on the system. For OpenVR, our origin point is usually the center of the tracking space, on the ground. For other platforms, it's often the location of the tracking camera. + This method allows you to center your tracker on the location of the HMD. It will take the current location of the HMD and use that to adjust all your tracking data; in essence, realigning the real world to your player's current position in the game world. + For this method to produce usable results, tracking information must be available. This often takes a few frames after starting your game. + You should call this method after a few seconds have passed. For example, when the user requests a realignment of the display holding a designated button on a controller for a short period of time, or when implementing a teleport mechanism. + + + + + Returns the primary interface's transformation. + + + + + Registers an object. + + + + + Returns the number of interfaces currently registered with the AR/VR server. If your project supports multiple AR/VR platforms, you can look through the available interface, and either present the user with a selection or simply try to initialize each interface and use the first one that returns . + + + + + Removes this . + + + + + Returns the interface registered at the given index in the list of interfaces. + + + + + Returns a list of available interfaces the ID and name of each interface. + + + + + Finds an interface by its . For example, if your project uses capabilities of an AR/VR platform, you can find the interface for that platform by name and initialize it. + + + + + Registers a new that tracks a physical object. + + + + + Removes this . + + + + + Returns a dictionary of trackers for . + + + + + Returns the positional tracker with the given . + + + + + Removes this . + + + + + Registers a new that tracks a physical object. + + + + + Emitted when the reference frame transform changes. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new interface has been added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an interface is removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new tracker has been added. If you don't use a fixed number of controllers or if you're using s for an AR solution, it is important to react to this signal to add the appropriate or nodes related to this new tracker. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an existing tracker has been updated. This can happen if the user switches controllers. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a tracker is removed. You should remove any or points if applicable. This is not mandatory, the nodes simply become inactive and will be made active again when a new tracker becomes available (i.e. a new controller is switched on that takes the place of the previous one). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'world_scale' property. + + + + + Cached name for the 'world_origin' property. + + + + + Cached name for the 'camera_locked_to_origin' property. + + + + + Cached name for the 'primary_interface' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_world_scale' method. + + + + + Cached name for the 'set_world_scale' method. + + + + + Cached name for the 'get_world_origin' method. + + + + + Cached name for the 'set_world_origin' method. + + + + + Cached name for the 'get_reference_frame' method. + + + + + Cached name for the 'clear_reference_frame' method. + + + + + Cached name for the 'center_on_hmd' method. + + + + + Cached name for the 'get_hmd_transform' method. + + + + + Cached name for the 'set_camera_locked_to_origin' method. + + + + + Cached name for the 'is_camera_locked_to_origin' method. + + + + + Cached name for the 'add_interface' method. + + + + + Cached name for the 'get_interface_count' method. + + + + + Cached name for the 'remove_interface' method. + + + + + Cached name for the 'get_interface' method. + + + + + Cached name for the 'get_interfaces' method. + + + + + Cached name for the 'find_interface' method. + + + + + Cached name for the 'add_tracker' method. + + + + + Cached name for the 'remove_tracker' method. + + + + + Cached name for the 'get_trackers' method. + + + + + Cached name for the 'get_tracker' method. + + + + + Cached name for the 'get_primary_interface' method. + + + + + Cached name for the 'set_primary_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'reference_frame_changed' signal. + + + + + Cached name for the 'interface_added' signal. + + + + + Cached name for the 'interface_removed' signal. + + + + + Cached name for the 'tracker_added' signal. + + + + + Cached name for the 'tracker_updated' signal. + + + + + Cached name for the 'tracker_removed' signal. + + + + + This object is the base of all XR trackers. + + + + + The type of tracker. + + + + + The unique name of this tracker. The trackers that are available differ between various XR runtimes and can often be configured by the user. Godot maintains a number of reserved names that it expects the to implement if applicable: + - head identifies the of the players head + - left_hand identifies the in the players left hand + - right_hand identifies the in the players right hand + - /user/hand_tracker/left identifies the for the players left hand + - /user/hand_tracker/right identifies the for the players right hand + - /user/body_tracker identifies the for the players body + - /user/face_tracker identifies the for the players face + + + + + The description of this tracker. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'type' property. + + + + + Cached name for the 'name' property. + + + + + Cached name for the 'description' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_tracker_type' method. + + + + + Cached name for the 'set_tracker_type' method. + + + + + Cached name for the 'get_tracker_name' method. + + + + + Cached name for the 'set_tracker_name' method. + + + + + Cached name for the 'get_tracker_desc' method. + + + + + Cached name for the 'set_tracker_desc' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used by various XR interfaces to generate VRS textures that can be used to speed up rendering. + + + + + The minimum radius around the focal point where full quality is guaranteed if VRS is used as a percentage of screen size. + + + + + The strength used to calculate the VRS density map. The greater this value, the more noticeable VRS is. + + + + + Generates the VRS texture based on a render adjusted by our VRS tile size. For each eyes focal point passed in a layer is created. Focal point should be in NDC. + The result will be cached, requesting a VRS texture with unchanged parameters and settings will return the cached RID. + + + + + Generates the VRS texture based on a render adjusted by our VRS tile size. For each eyes focal point passed in a layer is created. Focal point should be in NDC. + The result will be cached, requesting a VRS texture with unchanged parameters and settings will return the cached RID. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'vrs_min_radius' property. + + + + + Cached name for the 'vrs_strength' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_vrs_min_radius' method. + + + + + Cached name for the 'set_vrs_min_radius' method. + + + + + Cached name for the 'get_vrs_strength' method. + + + + + Cached name for the 'set_vrs_strength' method. + + + + + Cached name for the 'make_vrs_texture' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class implements a writer that allows storing the multiple blobs in a ZIP archive. See also and . + + # Create a ZIP archive with a single file at its root. + 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 + + + + + + Create a new zip archive at the given path. + + + + + Append a new zip archive to the end of the already existing file at the given path. + + + + + Add new files to the existing zip archive at the given path. + + + + + Opens a zip file for writing at the given path using the specified write mode. + This must be called before everything else. + + + + + Starts writing to a file within the archive. Only one file can be written at the same time. + Must be called after . + + + + + Write the given to the file. + Needs to be called after . + + + + + Write the given to the file. + Needs to be called after . + + + + + Stops writing to a file within the archive. + It will fail if there is no open file. + + + + + Closes the underlying resources used by this instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'start_file' method. + + + + + Cached name for the 'write_file' method. + + + + + Cached name for the 'close_file' method. + + + + + Cached name for the 'close' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class implements a reader that can extract the content of individual files inside a ZIP archive. See also . + + # Read a single file from a ZIP archive. + func read_zip_file(): + var reader = ZIPReader.new() + var err = reader.open("user://archive.zip") + if err != OK: + return PackedByteArray() + var res = reader.read_file("hello.txt") + reader.close() + return res + + # Extract all files from a ZIP archive, preserving the directories within. + # This acts like the "Extract all" functionality from most archive managers. + func extract_all_from_zip(): + var reader = ZIPReader.new() + reader.open("res://archive.zip") + + # Destination directory for the extracted files (this folder must exist before extraction). + # Not all ZIP archives put everything in a single root folder, + # which means several files/folders may be created in `root_dir` after extraction. + var root_dir = DirAccess.open("user://") + + var files = reader.get_files() + for file_path in files: + # If the current entry is a directory. + if file_path.ends_with("/"): + root_dir.make_dir_recursive(file_path) + continue + + # Write file contents, creating folders automatically when needed. + # Not all ZIP archives are strictly ordered, so we need to do this in case + # the file entry comes before the folder entry. + root_dir.make_dir_recursive(root_dir.get_current_dir().path_join(file_path).get_base_dir()) + var file = FileAccess.open(root_dir.get_current_dir().path_join(file_path), FileAccess.WRITE) + var buffer = reader.read_file(file_path) + file.store_buffer(buffer) + + + + + + Opens the zip archive at the given and reads its file index. + + + + + Closes the underlying resources used by this instance. + + + + + Returns the list of names of all files in the loaded archive. + Must be called after . + + + + + Loads the whole content of a file in the loaded zip archive into memory and returns it. + Must be called after . + + + + + Returns if the file exists in the loaded zip archive. + Must be called after . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'open' method. + + + + + Cached name for the 'close' method. + + + + + Cached name for the 'get_files' method. + + + + + Cached name for the 'read_file' method. + + + + + Cached name for the 'file_exists' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + diff --git a/bin/GodotSharp/Api/Release/GodotSharpEditor.dll b/bin/GodotSharp/Api/Release/GodotSharpEditor.dll new file mode 100644 index 0000000..5f1dbb6 Binary files /dev/null and b/bin/GodotSharp/Api/Release/GodotSharpEditor.dll differ diff --git a/bin/GodotSharp/Api/Release/GodotSharpEditor.pdb b/bin/GodotSharp/Api/Release/GodotSharpEditor.pdb new file mode 100644 index 0000000..1184e65 Binary files /dev/null and b/bin/GodotSharp/Api/Release/GodotSharpEditor.pdb differ diff --git a/bin/GodotSharp/Api/Release/GodotSharpEditor.xml b/bin/GodotSharp/Api/Release/GodotSharpEditor.xml new file mode 100644 index 0000000..146b353 --- /dev/null +++ b/bin/GodotSharp/Api/Release/GodotSharpEditor.xml @@ -0,0 +1,11968 @@ + + + + GodotSharpEditor + + + + + is a manager for objects associated with edited scenes. Each scene has its own undo history and ensures that each action performed in the editor gets associated with a proper scene. For actions not related to scenes ( edits, external resources, etc.), a separate global history is used. + The usage is mostly the same as . 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 , 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. + is intended to be used by Godot editor plugins. You can obtain it using . For non-editor uses or plugins that don't need to integrate with the editor's undo history, use instead. + The manager's API is mostly the same as in , so you can refer to its documentation for more examples. The main difference is that uses object + method name for actions, instead of . + + + + + + + + Global history not associated with any scene, but with external resources etc. + + + + + History associated with remote inspector. Used when live editing a running project. + + + + + Invalid "null" history. It's a special value, not associated with any object. + + + + + Create a new action. After this is called, do all your calls to , , , and , then commit the action with . + The way actions are merged is dictated by the argument. See for details. + If object is provided, it will be used for deducing target history (instead of using the first operation). + The way undo operation are ordered in actions is dictated by . When is undo option are ordered in the same order they were added. Which means the first operation to be added will be the first to be undone. + + + + + Commits the action. If is (default), all "do" methods/properties are called/set when this function is called. + + + + + Returns if the is currently committing the action, i.e. running its "do" method or property change (see ). + + + + + Forces the next operation (e.g. ) to use the action's history rather than guessing it from the object. This is sometimes needed when a history can't be correctly determined, like for a nested resource that doesn't have a path yet. + This method should only be used when absolutely necessary, otherwise it might cause invalid history state. For most of complex cases, the custom_context parameter of is sufficient. + + + + + Register a method that will be called when the action is committed (i.e. the "do" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a method that will be called when the action is committed (i.e. the "do" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a method that will be called when the action is undone (i.e. the "undo" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a method that will be called when the action is undone (i.e. the "undo" action). + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a property value change for "do". + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a property value change for "undo". + If this is the first operation, the will be used to deduce target undo history. + + + + + Register a reference for "do" that will be erased if the "do" history is lost. This is useful mostly for new nodes created for the "do" call. Do not use for resources. + + + + + Register a reference for "undo" that will be erased if the "undo" history is lost. This is useful mostly for nodes removed with the "do" call (not the "undo" call!). + + + + + Returns the history ID deduced from the given . It can be used with . + + + + + Returns the object associated with the given history . + above 0 are mapped to the opened scene tabs (but it doesn't match their order). of 0 or lower have special meaning (see ). + Best used with . This method is only provided in case you need some more advanced methods of (but keep in mind that directly operating on the object might affect editor's stability). + + + + + Clears the given undo history. You can clear history for a specific scene, global history, or for all scenes at once if is . + If is , the undo history version will be increased, marking it as unsaved. Useful for operations that modify the scene, but don't support undo. + + var scene_root = EditorInterface.get_edited_scene_root() + var undo_redo = EditorInterface.get_editor_undo_redo() + undo_redo.clear_history(undo_redo.get_object_history_id(scene_root)) + + Note: If you want to mark an edited scene as unsaved without clearing its history, use instead. + + + + + Emitted when the list of actions in any history has changed, either when an action is committed or a history is cleared. + + + + + Emitted when the version of any history has changed as a result of undo or redo call. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'create_action' method. + + + + + Cached name for the 'commit_action' method. + + + + + Cached name for the 'is_committing_action' method. + + + + + Cached name for the 'force_fixed_history' method. + + + + + Cached name for the 'add_do_method' method. + + + + + Cached name for the 'add_undo_method' method. + + + + + Cached name for the 'add_do_property' method. + + + + + Cached name for the 'add_undo_property' method. + + + + + Cached name for the 'add_do_reference' method. + + + + + Cached name for the 'add_undo_reference' method. + + + + + Cached name for the 'get_object_history_id' method. + + + + + Cached name for the 'get_history_undo_redo' method. + + + + + Cached name for the 'clear_history' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'history_changed' signal. + + + + + Cached name for the 'version_changed' signal. + + + + + Object that holds all the available Commands and their shortcuts text. These Commands can be accessed through Editor > Command Palette menu. + Command key names use slash delimiters to distinguish sections, for example: "example/command1" then example will be the section name. + + 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) + + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Adds a custom command to EditorCommandPalette. + - : (Name of the Command. This is displayed to the user.) + - : (Name of the key for a particular Command. This is used to uniquely identify the Command.) + - : (Callable of the Command. This will be executed when the Command is selected.) + - : (Shortcut text of the Command if available.) + + + + + Removes the custom command from EditorCommandPalette. + - : (Name of the key for a particular Command.) + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'add_command' method. + + + + + Cached name for the 'remove_command' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows for the addition of custom options in the editor's context menu. + Currently, context menus are supported for three commonly used areas: the file system, scene tree, and editor script list panel. + + + + + Context menu of Scene dock. will be called with a list of paths to currently selected nodes, while option callback will receive the list of currently selected nodes. + + + + + Context menu of FileSystem dock. and option callback will be called with list of paths of the currently selected files. + + + + + The "Create..." submenu of FileSystem dock's context menu. and option callback will be called with list of paths of the currently selected files. + + + + + Context menu of Scene dock. will be called with the path to the currently edited script, while option callback will receive reference to that script. + + + + + Called when creating a context menu, custom options can be added by using the or functions. contains currently selected paths (depending on menu), which can be used to conditionally add options. + + + + + Registers a shortcut associated with the plugin's context menu. This method should be called once (e.g. in plugin's ). will be called when user presses the specified while the menu's context is in effect (e.g. FileSystem dock is focused). Callback should take single argument; array contents depend on context menu slot. + + func _init(): + add_menu_shortcut(SHORTCUT, handle) + + + + + + Add custom option to the context menu of the plugin's specified slot. When the option is activated, will be called. Callback should take single argument; array contents depend on context menu slot. + + func _popup_menu(paths): + add_context_menu_item("File Custom options", handle, ICON) + + If you want to assign shortcut to the menu item, use instead. + + + + + Add custom option to the context menu of the plugin's specified slot. The option will have the assigned and reuse its callback. The shortcut has to be registered beforehand with . + + func _init(): + add_menu_shortcut(SHORTCUT, handle) + + func _popup_menu(paths): + add_context_menu_item_from_shortcut("File Custom options", SHORTCUT, ICON) + + + + + + Add a submenu to the context menu of the plugin's specified slot. The submenu is not automatically handled, you need to connect to its signals yourself. Also the submenu is freed on every popup, so provide a new every time. + + func _popup_menu(paths): + var popup_menu = PopupMenu.new() + popup_menu.add_item("Blue") + popup_menu.add_item("White") + popup_menu.id_pressed.connect(_on_color_submenu_option) + + add_context_menu_item("Set Node Color", popup_menu) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_popup_menu' method. + + + + + Cached name for the 'add_menu_shortcut' method. + + + + + Cached name for the 'add_context_menu_item' method. + + + + + Cached name for the 'add_context_menu_item_from_shortcut' method. + + + + + Cached name for the 'add_context_submenu_item' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 . + Once added, the callback will be called for every available to the plugin, and when new ones are created (the sessions may be inactive during this stage). + You can retrieve the available s via or get a specific one via . + + To connect on the running game side, use the singleton: + + Note: While the game is running, @GlobalScope.print and similar functions called in the editor do not print anything, the Output Log prints only game messages. + + + + + Override this method to be notified when a breakpoint is set in the editor. + + + + + Override this method to be notified when all breakpoints are cleared in the editor. + + + + + Override this method to process incoming messages. The is the ID of the that received the . Use to retrieve the session. This method should return if the message is recognized. + + + + + Override this method to be notified when a breakpoint line has been clicked in the debugger breakpoint panel. + + + + + Override this method to enable receiving messages from the debugger. If is "my_message" then messages starting with "my_message:" will be passes to the method. + + + + + Override this method to be notified whenever a new is created. Note that the session may be inactive during this stage. + + + + + Returns the with the given . + + + + + Returns an array of currently available to this debugger plugin. + Note: Sessions in the array may be inactive, check their state via . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_breakpoint_set_in_tree' method. + + + + + Cached name for the '_breakpoints_cleared_in_tree' method. + + + + + Cached name for the '_capture' method. + + + + + Cached name for the '_goto_script_line' method. + + + + + Cached name for the '_has_capture' method. + + + + + Cached name for the '_setup_session' method. + + + + + Cached name for the 'get_session' method. + + + + + Cached name for the 'get_sessions' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class cannot be directly instantiated and must be retrieved via a . + You can add tabs to the session UI via , send messages via , and toggle s via . + + + + + Sends the given to the attached remote instance, optionally passing additionally . See for how to retrieve those messages. + + + + + Toggle the given on the attached remote instance, optionally passing additionally . See for more details. + + + + + Returns if the attached remote instance is currently in the debug loop. + + + + + Returns if the attached remote instance can be debugged. + + + + + Returns if the debug session is currently attached to a remote instance. + + + + + Adds the given to the debug session UI in the debugger bottom panel. The 's node name will be used as the tab title. + + + + + Removes the given from the debug session UI in the debugger bottom panel. + + + + + Enables or disables a specific breakpoint based on , updating the Editor Breakpoint Panel accordingly. + + + + + Emitted when a remote instance is attached to this session (i.e. the session becomes active). + + + + + Emitted when a remote instance is detached from this session (i.e. the session becomes inactive). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the attached remote instance enters a break state. If canDebug is , the remote instance will enter the debug loop. + + + + + Emitted when the attached remote instance exits a break state. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'send_message' method. + + + + + Cached name for the 'toggle_profiler' method. + + + + + Cached name for the 'is_breaked' method. + + + + + Cached name for the 'is_debuggable' method. + + + + + Cached name for the 'is_active' method. + + + + + Cached name for the 'add_session_tab' method. + + + + + Cached name for the 'remove_session_tab' method. + + + + + Cached name for the 'set_breakpoint' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'started' signal. + + + + + Cached name for the 'stopped' signal. + + + + + Cached name for the 'breaked' signal. + + + + + Cached name for the 'continued' signal. + + + + + 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 to configure platform-specific customization of scenes and resources. See and for more details. + + + + + Invalid message type used as the default value when no type is specified. + + + + + Message type for informational messages that have no effect on the export. + + + + + Message type for warning messages that should be addressed but still allow to complete the export. + + + + + Message type for error messages that must be addressed and fail the export. + + + + + Flag is set if remotely debugged project is expected to use remote file system. If set, will add --remove-fs and --remote-fs-password (if password is set in the editor settings) command line arguments to the list. + + + + + Flag is set if remote debug is enabled. If set, will add --remote-debug and --breakpoints (if breakpoints are selected in the script editor or added by the plugin) command line arguments to the list. + + + + + Flag is set if remotely debugged project is running on the localhost. If set, will use localhost instead of EditorSettings.network/debug/remote_host as remote debugger host. + + + + + Flag is set if "Visible Collision Shapes" remote debug option is enabled. If set, will add --debug-collisions command line arguments to the list. + + + + + Flag is set if Visible Navigation" remote debug option is enabled. If set, will add --debug-navigation command line arguments to the list. + + + + + Returns the name of the export operating system handled by this class, as a friendly string. Possible return values are Windows, Linux, macOS, Android, iOS, and Web. + + + + + Create a new preset for this platform. + + + + + Locates export template for the platform, and returns with the following keys: path: String and error: String. This method is provided for convenience and custom export platforms aren't required to use it or keep export templates stored in the same way official templates are. + + + + + Returns array of s for this platform. + + + + + Saves PCK archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + If is , PCK content is appended to the end of file and return additionally include following keys: embedded_start: int (embedded PCK offset) and embedded_size: int (embedded PCK size). + + + + + Saves ZIP archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + + + + + Saves patch PCK archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + + + + + Saves patch ZIP archive and returns with the following keys: result: Error, so_files: Array (array of the shared/static objects which contains dictionaries with the following keys: path: String, tags: PackedStringArray, and target_folder: String). + + + + + Generates array of command line arguments for the default export templates for the debug flags and editor settings. + + + + + Exports project files for the specified preset. This method can be used to implement custom export format, other than PCK and ZIP. One of the callbacks is called for each exported file. + is called for all exported files and have the following arguments: file_path: String, file_data: PackedByteArray, file_index: int, file_count: int, encryption_include_filters: PackedStringArray, encryption_exclude_filters: PackedStringArray, encryption_key: PackedByteArray. + is called for exported native shared/static libraries and have the following arguments: file_path: String, tags: PackedStringArray, target_folder: String. + Note: file_index and file_count are intended for progress tracking only and aren't necesserely unique and precise. + + + + + Creates a full project at for the specified . + + + + + Creates a PCK archive at for the specified . + + + + + Create a ZIP archive at for the specified . + + + + + Creates a patch PCK archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Creates a patch PCK archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + + + + Create a patch ZIP archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + If the parameter is null, then the default value is Array.Empty<string>(). + + + + Create a patch ZIP archive at for the specified , containing only the files that have changed since the last patch. + Note: is an optional override of the set of patches defined in the export preset. When empty the patches defined in the export preset will be used instead. + + + + + Clears the export log. + + + + + Adds a message to the export log that will be displayed when exporting ends. + + + + + Returns number of messages in the export log. + + + + + Returns message type, for the message with . + + + + + Returns message category, for the message with . + + + + + Returns message text, for the message with . + + + + + Returns most severe message type currently present in the export log. + + + + + Executes specified command on the remote host via SSH protocol and returns command output in the . + + + + + Executes specified command on the remote host via SSH protocol and returns command output in the . + + + + + Executes specified command on the remote host via SSH protocol and returns process ID (on the remote host) without waiting for command to finish. + + + + + Executes specified command on the remote host via SSH protocol and returns process ID (on the remote host) without waiting for command to finish. + + + + + Uploads specified file over SCP protocol to the remote host. + + + + + Uploads specified file over SCP protocol to the remote host. + + + + + Returns array of core file names that always should be exported regardless of preset config. + + + + + Returns additional files that should always be exported regardless of preset configuration, and are not part of the project source. The returned contains filename keys () and their corresponding raw data ([]). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_os_name' method. + + + + + Cached name for the 'create_preset' method. + + + + + Cached name for the 'find_export_template' method. + + + + + Cached name for the 'get_current_presets' method. + + + + + Cached name for the 'save_pack' method. + + + + + Cached name for the 'save_zip' method. + + + + + Cached name for the 'save_pack_patch' method. + + + + + Cached name for the 'save_zip_patch' method. + + + + + Cached name for the 'gen_export_flags' method. + + + + + Cached name for the 'export_project_files' method. + + + + + Cached name for the 'export_project' method. + + + + + Cached name for the 'export_pack' method. + + + + + Cached name for the 'export_zip' method. + + + + + Cached name for the 'export_pack_patch' method. + + + + + Cached name for the 'export_zip_patch' method. + + + + + Cached name for the 'clear_messages' method. + + + + + Cached name for the 'add_message' method. + + + + + Cached name for the 'get_message_count' method. + + + + + Cached name for the 'get_message_type' method. + + + + + Cached name for the 'get_message_category' method. + + + + + Cached name for the 'get_message_text' method. + + + + + Cached name for the 'get_worst_message_type' method. + + + + + Cached name for the 'ssh_run_on_remote' method. + + + + + Cached name for the 'ssh_run_on_remote_no_wait' method. + + + + + Cached name for the 'ssh_push_to_remote' method. + + + + + Cached name for the 'get_forced_export_files' method. + + + + + Cached name for the 'get_internal_export_files' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + External implementations should inherit from this class. + To use , register it using the method first. + + + + + Optional. + Returns , if specified is valid and can be exported. Use and to set error details. + Usual implementation can call and to determine if export is possible. + + + + + Optional. + Called by the editor before platform is unregistered. + + + + + Optional. + Creates a PCK archive at for the specified . + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" disabled, and PCK is selected as a file type. + + + + + Optional. + Creates a patch PCK archive at for the specified , containing only the files that have changed since the last patch. + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" enabled, and PCK is selected as a file type. + Note: The patches provided in have already been loaded when this method is called and are merely provided as context. When empty the patches defined in the export preset have been loaded instead. + + + + + Required. + Creates a full project at for the specified . + This method is called when "Export" button is pressed in the export dialog. + This method implementation can call or to use default PCK/ZIP export process, or calls and implement custom callback for processing each exported file. + + + + + Optional. + Create a ZIP archive at for the specified . + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" disabled, and ZIP is selected as a file type. + + + + + Optional. + Create a ZIP archive at for the specified , containing only the files that have changed since the last patch. + This method is called when "Export PCK/ZIP" button is pressed in the export dialog, with "Export as Patch" enabled, and ZIP is selected as a file type. + Note: The patches provided in have already been loaded when this method is called and are merely provided as context. When empty the patches defined in the export preset have been loaded instead. + + + + + Required. + Returns array of supported binary extensions for the full project export. + + + + + Optional. + Returns protocol used for remote debugging. Default implementation return tcp://. + + + + + Optional. + Returns device architecture for one-click deploy. + + + + + Optional. + Validates and returns visibility for the specified . Default implementation return for all options. + + + + + Optional. + Validates and returns warning message for the specified . Default implementation return empty string for all options. + + + + + Optional. + Returns a property list, as an of dictionaries. Each must at least contain the name: StringName and type: Variant.Type entries. + Additionally, the following keys are supported: + - hint: PropertyHint + - hint_string: String + - usage: PropertyUsageFlags + - class_name: StringName + - default_value: Variant, default value of the property. + - update_visibility: bool, if set to , is called for each property when this property is changed. + - required: bool, if set to , this property warnings are critical, and should be resolved to make export possible. This value is a hint for the implementation, and not used by the engine directly. + See also . + + + + + Required. + Returns platform logo displayed in the export dialog, logo should be 32x32 adjusted to the current editor scale, see . + + + + + Required. + Returns export platform name. + + + + + Optional. + Returns one-click deploy menu item icon for the specified , icon should be 16x16 adjusted to the current editor scale, see . + + + + + Optional. + Returns one-click deploy menu item label for the specified . + + + + + Optional. + Returns one-click deploy menu item tooltip for the specified . + + + + + Optional. + Returns number one-click deploy devices (or other one-click option displayed in the menu). + + + + + Optional. + Returns tooltip of the one-click deploy menu button. + + + + + Required. + Returns target OS name. + + + + + Required. + Returns array of platform specific features. + + + + + Required. + Returns array of platform specific features for the specified . + + + + + Optional. + Returns icon of the one-click deploy menu button, icon should be 16x16 adjusted to the current editor scale, see . + + + + + Required. + Returns if export configuration is valid. + + + + + Required. + Returns if project configuration is valid. + + + + + Optional. + Returns if specified file is a valid executable (native executable or script) for the target platform. + + + + + Optional. + Returns if one-click deploy options are changed and editor interface should be updated. + + + + + Optional. + This method is called when one-click deploy menu option is selected. + Implementation should export project to a temporary location, upload and run it on the specific , or perform another action associated with the menu item. + + + + + Optional. + Returns if export options list is changed and presets should be updated. + + + + + Sets current configuration error message text. This method should be called only from the , , or implementations. + + + + + Returns current configuration error message text. This method should be called only from the , , or implementations. + + + + + Set to is export templates are missing from the current configuration. This method should be called only from the , , or implementations. + + + + + Returns is export templates are missing from the current configuration. This method should be called only from the , , or implementations. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_export' method. + + + + + Cached name for the '_cleanup' method. + + + + + Cached name for the '_export_pack' method. + + + + + Cached name for the '_export_pack_patch' method. + + + + + Cached name for the '_export_project' method. + + + + + Cached name for the '_export_zip' method. + + + + + Cached name for the '_export_zip_patch' method. + + + + + Cached name for the '_get_binary_extensions' method. + + + + + Cached name for the '_get_debug_protocol' method. + + + + + Cached name for the '_get_device_architecture' method. + + + + + Cached name for the '_get_export_option_visibility' method. + + + + + Cached name for the '_get_export_option_warning' method. + + + + + Cached name for the '_get_export_options' method. + + + + + Cached name for the '_get_logo' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_option_icon' method. + + + + + Cached name for the '_get_option_label' method. + + + + + Cached name for the '_get_option_tooltip' method. + + + + + Cached name for the '_get_options_count' method. + + + + + Cached name for the '_get_options_tooltip' method. + + + + + Cached name for the '_get_os_name' method. + + + + + Cached name for the '_get_platform_features' method. + + + + + Cached name for the '_get_preset_features' method. + + + + + Cached name for the '_get_run_icon' method. + + + + + Cached name for the '_has_valid_export_configuration' method. + + + + + Cached name for the '_has_valid_project_configuration' method. + + + + + Cached name for the '_is_executable' method. + + + + + Cached name for the '_poll_export' method. + + + + + Cached name for the '_run' method. + + + + + Cached name for the '_should_update_export_options' method. + + + + + Cached name for the 'set_config_error' method. + + + + + Cached name for the 'get_config_error' method. + + + + + Cached name for the 'set_config_missing_templates' method. + + + + + Cached name for the 'get_config_missing_templates' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The base class for the desktop platform exporters. These include Windows and Linux/BSD, but not macOS. See the classes inheriting this one for more details. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + Note: Godot on Web is rendered inside a <canvas> tag. Normally, the canvas cannot be positioned or resized manually, but otherwise acts as the main of the application. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The Windows exporter customizes how a Windows build is handled. In the editor's "Export" window, it is created when adding a new "Windows" preset. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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, is called at the beginning of the export process and then is called for each exported file. + To use , register it using the method first. + + + + + Return if this plugin will customize resources based on the platform and features used. + When enabled, and will be called and must be implemented. + + + + + Return if this plugin will customize scenes based on the platform and features used. + When enabled, and will be called and must be implemented. + Note: will only be called for scenes that have been modified since the last export. + + + + + Customize a resource. If changes are made to it, return the same or a new resource. Otherwise, return . When a new resource is returned, will be replaced by a copy of the new resource. + The 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 returns . + Note: When customizing any of the following types and returning another resource, the other resource should not be skipped using in : + - + - + - + - + - + - + + + + + Customize a scene. If changes are made to it, return the same or a new scene. Otherwise, return . If a new scene is returned, it is up to you to dispose of the old one. + Implementing this method is required if returns . + + + + + This is called when the customization process for resources ends. + + + + + This is called when the customization process for scenes ends. + + + + + Virtual method to be overridden by the user. It is called when the export starts and provides all information about the export. is the list of features for the export, is for debug builds, is the target path for the exported project. is only used when running a runnable profile, e.g. when using native run on Android. + + + + + Virtual method to be overridden by the user. Called when the export is finished. + + + + + Virtual method to be overridden by the user. Called for each exported file before and . The arguments can be used to identify the file. is the path of the file, is the represented by the file (e.g. ), and is the list of features for the export. + Calling inside this callback will make the file not included in the export. + + + + + 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: org.godot.example:my-plugin:0.0.0 + For more information see Android documentation on dependencies. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + 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 Gradle documentation on dependency management. + Note: Google's Maven repo and the Maven Central repo are already included by default. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + 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. + Note: Relative paths must be relative to Godot's res://addons/ directory. For example, an AAR file located under res://addons/hello_world_plugin/HelloWorld.release.aar can be returned as an absolute path using res://addons/hello_world_plugin/HelloWorld.release.aar or a relative path using hello_world_plugin/HelloWorld.release.aar. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + Virtual method to be overridden by the user. This is used at export time to update the contents of the activity element in the generated Android manifest. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + Virtual method to be overridden by the user. This is used at export time to update the contents of the application element in the generated Android manifest. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + Virtual method to be overridden by the user. This is used at export time to update the contents of the manifest element in the generated Android manifest. + Note: Only supported on Android and requires EditorExportPlatformAndroid.gradle_build/use_gradle_build to be enabled. + + + + + 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 returns . + + + + + Return a [] of additional features this preset, for the given , should have. + + + + + Optional. + Validates and returns the visibility for the specified . The default implementation returns for all options. + + + + + Check the requirements for the given and return a non-empty warning string if they are not met. + Note: Use to check the value of the export options. + + + + + Return a list of export options that can be configured for this export plugin. + Each element in the return value is a with the following keys: + - option: A dictionary with the structure documented by , but all keys are optional. + - default_value: The default value for this option. + - update_visibility: An optional boolean value. If set to , the preset will emit when the option is changed. + + + + + Return a of override values for export options, that will be used instead of user-provided values. Overridden options will be hidden from the user interface. + + class MyExportPlugin extends EditorExportPlugin: + func _get_name() -> String: + return "MyExportPlugin" + + func _supports_platform(platform) -> bool: + if platform is EditorExportPlatformPC: + # Run on all desktop platforms including Windows, MacOS and Linux. + return true + return false + + func _get_export_options_overrides(platform) -> Dictionary: + # Override "Embed PCK" to always be enabled. + return { + "binary_format/embed_pck": true, + } + + + + + + 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. + + + + + Return , if the result of has changed and the export options of preset corresponding to should be updated. + + + + + Return if the plugin supports the given . + + + + + Adds a shared object or a directory containing only shared objects with the given and destination . + Note: In case of macOS exports, those shared objects will be added to Frameworks directory of app bundle. + In case of a directory code-sign will error if you place non code object in directory. + + + + + Adds a shared object or a directory containing only shared objects with the given and destination . + Note: In case of macOS exports, those shared objects will be added to Frameworks directory of app bundle. + In case of a directory code-sign will error if you place non code object in directory. + + + + + Adds a static lib from the given to the iOS project. + + + + + Adds a custom file to be exported. is the virtual path that can be used to load the file, is the binary data of the file. + When called inside and is , the current file will not be exported, but instead remapped to this custom file. is ignored when called in other places. + will not be imported, so consider using to remap imported resources. + + + + + Adds a custom file to be exported. is the virtual path that can be used to load the file, is the binary data of the file. + When called inside and is , the current file will not be exported, but instead remapped to this custom file. is ignored when called in other places. + will not be imported, so consider using to remap imported resources. + + + + + Adds a static library (*.a) or dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project. + + + + + Adds a dynamic library (*.dylib, *.framework) to Linking Phase in iOS's Xcode project and embeds it into resulting binary. + Note: For static libraries (*.a) works in same way as . + Note: This method should not be used for System libraries as they are already present on the device. + + + + + Adds content for iOS Property List files. + + + + + Adds linker flags for the iOS export. + + + + + Adds an iOS bundle file from the given to the exported project. + + + + + Adds a C++ code to the iOS export. The final code is created from the code appended by each active export plugin. + + + + + Adds file or directory matching to PlugIns directory of macOS app bundle. + Note: This is useful only for macOS exports. + + + + + To be called inside . Skips the current file, so it's not included in the export. + + + + + Returns the current value of an export option supplied by . + + + + + Returns currently used export preset. + + + + + Returns currently used export platform. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_begin_customize_resources' method. + + + + + Cached name for the '_begin_customize_scenes' method. + + + + + Cached name for the '_customize_resource' method. + + + + + Cached name for the '_customize_scene' method. + + + + + Cached name for the '_end_customize_resources' method. + + + + + Cached name for the '_end_customize_scenes' method. + + + + + Cached name for the '_export_begin' method. + + + + + Cached name for the '_export_end' method. + + + + + Cached name for the '_export_file' method. + + + + + Cached name for the '_get_android_dependencies' method. + + + + + Cached name for the '_get_android_dependencies_maven_repos' method. + + + + + Cached name for the '_get_android_libraries' method. + + + + + Cached name for the '_get_android_manifest_activity_element_contents' method. + + + + + Cached name for the '_get_android_manifest_application_element_contents' method. + + + + + Cached name for the '_get_android_manifest_element_contents' method. + + + + + Cached name for the '_get_customization_configuration_hash' method. + + + + + Cached name for the '_get_export_features' method. + + + + + Cached name for the '_get_export_option_visibility' method. + + + + + Cached name for the '_get_export_option_warning' method. + + + + + Cached name for the '_get_export_options' method. + + + + + Cached name for the '_get_export_options_overrides' method. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_should_update_export_options' method. + + + + + Cached name for the '_supports_platform' method. + + + + + Cached name for the 'add_shared_object' method. + + + + + Cached name for the 'add_ios_project_static_lib' method. + + + + + Cached name for the 'add_file' method. + + + + + Cached name for the 'add_ios_framework' method. + + + + + Cached name for the 'add_ios_embedded_framework' method. + + + + + Cached name for the 'add_ios_plist_content' method. + + + + + Cached name for the 'add_ios_linker_flags' method. + + + + + Cached name for the 'add_ios_bundle_file' method. + + + + + Cached name for the 'add_ios_cpp_code' method. + + + + + Cached name for the 'add_macos_plugin_file' method. + + + + + Cached name for the 'skip' method. + + + + + Cached name for the 'get_option' method. + + + + + Cached name for the 'get_export_preset' method. + + + + + Cached name for the 'get_export_platform' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Export preset configuration. Instances of by editor UI and intended to be used a read-only configuration passed to the methods when exporting the project. + + + + + Returns if preset has specified property. + + + + + Returns array of files to export. + + + + + Returns of files selected in the "Resources" tab of the export dialog. Dictionary keys are file names and values are export mode - "strip, "keep", or "remove". See also . + + + + + Returns number of files selected in the "Resources" tab of the export dialog. + + + + + Returns if specified file is exported. + + + + + Returns file export mode for the specified file. + + + + + Returns export preset name. + + + + + Returns if "Runnable" toggle is enabled in the export dialog. + + + + + Returns , is "Advanced" toggle is enabled in the export dialog. + + + + + Returns if dedicated server export mode is selected in the export dialog. + + + + + Returns export file filter mode selected in the "Resources" tab of the export dialog. + + + + + Returns file filters to include during export. + + + + + Returns file filters to exclude during export. + + + + + Returns string with a comma separated list of custom features. + + + + + Returns the list of packs on which to base a patch export on. + + + + + Returns export target path. + + + + + Returns file filters to include during PCK encryption. + + + + + Returns file filters to exclude during PCK encryption. + + + + + Returns , PCK encryption is enabled in the export dialog. + + + + + Returns , PCK directory encryption is enabled in the export dialog. + + + + + Returns PCK encryption key. + + + + + Returns script export mode. + + + + + Returns export option value or value of environment variable if it is set. + + + + + Returns the preset's version number, or fall back to the ProjectSettings.application/config/version project setting if set to an empty string. + If is , formats the returned version number to be compatible with Windows executable metadata. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has' method. + + + + + Cached name for the 'get_files_to_export' method. + + + + + Cached name for the 'get_customized_files' method. + + + + + Cached name for the 'get_customized_files_count' method. + + + + + Cached name for the 'has_export_file' method. + + + + + Cached name for the 'get_file_export_mode' method. + + + + + Cached name for the 'get_preset_name' method. + + + + + Cached name for the 'is_runnable' method. + + + + + Cached name for the 'are_advanced_options_enabled' method. + + + + + Cached name for the 'is_dedicated_server' method. + + + + + Cached name for the 'get_export_filter' method. + + + + + Cached name for the 'get_include_filter' method. + + + + + Cached name for the 'get_exclude_filter' method. + + + + + Cached name for the 'get_custom_features' method. + + + + + Cached name for the 'get_patches' method. + + + + + Cached name for the 'get_export_path' method. + + + + + Cached name for the 'get_encryption_in_filter' method. + + + + + Cached name for the 'get_encryption_ex_filter' method. + + + + + Cached name for the 'get_encrypt_pck' method. + + + + + Cached name for the 'get_encrypt_directory' method. + + + + + Cached name for the 'get_encryption_key' method. + + + + + Cached name for the 'get_script_export_mode' method. + + + + + Cached name for the 'get_or_env' method. + + + + + Cached name for the 'get_version' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 Editor > Manage Feature Profiles... at the top of the editor window. + + + + + 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. + + + + + The Script tab, which contains the script editor and class reference browser. If this feature is disabled, the Script tab won't display. + + + + + The AssetLib tab. If this feature is disabled, the AssetLib tab won't display. + + + + + Scene tree editing. If this feature is disabled, the Scene tree dock will still be visible but will be read-only. + + + + + The Node dock. If this feature is disabled, signals and groups won't be visible and modifiable from the editor. + + + + + The FileSystem dock. If this feature is disabled, the FileSystem dock won't be visible. + + + + + The Import dock. If this feature is disabled, the Import dock won't be visible. + + + + + The History dock. If this feature is disabled, the History dock won't be visible. + + + + + The Game tab, which allows embedding the game window and selecting nodes by clicking inside of it. If this feature is disabled, the Game tab won't display. + + + + + Represents the size of the enum. + + + + + If is , disables the class specified by . When disabled, the class won't appear in the Create New Node dialog. + + + + + Returns if the class specified by is disabled. When disabled, the class won't appear in the Create New Node dialog. + + + + + If is , disables editing for the class specified by . When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class. + + + + + Returns if editing for the class specified by is disabled. When disabled, the class will still appear in the Create New Node dialog but the Inspector will be read-only when selecting a node that extends the class. + + + + + If is , disables editing for in the class specified by . When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by . + + + + + Returns if is disabled in the class specified by . When a property is disabled, it won't appear in the Inspector when selecting a node that extends the class specified by . + + + + + If is , disables the editor feature specified in . When a feature is disabled, it will disappear from the editor entirely. + + + + + Returns if the is disabled. When a feature is disabled, it will disappear from the editor entirely. + + + + + Returns the specified 's human-readable name. + + + + + Saves the editor feature profile to a file in JSON format. It can then be imported using the feature profile manager's Import button or the method. + Note: Feature profiles created via the user interface are saved in the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using . + + + + + Loads an editor feature profile from a file. The file must follow the JSON format obtained by using the feature profile manager's Export button or the method. + Note: Feature profiles created via the user interface are loaded from the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_disable_class' method. + + + + + Cached name for the 'is_class_disabled' method. + + + + + Cached name for the 'set_disable_class_editor' method. + + + + + Cached name for the 'is_class_editor_disabled' method. + + + + + Cached name for the 'set_disable_class_property' method. + + + + + Cached name for the 'is_class_property_disabled' method. + + + + + Cached name for the 'set_disable_feature' method. + + + + + Cached name for the 'is_feature_disabled' method. + + + + + Cached name for the 'get_feature_name' method. + + + + + Cached name for the 'save_to_file' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + is an enhanced version of 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. + + + + + The can select only one file. Accepting the window will open the file. + + + + + The can select multiple files. Accepting the window will open all files. + + + + + The can select only one directory. Accepting the window will open the directory. + + + + + The can select a file or directory. Accepting the window will open it. + + + + + The can select only one file. Accepting the window will save the file. + + + + + The can only view res:// directory contents. + + + + + The can only view user:// directory contents. + + + + + The can view the entire local file system. + + + + + The displays resources as thumbnails. + + + + + The displays resources as a list of filenames. + + + + + The location from which the user may select a file, including res://, user://, and the local file system. + + + + + The view format in which the displays resources to the user. + + + + + The dialog's open or save mode, which affects the selection behavior. See . + + + + + The currently occupied directory. + + + + + The currently selected file. + + + + + The file system path in the address bar. + + + + + The available file type filters. For example, this shows only .png and .gd files: set_filters(PackedStringArray(["*.png ; PNG Images","*.gd ; GDScript Files"])). Multiple file types can also be specified in a single filter. "*.png, *.jpg, *.jpeg ; Supported Images" will show both PNG and JPEG files when selected. + + + + + The number of additional s and es in the dialog. + + + + + If , hidden files and directories will be visible in the . This property is synchronized with EditorSettings.filesystem/file_dialog/show_hidden_files. + + + + + If , the will not warn the user before overwriting files. + + + + + Removes all filters except for "All Files (*.*)". + + + + + Adds a comma-delimited file name option to the with an optional , which restricts what files can be picked. + A should be of the form "filename.extension", where filename and extension can be * to match any string. Filters starting with . (i.e. empty filenames) are not allowed. + For example, a of "*.tscn, *.scn" and a of "Scenes" results in filter text "Scenes (*.tscn, *.scn)". + + + + + Returns the name of the or with index . + + + + + Returns an array of values of the with index . + + + + + Returns the default value index of the or with index . + + + + + Sets the name of the or with index . + + + + + Sets the option values of the with index . + + + + + Sets the option values of the with index . + + + + + Sets the default value index of the or with index . + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Adds an additional to the file dialog. If is empty, a is added instead. + should be an index of the value in the . If is empty it should be either 1 (checked), or 0 (unchecked). + + + + + Returns a with the selected values of the additional s and/or es. keys are names and values are selected value indices. + + + + + Clear the filter for file names. + + + + + Sets the value of the filter for file names. + + + + + Returns the value of the filter for file names. + + + + + Returns the used to display the file system. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Returns the LineEdit for the selected file. + Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their property. + + + + + Adds the given to the side of the file dialog with the given text on top. Only one side menu is allowed. + + + + + Shows the at the default size and position for file dialogs in the editor, and selects the file name if there is a current file. + + + + + Notify the that its view of the data is no longer accurate. Updates the view contents on next view update. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a file is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when multiple files are selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a directory is selected. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the filter for file names changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'access' property. + + + + + Cached name for the 'display_mode' property. + + + + + Cached name for the 'file_mode' property. + + + + + Cached name for the 'current_dir' property. + + + + + Cached name for the 'current_file' property. + + + + + Cached name for the 'current_path' property. + + + + + Cached name for the 'filters' property. + + + + + Cached name for the 'option_count' property. + + + + + Cached name for the 'show_hidden_files' property. + + + + + Cached name for the 'disable_overwrite_warning' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear_filters' method. + + + + + Cached name for the 'add_filter' method. + + + + + Cached name for the 'set_filters' method. + + + + + Cached name for the 'get_filters' method. + + + + + Cached name for the 'get_option_name' method. + + + + + Cached name for the 'get_option_values' method. + + + + + Cached name for the 'get_option_default' method. + + + + + Cached name for the 'set_option_name' method. + + + + + Cached name for the 'set_option_values' method. + + + + + Cached name for the 'set_option_default' method. + + + + + Cached name for the 'set_option_count' method. + + + + + Cached name for the 'get_option_count' method. + + + + + Cached name for the 'add_option' method. + + + + + Cached name for the 'get_selected_options' method. + + + + + Cached name for the 'clear_filename_filter' method. + + + + + Cached name for the 'set_filename_filter' method. + + + + + Cached name for the 'get_filename_filter' method. + + + + + Cached name for the 'get_current_dir' method. + + + + + Cached name for the 'get_current_file' method. + + + + + Cached name for the 'get_current_path' method. + + + + + Cached name for the 'set_current_dir' method. + + + + + Cached name for the 'set_current_file' method. + + + + + Cached name for the 'set_current_path' method. + + + + + Cached name for the 'set_file_mode' method. + + + + + Cached name for the 'get_file_mode' method. + + + + + Cached name for the 'get_vbox' method. + + + + + Cached name for the 'get_line_edit' method. + + + + + Cached name for the 'set_access' method. + + + + + Cached name for the 'get_access' method. + + + + + Cached name for the 'set_show_hidden_files' method. + + + + + Cached name for the 'is_showing_hidden_files' method. + + + + + Cached name for the 'set_display_mode' method. + + + + + Cached name for the 'get_display_mode' method. + + + + + Cached name for the 'set_disable_overwrite_warning' method. + + + + + Cached name for the 'is_overwrite_warning_disabled' method. + + + + + Cached name for the 'add_side_menu' method. + + + + + Cached name for the 'popup_file_dialog' method. + + + + + Cached name for the 'invalidate' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'file_selected' signal. + + + + + Cached name for the 'files_selected' signal. + + + + + Cached name for the 'dir_selected' signal. + + + + + Cached name for the 'filename_filter_changed' signal. + + + + + This object holds information of all resources in the filesystem, their types, etc. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Gets the root directory object. + + + + + Returns if the filesystem is being scanned. + + + + + Returns the scan progress for 0 to 1 if the FS is being scanned. + + + + + Scan the filesystem for changes. + + + + + Check if the source of any imported resource changed. + + + + + Add a file in an existing directory, or schedule file information to be updated on editor restart. Can be used to update text files saved by an external program. + This will not import the file. To reimport, call or methods. + + + + + Returns a view into the filesystem at . + + + + + Returns the resource type of the file, given the full path. This returns a string such as "Resource" or "GDScript", not a file extension such as ".gd". + + + + + Reimports a set of files. Call this if these files or their .import files were directly edited by script or an external program. + If the file type changed or the file was newly created, use or . + Note: This function blocks until the import is finished. However, the main loop iteration, including timers and , will occur during the import process due to progress bar updates. Avoid calls to or while an import is in progress. + + + + + Reimports a set of files. Call this if these files or their .import files were directly edited by script or an external program. + If the file type changed or the file was newly created, use or . + Note: This function blocks until the import is finished. However, the main loop iteration, including timers and , will occur during the import process due to progress bar updates. Avoid calls to or while an import is in progress. + + + + + Emitted if the filesystem changed. + + + + + Emitted when the list of global script classes gets updated. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if the source of any imported file changed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted before a resource is reimported. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if a resource is reimported. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if at least one resource is reloaded when the filesystem is scanned. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_filesystem' method. + + + + + Cached name for the 'is_scanning' method. + + + + + Cached name for the 'get_scanning_progress' method. + + + + + Cached name for the 'scan' method. + + + + + Cached name for the 'scan_sources' method. + + + + + Cached name for the 'update_file' method. + + + + + Cached name for the 'get_filesystem_path' method. + + + + + Cached name for the 'get_file_type' method. + + + + + Cached name for the 'reimport_files' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'filesystem_changed' signal. + + + + + Cached name for the 'script_classes_updated' signal. + + + + + Cached name for the 'sources_changed' signal. + + + + + Cached name for the 'resources_reimporting' signal. + + + + + Cached name for the 'resources_reimported' signal. + + + + + Cached name for the 'resources_reload' signal. + + + + + A more generalized, low-level variation of the directory concept. + + + + + Returns the number of subdirectories in this directory. + + + + + Returns the subdirectory at index . + + + + + Returns the number of files in this directory. + + + + + Returns the name of the file at index . + + + + + Returns the path to the file at index . + + + + + Returns the resource type of the file at index . This returns a string such as "Resource" or "GDScript", not a file extension such as ".gd". + + + + + Returns the name of the script class defined in the file at index . If the file doesn't define a script class using the class_name syntax, this will return an empty string. + + + + + Returns the base class of the script class defined in the file at index . If the file doesn't define a script class using the class_name syntax, this will return an empty string. + + + + + Returns if the file at index imported properly. + + + + + Returns the name of this directory. + + + + + Returns the path to this directory. + + + + + Returns the parent directory for this directory or if called on a directory at res:// or user://. + + + + + Returns the index of the file with name or -1 if not found. + + + + + Returns the index of the directory with name or -1 if not found. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_subdir_count' method. + + + + + Cached name for the 'get_subdir' method. + + + + + Cached name for the 'get_file_count' method. + + + + + Cached name for the 'get_file' method. + + + + + Cached name for the 'get_file_path' method. + + + + + Cached name for the 'get_file_type' method. + + + + + Cached name for the 'get_file_script_class_name' method. + + + + + Cached name for the 'get_file_script_class_extends' method. + + + + + Cached name for the 'get_file_import_is_valid' method. + + + + + Cached name for the 'get_name' method. + + + + + Cached name for the 'get_path' method. + + + + + Cached name for the 'get_parent' method. + + + + + Cached name for the 'find_file_index' method. + + + + + Cached name for the 'find_dir_index' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is used to query and configure a certain import format. It is used in conjunction with asset format import plugins. + + + + + Return the file extensions supported. + + + + + Return whether this importer is active. + + + + + Query support. Return if import must not continue. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_file_extensions' method. + + + + + Cached name for the '_is_active' method. + + + + + Cached name for the '_query' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and . They may optionally specify some import presets that affect the import process. EditorImportPlugins are responsible for creating the resources and saving them in the .godot/imported directory (see ProjectSettings.application/config/use_hidden_project_data_directory). + Below is an example EditorImportPlugin that imports a from a file with the extension ".special" or ".spec": + + 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 Error _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 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 ResourceSaver.Save(mesh, filename); + } + } + + To use , register it using the method first. + + + + + Tells whether this importer can be run in parallel on threads, or, on the contrary, it's only safe for the editor to call it from the main thread, for one file at a time. + If this method is not overridden, it will return by default. + If this importer's implementation is thread-safe and can be run in parallel, override this with to optimize for concurrency. + + + + + Gets the format version of this importer. Increment this version when making incompatible changes to the format of the imported resources. + + + + + Gets the options and default values for the preset at this index. Returns an Array of Dictionaries with the following keys: name, default_value, property_hint (optional), hint_string (optional), usage (optional). + + + + + Gets the order of this importer to be run when importing resources. Importers with lower import orders will be called first, and higher values will be called later. Use this to ensure the importer runs after the dependencies are already imported. The default import order is 0 unless overridden by a specific importer. See for some predefined values. + + + + + Gets the unique name of the importer. + + + + + 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. + + 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; + } + + Returns to make all options always visible. + + + + + Gets the number of initial presets defined by the plugin. Use to get the default options for the preset and to get the name of the preset. + + + + + Gets the name of the options preset at this index. + + + + + Gets the priority of this plugin for the recognized extension. Higher priority plugins will be preferred. The default priority is 1.0. + + + + + Gets the list of file extensions to associate with this loader (case-insensitive). e.g. ["obj"]. + + + + + Gets the Godot resource type associated with this loader. e.g. "Mesh" or "Animation". + + + + + Gets the extension used to save this resource in the .godot/imported directory (see ProjectSettings.application/config/use_hidden_project_data_directory). + + + + + 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". + + + + + Imports into with the import specified. The and 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. + + + + + This function can only be called during the callback and it allows manually importing resources from it. This is useful when the imported file generates external resources that require importing (as example, images). Custom parameters for the ".import" file can be passed via the . Additionally, in cases where multiple importers can handle a file, the can be specified to force a specific one. This function performs a resource import and returns immediately with a success or error code. defines optional extra metadata which will be stored as generator_parameters in the remap section of the .import file, for example to store a md5 hash of the source data. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_import_threaded' method. + + + + + Cached name for the '_get_format_version' method. + + + + + Cached name for the '_get_import_options' method. + + + + + Cached name for the '_get_import_order' method. + + + + + Cached name for the '_get_importer_name' method. + + + + + Cached name for the '_get_option_visibility' method. + + + + + Cached name for the '_get_preset_count' method. + + + + + Cached name for the '_get_preset_name' method. + + + + + Cached name for the '_get_priority' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_get_resource_type' method. + + + + + Cached name for the '_get_save_extension' method. + + + + + Cached name for the '_get_visible_name' method. + + + + + Cached name for the '_import' method. + + + + + Cached name for the 'append_import_external_resource' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This is the control that implements property editing in the editor's Settings dialogs, the Inspector dock, etc. To get the used in the editor's Inspector dock, use . + will show properties in the same order as the array returned by . + If a property's name is path-like (i.e. if it contains forward slashes), will create nested sections for "directories" along the path. For example, if a property is named highlighting/gdscript/node_path_color, it will be shown as "Node Path Color" inside the "GDScript" section nested inside the "Highlighting" section. + If a property has 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. will create a top-level section for each group. For example, if a property with group usage is named Collide With and its hint string is collide_with_, a subsequent collide_with_area 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 font, font_color and font_size (using the hint string font_). + If a property has usage, a subgroup will be created in the same way as a group, and a second-level section will be created for each subgroup. + Note: Unlike sections created from path-like property names, won't capitalize the name for sections created from groups. So properties with group usage usually use capitalized names instead of snake_cased names. + + + + + Shows the properties of the given in this inspector for editing. To clear the inspector, call this method with . + Note: If you want to edit an object in the editor's main inspector, use the edit_* methods in instead. + + + + + Gets the path of the currently selected property. + + + + + Returns the object currently selected in this inspector. + + + + + Creates a property editor that can be used by plugin UI to edit the specified property of an . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is selected in the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is keyed in the inspector. Properties can be keyed by clicking the "key" icon next to a property when the Animation panel is toggled. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is removed from the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a resource is selected in the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the Edit button of an has been pressed in the inspector. This is mainly used in the remote scene tree Inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property is edited in the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a boolean property is toggled in the inspector. + Note: This signal is never emitted if the internal autoclear property enabled. Since this property is always enabled in the editor inspector, this signal is never emitted by the editor itself. + + + + + Emitted when the object being edited by the inspector has changed. + + + + + Emitted when a property that requires a restart to be applied is edited in the inspector. This is only used in the Project Settings and Editor Settings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'edit' method. + + + + + Cached name for the 'get_selected_path' method. + + + + + Cached name for the 'get_edited_object' method. + + + + + Cached name for the 'instantiate_property_editor' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'property_selected' signal. + + + + + Cached name for the 'property_keyed' signal. + + + + + Cached name for the 'property_deleted' signal. + + + + + Cached name for the 'resource_selected' signal. + + + + + Cached name for the 'object_id_selected' signal. + + + + + Cached name for the 'property_edited' signal. + + + + + Cached name for the 'property_toggled' signal. + + + + + Cached name for the 'edited_object_changed' signal. + + + + + Cached name for the 'restart_requested' signal. + + + + + allows adding custom property editors to . + When an object is edited, the function is called and must return if the object type is supported. + If supported, the function will be called, allowing to place custom controls at the beginning of the class. + Subsequently, the and are called for every category and property. They offer the ability to add custom controls to the inspector too. + Finally, will be called. + On each of these calls, the "add" functions can be called. + To use , register it using the method first. + + + + + Returns if this object can be handled by this plugin. + + + + + Called to allow adding controls at the beginning of the property list for . + + + + + Called to allow adding controls at the beginning of a category in the property list for . + + + + + Called to allow adding controls at the end of the property list for . + + + + + Called to allow adding controls at the beginning of a group or a sub-group in the property list for . + + + + + Called to allow adding property-specific editors to the property list for . The added editor control must extend . Returning removes the built-in editor for this property, otherwise allows to insert a custom editor before the built-in one. + + + + + Adds a custom control, which is not necessarily a property editor. + + + + + Adds a property editor for an individual property. The control must extend . + There can be multiple property editors for a property. If is , this newly added editor will be displayed after all the other editors of the property whose is . For example, the editor uses this parameter to add an "Edit Region" button for below the regular editor. + can be used to choose a custom label for the property editor in the inspector. If left empty, the label is computed from the name of the property instead. + + + + + Adds an editor that allows modifying multiple properties. The control must extend . + + + + + Adds an editor that allows modifying multiple properties. The control must extend . + + + + + Adds a property editor for an individual property. The control must extend . + There can be multiple property editors for a property. If is , this newly added editor will be displayed after all the other editors of the property whose is . For example, the editor uses this parameter to add an "Edit Region" button for below the regular editor. + can be used to choose a custom label for the property editor in the inspector. If left empty, the label is computed from the name of the property instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_handle' method. + + + + + Cached name for the '_parse_begin' method. + + + + + Cached name for the '_parse_category' method. + + + + + Cached name for the '_parse_end' method. + + + + + Cached name for the '_parse_group' method. + + + + + Cached name for the '_parse_property' method. + + + + + Cached name for the 'add_custom_control' method. + + + + + Cached name for the 'add_property_editor' method. + + + + + Cached name for the 'add_property_editor_for_multiple_properties' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + gives you control over Godot editor's window. It allows customizing the window, saving and (re-)loading scenes, rendering mesh previews, inspecting and editing resources and objects, and provides access to , , , , the editor viewport, and information about scenes. + Note: This class shouldn't be instantiated directly. Instead, access the singleton directly by its name. + + // In C# you can access it via the static Singleton property. + EditorSettings settings = EditorInterface.Singleton.GetEditorSettings(); + + + + + + If , enables distraction-free mode which hides side docks to increase the space available for the main view. + + + + + If , the Movie Maker mode is enabled in the editor. See for more information. + + + + + Restarts the editor. This closes the editor and then opens the same project. If is , the project will be saved before restarting. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Returns the editor's instance. + + + + + Returns the singleton. + + + + + Returns the editor's instance. + + + + + Returns the editor's instance. + + + + + Returns the editor's instance. + + + + + Returns the editor's . + + + + + Returns the editor's . + + + + + Returns mesh previews rendered at the given size as an of s. + + + + + Sets the enabled status of a plugin. The plugin name is the same as its directory name. + + + + + Returns if the specified is enabled. The plugin name is the same as its directory name. + + + + + Returns the editor's . + Note: When creating custom editor UI, prefer accessing theme items directly from your GUI nodes using the get_theme_* methods. + + + + + Returns the main container of Godot editor's window. For example, you can use it to retrieve the size of the container and place your controls accordingly. + Warning: Removing and freeing this node will render the editor useless and may cause a crash. + + + + + Returns the editor control responsible for main screen plugins and tools. Use it with plugins that implement . + Note: This node is a , which means that if you add a child to it, you need to set the child's to to make it use the full available space. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Returns the 2D editor . It does not have a camera. Instead, the view transforms are done directly and can be accessed with . + + + + + Returns the specified 3D editor , from 0 to 3. The viewport can be used to access the active editor cameras with . + + + + + Sets the editor's current main screen to the one specified in . must match the title of the tab in question exactly (e.g. 2D, 3D, Script, or AssetLib for default tabs). + + + + + Returns if multiple window support is enabled in the editor. Multiple window support is enabled if all of these statements are true: + - EditorSettings.interface/multi_window/enable is . + - EditorSettings.interface/editor/single_window_mode is . + - is . This is forced to on platforms that don't support multiple windows such as Web, or when the --single-window command line argument is used. + + + + + Returns the actual scale of the editor UI (1.0 being 100% scale). This can be used to adjust position and dimensions of the UI added by plugins. + Note: This value is set via the interface/editor/display_scale and interface/editor/custom_display_scale editor settings. Editor must be restarted for changes to be properly applied. + + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + If the parameter is null, then the default value is new Rect2I(new Vector2I(0, 0), new Vector2I(0, 0)). + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + + + + Pops up the in the editor UI with . The dialog must have no current parent, otherwise the method fails. + See also . + + If the parameter is null, then the default value is new Vector2I(0, 0). + + + + Returns the name of the currently activated feature profile. If the default profile is currently active, an empty string is returned instead. + In order to get a reference to the , you must load the feature profile using . + Note: Feature profiles created via the user interface are loaded from the feature_profiles directory, as a file with the .profile extension. The editor configuration folder can be found by using . + + + + + Selects and activates the specified feature profile with the given . Set to an empty string to reset to the default feature profile. + A feature profile can be created programmatically using the class. + Note: The feature profile that gets activated must be located in the feature_profiles directory, as a file with the .profile extension. If a profile could not be found, an error occurs. The editor configuration folder can be found by using . + + + + + Pops up an editor dialog for selecting a from the edited scene. The must take a single argument of type . It is called on the selected or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show Nodes that match one of the listed Node types. If is provided, the Node will be automatically selected in the tree, if it exists. + Example: Display the node selection dialog as soon as this node is added to the tree for the first time: + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_node_selector(_on_node_selected, ["Button"]) + + func _on_node_selected(node_path): + if node_path.is_empty(): + print("node selection canceled") + else: + print("selected ", node_path) + + + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + If the parameter is null, then the default value is Array.Empty<int>(). + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + + + + Pops up an editor dialog for selecting a method from . The must take a single argument of type which will contain the name of the selected method or be empty if the dialog is canceled. If is provided, the method will be selected automatically in the method list, if it exists. + + + + + Pops up an editor dialog for quick selecting a resource file. The must take a single argument of type which will contain the path of the selected resource or be empty if the dialog is canceled. If is provided, the dialog will only show resources that match these types. Only types deriving from are supported. + + + + + Pops up an editor dialog for creating an object. + The must take a single argument of type which will contain the type name of the selected object or be empty if no item is selected. + The specifies the base type of objects to display. For example, if you set this to "Resource", all types derived from will display in the create dialog. + The will be passed in the search box of the create dialog, and the specified type can be immediately selected when the dialog pops up. If the is not derived from , there will be no result of the type in the dialog. + The allows you to define a custom title for the dialog. This is useful if you want to accurately hint the usage of the dialog. If the is an empty string, the dialog will use "Create New 'Base Type'" as the default title. + The contains a list of type names, and the types in the blocklist will be hidden from the create dialog. + The is a dictionary, with keys being s and values being s. Custom suffixes override the default suffixes which are file names of their scripts. For example, if you set a custom suffix as "Custom Suffix" for a global script type, + + Node + |- MyCustomNode (my_custom_node.gd) + + will be + + Node + |- MyCustomNode (Custom Suffix) + + Bear in mind that when a built-in type does not have any custom suffix, its suffix will be removed. The suffix of a type created from a script will fall back to its script file name. For global types by scripts, if you customize their suffixes to an empty string, their suffixes will be removed. + Note: Trying to list the base type in the will hide all types derived from the base type from the create dialog. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Selects the file, with the path provided by , in the FileSystem dock. + + + + + Returns an array containing the paths of the currently selected files (and directories) in the . + + + + + Returns the current path being viewed in the . + + + + + Returns the current directory being viewed in the . If a file is selected, its base directory will be returned using String.get_base_dir instead. + + + + + Returns the editor's instance. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Shows the given property on the given in the editor's Inspector dock. If is , plugins will not attempt to edit . + + + + + Edits the given . If the resource is a you can also edit it with to specify the line and column position. + + + + + Edits the given . The node will be also selected if it's inside the scene tree. + + + + + Edits the given . The line and column on which to open the script can also be specified. The script will be open with the user-configured editor for the script's language which may be an external editor. + + + + + Opens the scene at the given path. If is , creates a new inherited scene. + + + + + Reloads the scene at the given path. + + + + + Returns an with the file paths of the currently opened scenes. + + + + + Returns the edited (current) scene's root . + + + + + Saves the currently active scene. Returns either or . + + + + + Saves the currently active scene as a file at . + + + + + Saves all opened scenes in the editor. + + + + + Marks the current scene tab as unsaved. + + + + + Plays the main scene. + + + + + Plays the currently active scene. + + + + + Plays the scene specified by its filepath. + + + + + Stops the scene that is currently playing. + + + + + Returns if a scene is currently being played, otherwise. Paused scenes are considered as being played. + + + + + Returns the name of the scene that is being played. If no scene is currently being played, returns an empty string. + + + + + Opens the scene at the given path. If is , creates a new inherited scene. + + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + If the parameter is null, then the default value is Array.Empty<int>(). + + + + Pops up an editor dialog for selecting properties from . The must take a single argument of type . It is called on the selected property path (see NodePath.get_as_property_path) or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show properties that match one of the listed values. If is provided, the property will be selected automatically in the property list, if it exists. + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_property_selector(this, _on_property_selected, [TYPE_INT]) + + func _on_property_selected(property_path): + if property_path.is_empty(): + print("property selection canceled") + else: + print("selected ", property_path) + + + + + + Pops up an editor dialog for selecting a from the edited scene. The must take a single argument of type . It is called on the selected or the empty path ^"" if the dialog is canceled. If is provided, the dialog will only show Nodes that match one of the listed Node types. If is provided, the Node will be automatically selected in the tree, if it exists. + Example: Display the node selection dialog as soon as this node is added to the tree for the first time: + + func _ready(): + if Engine.is_editor_hint(): + EditorInterface.popup_node_selector(_on_node_selected, ["Button"]) + + func _on_node_selected(node_path): + if node_path.is_empty(): + print("node selection canceled") + else: + print("selected ", node_path) + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'distraction_free_mode' property. + + + + + Cached name for the 'movie_maker_enabled' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'restart_editor' method. + + + + + Cached name for the 'get_command_palette' method. + + + + + Cached name for the 'get_resource_filesystem' method. + + + + + Cached name for the 'get_editor_paths' method. + + + + + Cached name for the 'get_resource_previewer' method. + + + + + Cached name for the 'get_selection' method. + + + + + Cached name for the 'get_editor_settings' method. + + + + + Cached name for the 'get_editor_toaster' method. + + + + + Cached name for the 'get_editor_undo_redo' method. + + + + + Cached name for the 'make_mesh_previews' method. + + + + + Cached name for the 'set_plugin_enabled' method. + + + + + Cached name for the 'is_plugin_enabled' method. + + + + + Cached name for the 'get_editor_theme' method. + + + + + Cached name for the 'get_base_control' method. + + + + + Cached name for the 'get_editor_main_screen' method. + + + + + Cached name for the 'get_script_editor' method. + + + + + Cached name for the 'get_editor_viewport_2d' method. + + + + + Cached name for the 'get_editor_viewport_3d' method. + + + + + Cached name for the 'set_main_screen_editor' method. + + + + + Cached name for the 'set_distraction_free_mode' method. + + + + + Cached name for the 'is_distraction_free_mode_enabled' method. + + + + + Cached name for the 'is_multi_window_enabled' method. + + + + + Cached name for the 'get_editor_scale' method. + + + + + Cached name for the 'popup_dialog' method. + + + + + Cached name for the 'popup_dialog_centered' method. + + + + + Cached name for the 'popup_dialog_centered_ratio' method. + + + + + Cached name for the 'popup_dialog_centered_clamped' method. + + + + + Cached name for the 'get_current_feature_profile' method. + + + + + Cached name for the 'set_current_feature_profile' method. + + + + + Cached name for the 'popup_node_selector' method. + + + + + Cached name for the 'popup_property_selector' method. + + + + + Cached name for the 'popup_method_selector' method. + + + + + Cached name for the 'popup_quick_open' method. + + + + + Cached name for the 'popup_create_dialog' method. + + + + + Cached name for the 'get_file_system_dock' method. + + + + + Cached name for the 'select_file' method. + + + + + Cached name for the 'get_selected_paths' method. + + + + + Cached name for the 'get_current_path' method. + + + + + Cached name for the 'get_current_directory' method. + + + + + Cached name for the 'get_inspector' method. + + + + + Cached name for the 'inspect_object' method. + + + + + Cached name for the 'edit_resource' method. + + + + + Cached name for the 'edit_node' method. + + + + + Cached name for the 'edit_script' method. + + + + + Cached name for the 'open_scene_from_path' method. + + + + + Cached name for the 'reload_scene_from_path' method. + + + + + Cached name for the 'get_open_scenes' method. + + + + + Cached name for the 'get_edited_scene_root' method. + + + + + Cached name for the 'save_scene' method. + + + + + Cached name for the 'save_scene_as' method. + + + + + Cached name for the 'save_all_scenes' method. + + + + + Cached name for the 'mark_scene_as_unsaved' method. + + + + + Cached name for the 'play_main_scene' method. + + + + + Cached name for the 'play_current_scene' method. + + + + + Cached name for the 'play_custom_scene' method. + + + + + Cached name for the 'stop_playing_scene' method. + + + + + Cached name for the 'is_playing_scene' method. + + + + + Cached name for the 'get_playing_scene' method. + + + + + Cached name for the 'set_movie_maker_enabled' method. + + + + + Cached name for the 'is_movie_maker_enabled' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Gizmo that is used for providing custom visualization and editing (handles and subgizmos) for objects. Can be overridden to create custom gizmos, but for simple gizmos creating a is usually recommended. + + + + + Override this method to commit a handle being edited (handles must have been previously added by ). This usually means creating an action for the change, using the current handle value as "do" and the argument as "undo". + If the argument is , the value should be directly set, without any action. + The argument is when the committed handle is secondary (see for more information). + + + + + Override this method to commit a group of subgizmos being edited (see and ). This usually means creating an action for the change, using the current transforms as "do" and the transforms as "undo". + If the argument is , the transforms should be directly set, without any action. + + + + + Override this method to return the name of an edited handle (handles must have been previously added by ). Handles can be named for reference to the user when editing. + The argument is when the requested handle is secondary (see for more information). + + + + + 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 restore argument in . + The argument is when the requested handle is secondary (see for more information). + + + + + 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 restore argument in . + + + + + Override this method to return whenever the given handle should be highlighted in the editor. + The argument is when the requested handle is secondary (see for more information). + + + + + Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call at the beginning of this method and then add visual elements depending on the node's properties. + + + + + Override this method to update the node properties when the user drags a gizmo handle (previously added with ). The provided is the mouse position in screen coordinates and the can be used to convert it to raycasts. + The argument is when the edited handle is secondary (see for more information). + + + + + Override this method to update the node properties during subgizmo editing (see and ). The is given in the 's local coordinate system. + + + + + Override this method to allow selecting subgizmos using mouse drag box selection. Given a and a , this method should return which subgizmos are contained within the frustum. The argument consists of an array with all the 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 or . + + + + + Override this method to allow selecting subgizmos using mouse clicks. Given a and a 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 or . + + + + + Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this method during . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Adds lines to the gizmo (as sets of 2 points), with a given material. The lines are used for visualizing the gizmo. Call this method during . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Adds a mesh to the gizmo with the specified , local and . Call this method during . + + If the parameter is null, then the default value is Transform3D.Identity. + + + + Adds the specified to the gizmo's collision shape for picking. Call this method during . + + + + + Adds the specified to the gizmo's collision shape for picking. Call this method during . + + + + + Adds collision triangles to the gizmo for picking. A can be generated from a regular too. Call this method during . + + + + + Adds an unscaled billboard for visualization and selection. Call this method during . + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Adds a list of handles (points) which can be used to edit the properties of the gizmo's . The argument can be used to specify a custom identifier for each handle, if an empty array is passed, the ids will be assigned automatically from the argument order. + The argument marks the added handles as secondary, meaning they will normally have lower selection priority than regular handles. When the user is holding the shift key secondary handles will switch to have higher priority than regular handles. This change in priority can be used to place multiple handles at the same point while still giving the user control on their selection. + There are virtual methods which will be called upon editing of these handles. Call this method during . + + + + + Adds a list of handles (points) which can be used to edit the properties of the gizmo's . The argument can be used to specify a custom identifier for each handle, if an empty array is passed, the ids will be assigned automatically from the argument order. + The argument marks the added handles as secondary, meaning they will normally have lower selection priority than regular handles. When the user is holding the shift key secondary handles will switch to have higher priority than regular handles. This change in priority can be used to place multiple handles at the same point while still giving the user control on their selection. + There are virtual methods which will be called upon editing of these handles. Call this method during . + + + + + Sets the reference node for the gizmo. must inherit from . + + + + + Returns the node associated with this gizmo. + + + + + Returns the that owns this gizmo. It's useful to retrieve materials using . + + + + + Removes everything in the gizmo including meshes, collisions and handles. + + + + + Sets the gizmo's hidden state. If , the gizmo will be hidden. If , it will be shown. + + + + + Returns if the given subgizmo is currently selected. Can be used to highlight selected elements during . + + + + + Returns a list of the currently selected subgizmos. Can be used to highlight selected elements during . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_begin_handle_action' method. + + + + + Cached name for the '_commit_handle' method. + + + + + Cached name for the '_commit_subgizmos' method. + + + + + Cached name for the '_get_handle_name' method. + + + + + Cached name for the '_get_handle_value' method. + + + + + Cached name for the '_get_subgizmo_transform' method. + + + + + Cached name for the '_is_handle_highlighted' method. + + + + + Cached name for the '_redraw' method. + + + + + Cached name for the '_set_handle' method. + + + + + Cached name for the '_set_subgizmo_transform' method. + + + + + Cached name for the '_subgizmos_intersect_frustum' method. + + + + + Cached name for the '_subgizmos_intersect_ray' method. + + + + + Cached name for the 'add_lines' method. + + + + + Cached name for the 'add_mesh' method. + + + + + Cached name for the 'add_collision_segments' method. + + + + + Cached name for the 'add_collision_triangles' method. + + + + + Cached name for the 'add_unscaled_billboard' method. + + + + + Cached name for the 'add_handles' method. + + + + + Cached name for the 'set_node_3d' method. + + + + + Cached name for the 'get_node_3d' method. + + + + + Cached name for the 'get_plugin' method. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'set_hidden' method. + + + + + Cached name for the 'is_subgizmo_selected' method. + + + + + Cached name for the 'get_subgizmo_selection' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows you to define a new type of Gizmo. There are two main ways to do so: extending for the simpler gizmos, or creating a new type. See the tutorial in the documentation for more info. + To use , register it using the method first. + + + + + Override this method to define whether the gizmos handled by this plugin can be hidden or not. Returns if not overridden. + + + + + Override this method to commit a handle being edited (handles must have been previously added by during ). This usually means creating an action for the change, using the current handle value as "do" and the argument as "undo". + If the argument is , the value should be directly set, without any action. + The argument is when the committed handle is secondary (see for more information). + Called for this plugin's active gizmos. + + + + + Override this method to commit a group of subgizmos being edited (see and ). This usually means creating an action for the change, using the current transforms as "do" and the transforms as "undo". + If the argument is , the transforms should be directly set, without any 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. + + + + + Override this method to return a custom for the 3D nodes of your choice, return for the rest of nodes. See also . + + + + + Override this method to provide the name that will appear in the gizmo visibility menu. + + + + + Override this method to provide gizmo's handle names. The argument is when the requested handle is secondary (see for more information). Called for this plugin's active gizmos. + + + + + 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 restore argument in . + The argument is when the requested handle is secondary (see for more information). + Called for this plugin's active gizmos. + + + + + 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 -1. If not overridden, this method will return 0, which means custom gizmos will automatically get higher priority than built-in gizmos. + + + + + 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 restore argument in . Called for this plugin's active gizmos. + + + + + Override this method to define which Node3D nodes have a gizmo from this plugin. Whenever a node is added to a scene this method is called, if it returns the node gets a generic assigned and is added to this plugin's list of active gizmos. + + + + + Override this method to return whenever to given handle should be highlighted in the editor. The argument is when the requested handle is secondary (see for more information). Called for this plugin's active gizmos. + + + + + Override this method to define whether Node3D with this gizmo should be selectable even when the gizmo is hidden. + + + + + Override this method to add all the gizmo elements whenever a gizmo update is requested. It's common to call at the beginning of this method and then add visual elements depending on the node's properties. + + + + + Override this method to update the node's properties when the user drags a gizmo handle (previously added with ). The provided is the mouse position in screen coordinates and the can be used to convert it to raycasts. + The argument is when the edited handle is secondary (see for more information). + Called for this plugin's active gizmos. + + + + + Override this method to update the node properties during subgizmo editing (see and ). The is given in the Node3D's local coordinate system. Called for this plugin's active gizmos. + + + + + Override this method to allow selecting subgizmos using mouse drag box selection. Given a and , this method should return which subgizmos are contained within the frustums. The argument consists of an array with all the 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 or . Called for this plugin's active gizmos. + + + + + Override this method to allow selecting subgizmos using mouse clicks. Given a and a 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 or . Called for this plugin's active gizmos. + + + + + Creates an unshaded material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with and used in and . Should not be overridden. + + + + + Creates an icon material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with and used in . Should not be overridden. + + If the parameter is null, then the default value is new Color(1.0f, 1.0f, 1.0f, 1.0f). + + + + Creates a handle material with its variants (selected and/or editable) and adds them to the internal material list. They can then be accessed with and used in . Should not be overridden. + You can optionally provide a texture to use instead of the default icon. + + + + + Adds a new material to the internal material list for the plugin. It can then be accessed with . Should not be overridden. + + + + + Gets material from the internal list of materials. If an is provided, it will try to get the corresponding variant (selected and/or editable). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_begin_handle_action' method. + + + + + Cached name for the '_can_be_hidden' method. + + + + + Cached name for the '_commit_handle' method. + + + + + Cached name for the '_commit_subgizmos' method. + + + + + Cached name for the '_create_gizmo' method. + + + + + Cached name for the '_get_gizmo_name' method. + + + + + Cached name for the '_get_handle_name' method. + + + + + Cached name for the '_get_handle_value' method. + + + + + Cached name for the '_get_priority' method. + + + + + Cached name for the '_get_subgizmo_transform' method. + + + + + Cached name for the '_has_gizmo' method. + + + + + Cached name for the '_is_handle_highlighted' method. + + + + + Cached name for the '_is_selectable_when_hidden' method. + + + + + Cached name for the '_redraw' method. + + + + + Cached name for the '_set_handle' method. + + + + + Cached name for the '_set_subgizmo_transform' method. + + + + + Cached name for the '_subgizmos_intersect_frustum' method. + + + + + Cached name for the '_subgizmos_intersect_ray' method. + + + + + Cached name for the 'create_material' method. + + + + + Cached name for the 'create_icon_material' method. + + + + + Cached name for the 'create_handle_material' method. + + + + + Cached name for the 'add_material' method. + + + + + Cached name for the 'get_material' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + Note: 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 to check whether the singleton is available before using it. + Note: On the Linux/BSD platform, Godot complies with the XDG Base Directory Specification. You can override environment variables following the specification to change the editor and project data paths. + + + + + Returns the absolute path to the user's data folder. This folder should be used for persistent user data files such as installed export templates. + Default paths per platform: + + - Windows: %APPDATA%\Godot\ (same as `get_config_dir()`) + - macOS: ~/Library/Application Support/Godot/ (same as `get_config_dir()`) + - Linux: ~/.local/share/godot/ + + + + + + Returns the absolute path to the user's configuration folder. This folder should be used for persistent user configuration files. + Default paths per platform: + + - Windows: %APPDATA%\Godot\ (same as `get_data_dir()`) + - macOS: ~/Library/Application Support/Godot/ (same as `get_data_dir()`) + - Linux: ~/.config/godot/ + + + + + + Returns the absolute path to the user's cache folder. This folder should be used for temporary data that can be removed safely whenever the editor is closed (such as generated resource thumbnails). + Default paths per platform: + + - Windows: %LOCALAPPDATA%\Godot\ + - macOS: ~/Library/Caches/Godot/ + - Linux: ~/.cache/godot/ + + + + + + Returns if the editor is marked as self-contained, otherwise. When self-contained mode is enabled, user configuration, data and cache files are saved in an editor_data/ folder next to the editor binary. This makes portable usage easier and ensures the Godot editor minimizes file writes outside its own folder. Self-contained mode is not available for exported projects. + Self-contained mode can be enabled by creating a file named ._sc_ or _sc_ in the same folder as the editor binary or macOS .app bundle while the editor is not running. See also . + Note: On macOS, quarantine flag should be manually removed before using self-contained mode, see Running on macOS. + Note: On macOS, placing _sc_ or any other file inside .app bundle will break digital signature and make it non-portable, consider placing it in the same folder as the .app bundle instead. + Note: The Steam release of Godot uses self-contained mode by default. + + + + + Returns the absolute path to the self-contained file that makes the current Godot editor instance be considered as self-contained. Returns an empty string if the current Godot editor instance isn't self-contained. See also . + + + + + Returns the project-specific editor settings path. Projects all have a unique subdirectory inside the settings path where project-specific editor settings are saved. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_data_dir' method. + + + + + Cached name for the 'get_config_dir' method. + + + + + Cached name for the 'get_cache_dir' method. + + + + + Cached name for the 'is_self_contained' method. + + + + + Cached name for the 'get_self_contained_file' method. + + + + + Cached name for the 'get_project_settings_dir' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 to add functions to the editor. + Note: Some names in this class contain "left" or "right" (e.g. ). These APIs assume left-to-right layout, and would be backwards when using right-to-left layout. These names are kept for compatibility reasons. + + + + + Main editor toolbar, next to play buttons. + + + + + The toolbar that appears when 3D editor is active. + + + + + Left sidebar of the 3D editor. + + + + + Right sidebar of the 3D editor. + + + + + Bottom panel of the 3D editor. + + + + + The toolbar that appears when 2D editor is active. + + + + + Left sidebar of the 2D editor. + + + + + Right sidebar of the 2D editor. + + + + + Bottom panel of the 2D editor. + + + + + Bottom section of the inspector. + + + + + Tab of Project Settings dialog, to the left of other tabs. + + + + + Tab of Project Settings dialog, to the right of other tabs. + + + + + Dock slot, left side, upper-left (empty in default layout). + + + + + Dock slot, left side, bottom-left (empty in default layout). + + + + + Dock slot, left side, upper-right (in default layout includes Scene and Import docks). + + + + + Dock slot, left side, bottom-right (in default layout includes FileSystem dock). + + + + + Dock slot, right side, upper-left (in default layout includes Inspector, Node, and History docks). + + + + + Dock slot, right side, bottom-left (empty in default layout). + + + + + Dock slot, right side, upper-right (empty in default layout). + + + + + Dock slot, right side, bottom-right (empty in default layout). + + + + + Represents the size of the enum. + + + + + Forwards the to other EditorPlugins. + + + + + Prevents the from reaching other Editor classes. + + + + + Pass the to other editor plugins except the main one. This can be used to prevent node selection changes and work with sub-gizmos instead. + + + + + 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. + + + + + 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 , the project will not run. The run is aborted immediately, so this also prevents all other plugins' methods from running. + + + + + 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. + + + + + Called by the engine when the user disables the in the Plugin tab of the project settings window. + + + + + This function is used for plugins that edit specific object types (nodes or resources). It requests the editor to edit the given object. + can be 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. + + + + + Called by the engine when the user enables the in the Plugin tab of the project settings window. + + + + + Called by the engine when the 3D editor's viewport is updated. Use the overlay for drawing. You can update the viewport manually by calling . + + 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; + } + + + + + + This method is the same as , 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 . + + + + + Called when there is a root node in the current edited scene, is implemented, and an happens in the 3D viewport. The return value decides whether the is consumed or forwarded to other s. See for options. + + // Prevents the InputEvent from reaching other Editor classes. + public override EditorPlugin.AfterGuiInput _Forward3DGuiInput(Camera3D camera, InputEvent @event) + { + return EditorPlugin.AfterGuiInput.Stop; + } + + This method must return in order to forward the to other Editor classes. + + // 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; + } + + + + + + Called by the engine when the 2D editor's viewport is updated. Use the overlay for drawing. You can update the viewport manually by calling . + + 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; + } + + + + + + This method is the same as , 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 . + + + + + Called when there is a root node in the current edited scene, is implemented, and an happens in the 2D viewport. If this method returns , is intercepted by this , otherwise is forwarded to other Editor classes. + + // Prevents the InputEvent from reaching other Editor classes. + public override bool ForwardCanvasGuiInput(InputEvent @event) + { + return true; + } + + This method must return in order to forward the to other Editor classes. + + // Consumes InputEventMouseMotion and forwards other InputEvent types. + public override bool _ForwardCanvasGuiInput(InputEvent @event) + { + if (@event is InputEventMouseMotion) + { + return true; + } + return false; + } + + + + + + This is for editors that edit script-based objects. You can return a list of breakpoints in the format (script:line), for example: res://path_to_script.gd:25. + + + + + Override this method in your plugin to return a 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 16×16 pixels in size. + + 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"); + } + + + + + + 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. + + + + + 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 editstate file in the editor metadata folder. If you want to store global (scene-independent) editor data for your plugin, you can use instead. + Use to restore your saved state. + Note: This method should not be used to save important settings that should persist with the project. + Note: You must implement for the state to be stored and restored correctly. + + func _get_state(): + var state = {"zoom": zoom, "preferred_color": my_color} + return state + + + + + + 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, 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, will be called, before closing the editor. + + 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 + + If the plugin has no scene-specific changes, you can ignore the calls when closing scenes: + + func _get_unsaved_status(for_scene): + if not for_scene.is_empty(): + return "" + + + + + + 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 is called or the editor layout was changed (for example changing the position of a dock). The data is stored in the editor_layout.cfg file in the editor metadata directory. + Use to restore your saved layout. + + func _get_window_layout(configuration): + configuration.set_value("MyPlugin", "window_position", $Window.position) + configuration.set_value("MyPlugin", "icon_color", $Icon.modulate) + + + + + + Implement this function if your plugin edits a specific type of object (Resource or Node). If you return , then you will get the functions and called when the editor requests them. If you have declared the methods and these will be called too. + Note: 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. + + + + + Returns if this is a main screen editor plugin (it goes in the workspace selector together with 2D, 3D, Script and AssetLib). + 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 and made visible inside . + Use and to customize the plugin button's appearance. + + 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") + + + + + + 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. + + + + + 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. + + + + + Restore the state saved by . This method is called when the current scene tab is changed in the editor. + Note: Your plugin must implement , otherwise it will not be recognized and this method will not be called. + + func _set_state(data): + zoom = data.get("zoom", 1.0) + preferred_color = data.get("my_color", Color.WHITE) + + + + + + Restore the plugin GUI layout and data saved by . This method is called for every plugin on editor startup. Use the provided file to read your saved data. + + func _set_window_layout(configuration): + $Window.position = configuration.get_value("MyPlugin", "window_position", Vector2()) + $Icon.modulate = configuration.get_value("MyPlugin", "icon_color", Color.WHITE) + + + + + + Adds a custom control to a container (see ). There are many locations where custom controls can be added in the editor UI. + Please remember that you have to manage the visibility of your custom controls yourself (and likely hide it after adding it). + When your plugin is deactivated, make sure to remove your custom control with and free it with . + + + + + Adds a control to the bottom panel (together with Output, Debug, Animation, etc.). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the bottom panel's visibility. See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Adds the control to a specific dock slot (see for options). + If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions. + When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the dock's visibility once it's moved to the bottom panel (this shortcut does not affect the dock otherwise). See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Removes the control from the dock. You have to manually the control. + + + + + Removes the control from the bottom panel. You have to manually the control. + + + + + Removes the control from the specified container. You have to manually the control. + + + + + Sets the tab icon for the given control in a dock slot. Setting to removes the icon. + + + + + Adds a custom menu item to Project > Tools named . When clicked, the provided will be called. + + + + + Adds a custom submenu under Project > Tools > . Use on plugin clean up to remove the menu. + + + + + Removes a menu from Project > Tools. + + + + + Returns the under Scene > Export As.... + + + + + Adds a custom type, which will appear in the list of nodes or resources. + When a given node or resource is selected, the base type will be instantiated (e.g. "Node3D", "Control", "Resource"), then the script will be loaded and set to this object. + Note: The base type is the base engine class which this type's class hierarchy inherits, not any custom type parent classes. + You can use the virtual method to check if your custom object is being edited by checking the script or using the is keyword. + During run-time, this will be a simple object with a script so this function does not need to be called then. + Note: Custom types added this way are not true classes. They are just a helper to create a node with specific script. + + + + + Removes a custom type added by . + + + + + Adds a script at to the Autoload list as . + + + + + Removes an Autoload from the list. + + + + + Updates the overlays of the 2D and 3D editor viewport. Causes methods , , and to be called. + + + + + Makes a specific item in the bottom panel visible. + + + + + Minimizes the bottom panel. + + + + + Gets the undo/redo object. Most actions in the editor can be undoable, so use this object to make sure this happens when it's worth it. + + + + + Hooks a callback into the undo/redo action creation when a property is modified in the inspector. This allows, for example, to save other properties that may be lost when a given property is modified. + The callback should have 4 arguments: undo_redo, modified_object, property and new_value. They are, respectively, the object used by the inspector, the currently modified object, the name of the modified property and the new value the property is about to take. + + + + + Removes a callback previously added by . + + + + + Queue save the project's editor layout. + + + + + Registers a custom translation parser plugin for extracting translatable strings from custom files. + + + + + Removes a custom translation parser plugin registered by . + + + + + Registers a new . Import plugins are used to import custom and unsupported assets as a custom type. + If is , the new import plugin is inserted first in the list and takes precedence over pre-existing plugins. + Note: If you want to import custom 3D asset formats use instead. + See for an example of how to register a plugin. + + + + + Removes an import plugin registered by . + + + + + Registers a new . Scene importers are used to import custom 3D asset formats as scenes. + If is , the new import plugin is inserted first in the list and takes precedence over pre-existing plugins. + + + + + Removes a scene format importer registered by . + + + + + Add a . These plugins allow customizing the import process of 3D assets by adding new options to the import dialogs. + If is , the new import plugin is inserted first in the list and takes precedence over pre-existing plugins. + + + + + Remove the , added with . + + + + + Registers a new . Export plugins are used to perform tasks when the project is being exported. + See for an example of how to register a plugin. + + + + + Removes an export plugin registered by . + + + + + Registers a new . Export platforms provides functionality of exporting to the specific platform. + + + + + Removes an export platform registered by . + + + + + Registers a new . Gizmo plugins are used to add custom gizmos to the 3D preview viewport for a . + See for an example of how to register a plugin. + + + + + Removes a gizmo plugin registered by . + + + + + Registers a new . Inspector plugins are used to extend and provide custom configuration tools for your object's properties. + Note: Always use to remove the registered when your is disabled to prevent leaks and an unexpected behavior. + + + + + + Removes an inspector plugin registered by . + + + + + Registers a new . Resource conversion plugins are used to add custom resource converters to the editor inspector. + See for an example of how to create a resource conversion plugin. + + + + + Removes a resource conversion plugin registered by . + + + + + Use this method if you always want to receive inputs from 3D view screen inside . It might be especially usable if your plugin will want to use raycast in the scene. + + + + + Enables calling of for the 2D editor and for the 3D editor when their viewports are updated. You need to call this method only once and it will work permanently for this plugin. + + + + + Adds a plugin to the context menu. is the context menu where the plugin will be added. + See for available context menus. A plugin instance can belong only to a single context menu slot. + + + + + Removes the specified context menu plugin. + + + + + Returns the singleton instance. + + + + + Gets the Editor's dialog used for making scripts. + Note: Users can configure it before use. + Warning: Removing and freeing this node will render a part of the editor useless and may cause a crash. + + + + + Adds a as debugger plugin to the Debugger. The script must extend . + + + + + Removes the debugger plugin with given script from the Debugger. + + + + + Provide the version of the plugin declared in the plugin.cfg config file. + + + + + Adds the control to a specific dock slot (see for options). + If the dock is repositioned and as long as the plugin is active, the editor will save the dock position on further sessions. + When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the dock's visibility once it's moved to the bottom panel (this shortcut does not affect the dock otherwise). See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Adds a control to the bottom panel (together with Output, Debug, Animation, etc.). Returns a reference to the button added. It's up to you to hide/show the button when needed. When your plugin is deactivated, make sure to remove your custom control with and free it with . + Optionally, you can specify a shortcut parameter. When pressed, this shortcut will toggle the bottom panel's visibility. See the default editor bottom panel shortcuts in the Editor Settings for inspiration. Per convention, they all use Alt modifier. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the scene is changed in the editor. The argument will return the root node of the scene that has just become active. If this scene is new and empty, the argument will be . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user closes a scene. The argument is a file path to the closed scene. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user changes the workspace (2D, 3D, Script, AssetLib). Also works with custom screens defined by plugins. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given resource was saved on disc. See also . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a scene was saved on disc. The argument is a file path to the saved scene. See also . + + + + + Emitted when any project setting has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_apply_changes' method. + + + + + Cached name for the '_build' method. + + + + + Cached name for the '_clear' method. + + + + + Cached name for the '_disable_plugin' method. + + + + + Cached name for the '_edit' method. + + + + + Cached name for the '_enable_plugin' method. + + + + + Cached name for the '_forward_3d_draw_over_viewport' method. + + + + + Cached name for the '_forward_3d_force_draw_over_viewport' method. + + + + + Cached name for the '_forward_3d_gui_input' method. + + + + + Cached name for the '_forward_canvas_draw_over_viewport' method. + + + + + Cached name for the '_forward_canvas_force_draw_over_viewport' method. + + + + + Cached name for the '_forward_canvas_gui_input' method. + + + + + Cached name for the '_get_breakpoints' method. + + + + + Cached name for the '_get_plugin_icon' method. + + + + + Cached name for the '_get_plugin_name' method. + + + + + Cached name for the '_get_state' method. + + + + + Cached name for the '_get_unsaved_status' method. + + + + + Cached name for the '_get_window_layout' method. + + + + + Cached name for the '_handles' method. + + + + + Cached name for the '_has_main_screen' method. + + + + + Cached name for the '_make_visible' method. + + + + + Cached name for the '_save_external_data' method. + + + + + Cached name for the '_set_state' method. + + + + + Cached name for the '_set_window_layout' method. + + + + + Cached name for the 'add_control_to_container' method. + + + + + Cached name for the 'add_control_to_bottom_panel' method. + + + + + Cached name for the 'add_control_to_dock' method. + + + + + Cached name for the 'remove_control_from_docks' method. + + + + + Cached name for the 'remove_control_from_bottom_panel' method. + + + + + Cached name for the 'remove_control_from_container' method. + + + + + Cached name for the 'set_dock_tab_icon' method. + + + + + Cached name for the 'add_tool_menu_item' method. + + + + + Cached name for the 'add_tool_submenu_item' method. + + + + + Cached name for the 'remove_tool_menu_item' method. + + + + + Cached name for the 'get_export_as_menu' method. + + + + + Cached name for the 'add_custom_type' method. + + + + + Cached name for the 'remove_custom_type' method. + + + + + Cached name for the 'add_autoload_singleton' method. + + + + + Cached name for the 'remove_autoload_singleton' method. + + + + + Cached name for the 'update_overlays' method. + + + + + Cached name for the 'make_bottom_panel_item_visible' method. + + + + + Cached name for the 'hide_bottom_panel' method. + + + + + Cached name for the 'get_undo_redo' method. + + + + + Cached name for the 'add_undo_redo_inspector_hook_callback' method. + + + + + Cached name for the 'remove_undo_redo_inspector_hook_callback' method. + + + + + Cached name for the 'queue_save_layout' method. + + + + + Cached name for the 'add_translation_parser_plugin' method. + + + + + Cached name for the 'remove_translation_parser_plugin' method. + + + + + Cached name for the 'add_import_plugin' method. + + + + + Cached name for the 'remove_import_plugin' method. + + + + + Cached name for the 'add_scene_format_importer_plugin' method. + + + + + Cached name for the 'remove_scene_format_importer_plugin' method. + + + + + Cached name for the 'add_scene_post_import_plugin' method. + + + + + Cached name for the 'remove_scene_post_import_plugin' method. + + + + + Cached name for the 'add_export_plugin' method. + + + + + Cached name for the 'remove_export_plugin' method. + + + + + Cached name for the 'add_export_platform' method. + + + + + Cached name for the 'remove_export_platform' method. + + + + + Cached name for the 'add_node_3d_gizmo_plugin' method. + + + + + Cached name for the 'remove_node_3d_gizmo_plugin' method. + + + + + Cached name for the 'add_inspector_plugin' method. + + + + + Cached name for the 'remove_inspector_plugin' method. + + + + + Cached name for the 'add_resource_conversion_plugin' method. + + + + + Cached name for the 'remove_resource_conversion_plugin' method. + + + + + Cached name for the 'set_input_event_forwarding_always_enabled' method. + + + + + Cached name for the 'set_force_draw_over_forwarding_enabled' method. + + + + + Cached name for the 'add_context_menu_plugin' method. + + + + + Cached name for the 'remove_context_menu_plugin' method. + + + + + Cached name for the 'get_editor_interface' method. + + + + + Cached name for the 'get_script_create_dialog' method. + + + + + Cached name for the 'add_debugger_plugin' method. + + + + + Cached name for the 'remove_debugger_plugin' method. + + + + + Cached name for the 'get_plugin_version' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'scene_changed' signal. + + + + + Cached name for the 'scene_closed' signal. + + + + + Cached name for the 'main_screen_changed' signal. + + + + + Cached name for the 'resource_saved' signal. + + + + + Cached name for the 'scene_saved' signal. + + + + + Cached name for the 'project_settings_changed' signal. + + + + + A custom control for editing properties that can be added to the . It is added via . + + + + + Set this property to change the label (if you want to show one). + + + + + Used by the inspector, set to when the property is read-only. + + + + + Used by the inspector, set to when the property is checkable. + + + + + Used by the inspector, set to when the property is checked. + + + + + Used by the inspector, set to when the property is drawn with the editor theme's warning color. This is used for editable children's properties. + + + + + Used by the inspector, set to when the property can add keys for animation. + + + + + Used by the inspector, set to when the property can be deleted by the user. + + + + + Used by the inspector, set to when the property is selectable. + + + + + Used by the inspector, set to when the property is using folding. + + + + + Space distribution ratio between the label and the editing field. + + + + + 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. + + + + + When this virtual function is called, you must update your editor. + + + + + Gets the edited property. If your editor is for a single property (added via ), then this will return the property. + + + + + Gets the edited object. + + + + + Forces refresh of the property display. + + + + + If any of the controls added can gain keyboard focus, add it here. This ensures that focus will be restored if the inspector is refreshed. + + + + + Puts the control below the property label. The control must be previously added using . + + + + + Draw property as not selected. Used by the inspector. + + + + + Returns if property is drawn as selected. Used by the inspector. + + + + + Draw property as selected. Used by the inspector. + + + + + Assigns object and property to edit. + + + + + Used by the inspector, set to a control that will be used as a reference to calculate the size of the label. + + + + + If one or several properties have changed, this must be called. is used in case your editor can modify fields separately (as an example, Vector3.x). The argument avoids the editor requesting this property to be refreshed (leave as if unsure). + + + + + Represents the method that handles the event of a class. + + + + + Do not emit this manually, use the method instead. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want multiple properties modified at the same time. Do not use if added via . + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to add this value as an animation key (check for keying being enabled first). + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property was deleted. Used internally. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to key a property with a single value. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a property was checked. Used internally. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to mark a property as favorited, making it appear at the top of the inspector. + + + + + Represents the method that handles the event of a class. + + + + + Emit it if you want to mark (or unmark) the value of a property for being saved regardless of being equal to the default value. + The default value is the one the property will get when the node is just instantiated and can come from an ancestor scene in the inheritance/instantiation chain, a script or a builtin class. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the revertability (i.e., whether it has a non-default value and thus is displayed with a revert icon) of a property has changed. + + + + + Represents the method that handles the event of a class. + + + + + If you want a sub-resource to be edited, emit this signal with the resource. + + + + + Represents the method that handles the event of a class. + + + + + Used by sub-inspectors. Emit it if what was selected was an Object ID. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when selected. Used internally. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'label' property. + + + + + Cached name for the 'read_only' property. + + + + + Cached name for the 'checkable' property. + + + + + Cached name for the 'checked' property. + + + + + Cached name for the 'draw_warning' property. + + + + + Cached name for the 'keying' property. + + + + + Cached name for the 'deletable' property. + + + + + Cached name for the 'selectable' property. + + + + + Cached name for the 'use_folding' property. + + + + + Cached name for the 'name_split_ratio' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_set_read_only' method. + + + + + Cached name for the '_update_property' method. + + + + + Cached name for the 'set_label' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'set_read_only' method. + + + + + Cached name for the 'is_read_only' method. + + + + + Cached name for the 'set_checkable' method. + + + + + Cached name for the 'is_checkable' method. + + + + + Cached name for the 'set_checked' method. + + + + + Cached name for the 'is_checked' method. + + + + + Cached name for the 'set_draw_warning' method. + + + + + Cached name for the 'is_draw_warning' method. + + + + + Cached name for the 'set_keying' method. + + + + + Cached name for the 'is_keying' method. + + + + + Cached name for the 'set_deletable' method. + + + + + Cached name for the 'is_deletable' method. + + + + + Cached name for the 'get_edited_property' method. + + + + + Cached name for the 'get_edited_object' method. + + + + + Cached name for the 'update_property' method. + + + + + Cached name for the 'add_focusable' method. + + + + + Cached name for the 'set_bottom_editor' method. + + + + + Cached name for the 'set_selectable' method. + + + + + Cached name for the 'is_selectable' method. + + + + + Cached name for the 'set_use_folding' method. + + + + + Cached name for the 'is_using_folding' method. + + + + + Cached name for the 'set_name_split_ratio' method. + + + + + Cached name for the 'get_name_split_ratio' method. + + + + + Cached name for the 'deselect' method. + + + + + Cached name for the 'is_selected' method. + + + + + Cached name for the 'select' method. + + + + + Cached name for the 'set_object_and_property' method. + + + + + Cached name for the 'set_label_reference' method. + + + + + Cached name for the 'emit_changed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'property_changed' signal. + + + + + Cached name for the 'multiple_properties_changed' signal. + + + + + Cached name for the 'property_keyed' signal. + + + + + Cached name for the 'property_deleted' signal. + + + + + Cached name for the 'property_keyed_with_value' signal. + + + + + Cached name for the 'property_checked' signal. + + + + + Cached name for the 'property_favorited' signal. + + + + + Cached name for the 'property_pinned' signal. + + + + + Cached name for the 'property_can_revert_changed' signal. + + + + + Cached name for the 'resource_selected' signal. + + + + + Cached name for the 'object_id_selected' signal. + + + + + Cached name for the 'selected' signal. + + + + + 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 to a . + + To use an , register it using the method first. + + + + + Takes an input and converts it to the type given in . The returned is the result of the conversion, and the input remains unchanged. + + + + + Returns the class name of the target type of that this plugin converts source resources to. + + + + + Called to determine whether a particular can be converted to the target resource type by this plugin. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_convert' method. + + + + + Cached name for the '_converts_to' method. + + + + + Cached name for the '_handles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This node is used in the editor's Inspector dock to allow editing of type properties. It provides options for creating, loading, saving and converting resources. Can be used with to recreate the same behavior. + Note: This does not include any editor for the resource, as editing is controlled by the Inspector dock itself or sub-Inspectors. + + + + + The base type of allowed resource types. Can be a comma-separated list of several options. + + + + + The edited resource value. + + + + + If , the value can be selected and edited. + + + + + If , the main button with the resource preview works in the toggle mode. Use to manually set the state. + + + + + This virtual method can be implemented to handle context menu items not handled by default. See . + + + + + This virtual method is called when updating the context menu of . Implement this method to override the "New ..." items with your own options. is a reference to the node. + Note: Implement to handle these custom items. + + + + + Returns a list of all allowed types and subtypes corresponding to the . If the is empty, an empty list is returned. + + + + + Sets the toggle mode state for the main button. Works only if is set to . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the resource value was set and user clicked to edit it. When inspect is , the signal was caused by the context menu "Edit" or "Inspect" option. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the value of the edited resource was changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'base_type' property. + + + + + Cached name for the 'edited_resource' property. + + + + + Cached name for the 'editable' property. + + + + + Cached name for the 'toggle_mode' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_handle_menu_selected' method. + + + + + Cached name for the '_set_create_options' method. + + + + + Cached name for the 'set_base_type' method. + + + + + Cached name for the 'get_base_type' method. + + + + + Cached name for the 'get_allowed_types' method. + + + + + Cached name for the 'set_edited_resource' method. + + + + + Cached name for the 'get_edited_resource' method. + + + + + Cached name for the 'set_toggle_mode' method. + + + + + Cached name for the 'is_toggle_mode' method. + + + + + Cached name for the 'set_toggle_pressed' method. + + + + + Cached name for the 'set_editable' method. + + + + + Cached name for the 'is_editable' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'resource_selected' signal. + + + + + Cached name for the 'resource_changed' signal. + + + + + This node is used to generate previews for resources or files. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Queue a resource file located at for preview. Once the preview is ready, the 's will be called. The must take the following four arguments: path, preview, thumbnail_preview, userdata. can be anything, and will be returned when is called. + Note: If it was not possible to create the preview the will still be called, but the preview will be . + + + + + Queue the being edited for preview. Once the preview is ready, the 's will be called. The must take the following four arguments: path, preview, thumbnail_preview, userdata. can be anything, and will be returned when is called. + Note: If it was not possible to create the preview the will still be called, but the preview will be . + + + + + Create an own, custom preview generator. + + + + + Removes a custom preview generator. + + + + + Check if the resource changed, if so, it will be invalidated and the corresponding signal emitted. + + + + + Represents the method that handles the event of a class. + + + + + Emitted if a preview was invalidated (changed). path corresponds to the path of the preview. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'queue_resource_preview' method. + + + + + Cached name for the 'queue_edited_resource_preview' method. + + + + + Cached name for the 'add_preview_generator' method. + + + + + Cached name for the 'remove_preview_generator' method. + + + + + Cached name for the 'check_for_invalidation' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'preview_invalidated' signal. + + + + + Custom code to generate previews. Check EditorSettings.filesystem/file_dialog/thumbnail_size to find a proper size to generate previews at. + + + + + If this function returns , the generator will call or for small previews as well. + By default, it returns . + + + + + Generate a preview from a given resource with the specified size. This must always be implemented. + Returning 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). + dictionary can be modified to store file-specific metadata that can be used in (like image size, sample length etc.). + + + + + Generate a preview directly from a path with the specified size. Implementing this is optional, as default code will load and call . + Returning 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). + dictionary can be modified to store file-specific metadata that can be used in (like image size, sample length etc.). + + + + + If this function returns , the generator will automatically generate the small previews from the normal preview texture generated by the methods or . + By default, it returns . + + + + + Returns if your generator supports the resource of type . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_can_generate_small_preview' method. + + + + + Cached name for the '_generate' method. + + + + + Cached name for the '_generate_from_path' method. + + + + + Cached name for the '_generate_small_preview_automatically' method. + + + + + Cached name for the '_handles' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Resource tooltip plugins are used by to generate customized tooltips for specific resources. E.g. tooltip for a displays a bigger preview and the texture's dimensions. + A plugin must be first registered with . When the user hovers a resource in filesystem dock which is handled by the plugin, is called to create the tooltip. It works similarly to . + + + + + Return if the plugin is going to handle the given . + + + + + Create and return a tooltip that will be displayed when the user hovers a resource under the given in filesystem dock. + The dictionary is provided by preview generator (see ). + is the base default tooltip, which is a with a file name, type and size labels. If another plugin handled the same file type, will be output from the previous plugin. For best result, make sure the base tooltip is part of the returned . + Note: It's unadvised to use , especially with heavy resources like models or textures, because it will make the editor unresponsive when creating the tooltip. You can use if you want to display a preview in your tooltip. + Note: If you decide to discard the , make sure to call , because it's not freed automatically. + + 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 + + + + + + Requests a thumbnail for the given . The thumbnail is created asynchronously by and automatically set when available. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_handles' method. + + + + + Cached name for the '_make_tooltip_for_path' method. + + + + + Cached name for the 'request_thumbnail' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + allows to define an importer script for a third-party 3D format. + To use , register it using the method first. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_extensions' method. + + + + + Cached name for the '_get_import_flags' method. + + + + + Cached name for the '_get_import_options' method. + + + + + Cached name for the '_get_option_visibility' method. + + + + + Cached name for the '_import_scene' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Imports Blender scenes in the .blend 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 filesystem/import/blender/blender_path editor setting. + This importer is only used if ProjectSettings.filesystem/import/blender/enabled is enabled, otherwise .blend 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 EditorSettings.filesystem/import/fbx/fbx2gltf_path editor setting. + This importer is only used if ProjectSettings.filesystem/import/fbx2gltf/enabled is set to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + EditorSceneFormatImporterUFBX is designed to load FBX files and supports both binary and ASCII FBX files from version 3000 onward. This class supports various 3D object types like meshes, skins, blend shapes, materials, and rigging information. The class aims for feature parity with the official FBX SDK and supports FBX 7.4 specifications. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Imported scenes can be automatically modified right after import by setting their Custom Script Import property to a tool script that inherits from this class. + The callback receives the imported scene's root node and returns the modified version of the scene: + + 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); + } + } + } + } + + + + + + Called after the scene was imported. This method must return the modified version of the scene. + + + + + Returns the source file path which got imported (e.g. res://scene.dae). + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_post_import' method. + + + + + Cached name for the 'get_source_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + + + + + Override to add general import options. These will appear in the main import dock on the editor. Add options via and . + + + + + Override to add internal import options. These will appear in the 3D scene import dialog. Add options via and . + + + + + Should return if the 3D view of the import dialog needs to update when changing the given option. + + + + + Should return to show the given option, to hide the given option, or to ignore. + + + + + Should return to show the given option, to hide the given option, or to ignore. + + + + + Process a specific node or resource for a given category. + + + + + Post process the scene. This function is called after the final scene has been configured. + + + + + Pre Process the scene. This function is called right after the scene format loader loaded the scene and no changes have been made. + + + + + Query the value of an option. This function can only be called from those querying visibility, or processing. + + + + + Add a specific import option (name and default value only). This function can only be called from and . + + + + + Add a specific import option. This function can only be called from and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_import_options' method. + + + + + Cached name for the '_get_internal_import_options' method. + + + + + Cached name for the '_get_internal_option_update_view_required' method. + + + + + Cached name for the '_get_internal_option_visibility' method. + + + + + Cached name for the '_get_option_visibility' method. + + + + + Cached name for the '_internal_process' method. + + + + + Cached name for the '_post_process' method. + + + + + Cached name for the '_pre_process' method. + + + + + Cached name for the 'get_option_value' method. + + + + + Cached name for the 'add_import_option' method. + + + + + Cached name for the 'add_import_option_advanced' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Scripts extending this class and implementing its method can be executed from the Script Editor's File > Run menu option (or by pressing Ctrl + Shift + X) while the editor is running. This is useful for adding custom in-editor functionality to Godot. For more complex additions, consider using s instead. + Note: Extending scripts need to have tool mode enabled. + Example: Running the following script prints "Hello from the Godot Editor!": + + using Godot; + + [Tool] + public partial class HelloEditor : EditorScript + { + public override void _Run() + { + GD.Print("Hello from the Godot Editor!"); + } + } + + Note: The script is run in the Editor context, which means the output is visible in the console window started with the Editor (stdout) instead of the usual Godot Output dock. + Note: EditorScript is , meaning it is destroyed when nothing references it. This can cause errors during asynchronous operations if there are no references to the script. + + + + + This method is executed by the Editor when File > Run is used. + + + + + Makes root of the currently opened scene. Only works if the scene is empty. If the is a scene instance, an inheriting scene will be created. + + + + + Returns the edited (current) scene's root . Equivalent of . + + + + + Returns the singleton instance. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_run' method. + + + + + Cached name for the 'add_root_node' method. + + + + + Cached name for the 'get_scene' method. + + + + + Cached name for the 'get_editor_interface' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Similar to this node is used in the editor's Inspector dock, but only to edit the script property of a . 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 to recreate the same behavior. + Note: You must set the for the custom context menu items to work. + + + + + The owner of the script property that holds the edited resource. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'script_owner' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_script_owner' method. + + + + + Cached name for the 'get_script_owner' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages the SceneTree selection in the editor. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Clear the selection. + + + + + Adds a node to the selection. + Note: The newly selected node will not be automatically edited in the inspector. If you want to edit a node, use . + + + + + Removes a node from the selection. + + + + + Returns the list of selected nodes. + + + + + Returns the list of selected nodes, optimized for transform operations (i.e. moving them, rotating, etc.). This list can be used to avoid situations where a node is selected and is also a child/grandchild. + + + + + Emitted when the selection changes. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'clear' method. + + + + + Cached name for the 'add_node' method. + + + + + Cached name for the 'remove_node' method. + + + + + Cached name for the 'get_selected_nodes' method. + + + + + Cached name for the 'get_transformable_selected_nodes' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'selection_changed' signal. + + + + + Object that holds the project-independent editor settings. These settings are generally visible in the Editor > Editor Settings menu. + Property names use slash delimiters to distinguish sections. Setting values can be of any type. It's recommended to use snake_case for editor settings to be consistent with the Godot editor itself. + Accessing the settings can be done using the following methods, such as: + + 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(); + + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Emitted after any editor setting has changed. It's used by various editor plugins to update their visuals on theme changes or logic on configuration changes. + + + + + Returns if the setting specified by exists, otherwise. + + + + + Sets the of the setting specified by . This is equivalent to using on the EditorSettings instance. + + + + + Returns the value of the setting specified by . This is equivalent to using on the EditorSettings instance. + + + + + Erases the setting whose name is specified by . + + + + + Sets the initial value of the setting specified by to . This is used to provide a value for the Revert button in the Editor Settings. If is , the setting is reset to as well. + + + + + Adds a custom property info to a property. The dictionary must contain: + - name: (the name of the property) + - type: (see ) + - optionally hint: (see ) and hint_string: + + var settings = GetEditorInterface().GetEditorSettings(); + settings.Set("category/property_name", 0); + + var propertyInfo = new Godot.Collections.Dictionary + { + {"name", "category/propertyName"}, + {"type", Variant.Type.Int}, + {"hint", PropertyHint.Enum}, + {"hint_string", "one,two,three"} + }; + + settings.AddPropertyInfo(propertyInfo); + + + + + + Sets project-specific metadata with the , and specified. This metadata is stored outside the project folder and therefore won't be checked into version control. See also . + + + + + Returns project-specific metadata for the and specified. If the metadata doesn't exist, will be returned instead. See also . + + + + + Sets the list of favorite files and directories for this project. + + + + + Sets the list of favorite files and directories for this project. + + + + + Returns the list of favorite files and directories for this project. + + + + + Sets the list of recently visited folders in the file dialog for this project. + + + + + Sets the list of recently visited folders in the file dialog for this project. + + + + + Returns the list of recently visited folders in the file dialog for this project. + + + + + Overrides the built-in editor action with the input actions defined in . + + + + + Checks if any settings with the prefix exist in the set of changed settings. See also . + + + + + Gets an array of the settings which have been changed since the last save. Note that internally changed_settings is cleared after a successful save, so generally the most appropriate place to use this method is when processing . + + + + + Marks the passed editor setting as being changed, see . Only settings which exist (see ) will be accepted. + + + + + Emitted after any editor setting has changed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'has_setting' method. + + + + + Cached name for the 'set_setting' method. + + + + + Cached name for the 'get_setting' method. + + + + + Cached name for the 'erase' method. + + + + + Cached name for the 'set_initial_value' method. + + + + + Cached name for the 'add_property_info' method. + + + + + Cached name for the 'set_project_metadata' method. + + + + + Cached name for the 'get_project_metadata' method. + + + + + Cached name for the 'set_favorites' method. + + + + + Cached name for the 'get_favorites' method. + + + + + Cached name for the 'set_recent_dirs' method. + + + + + Cached name for the 'get_recent_dirs' method. + + + + + Cached name for the 'set_builtin_action_override' method. + + + + + Cached name for the 'check_changed_settings_in_group' method. + + + + + Cached name for the 'get_changed_settings' method. + + + + + Cached name for the 'mark_setting_changed' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'settings_changed' signal. + + + + + This node is used in the editor's Inspector dock to allow editing of numeric values. Can be used with to recreate the same behavior. + If the value is 1, the will display up/down arrows, similar to . If the value is not 1, a slider will be displayed instead. + + + + + The text that displays to the left of the value. + + + + + The suffix to display after the value (in a faded color). This should generally be a plural word. You may have to use an abbreviation if the suffix is too long to be displayed. + + + + + If , the slider can't be interacted with. + + + + + If , the slider will not draw background. + + + + + If , the slider and up/down arrows are hidden. + + + + + Emitted when the spinner/slider is grabbed. + + + + + Emitted when the spinner/slider is ungrabbed. + + + + + Emitted when the updown button is pressed. + + + + + Emitted when the value form gains focus. + + + + + Emitted when the value form loses focus. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached name for the 'label' property. + + + + + Cached name for the 'suffix' property. + + + + + Cached name for the 'read_only' property. + + + + + Cached name for the 'flat' property. + + + + + Cached name for the 'hide_slider' property. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'set_label' method. + + + + + Cached name for the 'get_label' method. + + + + + Cached name for the 'set_suffix' method. + + + + + Cached name for the 'get_suffix' method. + + + + + Cached name for the 'set_read_only' method. + + + + + Cached name for the 'is_read_only' method. + + + + + Cached name for the 'set_flat' method. + + + + + Cached name for the 'is_flat' method. + + + + + Cached name for the 'set_hide_slider' method. + + + + + Cached name for the 'is_hiding_slider' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'grabbed' signal. + + + + + Cached name for the 'ungrabbed' signal. + + + + + Cached name for the 'updown_pressed' signal. + + + + + Cached name for the 'value_focus_entered' signal. + + + + + Cached name for the 'value_focus_exited' signal. + + + + + Base class that all s used by the extend from. + Add a syntax highlighter to an individual script by calling . To apply to all scripts on open, call . + + + + + Virtual method which can be overridden to return the syntax highlighter name. + + + + + Virtual method which can be overridden to return the supported language names. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_name' method. + + + + + Cached name for the '_get_supported_languages' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This object manages the functionality and display of toast notifications within the editor, ensuring timely and informative alerts are presented to users. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Toast will display with an INFO severity. + + + + + Toast will display with a WARNING severity and have a corresponding color. + + + + + Toast will display with an ERROR severity and have a corresponding color. + + + + + Pushes a toast notification to the editor for display. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'push_toast' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 in script. + Add the extracted strings to argument msgids or msgids_context_plural if context or plural is used. + When adding to msgids_context_plural, you must add the data using the format ["A", "B", "C"], where A represents the extracted string, B represents the context, and C represents the plural version of the extracted string. If you want to add only context but not plural, put "" 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. + + 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" }; + } + } + + To add a translatable string associated with context or plural, add it to msgids_context_plural: + + // 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", ""}); + + Note: If you override parsing logic for standard script types (GDScript, C#, etc.), it would be better to load the path argument using . This is because built-in scripts are loaded as type, not type. For example: + + 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" }; + } + + To use , register it using the method first. + + + + + If overridden, called after to get comments for the parsed entries. This method should fill the arrays with the same number of elements and in the same order as . + + + + + Gets the list of file extensions to associate with this parser, e.g. ["csv"]. + + + + + Override this method to define a custom parsing logic to extract the translatable strings. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_get_comments' method. + + + + + Cached name for the '_get_recognized_extensions' method. + + + + + Cached name for the '_parse_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and are attached (on demand) to the singleton instance of . 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 and override each of these virtual functions. + + + + + A new file has been added. + + + + + An earlier added file has been modified. + + + + + An earlier added file has been renamed. + + + + + An earlier added file has been deleted. + + + + + An earlier added file has been typechanged. + + + + + A file is left unmerged. + + + + + A commit is encountered from the commit area. + + + + + A file is encountered from the staged area. + + + + + A file is encountered from the unstaged area. + + + + + Checks out a in the VCS. + + + + + Commits the currently staged changes and applies the commit to the resulting commit. + + + + + Creates a new branch named in the VCS. + + + + + Creates a new remote destination with name and points it to . This can be an HTTPS remote or an SSH remote. + + + + + Discards the changes made in a file present at . + + + + + Fetches new changes from the , but doesn't write changes to the current working directory. Equivalent to git fetch. + + + + + Gets an instance of an of s containing available branch names in the VCS. + + + + + Gets the current branch name defined in the VCS. + + + + + Returns an array of items (see , , , and ), each containing information about a diff. If is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff. + + + + + Returns an of items (see ), each containing a line diff between a file at and the which is passed in. + + + + + Returns an of items (see ), each containing the status data of every modified file in the project folder. + + + + + Returns an of items (see ), each containing the data for a past commit. + + + + + Returns an of s, each containing the name of a remote configured in the VCS. + + + + + Returns the name of the underlying VCS provider. + + + + + Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at . + + + + + Pulls changes from the remote. This can give rise to merge conflicts. + + + + + Pushes changes to the . If is , a force push will override the change history already present on the remote. + + + + + Remove a branch from the local VCS. + + + + + Remove a remote from the local VCS. + + + + + Set user credentials in the underlying VCS. and are used only during HTTPS authentication unless not already mentioned in the remote URL. , , and are only used during SSH authentication. + + + + + Shuts down VCS plugin instance. Called when the user either closes the editor or shuts down the VCS plugin through the editor UI. + + + + + Stages the file present at to the staged area. + + + + + Unstages the file present at from the staged area to the unstaged area. + + + + + Helper function to create a for storing a line diff. is the line number in the new file (can be -1 if the line is deleted). is the line number in the old file (can be -1 if the line is added). is the diff text. is a single character string which stores the line origin. + + + + + Helper function to create a for storing diff hunk data. is the starting line number in old file. is the starting line number in new file. is the number of lines in the old file. is the number of lines in the new file. + + + + + Helper function to create a for storing old and new diff file paths. + + + + + Helper function to create a commit item. is the commit message of the commit. is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. is the UTC Unix timestamp of when the commit was created. is the timezone offset in minutes, recorded from the system timezone where the commit was created. + + + + + Helper function to create a used by editor to read the status of a file. + + + + + Helper function to add an array of into a . + + + + + Helper function to add an array of into a . + + + + + Pops up an error message in the editor which is shown as coming from the underlying VCS. Use this to show VCS specific error messages. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the '_checkout_branch' method. + + + + + Cached name for the '_commit' method. + + + + + Cached name for the '_create_branch' method. + + + + + Cached name for the '_create_remote' method. + + + + + Cached name for the '_discard_file' method. + + + + + Cached name for the '_fetch' method. + + + + + Cached name for the '_get_branch_list' method. + + + + + Cached name for the '_get_current_branch_name' method. + + + + + Cached name for the '_get_diff' method. + + + + + Cached name for the '_get_line_diff' method. + + + + + Cached name for the '_get_modified_files_data' method. + + + + + Cached name for the '_get_previous_commits' method. + + + + + Cached name for the '_get_remotes' method. + + + + + Cached name for the '_get_vcs_name' method. + + + + + Cached name for the '_initialize' method. + + + + + Cached name for the '_pull' method. + + + + + Cached name for the '_push' method. + + + + + Cached name for the '_remove_branch' method. + + + + + Cached name for the '_remove_remote' method. + + + + + Cached name for the '_set_credentials' method. + + + + + Cached name for the '_shut_down' method. + + + + + Cached name for the '_stage_file' method. + + + + + Cached name for the '_unstage_file' method. + + + + + Cached name for the 'create_diff_line' method. + + + + + Cached name for the 'create_diff_hunk' method. + + + + + Cached name for the 'create_diff_file' method. + + + + + Cached name for the 'create_commit' method. + + + + + Cached name for the 'create_status_file' method. + + + + + Cached name for the 'add_diff_hunks_into_diff_file' method. + + + + + Cached name for the 'add_line_diffs_into_diff_hunk' method. + + + + + Cached name for the 'popup_error' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This class is available only in s and can't be instantiated. You can access it using . + While doesn't expose any methods for file manipulation, it can listen for various file-related signals. + + + + + Sets the given as currently selected, ensuring that the selected file/directory is visible. + + + + + Registers a new . + + + + + Removes an . Fails if the plugin wasn't previously added. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a new scene is created that inherits the scene at file path. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given scenes are being instantiated in the editor. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when an external resource had its file removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given file was removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the given folder was removed. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a file is moved from oldFile path to newFile path. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when a folder is moved from oldFolder path to newFolder path. + + + + + Emitted when folders change color. + + + + + Emitted when the user switches file display mode or split mode. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'navigate_to_path' method. + + + + + Cached name for the 'add_resource_tooltip_plugin' method. + + + + + Cached name for the 'remove_resource_tooltip_plugin' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'inherit' signal. + + + + + Cached name for the 'instantiate' signal. + + + + + Cached name for the 'resource_removed' signal. + + + + + Cached name for the 'file_removed' signal. + + + + + Cached name for the 'folder_removed' signal. + + + + + Cached name for the 'files_moved' signal. + + + + + Cached name for the 'folder_moved' signal. + + + + + Cached name for the 'folder_color_changed' signal. + + + + + Cached name for the 'display_mode_changed' signal. + + + + + Note: This class can only be used for editor plugins because it relies on editor settings. + + var codePreview = new TextEdit(); + var highlighter = new GDScriptSyntaxHighlighter(); + codePreview.SyntaxHighlighter = highlighter; + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + GridMapEditorPlugin provides access to the editor functionality. + + + + + Returns the node currently edited by the grid map editor. + + + + + Selects the cells inside the given bounds from to . + + + + + Deselects any currently selected cells. + + + + + Returns the cell coordinate bounds of the current selection. Use to check if there is an active selection. + + + + + Returns if there are selected cells. + + + + + Returns an array of s with the selected cells' coordinates. + + + + + Selects the item with the given index in the grid map editor's palette. If a negative index is given, no item will be selected. If a value greater than the last index is given, the last item will be selected. + Note: The indices might not be in the same order as they appear in the editor's interface. + + + + + Returns the index of the selected item in the grid map editor's palette or -1 if no item is selected. + Note: The indices might not be in the same order as they appear in the editor's interface. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_current_grid_map' method. + + + + + Cached name for the 'set_selection' method. + + + + + Cached name for the 'clear_selection' method. + + + + + Cached name for the 'get_selection' method. + + + + + Cached name for the 'has_selection' method. + + + + + Cached name for the 'get_selected_cells' method. + + + + + Cached name for the 'set_selected_palette_item' method. + + + + + Cached name for the 'get_selected_palette_item' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The BMFont format is a format created by the BMFont program. Many BMFont-compatible programs also exist, like BMGlyph. + Compared to , supports bitmap fonts with varying glyph widths/heights. + See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + resources are typically used as click masks in and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + Example CSV file: + + 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.",「こんにちは」男は言いました + + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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 and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This importer imports resources, as opposed to . If you need to render the image in 2D or 3D, use instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This image-based workflow can be easier to use than , but it requires all glyphs to have the same width and height, glyph advances and drawing offsets can be customized. This makes most suited to fixed-width fonts. + See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This imports a 3-dimensional texture, which can then be used in custom shaders, as a density map or as a . See also and . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + MP3 is a lossy audio format, with worse audio quality compared to at a given bitrate. + In most cases, it's recommended to use Ogg Vorbis over MP3. However, if you're using an 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 . 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. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Unlike , will import a single resource by default instead of importing a . This makes it easier to use the resource in nodes that expect direct resources, such as , or . Note that it is still possible to save mesh resources from 3D scenes using the Advanced Import Settings dialog, regardless of the source format. + See also , which is used for more advanced 3D formats such as glTF. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Ogg Vorbis is a lossy audio format, with better audio quality compared to at a given bitrate. + In most cases, it's recommended to use Ogg Vorbis over MP3. However, if you're using an 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 . 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. + + + + + This method loads audio data from a PackedByteArray buffer into an AudioStreamOggVorbis object. + + + + + This method loads audio data from a PackedByteArray buffer into an AudioStreamOggVorbis object. + + + + + This method loads audio data from a file into an AudioStreamOggVorbis object. The file path is provided as a string. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'load_from_buffer' method. + + + + + Cached name for the 'load_from_file' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + See also , which is used for OBJ models that can be imported as an independent or a scene. + Additional options (such as extracting individual meshes or materials to files) are available in the Advanced Import Settings 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 Advanced. + Note: is not used for s, such as .tscn and .scn files. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This imports native GLSL shaders as resources, for use with low-level operations. This importer does not handle .gdshader files. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This importer imports resources. If you need to process the image in scripts in a more convenient way, use instead. See also . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + This imports a collection of textures from a PNG image into an or 2D . 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 and . + Note: does not handle importing , which is created using the editor instead. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + 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. + By default, Godot imports WAV files using the lossy Quite OK Audio compression. You may change this by setting the compress/mode property. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + The 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 methods. + + 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(); + } + + + + + + Prefills required fields to configure the ScriptCreateDialog for use. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user clicks the OK button. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'config' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'script_created' signal. + + + + + Godot editor's script editor. + Note: This class shouldn't be instantiated directly. Instead, access the singleton using . + + + + + Returns the object that the user is currently editing. + + + + + Returns an array with all objects which are currently open in editor. + + + + + Returns array of breakpoints. + + + + + Registers the to the editor, the will be available on all open scripts. + Note: Does not apply to scripts that are already opened. + + + + + Unregisters the from the editor. + Note: The will still be applied to scripts that are already opened. + + + + + Goes to the specified line in the current script. + + + + + Returns a that is currently active in editor. + + + + + Returns an array with all objects which are currently open in editor. + + + + + Opens the script create dialog. The script will extend . The file extension can be omitted from . It will be added based on the selected scripting language. + + + + + Opens help for the given topic. The is an encoded string that controls which class, method, constant, signal, annotation, property, or theme item should be focused. + The supported formats include class_name:class, class_method:class:method, class_constant:class:constant, class_signal:class:signal, class_annotation:class:@annotation, class_property:class:property, and class_theme_item:class:item, where class is the class name, method is the method name, constant is the constant name, signal is the signal name, annotation is the annotation name, property is the property name, and item is the theme item. + + # Shows help for the Node class. + class_name:Node + # Shows help for the global min function. + # Global objects are accessible in the `@GlobalScope` namespace, shown here. + class_method:@GlobalScope:min + # Shows help for get_viewport in the Node class. + class_method:Node:get_viewport + # Shows help for the Input constant MOUSE_BUTTON_MIDDLE. + class_constant:Input:MOUSE_BUTTON_MIDDLE + # Shows help for the BaseButton signal pressed. + class_signal:BaseButton:pressed + # Shows help for the CanvasItem property visible. + class_property:CanvasItem:visible + # Shows help for the GDScript annotation export. + # Annotations should be prefixed with the `@` symbol in the descriptor, as shown here. + class_annotation:@GDScript:@export + # Shows help for the GraphNode theme item named panel_selected. + class_theme_item:GraphNode:panel_selected + + + + + + Updates the documentation for the given if the script's documentation is currently open. + Note: This should be called whenever the script is changed to keep the open documentation state up to date. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when user changed active script. Argument is a freshly activated . + + + + + Represents the method that handles the event of a class. + + + + + Emitted when editor is about to close the active script. Argument is a that is going to be closed. + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_current_editor' method. + + + + + Cached name for the 'get_open_script_editors' method. + + + + + Cached name for the 'get_breakpoints' method. + + + + + Cached name for the 'register_syntax_highlighter' method. + + + + + Cached name for the 'unregister_syntax_highlighter' method. + + + + + Cached name for the 'goto_line' method. + + + + + Cached name for the 'get_current_script' method. + + + + + Cached name for the 'get_open_scripts' method. + + + + + Cached name for the 'open_script_create_dialog' method. + + + + + Cached name for the 'goto_help' method. + + + + + Cached name for the 'update_docs_from_script' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'editor_script_changed' signal. + + + + + Cached name for the 'script_close' signal. + + + + + Base editor for editing scripts in the . This does not include documentation items. + + + + + Returns the underlying used for editing scripts. For text scripts, this is a . + + + + + Adds a to the open script. + + + + + Emitted after script validation or when the edited resource has changed. + + + + + Emitted after script validation. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests contextual help. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests to view a specific line of a script, similar to . + + + + + Emitted when the user contextual goto and the item is in the same script. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user changes current script or moves caret by 10 or more columns within the same script. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests a specific documentation page. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user request to search text in the file system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user request to find and replace text in the file system. + + + + + Represents the method that handles the event of a class. + + + + + Emitted when the user requests to view a specific method of a script, similar to . + + + + + Invokes the method with the given name, using the given arguments. + This method is used by Godot to invoke methods from the engine side. + Do not call or override this method. + + Name of the method to invoke. + Arguments to use with the invoked method. + Value returned by the invoked method. + + + + Check if the type contains a method with the given name. + This method is used by Godot to check if a method exists before invoking it. + Do not call or override this method. + + Name of the method to check for. + + + + Check if the type contains a signal with the given name. + This method is used by Godot to check if a signal exists before raising it. + Do not call or override this method. + + Name of the signal to check for. + + + + Cached StringNames for the properties and fields contained in this class, for fast lookup. + + + + + Cached StringNames for the methods contained in this class, for fast lookup. + + + + + Cached name for the 'get_base_editor' method. + + + + + Cached name for the 'add_syntax_highlighter' method. + + + + + Cached StringNames for the signals contained in this class, for fast lookup. + + + + + Cached name for the 'name_changed' signal. + + + + + Cached name for the 'edited_script_changed' signal. + + + + + Cached name for the 'request_help' signal. + + + + + Cached name for the 'request_open_script_at_line' signal. + + + + + Cached name for the 'request_save_history' signal. + + + + + Cached name for the 'request_save_previous_state' signal. + + + + + Cached name for the 'go_to_help' signal. + + + + + Cached name for the 'search_in_files_requested' signal. + + + + + Cached name for the 'replace_in_files_requested' signal. + + + + + Cached name for the 'go_to_method' signal. + + + + diff --git a/bin/GodotSharp/Tools/GodotTools.BuildLogger.dll b/bin/GodotSharp/Tools/GodotTools.BuildLogger.dll new file mode 100644 index 0000000..d4401b2 Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.BuildLogger.dll differ diff --git a/bin/GodotSharp/Tools/GodotTools.BuildLogger.pdb b/bin/GodotSharp/Tools/GodotTools.BuildLogger.pdb new file mode 100644 index 0000000..2ecc75e Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.BuildLogger.pdb differ diff --git a/bin/GodotSharp/Tools/GodotTools.Core.dll b/bin/GodotSharp/Tools/GodotTools.Core.dll new file mode 100644 index 0000000..95bf7d1 Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.Core.dll differ diff --git a/bin/GodotSharp/Tools/GodotTools.Core.pdb b/bin/GodotSharp/Tools/GodotTools.Core.pdb new file mode 100644 index 0000000..35ffa16 Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.Core.pdb differ diff --git a/bin/GodotSharp/Tools/GodotTools.IdeMessaging.dll b/bin/GodotSharp/Tools/GodotTools.IdeMessaging.dll new file mode 100644 index 0000000..77f10be Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.IdeMessaging.dll differ diff --git a/bin/GodotSharp/Tools/GodotTools.IdeMessaging.pdb b/bin/GodotSharp/Tools/GodotTools.IdeMessaging.pdb new file mode 100644 index 0000000..5b78560 Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.IdeMessaging.pdb differ diff --git a/bin/GodotSharp/Tools/GodotTools.ProjectEditor.dll b/bin/GodotSharp/Tools/GodotTools.ProjectEditor.dll new file mode 100644 index 0000000..7f01c11 Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.ProjectEditor.dll differ diff --git a/bin/GodotSharp/Tools/GodotTools.ProjectEditor.pdb b/bin/GodotSharp/Tools/GodotTools.ProjectEditor.pdb new file mode 100644 index 0000000..1d345c9 Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.ProjectEditor.pdb differ diff --git a/bin/GodotSharp/Tools/GodotTools.Shared.dll b/bin/GodotSharp/Tools/GodotTools.Shared.dll new file mode 100644 index 0000000..862af1e Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.Shared.dll differ diff --git a/bin/GodotSharp/Tools/GodotTools.Shared.pdb b/bin/GodotSharp/Tools/GodotTools.Shared.pdb new file mode 100644 index 0000000..532018b Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.Shared.pdb differ diff --git a/bin/GodotSharp/Tools/GodotTools.deps.json b/bin/GodotSharp/Tools/GodotTools.deps.json new file mode 100644 index 0000000..e14bf6b --- /dev/null +++ b/bin/GodotSharp/Tools/GodotTools.deps.json @@ -0,0 +1,1300 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "GodotTools/1.0.0": { + "dependencies": { + "GodotTools.BuildLogger": "1.0.0", + "GodotTools.Core": "1.0.0", + "GodotTools.IdeMessaging": "1.1.2", + "GodotTools.ProjectEditor": "1.0.0", + "JetBrains.Annotations": "2019.1.3", + "JetBrains.Rider.PathLocator": "1.0.9", + "Microsoft.NETFramework.ReferenceAssemblies": "1.0.0", + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "GodotTools.dll": {} + } + }, + "JetBrains.Annotations/2019.1.3": {}, + "JetBrains.Rider.PathLocator/1.0.9": { + "dependencies": { + "Microsoft.Win32.Registry": "5.0.0" + }, + "runtime": { + "lib/netstandard2.0/JetBrains.Rider.PathLocator.dll": { + "assemblyVersion": "1.0.9.0", + "fileVersion": "1.0.9.0" + } + } + }, + "Microsoft.Build/15.1.548": { + "dependencies": { + "Microsoft.Build.Framework": "15.1.548", + "Microsoft.Win32.Primitives": "4.0.1", + "System.AppContext": "4.1.0", + "System.Collections": "4.0.11", + "System.Collections.Concurrent": "4.0.12", + "System.Collections.Immutable": "1.2.0", + "System.Collections.NonGeneric": "4.0.1", + "System.Console": "4.0.0", + "System.Diagnostics.Contracts": "4.0.1", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.FileVersionInfo": "4.0.0", + "System.Diagnostics.Process": "4.1.0", + "System.Diagnostics.TraceSource": "4.0.0", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.IO.Compression": "4.1.0", + "System.IO.FileSystem": "4.0.1", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.IO.Pipes": "4.0.0", + "System.Linq": "4.1.0", + "System.Linq.Parallel": "4.0.1", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Metadata": "1.3.0", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Runtime.InteropServices": "4.1.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", + "System.Runtime.Loader": "4.0.0", + "System.Text.Encoding": "4.0.11", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Dataflow": "4.6.0", + "System.Threading.Thread": "4.0.0", + "System.Threading.ThreadPool": "4.0.10", + "System.Xml.ReaderWriter": "4.0.11", + "System.Xml.XPath.XmlDocument": "4.0.1", + "System.Xml.XmlDocument": "4.0.1" + } + }, + "Microsoft.Build.Framework/15.1.548": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Runtime": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Thread": "4.0.0" + } + }, + "Microsoft.Build.Locator/1.2.6": { + "runtime": { + "lib/netcoreapp2.0/Microsoft.Build.Locator.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.2.6.49918" + } + } + }, + "Microsoft.NETCore.Platforms/5.0.0": {}, + "Microsoft.NETCore.Targets/1.0.1": {}, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net461": "1.0.0" + } + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461/1.0.0": {}, + "Microsoft.Win32.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "Microsoft.Win32.Registry/5.0.0": { + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Newtonsoft.Json/13.0.1": { + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.1.25517" + } + } + }, + "NuGet.Frameworks/6.12.1": { + "runtime": { + "lib/netstandard2.0/NuGet.Frameworks.dll": { + "assemblyVersion": "6.12.1.1", + "fileVersion": "6.12.1.1" + } + } + }, + "runtime.native.System/4.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "runtime.native.System.IO.Compression/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.AppContext/4.1.0": { + "dependencies": { + "System.Runtime": "4.1.0" + } + }, + "System.Collections/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Collections.Concurrent/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tracing": "4.1.0", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Collections.Immutable/1.2.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Collections.NonGeneric/4.0.1": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Console/4.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Diagnostics.Contracts/4.0.1": { + "dependencies": { + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.Debug/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Diagnostics.FileVersionInfo/4.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.IO.FileSystem": "4.0.1", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Reflection.Metadata": "1.3.0", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0" + } + }, + "System.Diagnostics.Process/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.Win32.Primitives": "4.0.1", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.IO.FileSystem": "4.0.1", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Thread": "4.0.0", + "System.Threading.ThreadPool": "4.0.10", + "runtime.native.System": "4.0.0" + } + }, + "System.Diagnostics.TraceSource/4.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "runtime.native.System": "4.0.0" + } + }, + "System.Diagnostics.Tracing/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Dynamic.Runtime/4.0.11": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.Linq": "4.1.0", + "System.Linq.Expressions": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Globalization/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.IO/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.IO.Compression/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.IO": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11", + "runtime.native.System": "4.0.0", + "runtime.native.System.IO.Compression": "4.1.0" + } + }, + "System.IO.FileSystem/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Text.Encoding": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.IO.FileSystem.Primitives/4.0.1": { + "dependencies": { + "System.Runtime": "4.1.0" + } + }, + "System.IO.Pipes/4.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Diagnostics.Debug": "4.0.11", + "System.IO": "4.1.0", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Net.Primitives": "4.0.11", + "System.Net.Sockets": "4.1.0", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.Handles": "4.0.1", + "System.Runtime.InteropServices": "4.1.0", + "System.Security.Principal": "4.0.1", + "System.Text.Encoding": "4.0.11", + "System.Threading": "4.0.11", + "System.Threading.Overlapped": "4.0.1", + "System.Threading.Tasks": "4.0.11", + "runtime.native.System": "4.0.0" + } + }, + "System.Linq/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0" + } + }, + "System.Linq.Expressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.ObjectModel": "4.0.12", + "System.Reflection": "4.1.0", + "System.Reflection.Emit": "4.0.1", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Emit.Lightweight": "4.0.1", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Reflection.TypeExtensions": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Linq.Parallel/4.0.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Collections.Concurrent": "4.0.12", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tracing": "4.1.0", + "System.Linq": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Net.Primitives/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1" + } + }, + "System.Net.Sockets/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Net.Primitives": "4.0.11", + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.ObjectModel/4.0.12": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Reflection/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.IO": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit/4.0.1": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Reflection.Emit.ILGeneration": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Extensions/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.Metadata/1.3.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Collections.Immutable": "1.2.0", + "System.Diagnostics.Debug": "4.0.11", + "System.IO": "4.1.0", + "System.Linq": "4.1.0", + "System.Reflection": "4.1.0", + "System.Reflection.Extensions": "4.0.1", + "System.Reflection.Primitives": "4.0.1", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Threading": "4.0.11" + } + }, + "System.Reflection.Primitives/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Reflection.TypeExtensions/4.1.0": { + "dependencies": { + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Resources.ResourceManager/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Globalization": "4.0.11", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1" + } + }, + "System.Runtime.Extensions/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.Handles/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Runtime.InteropServices/4.1.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Reflection": "4.1.0", + "System.Reflection.Primitives": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1" + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Reflection": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Threading": "4.0.11", + "runtime.native.System": "4.0.0" + } + }, + "System.Runtime.Loader/4.0.0": { + "dependencies": { + "System.IO": "4.1.0", + "System.Reflection": "4.1.0", + "System.Runtime": "4.1.0" + } + }, + "System.Security.AccessControl/5.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal/4.0.1": { + "dependencies": { + "System.Runtime": "4.1.0" + } + }, + "System.Security.Principal.Windows/5.0.0": {}, + "System.Text.Encoding/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Text.Encoding.Extensions/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0", + "System.Text.Encoding": "4.0.11" + } + }, + "System.Text.RegularExpressions/4.1.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11" + } + }, + "System.Threading/4.0.11": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Overlapped/4.0.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1" + } + }, + "System.Threading.Tasks/4.0.11": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "1.0.1", + "System.Runtime": "4.1.0" + } + }, + "System.Threading.Tasks.Dataflow/4.6.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Collections.Concurrent": "4.0.12", + "System.Diagnostics.Debug": "4.0.11", + "System.Diagnostics.Tracing": "4.1.0", + "System.Dynamic.Runtime": "4.0.11", + "System.Linq": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Tasks.Extensions/4.0.0": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Runtime": "4.1.0", + "System.Threading.Tasks": "4.0.11" + } + }, + "System.Threading.Thread/4.0.0": { + "dependencies": { + "System.Runtime": "4.1.0" + } + }, + "System.Threading.ThreadPool/4.0.10": { + "dependencies": { + "System.Runtime": "4.1.0", + "System.Runtime.Handles": "4.0.1" + } + }, + "System.Xml.ReaderWriter/4.0.11": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.IO.FileSystem": "4.0.1", + "System.IO.FileSystem.Primitives": "4.0.1", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Runtime.InteropServices": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Text.Encoding.Extensions": "4.0.11", + "System.Text.RegularExpressions": "4.1.0", + "System.Threading.Tasks": "4.0.11", + "System.Threading.Tasks.Extensions": "4.0.0" + } + }, + "System.Xml.XmlDocument/4.0.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Text.Encoding": "4.0.11", + "System.Threading": "4.0.11", + "System.Xml.ReaderWriter": "4.0.11" + } + }, + "System.Xml.XPath/4.0.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Diagnostics.Debug": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Xml.ReaderWriter": "4.0.11" + } + }, + "System.Xml.XPath.XmlDocument/4.0.1": { + "dependencies": { + "System.Collections": "4.0.11", + "System.Globalization": "4.0.11", + "System.IO": "4.1.0", + "System.Resources.ResourceManager": "4.0.1", + "System.Runtime": "4.1.0", + "System.Runtime.Extensions": "4.1.0", + "System.Threading": "4.0.11", + "System.Xml.ReaderWriter": "4.0.11", + "System.Xml.XPath": "4.0.1", + "System.Xml.XmlDocument": "4.0.1" + } + }, + "GodotTools.BuildLogger/1.0.0": { + "dependencies": { + "Microsoft.Build.Framework": "15.1.548" + }, + "runtime": { + "GodotTools.BuildLogger.dll": {} + } + }, + "GodotTools.Core/1.0.0": { + "runtime": { + "GodotTools.Core.dll": {} + } + }, + "GodotTools.IdeMessaging/1.1.2": { + "dependencies": { + "Newtonsoft.Json": "13.0.1" + }, + "runtime": { + "GodotTools.IdeMessaging.dll": {} + } + }, + "GodotTools.ProjectEditor/1.0.0": { + "dependencies": { + "GodotTools.Core": "1.0.0", + "GodotTools.Shared": "1.0.0", + "Microsoft.Build": "15.1.548", + "Microsoft.Build.Locator": "1.2.6", + "NuGet.Frameworks": "6.12.1" + }, + "runtime": { + "GodotTools.ProjectEditor.dll": {} + } + }, + "GodotTools.Shared/1.0.0": { + "runtime": { + "GodotTools.Shared.dll": {} + } + } + } + }, + "libraries": { + "GodotTools/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "JetBrains.Annotations/2019.1.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-E0x48BwZJKoNMNCekWGKsV4saQS89lf58ydT2szseV44CMYIbaHXjc7+305WLw6up3ibZN9yH6QdGSZo5tQhLg==", + "path": "jetbrains.annotations/2019.1.3", + "hashPath": "jetbrains.annotations.2019.1.3.nupkg.sha512" + }, + "JetBrains.Rider.PathLocator/1.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9RTVEbOagEIItebWWm8Ypo7RbtBCjCZS8nUbjgdnA3pip343+XOts17KsaYuk1DPVfn4+oTXRK8iYe6ObS0ZUg==", + "path": "jetbrains.rider.pathlocator/1.0.9", + "hashPath": "jetbrains.rider.pathlocator.1.0.9.nupkg.sha512" + }, + "Microsoft.Build/15.1.548": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zEUfO7xITUxDeFE3a20D25RCKX7IFU3SUigv9qj50Adn1ZTw5QMz59LM84tyC+MNgxDl2djxlhMkNdKz/ytMBg==", + "path": "microsoft.build/15.1.548", + "hashPath": "microsoft.build.15.1.548.nupkg.sha512" + }, + "Microsoft.Build.Framework/15.1.548": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wO17o9zmhAq1YYXdlwXtSsX/LzHgF1mWmKZ/X2CQE8n1WWQnzcm0gqyAa4qpp89emRZ4N0shHwq+43/9IafloA==", + "path": "microsoft.build.framework/15.1.548", + "hashPath": "microsoft.build.framework.15.1.548.nupkg.sha512" + }, + "Microsoft.Build.Locator/1.2.6": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L1TurtjOIb6o6Hy0jh927/pQ2V6040axJN/CgyGG4jcdAeAvrH7urqoOCDETfb8ROhMamgrlabnJtbrMiKXddQ==", + "path": "microsoft.build.locator/1.2.6", + "hashPath": "microsoft.build.locator.1.2.6.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "path": "microsoft.netcore.platforms/5.0.0", + "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw==", + "path": "microsoft.netcore.targets/1.0.1", + "hashPath": "microsoft.netcore.targets.1.0.1.nupkg.sha512" + }, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7D2TMufjGiowmt0E941kVoTIS+GTNzaPopuzM1/1LSaJAdJdBrVP0SkZW7AgDd0a2U1DjsIeaKG1wxGVBNLDMw==", + "path": "microsoft.netframework.referenceassemblies/1.0.0", + "hashPath": "microsoft.netframework.referenceassemblies.1.0.0.nupkg.sha512" + }, + "Microsoft.NETFramework.ReferenceAssemblies.net461/1.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t4HKFwTQk/TkCCe1Sr2veze2QU6/RkRHkSQrZMHo2oFAoPANBg1l93O2Gh+ogqKRLFCRBbInm9hvEeSKVsuepw==", + "path": "microsoft.netframework.referenceassemblies.net461/1.0.0", + "hashPath": "microsoft.netframework.referenceassemblies.net461.1.0.0.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==", + "path": "microsoft.win32.primitives/4.0.1", + "hashPath": "microsoft.win32.primitives.4.0.1.nupkg.sha512" + }, + "Microsoft.Win32.Registry/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "path": "microsoft.win32.registry/5.0.0", + "hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512" + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "path": "newtonsoft.json/13.0.1", + "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" + }, + "NuGet.Frameworks/6.12.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kPaRD5RJC0ByUg+yGX6bDz5XHMI7OYmQwP8kbtef+vZ+csj/VDb5Bwas4ChxwhoAbI8lEvwP5/3aViQPpgNBow==", + "path": "nuget.frameworks/6.12.1", + "hashPath": "nuget.frameworks.6.12.1.nupkg.sha512" + }, + "runtime.native.System/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QfS/nQI7k/BLgmLrw7qm7YBoULEvgWnPI+cYsbfCVFTW8Aj+i8JhccxcFMu1RWms0YZzF+UHguNBK4Qn89e2Sg==", + "path": "runtime.native.system/4.0.0", + "hashPath": "runtime.native.system.4.0.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ob7nvnJBox1aaB222zSVZSkf4WrebPG4qFscfK7vmD7P7NxoSxACQLtO7ytWpqXDn2wcd/+45+EAZ7xjaPip8A==", + "path": "runtime.native.system.io.compression/4.1.0", + "hashPath": "runtime.native.system.io.compression.4.1.0.nupkg.sha512" + }, + "System.AppContext/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==", + "path": "system.appcontext/4.1.0", + "hashPath": "system.appcontext.4.1.0.nupkg.sha512" + }, + "System.Collections/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==", + "path": "system.collections/4.0.11", + "hashPath": "system.collections.4.0.11.nupkg.sha512" + }, + "System.Collections.Concurrent/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==", + "path": "system.collections.concurrent/4.0.12", + "hashPath": "system.collections.concurrent.4.0.12.nupkg.sha512" + }, + "System.Collections.Immutable/1.2.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Cma8cBW6di16ZLibL8LYQ+cLjGzoKxpOTu/faZfDcx94ZjAGq6Nv5RO7+T1YZXqEXTZP9rt1wLVEONVpURtUqw==", + "path": "system.collections.immutable/1.2.0", + "hashPath": "system.collections.immutable.1.2.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", + "path": "system.collections.nongeneric/4.0.1", + "hashPath": "system.collections.nongeneric.4.0.1.nupkg.sha512" + }, + "System.Console/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qSKUSOIiYA/a0g5XXdxFcUFmv1hNICBD7QZ0QhGYVipPIhvpiydY8VZqr1thmCXvmn8aipMg64zuanB4eotK9A==", + "path": "system.console/4.0.0", + "hashPath": "system.console.4.0.0.nupkg.sha512" + }, + "System.Diagnostics.Contracts/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HvQQjy712vnlpPxaloZYkuE78Gn353L0SJLJVeLcNASeg9c4qla2a1Xq8I7B3jZoDzKPtHTkyVO7AZ5tpeQGuA==", + "path": "system.diagnostics.contracts/4.0.1", + "hashPath": "system.diagnostics.contracts.4.0.1.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==", + "path": "system.diagnostics.debug/4.0.11", + "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512" + }, + "System.Diagnostics.FileVersionInfo/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qjF74OTAU+mRhLaL4YSfiWy3vj6T3AOz8AW37l5zCwfbBfj0k7E94XnEsRaf2TnhE/7QaV6Hvqakoy2LoV8MVg==", + "path": "system.diagnostics.fileversioninfo/4.0.0", + "hashPath": "system.diagnostics.fileversioninfo.4.0.0.nupkg.sha512" + }, + "System.Diagnostics.Process/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", + "path": "system.diagnostics.process/4.1.0", + "hashPath": "system.diagnostics.process.4.1.0.nupkg.sha512" + }, + "System.Diagnostics.TraceSource/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", + "path": "system.diagnostics.tracesource/4.0.0", + "hashPath": "system.diagnostics.tracesource.4.0.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==", + "path": "system.diagnostics.tracing/4.1.0", + "hashPath": "system.diagnostics.tracing.4.1.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", + "path": "system.dynamic.runtime/4.0.11", + "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512" + }, + "System.Globalization/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==", + "path": "system.globalization/4.0.11", + "hashPath": "system.globalization.4.0.11.nupkg.sha512" + }, + "System.IO/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==", + "path": "system.io/4.1.0", + "hashPath": "system.io.4.1.0.nupkg.sha512" + }, + "System.IO.Compression/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TjnBS6eztThSzeSib+WyVbLzEdLKUcEHN69VtS3u8aAsSc18FU6xCZlNWWsEd8SKcXAE+y1sOu7VbU8sUeM0sg==", + "path": "system.io.compression/4.1.0", + "hashPath": "system.io.compression.4.1.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IBErlVq5jOggAD69bg1t0pJcHaDbJbWNUZTPI96fkYWzwYbN6D9wRHMULLDd9dHsl7C2YsxXL31LMfPI1SWt8w==", + "path": "system.io.filesystem/4.0.1", + "hashPath": "system.io.filesystem.4.0.1.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kWkKD203JJKxJeE74p8aF8y4Qc9r9WQx4C0cHzHPrY3fv/L/IhWnyCHaFJ3H1QPOH6A93whlQ2vG5nHlBDvzWQ==", + "path": "system.io.filesystem.primitives/4.0.1", + "hashPath": "system.io.filesystem.primitives.4.0.1.nupkg.sha512" + }, + "System.IO.Pipes/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-L9QVhk8hIEix5KNA0kW58Ha+Y1dNGqqqIhAaJkhcGCWeQzUmN0njzI7SG/XAazpMecboOdFFlH3pH/qbwXLJAg==", + "path": "system.io.pipes/4.0.0", + "hashPath": "system.io.pipes.4.0.0.nupkg.sha512" + }, + "System.Linq/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==", + "path": "system.linq/4.1.0", + "hashPath": "system.linq.4.1.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", + "path": "system.linq.expressions/4.1.0", + "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512" + }, + "System.Linq.Parallel/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-J7XCa7n2cFn32uLbtceXfBFhgCk5M++50lylHKNbqTiJkw5y4Tglpi6amuJNPCvj9bLzNSI7rs1fi4joLMNRgg==", + "path": "system.linq.parallel/4.0.1", + "hashPath": "system.linq.parallel.4.0.1.nupkg.sha512" + }, + "System.Net.Primitives/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hVvfl4405DRjA2408luZekbPhplJK03j2Y2lSfMlny7GHXlkByw1iLnc9mgKW0GdQn73vvMcWrWewAhylXA4Nw==", + "path": "system.net.primitives/4.0.11", + "hashPath": "system.net.primitives.4.0.11.nupkg.sha512" + }, + "System.Net.Sockets/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xAz0N3dAV/aR/9g8r0Y5oEqU1JRsz29F5EGb/WVHmX3jVSLqi2/92M5hTad2aNWovruXrJpJtgZ9fccPMG9uSw==", + "path": "system.net.sockets/4.1.0", + "hashPath": "system.net.sockets.4.1.0.nupkg.sha512" + }, + "System.ObjectModel/4.0.12": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", + "path": "system.objectmodel/4.0.12", + "hashPath": "system.objectmodel.4.0.12.nupkg.sha512" + }, + "System.Reflection/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==", + "path": "system.reflection/4.1.0", + "hashPath": "system.reflection.4.1.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", + "path": "system.reflection.emit/4.0.1", + "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==", + "path": "system.reflection.emit.ilgeneration/4.0.1", + "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==", + "path": "system.reflection.emit.lightweight/4.0.1", + "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512" + }, + "System.Reflection.Extensions/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", + "path": "system.reflection.extensions/4.0.1", + "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512" + }, + "System.Reflection.Metadata/1.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==", + "path": "system.reflection.metadata/1.3.0", + "hashPath": "system.reflection.metadata.1.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==", + "path": "system.reflection.primitives/4.0.1", + "hashPath": "system.reflection.primitives.4.0.1.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", + "path": "system.reflection.typeextensions/4.1.0", + "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==", + "path": "system.resources.resourcemanager/4.0.1", + "hashPath": "system.resources.resourcemanager.4.0.1.nupkg.sha512" + }, + "System.Runtime/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==", + "path": "system.runtime/4.1.0", + "hashPath": "system.runtime.4.1.0.nupkg.sha512" + }, + "System.Runtime.Extensions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==", + "path": "system.runtime.extensions/4.1.0", + "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nCJvEKguXEvk2ymk1gqj625vVnlK3/xdGzx0vOKicQkoquaTBJTP13AIYkocSUwHCLNBwUbXTqTWGDxBTWpt7g==", + "path": "system.runtime.handles/4.0.1", + "hashPath": "system.runtime.handles.4.0.1.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==", + "path": "system.runtime.interopservices/4.1.0", + "hashPath": "system.runtime.interopservices.4.1.0.nupkg.sha512" + }, + "System.Runtime.InteropServices.RuntimeInformation/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==", + "path": "system.runtime.interopservices.runtimeinformation/4.0.0", + "hashPath": "system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512" + }, + "System.Runtime.Loader/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", + "path": "system.runtime.loader/4.0.0", + "hashPath": "system.runtime.loader.4.0.0.nupkg.sha512" + }, + "System.Security.AccessControl/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "path": "system.security.accesscontrol/5.0.0", + "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" + }, + "System.Security.Principal/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-On+SKhXY5rzxh/S8wlH1Rm0ogBlu7zyHNxeNBiXauNrhHRXAe9EuX8Yl5IOzLPGU5Z4kLWHMvORDOCG8iu9hww==", + "path": "system.security.principal/4.0.1", + "hashPath": "system.security.principal.4.0.1.nupkg.sha512" + }, + "System.Security.Principal.Windows/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", + "path": "system.security.principal.windows/5.0.0", + "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" + }, + "System.Text.Encoding/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==", + "path": "system.text.encoding/4.0.11", + "hashPath": "system.text.encoding.4.0.11.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==", + "path": "system.text.encoding.extensions/4.0.11", + "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==", + "path": "system.text.regularexpressions/4.1.0", + "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512" + }, + "System.Threading/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==", + "path": "system.threading/4.0.11", + "hashPath": "system.threading.4.0.11.nupkg.sha512" + }, + "System.Threading.Overlapped/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f7aLuLkBoCQM2kng7zqLFBXz9Gk48gDK8lk1ih9rH/1arJJzZK9gJwNvPDhL6Ps/l6rwOr8jw+4FCHL0KKWiEg==", + "path": "system.threading.overlapped/4.0.1", + "hashPath": "system.threading.overlapped.4.0.1.nupkg.sha512" + }, + "System.Threading.Tasks/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==", + "path": "system.threading.tasks/4.0.11", + "hashPath": "system.threading.tasks.4.0.11.nupkg.sha512" + }, + "System.Threading.Tasks.Dataflow/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2hRjGu2r2jxRZ55wmcHO/WbdX+YAOz9x6FE8xqkHZgPaoFMKQZRe9dk8xTZIas8fRjxRmzawnTEWIrhlM+Un7w==", + "path": "system.threading.tasks.dataflow/4.6.0", + "hashPath": "system.threading.tasks.dataflow.4.6.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==", + "path": "system.threading.tasks.extensions/4.0.0", + "hashPath": "system.threading.tasks.extensions.4.0.0.nupkg.sha512" + }, + "System.Threading.Thread/4.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", + "path": "system.threading.thread/4.0.0", + "hashPath": "system.threading.thread.4.0.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.0.10": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", + "path": "system.threading.threadpool/4.0.10", + "hashPath": "system.threading.threadpool.4.0.10.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.0.11": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==", + "path": "system.xml.readerwriter/4.0.11", + "hashPath": "system.xml.readerwriter.4.0.11.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", + "path": "system.xml.xmldocument/4.0.1", + "hashPath": "system.xml.xmldocument.4.0.1.nupkg.sha512" + }, + "System.Xml.XPath/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", + "path": "system.xml.xpath/4.0.1", + "hashPath": "system.xml.xpath.4.0.1.nupkg.sha512" + }, + "System.Xml.XPath.XmlDocument/4.0.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", + "path": "system.xml.xpath.xmldocument/4.0.1", + "hashPath": "system.xml.xpath.xmldocument.4.0.1.nupkg.sha512" + }, + "GodotTools.BuildLogger/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "GodotTools.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "GodotTools.IdeMessaging/1.1.2": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "GodotTools.ProjectEditor/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "GodotTools.Shared/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/bin/GodotSharp/Tools/GodotTools.dll b/bin/GodotSharp/Tools/GodotTools.dll new file mode 100644 index 0000000..b76acaa Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.dll differ diff --git a/bin/GodotSharp/Tools/GodotTools.pdb b/bin/GodotSharp/Tools/GodotTools.pdb new file mode 100644 index 0000000..9367e5e Binary files /dev/null and b/bin/GodotSharp/Tools/GodotTools.pdb differ diff --git a/bin/GodotSharp/Tools/GodotTools.runtimeconfig.json b/bin/GodotSharp/Tools/GodotTools.runtimeconfig.json new file mode 100644 index 0000000..4466502 --- /dev/null +++ b/bin/GodotSharp/Tools/GodotTools.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "rollForward": "LatestMinor", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/bin/GodotSharp/Tools/JetBrains.Rider.PathLocator.dll b/bin/GodotSharp/Tools/JetBrains.Rider.PathLocator.dll new file mode 100755 index 0000000..3f34407 Binary files /dev/null and b/bin/GodotSharp/Tools/JetBrains.Rider.PathLocator.dll differ diff --git a/bin/GodotSharp/Tools/Microsoft.Build.Locator.dll b/bin/GodotSharp/Tools/Microsoft.Build.Locator.dll new file mode 100755 index 0000000..ccb4032 Binary files /dev/null and b/bin/GodotSharp/Tools/Microsoft.Build.Locator.dll differ diff --git a/bin/GodotSharp/Tools/Newtonsoft.Json.dll b/bin/GodotSharp/Tools/Newtonsoft.Json.dll new file mode 100755 index 0000000..1ffeabe Binary files /dev/null and b/bin/GodotSharp/Tools/Newtonsoft.Json.dll differ diff --git a/bin/GodotSharp/Tools/NuGet.Frameworks.dll b/bin/GodotSharp/Tools/NuGet.Frameworks.dll new file mode 100755 index 0000000..a53425e Binary files /dev/null and b/bin/GodotSharp/Tools/NuGet.Frameworks.dll differ diff --git a/bin/GodotSharp/Tools/nupkgs/Godot.NET.Sdk.4.4.0-dev.7.nupkg b/bin/GodotSharp/Tools/nupkgs/Godot.NET.Sdk.4.4.0-dev.7.nupkg new file mode 100644 index 0000000..abbedd5 Binary files /dev/null and b/bin/GodotSharp/Tools/nupkgs/Godot.NET.Sdk.4.4.0-dev.7.nupkg differ diff --git a/bin/GodotSharp/Tools/nupkgs/Godot.SourceGenerators.4.4.0-dev.7.nupkg b/bin/GodotSharp/Tools/nupkgs/Godot.SourceGenerators.4.4.0-dev.7.nupkg new file mode 100644 index 0000000..2c7f3d5 Binary files /dev/null and b/bin/GodotSharp/Tools/nupkgs/Godot.SourceGenerators.4.4.0-dev.7.nupkg differ diff --git a/bin/GodotSharp/Tools/nupkgs/GodotSharp.4.4.0-dev.7.nupkg b/bin/GodotSharp/Tools/nupkgs/GodotSharp.4.4.0-dev.7.nupkg new file mode 100644 index 0000000..b38649c Binary files /dev/null and b/bin/GodotSharp/Tools/nupkgs/GodotSharp.4.4.0-dev.7.nupkg differ diff --git a/bin/GodotSharp/Tools/nupkgs/GodotSharp.4.4.0-dev.7.snupkg b/bin/GodotSharp/Tools/nupkgs/GodotSharp.4.4.0-dev.7.snupkg new file mode 100644 index 0000000..420e5b8 Binary files /dev/null and b/bin/GodotSharp/Tools/nupkgs/GodotSharp.4.4.0-dev.7.snupkg differ diff --git a/bin/GodotSharp/Tools/nupkgs/GodotSharpEditor.4.4.0-dev.7.nupkg b/bin/GodotSharp/Tools/nupkgs/GodotSharpEditor.4.4.0-dev.7.nupkg new file mode 100644 index 0000000..70c7e67 Binary files /dev/null and b/bin/GodotSharp/Tools/nupkgs/GodotSharpEditor.4.4.0-dev.7.nupkg differ diff --git a/bin/GodotSharp/Tools/nupkgs/GodotSharpEditor.4.4.0-dev.7.snupkg b/bin/GodotSharp/Tools/nupkgs/GodotSharpEditor.4.4.0-dev.7.snupkg new file mode 100644 index 0000000..e90422d Binary files /dev/null and b/bin/GodotSharp/Tools/nupkgs/GodotSharpEditor.4.4.0-dev.7.snupkg differ diff --git a/bin/Godot_v4.4-dev7_mono_linux.x86_64 b/bin/Godot_v4.4-dev7_mono_linux.x86_64 new file mode 100755 index 0000000..7936c5c Binary files /dev/null and b/bin/Godot_v4.4-dev7_mono_linux.x86_64 differ diff --git a/bin/bin/ghostty b/bin/bin/ghostty new file mode 100755 index 0000000..3c29490 Binary files /dev/null and b/bin/bin/ghostty differ diff --git a/bin/die b/bin/die new file mode 100755 index 0000000..2df989a --- /dev/null +++ b/bin/die @@ -0,0 +1 @@ +doas poweroff diff --git a/bin/fix-hyprland b/bin/fix-hyprland new file mode 100755 index 0000000..f30ba7e --- /dev/null +++ b/bin/fix-hyprland @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +sleep 1 +killall -9 -e xdg-desktop-portal-hyprland +killall -9 xdg-desktop-portal +/usr/lib/xdg-desktop-portal-hyprland & +sleep 1 +/usr/lib/xdg-desktop-portal & diff --git a/bin/msmtp-queue b/bin/msmtp-queue new file mode 100755 index 0000000..eb76cc9 --- /dev/null +++ b/bin/msmtp-queue @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +##-------------------------------------------------------------- +## +## msmtp-queue : wrapper script for msmtpq +## to expose the management functions +## for the msmtp queue +## Copyright (C) 2011 Chris Gianniotis +## +## This program is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or, at +## your option, any later version. +## +##-------------------------------------------------------------- + +## msmtp-queue +## is only a wrapper +## it invokes the queue management functions of msmtpq +## by calling it as msmtpq --q-mgmt +## +## all configuration and documentation is in the msmtpq script + +## note that for 'special circumstances' +## e.g. embedded systems, etc. +## where the msmtpq script itself is not on the path +## change the below line to be +## exec /path/to/msmtpq --q-mgmt + +exec msmtpq --q-mgmt "$1" diff --git a/bin/msmtpq b/bin/msmtpq new file mode 100755 index 0000000..05de909 --- /dev/null +++ b/bin/msmtpq @@ -0,0 +1,486 @@ +#!/usr/bin/env bash + +##-------------------------------------------------------------- +## +## msmtpq : queue funtions to both use & manage the msmtp queue, +## as it was defined by Martin Lambers +## Copyright (C) 2008, 2009, 2010, 2011 Chris Gianniotis +## +## This program is free software: you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or, at +## your option, any later version. +## +##-------------------------------------------------------------- + +## msmtpq is meant to be used by an email client - in 'sendmail' mode +## for this purpose, it is invoked directly as 'msmtpq' +## it is also meant to be used to maintain the msmtp queue +## evoked by the wrapper script 'msmtp-queue' +## (which calls this script as msmtpq --q-mgmt) + +## there is a queue log file, distinct from the msmtp log, +## for all events & operations on the msmtp queue +## that is defined below + +## (mutt users, using msmtpq in 'sendmail' mode, +## should make at least the following two settings in their .muttrc +## set sendmail = /path/to/msmtpq +## set sendmail_wait = -1 +## +## please see the msmtp man page and docs for further mutt settings +## and optimisations +## ) + +## msmtpq now uses the following environment variables : +## EMAIL_CONN_NOTEST if set will suppress any testing for a connection +## EMAIL_CONN_TEST if unset or =p will use a ping test (debian.org) for a connection +## if =P will use a fast ping test (8.8.8.8) for a connection +## if =n will use netcat (nc) to test for a connection +## if =s will use bash sockets to test for a connection +## EMAIL_QUEUE_QUIET if set will cause suppression of messages and 'chatter' + +## two essential patches by Philipp Hartwig +## 19 Oct 2011 & 27 Oct 2011 + +##-------------------------------------------------------------- +## the msmtp queue contains unique filenames of the following form : +## two files for each mail in the queue +## +## creates new unique filenames of the form : +## MLF: ccyy-mm-dd-hh.mm.ss[-x].mail -- mail file +## MSF: ccyy-mm-dd-hh.mm.ss[-x].msmtp -- msmtp command line file +## where x is a consecutive number only appended for uniqueness +## if more than one mail per second is sent +##-------------------------------------------------------------- + + +dsp() { local L ; for L ; do [ -n "$L" ] && echo " $L" || echo ; done ; } +err() { dsp '' "$@" '' ; exit 1 ; } + + +## ====================================================================================== +## !!! please define or confirm the following three vars !!! +## !!! before using the msmtpq or msmtp-queue scripts !!! +## ====================================================================================== +## +## only if necessary (in unusual circumstances - e.g. embedded systems), +## enter the location of the msmtp executable (no quotes !!) +## e.g. ( MSMTP=/path/to/msmtp ) +MSMTP=msmtp +#[ -x "$MSMTP" ] || \ +# log -e 1 "msmtpq : can't find the msmtp executable [ $MSMTP ]" # if not found - complain ; quit +## +## set the queue var to the location of the msmtp queue directory +## if the queue dir doesn't yet exist, better to create it (0700) +## before using this routine +## e.g. ( mkdir msmtp.queue ) +## ( chmod 0700 msmtp.queue ) +## +## the queue dir - modify this to reflect where you'd like it to be (no quotes !!) +Q=~/.msmtp.queue +[ -d "$Q" ] || \ + err '' "msmtpq : can't find msmtp queue directory [ $Q ]" '' # if not present - complain ; quit +## +## set the queue log file var to the location of the msmtp queue log file +## where it is or where you'd like it to be +## ( note that the LOG setting could be the same as the ) +## ( 'logfile' setting in .msmtprc - but there may be ) +## ( some advantage in keeping the two logs separate ) +## if you don't want the log at all unset (comment out) this var +## LOG=~/log/msmtp.queue.log --> #LOG=~/log/msmtp.queue.log +## (doing so would be inadvisable under most conditions, however) +## +## the queue log file - modify (or comment out) to taste (but no quotes !!) +LOG=~/log/msmtp.queue.log +## ====================================================================================== + +umask 077 # set secure permissions on created directories and files + +declare -i CNT # a count of mail(s) currently in the queue +declare -a Q_LST # queue list array ; used selecting a mail (to send or remove) + +## do ; test this ! +#for sig in INT TERM EXIT; do +# trap "rm -f \"\$TMPFILE\"; [[ $sig == EXIT ]] || kill -$sig $$" $sig +#done +trap on_exit INT TERM EXIT # run 'on_exit' on exit +on_exit() { + [ -n "$LKD" ] && lock_queue -u 2>/dev/null # unlock the queue on exit if the lock was set here +} + +# +## ----------------------------------- common functions +# + +## make an entry to the queue log file, possibly an error +## (log queue changes only ; not interactive chatter) +## usage : log [ -e errcode ] msg [ msg ... ] +## opts : -e an error ; log msg & terminate w/prejudice +## display msg to user, as well +log() { + local ARG RC PFX="$('date' +'%Y %d %b %H:%M:%S')" + # time stamp prefix - "2008 13 Mar 03:59:45 " + if [ "$1" = '-e' ] ; then # there's an error exit code + RC="$2" # take it + shift 2 # shift opt & its arg off + fi + + [ -z "$EMAIL_QUEUE_QUIET" ] && dsp "$@" # display msg to user, as well as logging it + + if [ -n "$LOG" ] ; then # log is defined and in use + for ARG ; do # each msg line out + [ -n "$ARG" ] && \ + echo "$PFX : $ARG" >> "$LOG" # line has content ; send it to log + done + fi + + if [ -n "$RC" ] ; then # an error ; leave w/error return + [ -n "$LKD" ] && lock_queue -u # unlock here (if locked) + [ -n "$LOG" ] && \ + echo " exit code = $RC" >> "$LOG" # logging ok ; send exit code to log + exit $RC # exit w/return code + fi +} + +## write/remove queue lockfile for a queue op +lock_queue() { # <-- '-u' to remove lockfile + local LOK="${Q}/.lock" # lock file name + local -i MAX=240 SEC=0 # max seconds to gain a lock ; seconds waiting + + if [ -z "$1" ] ; then # lock queue + ## Philipp Hartwig patch #2 + 'mkdir' "$LOK" 2>/dev/null && LKD='t' + while [ -z "$LKD" ] && (( SEC < MAX )) ; do # lock file present + sleep 1 # wait a second + (( ++SEC )) # accumulate seconds + 'mkdir' "$LOK" 2>/dev/null && LKD='t' # make lockdir ; lock queue ; set flag + done # try again while locked for MAX secs + [ -z "$LKD" ] && \ + err '' "cannot use queue $Q : waited $MAX seconds for"\ + " lockdir [ $LOK ] to vanish ; giving up"\ + 'if you are certain that no other instance of this script'\ + " is running, then 'rmdir' the lock dir manually" '' # lock file still there, give up + + elif [ "$1" = '-u' ] ; then # unlock queue + 'rmdir' "$LOK" # remove the lock + unset LKD # unset flag + fi +} + +## test whether system is connected +## returns t/f (0/1) +connect_test() { + if [ -z "$EMAIL_CONN_TEST" ] || \ + [ "$EMAIL_CONN_TEST" = 'p' ] ; then # use ping test (default) + # verify net connection - ping ip address of debian.org + # would ping -qnc2 -w4 be better ? + # would ping -qnc1 -w10 or -w20 be better ? + ping -qnc1 -w4 debian.org >/dev/null 2>&1 || return 1 + elif [ "$EMAIL_CONN_TEST" = 'P' ] ; then # use quicker ping test + # I personally think that including a DNS lookup + # is a better connection test but some + # have found the above test too slow + ping -qnc1 -w4 8.8.8.8 >/dev/null 2>&1 || return 1 + elif [ "$EMAIL_CONN_TEST" = 'n' ] ; then # use netcat (nc) test + # must, of course, have netcat (nc) installed + which nc >/dev/null 2>&1 || \ + log -e 1 "msmtpq : can't find netcat executable [ nc ]" # if not found - complain ; quit + 'nc' -vz www.debian.org 80 || return 1 + elif [ "$EMAIL_CONN_TEST" = 's' ] ; then # use sh sockets test + # note that this does not work on debian systems + # where bash opened sockets are suppressed for security reasons + # this should be ok for single user systems (including embedded systems) + # test whether this is supported on your system before using + exec 3<>/dev/udp/debian.org/80 || return 1 # open socket on site ; use dns + exec 3<&- ; exec 3>&- # close socket + fi + return 0 +} + +# +## ----------------------------------- functions for queue management +## ----------------------------------- queue maintenance mode - (msmtp-queue) +# + +## show queue maintenance functions +usage() { # <-- error msg + dsp ''\ + 'usage : msmtp-queue functions' ''\ + ' msmtp-queue < op >'\ + ' ops : -r run (flush) mail queue - all mail in queue'\ + ' -R send selected individual mail(s) in queue'\ + ' -d display (list) queue contents (<-- default)'\ + ' -p purge individual mail(s) from queue'\ + ' -a purge all mail in queue'\ + ' -h this helpful blurt' ''\ + ' ( one op only ; any others ignored )' '' + [ -z "$1" ] && exit 0 || { dsp "$@" '' ; exit 1 ; } +} + +## get user [y/n] acknowledgement +ok() { + local R YN='Y/n' # default to yes + + [ "$1" = '-n' ] && \ + { YN='y/N' ; shift ; } # default to no ; change prompt ; shift off spec + + dsp "$@" + while true ; do + echo -n " ok [${YN}] ..: " + read R + case $R in + y|Y) return 0 ;; + n|N) return 1 ;; + '') [ "$YN" = 'Y/n' ] && return 0 || return 1 ;; + *) echo 'yYnN only please' ;; + esac + done +} + +## send a queued mail out via msmtp +send_queued_mail() { # <-- mail id + local FQP="${Q}/${1}" # fully qualified path name + local -i RC=0 # for msmtp exit code + + if [ -f "${FQP}.msmtp" ] ; then # corresponding .msmtp file found + [ -z "$EMAIL_CONN_NOTEST" ] && { # connection test + connect_test || \ + log "mail [ $2 ] [ $1 ] from queue ; couldn't be sent - host not connected" + } + + if $MSMTP $(< "${FQP}.msmtp") < "${FQP}.mail" ; then # this mail goes out the door + log "mail [ $2 ] [ $1 ] from queue ; send was successful ; purged from queue" # good news to user + 'rm' -f ${FQP}.* # nuke both queue mail files + ALT='t' # set queue changed flag + else # send was unsuccessful + RC=$? # take msmtp exit code + log "mail [ $2 ] [ $1 ] from queue ; send failed ; msmtp rc = $RC" # bad news ... + fi + return $RC # func returns exit code + else # corresponding MSF file not found + log "preparing to send .mail file [ $1 ] [ ${FQP}.mail ] but"\ + " corresponding .msmtp file [ ${FQP}.msmtp ] was not found in queue"\ + ' skipping this mail ; this is worth looking into' # give user the bad news + fi # (but allow continuation) +} + +## run (flush) queue +run_queue() { # <- 'sm' mode # run queue + local M LST="$('ls' $Q/*.mail 2>/dev/null)" # list of mails in queue + local -i NDX=0 + + if [ -n "$LST" ] ; then # something in queue + for M in $LST ; do # process all mails + ((NDX++)) + send_queued_mail "$(basename $M .mail)" "$NDX" # send mail - pass {id} only + done + else # queue is empty + [ -z "$1" ] && \ + dsp '' 'mail queue is empty (nothing to send)' '' + fi # inform user (if not running in sendmail mode) +} + +## display queue contents +display_queue() { # <-- { 'purge' | 'send' } (op label) ; { 'rec' } (record array of mail ids) + local M ID LST="$('ls' ${Q}/*.mail 2>/dev/null)" # list of mail ids in queue + + CNT=0 + if [ -n "$LST" ] ; then # list has contents (any mails in queue) + for M in $LST ; do # cycle through each + ID="$(basename $M .mail)" # take mail id from filename + ((CNT++)) + dsp '' "mail num=[ $CNT ] id=[ $ID ]" # show mail id ## patch in + 'egrep' -s --colour -h '(^From:|^To:|^Subject:)' "$M" # show mail info + [ -n "$2" ] && Q_LST[$CNT]="$ID" # bang mail id into array (note 1-based array indexing) + done + echo + else # no mails ; no contents + [ -z "$1" ] && \ + dsp '' 'no mail in queue' '' || \ + dsp '' "mail queue is empty (nothing to $1)" '' # inform user + exit 0 + fi +} + +## delete all mail in queue, after confirmation +purge_queue() { + display_queue 'purge' # show queue contents + if ok -n 'remove (purge) all mail from the queue' ; then + lock_queue # lock here + 'rm' -f "$Q"/*.* + log 'msmtp queue purged (all mail)' + lock_queue -u # unlock here + else + dsp '' 'nothing done ; queue is untouched' '' + fi +} + +## select a single mail from queue ; delete it or send it +## select by mail index (position in queue) or mail id +select_mail() { # <-- < 'purge' | 'send' > + local OK ID # mail id + local -i I NDX # mail index (position in queue) + + while true ; do # purge an individual mail from queue + display_queue "$1" 'rec' # show queue contents ; make mail ids array + + ## allow selection also by mail index + if [ $CNT -eq 1 ] ; then # only one mail in queue ; take its id + NDX=1 + ID="${Q_LST[1]}" + else # more than one mail ; select its id + while true ; do # get mail id + OK='t' # optimistic to a fault + dsp "enter mail number or id to $1" # <-- num or file name (only, no suff) + echo -n ' ( alone to exit ) ..: ' + read ID + [ -n "$ID" ] || return # entry made - or say good bye + + if [ "${ID:4:1}" != '-' ] ; then # mail id *not* entered ; test index num + for (( I=0 ; I<${#ID} ; I++ )) ; do # test index number + if [[ "${ID:${I}:1}" < '0' || \ + "${ID:${I}:1}" > '9' ]] ; then + dsp '' "[ $ID ] is neither a valid mail id"\ + 'nor a valid mail number' '' + unset OK + fi + done + [ -z "$OK" ] && continue # format not ok (not all nums) + + NDX=$ID + if [ $NDX -lt 1 ] || [ $NDX -gt $CNT ] ; then # test number range (1 - $CNT) + dsp '' "[ $NDX ] is out of range as a mail number"\ + "validity is from 1 to $CNT" + continue # try again + fi + + ID="${Q_LST[$NDX]}" # format & range were ok ; use it + break # valid mail selection + else # mail id entered + for (( NDX=1 ; NDX<=${#Q_LST[*]} ; NDX++ )) ; do # find entered id in queue list + [ "$ID" = "${Q_LST[$NDX]}" ] && break + done + [ $NDX -le ${#Q_LST[*]} ] && \ + break || \ + dsp '' "mail [ $ID ] not found ; invalid id" # mail selection valid (found) or + fi # fell through (not found) complain + done # and ask again + fi + + if ok '' "$1 :"\ + " mail num=[ $NDX ]"\ + " id=[ $ID ]" '' ; then # confirm mail op + if [ "$1" = 'purge' ] ; then # purging + lock_queue # lock here + 'rm' -f "$Q"/"$ID".* # msmtp - nukes single mail (both files) in queue + log "mail [ $ID ] purged from queue" # log op + lock_queue -u # unlock here + ALT='t' # mark that a queue alteration has taken place + else # sending + lock_queue # lock here + send_queued_mail "$ID" "$NDX" # send out the mail + lock_queue -u # unlock here + fi + else # user opts out + dsp '' 'nothing done to this queued email' # soothe user + [ $CNT -eq 1 ] && break # single mail ; user opted out + fi + dsp '' "--------------------------------------------------" + done + + if [ -n "$ALT" ] ; then # queue was changed + dsp '' 'done' '' + else # queue is untouched + dsp '' 'nothing done ; queue is untouched' '' + fi +} + +# +## ----------------------------------- functions for directly sending mail +## ----------------------------------- 'sendmail' mode - (msmtpq) +# + +## ('sendmail' mode only) +## make base filename id for queue +make_id() { + local -i INC # increment counter for (possible) base fqp name collision + + ID="$(date +%Y-%m-%d-%H.%M.%S)" # make filename id for queue (global + FQP="${Q}/$ID" # make fully qualified pathname vars) + ## Philipp Hartwig patch #1 + if [ -f "${FQP}.mail" -o -f "${FQP}.msmtp" ] ; then # ensure fqp name is unique + INC=1 # initial increment + while [ -f "${FQP}-${INC}.mail" -o -f "${FQP}-${INC}.msmtp" ] ; do # fqp name w/incr exists + (( ++INC )) # bump increment + done + ID="${ID}-${INC}" # unique ; set id + FQP="${FQP}-${INC}" # unique ; set fqp name + fi +} + +## ('sendmail' mode only) +## enqueue a mail +enqueue_mail() { # <-- all mail args ; mail text via TMP + if echo "$@" > "${FQP}.msmtp" ; then # write msmtp command line to queue .msmtp file + log "enqueued mail as : [ $ID ] ( $* ) : successful" # (queue .mail file is already there) + else # write failed ; bomb + log -e "$?" "queueing - writing msmtp cmd line { $* }"\ + " to [ ${ID}.msmtp ] : failed" + fi +} + +## ('sendmail' mode only) +## send a mail (if possible, otherwise enqueue it) +## if send is successful, msmtp will also log it (if enabled in ~/.msmtprc) +send_mail() { # <-- all mail args ; mail text via TMP + [ -z "$EMAIL_CONN_NOTEST" ] && { # connection test + connect_test || { + log "mail for [ $* ] : couldn't be sent - host not connected" + enqueue_mail "$@" # enqueue the mail + } + } + + if $MSMTP "$@" < "${FQP}.mail" > /dev/null ; then # send mail using queue .mail fil + log "mail for [ $* ] : send was successful" # log it + 'rm' -f ${FQP}.* # remove all queue mail files .mail & .msmtp file + run_queue 'sm' # run/flush any other mails in queue + else # send failed - the mail stays in the queue + log "mail for [ $* ] : send was unsuccessful ; msmtp exit code was $?"\ + "enqueued mail as : [ $ID ] ( $* )" # (queue .mail file is already there) + fi +} + +# +## -- entry point +# + +if [ ! "$1" = '--q-mgmt' ] ; then # msmtpq - sendmail mode + lock_queue # lock here + make_id # make base queue filename id for this mail + # write mail body text to queue .mail file + cat > "${FQP}.mail" || \ + log -e "$?" "creating mail body file [ ${FQP}.mail ] : failed" # test for error + # write msmtp command line to queue .msmtp file + echo "$@" > "${FQP}.msmtp" || \ + log -e "$?" "creating msmtp cmd line file { $* }"\ + " to [ ${ID}.msmtp ] : failed" # test for error + send_mail "$@" # send the mail if possible, queue it if not + lock_queue -u # unlock here +else # msmtp-queue - queue management mode + shift # trim off first (--q-mgmt) arg + OP=${1:1} # trim off first char of OP arg + case "$OP" in # sort ops ; run according to spec + r) lock_queue + run_queue + lock_queue -u ;; # run (flush) the queue + R) select_mail send ;; # send individual mail(s) in queue + d|'') display_queue ;; # display (list) all mail in queue (default) + p) select_mail purge ;; # purge individual mail(s) from queue + a) purge_queue ;; # purge all mail in queue + h) usage ;; # show help + *) usage "[ -$OP ] is an unknown msmtp-queue option" ;; + esac +fi + +exit 0 diff --git a/bin/secret.sh b/bin/secret.sh new file mode 100755 index 0000000..7f2125b --- /dev/null +++ b/bin/secret.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +gopass show -o "$1" "$2" +# wait until the password is available +while [ $? != 0 ]; do + gopass show -o "$1" "$2" +done + diff --git a/bin/share/applications/com.mitchellh.ghostty.desktop b/bin/share/applications/com.mitchellh.ghostty.desktop new file mode 100644 index 0000000..1c9017f --- /dev/null +++ b/bin/share/applications/com.mitchellh.ghostty.desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Name=Ghostty +Type=Application +Comment=A terminal emulator +Exec=ghostty +Icon=com.mitchellh.ghostty +Categories=System;TerminalEmulator; +Keywords=terminal;tty;pty; +StartupNotify=true +Terminal=false +Actions=new-window; +X-GNOME-UsesNotifications=true + +[Desktop Action new-window] +Name=New Window +Exec=ghostty diff --git a/bin/share/bash-completion/completions/ghostty.bash b/bin/share/bash-completion/completions/ghostty.bash new file mode 100644 index 0000000..1f63824 --- /dev/null +++ b/bin/share/bash-completion/completions/ghostty.bash @@ -0,0 +1,440 @@ +# -o nospace requires we add back a space when a completion is finished +# and not part of a --key= completion +addSpaces() { + for idx in "${!COMPREPLY[@]}"; do + [ -n "${COMPREPLY[idx]}" ] && COMPREPLY[idx]="${COMPREPLY[idx]} "; + done +} + +_fonts() { + local IFS=$'\n' + mapfile -t COMPREPLY < <( compgen -P '"' -S '"' -W "$($ghostty +list-fonts | grep '^[A-Z]' )" -- "$cur") +} + +_themes() { + local IFS=$'\n' + mapfile -t COMPREPLY < <( compgen -P '"' -S '"' -W "$($ghostty +list-themes | sed -E 's/^(.*) \(.*$/\1/')" -- "$cur") +} + +_files() { + mapfile -t COMPREPLY < <( compgen -o filenames -f -- "$cur" ) + for i in "${!COMPREPLY[@]}"; do + if [[ -d "${COMPREPLY[i]}" ]]; then + COMPREPLY[i]="${COMPREPLY[i]}/"; + fi + if [[ -f "${COMPREPLY[i]}" ]]; then + COMPREPLY[i]="${COMPREPLY[i]} "; + fi + done +} + +_dirs() { + mapfile -t COMPREPLY < <( compgen -o dirnames -d -- "$cur" ) + for i in "${!COMPREPLY[@]}"; do + if [[ -d "${COMPREPLY[i]}" ]]; then + COMPREPLY[i]="${COMPREPLY[i]}/"; + fi + done + if [[ "${#COMPREPLY[@]}" == 0 && -d "$cur" ]]; then + COMPREPLY=( "$cur " ) + fi +} + +config="--help" +config+=" --version" +config+=" --font-family=" +config+=" --font-family-bold=" +config+=" --font-family-italic=" +config+=" --font-family-bold-italic=" +config+=" --font-style=" +config+=" --font-style-bold=" +config+=" --font-style-italic=" +config+=" --font-style-bold-italic=" +config+=" --font-synthetic-style=" +config+=" --font-feature=" +config+=" --font-size=" +config+=" --font-variation=" +config+=" --font-variation-bold=" +config+=" --font-variation-italic=" +config+=" --font-variation-bold-italic=" +config+=" --font-codepoint-map=" +config+=" '--font-thicken '" +config+=" --adjust-cell-width=" +config+=" --adjust-cell-height=" +config+=" --adjust-font-baseline=" +config+=" --adjust-underline-position=" +config+=" --adjust-underline-thickness=" +config+=" --adjust-strikethrough-position=" +config+=" --adjust-strikethrough-thickness=" +config+=" --adjust-overline-position=" +config+=" --adjust-overline-thickness=" +config+=" --adjust-cursor-thickness=" +config+=" --adjust-box-thickness=" +config+=" --grapheme-width-method=" +config+=" --freetype-load-flags=" +config+=" --theme=" +config+=" --background=" +config+=" --foreground=" +config+=" --selection-foreground=" +config+=" --selection-background=" +config+=" '--selection-invert-fg-bg '" +config+=" --minimum-contrast=" +config+=" --palette=" +config+=" --cursor-color=" +config+=" '--cursor-invert-fg-bg '" +config+=" --cursor-opacity=" +config+=" --cursor-style=" +config+=" '--cursor-style-blink '" +config+=" --cursor-text=" +config+=" '--cursor-click-to-move '" +config+=" '--mouse-hide-while-typing '" +config+=" --mouse-shift-capture=" +config+=" --mouse-scroll-multiplier=" +config+=" --background-opacity=" +config+=" --background-blur-radius=" +config+=" --unfocused-split-opacity=" +config+=" --unfocused-split-fill=" +config+=" --command=" +config+=" --initial-command=" +config+=" '--wait-after-command '" +config+=" --abnormal-command-exit-runtime=" +config+=" --scrollback-limit=" +config+=" --link=" +config+=" '--link-url '" +config+=" '--fullscreen '" +config+=" --title=" +config+=" --class=" +config+=" --x11-instance-name=" +config+=" --working-directory=" +config+=" --keybind=" +config+=" --window-padding-x=" +config+=" --window-padding-y=" +config+=" '--window-padding-balance '" +config+=" --window-padding-color=" +config+=" '--window-vsync '" +config+=" '--window-inherit-working-directory '" +config+=" '--window-inherit-font-size '" +config+=" '--window-decoration '" +config+=" --window-title-font-family=" +config+=" --window-theme=" +config+=" --window-colorspace=" +config+=" --window-height=" +config+=" --window-width=" +config+=" --window-save-state=" +config+=" '--window-step-resize '" +config+=" --window-new-tab-position=" +config+=" --resize-overlay=" +config+=" --resize-overlay-position=" +config+=" --resize-overlay-duration=" +config+=" '--focus-follows-mouse '" +config+=" --clipboard-read=" +config+=" --clipboard-write=" +config+=" '--clipboard-trim-trailing-spaces '" +config+=" '--clipboard-paste-protection '" +config+=" '--clipboard-paste-bracketed-safe '" +config+=" --image-storage-limit=" +config+=" --copy-on-select=" +config+=" --click-repeat-interval=" +config+=" --config-file=" +config+=" '--config-default-files '" +config+=" '--confirm-close-surface '" +config+=" '--quit-after-last-window-closed '" +config+=" --quit-after-last-window-closed-delay=" +config+=" '--initial-window '" +config+=" --quick-terminal-position=" +config+=" --quick-terminal-screen=" +config+=" --quick-terminal-animation-duration=" +config+=" --shell-integration=" +config+=" --shell-integration-features=" +config+=" --osc-color-report-format=" +config+=" '--vt-kam-allowed '" +config+=" --custom-shader=" +config+=" --custom-shader-animation=" +config+=" --macos-non-native-fullscreen=" +config+=" --macos-titlebar-style=" +config+=" --macos-titlebar-proxy-icon=" +config+=" --macos-option-as-alt=" +config+=" '--macos-window-shadow '" +config+=" '--macos-auto-secure-input '" +config+=" '--macos-secure-input-indication '" +config+=" --linux-cgroup=" +config+=" --linux-cgroup-memory-limit=" +config+=" --linux-cgroup-processes-limit=" +config+=" '--linux-cgroup-hard-fail '" +config+=" --gtk-single-instance=" +config+=" '--gtk-titlebar '" +config+=" --gtk-tabs-location=" +config+=" --adw-toolbar-style=" +config+=" '--gtk-wide-tabs '" +config+=" '--gtk-adwaita '" +config+=" '--desktop-notifications '" +config+=" '--bold-is-bright '" +config+=" --term=" +config+=" --enquiry-response=" +config+=" --auto-update=" +config+=" --auto-update-channel=" + +_handleConfig() { + case "$prev" in + --font-family) _fonts ;; + --font-family-bold) _fonts ;; + --font-family-italic) _fonts ;; + --font-family-bold-italic) _fonts ;; + --font-style) return ;; + --font-style-bold) return ;; + --font-style-italic) return ;; + --font-style-bold-italic) return ;; + --font-synthetic-style) mapfile -t COMPREPLY < <( compgen -W "bold no-bold italic no-italic bold-italic no-bold-italic" -- "$cur" ); addSpaces ;; + --font-feature) return ;; + --font-size) return ;; + --font-variation) return ;; + --font-variation-bold) return ;; + --font-variation-italic) return ;; + --font-variation-bold-italic) return ;; + --font-codepoint-map) return ;; + --font-thicken) return ;; + --adjust-cell-width) return ;; + --adjust-cell-height) return ;; + --adjust-font-baseline) return ;; + --adjust-underline-position) return ;; + --adjust-underline-thickness) return ;; + --adjust-strikethrough-position) return ;; + --adjust-strikethrough-thickness) return ;; + --adjust-overline-position) return ;; + --adjust-overline-thickness) return ;; + --adjust-cursor-thickness) return ;; + --adjust-box-thickness) return ;; + --grapheme-width-method) mapfile -t COMPREPLY < <( compgen -W "legacy unicode" -- "$cur" ); addSpaces ;; + --freetype-load-flags) mapfile -t COMPREPLY < <( compgen -W "hinting no-hinting force-autohint no-force-autohint monochrome no-monochrome autohint no-autohint" -- "$cur" ); addSpaces ;; + --theme) _themes ;; + --background) return ;; + --foreground) return ;; + --selection-foreground) return ;; + --selection-background) return ;; + --selection-invert-fg-bg) return ;; + --minimum-contrast) return ;; + --palette) return ;; + --cursor-color) return ;; + --cursor-invert-fg-bg) return ;; + --cursor-opacity) return ;; + --cursor-style) mapfile -t COMPREPLY < <( compgen -W "bar block underline block_hollow" -- "$cur" ); addSpaces ;; + --cursor-style-blink) return ;; + --cursor-text) return ;; + --cursor-click-to-move) return ;; + --mouse-hide-while-typing) return ;; + --mouse-shift-capture) mapfile -t COMPREPLY < <( compgen -W "false true always never" -- "$cur" ); addSpaces ;; + --mouse-scroll-multiplier) return ;; + --background-opacity) return ;; + --background-blur-radius) return ;; + --unfocused-split-opacity) return ;; + --unfocused-split-fill) return ;; + --command) return ;; + --initial-command) return ;; + --wait-after-command) return ;; + --abnormal-command-exit-runtime) return ;; + --scrollback-limit) return ;; + --link) return ;; + --link-url) return ;; + --fullscreen) return ;; + --title) return ;; + --class) return ;; + --x11-instance-name) return ;; + --working-directory) _dirs ;; + --keybind) return ;; + --window-padding-x) return ;; + --window-padding-y) return ;; + --window-padding-balance) return ;; + --window-padding-color) mapfile -t COMPREPLY < <( compgen -W "background extend extend-always" -- "$cur" ); addSpaces ;; + --window-vsync) return ;; + --window-inherit-working-directory) return ;; + --window-inherit-font-size) return ;; + --window-decoration) return ;; + --window-title-font-family) return ;; + --window-theme) mapfile -t COMPREPLY < <( compgen -W "auto system light dark ghostty" -- "$cur" ); addSpaces ;; + --window-colorspace) mapfile -t COMPREPLY < <( compgen -W "srgb display-p3" -- "$cur" ); addSpaces ;; + --window-height) return ;; + --window-width) return ;; + --window-save-state) mapfile -t COMPREPLY < <( compgen -W "default never always" -- "$cur" ); addSpaces ;; + --window-step-resize) return ;; + --window-new-tab-position) mapfile -t COMPREPLY < <( compgen -W "current end" -- "$cur" ); addSpaces ;; + --resize-overlay) mapfile -t COMPREPLY < <( compgen -W "always never after-first" -- "$cur" ); addSpaces ;; + --resize-overlay-position) mapfile -t COMPREPLY < <( compgen -W "center top-left top-center top-right bottom-left bottom-center bottom-right" -- "$cur" ); addSpaces ;; + --resize-overlay-duration) return ;; + --focus-follows-mouse) return ;; + --clipboard-read) mapfile -t COMPREPLY < <( compgen -W "allow deny ask" -- "$cur" ); addSpaces ;; + --clipboard-write) mapfile -t COMPREPLY < <( compgen -W "allow deny ask" -- "$cur" ); addSpaces ;; + --clipboard-trim-trailing-spaces) return ;; + --clipboard-paste-protection) return ;; + --clipboard-paste-bracketed-safe) return ;; + --image-storage-limit) return ;; + --copy-on-select) mapfile -t COMPREPLY < <( compgen -W "false true clipboard" -- "$cur" ); addSpaces ;; + --click-repeat-interval) return ;; + --config-file) _files ;; + --config-default-files) return ;; + --confirm-close-surface) return ;; + --quit-after-last-window-closed) return ;; + --quit-after-last-window-closed-delay) return ;; + --initial-window) return ;; + --quick-terminal-position) mapfile -t COMPREPLY < <( compgen -W "top bottom left right" -- "$cur" ); addSpaces ;; + --quick-terminal-screen) mapfile -t COMPREPLY < <( compgen -W "main mouse macos-menu-bar" -- "$cur" ); addSpaces ;; + --quick-terminal-animation-duration) return ;; + --shell-integration) mapfile -t COMPREPLY < <( compgen -W "none detect bash elvish fish zsh" -- "$cur" ); addSpaces ;; + --shell-integration-features) mapfile -t COMPREPLY < <( compgen -W "cursor no-cursor sudo no-sudo title no-title" -- "$cur" ); addSpaces ;; + --osc-color-report-format) mapfile -t COMPREPLY < <( compgen -W "none 8-bit 16-bit" -- "$cur" ); addSpaces ;; + --vt-kam-allowed) return ;; + --custom-shader) _files ;; + --custom-shader-animation) mapfile -t COMPREPLY < <( compgen -W "false true always" -- "$cur" ); addSpaces ;; + --macos-non-native-fullscreen) mapfile -t COMPREPLY < <( compgen -W "false true visible-menu" -- "$cur" ); addSpaces ;; + --macos-titlebar-style) mapfile -t COMPREPLY < <( compgen -W "native transparent tabs hidden" -- "$cur" ); addSpaces ;; + --macos-titlebar-proxy-icon) mapfile -t COMPREPLY < <( compgen -W "visible hidden" -- "$cur" ); addSpaces ;; + --macos-option-as-alt) return ;; + --macos-window-shadow) return ;; + --macos-auto-secure-input) return ;; + --macos-secure-input-indication) return ;; + --linux-cgroup) mapfile -t COMPREPLY < <( compgen -W "never always single-instance" -- "$cur" ); addSpaces ;; + --linux-cgroup-memory-limit) return ;; + --linux-cgroup-processes-limit) return ;; + --linux-cgroup-hard-fail) return ;; + --gtk-single-instance) mapfile -t COMPREPLY < <( compgen -W "desktop false true" -- "$cur" ); addSpaces ;; + --gtk-titlebar) return ;; + --gtk-tabs-location) mapfile -t COMPREPLY < <( compgen -W "top bottom left right hidden" -- "$cur" ); addSpaces ;; + --adw-toolbar-style) mapfile -t COMPREPLY < <( compgen -W "flat raised raised-border" -- "$cur" ); addSpaces ;; + --gtk-wide-tabs) return ;; + --gtk-adwaita) return ;; + --desktop-notifications) return ;; + --bold-is-bright) return ;; + --term) return ;; + --enquiry-response) return ;; + --auto-update) mapfile -t COMPREPLY < <( compgen -W "off check download" -- "$cur" ); addSpaces ;; + --auto-update-channel) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$config" -- "$cur" ) ;; + esac + + return 0 +} + +list_fonts="--family= --style= '--bold ' '--italic ' --help" +list_keybinds="'--default ' '--docs ' '--plain ' --help" +list_themes="'--path ' '--plain ' --help" +list_actions="'--docs ' --help" +show_config="'--default ' '--changes-only ' '--docs ' --help" +validate_config="--config-file= --help" + +_handleActions() { + case "${COMP_WORDS[1]}" in + +list-fonts) + case $prev in + --family) return;; + --style) return;; + --bold) return ;; + --italic) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$list_fonts" -- "$cur" ) ;; + esac + ;; + +list-keybinds) + case $prev in + --default) return ;; + --docs) return ;; + --plain) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$list_keybinds" -- "$cur" ) ;; + esac + ;; + +list-themes) + case $prev in + --path) return ;; + --plain) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$list_themes" -- "$cur" ) ;; + esac + ;; + +list-actions) + case $prev in + --docs) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$list_actions" -- "$cur" ) ;; + esac + ;; + +show-config) + case $prev in + --default) return ;; + --changes-only) return ;; + --docs) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$show_config" -- "$cur" ) ;; + esac + ;; + +validate-config) + case $prev in + --config-file) return ;; + *) mapfile -t COMPREPLY < <( compgen -W "$validate_config" -- "$cur" ) ;; + esac + ;; + *) mapfile -t COMPREPLY < <( compgen -W "--help" -- "$cur" ) ;; + esac + + return 0 +} + +topLevel="-e" +topLevel+=" --help" +topLevel+=" --version" +topLevel+=" +list-fonts" +topLevel+=" +list-keybinds" +topLevel+=" +list-themes" +topLevel+=" +list-colors" +topLevel+=" +list-actions" +topLevel+=" +show-config" +topLevel+=" +validate-config" +topLevel+=" +crash-report" + +_ghostty() { + cur=""; prev=""; prevWasEq=false; COMPREPLY=() + ghostty="$1" + + # script assumes default COMP_WORDBREAKS of roughly $' \t\n"\'><=;|&(:' + # if = is missing this script will degrade to matching on keys only. + # eg: --key= + # this can be improved if needed see: https://github.com/ghostty-org/ghostty/discussions/2994 + + if [ "$2" = "=" ]; then cur="" + else cur="$2" + fi + + if [ "$3" = "=" ]; then prev="${COMP_WORDS[COMP_CWORD-2]}"; prevWasEq=true; + else prev="${COMP_WORDS[COMP_CWORD-1]}" + fi + + # current completion is double quoted add a space so the curor progresses + if [[ "$2" == \"*\" ]]; then + COMPREPLY=( "$cur " ); + return; + fi + + case "$COMP_CWORD" in + 1) + case "${COMP_WORDS[1]}" in + -e | --help | --version) return 0 ;; + --*) _handleConfig ;; + *) mapfile -t COMPREPLY < <( compgen -W "${topLevel}" -- "$cur" ); addSpaces ;; + esac + ;; + *) + case "$prev" in + -e | --help | --version) return 0 ;; + *) + if [[ "=" != "${COMP_WORDS[COMP_CWORD]}" && $prevWasEq != true ]]; then + # must be completing with a space after the key eg: '-- ' + # clear out prev so we don't run any of the key specific completions + prev="" + fi + + case "${COMP_WORDS[1]}" in + --*) _handleConfig ;; + +*) _handleActions ;; + esac + ;; + esac + ;; + esac + + return 0 +} + +complete -o nospace -o bashdefault -F _ghostty ghostty diff --git a/bin/share/bat/syntaxes/ghostty.sublime-syntax b/bin/share/bat/syntaxes/ghostty.sublime-syntax new file mode 100644 index 0000000..1d63b6d --- /dev/null +++ b/bin/share/bat/syntaxes/ghostty.sublime-syntax @@ -0,0 +1,17 @@ +%YAML 1.2 +--- +# See http://www.sublimetext.com/docs/syntax.html +name: Ghostty Config +file_extensions: + - ghostty +scope: source.ghostty + +contexts: + main: + # Comments + - match: '^\s*#.*$' + scope: comment.line.number-sign.ghostty + + # Keywords + - match: '\b(font-family|font-family-bold|font-family-italic|font-family-bold-italic|font-style|font-style-bold|font-style-italic|font-style-bold-italic|font-synthetic-style|font-feature|font-size|font-variation|font-variation-bold|font-variation-italic|font-variation-bold-italic|font-codepoint-map|font-thicken|adjust-cell-width|adjust-cell-height|adjust-font-baseline|adjust-underline-position|adjust-underline-thickness|adjust-strikethrough-position|adjust-strikethrough-thickness|adjust-overline-position|adjust-overline-thickness|adjust-cursor-thickness|adjust-box-thickness|grapheme-width-method|freetype-load-flags|theme|background|foreground|selection-foreground|selection-background|selection-invert-fg-bg|minimum-contrast|palette|cursor-color|cursor-invert-fg-bg|cursor-opacity|cursor-style|cursor-style-blink|cursor-text|cursor-click-to-move|mouse-hide-while-typing|mouse-shift-capture|mouse-scroll-multiplier|background-opacity|background-blur-radius|unfocused-split-opacity|unfocused-split-fill|command|initial-command|wait-after-command|abnormal-command-exit-runtime|scrollback-limit|link|link-url|fullscreen|title|class|x11-instance-name|working-directory|keybind|window-padding-x|window-padding-y|window-padding-balance|window-padding-color|window-vsync|window-inherit-working-directory|window-inherit-font-size|window-decoration|window-title-font-family|window-theme|window-colorspace|window-height|window-width|window-save-state|window-step-resize|window-new-tab-position|resize-overlay|resize-overlay-position|resize-overlay-duration|focus-follows-mouse|clipboard-read|clipboard-write|clipboard-trim-trailing-spaces|clipboard-paste-protection|clipboard-paste-bracketed-safe|image-storage-limit|copy-on-select|click-repeat-interval|config-file|config-default-files|confirm-close-surface|quit-after-last-window-closed|quit-after-last-window-closed-delay|initial-window|quick-terminal-position|quick-terminal-screen|quick-terminal-animation-duration|shell-integration|shell-integration-features|osc-color-report-format|vt-kam-allowed|custom-shader|custom-shader-animation|macos-non-native-fullscreen|macos-titlebar-style|macos-titlebar-proxy-icon|macos-option-as-alt|macos-window-shadow|macos-auto-secure-input|macos-secure-input-indication|linux-cgroup|linux-cgroup-memory-limit|linux-cgroup-processes-limit|linux-cgroup-hard-fail|gtk-single-instance|gtk-titlebar|gtk-tabs-location|adw-toolbar-style|gtk-wide-tabs|gtk-adwaita|desktop-notifications|bold-is-bright|term|enquiry-response|auto-update|auto-update-channel)\b' + scope: keyword.other.ghostty diff --git a/bin/share/fish/vendor_completions.d/ghostty.fish b/bin/share/fish/vendor_completions.d/ghostty.fish new file mode 100644 index 0000000..b46782e --- /dev/null +++ b/bin/share/fish/vendor_completions.d/ghostty.fish @@ -0,0 +1,150 @@ +set -l commands "+list-fonts +list-keybinds +list-themes +list-colors +list-actions +show-config +validate-config +crash-report" +complete -c ghostty -f +complete -c ghostty -s e -l help -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l version -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-family -r -f -a "(ghostty +list-fonts | grep '^[A-Z]')" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-family-bold -r -f -a "(ghostty +list-fonts | grep '^[A-Z]')" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-family-italic -r -f -a "(ghostty +list-fonts | grep '^[A-Z]')" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-family-bold-italic -r -f -a "(ghostty +list-fonts | grep '^[A-Z]')" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-style -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-style-bold -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-style-italic -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-style-bold-italic -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-synthetic-style -r -f -a "bold no-bold italic no-italic bold-italic no-bold-italic" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-feature -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-size -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-variation -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-variation-bold -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-variation-italic -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-variation-bold-italic -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-codepoint-map -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l font-thicken -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-cell-width -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-cell-height -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-font-baseline -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-underline-position -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-underline-thickness -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-strikethrough-position -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-strikethrough-thickness -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-overline-position -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-overline-thickness -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-cursor-thickness -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adjust-box-thickness -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l grapheme-width-method -r -f -a "legacy unicode" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l freetype-load-flags -r -f -a "hinting no-hinting force-autohint no-force-autohint monochrome no-monochrome autohint no-autohint" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l theme -r -f -a "(ghostty +list-themes | sed -E 's/^(.*) \(.*\$/\1/')" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l background -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l foreground -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l selection-foreground -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l selection-background -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l selection-invert-fg-bg -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l minimum-contrast -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l palette -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-color -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-invert-fg-bg -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-opacity -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-style -r -f -a "bar block underline block_hollow" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-style-blink -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-text -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l cursor-click-to-move -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l mouse-hide-while-typing -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l mouse-shift-capture -r -f -a "false true always never" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l mouse-scroll-multiplier -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l background-opacity -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l background-blur-radius -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l unfocused-split-opacity -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l unfocused-split-fill -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l command -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l initial-command -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l wait-after-command -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l abnormal-command-exit-runtime -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l scrollback-limit -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l link -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l link-url -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l fullscreen -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l title -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l class -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l x11-instance-name -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l working-directory -r -f -k -a "(__fish_complete_directories)" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l keybind -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-padding-x -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-padding-y -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-padding-balance -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-padding-color -r -f -a "background extend extend-always" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-vsync -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-inherit-working-directory -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-inherit-font-size -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-decoration -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-title-font-family -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-theme -r -f -a "auto system light dark ghostty" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-colorspace -r -f -a "srgb display-p3" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-height -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-width -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-save-state -r -f -a "default never always" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-step-resize -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l window-new-tab-position -r -f -a "current end" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l resize-overlay -r -f -a "always never after-first" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l resize-overlay-position -r -f -a "center top-left top-center top-right bottom-left bottom-center bottom-right" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l resize-overlay-duration -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l focus-follows-mouse -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l clipboard-read -r -f -a "allow deny ask" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l clipboard-write -r -f -a "allow deny ask" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l clipboard-trim-trailing-spaces -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l clipboard-paste-protection -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l clipboard-paste-bracketed-safe -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l image-storage-limit -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l copy-on-select -r -f -a "false true clipboard" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l click-repeat-interval -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l config-file -r -F +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l config-default-files -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l confirm-close-surface -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l quit-after-last-window-closed -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l quit-after-last-window-closed-delay -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l initial-window -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l quick-terminal-position -r -f -a "top bottom left right" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l quick-terminal-screen -r -f -a "main mouse macos-menu-bar" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l quick-terminal-animation-duration -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l shell-integration -r -f -a "none detect bash elvish fish zsh" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l shell-integration-features -r -f -a "cursor no-cursor sudo no-sudo title no-title" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l osc-color-report-format -r -f -a "none 8-bit 16-bit" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l vt-kam-allowed -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l custom-shader -r -F +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l custom-shader-animation -r -f -a "false true always" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-non-native-fullscreen -r -f -a "false true visible-menu" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-titlebar-style -r -f -a "native transparent tabs hidden" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-titlebar-proxy-icon -r -f -a "visible hidden" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-option-as-alt -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-window-shadow -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-auto-secure-input -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l macos-secure-input-indication -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l linux-cgroup -r -f -a "never always single-instance" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l linux-cgroup-memory-limit -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l linux-cgroup-processes-limit -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l linux-cgroup-hard-fail -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l gtk-single-instance -r -f -a "desktop false true" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l gtk-titlebar -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l gtk-tabs-location -r -f -a "top bottom left right hidden" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l adw-toolbar-style -r -f -a "flat raised raised-border" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l gtk-wide-tabs -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l gtk-adwaita -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l desktop-notifications -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l bold-is-bright -f -a "true false" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l term -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l enquiry-response -r -f +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l auto-update -r -f -a "off check download" +complete -c ghostty -n "not __fish_seen_subcommand_from $commands" -l auto-update-channel -r -f +complete -c ghostty -n "string match -q -- '+*' (commandline -pt)" -f -a "+list-fonts +list-keybinds +list-themes +list-colors +list-actions +show-config +validate-config +crash-report" +complete -c ghostty -n "__fish_seen_subcommand_from +list-fonts" -l family -r -f +complete -c ghostty -n "__fish_seen_subcommand_from +list-fonts" -l style -r -f +complete -c ghostty -n "__fish_seen_subcommand_from +list-fonts" -l bold -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-fonts" -l italic -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-keybinds" -l default -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-keybinds" -l docs -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-keybinds" -l plain -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-themes" -l path -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-themes" -l plain -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +list-actions" -l docs -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +show-config" -l default -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +show-config" -l changes-only -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +show-config" -l docs -f -a "true false" +complete -c ghostty -n "__fish_seen_subcommand_from +validate-config" -l config-file -r -F diff --git a/bin/share/ghostty/doc/ghostty.1.html b/bin/share/ghostty/doc/ghostty.1.html new file mode 100644 index 0000000..94f2f8c --- /dev/null +++ b/bin/share/ghostty/doc/ghostty.1.html @@ -0,0 +1,2244 @@ + + + + + + + GHOSTTY(1) Version 0.1.0-main+dd6460bc | Ghostty terminal emulator + + + +
+

GHOSTTY(1) Version 0.1.0-main+dd6460bc | Ghostty +terminal emulator

+
+

NAME

+

ghostty - Ghostty terminal emulator

+

DESCRIPTION

+

Ghostty is a cross-platform, GPU-accelerated terminal emulator that +aims to push the boundaries of what is possible with a terminal emulator +by exposing modern, opt-in features that enable CLI tool developers to +build more feature rich, interactive applications.

+

There are a number of excellent terminal emulator options that exist +today. The unique goal of Ghostty is to have a platform for +experimenting with modern, optional, non-standards-compliant features to +enhance the capabilities of CLI applications. We aim to be the best in +this category, and competitive in the rest.

+

While aiming for this ambitious goal, Ghostty is a fully standards +compliant terminal emulator that aims to remain compatible with all +existing shells and software. You can use this as a drop-in replacement +for your existing terminal emulator.

+

COMMAND LINE ACTIONS

+
+
--version
+
+

The version command is used to display information about +Ghostty.

+
+
--help
+
+

The help command shows general help about Ghostty. You +can also specify --help or -h along with any +action such as +list-themes to see help for a specific +action.

+
+
+list-fonts
+
+

The list-fonts command is used to list all the available +fonts for Ghostty. This uses the exact same font discovery mechanism +Ghostty uses to find fonts to use.

+

When executed with no arguments, this will list all available fonts, +sorted by family name, then font name. If a family name is given with +--family, the sorting will be disabled and the results +instead will be shown in the same priority order Ghostty would use to +pick a font.

+

The --family argument can be used to filter results to a +specific family. The family handling is identical to the +font-family set of Ghostty configuration values, so this +can be used to debug why your desired font may not be loading.

+

The --bold and --italic arguments can be +used to filter results to specific styles. It is not guaranteed that +only those styles are returned, it will just prioritize fonts that match +those styles.

+
+
+list-keybinds
+
+

The list-keybinds command is used to list all the +available keybinds for Ghostty.

+

When executed without any arguments this will list the current +keybinds loaded by the config file. If no config file is found or there +aren’t any changes to the keybinds it will print out the default ones +configured for Ghostty

+

The --default argument will print out all the default +keybinds configured for Ghostty

+

The --plain flag will disable formatting and make the +output more friendly for Unix tooling. This is default when not printing +to a tty.

+
+
+list-themes
+
+

The list-themes command is used to preview or list all +the available themes for Ghostty.

+

If this command is run from a TTY, a TUI preview of the themes will +be shown. While in the preview, F1 will bring up a help +screen and ESC will exit the preview. Other keys that can +be used to navigate the preview are listed in the help screen.

+

If this command is not run from a TTY, or the output is piped to +another command, a plain list of theme names will be printed to the +screen. A plain list can be forced using the --plain CLI +flag.

+

Two different directories will be searched for themes.

+

The first directory is the themes subdirectory of your +Ghostty configuration directory. This is +$XDG_CONFIG_DIR/ghostty/themes or +~/.config/ghostty/themes.

+

The second directory is the themes subdirectory of the +Ghostty resources directory. Ghostty ships with a multitude of themes +that will be installed into this directory. On macOS, this directory is +the Ghostty.app/Contents/ Resources/ghostty/themes. On +Linux, this directory is the share/ghostty/ themes +(wherever you installed the Ghostty “share” directory). If you’re +running Ghostty from the source, this is the +zig-out/share/ghostty/themes directory.

+

You can also set the GHOSTTY_RESOURCES_DIR environment +variable to point to the resources directory.

+

Flags:

+
    +
  • --path: Show the full path to the theme.
  • +
  • --plain: Force a plain listing of themes.
  • +
+
+
+list-colors
+
+

The list-colors command is used to list all the named +RGB colors in Ghostty.

+
+
+list-actions
+
+

The list-actions command is used to list all the +available keybind actions for Ghostty.

+

The --docs argument will print out the documentation for +each action.

+
+
+show-config
+
+

The show-config command shows the current configuration +in a valid Ghostty configuration file format.

+

When executed without any arguments this will output the current +configuration that is different from the default configuration. If +you’re using the default configuration this will output nothing.

+

If you are a new user and want to see all available options with +documentation, run +ghostty +show-config --default --docs.

+

The output is not in any specific order, but the order should be +consistent between runs. The output is not guaranteed to be exactly +match the input configuration files, but it will result in the same +behavior. Comments, whitespace, and other formatting is not preserved +from user configuration files.

+

Flags:

+
    +
  • --default: Show the default configuration instead of +loading the user configuration.

  • +
  • --changes-only: Only show the options that have been +changed from the default. This has no effect if --default +is specified.

  • +
  • --docs: Print the documentation above each option as +a comment, This is very noisy but is very useful to learn about +available options, especially paired with +--default.

  • +
+
+
+validate-config
+
+

The validate-config command is used to validate a +Ghostty config file.

+

When executed without any arguments, this will load the config from +the default location.

+

The --config-file argument can be passed to validate a +specific target config file in a non-default location.

+
+
+crash-report
+
+

The crash-report command is used to inspect and send +crash reports.

+

When executed without any arguments, this will list existing crash +reports.

+

This command currently only supports listing crash reports. Viewing +and sending crash reports is unimplemented and will be added in the +future.

+
+
+

CONFIGURATION OPTIONS

+
+
--font-family
+
+

The font families to use.

+

You can generate the list of valid values using the CLI:

+
ghostty +list-fonts
+

This configuration can be repeated multiple times to specify +preferred fallback fonts when the requested codepoint is not available +in the primary font. This is particularly useful for multiple languages, +symbolic fonts, etc.

+

Notes on emoji specifically: On macOS, Ghostty by default will always +use Apple Color Emoji and on Linux will always use Noto Emoji. You can +override this behavior by specifying a font family here that contains +emoji glyphs.

+

The specific styles (bold, italic, bold italic) do not need to be +explicitly set. If a style is not set, then the regular style +(font-family) will be searched for stylistic variants. If a stylistic +variant is not found, Ghostty will use the regular style. This prevents +falling back to a different font family just to get a style such as +bold. This also applies if you explicitly specify a font family for a +style. For example, if you set font-family-bold = FooBar +and “FooBar” cannot be found, Ghostty will use whatever font is set for +font-family for the bold style.

+

Finally, some styles may be synthesized if they are not supported. +For example, if a font does not have an italic style and no alternative +italic font is specified, Ghostty will synthesize an italic style by +applying a slant to the regular style. If you want to disable these +synthesized styles then you can use the font-style +configurations as documented below.

+

You can disable styles completely by using the +font-style set of configurations. See the documentation for +font-style for more information.

+

If you want to overwrite a previous set value rather than append a +fallback, specify the value as "" (empty string) to reset +the list and then set the new values. For example:

+
font-family = ""
+font-family = "My Favorite Font"
+

Setting any of these as CLI arguments will automatically clear the +values set in configuration files so you don’t need to specify +--font-family="" before setting a new value. You only need +to specify this within config files if you want to clear previously set +values in configuration files or on the CLI if you want to clear values +set on the CLI.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+
+
+

--font-family-bold

+

--font-family-italic

+

--font-family-bold-italic

+
+
--font-style
+
+

The named font style to use for each of the requested terminal font +styles. This looks up the style based on the font style string +advertised by the font itself. For example, “Iosevka Heavy” has a style +of “Heavy”.

+

You can also use these fields to completely disable a font style. If +you set the value of the configuration below to literal +false then that font style will be disabled. If the running +program in the terminal requests a disabled font style, the regular font +style will be used instead.

+

These are only valid if its corresponding font-family is also +specified. If no font-family is specified, then the font-style is +ignored unless you’re disabling the font style.

+
+
+

--font-style-bold

+

--font-style-italic

+

--font-style-bold-italic

+
+
--font-synthetic-style
+
+

Control whether Ghostty should synthesize a style if the requested +style is not available in the specified font-family.

+

Ghostty can synthesize bold, italic, and bold italic styles if the +font does not have a specific style. For bold, this is done by drawing +an outline around the glyph of varying thickness. For italic, this is +done by applying a slant to the glyph. For bold italic, both of these +are applied.

+

Synthetic styles are not perfect and will generally not look as good +as a font that has the style natively. However, they are useful to +provide styled text when the font does not have the style.

+

Set this to “false” or “true” to disable or enable synthetic styles +completely. You can disable specific styles using “no-bold”, +“no-italic”, and “no-bold-italic”. You can disable multiple styles by +separating them with a comma. For example, “no-bold,no-italic”.

+

Available style keys are: bold, italic, +bold-italic.

+

If synthetic styles are disabled, then the regular style will be used +instead if the requested style is not available. If the font has the +requested style, then the font will be used as-is since the style is not +synthetic.

+

Warning: An easy mistake is to disable bold or +italic but not bold-italic. Disabling only +bold or italic will NOT disable either in the +bold-italic style. If you want to disable +bold-italic, you must explicitly disable it. You cannot +partially disable bold-italic.

+

By default, synthetic styles are enabled.

+
+
--font-feature
+
+

Apply a font feature. This can be repeated multiple times to enable +multiple font features. You can NOT set multiple font features with a +single value (yet).

+

The font feature will apply to all fonts rendered by Ghostty. A +future enhancement will allow targeting specific faces.

+

A valid value is the name of a feature. Prefix the feature with a +- to explicitly disable it. Example: ss20 or +-ss20.

+

To disable programming ligatures, use -calt since this +is the typical feature name for programming ligatures. To look into what +font features your font has and what they do, use a font inspection tool +such as fontdrop.info.

+

To generally disable most ligatures, use -calt, +-liga, and -dlig (as separate repetitive +entries in your config).

+
+
--font-size
+
+

Font size in points. This value can be a non-integer and the nearest +integer pixel size will be selected. If you have a high dpi display +where 1pt = 2px then you can get an odd numbered pixel size by +specifying a half point.

+

For example, 13.5pt @ 2px/pt = 27px

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc. Note that you may still not see +the change depending on your window-inherit-font-size +setting. If that setting is true, only the first window will be affected +by this change since all subsequent windows will inherit the font size +of the previous window.

+
+
--font-variation
+
+

A repeatable configuration to set one or more font variations values +for a variable font. A variable font is a single font, usually with a +filename ending in -VF.ttf or -VF.otf that +contains one or more configurable axes for things such as weight, slant, +etc. Not all fonts support variations; only fonts that explicitly state +they are variable fonts will work.

+

The format of this is id=value where id is +the axis identifier. An axis identifier is always a 4 character string, +such as wght. To get the list of supported axes, look at +your font documentation or use a font inspection tool.

+

Invalid ids and values are usually ignored. For example, if a font +only supports weights from 100 to 700, setting wght=800 +will do nothing (it will not be clamped to 700). You must consult your +font’s documentation to see what values are supported.

+

Common axes are: wght (weight), slnt +(slant), ital (italic), opsz (optical size), +wdth (width), GRAD (gradient), etc.

+
+
+

--font-variation-bold

+

--font-variation-italic

+

--font-variation-bold-italic

+
+
--font-codepoint-map
+
+

Force one or a range of Unicode codepoints to map to a specific named +font. This is useful if you want to support special symbols or if you +want to use specific glyphs that render better for your specific +font.

+

The syntax is codepoint=fontname where +codepoint is either a single codepoint or a range. +Codepoints must be specified as full Unicode hex values, such as +U+ABCD. Codepoints ranges are specified as +U+ABCD-U+DEFG. You can specify multiple ranges for the same +font separated by commas, such as +U+ABCD-U+DEFG,U+1234-U+5678=fontname. The font name is the +same value as you would use for font-family.

+

This configuration can be repeated multiple times to specify multiple +codepoint mappings.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+
+
--font-thicken
+
+

Draw fonts with a thicker stroke, if supported. This is only +supported currently on macOS.

+
+
--adjust-cell-width
+
+

All of the configurations behavior adjust various metrics determined +by the font. The values can be integers (1, -1, etc.) or a percentage +(20%, -15%, etc.). In each case, the values represent the amount to +change the original value.

+

For example, a value of 1 increases the value by 1; it +does not set it to literally 1. A value of 20% increases +the value by 20%. And so on.

+

There is little to no validation on these values so the wrong values +(i.e. -100%) can cause the terminal to be unusable. Use +with caution and reason.

+

Some values are clamped to minimum or maximum values. This can make +it appear that certain values are ignored. For example, the underline +position is clamped to the height of a cell. If you set the underline +position so high that it extends beyond the bottom of the cell size, it +will be clamped to the bottom of the cell.

+

adjust-cell-height has some additional behaviors to +describe:

+
    +
  • The font will be centered vertically in the cell.

  • +
  • The cursor will remain the same size as the font.

  • +
  • Powerline glyphs will be adjusted along with the cell height so +that things like status lines continue to look aligned.

  • +
+
+
+

--adjust-cell-height

+
+
--adjust-font-baseline
+
+

Distance in pixels from the bottom of the cell to the text baseline. +Increase to move baseline UP, decrease to move baseline DOWN.

+
+
--adjust-underline-position
+
+

Distance in pixels from the top of the cell to the top of the +underline. Increase to move underline DOWN, decrease to move underline +UP.

+
+
--adjust-underline-thickness
+
+

Thickness in pixels of the underline.

+
+
--adjust-strikethrough-position
+
+

Distance in pixels from the top of the cell to the top of the +strikethrough. Increase to move strikethrough DOWN, decrease to move +underline UP.

+
+
--adjust-strikethrough-thickness
+
+

Thickness in pixels of the strikethrough.

+
+
--adjust-overline-position
+
+

Distance in pixels from the top of the cell to the top of the +overline. Increase to move overline DOWN, decrease to move underline +UP.

+
+
--adjust-overline-thickness
+
+

Thickness in pixels of the overline.

+
+
--adjust-cursor-thickness
+
+

Thickness in pixels of the bar cursor and outlined rect cursor.

+
+
--adjust-box-thickness
+
+

Thickness in pixels of box drawing characters.

+
+
--grapheme-width-method
+
+

The method to use for calculating the cell width of a grapheme +cluster. The default value is unicode which uses the +Unicode standard to determine grapheme width. This results in correct +grapheme width but may result in cursor-desync issues with some programs +(such as shells) that may use a legacy method such as +wcswidth.

+

Valid values are:

+
    +
  • legacy - Use a legacy method to determine grapheme +width, such as wcswidth This maximizes compatibility with legacy +programs but may result in incorrect grapheme width for certain +graphemes such as skin-tone emoji, non-English characters, etc.

    +

    This is called “legacy” and not something more specific because the +behavior is undefined and we want to retain the ability to modify it. +For example, we may or may not use libc wcswidth now or in +the future.

  • +
  • unicode - Use the Unicode standard to determine +grapheme width.

  • +
+

If a running program explicitly enables terminal mode 2027, then +unicode width will be forced regardless of this +configuration. When mode 2027 is reset, this configuration will be used +again.

+

This configuration can be changed at runtime but will not affect +existing terminals. Only new terminals will use the new +configuration.

+
+
--freetype-load-flags
+
+

FreeType load flags to enable. The format of this is a list of flags +to enable separated by commas. If you prefix a flag with +no- then it is disabled. If you omit a flag, it’s default +value is used, so you must explicitly disable flags you don’t want. You +can also use true or false to turn all flags +on or off.

+

This configuration only applies to Ghostty builds that use FreeType. +This is usually the case only for Linux builds. macOS uses CoreText and +does not have an equivalent configuration.

+

Available flags:

+
    +
  • hinting - Enable or disable hinting, enabled by +default.
  • +
  • force-autohint - Use the freetype auto-hinter rather +than the font’s native hinter. Enabled by default.
  • +
  • monochrome - Instructs renderer to use 1-bit monochrome +rendering. This option doesn’t impact the hinter. Enabled by +default.
  • +
  • autohint - Use the freetype auto-hinter. Enabled by +default.
  • +
+

Example: hinting, no-hinting, +force-autohint, no-force-autohint

+
+
--theme
+
+

A theme to use. This can be a built-in theme name, a custom theme +name, or an absolute path to a custom theme file. Ghostty also supports +specifying a different theme to use for light and dark mode. Each option +is documented below.

+

If the theme is an absolute pathname, Ghostty will attempt to load +that file as a theme. If that file does not exist or is inaccessible, an +error will be logged and no other directories will be searched.

+

If the theme is not an absolute pathname, two different directories +will be searched for a file name that matches the theme. This is case +sensitive on systems with case-sensitive filesystems. It is an error for +a theme name to include path separators unless it is an absolute +pathname.

+

The first directory is the themes subdirectory of your +Ghostty configuration directory. This is +$XDG_CONFIG_DIR/ghostty/themes or +~/.config/ghostty/themes.

+

The second directory is the themes subdirectory of the +Ghostty resources directory. Ghostty ships with a multitude of themes +that will be installed into this directory. On macOS, this list is in +the Ghostty.app/Contents/ Resources/ghostty/themes +directory. On Linux, this list is in the +share/ ghostty/themes directory (wherever you installed the +Ghostty “share” directory.

+

To see a list of available themes, run +ghostty +list-themes.

+

A theme file is simply another Ghostty configuration file. They share +the same syntax and same configuration options. A theme can set any +valid configuration option so please do not use a theme file from an +untrusted source. The built-in themes are audited to only set safe +configuration options.

+

Some options cannot be set within theme files. The reason these are +not supported should be self-evident. A theme file cannot set +theme or config-file. At the time of writing +this, Ghostty will not show any warnings or errors if you set these +options in a theme file but they will be silently ignored.

+

Any additional colors specified via background, foreground, palette, +etc. will override the colors specified in the theme.

+

To specify a different theme for light and dark mode, use the +following syntax: light:theme-name,dark:theme-name. For +example: light:rose-pine-dawn,dark:rose-pine. Whitespace +around all values are trimmed and order of light and dark does not +matter. Both light and dark must be specified in this form. In this +form, the theme used will be based on the current desktop environment +theme.

+

There are some known bugs with light/dark mode theming. These will be +fixed in a future update:

+
    +
  • macOS: titlebar tabs style is not updated when switching +themes.
  • +
+
+
--background
+
+

Background color for the window.

+
+
--foreground
+
+

Foreground color for the window.

+
+
--selection-foreground
+
+

The foreground and background color for selection. If this is not +set, then the selection color is just the inverted window background and +foreground (note: not to be confused with the cell bg/fg).

+
+
+

--selection-background

+
+
--selection-invert-fg-bg
+
+

Swap the foreground and background colors of cells for selection. +This option overrides the selection-foreground and +selection-background options.

+

If you select across cells with differing foregrounds and +backgrounds, the selection color will vary across the selection.

+
+
--minimum-contrast
+
+

The minimum contrast ratio between the foreground and background +colors. The contrast ratio is a value between 1 and 21. A value of 1 +allows for no contrast (i.e. black on black). This value is the contrast +ratio as defined by the WCAG 2.0 +specification.

+

If you want to avoid invisible text (same color as background), a +value of 1.1 is a good value. If you want to avoid text that is +difficult to read, a value of 3 or higher is a good value. The higher +the value, the more likely that text will become black or white.

+

This value does not apply to Emoji or images.

+
+
--palette
+
+

Color palette for the 256 color form that many terminal applications +use. The syntax of this configuration is N=HEXCODE where +N is 0 to 255 (for the 256 colors in the terminal color +table) and HEXCODE is a typical RGB color code such as +#AABBCC.

+

For definitions on all the codes see this cheat +sheet.

+
+
--cursor-color
+
+

The color of the cursor. If this is not set, a default will be +chosen.

+
+
--cursor-invert-fg-bg
+
+

Swap the foreground and background colors of the cell under the +cursor. This option overrides the cursor-color and +cursor-text options.

+
+
--cursor-opacity
+
+

The opacity level (opposite of transparency) of the cursor. A value +of 1 is fully opaque and a value of 0 is fully transparent. A value less +than 0 or greater than 1 will be clamped to the nearest valid value. +Note that a sufficiently small value such as 0.3 may be effectively +invisible and may make it difficult to find the cursor.

+
+
--cursor-style
+
+

The style of the cursor. This sets the default style. A running +program can still request an explicit cursor style using escape +sequences (such as CSI q). Shell configurations will often +request specific cursor styles.

+

Note that shell integration will automatically set the cursor to a +bar at a prompt, regardless of this configuration. You can disable that +behavior by specifying +shell-integration-features = no-cursor or disabling shell +integration entirely.

+

Valid values are:

+
    +
  • block
  • +
  • bar
  • +
  • underline
  • +
  • block_hollow
  • +
+
+
--cursor-style-blink
+
+

Sets the default blinking state of the cursor. This is just the +default state; running programs may override the cursor style using +DECSCUSR (CSI q).

+

If this is not set, the cursor blinks by default. Note that this is +not the same as a “true” value, as noted below.

+

If this is not set at all (null), then Ghostty will +respect DEC Mode 12 (AT&T cursor blink) as an alternate approach to +turning blinking on/off. If this is set to any value other than null, +DEC mode 12 will be ignored but DECSCUSR will still be +respected.

+

Valid values are:

+
    +
  • `` (blank)
  • +
  • true
  • +
  • false
  • +
+
+
--cursor-text
+
+

The color of the text under the cursor. If this is not set, a default +will be chosen.

+
+
--cursor-click-to-move
+
+

Enables the ability to move the cursor at prompts by using +alt+click on Linux and option+click on +macOS.

+

This feature requires shell integration (specifically prompt marking +via OSC 133) and only works in primary screen mode. +Alternate screen applications like vim usually have their own version of +this feature but this configuration doesn’t control that.

+

It should be noted that this feature works by translating your +desired position into a series of synthetic arrow key movements, so some +weird behavior around edge cases are to be expected. This is +unfortunately how this feature is implemented across terminals because +there isn’t any other way to implement it.

+
+
--mouse-hide-while-typing
+
+

Hide the mouse immediately when typing. The mouse becomes visible +again when the mouse is used (button, movement, etc.). Platform-specific +behavior may dictate other scenarios where the mouse is shown. For +example on macOS, the mouse is shown again when a new window, tab, or +split is created.

+
+
--mouse-shift-capture
+
+

Determines whether running programs can detect the shift key pressed +with a mouse click. Typically, the shift key is used to extend mouse +selection.

+

The default value of false means that the shift key is +not sent with the mouse protocol and will extend the selection. This +value can be conditionally overridden by the running program with the +XTSHIFTESCAPE sequence.

+

The value true means that the shift key is sent with the +mouse protocol but the running program can override this behavior with +XTSHIFTESCAPE.

+

The value never is the same as false but +the running program cannot override this behavior with +XTSHIFTESCAPE. The value always is the same as +true but the running program cannot override this behavior +with XTSHIFTESCAPE.

+

If you always want shift to extend mouse selection even if the +program requests otherwise, set this to never.

+

Valid values are:

+
    +
  • true
  • +
  • false
  • +
  • always
  • +
  • never
  • +
+
+
--mouse-scroll-multiplier
+
+

Multiplier for scrolling distance with the mouse wheel. Any value +less than 0.01 or greater than 10,000 will be clamped to the nearest +valid value.

+

A value of “1” (default) scrolls te default amount. A value of “2” +scrolls double the default amount. A value of “0.5” scrolls half the +default amount. Et cetera.

+
+
--background-opacity
+
+

The opacity level (opposite of transparency) of the background. A +value of 1 is fully opaque and a value of 0 is fully transparent. A +value less than 0 or greater than 1 will be clamped to the nearest valid +value.

+

On macOS, background opacity is disabled when the terminal enters +native fullscreen. This is because the background becomes gray and it +can cause widgets to show through which isn’t generally desirable.

+
+
--background-blur-radius
+
+

A positive value enables blurring of the background when +background-opacity is less than 1. The value is the blur radius to +apply. A value of 20 is reasonable for a good looking blur. Higher +values will cause strange rendering issues as well as performance +issues.

+

This is only supported on macOS.

+
+
--unfocused-split-opacity
+
+

The opacity level (opposite of transparency) of an unfocused split. +Unfocused splits by default are slightly faded out to make it easier to +see which split is focused. To disable this feature, set this value to +1.

+

A value of 1 is fully opaque and a value of 0 is fully transparent. +Because “0” is not useful (it makes the window look very weird), the +minimum value is 0.15. This value still looks weird but you can at least +see what’s going on. A value outside of the range 0.15 to 1 will be +clamped to the nearest valid value.

+
+
--unfocused-split-fill
+
+

The color to dim the unfocused split. Unfocused splits are dimmed by +rendering a semi-transparent rectangle over the split. This sets the +color of that rectangle and can be used to carefully control the dimming +effect.

+

This will default to the background color.

+
+
--command
+
+

The command to run, usually a shell. If this is not an absolute path, +it’ll be looked up in the PATH. If this is not set, a +default will be looked up from your system. The rules for the default +lookup are:

+
    +
  • SHELL environment variable

  • +
  • passwd entry (user information)

  • +
+

This can contain additional arguments to run the command with. If +additional arguments are provided, the command will be executed using +/bin/sh -c. Ghostty does not do any shell command +parsing.

+

This command will be used for all new terminal surfaces, i.e. new +windows, tabs, etc. If you want to run a command only for the first +terminal surface created when Ghostty starts, use the +initial-command configuration.

+

Ghostty supports the common -e flag for executing a +command with arguments. For example, +ghostty -e fish --with --custom --args. This flag sets the +initial-command configuration, see that for more +information.

+
+
--initial-command
+
+

This is the same as “command”, but only applies to the first terminal +surface created when Ghostty starts. Subsequent terminal surfaces will +use the command configuration.

+

After the first terminal surface is created (or closed), there is no +way to run this initial command again automatically. As such, setting +this at runtime works but will only affect the next terminal surface if +it is the first one ever created.

+

If you’re using the ghostty CLI there is also a shortcut +to set this with arguments directly: you can use the -e +flag. For example: ghostty -e fish --with --custom --args. +The -e flag automatically forces some other behaviors as +well:

+
    +
  • gtk-single-instance=false - This ensures that a new +instance is launched and the CLI args are respected.

  • +
  • quit-after-last-window-closed=true - This ensures +that the Ghostty process will exit when the command exits. Additionally, +the quit-after-last-window-closed-delay is unset.

  • +
  • shell-integration=detect (if not none) +- This prevents forcibly injecting any configured shell integration into +the command’s environment. With -e its highly unlikely that +you’re executing a shell and forced shell integration is likely to cause +problems (i.e. by wrapping your command in a shell, setting env vars, +etc.). This is a safety measure to prevent unexpected behavior. If you +want shell integration with a -e-executed command, you must +either name your binary appopriately or source the shell integration +script manually.

  • +
+
+
--wait-after-command
+
+

If true, keep the terminal open after the command exits. Normally, +the terminal window closes when the running command (such as a shell) +exits. With this true, the terminal window will stay open until any +keypress is received.

+

This is primarily useful for scripts or debugging.

+
+
--abnormal-command-exit-runtime
+
+

The number of milliseconds of runtime below which we consider a +process exit to be abnormal. This is used to show an error message when +the process exits too quickly.

+

On Linux, this must be paired with a non-zero exit code. On macOS, we +allow any exit code because of the way shell processes are launched via +the login command.

+
+
--scrollback-limit
+
+

The size of the scrollback buffer in bytes. This also includes the +active screen. No matter what this is set to, enough memory will always +be allocated for the visible screen and anything leftover is the limit +for the scrollback.

+

When this limit is reached, the oldest lines are removed from the +scrollback.

+

Scrollback currently exists completely in memory. This means that the +larger this value, the larger potential memory usage. Scrollback is +allocated lazily up to this limit, so if you set this to a very large +value, it will not immediately consume a lot of memory.

+

This size is per terminal surface, not for the entire +application.

+

It is not currently possible to set an unlimited scrollback buffer. +This is a future planned feature.

+

This can be changed at runtime but will only affect new terminal +surfaces.

+
+
--link
+
+

Match a regular expression against the terminal text and associate +clicking it with an action. This can be used to match URLs, file paths, +etc. Actions can be opening using the system opener +(i.e. open or xdg-open) or executing any +arbitrary binding action.

+

Links that are configured earlier take precedence over links that are +configured later.

+

A default link that matches a URL and opens it in the system opener +always exists. This can be disabled using link-url.

+

TODO: This can’t currently be set!

+
+
--link-url
+
+

Enable URL matching. URLs are matched on hover with control (Linux) +or super (macOS) pressed and open using the default system application +for the linked URL.

+

The URL matcher is always lowest priority of any configured links +(see link). If you want to customize URL matching, use +link and disable this.

+
+
--fullscreen
+
+

Start new windows in fullscreen. This setting applies to new windows +and does not apply to tabs, splits, etc. However, this setting will +apply to all new windows, not just the first one.

+

On macOS, this setting does not work if window-decoration is set to +“false”, because native fullscreen on macOS requires window decorations +to be set.

+
+
--title
+
+

The title Ghostty will use for the window. This will force the title +of the window to be this title at all times and Ghostty will ignore any +set title escape sequences programs (such as Neovim) may send.

+

If you want a blank title, set this to one or more spaces by quoting +the value. For example, title = " ". This effectively hides +the title. This is necessary because setting a blank value resets the +title to the default value of the running program.

+

This configuration can be reloaded at runtime. If it is set, the +title will update for all windows. If it is unset, the next title change +escape sequence will be honored but previous changes will not +retroactively be set. This latter case may require you restart programs +such as neovim to get the new title.

+
+
--class
+
+

The setting that will change the application class value.

+

This controls the class field of the WM_CLASS X11 +property (when running under X11), and the Wayland application ID (when +running under Wayland).

+

Note that changing this value between invocations will create new, +separate instances, of Ghostty when running with +gtk-single-instance=true. See that option for more +details.

+

The class name must follow the requirements defined in +the GTK documentation.

+

The default is com.mitchellh.ghostty.

+

This only affects GTK builds.

+
+
--x11-instance-name
+
+

This controls the instance name field of the WM_CLASS +X11 property when running under X11. It has no effect otherwise.

+

The default is ghostty.

+

This only affects GTK builds.

+
+
--working-directory
+
+

The directory to change to after starting the command.

+

This setting is secondary to the +window-inherit-working-directory setting. If a previous +Ghostty terminal exists in the same process, +window-inherit-working-directory will take precedence. +Otherwise, this setting will be used. Typically, this setting is used +only for the first window.

+

The default is inherit except in special scenarios +listed next. On macOS, if Ghostty can detect it is launched from launchd +(double-clicked) or open, then it defaults to +home. On Linux with GTK, if Ghostty can detect it was +launched from a desktop launcher, then it defaults to +home.

+

The value of this must be an absolute value or one of the special +values below:

+
    +
  • home - The home directory of the executing +user.

  • +
  • inherit - The working directory of the launching +process.

  • +
+
+
--keybind
+
+

Key bindings. The format is trigger=action. Duplicate +triggers will overwrite previously set values. The list of actions is +available in the documentation or using the +ghostty +list-actions command.

+

Trigger: +-separated list of keys and modifiers. +Example: ctrl+a, ctrl+shift+b, +up. Some notes:

+
    +
  • modifiers cannot repeat, ctrl+ctrl+a is +invalid.

  • +
  • modifiers and keys can be in any order, shift+a+ctrl +is weird, but valid.

  • +
  • only a single key input is allowed, ctrl+a+b is +invalid.

  • +
  • the key input can be prefixed with physical: to +specify a physical key mapping rather than a logical one. A physical key +mapping responds to the hardware keycode and not the keycode translated +by any system keyboard layouts. Example: “ctrl+physical:a”

  • +
+

Valid modifiers are shift, ctrl (alias: +control), alt (alias: opt, +option), and super (alias: cmd, +command). You may use the modifier or the alias. When +debugging keybinds, the non-aliased modifier will always be used in +output.

+

Note: The fn or “globe” key on keyboards are not supported as a +modifier. This is a limitation of the operating systems and GUI toolkits +that Ghostty uses.

+

You may also specify multiple triggers separated by > +to require a sequence of triggers to activate the action. For example, +ctrl+a>n=new_window will only trigger the +new_window action if the user presses ctrl+a +followed separately by n. In other software, this is +sometimes called a leader key, a key chord, a key table, etc. There is +no hardcoded limit on the number of parts in a sequence.

+

Warning: If you define a sequence as a CLI argument to +ghostty, you probably have to quote the keybind since +> is a special character in most shells. Example: +ghostty –keybind=‘ctrl+a>n=new_window’

+

A trigger sequence has some special handling:

+
    +
  • Ghostty will wait an indefinite amount of time for the next key +in the sequence. There is no way to specify a timeout. The only way to +force the output of a prefix key is to assign another keybind to +specifically output that key +(i.e. ctrl+a>ctrl+a=text:foo) or press an unbound key +which will send both keys to the program.

  • +
  • If a prefix in a sequence is previously bound, the sequence will +override the previous binding. For example, if ctrl+a is +bound to new_window and ctrl+a>n is bound +to new_tab, pressing ctrl+a will do +nothing.

  • +
  • Adding to the above, if a previously bound sequence prefix is +used in a new, non-sequence binding, the entire previously bound +sequence will be unbound. For example, if you bind +ctrl+a>n and ctrl+a>t, and then bind +ctrl+a directly, both ctrl+a>n and +ctrl+a>t will become unbound.

  • +
  • Trigger sequences are not allowed for global: or +all:-prefixed triggers. This is a limitation we could +remove in the future.

  • +
+

Action is the action to take when the trigger is satisfied. It takes +the format action or action:param. The latter +form is only valid if the action requires a parameter.

+
    +
  • ignore - Do nothing, ignore the key input. This can +be used to black hole certain inputs to have no effect.

  • +
  • unbind - Remove the binding. This makes it so the +previous action is removed, and the key will be sent through to the +child command if it is printable.

  • +
  • csi:text - Send a CSI sequence. +i.e. csi:A sends “cursor up”.

  • +
  • esc:text - Send an escape sequence. +i.e. esc:d deletes to the end of the word to the +right.

  • +
  • text:text - Send a string. Uses Zig string literal +syntax. i.e. text:\x15 sends Ctrl-U.

  • +
  • All other actions can be found in the documentation or by using +the ghostty +list-actions command.

  • +
+

Some notes for the action:

+
    +
  • The parameter is taken as-is after the :. Double quotes +or other mechanisms are included and NOT parsed. If you want to send a +string value that includes spaces, wrap the entire trigger/action in +double quotes. Example: --keybind="up=csi:A B"
  • +
+

There are some additional special values that can be specified for +keybind:

+
    +
  • keybind=clear will clear all set keybindings. Warning: +this removes ALL keybindings up to this point, including the default +keybindings.
  • +
+

The keybind trigger can be prefixed with some special values to +change the behavior of the keybind. These are:

+
    +
  • all: - Make the keybind apply to all terminal +surfaces. By default, keybinds only apply to the focused terminal +surface. If this is true, then the keybind will be sent to all terminal +surfaces. This only applies to actions that are surface-specific. For +actions that are already global (i.e. quit), this prefix +has no effect.

  • +
  • global: - Make the keybind global. By default, +keybinds only work within Ghostty and under the right conditions +(application focused, sometimes terminal focused, etc.). If you want a +keybind to work globally across your system (i.e. even when Ghostty is +not focused), specify this prefix. This prefix implies +all:. Note: this does not work in all environments; see the +additional notes below for more information.

  • +
  • unconsumed: - Do not consume the input. By default, +a keybind will consume the input, meaning that the associated encoding +(if any) will not be sent to the running program in the terminal. If you +wish to send the encoded value to the program, specify the +unconsumed: prefix before the entire keybind. For example: +unconsumed:ctrl+a=reload_config. global: and +all:-prefixed keybinds will always consume the input +regardless of this setting. Since they are not associated with a +specific terminal surface, they’re never encoded.

  • +
+

Keybind triggers are not unique per prefix combination. For example, +ctrl+a and global:ctrl+a are not two separate +keybinds. The keybind set later will overwrite the keybind set earlier. +In this case, the global: keybind will be used.

+

Multiple prefixes can be specified. For example, +global:unconsumed:ctrl+a=reload_config will make the +keybind global and not consume the input to reload the config.

+

Note: global: is only supported on macOS. On macOS, this +feature requires accessibility permissions to be granted to Ghostty. +When a global: keybind is specified and Ghostty is launched +or reloaded, Ghostty will attempt to request these permissions. If the +permissions are not granted, the keybind will not work. On macOS, you +can find these permissions in System Preferences -> Privacy & +Security -> Accessibility.

+
+
--window-padding-x
+
+

Horizontal window padding. This applies padding between the terminal +cells and the left and right window borders. The value is in points, +meaning that it will be scaled appropriately for screen DPI.

+

If this value is set too large, the screen will render nothing, +because the grid will be completely squished by the padding. It is up to +you as the user to pick a reasonable value. If you pick an unreasonable +value, a warning will appear in the logs.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+

To set a different left and right padding, specify two numerical +values separated by a comma. For example, +window-padding-x = 2,4 will set the left padding to 2 and +the right padding to 4. If you want to set both paddings to the same +value, you can use a single value. For example, +window-padding-x = 2 will set both paddings to 2.

+
+
--window-padding-y
+
+

Vertical window padding. This applies padding between the terminal +cells and the top and bottom window borders. The value is in points, +meaning that it will be scaled appropriately for screen DPI.

+

If this value is set too large, the screen will render nothing, +because the grid will be completely squished by the padding. It is up to +you as the user to pick a reasonable value. If you pick an unreasonable +value, a warning will appear in the logs.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+

To set a different top and bottom padding, specify two numerical +values separated by a comma. For example, +window-padding-y = 2,4 will set the top padding to 2 and +the bottom padding to 4. If you want to set both paddings to the same +value, you can use a single value. For example, +window-padding-y = 2 will set both paddings to 2.

+
+
--window-padding-balance
+
+

The viewport dimensions are usually not perfectly divisible by the +cell size. In this case, some extra padding on the end of a column and +the bottom of the final row may exist. If this is true, +then this extra padding is automatically balanced between all four edges +to minimize imbalance on one side. If this is false, the +top left grid cell will always hug the edge with zero padding other than +what may be specified with the other window-padding +options.

+

If other window-padding fields are set and this is +true, this will still apply. The other padding is applied +first and may affect how many grid cells actually exist, and this is +applied last in order to balance the padding given a certain viewport +size and grid cell size.

+
+
--window-padding-color
+
+

The color of the padding area of the window. Valid values are:

+
    +
  • background - The background color specified in +background.
  • +
  • extend - Extend the background color of the nearest +grid cell.
  • +
  • extend-always - Same as “extend” but always extends +without applying any of the heuristics that disable extending noted +below.
  • +
+

The “extend” value will be disabled in certain scenarios. On primary +screen applications (i.e. not something like Neovim), the color will not +be extended vertically if any of the following are true:

+
    +
  • The nearest row has any cells that have the default background +color. The thinking is that in this case, the default background color +looks fine as a padding color.
  • +
  • The nearest row is a prompt row (requires shell integration). The +thinking here is that prompts often contain powerline glyphs that do not +look good extended.
  • +
  • The nearest row contains a perfect fit powerline character. These +don’t look good extended.
  • +
+
+
--window-vsync
+
+

Synchronize rendering with the screen refresh rate. If true, this +will minimize tearing and align redraws with the screen but may cause +input latency. If false, this will maximize redraw frequency but may +cause tearing, and under heavy load may use more CPU and power.

+

This defaults to true because out-of-sync rendering on macOS can +cause kernel panics (macOS 14.4+) and performance issues for external +displays over some hardware such as DisplayLink. If you want to minimize +input latency, set this to false with the known aforementioned +risks.

+

Changing this value at runtime will only affect new terminals.

+

This setting is only supported currently on macOS.

+
+
--window-inherit-working-directory
+
+

If true, new windows and tabs will inherit the working directory of +the previously focused window. If no window was previously focused, the +default working directory will be used (the +working-directory option).

+
+
--window-inherit-font-size
+
+

If true, new windows and tabs will inherit the font size of the +previously focused window. If no window was previously focused, the +default font size will be used. If this is false, the default font size +specified in the configuration font-size will be used.

+
+
--window-decoration
+
+

Valid values:

+
    +
  • true
  • +
  • false - windows won’t have native decorations, +i.e. titlebar and borders. On macOS this also disables tabs and tab +overview.
  • +
+

The “toggle_window_decorations” keybind action can be used to create +a keybinding to toggle this setting at runtime.

+

Changing this configuration in your configuration and reloading will +only affect new windows. Existing windows will not be affected.

+

macOS: To hide the titlebar without removing the native window +borders or rounded corners, use +macos-titlebar-style = hidden instead.

+
+
--window-title-font-family
+
+

The font that will be used for the application’s window and tab +titles.

+

This is currently only supported on macOS.

+
+
--window-theme
+
+

The theme to use for the windows. Valid values:

+
    +
  • auto - Determine the theme based on the configured +terminal background color. This has no effect if the “theme” +configuration has separate light and dark themes. In that case, the +behavior of “auto” is equivalent to “system”.
  • +
  • system - Use the system theme.
  • +
  • light - Use the light theme regardless of system +theme.
  • +
  • dark - Use the dark theme regardless of system +theme.
  • +
  • ghostty - Use the background and foreground colors +specified in the Ghostty configuration. This is only supported on Linux +builds with Adwaita and gtk-adwaita enabled.
  • +
+

On macOS, if macos-titlebar-style is “tabs”, the window +theme will be automatically set based on the luminosity of the terminal +background color. This only applies to terminal windows. This setting +will still apply to non-terminal windows within Ghostty.

+

This is currently only supported on macOS and Linux.

+
+
--window-colorspace
+
+

The colorspace to use for the terminal window. The default is +srgb but this can also be set to display-p3 to +use the Display P3 colorspace.

+

Changing this value at runtime will only affect new windows.

+

This setting is only supported on macOS.

+
+
--window-height
+
+

The initial window size. This size is in terminal grid cells by +default. Both values must be set to take effect. If only one value is +set, it is ignored.

+

We don’t currently support specifying a size in pixels but a future +change can enable that. If this isn’t specified, the app runtime will +determine some default size.

+

Note that the window manager may put limits on the size or override +the size. For example, a tiling window manager may force the window to +be a certain size to fit within the grid. There is nothing Ghostty will +do about this, but it will make an effort.

+

Sizes larger than the screen size will be clamped to the screen size. +This can be used to create a maximized-by-default window size.

+

This will not affect new tabs, splits, or other nested terminal +elements. This only affects the initial window size of any new window. +Changing this value will not affect the size of the window after it has +been created. This is only used for the initial size.

+

BUG: On Linux with GTK, the calculated window size will not properly +take into account window decorations. As a result, the grid dimensions +will not exactly match this configuration. If window decorations are +disabled (see window-decorations), then this will work as expected.

+

Windows smaller than 10 wide by 4 high are not allowed.

+
+
+

--window-width

+
+
--window-save-state
+
+

Whether to enable saving and restoring window state. Window state +includes their position, size, tabs, splits, etc. Some window state +requires shell integration, such as preserving working directories. See +shell-integration for more information.

+

There are three valid values for this configuration:

+
    +
  • default will use the default system behavior. On +macOS, this will only save state if the application is forcibly +terminated or if it is configured systemwide via Settings.app.

  • +
  • never will never save window state.

  • +
  • always will always save window state whenever +Ghostty is exited.

  • +
+

If you change this value to never while Ghostty is not +running, the next Ghostty launch will NOT restore the window state.

+

If you change this value to default while Ghostty is not +running and the previous exit saved state, the next Ghostty launch will +still restore the window state. This is because Ghostty cannot know if +the previous exit was due to a forced save or not (macOS doesn’t provide +this information).

+

If you change this value so that window state is saved while Ghostty +is not running, the previous window state will not be restored because +Ghostty only saves state on exit if this is enabled.

+

The default value is default.

+

This is currently only supported on macOS. This has no effect on +Linux.

+
+
--window-step-resize
+
+

Resize the window in discrete increments of the focused surface’s +cell size. If this is disabled, surfaces are resized in pixel +increments. Currently only supported on macOS.

+
+
--window-new-tab-position
+
+

The position where new tabs are created. Valid values:

+
    +
  • current - Insert the new tab after the currently +focused tab, or at the end if there are no focused tabs.

  • +
  • end - Insert the new tab at the end of the tab +list.

  • +
+
+
--resize-overlay
+
+

This controls when resize overlays are shown. Resize overlays are a +transient popup that shows the size of the terminal while the surfaces +are being resized. The possible options are:

+
    +
  • always - Always show resize overlays.
  • +
  • never - Never show resize overlays.
  • +
  • after-first - The resize overlay will not appear when +the surface is first created, but will show up if the surface is +subsequently resized.
  • +
+

The default is after-first.

+
+
--resize-overlay-position
+
+

If resize overlays are enabled, this controls the position of the +overlay. The possible options are:

+
    +
  • center
  • +
  • top-left
  • +
  • top-center
  • +
  • top-right
  • +
  • bottom-left
  • +
  • bottom-center
  • +
  • bottom-right
  • +
+

The default is center.

+
+
--resize-overlay-duration
+
+

If resize overlays are enabled, this controls how long the overlay is +visible on the screen before it is hidden. The default is ¾ of a second +or 750 ms.

+

The duration is specified as a series of numbers followed by time +units. Whitespace is allowed between numbers and units. Each number and +unit will be added together to form the total duration.

+

The allowed time units are as follows:

+
    +
  • y - 365 SI days, or 8760 hours, or 31536000 seconds. No +adjustments are made for leap years or leap seconds.
  • +
  • d - one SI day, or 86400 seconds.
  • +
  • h - one hour, or 3600 seconds.
  • +
  • m - one minute, or 60 seconds.
  • +
  • s - one second.
  • +
  • ms - one millisecond, or 0.001 second.
  • +
  • us or µs - one microsecond, or 0.000001 +second.
  • +
  • ns - one nanosecond, or 0.000000001 second.
  • +
+

Examples: * 1h30m * 45s

+

Units can be repeated and will be added together. This means that +1h1h is equivalent to 2h. This is confusing +and should be avoided. A future update may disallow this.

+

The maximum value is +584y 49w 23h 34m 33s 709ms 551µs 615ns. Any value larger +than this will be clamped to the maximum value.

+
+
+

--focus-follows-mouse

+
+
--clipboard-read
+
+

Whether to allow programs running in the terminal to read/write to +the system clipboard (OSC 52, for googling). The default is to allow +clipboard reading after prompting the user and allow writing +unconditionally.

+

Valid values are:

+
    +
  • ask
  • +
  • allow
  • +
  • deny
  • +
+
+
+

--clipboard-write

+
+
--clipboard-trim-trailing-spaces
+
+

Trims trailing whitespace on data that is copied to the clipboard. +This does not affect data sent to the clipboard via +clipboard-write.

+
+
--clipboard-paste-protection
+
+

Require confirmation before pasting text that appears unsafe. This +helps prevent a “copy/paste attack” where a user may accidentally +execute unsafe commands by pasting text with newlines.

+
+
--clipboard-paste-bracketed-safe
+
+

If true, bracketed pastes will be considered safe. By default, +bracketed pastes are considered safe. “Bracketed” pastes are pastes +while the running program has bracketed paste mode enabled (a setting +set by the running program, not the terminal emulator).

+
+
--image-storage-limit
+
+

The total amount of bytes that can be used for image data (i.e. the +Kitty image protocol) per terminal screen. The maximum value is +4,294,967,295 (4GiB). The default is 320MB. If this is set to zero, then +all image protocols will be disabled.

+

This value is separate for primary and alternate screens so the +effective limit per surface is double.

+
+
--copy-on-select
+
+

Whether to automatically copy selected text to the clipboard. +true will prefer to copy to the selection clipboard if +supported by the OS, otherwise it will copy to the system clipboard.

+

The value clipboard will always copy text to the +selection clipboard (for supported systems) as well as the system +clipboard. This is sometimes a preferred behavior on Linux.

+

Middle-click paste will always use the selection clipboard on Linux +and the system clipboard on macOS. Middle-click paste is always enabled +even if this is false.

+

The default value is true on Linux and false on macOS. macOS copy on +select behavior is not typical for applications so it is disabled by +default. On Linux, this is a standard behavior so it is enabled by +default.

+
+
--click-repeat-interval
+
+

The time in milliseconds between clicks to consider a click a repeat +(double, triple, etc.) or an entirely new single click. A value of zero +will use a platform-specific default. The default on macOS is determined +by the OS settings. On every other platform it is 500ms.

+
+
--config-file
+
+

Additional configuration files to read. This configuration can be +repeated to read multiple configuration files. Configuration files +themselves can load more configuration files. Paths are relative to the +file containing the config-file directive. For command-line +arguments, paths are relative to the current working directory.

+

Prepend a ? character to the file path to suppress errors if the file +does not exist. If you want to include a file that begins with a literal +? character, surround the file path in double quotes (“).

+

Cycles are not allowed. If a cycle is detected, an error will be +logged and the configuration file will be ignored.

+

Configuration files are loaded after the configuration they’re +defined within in the order they’re defined. THIS IS A VERY +SUBTLE BUT IMPORTANT POINT. To put it another way: +configuration files do not take effect until after the entire +configuration is loaded. For example, in the configuration below:

+
config-file = "foo"
+a = 1
+

If “foo” contains a = 2, the final value of +a will be 2, because foo is loaded after the +configuration file that configures the nested config-file +value.

+
+
--config-default-files
+
+

When this is true, the default configuration file paths will be +loaded. The default configuration file paths are currently only the XDG +config path ($XDG_CONFIG_HOME/ghostty/config).

+

If this is false, the default configuration paths will not be loaded. +This is targeted directly at using Ghostty from the CLI in a way that +minimizes external effects.

+

This is a CLI-only configuration. Setting this in a configuration +file will have no effect. It is not an error, but it will not do +anything. This configuration can only be set via CLI arguments.

+
+
--confirm-close-surface
+
+

Confirms that a surface should be closed before closing it. This +defaults to true. If set to false, surfaces will close without any +confirmation.

+
+
--quit-after-last-window-closed
+
+

Whether or not to quit after the last surface is closed.

+

This defaults to false on macOS since that is standard +behavior for a macOS application. On Linux, this defaults to +true since that is generally expected behavior.

+

On Linux, if this is true, Ghostty can delay quitting +fully until a configurable amount of time has passed after the last +window is closed. See the documentation of +quit-after-last-window-closed-delay.

+
+
--quit-after-last-window-closed-delay
+
+

Controls how long Ghostty will stay running after the last open +surface has been closed. This only has an effect if +quit-after-last-window-closed is also set to +true.

+

The minimum value for this configuration is 1s. Any +values lower than this will be clamped to 1s.

+

The duration is specified as a series of numbers followed by time +units. Whitespace is allowed between numbers and units. Each number and +unit will be added together to form the total duration.

+

The allowed time units are as follows:

+
    +
  • y - 365 SI days, or 8760 hours, or 31536000 seconds. No +adjustments are made for leap years or leap seconds.
  • +
  • d - one SI day, or 86400 seconds.
  • +
  • h - one hour, or 3600 seconds.
  • +
  • m - one minute, or 60 seconds.
  • +
  • s - one second.
  • +
  • ms - one millisecond, or 0.001 second.
  • +
  • us or µs - one microsecond, or 0.000001 +second.
  • +
  • ns - one nanosecond, or 0.000000001 second.
  • +
+

Examples: * 1h30m * 45s

+

Units can be repeated and will be added together. This means that +1h1h is equivalent to 2h. This is confusing +and should be avoided. A future update may disallow this.

+

The maximum value is +584y 49w 23h 34m 33s 709ms 551µs 615ns. Any value larger +than this will be clamped to the maximum value.

+

By default quit-after-last-window-closed-delay is unset +and Ghostty will quit immediately after the last window is closed if +quit-after-last-window-closed is true.

+

Only implemented on Linux.

+
+
--initial-window
+
+

This controls whether an initial window is created when Ghostty is +run. Note that if quit-after-last-window-closed is +true and quit-after-last-window-closed-delay +is set, setting initial-window to false will +mean that Ghostty will quit after the configured delay if no window is +ever created. Only implemented on Linux and macOS.

+
+
--quick-terminal-position
+
+

The position of the “quick” terminal window. To learn more about the +quick terminal, see the documentation for the +toggle_quick_terminal binding action.

+

Valid values are:

+
    +
  • top - Terminal appears at the top of the screen.
  • +
  • bottom - Terminal appears at the bottom of the +screen.
  • +
  • left - Terminal appears at the left of the screen.
  • +
  • right - Terminal appears at the right of the +screen.
  • +
+

Changing this configuration requires restarting Ghostty +completely.

+
+
--quick-terminal-screen
+
+

The screen where the quick terminal should show up.

+

Valid values are:

+
    +
  • main - The screen that the operating system +recommends as the main screen. On macOS, this is the screen that is +currently receiving keyboard input. This screen is defined by the +operating system and not chosen by Ghostty.

  • +
  • mouse - The screen that the mouse is currently +hovered over.

  • +
  • macos-menu-bar - The screen that contains the macOS +menu bar as set in the display settings on macOS. This is a bit +confusing because every screen on macOS has a menu bar, but this is the +screen that contains the primary menu bar.

  • +
+

The default value is main because this is the +recommended screen by the operating system.

+
+
--quick-terminal-animation-duration
+
+

Duration (in seconds) of the quick terminal enter and exit animation. +Set it to 0 to disable animation completely. This can be changed at +runtime.

+
+
--shell-integration
+
+

Whether to enable shell integration auto-injection or not. Shell +integration greatly enhances the terminal experience by enabling a +number of features:

+
    +
  • Working directory reporting so new tabs, splits inherit the +previous terminal’s working directory.

  • +
  • Prompt marking that enables the “jump_to_prompt” +keybinding.

  • +
  • If you’re sitting at a prompt, closing a terminal will not ask +for confirmation.

  • +
  • Resizing the window with a complex prompt usually paints much +better.

  • +
+

Allowable values are:

+
    +
  • none - Do not do any automatic injection. You can +still manually configure your shell to enable the integration.

  • +
  • detect - Detect the shell based on the +filename.

  • +
  • bash, elvish, fish, +zsh - Use this specific shell injection scheme.

  • +
+

The default value is detect.

+
+
--shell-integration-features
+
+

Shell integration features to enable if shell integration itself is +enabled. The format of this is a list of features to enable separated by +commas. If you prefix a feature with no- then it is +disabled. If you omit a feature, its default value is used, so you must +explicitly disable features you don’t want. You can also use +true or false to turn all features on or +off.

+

Available features:

+
    +
  • cursor - Set the cursor to a blinking bar at the +prompt.

  • +
  • sudo - Set sudo wrapper to preserve +terminfo.

  • +
  • title - Set the window title via shell +integration.

  • +
+

Example: cursor, no-cursor, +sudo, no-sudo, title, +no-title

+
+
--osc-color-report-format
+
+

Sets the reporting format for OSC sequences that request color +information. Ghostty currently supports OSC 10 (foreground), OSC 11 +(background), and OSC 4 (256 color palette) queries, and by default the +reported values are scaled-up RGB values, where each component are 16 +bits. This is how most terminals report these values. However, some +legacy applications may require 8-bit, unscaled, components. We also +support turning off reporting altogether. The components are lowercase +hex values.

+

Allowable values are:

+
    +
  • none - OSC 4/10/11 queries receive no reply

  • +
  • 8-bit - Color components are return unscaled, +i.e. rr/gg/bb

  • +
  • 16-bit - Color components are returned scaled, +e.g. rrrr/gggg/bbbb

  • +
+

The default value is 16-bit.

+
+
--vt-kam-allowed
+
+

If true, allows the “KAM” mode (ANSI mode 2) to be used within the +terminal. KAM disables keyboard input at the request of the application. +This is not a common feature and is not recommended to be enabled. This +will not be documented further because if you know you need KAM, you +know. If you don’t know if you need KAM, you don’t need it.

+
+
--custom-shader
+
+

Custom shaders to run after the default shaders. This is a file path +to a GLSL-syntax shader for all platforms.

+

Warning: Invalid shaders can cause Ghostty to become unusable such as +by causing the window to be completely black. If this happens, you can +unset this configuration to disable the shader.

+

On Linux, this requires OpenGL 4.2. Ghostty typically only requires +OpenGL 3.3, but custom shaders push that requirement up to 4.2.

+

The shader API is identical to the Shadertoy API: you specify a +mainImage function and the available uniforms match +Shadertoy. The iChannel0 uniform is a texture containing the rendered +terminal screen.

+

If the shader fails to compile, the shader will be ignored. Any +errors related to shader compilation will not show up as configuration +errors and only show up in the log, since shader compilation happens +after configuration loading on the dedicated render thread. For +interactive development, use shadertoy.com.

+

This can be repeated multiple times to load multiple shaders. The +shaders will be run in the order they are specified.

+

Changing this value at runtime and reloading the configuration will +only affect new windows, tabs, and splits.

+
+
--custom-shader-animation
+
+

If true (default), the focused terminal surface will run +an animation loop when custom shaders are used. This uses slightly more +CPU (generally less than 10%) but allows the shader to animate. This +only runs if there are custom shaders and the terminal is focused.

+

If this is set to false, the terminal and custom shader +will only render when the terminal is updated. This is more efficient +but the shader will not animate.

+

This can also be set to always, which will always run +the animation loop regardless of whether the terminal is focused or not. +The animation loop will still only run when custom shaders are used. +Note that this will use more CPU per terminal surface and can become +quite expensive depending on the shader and your terminal usage.

+

This value can be changed at runtime and will affect all currently +open terminals.

+
+
--macos-non-native-fullscreen
+
+

If anything other than false, fullscreen mode on macOS will not use +the native fullscreen, but make the window fullscreen without animations +and using a new space. It’s faster than the native fullscreen mode since +it doesn’t use animations.

+

Important: tabs DO NOT WORK in this mode. Non-native fullscreen +removes the titlebar and macOS native tabs require the titlebar. If you +use tabs, you should not use this mode.

+

If you fullscreen a window with tabs, the currently focused tab will +become fullscreen while the others will remain in a separate window in +the background. You can switch to that window using normal +window-switching keybindings such as command+tilde. When you exit +fullscreen, the window will return to the tabbed state it was in +before.

+

Allowable values are:

+
    +
  • visible-menu - Use non-native macOS fullscreen, keep +the menu bar visible
  • +
  • true - Use non-native macOS fullscreen, hide the menu +bar
  • +
  • false - Use native macOS fullscreen
  • +
+

Changing this option at runtime works, but will only apply to the +next time the window is made fullscreen. If a window is already +fullscreen, it will retain the previous setting until fullscreen is +exited.

+
+
--macos-titlebar-style
+
+

The style of the macOS titlebar. Available values are: “native”, +“transparent”, “tabs”, and “hidden”.

+

The “native” style uses the native macOS titlebar with zero +customization. The titlebar will match your window theme (see +window-theme).

+

The “transparent” style is the same as “native” but the titlebar will +be transparent and allow your window background color to come through. +This makes a more seamless window appearance but looks a little less +typical for a macOS application and may not work well with all +themes.

+

The “transparent” style will also update in real-time to dynamic +changes to the window background color, i.e. via OSC 11. To make this +more aesthetically pleasing, this only happens if the terminal is a +window, tab, or split that borders the top of the window. This avoids a +disjointed appearance where the titlebar color changes but all the +topmost terminals don’t match.

+

The “tabs” style is a completely custom titlebar that integrates the +tab bar into the titlebar. This titlebar always matches the background +color of the terminal. There are some limitations to this style: On +macOS 13 and below, saved window state will not restore tabs correctly. +macOS 14 does not have this issue and any other macOS version has not +been tested.

+

The “hidden” style hides the titlebar. Unlike +window-decoration = false, however, it does not remove the +frame from the window or cause it to have squared corners. Changing to +or from this option at run-time may affect existing windows in buggy +ways. The top titlebar area of the window will continue to drag the +window around and you will not be able to use the mouse for terminal +events in this space.

+

The default value is “transparent”. This is an opinionated choice but +its one I think is the most aesthetically pleasing and works in most +cases.

+

Changing this option at runtime only applies to new windows.

+
+
--macos-titlebar-proxy-icon
+
+

Whether the proxy icon in the macOS titlebar is visible. The proxy +icon is the icon that represents the folder of the current working +directory. You can see this very clearly in the macOS built-in +Terminal.app titlebar.

+

The proxy icon is only visible with the native macOS titlebar +style.

+

Valid values are:

+
    +
  • visible - Show the proxy icon.
  • +
  • hidden - Hide the proxy icon.
  • +
+

The default value is visible.

+

This setting can be changed at runtime and will affect all currently +open windows but only after their working directory changes again. +Therefore, to make this work after changing the setting, you must +usually cd to a different directory, open a different file +in an editor, etc.

+
+
--macos-option-as-alt
+
+

macOS doesn’t have a distinct “alt” key and instead has the “option” +key which behaves slightly differently. On macOS by default, the option +key plus a character will sometimes produces a Unicode character. For +example, on US standard layouts option-b produces “∫”. This may be +undesirable if you want to use “option” as an “alt” key for keybindings +in terminal programs or shells.

+

This configuration lets you change the behavior so that option is +treated as alt.

+

The default behavior (unset) will depend on your active keyboard +layout. If your keyboard layout is one of the keyboard layouts listed +below, then the default value is “true”. Otherwise, the default value is +“false”. Keyboard layouts with a default value of “true” are:

+
    +
  • U.S. Standard
  • +
  • U.S. International
  • +
+

Note that if an Option-sequence doesn’t produce a printable +character, it will be treated as Alt regardless of this +setting. (i.e. alt+ctrl+a).

+

Explicit values that can be set:

+

If true, the Option key will be treated as +Alt. This makes terminal sequences expecting Alt to +work properly, but will break Unicode input sequences on macOS if you +use them via the Alt key.

+

You may set this to false to restore the macOS +Alt key unicode sequences but this will break terminal +sequences expecting Alt to work.

+

The values left or right enable this for +the left or right Option key, respectively.

+

This does not work with GLFW builds.

+
+
--macos-window-shadow
+
+

Whether to enable the macOS window shadow. The default value is true. +With some window managers and window transparency settings, you may find +false more visually appealing.

+
+
--macos-auto-secure-input
+
+

If true, Ghostty on macOS will automatically enable the “Secure +Input” feature when it detects that a password prompt is being +displayed.

+

“Secure Input” is a macOS security feature that prevents applications +from reading keyboard events. This can always be enabled manually using +the Ghostty > Secure Keyboard Entry menu item.

+

Note that automatic password prompt detection is based on heuristics +and may not always work as expected. Specifically, it does not work over +SSH connections, but there may be other cases where it also doesn’t +work.

+

A reason to disable this feature is if you find that it is +interfering with legitimate accessibility software (or software that +uses the accessibility APIs), since secure input prevents any +application from reading keyboard events.

+
+
--macos-secure-input-indication
+
+

If true, Ghostty will show a graphical indication when secure input +is enabled. This indication is generally recommended to know when secure +input is enabled.

+

Normally, secure input is only active when a password prompt is +displayed or it is manually (and typically temporarily) enabled. +However, if you always have secure input enabled, the indication can be +distracting and you may want to disable it.

+
+
--linux-cgroup
+
+

Put every surface (tab, split, window) into a dedicated Linux +cgroup.

+

This makes it so that resource management can be done on a +per-surface granularity. For example, if a shell program is using too +much memory, only that shell will be killed by the oom monitor instead +of the entire Ghostty process. Similarly, if a shell program is using +too much CPU, only that surface will be CPU-throttled.

+

This will cause startup times to be slower (a hundred milliseconds or +so), so the default value is “single-instance.” In single-instance mode, +only one instance of Ghostty is running (see gtk-single-instance) so the +startup time is a one-time cost. Additionally, single instance Ghostty +is much more likely to have many windows, tabs, etc. so cgroup isolation +is a big benefit.

+

This feature requires systemd. If systemd is unavailable, cgroup +initialization will fail. By default, this will not prevent Ghostty from +working (see linux-cgroup-hard-fail).

+

Valid values are:

+
    +
  • never - Never use cgroups.
  • +
  • always - Always use cgroups.
  • +
  • single-instance - Enable cgroups only for Ghostty +instances launched as single-instance applications (see +gtk-single-instance).
  • +
+
+
--linux-cgroup-memory-limit
+
+

Memory limit for any individual terminal process (tab, split, window, +etc.) in bytes. If this is unset then no memory limit will be set.

+

Note that this sets the “memory.high” configuration for the memory +controller, which is a soft limit. You should configure something like +systemd-oom to handle killing processes that have too much memory +pressure.

+
+
--linux-cgroup-processes-limit
+
+

Number of processes limit for any individual terminal process (tab, +split, window, etc.). If this is unset then no limit will be set.

+

Note that this sets the “pids.max” configuration for the process +number controller, which is a hard limit.

+
+
--linux-cgroup-hard-fail
+
+

If this is false, then any cgroup initialization (for linux-cgroup) +will be allowed to fail and the failure is ignored. This is useful if +you view cgroup isolation as a “nice to have” and not a critical +resource management feature, because Ghostty startup will not fail if +cgroup APIs fail.

+

If this is true, then any cgroup initialization failure will cause +Ghostty to exit or new surfaces to not be created.

+

Note: This currently only affects cgroup initialization. Subprocesses +must always be able to move themselves into an isolated cgroup.

+
+
--gtk-single-instance
+
+

If true, the Ghostty GTK application will run in +single-instance mode: each new ghostty process launched +will result in a new window if there is already a running process.

+

If false, each new ghostty process will launch a +separate application.

+

The default value is detect which will default to +true if Ghostty detects that it was launched from the +.desktop file such as an app launcher (like Gnome Shell) or +by D-Bus activation. If Ghostty is launched from the command line, it +will default to false.

+

Note that debug builds of Ghostty have a separate single-instance ID +so you can test single instance without conflicting with release +builds.

+
+
--gtk-titlebar
+
+

When enabled, the full GTK titlebar is displayed instead of your +window manager’s simple titlebar. The behavior of this option will vary +with your window manager.

+

This option does nothing when window-decoration is false +or when running under macOS.

+

Changing this value at runtime and reloading the configuration will +only affect new windows.

+
+
--gtk-tabs-location
+
+

Determines the side of the screen that the GTK tab bar will stick to. +Top, bottom, left, right, and hidden are supported. The default is +top.

+

If this option has value left or right when +using Adwaita, it falls back to top. hidden, +meaning that tabs don’t exist, is not supported without using Adwaita, +falling back to top.

+

When hidden is set and Adwaita is enabled, a tab button +displaying the number of tabs will appear in the title bar. It has the +ability to open a tab overview for displaying tabs. Alternatively, you +can use the toggle_tab_overview action in a keybind if your +window doesn’t have a title bar, or you can switch tabs with +keybinds.

+
+
--adw-toolbar-style
+
+

Determines the appearance of the top and bottom bars when using the +Adwaita tab bar. This requires gtk-adwaita to be enabled +(it is by default).

+

Valid values are:

+
    +
  • flat - Top and bottom bars are flat with the terminal +window.
  • +
  • raised - Top and bottom bars cast a shadow on the +terminal area.
  • +
  • raised-border - Similar to raised but the +shadow is replaced with a more subtle border.
  • +
+

Changing this value at runtime will only affect new windows.

+
+
--gtk-wide-tabs
+
+

If true (default), then the Ghostty GTK tabs will be +“wide.” Wide tabs are the new typical Gnome style where tabs fill their +available space. If you set this to false then tabs will +only take up space they need, which is the old style.

+
+
--gtk-adwaita
+
+

If true (default), Ghostty will enable Adwaita theme +support. This will make window-theme work properly and will +also allow Ghostty to properly respond to system theme changes, +light/dark mode changing, etc. This requires a GTK4 desktop with a GTK4 +theme.

+

If you are running GTK3 or have a GTK3 theme, you may have to set +this to false to get your theme picked up properly. Having this set to +true with GTK3 should not cause any problems, but it may not work +exactly as expected.

+

This configuration only has an effect if Ghostty was built with +Adwaita support.

+
+
--desktop-notifications
+
+

If true (default), applications running in the terminal +can show desktop notifications using certain escape sequences such as +OSC 9 or OSC 777.

+
+
--bold-is-bright
+
+

If true, the bold text will use the bright color +palette.

+
+
--term
+
+

This will be used to set the TERM environment variable. +HACK: We set this with an xterm prefix because vim uses +that to enable key protocols (specifically this will enable +modifyOtherKeys), among other features. An option exists in +vim to modify this: :set keyprotocol=ghostty:kitty, however +a bug in the implementation prevents it from working properly. +https://github.com/vim/vim/pull/13211 fixes this.

+
+
--enquiry-response
+
+

String to send when we receive ENQ (0x05) +from the command that we are running. Defaults to an empty string if not +set.

+
+
--auto-update
+
+

Control the auto-update functionality of Ghostty. This is only +supported on macOS currently, since Linux builds are distributed via +package managers that are not centrally controlled by Ghostty.

+

Checking or downloading an update does not send any information to +the project beyond standard network information mandated by the +underlying protocols. To put it another way: Ghostty doesn’t explicitly +add any tracking to the update process. The update process works by +downloading information about the latest version and comparing it +client-side to the current version.

+

Valid values are:

+
    +
  • off - Disable auto-updates.
  • +
  • check - Check for updates and notify the user if an +update is available, but do not automatically download or install the +update.
  • +
  • download - Check for updates, automatically download +the update, notify the user, but do not automatically install the +update.
  • +
+

The default value is check.

+

Changing this value at runtime works after a small delay.

+
+
--auto-update-channel
+
+

The release channel to use for auto-updates.

+

The default value of this matches the release channel of the +currently running Ghostty version. If you download a pre-release version +of Ghostty then this will be set to tip and you will +receive pre-release updates. If you download a stable version of Ghostty +then this will be set to stable and you will receive stable +updates.

+

Valid values are:

+
    +
  • stable - Stable, tagged releases such as “1.0.0”.
  • +
  • tip - Pre-release versions generated from each commit +to the main branch. This is the version that was in use during private +beta testing by thousands of people. It is generally stable but will +likely have more bugs than the stable channel.
  • +
+

Changing this configuration requires a full restart of Ghostty to +take effect.

+

This only works on macOS since only macOS has an auto-update +feature.

+
+
+

FILES

+
+
$XDG_CONFIG_HOME/ghostty/config
+
+

Location of the default configuration file.

+
+
$LOCALAPPDATA/ghostty/config
+
+

On Windows, if $XDG_CONFIG_HOME is not set, +$LOCALAPPDATA will be searched for configuration files.

+
+
+

ENVIRONMENT

+
+
TERM
+
+

Defaults to xterm-ghostty. Can be configured with the +term configuration option.

+
+
GHOSTTY_RESOURCES_DIR
+
+

Where the Ghostty resources can be found.

+
+
XDG_CONFIG_HOME
+
+

Default location for configuration files.

+
+
LOCALAPPDATA
+
+

WINDOWS ONLY: alternate location to search for +configuration files.

+
+
+

BUGS

+

See GitHub issues: https://github.com/ghostty-org/ghostty/issues

+

AUTHOR

+

Mitchell Hashimoto m@mitchellh.com

+

SEE ALSO

+

ghostty(5)

+ + diff --git a/bin/share/ghostty/doc/ghostty.1.md b/bin/share/ghostty/doc/ghostty.1.md new file mode 100644 index 0000000..277274d --- /dev/null +++ b/bin/share/ghostty/doc/ghostty.1.md @@ -0,0 +1,2291 @@ +% GHOSTTY(1) Version 0.1.0-main+dd6460bc | Ghostty terminal emulator + +# NAME + +**ghostty** - Ghostty terminal emulator + +# DESCRIPTION + +Ghostty is a cross-platform, GPU-accelerated terminal emulator that aims to push +the boundaries of what is possible with a terminal emulator by exposing modern, +opt-in features that enable CLI tool developers to build more feature rich, +interactive applications. + +There are a number of excellent terminal emulator options that exist today. +The unique goal of Ghostty is to have a platform for experimenting with modern, +optional, non-standards-compliant features to enhance the capabilities of CLI +applications. We aim to be the best in this category, and competitive in the +rest. + +While aiming for this ambitious goal, Ghostty is a fully standards compliant +terminal emulator that aims to remain compatible with all existing shells and +software. You can use this as a drop-in replacement for your existing terminal +emulator. + +# COMMAND LINE ACTIONS + +**`--version`** + +: The `version` command is used to display information about Ghostty. + + +**`--help`** + +: The `help` command shows general help about Ghostty. You can also specify + `--help` or `-h` along with any action such as `+list-themes` to see help + for a specific action. + + +**`+list-fonts`** + +: The `list-fonts` command is used to list all the available fonts for + Ghostty. This uses the exact same font discovery mechanism Ghostty uses to + find fonts to use. + + When executed with no arguments, this will list all available fonts, sorted + by family name, then font name. If a family name is given with `--family`, + the sorting will be disabled and the results instead will be shown in the + same priority order Ghostty would use to pick a font. + + The `--family` argument can be used to filter results to a specific family. + The family handling is identical to the `font-family` set of Ghostty + configuration values, so this can be used to debug why your desired font may + not be loading. + + The `--bold` and `--italic` arguments can be used to filter results to + specific styles. It is not guaranteed that only those styles are returned, + it will just prioritize fonts that match those styles. + + +**`+list-keybinds`** + +: The `list-keybinds` command is used to list all the available keybinds for + Ghostty. + + When executed without any arguments this will list the current keybinds + loaded by the config file. If no config file is found or there aren't any + changes to the keybinds it will print out the default ones configured for + Ghostty + + The `--default` argument will print out all the default keybinds configured + for Ghostty + + The `--plain` flag will disable formatting and make the output more + friendly for Unix tooling. This is default when not printing to a tty. + + +**`+list-themes`** + +: The `list-themes` command is used to preview or list all the available + themes for Ghostty. + + If this command is run from a TTY, a TUI preview of the themes will be + shown. While in the preview, `F1` will bring up a help screen and `ESC` will + exit the preview. Other keys that can be used to navigate the preview are + listed in the help screen. + + If this command is not run from a TTY, or the output is piped to another + command, a plain list of theme names will be printed to the screen. A plain + list can be forced using the `--plain` CLI flag. + + Two different directories will be searched for themes. + + The first directory is the `themes` subdirectory of your Ghostty + configuration directory. This is `$XDG_CONFIG_DIR/ghostty/themes` or + `~/.config/ghostty/themes`. + + The second directory is the `themes` subdirectory of the Ghostty resources + directory. Ghostty ships with a multitude of themes that will be installed + into this directory. On macOS, this directory is the `Ghostty.app/Contents/ + Resources/ghostty/themes`. On Linux, this directory is the `share/ghostty/ + themes` (wherever you installed the Ghostty "share" directory). If you're + running Ghostty from the source, this is the `zig-out/share/ghostty/themes` + directory. + + You can also set the `GHOSTTY_RESOURCES_DIR` environment variable to point + to the resources directory. + + Flags: + + * `--path`: Show the full path to the theme. + * `--plain`: Force a plain listing of themes. + + +**`+list-colors`** + +: The `list-colors` command is used to list all the named RGB colors in + Ghostty. + + +**`+list-actions`** + +: The `list-actions` command is used to list all the available keybind actions + for Ghostty. + + The `--docs` argument will print out the documentation for each action. + + +**`+show-config`** + +: The `show-config` command shows the current configuration in a valid Ghostty + configuration file format. + + When executed without any arguments this will output the current + configuration that is different from the default configuration. If you're + using the default configuration this will output nothing. + + If you are a new user and want to see all available options with + documentation, run `ghostty +show-config --default --docs`. + + The output is not in any specific order, but the order should be consistent + between runs. The output is not guaranteed to be exactly match the input + configuration files, but it will result in the same behavior. Comments, + whitespace, and other formatting is not preserved from user configuration + files. + + Flags: + + * `--default`: Show the default configuration instead of loading + the user configuration. + + * `--changes-only`: Only show the options that have been changed + from the default. This has no effect if `--default` is specified. + + * `--docs`: Print the documentation above each option as a comment, + This is very noisy but is very useful to learn about available + options, especially paired with `--default`. + + +**`+validate-config`** + +: The `validate-config` command is used to validate a Ghostty config file. + + When executed without any arguments, this will load the config from the default location. + + The `--config-file` argument can be passed to validate a specific target config + file in a non-default location. + + +**`+crash-report`** + +: The `crash-report` command is used to inspect and send crash reports. + + When executed without any arguments, this will list existing crash reports. + + This command currently only supports listing crash reports. Viewing + and sending crash reports is unimplemented and will be added in the future. + + + +# CONFIGURATION OPTIONS + +**`--font-family`** + +: The font families to use. + + You can generate the list of valid values using the CLI: + + ghostty +list-fonts + + This configuration can be repeated multiple times to specify preferred + fallback fonts when the requested codepoint is not available in the primary + font. This is particularly useful for multiple languages, symbolic fonts, + etc. + + Notes on emoji specifically: On macOS, Ghostty by default will always use + Apple Color Emoji and on Linux will always use Noto Emoji. You can + override this behavior by specifying a font family here that contains + emoji glyphs. + + The specific styles (bold, italic, bold italic) do not need to be + explicitly set. If a style is not set, then the regular style (font-family) + will be searched for stylistic variants. If a stylistic variant is not + found, Ghostty will use the regular style. This prevents falling back to a + different font family just to get a style such as bold. This also applies + if you explicitly specify a font family for a style. For example, if you + set `font-family-bold = FooBar` and "FooBar" cannot be found, Ghostty will + use whatever font is set for `font-family` for the bold style. + + Finally, some styles may be synthesized if they are not supported. + For example, if a font does not have an italic style and no alternative + italic font is specified, Ghostty will synthesize an italic style by + applying a slant to the regular style. If you want to disable these + synthesized styles then you can use the `font-style` configurations + as documented below. + + You can disable styles completely by using the `font-style` set of + configurations. See the documentation for `font-style` for more information. + + If you want to overwrite a previous set value rather than append a fallback, + specify the value as `""` (empty string) to reset the list and then set the + new values. For example: + + font-family = "" + font-family = "My Favorite Font" + + Setting any of these as CLI arguments will automatically clear the + values set in configuration files so you don't need to specify + `--font-family=""` before setting a new value. You only need to specify + this within config files if you want to clear previously set values in + configuration files or on the CLI if you want to clear values set on the + CLI. + + Changing this configuration at runtime will only affect new terminals, i.e. + new windows, tabs, etc. + + +**`--font-family-bold`** + +**`--font-family-italic`** + +**`--font-family-bold-italic`** + +**`--font-style`** + +: The named font style to use for each of the requested terminal font styles. + This looks up the style based on the font style string advertised by the + font itself. For example, "Iosevka Heavy" has a style of "Heavy". + + You can also use these fields to completely disable a font style. If you set + the value of the configuration below to literal `false` then that font style + will be disabled. If the running program in the terminal requests a disabled + font style, the regular font style will be used instead. + + These are only valid if its corresponding font-family is also specified. If + no font-family is specified, then the font-style is ignored unless you're + disabling the font style. + + +**`--font-style-bold`** + +**`--font-style-italic`** + +**`--font-style-bold-italic`** + +**`--font-synthetic-style`** + +: Control whether Ghostty should synthesize a style if the requested style is + not available in the specified font-family. + + Ghostty can synthesize bold, italic, and bold italic styles if the font + does not have a specific style. For bold, this is done by drawing an + outline around the glyph of varying thickness. For italic, this is done by + applying a slant to the glyph. For bold italic, both of these are applied. + + Synthetic styles are not perfect and will generally not look as good + as a font that has the style natively. However, they are useful to + provide styled text when the font does not have the style. + + Set this to "false" or "true" to disable or enable synthetic styles + completely. You can disable specific styles using "no-bold", "no-italic", + and "no-bold-italic". You can disable multiple styles by separating them + with a comma. For example, "no-bold,no-italic". + + Available style keys are: `bold`, `italic`, `bold-italic`. + + If synthetic styles are disabled, then the regular style will be used + instead if the requested style is not available. If the font has the + requested style, then the font will be used as-is since the style is + not synthetic. + + Warning: An easy mistake is to disable `bold` or `italic` but not + `bold-italic`. Disabling only `bold` or `italic` will NOT disable either + in the `bold-italic` style. If you want to disable `bold-italic`, you must + explicitly disable it. You cannot partially disable `bold-italic`. + + By default, synthetic styles are enabled. + + +**`--font-feature`** + +: Apply a font feature. This can be repeated multiple times to enable multiple + font features. You can NOT set multiple font features with a single value + (yet). + + The font feature will apply to all fonts rendered by Ghostty. A future + enhancement will allow targeting specific faces. + + A valid value is the name of a feature. Prefix the feature with a `-` to + explicitly disable it. Example: `ss20` or `-ss20`. + + To disable programming ligatures, use `-calt` since this is the typical + feature name for programming ligatures. To look into what font features + your font has and what they do, use a font inspection tool such as + [fontdrop.info](https://fontdrop.info). + + To generally disable most ligatures, use `-calt`, `-liga`, and `-dlig` (as + separate repetitive entries in your config). + + +**`--font-size`** + +: Font size in points. This value can be a non-integer and the nearest integer + pixel size will be selected. If you have a high dpi display where 1pt = 2px + then you can get an odd numbered pixel size by specifying a half point. + + For example, 13.5pt @ 2px/pt = 27px + + Changing this configuration at runtime will only affect new terminals, + i.e. new windows, tabs, etc. Note that you may still not see the change + depending on your `window-inherit-font-size` setting. If that setting is + true, only the first window will be affected by this change since all + subsequent windows will inherit the font size of the previous window. + + +**`--font-variation`** + +: A repeatable configuration to set one or more font variations values for + a variable font. A variable font is a single font, usually with a filename + ending in `-VF.ttf` or `-VF.otf` that contains one or more configurable axes + for things such as weight, slant, etc. Not all fonts support variations; + only fonts that explicitly state they are variable fonts will work. + + The format of this is `id=value` where `id` is the axis identifier. An axis + identifier is always a 4 character string, such as `wght`. To get the list + of supported axes, look at your font documentation or use a font inspection + tool. + + Invalid ids and values are usually ignored. For example, if a font only + supports weights from 100 to 700, setting `wght=800` will do nothing (it + will not be clamped to 700). You must consult your font's documentation to + see what values are supported. + + Common axes are: `wght` (weight), `slnt` (slant), `ital` (italic), `opsz` + (optical size), `wdth` (width), `GRAD` (gradient), etc. + + +**`--font-variation-bold`** + +**`--font-variation-italic`** + +**`--font-variation-bold-italic`** + +**`--font-codepoint-map`** + +: Force one or a range of Unicode codepoints to map to a specific named font. + This is useful if you want to support special symbols or if you want to use + specific glyphs that render better for your specific font. + + The syntax is `codepoint=fontname` where `codepoint` is either a single + codepoint or a range. Codepoints must be specified as full Unicode + hex values, such as `U+ABCD`. Codepoints ranges are specified as + `U+ABCD-U+DEFG`. You can specify multiple ranges for the same font separated + by commas, such as `U+ABCD-U+DEFG,U+1234-U+5678=fontname`. The font name is + the same value as you would use for `font-family`. + + This configuration can be repeated multiple times to specify multiple + codepoint mappings. + + Changing this configuration at runtime will only affect new terminals, + i.e. new windows, tabs, etc. + + +**`--font-thicken`** + +: Draw fonts with a thicker stroke, if supported. This is only supported + currently on macOS. + + +**`--adjust-cell-width`** + +: All of the configurations behavior adjust various metrics determined by the + font. The values can be integers (1, -1, etc.) or a percentage (20%, -15%, + etc.). In each case, the values represent the amount to change the original + value. + + For example, a value of `1` increases the value by 1; it does not set it to + literally 1. A value of `20%` increases the value by 20%. And so on. + + There is little to no validation on these values so the wrong values (i.e. + `-100%`) can cause the terminal to be unusable. Use with caution and reason. + + Some values are clamped to minimum or maximum values. This can make it + appear that certain values are ignored. For example, the underline position + is clamped to the height of a cell. If you set the underline position so + high that it extends beyond the bottom of the cell size, it will be clamped + to the bottom of the cell. + + `adjust-cell-height` has some additional behaviors to describe: + + * The font will be centered vertically in the cell. + + * The cursor will remain the same size as the font. + + * Powerline glyphs will be adjusted along with the cell height so + that things like status lines continue to look aligned. + + +**`--adjust-cell-height`** + +**`--adjust-font-baseline`** + +: Distance in pixels from the bottom of the cell to the text baseline. + Increase to move baseline UP, decrease to move baseline DOWN. + + +**`--adjust-underline-position`** + +: Distance in pixels from the top of the cell to the top of the underline. + Increase to move underline DOWN, decrease to move underline UP. + + +**`--adjust-underline-thickness`** + +: Thickness in pixels of the underline. + + +**`--adjust-strikethrough-position`** + +: Distance in pixels from the top of the cell to the top of the strikethrough. + Increase to move strikethrough DOWN, decrease to move underline UP. + + +**`--adjust-strikethrough-thickness`** + +: Thickness in pixels of the strikethrough. + + +**`--adjust-overline-position`** + +: Distance in pixels from the top of the cell to the top of the overline. + Increase to move overline DOWN, decrease to move underline UP. + + +**`--adjust-overline-thickness`** + +: Thickness in pixels of the overline. + + +**`--adjust-cursor-thickness`** + +: Thickness in pixels of the bar cursor and outlined rect cursor. + + +**`--adjust-box-thickness`** + +: Thickness in pixels of box drawing characters. + + +**`--grapheme-width-method`** + +: The method to use for calculating the cell width of a grapheme cluster. + The default value is `unicode` which uses the Unicode standard to determine + grapheme width. This results in correct grapheme width but may result in + cursor-desync issues with some programs (such as shells) that may use a + legacy method such as `wcswidth`. + + Valid values are: + + * `legacy` - Use a legacy method to determine grapheme width, such as + wcswidth This maximizes compatibility with legacy programs but may result + in incorrect grapheme width for certain graphemes such as skin-tone + emoji, non-English characters, etc. + + This is called "legacy" and not something more specific because the + behavior is undefined and we want to retain the ability to modify it. + For example, we may or may not use libc `wcswidth` now or in the future. + + * `unicode` - Use the Unicode standard to determine grapheme width. + + If a running program explicitly enables terminal mode 2027, then `unicode` + width will be forced regardless of this configuration. When mode 2027 is + reset, this configuration will be used again. + + This configuration can be changed at runtime but will not affect existing + terminals. Only new terminals will use the new configuration. + + +**`--freetype-load-flags`** + +: FreeType load flags to enable. The format of this is a list of flags to + enable separated by commas. If you prefix a flag with `no-` then it is + disabled. If you omit a flag, it's default value is used, so you must + explicitly disable flags you don't want. You can also use `true` or `false` + to turn all flags on or off. + + This configuration only applies to Ghostty builds that use FreeType. + This is usually the case only for Linux builds. macOS uses CoreText + and does not have an equivalent configuration. + + Available flags: + + * `hinting` - Enable or disable hinting, enabled by default. + * `force-autohint` - Use the freetype auto-hinter rather than the + font's native hinter. Enabled by default. + * `monochrome` - Instructs renderer to use 1-bit monochrome + rendering. This option doesn't impact the hinter. + Enabled by default. + * `autohint` - Use the freetype auto-hinter. Enabled by default. + + Example: `hinting`, `no-hinting`, `force-autohint`, `no-force-autohint` + + +**`--theme`** + +: A theme to use. This can be a built-in theme name, a custom theme + name, or an absolute path to a custom theme file. Ghostty also supports + specifying a different theme to use for light and dark mode. Each + option is documented below. + + If the theme is an absolute pathname, Ghostty will attempt to load that + file as a theme. If that file does not exist or is inaccessible, an error + will be logged and no other directories will be searched. + + If the theme is not an absolute pathname, two different directories will be + searched for a file name that matches the theme. This is case sensitive on + systems with case-sensitive filesystems. It is an error for a theme name to + include path separators unless it is an absolute pathname. + + The first directory is the `themes` subdirectory of your Ghostty + configuration directory. This is `$XDG_CONFIG_DIR/ghostty/themes` or + `~/.config/ghostty/themes`. + + The second directory is the `themes` subdirectory of the Ghostty resources + directory. Ghostty ships with a multitude of themes that will be installed + into this directory. On macOS, this list is in the `Ghostty.app/Contents/ + Resources/ghostty/themes` directory. On Linux, this list is in the `share/ + ghostty/themes` directory (wherever you installed the Ghostty "share" + directory. + + To see a list of available themes, run `ghostty +list-themes`. + + A theme file is simply another Ghostty configuration file. They share + the same syntax and same configuration options. A theme can set any valid + configuration option so please do not use a theme file from an untrusted + source. The built-in themes are audited to only set safe configuration + options. + + Some options cannot be set within theme files. The reason these are not + supported should be self-evident. A theme file cannot set `theme` or + `config-file`. At the time of writing this, Ghostty will not show any + warnings or errors if you set these options in a theme file but they will + be silently ignored. + + Any additional colors specified via background, foreground, palette, etc. + will override the colors specified in the theme. + + To specify a different theme for light and dark mode, use the following + syntax: `light:theme-name,dark:theme-name`. For example: + `light:rose-pine-dawn,dark:rose-pine`. Whitespace around all values are + trimmed and order of light and dark does not matter. Both light and dark + must be specified in this form. In this form, the theme used will be + based on the current desktop environment theme. + + There are some known bugs with light/dark mode theming. These will + be fixed in a future update: + + - macOS: titlebar tabs style is not updated when switching themes. + + + +**`--background`** + +: Background color for the window. + + +**`--foreground`** + +: Foreground color for the window. + + +**`--selection-foreground`** + +: The foreground and background color for selection. If this is not set, then + the selection color is just the inverted window background and foreground + (note: not to be confused with the cell bg/fg). + + +**`--selection-background`** + +**`--selection-invert-fg-bg`** + +: Swap the foreground and background colors of cells for selection. This + option overrides the `selection-foreground` and `selection-background` + options. + + If you select across cells with differing foregrounds and backgrounds, the + selection color will vary across the selection. + + +**`--minimum-contrast`** + +: The minimum contrast ratio between the foreground and background colors. + The contrast ratio is a value between 1 and 21. A value of 1 allows for no + contrast (i.e. black on black). This value is the contrast ratio as defined + by the [WCAG 2.0 specification](https://www.w3.org/TR/WCAG20/). + + If you want to avoid invisible text (same color as background), a value of + 1.1 is a good value. If you want to avoid text that is difficult to read, a + value of 3 or higher is a good value. The higher the value, the more likely + that text will become black or white. + + This value does not apply to Emoji or images. + + +**`--palette`** + +: Color palette for the 256 color form that many terminal applications use. + The syntax of this configuration is `N=HEXCODE` where `N` is 0 to 255 (for + the 256 colors in the terminal color table) and `HEXCODE` is a typical RGB + color code such as `#AABBCC`. + + For definitions on all the codes [see this cheat + sheet](https://www.ditig.com/256-colors-cheat-sheet). + + +**`--cursor-color`** + +: The color of the cursor. If this is not set, a default will be chosen. + + +**`--cursor-invert-fg-bg`** + +: Swap the foreground and background colors of the cell under the cursor. This + option overrides the `cursor-color` and `cursor-text` options. + + +**`--cursor-opacity`** + +: The opacity level (opposite of transparency) of the cursor. A value of 1 + is fully opaque and a value of 0 is fully transparent. A value less than 0 + or greater than 1 will be clamped to the nearest valid value. Note that a + sufficiently small value such as 0.3 may be effectively invisible and may + make it difficult to find the cursor. + + +**`--cursor-style`** + +: The style of the cursor. This sets the default style. A running program can + still request an explicit cursor style using escape sequences (such as `CSI + q`). Shell configurations will often request specific cursor styles. + + Note that shell integration will automatically set the cursor to a bar at + a prompt, regardless of this configuration. You can disable that behavior + by specifying `shell-integration-features = no-cursor` or disabling shell + integration entirely. + + Valid values are: + + * `block` + * `bar` + * `underline` + * `block_hollow` + + + +**`--cursor-style-blink`** + +: Sets the default blinking state of the cursor. This is just the default + state; running programs may override the cursor style using `DECSCUSR` (`CSI + q`). + + If this is not set, the cursor blinks by default. Note that this is not the + same as a "true" value, as noted below. + + If this is not set at all (`null`), then Ghostty will respect DEC Mode 12 + (AT&T cursor blink) as an alternate approach to turning blinking on/off. If + this is set to any value other than null, DEC mode 12 will be ignored but + `DECSCUSR` will still be respected. + + Valid values are: + + * `` (blank) + * `true` + * `false` + + + +**`--cursor-text`** + +: The color of the text under the cursor. If this is not set, a default will + be chosen. + + +**`--cursor-click-to-move`** + +: Enables the ability to move the cursor at prompts by using `alt+click` on + Linux and `option+click` on macOS. + + This feature requires shell integration (specifically prompt marking + via `OSC 133`) and only works in primary screen mode. Alternate screen + applications like vim usually have their own version of this feature but + this configuration doesn't control that. + + It should be noted that this feature works by translating your desired + position into a series of synthetic arrow key movements, so some weird + behavior around edge cases are to be expected. This is unfortunately how + this feature is implemented across terminals because there isn't any other + way to implement it. + + +**`--mouse-hide-while-typing`** + +: Hide the mouse immediately when typing. The mouse becomes visible again + when the mouse is used (button, movement, etc.). Platform-specific behavior + may dictate other scenarios where the mouse is shown. For example on macOS, + the mouse is shown again when a new window, tab, or split is created. + + +**`--mouse-shift-capture`** + +: Determines whether running programs can detect the shift key pressed with a + mouse click. Typically, the shift key is used to extend mouse selection. + + The default value of `false` means that the shift key is not sent with + the mouse protocol and will extend the selection. This value can be + conditionally overridden by the running program with the `XTSHIFTESCAPE` + sequence. + + The value `true` means that the shift key is sent with the mouse protocol + but the running program can override this behavior with `XTSHIFTESCAPE`. + + The value `never` is the same as `false` but the running program cannot + override this behavior with `XTSHIFTESCAPE`. The value `always` is the + same as `true` but the running program cannot override this behavior with + `XTSHIFTESCAPE`. + + If you always want shift to extend mouse selection even if the program + requests otherwise, set this to `never`. + + Valid values are: + + * `true` + * `false` + * `always` + * `never` + + + +**`--mouse-scroll-multiplier`** + +: Multiplier for scrolling distance with the mouse wheel. Any value less + than 0.01 or greater than 10,000 will be clamped to the nearest valid + value. + + A value of "1" (default) scrolls te default amount. A value of "2" scrolls + double the default amount. A value of "0.5" scrolls half the default amount. + Et cetera. + + +**`--background-opacity`** + +: The opacity level (opposite of transparency) of the background. A value of + 1 is fully opaque and a value of 0 is fully transparent. A value less than 0 + or greater than 1 will be clamped to the nearest valid value. + + On macOS, background opacity is disabled when the terminal enters native + fullscreen. This is because the background becomes gray and it can cause + widgets to show through which isn't generally desirable. + + +**`--background-blur-radius`** + +: A positive value enables blurring of the background when background-opacity + is less than 1. The value is the blur radius to apply. A value of 20 + is reasonable for a good looking blur. Higher values will cause strange + rendering issues as well as performance issues. + + This is only supported on macOS. + + +**`--unfocused-split-opacity`** + +: The opacity level (opposite of transparency) of an unfocused split. + Unfocused splits by default are slightly faded out to make it easier to see + which split is focused. To disable this feature, set this value to 1. + + A value of 1 is fully opaque and a value of 0 is fully transparent. Because + "0" is not useful (it makes the window look very weird), the minimum value + is 0.15. This value still looks weird but you can at least see what's going + on. A value outside of the range 0.15 to 1 will be clamped to the nearest + valid value. + + +**`--unfocused-split-fill`** + +: The color to dim the unfocused split. Unfocused splits are dimmed by + rendering a semi-transparent rectangle over the split. This sets the color of + that rectangle and can be used to carefully control the dimming effect. + + This will default to the background color. + + +**`--command`** + +: The command to run, usually a shell. If this is not an absolute path, it'll + be looked up in the `PATH`. If this is not set, a default will be looked up + from your system. The rules for the default lookup are: + + * `SHELL` environment variable + + * `passwd` entry (user information) + + This can contain additional arguments to run the command with. If additional + arguments are provided, the command will be executed using `/bin/sh -c`. + Ghostty does not do any shell command parsing. + + This command will be used for all new terminal surfaces, i.e. new windows, + tabs, etc. If you want to run a command only for the first terminal surface + created when Ghostty starts, use the `initial-command` configuration. + + Ghostty supports the common `-e` flag for executing a command with + arguments. For example, `ghostty -e fish --with --custom --args`. + This flag sets the `initial-command` configuration, see that for more + information. + + +**`--initial-command`** + +: This is the same as "command", but only applies to the first terminal + surface created when Ghostty starts. Subsequent terminal surfaces will use + the `command` configuration. + + After the first terminal surface is created (or closed), there is no + way to run this initial command again automatically. As such, setting + this at runtime works but will only affect the next terminal surface + if it is the first one ever created. + + If you're using the `ghostty` CLI there is also a shortcut to set this + with arguments directly: you can use the `-e` flag. For example: `ghostty -e + fish --with --custom --args`. The `-e` flag automatically forces some + other behaviors as well: + + * `gtk-single-instance=false` - This ensures that a new instance is + launched and the CLI args are respected. + + * `quit-after-last-window-closed=true` - This ensures that the Ghostty + process will exit when the command exits. Additionally, the + `quit-after-last-window-closed-delay` is unset. + + * `shell-integration=detect` (if not `none`) - This prevents forcibly + injecting any configured shell integration into the command's + environment. With `-e` its highly unlikely that you're executing a + shell and forced shell integration is likely to cause problems + (i.e. by wrapping your command in a shell, setting env vars, etc.). + This is a safety measure to prevent unexpected behavior. If you want + shell integration with a `-e`-executed command, you must either + name your binary appopriately or source the shell integration script + manually. + + + +**`--wait-after-command`** + +: If true, keep the terminal open after the command exits. Normally, the + terminal window closes when the running command (such as a shell) exits. + With this true, the terminal window will stay open until any keypress is + received. + + This is primarily useful for scripts or debugging. + + +**`--abnormal-command-exit-runtime`** + +: The number of milliseconds of runtime below which we consider a process exit + to be abnormal. This is used to show an error message when the process exits + too quickly. + + On Linux, this must be paired with a non-zero exit code. On macOS, we allow + any exit code because of the way shell processes are launched via the login + command. + + +**`--scrollback-limit`** + +: The size of the scrollback buffer in bytes. This also includes the active + screen. No matter what this is set to, enough memory will always be + allocated for the visible screen and anything leftover is the limit for + the scrollback. + + When this limit is reached, the oldest lines are removed from the + scrollback. + + Scrollback currently exists completely in memory. This means that the + larger this value, the larger potential memory usage. Scrollback is + allocated lazily up to this limit, so if you set this to a very large + value, it will not immediately consume a lot of memory. + + This size is per terminal surface, not for the entire application. + + It is not currently possible to set an unlimited scrollback buffer. + This is a future planned feature. + + This can be changed at runtime but will only affect new terminal surfaces. + + +**`--link`** + +: Match a regular expression against the terminal text and associate clicking + it with an action. This can be used to match URLs, file paths, etc. Actions + can be opening using the system opener (i.e. `open` or `xdg-open`) or + executing any arbitrary binding action. + + Links that are configured earlier take precedence over links that are + configured later. + + A default link that matches a URL and opens it in the system opener always + exists. This can be disabled using `link-url`. + + TODO: This can't currently be set! + + +**`--link-url`** + +: Enable URL matching. URLs are matched on hover with control (Linux) or + super (macOS) pressed and open using the default system application for + the linked URL. + + The URL matcher is always lowest priority of any configured links (see + `link`). If you want to customize URL matching, use `link` and disable this. + + +**`--fullscreen`** + +: Start new windows in fullscreen. This setting applies to new windows and + does not apply to tabs, splits, etc. However, this setting will apply to all + new windows, not just the first one. + + On macOS, this setting does not work if window-decoration is set to + "false", because native fullscreen on macOS requires window decorations + to be set. + + +**`--title`** + +: The title Ghostty will use for the window. This will force the title of the + window to be this title at all times and Ghostty will ignore any set title + escape sequences programs (such as Neovim) may send. + + If you want a blank title, set this to one or more spaces by quoting + the value. For example, `title = " "`. This effectively hides the title. + This is necessary because setting a blank value resets the title to the + default value of the running program. + + This configuration can be reloaded at runtime. If it is set, the title + will update for all windows. If it is unset, the next title change escape + sequence will be honored but previous changes will not retroactively + be set. This latter case may require you restart programs such as neovim + to get the new title. + + +**`--class`** + +: The setting that will change the application class value. + + This controls the class field of the `WM_CLASS` X11 property (when running + under X11), and the Wayland application ID (when running under Wayland). + + Note that changing this value between invocations will create new, separate + instances, of Ghostty when running with `gtk-single-instance=true`. See that + option for more details. + + The class name must follow the requirements defined [in the GTK + documentation](https://docs.gtk.org/gio/type_func.Application.id_is_valid.html). + + The default is `com.mitchellh.ghostty`. + + This only affects GTK builds. + + +**`--x11-instance-name`** + +: This controls the instance name field of the `WM_CLASS` X11 property when + running under X11. It has no effect otherwise. + + The default is `ghostty`. + + This only affects GTK builds. + + +**`--working-directory`** + +: The directory to change to after starting the command. + + This setting is secondary to the `window-inherit-working-directory` + setting. If a previous Ghostty terminal exists in the same process, + `window-inherit-working-directory` will take precedence. Otherwise, this + setting will be used. Typically, this setting is used only for the first + window. + + The default is `inherit` except in special scenarios listed next. On macOS, + if Ghostty can detect it is launched from launchd (double-clicked) or + `open`, then it defaults to `home`. On Linux with GTK, if Ghostty can detect + it was launched from a desktop launcher, then it defaults to `home`. + + The value of this must be an absolute value or one of the special values + below: + + * `home` - The home directory of the executing user. + + * `inherit` - The working directory of the launching process. + + +**`--keybind`** + +: Key bindings. The format is `trigger=action`. Duplicate triggers will + overwrite previously set values. The list of actions is available in + the documentation or using the `ghostty +list-actions` command. + + Trigger: `+`-separated list of keys and modifiers. Example: `ctrl+a`, + `ctrl+shift+b`, `up`. Some notes: + + * modifiers cannot repeat, `ctrl+ctrl+a` is invalid. + + * modifiers and keys can be in any order, `shift+a+ctrl` is *weird*, + but valid. + + * only a single key input is allowed, `ctrl+a+b` is invalid. + + * the key input can be prefixed with `physical:` to specify a + physical key mapping rather than a logical one. A physical key + mapping responds to the hardware keycode and not the keycode + translated by any system keyboard layouts. Example: "ctrl+physical:a" + + Valid modifiers are `shift`, `ctrl` (alias: `control`), `alt` (alias: `opt`, + `option`), and `super` (alias: `cmd`, `command`). You may use the modifier + or the alias. When debugging keybinds, the non-aliased modifier will always + be used in output. + + Note: The fn or "globe" key on keyboards are not supported as a + modifier. This is a limitation of the operating systems and GUI toolkits + that Ghostty uses. + + You may also specify multiple triggers separated by `>` to require a + sequence of triggers to activate the action. For example, + `ctrl+a>n=new_window` will only trigger the `new_window` action if the + user presses `ctrl+a` followed separately by `n`. In other software, this + is sometimes called a leader key, a key chord, a key table, etc. There + is no hardcoded limit on the number of parts in a sequence. + + Warning: If you define a sequence as a CLI argument to `ghostty`, + you probably have to quote the keybind since `>` is a special character + in most shells. Example: ghostty --keybind='ctrl+a>n=new_window' + + A trigger sequence has some special handling: + + * Ghostty will wait an indefinite amount of time for the next key in + the sequence. There is no way to specify a timeout. The only way to + force the output of a prefix key is to assign another keybind to + specifically output that key (i.e. `ctrl+a>ctrl+a=text:foo`) or + press an unbound key which will send both keys to the program. + + * If a prefix in a sequence is previously bound, the sequence will + override the previous binding. For example, if `ctrl+a` is bound to + `new_window` and `ctrl+a>n` is bound to `new_tab`, pressing `ctrl+a` + will do nothing. + + * Adding to the above, if a previously bound sequence prefix is + used in a new, non-sequence binding, the entire previously bound + sequence will be unbound. For example, if you bind `ctrl+a>n` and + `ctrl+a>t`, and then bind `ctrl+a` directly, both `ctrl+a>n` and + `ctrl+a>t` will become unbound. + + * Trigger sequences are not allowed for `global:` or `all:`-prefixed + triggers. This is a limitation we could remove in the future. + + Action is the action to take when the trigger is satisfied. It takes the + format `action` or `action:param`. The latter form is only valid if the + action requires a parameter. + + * `ignore` - Do nothing, ignore the key input. This can be used to + black hole certain inputs to have no effect. + + * `unbind` - Remove the binding. This makes it so the previous action + is removed, and the key will be sent through to the child command + if it is printable. + + * `csi:text` - Send a CSI sequence. i.e. `csi:A` sends "cursor up". + + * `esc:text` - Send an escape sequence. i.e. `esc:d` deletes to the + end of the word to the right. + + * `text:text` - Send a string. Uses Zig string literal syntax. + i.e. `text:\x15` sends Ctrl-U. + + * All other actions can be found in the documentation or by using the + `ghostty +list-actions` command. + + Some notes for the action: + + * The parameter is taken as-is after the `:`. Double quotes or + other mechanisms are included and NOT parsed. If you want to + send a string value that includes spaces, wrap the entire + trigger/action in double quotes. Example: `--keybind="up=csi:A B"` + + There are some additional special values that can be specified for + keybind: + + * `keybind=clear` will clear all set keybindings. Warning: this + removes ALL keybindings up to this point, including the default + keybindings. + + The keybind trigger can be prefixed with some special values to change + the behavior of the keybind. These are: + + * `all:` - Make the keybind apply to all terminal surfaces. By default, + keybinds only apply to the focused terminal surface. If this is true, + then the keybind will be sent to all terminal surfaces. This only + applies to actions that are surface-specific. For actions that + are already global (i.e. `quit`), this prefix has no effect. + + * `global:` - Make the keybind global. By default, keybinds only work + within Ghostty and under the right conditions (application focused, + sometimes terminal focused, etc.). If you want a keybind to work + globally across your system (i.e. even when Ghostty is not focused), + specify this prefix. This prefix implies `all:`. Note: this does not + work in all environments; see the additional notes below for more + information. + + * `unconsumed:` - Do not consume the input. By default, a keybind + will consume the input, meaning that the associated encoding (if + any) will not be sent to the running program in the terminal. If + you wish to send the encoded value to the program, specify the + `unconsumed:` prefix before the entire keybind. For example: + `unconsumed:ctrl+a=reload_config`. `global:` and `all:`-prefixed + keybinds will always consume the input regardless of this setting. + Since they are not associated with a specific terminal surface, + they're never encoded. + + Keybind triggers are not unique per prefix combination. For example, + `ctrl+a` and `global:ctrl+a` are not two separate keybinds. The keybind + set later will overwrite the keybind set earlier. In this case, the + `global:` keybind will be used. + + Multiple prefixes can be specified. For example, + `global:unconsumed:ctrl+a=reload_config` will make the keybind global + and not consume the input to reload the config. + + Note: `global:` is only supported on macOS. On macOS, + this feature requires accessibility permissions to be granted to Ghostty. + When a `global:` keybind is specified and Ghostty is launched or reloaded, + Ghostty will attempt to request these permissions. If the permissions are + not granted, the keybind will not work. On macOS, you can find these + permissions in System Preferences -> Privacy & Security -> Accessibility. + + +**`--window-padding-x`** + +: Horizontal window padding. This applies padding between the terminal cells + and the left and right window borders. The value is in points, meaning that + it will be scaled appropriately for screen DPI. + + If this value is set too large, the screen will render nothing, because the + grid will be completely squished by the padding. It is up to you as the user + to pick a reasonable value. If you pick an unreasonable value, a warning + will appear in the logs. + + Changing this configuration at runtime will only affect new terminals, i.e. + new windows, tabs, etc. + + To set a different left and right padding, specify two numerical values + separated by a comma. For example, `window-padding-x = 2,4` will set the + left padding to 2 and the right padding to 4. If you want to set both + paddings to the same value, you can use a single value. For example, + `window-padding-x = 2` will set both paddings to 2. + + +**`--window-padding-y`** + +: Vertical window padding. This applies padding between the terminal cells and + the top and bottom window borders. The value is in points, meaning that it + will be scaled appropriately for screen DPI. + + If this value is set too large, the screen will render nothing, because the + grid will be completely squished by the padding. It is up to you as the user + to pick a reasonable value. If you pick an unreasonable value, a warning + will appear in the logs. + + Changing this configuration at runtime will only affect new terminals, + i.e. new windows, tabs, etc. + + To set a different top and bottom padding, specify two numerical values + separated by a comma. For example, `window-padding-y = 2,4` will set the + top padding to 2 and the bottom padding to 4. If you want to set both + paddings to the same value, you can use a single value. For example, + `window-padding-y = 2` will set both paddings to 2. + + +**`--window-padding-balance`** + +: The viewport dimensions are usually not perfectly divisible by the cell + size. In this case, some extra padding on the end of a column and the bottom + of the final row may exist. If this is `true`, then this extra padding + is automatically balanced between all four edges to minimize imbalance on + one side. If this is `false`, the top left grid cell will always hug the + edge with zero padding other than what may be specified with the other + `window-padding` options. + + If other `window-padding` fields are set and this is `true`, this will still + apply. The other padding is applied first and may affect how many grid cells + actually exist, and this is applied last in order to balance the padding + given a certain viewport size and grid cell size. + + +**`--window-padding-color`** + +: The color of the padding area of the window. Valid values are: + + * `background` - The background color specified in `background`. + * `extend` - Extend the background color of the nearest grid cell. + * `extend-always` - Same as "extend" but always extends without applying + any of the heuristics that disable extending noted below. + + The "extend" value will be disabled in certain scenarios. On primary + screen applications (i.e. not something like Neovim), the color will not + be extended vertically if any of the following are true: + + * The nearest row has any cells that have the default background color. + The thinking is that in this case, the default background color looks + fine as a padding color. + * The nearest row is a prompt row (requires shell integration). The + thinking here is that prompts often contain powerline glyphs that + do not look good extended. + * The nearest row contains a perfect fit powerline character. These + don't look good extended. + + + +**`--window-vsync`** + +: Synchronize rendering with the screen refresh rate. If true, this will + minimize tearing and align redraws with the screen but may cause input + latency. If false, this will maximize redraw frequency but may cause tearing, + and under heavy load may use more CPU and power. + + This defaults to true because out-of-sync rendering on macOS can + cause kernel panics (macOS 14.4+) and performance issues for external + displays over some hardware such as DisplayLink. If you want to minimize + input latency, set this to false with the known aforementioned risks. + + Changing this value at runtime will only affect new terminals. + + This setting is only supported currently on macOS. + + +**`--window-inherit-working-directory`** + +: If true, new windows and tabs will inherit the working directory of the + previously focused window. If no window was previously focused, the default + working directory will be used (the `working-directory` option). + + +**`--window-inherit-font-size`** + +: If true, new windows and tabs will inherit the font size of the previously + focused window. If no window was previously focused, the default font size + will be used. If this is false, the default font size specified in the + configuration `font-size` will be used. + + +**`--window-decoration`** + +: Valid values: + + * `true` + * `false` - windows won't have native decorations, i.e. titlebar and + borders. On macOS this also disables tabs and tab overview. + + The "toggle_window_decorations" keybind action can be used to create + a keybinding to toggle this setting at runtime. + + Changing this configuration in your configuration and reloading will + only affect new windows. Existing windows will not be affected. + + macOS: To hide the titlebar without removing the native window borders + or rounded corners, use `macos-titlebar-style = hidden` instead. + + +**`--window-title-font-family`** + +: The font that will be used for the application's window and tab titles. + + This is currently only supported on macOS. + + +**`--window-theme`** + +: The theme to use for the windows. Valid values: + + * `auto` - Determine the theme based on the configured terminal + background color. This has no effect if the "theme" configuration + has separate light and dark themes. In that case, the behavior + of "auto" is equivalent to "system". + * `system` - Use the system theme. + * `light` - Use the light theme regardless of system theme. + * `dark` - Use the dark theme regardless of system theme. + * `ghostty` - Use the background and foreground colors specified in the + Ghostty configuration. This is only supported on Linux builds with + Adwaita and `gtk-adwaita` enabled. + + On macOS, if `macos-titlebar-style` is "tabs", the window theme will be + automatically set based on the luminosity of the terminal background color. + This only applies to terminal windows. This setting will still apply to + non-terminal windows within Ghostty. + + This is currently only supported on macOS and Linux. + + +**`--window-colorspace`** + +: The colorspace to use for the terminal window. The default is `srgb` but + this can also be set to `display-p3` to use the Display P3 colorspace. + + Changing this value at runtime will only affect new windows. + + This setting is only supported on macOS. + + +**`--window-height`** + +: The initial window size. This size is in terminal grid cells by default. + Both values must be set to take effect. If only one value is set, it is + ignored. + + We don't currently support specifying a size in pixels but a future change + can enable that. If this isn't specified, the app runtime will determine + some default size. + + Note that the window manager may put limits on the size or override the + size. For example, a tiling window manager may force the window to be a + certain size to fit within the grid. There is nothing Ghostty will do about + this, but it will make an effort. + + Sizes larger than the screen size will be clamped to the screen size. + This can be used to create a maximized-by-default window size. + + This will not affect new tabs, splits, or other nested terminal elements. + This only affects the initial window size of any new window. Changing this + value will not affect the size of the window after it has been created. This + is only used for the initial size. + + BUG: On Linux with GTK, the calculated window size will not properly take + into account window decorations. As a result, the grid dimensions will not + exactly match this configuration. If window decorations are disabled (see + window-decorations), then this will work as expected. + + Windows smaller than 10 wide by 4 high are not allowed. + + +**`--window-width`** + +**`--window-save-state`** + +: Whether to enable saving and restoring window state. Window state includes + their position, size, tabs, splits, etc. Some window state requires shell + integration, such as preserving working directories. See `shell-integration` + for more information. + + There are three valid values for this configuration: + + * `default` will use the default system behavior. On macOS, this + will only save state if the application is forcibly terminated + or if it is configured systemwide via Settings.app. + + * `never` will never save window state. + + * `always` will always save window state whenever Ghostty is exited. + + If you change this value to `never` while Ghostty is not running, the next + Ghostty launch will NOT restore the window state. + + If you change this value to `default` while Ghostty is not running and the + previous exit saved state, the next Ghostty launch will still restore the + window state. This is because Ghostty cannot know if the previous exit was + due to a forced save or not (macOS doesn't provide this information). + + If you change this value so that window state is saved while Ghostty is not + running, the previous window state will not be restored because Ghostty only + saves state on exit if this is enabled. + + The default value is `default`. + + This is currently only supported on macOS. This has no effect on Linux. + + +**`--window-step-resize`** + +: Resize the window in discrete increments of the focused surface's cell size. + If this is disabled, surfaces are resized in pixel increments. Currently + only supported on macOS. + + +**`--window-new-tab-position`** + +: The position where new tabs are created. Valid values: + + * `current` - Insert the new tab after the currently focused tab, + or at the end if there are no focused tabs. + + * `end` - Insert the new tab at the end of the tab list. + + +**`--resize-overlay`** + +: This controls when resize overlays are shown. Resize overlays are a + transient popup that shows the size of the terminal while the surfaces are + being resized. The possible options are: + + * `always` - Always show resize overlays. + * `never` - Never show resize overlays. + * `after-first` - The resize overlay will not appear when the surface + is first created, but will show up if the surface is + subsequently resized. + + The default is `after-first`. + + +**`--resize-overlay-position`** + +: If resize overlays are enabled, this controls the position of the overlay. + The possible options are: + + * `center` + * `top-left` + * `top-center` + * `top-right` + * `bottom-left` + * `bottom-center` + * `bottom-right` + + The default is `center`. + + +**`--resize-overlay-duration`** + +: If resize overlays are enabled, this controls how long the overlay is + visible on the screen before it is hidden. The default is ¾ of a second or + 750 ms. + + The duration is specified as a series of numbers followed by time units. + Whitespace is allowed between numbers and units. Each number and unit will + be added together to form the total duration. + + The allowed time units are as follows: + + * `y` - 365 SI days, or 8760 hours, or 31536000 seconds. No adjustments + are made for leap years or leap seconds. + * `d` - one SI day, or 86400 seconds. + * `h` - one hour, or 3600 seconds. + * `m` - one minute, or 60 seconds. + * `s` - one second. + * `ms` - one millisecond, or 0.001 second. + * `us` or `µs` - one microsecond, or 0.000001 second. + * `ns` - one nanosecond, or 0.000000001 second. + + Examples: + * `1h30m` + * `45s` + + Units can be repeated and will be added together. This means that + `1h1h` is equivalent to `2h`. This is confusing and should be avoided. + A future update may disallow this. + + The maximum value is `584y 49w 23h 34m 33s 709ms 551µs 615ns`. Any + value larger than this will be clamped to the maximum value. + + +**`--focus-follows-mouse`** + +**`--clipboard-read`** + +: Whether to allow programs running in the terminal to read/write to the + system clipboard (OSC 52, for googling). The default is to allow clipboard + reading after prompting the user and allow writing unconditionally. + + Valid values are: + + * `ask` + * `allow` + * `deny` + + + +**`--clipboard-write`** + +**`--clipboard-trim-trailing-spaces`** + +: Trims trailing whitespace on data that is copied to the clipboard. This does + not affect data sent to the clipboard via `clipboard-write`. + + +**`--clipboard-paste-protection`** + +: Require confirmation before pasting text that appears unsafe. This helps + prevent a "copy/paste attack" where a user may accidentally execute unsafe + commands by pasting text with newlines. + + +**`--clipboard-paste-bracketed-safe`** + +: If true, bracketed pastes will be considered safe. By default, bracketed + pastes are considered safe. "Bracketed" pastes are pastes while the running + program has bracketed paste mode enabled (a setting set by the running + program, not the terminal emulator). + + +**`--image-storage-limit`** + +: The total amount of bytes that can be used for image data (i.e. the Kitty + image protocol) per terminal screen. The maximum value is 4,294,967,295 + (4GiB). The default is 320MB. If this is set to zero, then all image + protocols will be disabled. + + This value is separate for primary and alternate screens so the effective + limit per surface is double. + + +**`--copy-on-select`** + +: Whether to automatically copy selected text to the clipboard. `true` + will prefer to copy to the selection clipboard if supported by the + OS, otherwise it will copy to the system clipboard. + + The value `clipboard` will always copy text to the selection clipboard + (for supported systems) as well as the system clipboard. This is sometimes + a preferred behavior on Linux. + + Middle-click paste will always use the selection clipboard on Linux + and the system clipboard on macOS. Middle-click paste is always enabled + even if this is `false`. + + The default value is true on Linux and false on macOS. macOS copy on + select behavior is not typical for applications so it is disabled by + default. On Linux, this is a standard behavior so it is enabled by + default. + + +**`--click-repeat-interval`** + +: The time in milliseconds between clicks to consider a click a repeat + (double, triple, etc.) or an entirely new single click. A value of zero will + use a platform-specific default. The default on macOS is determined by the + OS settings. On every other platform it is 500ms. + + +**`--config-file`** + +: Additional configuration files to read. This configuration can be repeated + to read multiple configuration files. Configuration files themselves can + load more configuration files. Paths are relative to the file containing the + `config-file` directive. For command-line arguments, paths are relative to + the current working directory. + + Prepend a ? character to the file path to suppress errors if the file does + not exist. If you want to include a file that begins with a literal ? + character, surround the file path in double quotes ("). + + Cycles are not allowed. If a cycle is detected, an error will be logged and + the configuration file will be ignored. + + Configuration files are loaded after the configuration they're defined + within in the order they're defined. **THIS IS A VERY SUBTLE BUT IMPORTANT + POINT.** To put it another way: configuration files do not take effect + until after the entire configuration is loaded. For example, in the + configuration below: + + ``` + config-file = "foo" + a = 1 + ``` + + If "foo" contains `a = 2`, the final value of `a` will be 2, because + `foo` is loaded after the configuration file that configures the + nested `config-file` value. + + +**`--config-default-files`** + +: When this is true, the default configuration file paths will be loaded. + The default configuration file paths are currently only the XDG + config path ($XDG_CONFIG_HOME/ghostty/config). + + If this is false, the default configuration paths will not be loaded. + This is targeted directly at using Ghostty from the CLI in a way + that minimizes external effects. + + This is a CLI-only configuration. Setting this in a configuration file + will have no effect. It is not an error, but it will not do anything. + This configuration can only be set via CLI arguments. + + +**`--confirm-close-surface`** + +: Confirms that a surface should be closed before closing it. This defaults to + true. If set to false, surfaces will close without any confirmation. + + +**`--quit-after-last-window-closed`** + +: Whether or not to quit after the last surface is closed. + + This defaults to `false` on macOS since that is standard behavior for + a macOS application. On Linux, this defaults to `true` since that is + generally expected behavior. + + On Linux, if this is `true`, Ghostty can delay quitting fully until a + configurable amount of time has passed after the last window is closed. + See the documentation of `quit-after-last-window-closed-delay`. + + +**`--quit-after-last-window-closed-delay`** + +: Controls how long Ghostty will stay running after the last open surface has + been closed. This only has an effect if `quit-after-last-window-closed` is + also set to `true`. + + The minimum value for this configuration is `1s`. Any values lower than + this will be clamped to `1s`. + + The duration is specified as a series of numbers followed by time units. + Whitespace is allowed between numbers and units. Each number and unit will + be added together to form the total duration. + + The allowed time units are as follows: + + * `y` - 365 SI days, or 8760 hours, or 31536000 seconds. No adjustments + are made for leap years or leap seconds. + * `d` - one SI day, or 86400 seconds. + * `h` - one hour, or 3600 seconds. + * `m` - one minute, or 60 seconds. + * `s` - one second. + * `ms` - one millisecond, or 0.001 second. + * `us` or `µs` - one microsecond, or 0.000001 second. + * `ns` - one nanosecond, or 0.000000001 second. + + Examples: + * `1h30m` + * `45s` + + Units can be repeated and will be added together. This means that + `1h1h` is equivalent to `2h`. This is confusing and should be avoided. + A future update may disallow this. + + The maximum value is `584y 49w 23h 34m 33s 709ms 551µs 615ns`. Any + value larger than this will be clamped to the maximum value. + + By default `quit-after-last-window-closed-delay` is unset and + Ghostty will quit immediately after the last window is closed if + `quit-after-last-window-closed` is `true`. + + Only implemented on Linux. + + +**`--initial-window`** + +: This controls whether an initial window is created when Ghostty + is run. Note that if `quit-after-last-window-closed` is `true` and + `quit-after-last-window-closed-delay` is set, setting `initial-window` to + `false` will mean that Ghostty will quit after the configured delay if no + window is ever created. Only implemented on Linux and macOS. + + +**`--quick-terminal-position`** + +: The position of the "quick" terminal window. To learn more about the + quick terminal, see the documentation for the `toggle_quick_terminal` + binding action. + + Valid values are: + + * `top` - Terminal appears at the top of the screen. + * `bottom` - Terminal appears at the bottom of the screen. + * `left` - Terminal appears at the left of the screen. + * `right` - Terminal appears at the right of the screen. + + Changing this configuration requires restarting Ghostty completely. + + +**`--quick-terminal-screen`** + +: The screen where the quick terminal should show up. + + Valid values are: + + * `main` - The screen that the operating system recommends as the main + screen. On macOS, this is the screen that is currently receiving + keyboard input. This screen is defined by the operating system and + not chosen by Ghostty. + + * `mouse` - The screen that the mouse is currently hovered over. + + * `macos-menu-bar` - The screen that contains the macOS menu bar as + set in the display settings on macOS. This is a bit confusing because + every screen on macOS has a menu bar, but this is the screen that + contains the primary menu bar. + + The default value is `main` because this is the recommended screen + by the operating system. + + +**`--quick-terminal-animation-duration`** + +: Duration (in seconds) of the quick terminal enter and exit animation. + Set it to 0 to disable animation completely. This can be changed at + runtime. + + +**`--shell-integration`** + +: Whether to enable shell integration auto-injection or not. Shell integration + greatly enhances the terminal experience by enabling a number of features: + + * Working directory reporting so new tabs, splits inherit the + previous terminal's working directory. + + * Prompt marking that enables the "jump_to_prompt" keybinding. + + * If you're sitting at a prompt, closing a terminal will not ask + for confirmation. + + * Resizing the window with a complex prompt usually paints much + better. + + Allowable values are: + + * `none` - Do not do any automatic injection. You can still manually + configure your shell to enable the integration. + + * `detect` - Detect the shell based on the filename. + + * `bash`, `elvish`, `fish`, `zsh` - Use this specific shell injection scheme. + + The default value is `detect`. + + +**`--shell-integration-features`** + +: Shell integration features to enable if shell integration itself is enabled. + The format of this is a list of features to enable separated by commas. If + you prefix a feature with `no-` then it is disabled. If you omit a feature, + its default value is used, so you must explicitly disable features you don't + want. You can also use `true` or `false` to turn all features on or off. + + Available features: + + * `cursor` - Set the cursor to a blinking bar at the prompt. + + * `sudo` - Set sudo wrapper to preserve terminfo. + + * `title` - Set the window title via shell integration. + + Example: `cursor`, `no-cursor`, `sudo`, `no-sudo`, `title`, `no-title` + + +**`--osc-color-report-format`** + +: Sets the reporting format for OSC sequences that request color information. + Ghostty currently supports OSC 10 (foreground), OSC 11 (background), and + OSC 4 (256 color palette) queries, and by default the reported values + are scaled-up RGB values, where each component are 16 bits. This is how + most terminals report these values. However, some legacy applications may + require 8-bit, unscaled, components. We also support turning off reporting + altogether. The components are lowercase hex values. + + Allowable values are: + + * `none` - OSC 4/10/11 queries receive no reply + + * `8-bit` - Color components are return unscaled, i.e. `rr/gg/bb` + + * `16-bit` - Color components are returned scaled, e.g. `rrrr/gggg/bbbb` + + The default value is `16-bit`. + + +**`--vt-kam-allowed`** + +: If true, allows the "KAM" mode (ANSI mode 2) to be used within + the terminal. KAM disables keyboard input at the request of the + application. This is not a common feature and is not recommended + to be enabled. This will not be documented further because + if you know you need KAM, you know. If you don't know if you + need KAM, you don't need it. + + +**`--custom-shader`** + +: Custom shaders to run after the default shaders. This is a file path + to a GLSL-syntax shader for all platforms. + + Warning: Invalid shaders can cause Ghostty to become unusable such as by + causing the window to be completely black. If this happens, you can + unset this configuration to disable the shader. + + On Linux, this requires OpenGL 4.2. Ghostty typically only requires + OpenGL 3.3, but custom shaders push that requirement up to 4.2. + + The shader API is identical to the Shadertoy API: you specify a `mainImage` + function and the available uniforms match Shadertoy. The iChannel0 uniform + is a texture containing the rendered terminal screen. + + If the shader fails to compile, the shader will be ignored. Any errors + related to shader compilation will not show up as configuration errors + and only show up in the log, since shader compilation happens after + configuration loading on the dedicated render thread. For interactive + development, use [shadertoy.com](https://shadertoy.com). + + This can be repeated multiple times to load multiple shaders. The shaders + will be run in the order they are specified. + + Changing this value at runtime and reloading the configuration will only + affect new windows, tabs, and splits. + + +**`--custom-shader-animation`** + +: If `true` (default), the focused terminal surface will run an animation + loop when custom shaders are used. This uses slightly more CPU (generally + less than 10%) but allows the shader to animate. This only runs if there + are custom shaders and the terminal is focused. + + If this is set to `false`, the terminal and custom shader will only render + when the terminal is updated. This is more efficient but the shader will + not animate. + + This can also be set to `always`, which will always run the animation + loop regardless of whether the terminal is focused or not. The animation + loop will still only run when custom shaders are used. Note that this + will use more CPU per terminal surface and can become quite expensive + depending on the shader and your terminal usage. + + This value can be changed at runtime and will affect all currently + open terminals. + + +**`--macos-non-native-fullscreen`** + +: If anything other than false, fullscreen mode on macOS will not use the + native fullscreen, but make the window fullscreen without animations and + using a new space. It's faster than the native fullscreen mode since it + doesn't use animations. + + Important: tabs DO NOT WORK in this mode. Non-native fullscreen removes + the titlebar and macOS native tabs require the titlebar. If you use tabs, + you should not use this mode. + + If you fullscreen a window with tabs, the currently focused tab will + become fullscreen while the others will remain in a separate window in + the background. You can switch to that window using normal window-switching + keybindings such as command+tilde. When you exit fullscreen, the window + will return to the tabbed state it was in before. + + Allowable values are: + + * `visible-menu` - Use non-native macOS fullscreen, keep the menu bar visible + * `true` - Use non-native macOS fullscreen, hide the menu bar + * `false` - Use native macOS fullscreen + + Changing this option at runtime works, but will only apply to the next + time the window is made fullscreen. If a window is already fullscreen, + it will retain the previous setting until fullscreen is exited. + + +**`--macos-titlebar-style`** + +: The style of the macOS titlebar. Available values are: "native", + "transparent", "tabs", and "hidden". + + The "native" style uses the native macOS titlebar with zero customization. + The titlebar will match your window theme (see `window-theme`). + + The "transparent" style is the same as "native" but the titlebar will + be transparent and allow your window background color to come through. + This makes a more seamless window appearance but looks a little less + typical for a macOS application and may not work well with all themes. + + The "transparent" style will also update in real-time to dynamic + changes to the window background color, i.e. via OSC 11. To make this + more aesthetically pleasing, this only happens if the terminal is + a window, tab, or split that borders the top of the window. This + avoids a disjointed appearance where the titlebar color changes + but all the topmost terminals don't match. + + The "tabs" style is a completely custom titlebar that integrates the + tab bar into the titlebar. This titlebar always matches the background + color of the terminal. There are some limitations to this style: + On macOS 13 and below, saved window state will not restore tabs correctly. + macOS 14 does not have this issue and any other macOS version has not + been tested. + + The "hidden" style hides the titlebar. Unlike `window-decoration = false`, + however, it does not remove the frame from the window or cause it to have + squared corners. Changing to or from this option at run-time may affect + existing windows in buggy ways. The top titlebar area of the window will + continue to drag the window around and you will not be able to use + the mouse for terminal events in this space. + + The default value is "transparent". This is an opinionated choice + but its one I think is the most aesthetically pleasing and works in + most cases. + + Changing this option at runtime only applies to new windows. + + +**`--macos-titlebar-proxy-icon`** + +: Whether the proxy icon in the macOS titlebar is visible. The proxy icon + is the icon that represents the folder of the current working directory. + You can see this very clearly in the macOS built-in Terminal.app + titlebar. + + The proxy icon is only visible with the native macOS titlebar style. + + Valid values are: + + * `visible` - Show the proxy icon. + * `hidden` - Hide the proxy icon. + + The default value is `visible`. + + This setting can be changed at runtime and will affect all currently + open windows but only after their working directory changes again. + Therefore, to make this work after changing the setting, you must + usually `cd` to a different directory, open a different file in an + editor, etc. + + +**`--macos-option-as-alt`** + +: macOS doesn't have a distinct "alt" key and instead has the "option" + key which behaves slightly differently. On macOS by default, the + option key plus a character will sometimes produces a Unicode character. + For example, on US standard layouts option-b produces "∫". This may be + undesirable if you want to use "option" as an "alt" key for keybindings + in terminal programs or shells. + + This configuration lets you change the behavior so that option is treated + as alt. + + The default behavior (unset) will depend on your active keyboard + layout. If your keyboard layout is one of the keyboard layouts listed + below, then the default value is "true". Otherwise, the default + value is "false". Keyboard layouts with a default value of "true" are: + + - U.S. Standard + - U.S. International + + Note that if an *Option*-sequence doesn't produce a printable character, it + will be treated as *Alt* regardless of this setting. (i.e. `alt+ctrl+a`). + + Explicit values that can be set: + + If `true`, the *Option* key will be treated as *Alt*. This makes terminal + sequences expecting *Alt* to work properly, but will break Unicode input + sequences on macOS if you use them via the *Alt* key. + + You may set this to `false` to restore the macOS *Alt* key unicode + sequences but this will break terminal sequences expecting *Alt* to work. + + The values `left` or `right` enable this for the left or right *Option* + key, respectively. + + This does not work with GLFW builds. + + +**`--macos-window-shadow`** + +: Whether to enable the macOS window shadow. The default value is true. + With some window managers and window transparency settings, you may + find false more visually appealing. + + +**`--macos-auto-secure-input`** + +: If true, Ghostty on macOS will automatically enable the "Secure Input" + feature when it detects that a password prompt is being displayed. + + "Secure Input" is a macOS security feature that prevents applications from + reading keyboard events. This can always be enabled manually using the + `Ghostty > Secure Keyboard Entry` menu item. + + Note that automatic password prompt detection is based on heuristics + and may not always work as expected. Specifically, it does not work + over SSH connections, but there may be other cases where it also + doesn't work. + + A reason to disable this feature is if you find that it is interfering + with legitimate accessibility software (or software that uses the + accessibility APIs), since secure input prevents any application from + reading keyboard events. + + +**`--macos-secure-input-indication`** + +: If true, Ghostty will show a graphical indication when secure input is + enabled. This indication is generally recommended to know when secure input + is enabled. + + Normally, secure input is only active when a password prompt is displayed + or it is manually (and typically temporarily) enabled. However, if you + always have secure input enabled, the indication can be distracting and + you may want to disable it. + + +**`--linux-cgroup`** + +: Put every surface (tab, split, window) into a dedicated Linux cgroup. + + This makes it so that resource management can be done on a per-surface + granularity. For example, if a shell program is using too much memory, + only that shell will be killed by the oom monitor instead of the entire + Ghostty process. Similarly, if a shell program is using too much CPU, + only that surface will be CPU-throttled. + + This will cause startup times to be slower (a hundred milliseconds or so), + so the default value is "single-instance." In single-instance mode, only + one instance of Ghostty is running (see gtk-single-instance) so the startup + time is a one-time cost. Additionally, single instance Ghostty is much + more likely to have many windows, tabs, etc. so cgroup isolation is a + big benefit. + + This feature requires systemd. If systemd is unavailable, cgroup + initialization will fail. By default, this will not prevent Ghostty + from working (see linux-cgroup-hard-fail). + + Valid values are: + + * `never` - Never use cgroups. + * `always` - Always use cgroups. + * `single-instance` - Enable cgroups only for Ghostty instances launched + as single-instance applications (see gtk-single-instance). + + + +**`--linux-cgroup-memory-limit`** + +: Memory limit for any individual terminal process (tab, split, window, + etc.) in bytes. If this is unset then no memory limit will be set. + + Note that this sets the "memory.high" configuration for the memory + controller, which is a soft limit. You should configure something like + systemd-oom to handle killing processes that have too much memory + pressure. + + +**`--linux-cgroup-processes-limit`** + +: Number of processes limit for any individual terminal process (tab, split, + window, etc.). If this is unset then no limit will be set. + + Note that this sets the "pids.max" configuration for the process number + controller, which is a hard limit. + + +**`--linux-cgroup-hard-fail`** + +: If this is false, then any cgroup initialization (for linux-cgroup) + will be allowed to fail and the failure is ignored. This is useful if + you view cgroup isolation as a "nice to have" and not a critical resource + management feature, because Ghostty startup will not fail if cgroup APIs + fail. + + If this is true, then any cgroup initialization failure will cause + Ghostty to exit or new surfaces to not be created. + + Note: This currently only affects cgroup initialization. Subprocesses + must always be able to move themselves into an isolated cgroup. + + +**`--gtk-single-instance`** + +: If `true`, the Ghostty GTK application will run in single-instance mode: + each new `ghostty` process launched will result in a new window if there is + already a running process. + + If `false`, each new ghostty process will launch a separate application. + + The default value is `detect` which will default to `true` if Ghostty + detects that it was launched from the `.desktop` file such as an app + launcher (like Gnome Shell) or by D-Bus activation. If Ghostty is launched + from the command line, it will default to `false`. + + Note that debug builds of Ghostty have a separate single-instance ID + so you can test single instance without conflicting with release builds. + + +**`--gtk-titlebar`** + +: When enabled, the full GTK titlebar is displayed instead of your window + manager's simple titlebar. The behavior of this option will vary with your + window manager. + + This option does nothing when `window-decoration` is false or when running + under macOS. + + Changing this value at runtime and reloading the configuration will only + affect new windows. + + +**`--gtk-tabs-location`** + +: Determines the side of the screen that the GTK tab bar will stick to. + Top, bottom, left, right, and hidden are supported. The default is top. + + If this option has value `left` or `right` when using Adwaita, it falls + back to `top`. `hidden`, meaning that tabs don't exist, is not supported + without using Adwaita, falling back to `top`. + + When `hidden` is set and Adwaita is enabled, a tab button displaying the + number of tabs will appear in the title bar. It has the ability to open a + tab overview for displaying tabs. Alternatively, you can use the + `toggle_tab_overview` action in a keybind if your window doesn't have a + title bar, or you can switch tabs with keybinds. + + +**`--adw-toolbar-style`** + +: Determines the appearance of the top and bottom bars when using the + Adwaita tab bar. This requires `gtk-adwaita` to be enabled (it is + by default). + + Valid values are: + + * `flat` - Top and bottom bars are flat with the terminal window. + * `raised` - Top and bottom bars cast a shadow on the terminal area. + * `raised-border` - Similar to `raised` but the shadow is replaced with a + more subtle border. + + Changing this value at runtime will only affect new windows. + + +**`--gtk-wide-tabs`** + +: If `true` (default), then the Ghostty GTK tabs will be "wide." Wide tabs + are the new typical Gnome style where tabs fill their available space. + If you set this to `false` then tabs will only take up space they need, + which is the old style. + + +**`--gtk-adwaita`** + +: If `true` (default), Ghostty will enable Adwaita theme support. This + will make `window-theme` work properly and will also allow Ghostty to + properly respond to system theme changes, light/dark mode changing, etc. + This requires a GTK4 desktop with a GTK4 theme. + + If you are running GTK3 or have a GTK3 theme, you may have to set this + to false to get your theme picked up properly. Having this set to true + with GTK3 should not cause any problems, but it may not work exactly as + expected. + + This configuration only has an effect if Ghostty was built with + Adwaita support. + + +**`--desktop-notifications`** + +: If `true` (default), applications running in the terminal can show desktop + notifications using certain escape sequences such as OSC 9 or OSC 777. + + +**`--bold-is-bright`** + +: If `true`, the bold text will use the bright color palette. + + +**`--term`** + +: This will be used to set the `TERM` environment variable. + HACK: We set this with an `xterm` prefix because vim uses that to enable key + protocols (specifically this will enable `modifyOtherKeys`), among other + features. An option exists in vim to modify this: `:set + keyprotocol=ghostty:kitty`, however a bug in the implementation prevents it + from working properly. https://github.com/vim/vim/pull/13211 fixes this. + + +**`--enquiry-response`** + +: String to send when we receive `ENQ` (`0x05`) from the command that we are + running. Defaults to an empty string if not set. + + +**`--auto-update`** + +: Control the auto-update functionality of Ghostty. This is only supported + on macOS currently, since Linux builds are distributed via package + managers that are not centrally controlled by Ghostty. + + Checking or downloading an update does not send any information to + the project beyond standard network information mandated by the + underlying protocols. To put it another way: Ghostty doesn't explicitly + add any tracking to the update process. The update process works by + downloading information about the latest version and comparing it + client-side to the current version. + + Valid values are: + + * `off` - Disable auto-updates. + * `check` - Check for updates and notify the user if an update is + available, but do not automatically download or install the update. + * `download` - Check for updates, automatically download the update, + notify the user, but do not automatically install the update. + + The default value is `check`. + + Changing this value at runtime works after a small delay. + + +**`--auto-update-channel`** + +: The release channel to use for auto-updates. + + The default value of this matches the release channel of the currently + running Ghostty version. If you download a pre-release version of Ghostty + then this will be set to `tip` and you will receive pre-release updates. + If you download a stable version of Ghostty then this will be set to + `stable` and you will receive stable updates. + + Valid values are: + + * `stable` - Stable, tagged releases such as "1.0.0". + * `tip` - Pre-release versions generated from each commit to the + main branch. This is the version that was in use during private + beta testing by thousands of people. It is generally stable but + will likely have more bugs than the stable channel. + + Changing this configuration requires a full restart of + Ghostty to take effect. + + This only works on macOS since only macOS has an auto-update feature. + + +# FILES + +_\$XDG_CONFIG_HOME/ghostty/config_ + +: Location of the default configuration file. + +_\$LOCALAPPDATA/ghostty/config_ + +: **On Windows**, if _\$XDG_CONFIG_HOME_ is not set, _\$LOCALAPPDATA_ will be searched +for configuration files. + +# ENVIRONMENT + +**TERM** + +: Defaults to `xterm-ghostty`. Can be configured with the `term` configuration option. + +**GHOSTTY_RESOURCES_DIR** + +: Where the Ghostty resources can be found. + +**XDG_CONFIG_HOME** + +: Default location for configuration files. + +**LOCALAPPDATA** + +: **WINDOWS ONLY:** alternate location to search for configuration files. + +# BUGS + +See GitHub issues: + +# AUTHOR + +Mitchell Hashimoto + +# SEE ALSO + +**ghostty(5)** diff --git a/bin/share/ghostty/doc/ghostty.5.html b/bin/share/ghostty/doc/ghostty.5.html new file mode 100644 index 0000000..d3a353e --- /dev/null +++ b/bin/share/ghostty/doc/ghostty.5.html @@ -0,0 +1,2431 @@ + + + + + + + GHOSTTY(5) Version 0.1.0-main+dd6460bc | Ghostty terminal emulator configuration file + + + +
+

GHOSTTY(5) Version 0.1.0-main+dd6460bc | Ghostty +terminal emulator configuration file

+
+

NAME

+

ghostty - Ghostty terminal emulator configuration +file

+

DESCRIPTION

+

To configure Ghostty, you must use a configuration file. GUI-based +configuration is on the roadmap but not yet supported. The configuration +file must be placed at $XDG_CONFIG_HOME/ghostty/config, +which defaults to ~/.config/ghostty/config if the XDG +environment is not set.

+

The file format is documented below as an example:

+
# The syntax is "key = value". The whitespace around the equals doesn't matter.
+background = 282c34
+foreground= ffffff
+
+# Blank lines are ignored!
+
+keybind = ctrl+z=close_surface
+keybind = ctrl+d=new_split:right
+
+# Colors can be changed by setting the 16 colors of `palette`, which each color
+# being defined as regular and bold.
+#
+# black
+palette = 0=#1d2021
+palette = 8=#7c6f64
+# red
+palette = 1=#cc241d
+palette = 9=#fb4934
+# green
+palette = 2=#98971a
+palette = 10=#b8bb26
+# yellow
+palette = 3=#d79921
+palette = 11=#fabd2f
+# blue
+palette = 4=#458588
+palette = 12=#83a598
+# purple
+palette = 5=#b16286
+palette = 13=#d3869b
+# aqua
+palette = 6=#689d6a
+palette = 14=#8ec07c
+# white
+palette = 7=#a89984
+palette = 15=#fbf1c7
+

You can view all available configuration options and their +documentation by executing the command +ghostty +show-config --default --docs. Note that this will +output the full default configuration with docs to stdout, so you may +want to pipe that through a pager, an editor, etc.

+

Note: You’ll see a lot of weird blank configurations like +font-family =. This is a valid syntax to specify the +default behavior (no value). The +show-config outputs it so +it’s clear that key is defaulting and also to have something to attach +the doc comment to.

+

You can also see and read all available configuration options in the +source Config structure. The available keys are the keys verbatim, and +their possible values are typically documented in the comments. You also +can search for the public config files of many Ghostty users for +examples and inspiration.

+

Configuration Errors

+

If your configuration file has any errors, Ghostty does its best to +ignore them and move on. Configuration errors currently show up in the +log. The log is written directly to stderr, so it is up to you to figure +out how to access that for your system (for now). On macOS, you can also +use the system log CLI utility. See the Mac App section for +more information.

+

Debugging Configuration

+

You can verify that configuration is being properly loaded by looking +at the debug output of Ghostty. Documentation for how to view the debug +output is in the “building Ghostty” section at the end of the +README.

+

In the debug output, you should see in the first 20 lines or so +messages about loading (or not loading) a configuration file, as well as +any errors it may have encountered. Configuration errors are also shown +in a dedicated window on both macOS and Linux (GTK). Ghostty does not +treat configuration errors as fatal and will fall back to default values +for erroneous keys.

+

You can also view the full configuration Ghostty is loading using +ghostty +show-config from the command-line. Use the +--help flag to additional options for that command.

+

CONFIGURATION OPTIONS

+
+
font-family
+
+

The font families to use.

+

You can generate the list of valid values using the CLI:

+
ghostty +list-fonts
+

This configuration can be repeated multiple times to specify +preferred fallback fonts when the requested codepoint is not available +in the primary font. This is particularly useful for multiple languages, +symbolic fonts, etc.

+

Notes on emoji specifically: On macOS, Ghostty by default will always +use Apple Color Emoji and on Linux will always use Noto Emoji. You can +override this behavior by specifying a font family here that contains +emoji glyphs.

+

The specific styles (bold, italic, bold italic) do not need to be +explicitly set. If a style is not set, then the regular style +(font-family) will be searched for stylistic variants. If a stylistic +variant is not found, Ghostty will use the regular style. This prevents +falling back to a different font family just to get a style such as +bold. This also applies if you explicitly specify a font family for a +style. For example, if you set font-family-bold = FooBar +and “FooBar” cannot be found, Ghostty will use whatever font is set for +font-family for the bold style.

+

Finally, some styles may be synthesized if they are not supported. +For example, if a font does not have an italic style and no alternative +italic font is specified, Ghostty will synthesize an italic style by +applying a slant to the regular style. If you want to disable these +synthesized styles then you can use the font-style +configurations as documented below.

+

You can disable styles completely by using the +font-style set of configurations. See the documentation for +font-style for more information.

+

If you want to overwrite a previous set value rather than append a +fallback, specify the value as "" (empty string) to reset +the list and then set the new values. For example:

+
font-family = ""
+font-family = "My Favorite Font"
+

Setting any of these as CLI arguments will automatically clear the +values set in configuration files so you don’t need to specify +--font-family="" before setting a new value. You only need +to specify this within config files if you want to clear previously set +values in configuration files or on the CLI if you want to clear values +set on the CLI.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+
+
+

font-family-bold

+

font-family-italic

+

font-family-bold-italic

+
+
font-style
+
+

The named font style to use for each of the requested terminal font +styles. This looks up the style based on the font style string +advertised by the font itself. For example, “Iosevka Heavy” has a style +of “Heavy”.

+

You can also use these fields to completely disable a font style. If +you set the value of the configuration below to literal +false then that font style will be disabled. If the running +program in the terminal requests a disabled font style, the regular font +style will be used instead.

+

These are only valid if its corresponding font-family is also +specified. If no font-family is specified, then the font-style is +ignored unless you’re disabling the font style.

+
+
+

font-style-bold

+

font-style-italic

+

font-style-bold-italic

+
+
font-synthetic-style
+
+

Control whether Ghostty should synthesize a style if the requested +style is not available in the specified font-family.

+

Ghostty can synthesize bold, italic, and bold italic styles if the +font does not have a specific style. For bold, this is done by drawing +an outline around the glyph of varying thickness. For italic, this is +done by applying a slant to the glyph. For bold italic, both of these +are applied.

+

Synthetic styles are not perfect and will generally not look as good +as a font that has the style natively. However, they are useful to +provide styled text when the font does not have the style.

+

Set this to “false” or “true” to disable or enable synthetic styles +completely. You can disable specific styles using “no-bold”, +“no-italic”, and “no-bold-italic”. You can disable multiple styles by +separating them with a comma. For example, “no-bold,no-italic”.

+

Available style keys are: bold, italic, +bold-italic.

+

If synthetic styles are disabled, then the regular style will be used +instead if the requested style is not available. If the font has the +requested style, then the font will be used as-is since the style is not +synthetic.

+

Warning: An easy mistake is to disable bold or +italic but not bold-italic. Disabling only +bold or italic will NOT disable either in the +bold-italic style. If you want to disable +bold-italic, you must explicitly disable it. You cannot +partially disable bold-italic.

+

By default, synthetic styles are enabled.

+
+
font-feature
+
+

Apply a font feature. This can be repeated multiple times to enable +multiple font features. You can NOT set multiple font features with a +single value (yet).

+

The font feature will apply to all fonts rendered by Ghostty. A +future enhancement will allow targeting specific faces.

+

A valid value is the name of a feature. Prefix the feature with a +- to explicitly disable it. Example: ss20 or +-ss20.

+

To disable programming ligatures, use -calt since this +is the typical feature name for programming ligatures. To look into what +font features your font has and what they do, use a font inspection tool +such as fontdrop.info.

+

To generally disable most ligatures, use -calt, +-liga, and -dlig (as separate repetitive +entries in your config).

+
+
font-size
+
+

Font size in points. This value can be a non-integer and the nearest +integer pixel size will be selected. If you have a high dpi display +where 1pt = 2px then you can get an odd numbered pixel size by +specifying a half point.

+

For example, 13.5pt @ 2px/pt = 27px

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc. Note that you may still not see +the change depending on your window-inherit-font-size +setting. If that setting is true, only the first window will be affected +by this change since all subsequent windows will inherit the font size +of the previous window.

+
+
font-variation
+
+

A repeatable configuration to set one or more font variations values +for a variable font. A variable font is a single font, usually with a +filename ending in -VF.ttf or -VF.otf that +contains one or more configurable axes for things such as weight, slant, +etc. Not all fonts support variations; only fonts that explicitly state +they are variable fonts will work.

+

The format of this is id=value where id is +the axis identifier. An axis identifier is always a 4 character string, +such as wght. To get the list of supported axes, look at +your font documentation or use a font inspection tool.

+

Invalid ids and values are usually ignored. For example, if a font +only supports weights from 100 to 700, setting wght=800 +will do nothing (it will not be clamped to 700). You must consult your +font’s documentation to see what values are supported.

+

Common axes are: wght (weight), slnt +(slant), ital (italic), opsz (optical size), +wdth (width), GRAD (gradient), etc.

+
+
+

font-variation-bold

+

font-variation-italic

+

font-variation-bold-italic

+
+
font-codepoint-map
+
+

Force one or a range of Unicode codepoints to map to a specific named +font. This is useful if you want to support special symbols or if you +want to use specific glyphs that render better for your specific +font.

+

The syntax is codepoint=fontname where +codepoint is either a single codepoint or a range. +Codepoints must be specified as full Unicode hex values, such as +U+ABCD. Codepoints ranges are specified as +U+ABCD-U+DEFG. You can specify multiple ranges for the same +font separated by commas, such as +U+ABCD-U+DEFG,U+1234-U+5678=fontname. The font name is the +same value as you would use for font-family.

+

This configuration can be repeated multiple times to specify multiple +codepoint mappings.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+
+
font-thicken
+
+

Draw fonts with a thicker stroke, if supported. This is only +supported currently on macOS.

+
+
adjust-cell-width
+
+

All of the configurations behavior adjust various metrics determined +by the font. The values can be integers (1, -1, etc.) or a percentage +(20%, -15%, etc.). In each case, the values represent the amount to +change the original value.

+

For example, a value of 1 increases the value by 1; it +does not set it to literally 1. A value of 20% increases +the value by 20%. And so on.

+

There is little to no validation on these values so the wrong values +(i.e. -100%) can cause the terminal to be unusable. Use +with caution and reason.

+

Some values are clamped to minimum or maximum values. This can make +it appear that certain values are ignored. For example, the underline +position is clamped to the height of a cell. If you set the underline +position so high that it extends beyond the bottom of the cell size, it +will be clamped to the bottom of the cell.

+

adjust-cell-height has some additional behaviors to +describe:

+
    +
  • The font will be centered vertically in the cell.

  • +
  • The cursor will remain the same size as the font.

  • +
  • Powerline glyphs will be adjusted along with the cell height so +that things like status lines continue to look aligned.

  • +
+
+
+

adjust-cell-height

+
+
adjust-font-baseline
+
+

Distance in pixels from the bottom of the cell to the text baseline. +Increase to move baseline UP, decrease to move baseline DOWN.

+
+
adjust-underline-position
+
+

Distance in pixels from the top of the cell to the top of the +underline. Increase to move underline DOWN, decrease to move underline +UP.

+
+
adjust-underline-thickness
+
+

Thickness in pixels of the underline.

+
+
adjust-strikethrough-position
+
+

Distance in pixels from the top of the cell to the top of the +strikethrough. Increase to move strikethrough DOWN, decrease to move +underline UP.

+
+
adjust-strikethrough-thickness
+
+

Thickness in pixels of the strikethrough.

+
+
adjust-overline-position
+
+

Distance in pixels from the top of the cell to the top of the +overline. Increase to move overline DOWN, decrease to move underline +UP.

+
+
adjust-overline-thickness
+
+

Thickness in pixels of the overline.

+
+
adjust-cursor-thickness
+
+

Thickness in pixels of the bar cursor and outlined rect cursor.

+
+
adjust-box-thickness
+
+

Thickness in pixels of box drawing characters.

+
+
grapheme-width-method
+
+

The method to use for calculating the cell width of a grapheme +cluster. The default value is unicode which uses the +Unicode standard to determine grapheme width. This results in correct +grapheme width but may result in cursor-desync issues with some programs +(such as shells) that may use a legacy method such as +wcswidth.

+

Valid values are:

+
    +
  • legacy - Use a legacy method to determine grapheme +width, such as wcswidth This maximizes compatibility with legacy +programs but may result in incorrect grapheme width for certain +graphemes such as skin-tone emoji, non-English characters, etc.

    +

    This is called “legacy” and not something more specific because the +behavior is undefined and we want to retain the ability to modify it. +For example, we may or may not use libc wcswidth now or in +the future.

  • +
  • unicode - Use the Unicode standard to determine +grapheme width.

  • +
+

If a running program explicitly enables terminal mode 2027, then +unicode width will be forced regardless of this +configuration. When mode 2027 is reset, this configuration will be used +again.

+

This configuration can be changed at runtime but will not affect +existing terminals. Only new terminals will use the new +configuration.

+
+
freetype-load-flags
+
+

FreeType load flags to enable. The format of this is a list of flags +to enable separated by commas. If you prefix a flag with +no- then it is disabled. If you omit a flag, it’s default +value is used, so you must explicitly disable flags you don’t want. You +can also use true or false to turn all flags +on or off.

+

This configuration only applies to Ghostty builds that use FreeType. +This is usually the case only for Linux builds. macOS uses CoreText and +does not have an equivalent configuration.

+

Available flags:

+
    +
  • hinting - Enable or disable hinting, enabled by +default.
  • +
  • force-autohint - Use the freetype auto-hinter rather +than the font’s native hinter. Enabled by default.
  • +
  • monochrome - Instructs renderer to use 1-bit monochrome +rendering. This option doesn’t impact the hinter. Enabled by +default.
  • +
  • autohint - Use the freetype auto-hinter. Enabled by +default.
  • +
+

Example: hinting, no-hinting, +force-autohint, no-force-autohint

+
+
theme
+
+

A theme to use. This can be a built-in theme name, a custom theme +name, or an absolute path to a custom theme file. Ghostty also supports +specifying a different theme to use for light and dark mode. Each option +is documented below.

+

If the theme is an absolute pathname, Ghostty will attempt to load +that file as a theme. If that file does not exist or is inaccessible, an +error will be logged and no other directories will be searched.

+

If the theme is not an absolute pathname, two different directories +will be searched for a file name that matches the theme. This is case +sensitive on systems with case-sensitive filesystems. It is an error for +a theme name to include path separators unless it is an absolute +pathname.

+

The first directory is the themes subdirectory of your +Ghostty configuration directory. This is +$XDG_CONFIG_DIR/ghostty/themes or +~/.config/ghostty/themes.

+

The second directory is the themes subdirectory of the +Ghostty resources directory. Ghostty ships with a multitude of themes +that will be installed into this directory. On macOS, this list is in +the Ghostty.app/Contents/ Resources/ghostty/themes +directory. On Linux, this list is in the +share/ ghostty/themes directory (wherever you installed the +Ghostty “share” directory.

+

To see a list of available themes, run +ghostty +list-themes.

+

A theme file is simply another Ghostty configuration file. They share +the same syntax and same configuration options. A theme can set any +valid configuration option so please do not use a theme file from an +untrusted source. The built-in themes are audited to only set safe +configuration options.

+

Some options cannot be set within theme files. The reason these are +not supported should be self-evident. A theme file cannot set +theme or config-file. At the time of writing +this, Ghostty will not show any warnings or errors if you set these +options in a theme file but they will be silently ignored.

+

Any additional colors specified via background, foreground, palette, +etc. will override the colors specified in the theme.

+

To specify a different theme for light and dark mode, use the +following syntax: light:theme-name,dark:theme-name. For +example: light:rose-pine-dawn,dark:rose-pine. Whitespace +around all values are trimmed and order of light and dark does not +matter. Both light and dark must be specified in this form. In this +form, the theme used will be based on the current desktop environment +theme.

+

There are some known bugs with light/dark mode theming. These will be +fixed in a future update:

+
    +
  • macOS: titlebar tabs style is not updated when switching +themes.
  • +
+
+
background
+
+

Background color for the window.

+
+
foreground
+
+

Foreground color for the window.

+
+
selection-foreground
+
+

The foreground and background color for selection. If this is not +set, then the selection color is just the inverted window background and +foreground (note: not to be confused with the cell bg/fg).

+
+
+

selection-background

+
+
selection-invert-fg-bg
+
+

Swap the foreground and background colors of cells for selection. +This option overrides the selection-foreground and +selection-background options.

+

If you select across cells with differing foregrounds and +backgrounds, the selection color will vary across the selection.

+
+
minimum-contrast
+
+

The minimum contrast ratio between the foreground and background +colors. The contrast ratio is a value between 1 and 21. A value of 1 +allows for no contrast (i.e. black on black). This value is the contrast +ratio as defined by the WCAG 2.0 +specification.

+

If you want to avoid invisible text (same color as background), a +value of 1.1 is a good value. If you want to avoid text that is +difficult to read, a value of 3 or higher is a good value. The higher +the value, the more likely that text will become black or white.

+

This value does not apply to Emoji or images.

+
+
palette
+
+

Color palette for the 256 color form that many terminal applications +use. The syntax of this configuration is N=HEXCODE where +N is 0 to 255 (for the 256 colors in the terminal color +table) and HEXCODE is a typical RGB color code such as +#AABBCC.

+

For definitions on all the codes see this cheat +sheet.

+
+
cursor-color
+
+

The color of the cursor. If this is not set, a default will be +chosen.

+
+
cursor-invert-fg-bg
+
+

Swap the foreground and background colors of the cell under the +cursor. This option overrides the cursor-color and +cursor-text options.

+
+
cursor-opacity
+
+

The opacity level (opposite of transparency) of the cursor. A value +of 1 is fully opaque and a value of 0 is fully transparent. A value less +than 0 or greater than 1 will be clamped to the nearest valid value. +Note that a sufficiently small value such as 0.3 may be effectively +invisible and may make it difficult to find the cursor.

+
+
cursor-style
+
+

The style of the cursor. This sets the default style. A running +program can still request an explicit cursor style using escape +sequences (such as CSI q). Shell configurations will often +request specific cursor styles.

+

Note that shell integration will automatically set the cursor to a +bar at a prompt, regardless of this configuration. You can disable that +behavior by specifying +shell-integration-features = no-cursor or disabling shell +integration entirely.

+

Valid values are:

+
    +
  • block
  • +
  • bar
  • +
  • underline
  • +
  • block_hollow
  • +
+
+
cursor-style-blink
+
+

Sets the default blinking state of the cursor. This is just the +default state; running programs may override the cursor style using +DECSCUSR (CSI q).

+

If this is not set, the cursor blinks by default. Note that this is +not the same as a “true” value, as noted below.

+

If this is not set at all (null), then Ghostty will +respect DEC Mode 12 (AT&T cursor blink) as an alternate approach to +turning blinking on/off. If this is set to any value other than null, +DEC mode 12 will be ignored but DECSCUSR will still be +respected.

+

Valid values are:

+
    +
  • `` (blank)
  • +
  • true
  • +
  • false
  • +
+
+
cursor-text
+
+

The color of the text under the cursor. If this is not set, a default +will be chosen.

+
+
cursor-click-to-move
+
+

Enables the ability to move the cursor at prompts by using +alt+click on Linux and option+click on +macOS.

+

This feature requires shell integration (specifically prompt marking +via OSC 133) and only works in primary screen mode. +Alternate screen applications like vim usually have their own version of +this feature but this configuration doesn’t control that.

+

It should be noted that this feature works by translating your +desired position into a series of synthetic arrow key movements, so some +weird behavior around edge cases are to be expected. This is +unfortunately how this feature is implemented across terminals because +there isn’t any other way to implement it.

+
+
mouse-hide-while-typing
+
+

Hide the mouse immediately when typing. The mouse becomes visible +again when the mouse is used (button, movement, etc.). Platform-specific +behavior may dictate other scenarios where the mouse is shown. For +example on macOS, the mouse is shown again when a new window, tab, or +split is created.

+
+
mouse-shift-capture
+
+

Determines whether running programs can detect the shift key pressed +with a mouse click. Typically, the shift key is used to extend mouse +selection.

+

The default value of false means that the shift key is +not sent with the mouse protocol and will extend the selection. This +value can be conditionally overridden by the running program with the +XTSHIFTESCAPE sequence.

+

The value true means that the shift key is sent with the +mouse protocol but the running program can override this behavior with +XTSHIFTESCAPE.

+

The value never is the same as false but +the running program cannot override this behavior with +XTSHIFTESCAPE. The value always is the same as +true but the running program cannot override this behavior +with XTSHIFTESCAPE.

+

If you always want shift to extend mouse selection even if the +program requests otherwise, set this to never.

+

Valid values are:

+
    +
  • true
  • +
  • false
  • +
  • always
  • +
  • never
  • +
+
+
mouse-scroll-multiplier
+
+

Multiplier for scrolling distance with the mouse wheel. Any value +less than 0.01 or greater than 10,000 will be clamped to the nearest +valid value.

+

A value of “1” (default) scrolls te default amount. A value of “2” +scrolls double the default amount. A value of “0.5” scrolls half the +default amount. Et cetera.

+
+
background-opacity
+
+

The opacity level (opposite of transparency) of the background. A +value of 1 is fully opaque and a value of 0 is fully transparent. A +value less than 0 or greater than 1 will be clamped to the nearest valid +value.

+

On macOS, background opacity is disabled when the terminal enters +native fullscreen. This is because the background becomes gray and it +can cause widgets to show through which isn’t generally desirable.

+
+
background-blur-radius
+
+

A positive value enables blurring of the background when +background-opacity is less than 1. The value is the blur radius to +apply. A value of 20 is reasonable for a good looking blur. Higher +values will cause strange rendering issues as well as performance +issues.

+

This is only supported on macOS.

+
+
unfocused-split-opacity
+
+

The opacity level (opposite of transparency) of an unfocused split. +Unfocused splits by default are slightly faded out to make it easier to +see which split is focused. To disable this feature, set this value to +1.

+

A value of 1 is fully opaque and a value of 0 is fully transparent. +Because “0” is not useful (it makes the window look very weird), the +minimum value is 0.15. This value still looks weird but you can at least +see what’s going on. A value outside of the range 0.15 to 1 will be +clamped to the nearest valid value.

+
+
unfocused-split-fill
+
+

The color to dim the unfocused split. Unfocused splits are dimmed by +rendering a semi-transparent rectangle over the split. This sets the +color of that rectangle and can be used to carefully control the dimming +effect.

+

This will default to the background color.

+
+
command
+
+

The command to run, usually a shell. If this is not an absolute path, +it’ll be looked up in the PATH. If this is not set, a +default will be looked up from your system. The rules for the default +lookup are:

+
    +
  • SHELL environment variable

  • +
  • passwd entry (user information)

  • +
+

This can contain additional arguments to run the command with. If +additional arguments are provided, the command will be executed using +/bin/sh -c. Ghostty does not do any shell command +parsing.

+

This command will be used for all new terminal surfaces, i.e. new +windows, tabs, etc. If you want to run a command only for the first +terminal surface created when Ghostty starts, use the +initial-command configuration.

+

Ghostty supports the common -e flag for executing a +command with arguments. For example, +ghostty -e fish --with --custom --args. This flag sets the +initial-command configuration, see that for more +information.

+
+
initial-command
+
+

This is the same as “command”, but only applies to the first terminal +surface created when Ghostty starts. Subsequent terminal surfaces will +use the command configuration.

+

After the first terminal surface is created (or closed), there is no +way to run this initial command again automatically. As such, setting +this at runtime works but will only affect the next terminal surface if +it is the first one ever created.

+

If you’re using the ghostty CLI there is also a shortcut +to set this with arguments directly: you can use the -e +flag. For example: ghostty -e fish --with --custom --args. +The -e flag automatically forces some other behaviors as +well:

+
    +
  • gtk-single-instance=false - This ensures that a new +instance is launched and the CLI args are respected.

  • +
  • quit-after-last-window-closed=true - This ensures +that the Ghostty process will exit when the command exits. Additionally, +the quit-after-last-window-closed-delay is unset.

  • +
  • shell-integration=detect (if not none) +- This prevents forcibly injecting any configured shell integration into +the command’s environment. With -e its highly unlikely that +you’re executing a shell and forced shell integration is likely to cause +problems (i.e. by wrapping your command in a shell, setting env vars, +etc.). This is a safety measure to prevent unexpected behavior. If you +want shell integration with a -e-executed command, you must +either name your binary appopriately or source the shell integration +script manually.

  • +
+
+
wait-after-command
+
+

If true, keep the terminal open after the command exits. Normally, +the terminal window closes when the running command (such as a shell) +exits. With this true, the terminal window will stay open until any +keypress is received.

+

This is primarily useful for scripts or debugging.

+
+
abnormal-command-exit-runtime
+
+

The number of milliseconds of runtime below which we consider a +process exit to be abnormal. This is used to show an error message when +the process exits too quickly.

+

On Linux, this must be paired with a non-zero exit code. On macOS, we +allow any exit code because of the way shell processes are launched via +the login command.

+
+
scrollback-limit
+
+

The size of the scrollback buffer in bytes. This also includes the +active screen. No matter what this is set to, enough memory will always +be allocated for the visible screen and anything leftover is the limit +for the scrollback.

+

When this limit is reached, the oldest lines are removed from the +scrollback.

+

Scrollback currently exists completely in memory. This means that the +larger this value, the larger potential memory usage. Scrollback is +allocated lazily up to this limit, so if you set this to a very large +value, it will not immediately consume a lot of memory.

+

This size is per terminal surface, not for the entire +application.

+

It is not currently possible to set an unlimited scrollback buffer. +This is a future planned feature.

+

This can be changed at runtime but will only affect new terminal +surfaces.

+
+
link
+
+

Match a regular expression against the terminal text and associate +clicking it with an action. This can be used to match URLs, file paths, +etc. Actions can be opening using the system opener +(i.e. open or xdg-open) or executing any +arbitrary binding action.

+

Links that are configured earlier take precedence over links that are +configured later.

+

A default link that matches a URL and opens it in the system opener +always exists. This can be disabled using link-url.

+

TODO: This can’t currently be set!

+
+
link-url
+
+

Enable URL matching. URLs are matched on hover with control (Linux) +or super (macOS) pressed and open using the default system application +for the linked URL.

+

The URL matcher is always lowest priority of any configured links +(see link). If you want to customize URL matching, use +link and disable this.

+
+
fullscreen
+
+

Start new windows in fullscreen. This setting applies to new windows +and does not apply to tabs, splits, etc. However, this setting will +apply to all new windows, not just the first one.

+

On macOS, this setting does not work if window-decoration is set to +“false”, because native fullscreen on macOS requires window decorations +to be set.

+
+
title
+
+

The title Ghostty will use for the window. This will force the title +of the window to be this title at all times and Ghostty will ignore any +set title escape sequences programs (such as Neovim) may send.

+

If you want a blank title, set this to one or more spaces by quoting +the value. For example, title = " ". This effectively hides +the title. This is necessary because setting a blank value resets the +title to the default value of the running program.

+

This configuration can be reloaded at runtime. If it is set, the +title will update for all windows. If it is unset, the next title change +escape sequence will be honored but previous changes will not +retroactively be set. This latter case may require you restart programs +such as neovim to get the new title.

+
+
class
+
+

The setting that will change the application class value.

+

This controls the class field of the WM_CLASS X11 +property (when running under X11), and the Wayland application ID (when +running under Wayland).

+

Note that changing this value between invocations will create new, +separate instances, of Ghostty when running with +gtk-single-instance=true. See that option for more +details.

+

The class name must follow the requirements defined in +the GTK documentation.

+

The default is com.mitchellh.ghostty.

+

This only affects GTK builds.

+
+
x11-instance-name
+
+

This controls the instance name field of the WM_CLASS +X11 property when running under X11. It has no effect otherwise.

+

The default is ghostty.

+

This only affects GTK builds.

+
+
working-directory
+
+

The directory to change to after starting the command.

+

This setting is secondary to the +window-inherit-working-directory setting. If a previous +Ghostty terminal exists in the same process, +window-inherit-working-directory will take precedence. +Otherwise, this setting will be used. Typically, this setting is used +only for the first window.

+

The default is inherit except in special scenarios +listed next. On macOS, if Ghostty can detect it is launched from launchd +(double-clicked) or open, then it defaults to +home. On Linux with GTK, if Ghostty can detect it was +launched from a desktop launcher, then it defaults to +home.

+

The value of this must be an absolute value or one of the special +values below:

+
    +
  • home - The home directory of the executing +user.

  • +
  • inherit - The working directory of the launching +process.

  • +
+
+
keybind
+
+

Key bindings. The format is trigger=action. Duplicate +triggers will overwrite previously set values. The list of actions is +available in the documentation or using the +ghostty +list-actions command.

+

Trigger: +-separated list of keys and modifiers. +Example: ctrl+a, ctrl+shift+b, +up. Some notes:

+
    +
  • modifiers cannot repeat, ctrl+ctrl+a is +invalid.

  • +
  • modifiers and keys can be in any order, shift+a+ctrl +is weird, but valid.

  • +
  • only a single key input is allowed, ctrl+a+b is +invalid.

  • +
  • the key input can be prefixed with physical: to +specify a physical key mapping rather than a logical one. A physical key +mapping responds to the hardware keycode and not the keycode translated +by any system keyboard layouts. Example: “ctrl+physical:a”

  • +
+

Valid modifiers are shift, ctrl (alias: +control), alt (alias: opt, +option), and super (alias: cmd, +command). You may use the modifier or the alias. When +debugging keybinds, the non-aliased modifier will always be used in +output.

+

Note: The fn or “globe” key on keyboards are not supported as a +modifier. This is a limitation of the operating systems and GUI toolkits +that Ghostty uses.

+

You may also specify multiple triggers separated by > +to require a sequence of triggers to activate the action. For example, +ctrl+a>n=new_window will only trigger the +new_window action if the user presses ctrl+a +followed separately by n. In other software, this is +sometimes called a leader key, a key chord, a key table, etc. There is +no hardcoded limit on the number of parts in a sequence.

+

Warning: If you define a sequence as a CLI argument to +ghostty, you probably have to quote the keybind since +> is a special character in most shells. Example: +ghostty –keybind=‘ctrl+a>n=new_window’

+

A trigger sequence has some special handling:

+
    +
  • Ghostty will wait an indefinite amount of time for the next key +in the sequence. There is no way to specify a timeout. The only way to +force the output of a prefix key is to assign another keybind to +specifically output that key +(i.e. ctrl+a>ctrl+a=text:foo) or press an unbound key +which will send both keys to the program.

  • +
  • If a prefix in a sequence is previously bound, the sequence will +override the previous binding. For example, if ctrl+a is +bound to new_window and ctrl+a>n is bound +to new_tab, pressing ctrl+a will do +nothing.

  • +
  • Adding to the above, if a previously bound sequence prefix is +used in a new, non-sequence binding, the entire previously bound +sequence will be unbound. For example, if you bind +ctrl+a>n and ctrl+a>t, and then bind +ctrl+a directly, both ctrl+a>n and +ctrl+a>t will become unbound.

  • +
  • Trigger sequences are not allowed for global: or +all:-prefixed triggers. This is a limitation we could +remove in the future.

  • +
+

Action is the action to take when the trigger is satisfied. It takes +the format action or action:param. The latter +form is only valid if the action requires a parameter.

+
    +
  • ignore - Do nothing, ignore the key input. This can +be used to black hole certain inputs to have no effect.

  • +
  • unbind - Remove the binding. This makes it so the +previous action is removed, and the key will be sent through to the +child command if it is printable.

  • +
  • csi:text - Send a CSI sequence. +i.e. csi:A sends “cursor up”.

  • +
  • esc:text - Send an escape sequence. +i.e. esc:d deletes to the end of the word to the +right.

  • +
  • text:text - Send a string. Uses Zig string literal +syntax. i.e. text:\x15 sends Ctrl-U.

  • +
  • All other actions can be found in the documentation or by using +the ghostty +list-actions command.

  • +
+

Some notes for the action:

+
    +
  • The parameter is taken as-is after the :. Double quotes +or other mechanisms are included and NOT parsed. If you want to send a +string value that includes spaces, wrap the entire trigger/action in +double quotes. Example: --keybind="up=csi:A B"
  • +
+

There are some additional special values that can be specified for +keybind:

+
    +
  • keybind=clear will clear all set keybindings. Warning: +this removes ALL keybindings up to this point, including the default +keybindings.
  • +
+

The keybind trigger can be prefixed with some special values to +change the behavior of the keybind. These are:

+
    +
  • all: - Make the keybind apply to all terminal +surfaces. By default, keybinds only apply to the focused terminal +surface. If this is true, then the keybind will be sent to all terminal +surfaces. This only applies to actions that are surface-specific. For +actions that are already global (i.e. quit), this prefix +has no effect.

  • +
  • global: - Make the keybind global. By default, +keybinds only work within Ghostty and under the right conditions +(application focused, sometimes terminal focused, etc.). If you want a +keybind to work globally across your system (i.e. even when Ghostty is +not focused), specify this prefix. This prefix implies +all:. Note: this does not work in all environments; see the +additional notes below for more information.

  • +
  • unconsumed: - Do not consume the input. By default, +a keybind will consume the input, meaning that the associated encoding +(if any) will not be sent to the running program in the terminal. If you +wish to send the encoded value to the program, specify the +unconsumed: prefix before the entire keybind. For example: +unconsumed:ctrl+a=reload_config. global: and +all:-prefixed keybinds will always consume the input +regardless of this setting. Since they are not associated with a +specific terminal surface, they’re never encoded.

  • +
+

Keybind triggers are not unique per prefix combination. For example, +ctrl+a and global:ctrl+a are not two separate +keybinds. The keybind set later will overwrite the keybind set earlier. +In this case, the global: keybind will be used.

+

Multiple prefixes can be specified. For example, +global:unconsumed:ctrl+a=reload_config will make the +keybind global and not consume the input to reload the config.

+

Note: global: is only supported on macOS. On macOS, this +feature requires accessibility permissions to be granted to Ghostty. +When a global: keybind is specified and Ghostty is launched +or reloaded, Ghostty will attempt to request these permissions. If the +permissions are not granted, the keybind will not work. On macOS, you +can find these permissions in System Preferences -> Privacy & +Security -> Accessibility.

+
+
window-padding-x
+
+

Horizontal window padding. This applies padding between the terminal +cells and the left and right window borders. The value is in points, +meaning that it will be scaled appropriately for screen DPI.

+

If this value is set too large, the screen will render nothing, +because the grid will be completely squished by the padding. It is up to +you as the user to pick a reasonable value. If you pick an unreasonable +value, a warning will appear in the logs.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+

To set a different left and right padding, specify two numerical +values separated by a comma. For example, +window-padding-x = 2,4 will set the left padding to 2 and +the right padding to 4. If you want to set both paddings to the same +value, you can use a single value. For example, +window-padding-x = 2 will set both paddings to 2.

+
+
window-padding-y
+
+

Vertical window padding. This applies padding between the terminal +cells and the top and bottom window borders. The value is in points, +meaning that it will be scaled appropriately for screen DPI.

+

If this value is set too large, the screen will render nothing, +because the grid will be completely squished by the padding. It is up to +you as the user to pick a reasonable value. If you pick an unreasonable +value, a warning will appear in the logs.

+

Changing this configuration at runtime will only affect new +terminals, i.e. new windows, tabs, etc.

+

To set a different top and bottom padding, specify two numerical +values separated by a comma. For example, +window-padding-y = 2,4 will set the top padding to 2 and +the bottom padding to 4. If you want to set both paddings to the same +value, you can use a single value. For example, +window-padding-y = 2 will set both paddings to 2.

+
+
window-padding-balance
+
+

The viewport dimensions are usually not perfectly divisible by the +cell size. In this case, some extra padding on the end of a column and +the bottom of the final row may exist. If this is true, +then this extra padding is automatically balanced between all four edges +to minimize imbalance on one side. If this is false, the +top left grid cell will always hug the edge with zero padding other than +what may be specified with the other window-padding +options.

+

If other window-padding fields are set and this is +true, this will still apply. The other padding is applied +first and may affect how many grid cells actually exist, and this is +applied last in order to balance the padding given a certain viewport +size and grid cell size.

+
+
window-padding-color
+
+

The color of the padding area of the window. Valid values are:

+
    +
  • background - The background color specified in +background.
  • +
  • extend - Extend the background color of the nearest +grid cell.
  • +
  • extend-always - Same as “extend” but always extends +without applying any of the heuristics that disable extending noted +below.
  • +
+

The “extend” value will be disabled in certain scenarios. On primary +screen applications (i.e. not something like Neovim), the color will not +be extended vertically if any of the following are true:

+
    +
  • The nearest row has any cells that have the default background +color. The thinking is that in this case, the default background color +looks fine as a padding color.
  • +
  • The nearest row is a prompt row (requires shell integration). The +thinking here is that prompts often contain powerline glyphs that do not +look good extended.
  • +
  • The nearest row contains a perfect fit powerline character. These +don’t look good extended.
  • +
+
+
window-vsync
+
+

Synchronize rendering with the screen refresh rate. If true, this +will minimize tearing and align redraws with the screen but may cause +input latency. If false, this will maximize redraw frequency but may +cause tearing, and under heavy load may use more CPU and power.

+

This defaults to true because out-of-sync rendering on macOS can +cause kernel panics (macOS 14.4+) and performance issues for external +displays over some hardware such as DisplayLink. If you want to minimize +input latency, set this to false with the known aforementioned +risks.

+

Changing this value at runtime will only affect new terminals.

+

This setting is only supported currently on macOS.

+
+
window-inherit-working-directory
+
+

If true, new windows and tabs will inherit the working directory of +the previously focused window. If no window was previously focused, the +default working directory will be used (the +working-directory option).

+
+
window-inherit-font-size
+
+

If true, new windows and tabs will inherit the font size of the +previously focused window. If no window was previously focused, the +default font size will be used. If this is false, the default font size +specified in the configuration font-size will be used.

+
+
window-decoration
+
+

Valid values:

+
    +
  • true
  • +
  • false - windows won’t have native decorations, +i.e. titlebar and borders. On macOS this also disables tabs and tab +overview.
  • +
+

The “toggle_window_decorations” keybind action can be used to create +a keybinding to toggle this setting at runtime.

+

Changing this configuration in your configuration and reloading will +only affect new windows. Existing windows will not be affected.

+

macOS: To hide the titlebar without removing the native window +borders or rounded corners, use +macos-titlebar-style = hidden instead.

+
+
window-title-font-family
+
+

The font that will be used for the application’s window and tab +titles.

+

This is currently only supported on macOS.

+
+
window-theme
+
+

The theme to use for the windows. Valid values:

+
    +
  • auto - Determine the theme based on the configured +terminal background color. This has no effect if the “theme” +configuration has separate light and dark themes. In that case, the +behavior of “auto” is equivalent to “system”.
  • +
  • system - Use the system theme.
  • +
  • light - Use the light theme regardless of system +theme.
  • +
  • dark - Use the dark theme regardless of system +theme.
  • +
  • ghostty - Use the background and foreground colors +specified in the Ghostty configuration. This is only supported on Linux +builds with Adwaita and gtk-adwaita enabled.
  • +
+

On macOS, if macos-titlebar-style is “tabs”, the window +theme will be automatically set based on the luminosity of the terminal +background color. This only applies to terminal windows. This setting +will still apply to non-terminal windows within Ghostty.

+

This is currently only supported on macOS and Linux.

+
+
window-colorspace
+
+

The colorspace to use for the terminal window. The default is +srgb but this can also be set to display-p3 to +use the Display P3 colorspace.

+

Changing this value at runtime will only affect new windows.

+

This setting is only supported on macOS.

+
+
window-height
+
+

The initial window size. This size is in terminal grid cells by +default. Both values must be set to take effect. If only one value is +set, it is ignored.

+

We don’t currently support specifying a size in pixels but a future +change can enable that. If this isn’t specified, the app runtime will +determine some default size.

+

Note that the window manager may put limits on the size or override +the size. For example, a tiling window manager may force the window to +be a certain size to fit within the grid. There is nothing Ghostty will +do about this, but it will make an effort.

+

Sizes larger than the screen size will be clamped to the screen size. +This can be used to create a maximized-by-default window size.

+

This will not affect new tabs, splits, or other nested terminal +elements. This only affects the initial window size of any new window. +Changing this value will not affect the size of the window after it has +been created. This is only used for the initial size.

+

BUG: On Linux with GTK, the calculated window size will not properly +take into account window decorations. As a result, the grid dimensions +will not exactly match this configuration. If window decorations are +disabled (see window-decorations), then this will work as expected.

+

Windows smaller than 10 wide by 4 high are not allowed.

+
+
+

window-width

+
+
window-save-state
+
+

Whether to enable saving and restoring window state. Window state +includes their position, size, tabs, splits, etc. Some window state +requires shell integration, such as preserving working directories. See +shell-integration for more information.

+

There are three valid values for this configuration:

+
    +
  • default will use the default system behavior. On +macOS, this will only save state if the application is forcibly +terminated or if it is configured systemwide via Settings.app.

  • +
  • never will never save window state.

  • +
  • always will always save window state whenever +Ghostty is exited.

  • +
+

If you change this value to never while Ghostty is not +running, the next Ghostty launch will NOT restore the window state.

+

If you change this value to default while Ghostty is not +running and the previous exit saved state, the next Ghostty launch will +still restore the window state. This is because Ghostty cannot know if +the previous exit was due to a forced save or not (macOS doesn’t provide +this information).

+

If you change this value so that window state is saved while Ghostty +is not running, the previous window state will not be restored because +Ghostty only saves state on exit if this is enabled.

+

The default value is default.

+

This is currently only supported on macOS. This has no effect on +Linux.

+
+
window-step-resize
+
+

Resize the window in discrete increments of the focused surface’s +cell size. If this is disabled, surfaces are resized in pixel +increments. Currently only supported on macOS.

+
+
window-new-tab-position
+
+

The position where new tabs are created. Valid values:

+
    +
  • current - Insert the new tab after the currently +focused tab, or at the end if there are no focused tabs.

  • +
  • end - Insert the new tab at the end of the tab +list.

  • +
+
+
resize-overlay
+
+

This controls when resize overlays are shown. Resize overlays are a +transient popup that shows the size of the terminal while the surfaces +are being resized. The possible options are:

+
    +
  • always - Always show resize overlays.
  • +
  • never - Never show resize overlays.
  • +
  • after-first - The resize overlay will not appear when +the surface is first created, but will show up if the surface is +subsequently resized.
  • +
+

The default is after-first.

+
+
resize-overlay-position
+
+

If resize overlays are enabled, this controls the position of the +overlay. The possible options are:

+
    +
  • center
  • +
  • top-left
  • +
  • top-center
  • +
  • top-right
  • +
  • bottom-left
  • +
  • bottom-center
  • +
  • bottom-right
  • +
+

The default is center.

+
+
resize-overlay-duration
+
+

If resize overlays are enabled, this controls how long the overlay is +visible on the screen before it is hidden. The default is ¾ of a second +or 750 ms.

+

The duration is specified as a series of numbers followed by time +units. Whitespace is allowed between numbers and units. Each number and +unit will be added together to form the total duration.

+

The allowed time units are as follows:

+
    +
  • y - 365 SI days, or 8760 hours, or 31536000 seconds. No +adjustments are made for leap years or leap seconds.
  • +
  • d - one SI day, or 86400 seconds.
  • +
  • h - one hour, or 3600 seconds.
  • +
  • m - one minute, or 60 seconds.
  • +
  • s - one second.
  • +
  • ms - one millisecond, or 0.001 second.
  • +
  • us or µs - one microsecond, or 0.000001 +second.
  • +
  • ns - one nanosecond, or 0.000000001 second.
  • +
+

Examples: * 1h30m * 45s

+

Units can be repeated and will be added together. This means that +1h1h is equivalent to 2h. This is confusing +and should be avoided. A future update may disallow this.

+

The maximum value is +584y 49w 23h 34m 33s 709ms 551µs 615ns. Any value larger +than this will be clamped to the maximum value.

+
+
+

focus-follows-mouse

+
+
clipboard-read
+
+

Whether to allow programs running in the terminal to read/write to +the system clipboard (OSC 52, for googling). The default is to allow +clipboard reading after prompting the user and allow writing +unconditionally.

+

Valid values are:

+
    +
  • ask
  • +
  • allow
  • +
  • deny
  • +
+
+
+

clipboard-write

+
+
clipboard-trim-trailing-spaces
+
+

Trims trailing whitespace on data that is copied to the clipboard. +This does not affect data sent to the clipboard via +clipboard-write.

+
+
clipboard-paste-protection
+
+

Require confirmation before pasting text that appears unsafe. This +helps prevent a “copy/paste attack” where a user may accidentally +execute unsafe commands by pasting text with newlines.

+
+
clipboard-paste-bracketed-safe
+
+

If true, bracketed pastes will be considered safe. By default, +bracketed pastes are considered safe. “Bracketed” pastes are pastes +while the running program has bracketed paste mode enabled (a setting +set by the running program, not the terminal emulator).

+
+
image-storage-limit
+
+

The total amount of bytes that can be used for image data (i.e. the +Kitty image protocol) per terminal screen. The maximum value is +4,294,967,295 (4GiB). The default is 320MB. If this is set to zero, then +all image protocols will be disabled.

+

This value is separate for primary and alternate screens so the +effective limit per surface is double.

+
+
copy-on-select
+
+

Whether to automatically copy selected text to the clipboard. +true will prefer to copy to the selection clipboard if +supported by the OS, otherwise it will copy to the system clipboard.

+

The value clipboard will always copy text to the +selection clipboard (for supported systems) as well as the system +clipboard. This is sometimes a preferred behavior on Linux.

+

Middle-click paste will always use the selection clipboard on Linux +and the system clipboard on macOS. Middle-click paste is always enabled +even if this is false.

+

The default value is true on Linux and false on macOS. macOS copy on +select behavior is not typical for applications so it is disabled by +default. On Linux, this is a standard behavior so it is enabled by +default.

+
+
click-repeat-interval
+
+

The time in milliseconds between clicks to consider a click a repeat +(double, triple, etc.) or an entirely new single click. A value of zero +will use a platform-specific default. The default on macOS is determined +by the OS settings. On every other platform it is 500ms.

+
+
config-file
+
+

Additional configuration files to read. This configuration can be +repeated to read multiple configuration files. Configuration files +themselves can load more configuration files. Paths are relative to the +file containing the config-file directive. For command-line +arguments, paths are relative to the current working directory.

+

Prepend a ? character to the file path to suppress errors if the file +does not exist. If you want to include a file that begins with a literal +? character, surround the file path in double quotes (“).

+

Cycles are not allowed. If a cycle is detected, an error will be +logged and the configuration file will be ignored.

+

Configuration files are loaded after the configuration they’re +defined within in the order they’re defined. THIS IS A VERY +SUBTLE BUT IMPORTANT POINT. To put it another way: +configuration files do not take effect until after the entire +configuration is loaded. For example, in the configuration below:

+
config-file = "foo"
+a = 1
+

If “foo” contains a = 2, the final value of +a will be 2, because foo is loaded after the +configuration file that configures the nested config-file +value.

+
+
config-default-files
+
+

When this is true, the default configuration file paths will be +loaded. The default configuration file paths are currently only the XDG +config path ($XDG_CONFIG_HOME/ghostty/config).

+

If this is false, the default configuration paths will not be loaded. +This is targeted directly at using Ghostty from the CLI in a way that +minimizes external effects.

+

This is a CLI-only configuration. Setting this in a configuration +file will have no effect. It is not an error, but it will not do +anything. This configuration can only be set via CLI arguments.

+
+
confirm-close-surface
+
+

Confirms that a surface should be closed before closing it. This +defaults to true. If set to false, surfaces will close without any +confirmation.

+
+
quit-after-last-window-closed
+
+

Whether or not to quit after the last surface is closed.

+

This defaults to false on macOS since that is standard +behavior for a macOS application. On Linux, this defaults to +true since that is generally expected behavior.

+

On Linux, if this is true, Ghostty can delay quitting +fully until a configurable amount of time has passed after the last +window is closed. See the documentation of +quit-after-last-window-closed-delay.

+
+
quit-after-last-window-closed-delay
+
+

Controls how long Ghostty will stay running after the last open +surface has been closed. This only has an effect if +quit-after-last-window-closed is also set to +true.

+

The minimum value for this configuration is 1s. Any +values lower than this will be clamped to 1s.

+

The duration is specified as a series of numbers followed by time +units. Whitespace is allowed between numbers and units. Each number and +unit will be added together to form the total duration.

+

The allowed time units are as follows:

+
    +
  • y - 365 SI days, or 8760 hours, or 31536000 seconds. No +adjustments are made for leap years or leap seconds.
  • +
  • d - one SI day, or 86400 seconds.
  • +
  • h - one hour, or 3600 seconds.
  • +
  • m - one minute, or 60 seconds.
  • +
  • s - one second.
  • +
  • ms - one millisecond, or 0.001 second.
  • +
  • us or µs - one microsecond, or 0.000001 +second.
  • +
  • ns - one nanosecond, or 0.000000001 second.
  • +
+

Examples: * 1h30m * 45s

+

Units can be repeated and will be added together. This means that +1h1h is equivalent to 2h. This is confusing +and should be avoided. A future update may disallow this.

+

The maximum value is +584y 49w 23h 34m 33s 709ms 551µs 615ns. Any value larger +than this will be clamped to the maximum value.

+

By default quit-after-last-window-closed-delay is unset +and Ghostty will quit immediately after the last window is closed if +quit-after-last-window-closed is true.

+

Only implemented on Linux.

+
+
initial-window
+
+

This controls whether an initial window is created when Ghostty is +run. Note that if quit-after-last-window-closed is +true and quit-after-last-window-closed-delay +is set, setting initial-window to false will +mean that Ghostty will quit after the configured delay if no window is +ever created. Only implemented on Linux and macOS.

+
+
quick-terminal-position
+
+

The position of the “quick” terminal window. To learn more about the +quick terminal, see the documentation for the +toggle_quick_terminal binding action.

+

Valid values are:

+
    +
  • top - Terminal appears at the top of the screen.
  • +
  • bottom - Terminal appears at the bottom of the +screen.
  • +
  • left - Terminal appears at the left of the screen.
  • +
  • right - Terminal appears at the right of the +screen.
  • +
+

Changing this configuration requires restarting Ghostty +completely.

+
+
quick-terminal-screen
+
+

The screen where the quick terminal should show up.

+

Valid values are:

+
    +
  • main - The screen that the operating system +recommends as the main screen. On macOS, this is the screen that is +currently receiving keyboard input. This screen is defined by the +operating system and not chosen by Ghostty.

  • +
  • mouse - The screen that the mouse is currently +hovered over.

  • +
  • macos-menu-bar - The screen that contains the macOS +menu bar as set in the display settings on macOS. This is a bit +confusing because every screen on macOS has a menu bar, but this is the +screen that contains the primary menu bar.

  • +
+

The default value is main because this is the +recommended screen by the operating system.

+
+
quick-terminal-animation-duration
+
+

Duration (in seconds) of the quick terminal enter and exit animation. +Set it to 0 to disable animation completely. This can be changed at +runtime.

+
+
shell-integration
+
+

Whether to enable shell integration auto-injection or not. Shell +integration greatly enhances the terminal experience by enabling a +number of features:

+
    +
  • Working directory reporting so new tabs, splits inherit the +previous terminal’s working directory.

  • +
  • Prompt marking that enables the “jump_to_prompt” +keybinding.

  • +
  • If you’re sitting at a prompt, closing a terminal will not ask +for confirmation.

  • +
  • Resizing the window with a complex prompt usually paints much +better.

  • +
+

Allowable values are:

+
    +
  • none - Do not do any automatic injection. You can +still manually configure your shell to enable the integration.

  • +
  • detect - Detect the shell based on the +filename.

  • +
  • bash, elvish, fish, +zsh - Use this specific shell injection scheme.

  • +
+

The default value is detect.

+
+
shell-integration-features
+
+

Shell integration features to enable if shell integration itself is +enabled. The format of this is a list of features to enable separated by +commas. If you prefix a feature with no- then it is +disabled. If you omit a feature, its default value is used, so you must +explicitly disable features you don’t want. You can also use +true or false to turn all features on or +off.

+

Available features:

+
    +
  • cursor - Set the cursor to a blinking bar at the +prompt.

  • +
  • sudo - Set sudo wrapper to preserve +terminfo.

  • +
  • title - Set the window title via shell +integration.

  • +
+

Example: cursor, no-cursor, +sudo, no-sudo, title, +no-title

+
+
osc-color-report-format
+
+

Sets the reporting format for OSC sequences that request color +information. Ghostty currently supports OSC 10 (foreground), OSC 11 +(background), and OSC 4 (256 color palette) queries, and by default the +reported values are scaled-up RGB values, where each component are 16 +bits. This is how most terminals report these values. However, some +legacy applications may require 8-bit, unscaled, components. We also +support turning off reporting altogether. The components are lowercase +hex values.

+

Allowable values are:

+
    +
  • none - OSC 4/10/11 queries receive no reply

  • +
  • 8-bit - Color components are return unscaled, +i.e. rr/gg/bb

  • +
  • 16-bit - Color components are returned scaled, +e.g. rrrr/gggg/bbbb

  • +
+

The default value is 16-bit.

+
+
vt-kam-allowed
+
+

If true, allows the “KAM” mode (ANSI mode 2) to be used within the +terminal. KAM disables keyboard input at the request of the application. +This is not a common feature and is not recommended to be enabled. This +will not be documented further because if you know you need KAM, you +know. If you don’t know if you need KAM, you don’t need it.

+
+
custom-shader
+
+

Custom shaders to run after the default shaders. This is a file path +to a GLSL-syntax shader for all platforms.

+

Warning: Invalid shaders can cause Ghostty to become unusable such as +by causing the window to be completely black. If this happens, you can +unset this configuration to disable the shader.

+

On Linux, this requires OpenGL 4.2. Ghostty typically only requires +OpenGL 3.3, but custom shaders push that requirement up to 4.2.

+

The shader API is identical to the Shadertoy API: you specify a +mainImage function and the available uniforms match +Shadertoy. The iChannel0 uniform is a texture containing the rendered +terminal screen.

+

If the shader fails to compile, the shader will be ignored. Any +errors related to shader compilation will not show up as configuration +errors and only show up in the log, since shader compilation happens +after configuration loading on the dedicated render thread. For +interactive development, use shadertoy.com.

+

This can be repeated multiple times to load multiple shaders. The +shaders will be run in the order they are specified.

+

Changing this value at runtime and reloading the configuration will +only affect new windows, tabs, and splits.

+
+
custom-shader-animation
+
+

If true (default), the focused terminal surface will run +an animation loop when custom shaders are used. This uses slightly more +CPU (generally less than 10%) but allows the shader to animate. This +only runs if there are custom shaders and the terminal is focused.

+

If this is set to false, the terminal and custom shader +will only render when the terminal is updated. This is more efficient +but the shader will not animate.

+

This can also be set to always, which will always run +the animation loop regardless of whether the terminal is focused or not. +The animation loop will still only run when custom shaders are used. +Note that this will use more CPU per terminal surface and can become +quite expensive depending on the shader and your terminal usage.

+

This value can be changed at runtime and will affect all currently +open terminals.

+
+
macos-non-native-fullscreen
+
+

If anything other than false, fullscreen mode on macOS will not use +the native fullscreen, but make the window fullscreen without animations +and using a new space. It’s faster than the native fullscreen mode since +it doesn’t use animations.

+

Important: tabs DO NOT WORK in this mode. Non-native fullscreen +removes the titlebar and macOS native tabs require the titlebar. If you +use tabs, you should not use this mode.

+

If you fullscreen a window with tabs, the currently focused tab will +become fullscreen while the others will remain in a separate window in +the background. You can switch to that window using normal +window-switching keybindings such as command+tilde. When you exit +fullscreen, the window will return to the tabbed state it was in +before.

+

Allowable values are:

+
    +
  • visible-menu - Use non-native macOS fullscreen, keep +the menu bar visible
  • +
  • true - Use non-native macOS fullscreen, hide the menu +bar
  • +
  • false - Use native macOS fullscreen
  • +
+

Changing this option at runtime works, but will only apply to the +next time the window is made fullscreen. If a window is already +fullscreen, it will retain the previous setting until fullscreen is +exited.

+
+
macos-titlebar-style
+
+

The style of the macOS titlebar. Available values are: “native”, +“transparent”, “tabs”, and “hidden”.

+

The “native” style uses the native macOS titlebar with zero +customization. The titlebar will match your window theme (see +window-theme).

+

The “transparent” style is the same as “native” but the titlebar will +be transparent and allow your window background color to come through. +This makes a more seamless window appearance but looks a little less +typical for a macOS application and may not work well with all +themes.

+

The “transparent” style will also update in real-time to dynamic +changes to the window background color, i.e. via OSC 11. To make this +more aesthetically pleasing, this only happens if the terminal is a +window, tab, or split that borders the top of the window. This avoids a +disjointed appearance where the titlebar color changes but all the +topmost terminals don’t match.

+

The “tabs” style is a completely custom titlebar that integrates the +tab bar into the titlebar. This titlebar always matches the background +color of the terminal. There are some limitations to this style: On +macOS 13 and below, saved window state will not restore tabs correctly. +macOS 14 does not have this issue and any other macOS version has not +been tested.

+

The “hidden” style hides the titlebar. Unlike +window-decoration = false, however, it does not remove the +frame from the window or cause it to have squared corners. Changing to +or from this option at run-time may affect existing windows in buggy +ways. The top titlebar area of the window will continue to drag the +window around and you will not be able to use the mouse for terminal +events in this space.

+

The default value is “transparent”. This is an opinionated choice but +its one I think is the most aesthetically pleasing and works in most +cases.

+

Changing this option at runtime only applies to new windows.

+
+
macos-titlebar-proxy-icon
+
+

Whether the proxy icon in the macOS titlebar is visible. The proxy +icon is the icon that represents the folder of the current working +directory. You can see this very clearly in the macOS built-in +Terminal.app titlebar.

+

The proxy icon is only visible with the native macOS titlebar +style.

+

Valid values are:

+
    +
  • visible - Show the proxy icon.
  • +
  • hidden - Hide the proxy icon.
  • +
+

The default value is visible.

+

This setting can be changed at runtime and will affect all currently +open windows but only after their working directory changes again. +Therefore, to make this work after changing the setting, you must +usually cd to a different directory, open a different file +in an editor, etc.

+
+
macos-option-as-alt
+
+

macOS doesn’t have a distinct “alt” key and instead has the “option” +key which behaves slightly differently. On macOS by default, the option +key plus a character will sometimes produces a Unicode character. For +example, on US standard layouts option-b produces “∫”. This may be +undesirable if you want to use “option” as an “alt” key for keybindings +in terminal programs or shells.

+

This configuration lets you change the behavior so that option is +treated as alt.

+

The default behavior (unset) will depend on your active keyboard +layout. If your keyboard layout is one of the keyboard layouts listed +below, then the default value is “true”. Otherwise, the default value is +“false”. Keyboard layouts with a default value of “true” are:

+
    +
  • U.S. Standard
  • +
  • U.S. International
  • +
+

Note that if an Option-sequence doesn’t produce a printable +character, it will be treated as Alt regardless of this +setting. (i.e. alt+ctrl+a).

+

Explicit values that can be set:

+

If true, the Option key will be treated as +Alt. This makes terminal sequences expecting Alt to +work properly, but will break Unicode input sequences on macOS if you +use them via the Alt key.

+

You may set this to false to restore the macOS +Alt key unicode sequences but this will break terminal +sequences expecting Alt to work.

+

The values left or right enable this for +the left or right Option key, respectively.

+

This does not work with GLFW builds.

+
+
macos-window-shadow
+
+

Whether to enable the macOS window shadow. The default value is true. +With some window managers and window transparency settings, you may find +false more visually appealing.

+
+
macos-auto-secure-input
+
+

If true, Ghostty on macOS will automatically enable the “Secure +Input” feature when it detects that a password prompt is being +displayed.

+

“Secure Input” is a macOS security feature that prevents applications +from reading keyboard events. This can always be enabled manually using +the Ghostty > Secure Keyboard Entry menu item.

+

Note that automatic password prompt detection is based on heuristics +and may not always work as expected. Specifically, it does not work over +SSH connections, but there may be other cases where it also doesn’t +work.

+

A reason to disable this feature is if you find that it is +interfering with legitimate accessibility software (or software that +uses the accessibility APIs), since secure input prevents any +application from reading keyboard events.

+
+
macos-secure-input-indication
+
+

If true, Ghostty will show a graphical indication when secure input +is enabled. This indication is generally recommended to know when secure +input is enabled.

+

Normally, secure input is only active when a password prompt is +displayed or it is manually (and typically temporarily) enabled. +However, if you always have secure input enabled, the indication can be +distracting and you may want to disable it.

+
+
linux-cgroup
+
+

Put every surface (tab, split, window) into a dedicated Linux +cgroup.

+

This makes it so that resource management can be done on a +per-surface granularity. For example, if a shell program is using too +much memory, only that shell will be killed by the oom monitor instead +of the entire Ghostty process. Similarly, if a shell program is using +too much CPU, only that surface will be CPU-throttled.

+

This will cause startup times to be slower (a hundred milliseconds or +so), so the default value is “single-instance.” In single-instance mode, +only one instance of Ghostty is running (see gtk-single-instance) so the +startup time is a one-time cost. Additionally, single instance Ghostty +is much more likely to have many windows, tabs, etc. so cgroup isolation +is a big benefit.

+

This feature requires systemd. If systemd is unavailable, cgroup +initialization will fail. By default, this will not prevent Ghostty from +working (see linux-cgroup-hard-fail).

+

Valid values are:

+
    +
  • never - Never use cgroups.
  • +
  • always - Always use cgroups.
  • +
  • single-instance - Enable cgroups only for Ghostty +instances launched as single-instance applications (see +gtk-single-instance).
  • +
+
+
linux-cgroup-memory-limit
+
+

Memory limit for any individual terminal process (tab, split, window, +etc.) in bytes. If this is unset then no memory limit will be set.

+

Note that this sets the “memory.high” configuration for the memory +controller, which is a soft limit. You should configure something like +systemd-oom to handle killing processes that have too much memory +pressure.

+
+
linux-cgroup-processes-limit
+
+

Number of processes limit for any individual terminal process (tab, +split, window, etc.). If this is unset then no limit will be set.

+

Note that this sets the “pids.max” configuration for the process +number controller, which is a hard limit.

+
+
linux-cgroup-hard-fail
+
+

If this is false, then any cgroup initialization (for linux-cgroup) +will be allowed to fail and the failure is ignored. This is useful if +you view cgroup isolation as a “nice to have” and not a critical +resource management feature, because Ghostty startup will not fail if +cgroup APIs fail.

+

If this is true, then any cgroup initialization failure will cause +Ghostty to exit or new surfaces to not be created.

+

Note: This currently only affects cgroup initialization. Subprocesses +must always be able to move themselves into an isolated cgroup.

+
+
gtk-single-instance
+
+

If true, the Ghostty GTK application will run in +single-instance mode: each new ghostty process launched +will result in a new window if there is already a running process.

+

If false, each new ghostty process will launch a +separate application.

+

The default value is detect which will default to +true if Ghostty detects that it was launched from the +.desktop file such as an app launcher (like Gnome Shell) or +by D-Bus activation. If Ghostty is launched from the command line, it +will default to false.

+

Note that debug builds of Ghostty have a separate single-instance ID +so you can test single instance without conflicting with release +builds.

+
+
gtk-titlebar
+
+

When enabled, the full GTK titlebar is displayed instead of your +window manager’s simple titlebar. The behavior of this option will vary +with your window manager.

+

This option does nothing when window-decoration is false +or when running under macOS.

+

Changing this value at runtime and reloading the configuration will +only affect new windows.

+
+
gtk-tabs-location
+
+

Determines the side of the screen that the GTK tab bar will stick to. +Top, bottom, left, right, and hidden are supported. The default is +top.

+

If this option has value left or right when +using Adwaita, it falls back to top. hidden, +meaning that tabs don’t exist, is not supported without using Adwaita, +falling back to top.

+

When hidden is set and Adwaita is enabled, a tab button +displaying the number of tabs will appear in the title bar. It has the +ability to open a tab overview for displaying tabs. Alternatively, you +can use the toggle_tab_overview action in a keybind if your +window doesn’t have a title bar, or you can switch tabs with +keybinds.

+
+
adw-toolbar-style
+
+

Determines the appearance of the top and bottom bars when using the +Adwaita tab bar. This requires gtk-adwaita to be enabled +(it is by default).

+

Valid values are:

+
    +
  • flat - Top and bottom bars are flat with the terminal +window.
  • +
  • raised - Top and bottom bars cast a shadow on the +terminal area.
  • +
  • raised-border - Similar to raised but the +shadow is replaced with a more subtle border.
  • +
+

Changing this value at runtime will only affect new windows.

+
+
gtk-wide-tabs
+
+

If true (default), then the Ghostty GTK tabs will be +“wide.” Wide tabs are the new typical Gnome style where tabs fill their +available space. If you set this to false then tabs will +only take up space they need, which is the old style.

+
+
gtk-adwaita
+
+

If true (default), Ghostty will enable Adwaita theme +support. This will make window-theme work properly and will +also allow Ghostty to properly respond to system theme changes, +light/dark mode changing, etc. This requires a GTK4 desktop with a GTK4 +theme.

+

If you are running GTK3 or have a GTK3 theme, you may have to set +this to false to get your theme picked up properly. Having this set to +true with GTK3 should not cause any problems, but it may not work +exactly as expected.

+

This configuration only has an effect if Ghostty was built with +Adwaita support.

+
+
desktop-notifications
+
+

If true (default), applications running in the terminal +can show desktop notifications using certain escape sequences such as +OSC 9 or OSC 777.

+
+
bold-is-bright
+
+

If true, the bold text will use the bright color +palette.

+
+
term
+
+

This will be used to set the TERM environment variable. +HACK: We set this with an xterm prefix because vim uses +that to enable key protocols (specifically this will enable +modifyOtherKeys), among other features. An option exists in +vim to modify this: :set keyprotocol=ghostty:kitty, however +a bug in the implementation prevents it from working properly. +https://github.com/vim/vim/pull/13211 fixes this.

+
+
enquiry-response
+
+

String to send when we receive ENQ (0x05) +from the command that we are running. Defaults to an empty string if not +set.

+
+
auto-update
+
+

Control the auto-update functionality of Ghostty. This is only +supported on macOS currently, since Linux builds are distributed via +package managers that are not centrally controlled by Ghostty.

+

Checking or downloading an update does not send any information to +the project beyond standard network information mandated by the +underlying protocols. To put it another way: Ghostty doesn’t explicitly +add any tracking to the update process. The update process works by +downloading information about the latest version and comparing it +client-side to the current version.

+

Valid values are:

+
    +
  • off - Disable auto-updates.
  • +
  • check - Check for updates and notify the user if an +update is available, but do not automatically download or install the +update.
  • +
  • download - Check for updates, automatically download +the update, notify the user, but do not automatically install the +update.
  • +
+

The default value is check.

+

Changing this value at runtime works after a small delay.

+
+
auto-update-channel
+
+

The release channel to use for auto-updates.

+

The default value of this matches the release channel of the +currently running Ghostty version. If you download a pre-release version +of Ghostty then this will be set to tip and you will +receive pre-release updates. If you download a stable version of Ghostty +then this will be set to stable and you will receive stable +updates.

+

Valid values are:

+
    +
  • stable - Stable, tagged releases such as “1.0.0”.
  • +
  • tip - Pre-release versions generated from each commit +to the main branch. This is the version that was in use during private +beta testing by thousands of people. It is generally stable but will +likely have more bugs than the stable channel.
  • +
+

Changing this configuration requires a full restart of Ghostty to +take effect.

+

This only works on macOS since only macOS has an auto-update +feature.

+
+
+

KEYBIND ACTIONS

+
+
ignore
+
+

Ignore this key combination, don’t send it to the child process, just +black hole it.

+
+
unbind
+
+

This action is used to flag that the binding should be removed from +the set. This should never exist in an active set and +set.put has an assertion to verify this.

+
+
csi
+
+

Send a CSI sequence. The value should be the CSI sequence without the +CSI header (ESC ] or \x1b]).

+
+
esc
+
+

Send an ESC sequence.

+
+
+

text

+
+
cursor_key
+
+

Send data to the pty depending on whether cursor key mode is enabled +(application) or disabled (normal).

+
+
reset
+
+

Reset the terminal. This can fix a lot of issues when a running +program puts the terminal into a broken state. This is equivalent to +when you type “reset” and press enter.

+

If you do this while in a TUI program such as vim, this may break the +program. If you do this while in a shell, you may have to press enter +after to get a new prompt.

+
+
copy_to_clipboard
+
+

Copy and paste.

+
+
+

paste_from_clipboard

+

paste_from_selection

+
+
increase_font_size
+
+

Increase/decrease the font size by a certain amount.

+
+
+

decrease_font_size

+
+
reset_font_size
+
+

Reset the font size to the original configured size.

+
+
clear_screen
+
+

Clear the screen. This also clears all scrollback.

+
+
select_all
+
+

Select all text on the screen.

+
+
scroll_to_top
+
+

Scroll the screen varying amounts.

+
+
+

scroll_to_bottom

+

scroll_page_up

+

scroll_page_down

+

scroll_page_fractional

+

scroll_page_lines

+
+
adjust_selection
+
+

Adjust an existing selection in a given direction. This action does +nothing if there is no active selection.

+
+
jump_to_prompt
+
+

Jump the viewport forward or back by prompt. Positive number is the +number of prompts to jump forward, negative is backwards.

+
+
write_scrollback_file
+
+

Write the entire scrollback into a temporary file. The action +determines what to do with the filepath. Valid values are:

+
    +
  • “paste”: Paste the file path into the terminal.
  • +
  • “open”: Open the file in the default OS editor for text files. The +default OS editor is determined by using open on macOS and +xdg-open on Linux.
  • +
+
+
write_screen_file
+
+

Same as write_scrollback_file but writes the full screen contents. +See write_scrollback_file for available values.

+
+
write_selection_file
+
+

Same as write_scrollback_file but writes the selected text. If there +is no selected text this does nothing (it doesn’t even create an empty +file). See write_scrollback_file for available values.

+
+
new_window
+
+

Open a new window. If the application isn’t currently focused, this +will bring it to the front.

+
+
new_tab
+
+

Open a new tab.

+
+
previous_tab
+
+

Go to the previous tab.

+
+
next_tab
+
+

Go to the next tab.

+
+
last_tab
+
+

Go to the last tab (the one with the highest index)

+
+
goto_tab
+
+

Go to the tab with the specific number, 1-indexed. If the tab number +is higher than the number of tabs, this will go to the last tab.

+
+
move_tab
+
+

Moves a tab by a relative offset. Adjusts the tab position based on +offset (e.g., -1 for left, +1 for right). If the new +position is out of bounds, it wraps around cyclically within the tab +range.

+
+
toggle_tab_overview
+
+

Toggle the tab overview. This only works with libadwaita enabled +currently.

+
+
new_split
+
+

Create a new split in the given direction. The new split will appear +in the direction given.

+
+
goto_split
+
+

Focus on a split in a given direction.

+
+
toggle_split_zoom
+
+

zoom/unzoom the current split.

+
+
resize_split
+
+

Resize the current split by moving the split divider in the given +direction

+
+
equalize_splits
+
+

Equalize all splits in the current window

+
+
inspector
+
+

Show, hide, or toggle the terminal inspector for the currently +focused terminal.

+
+
open_config
+
+

Open the configuration file in the default OS editor. If your default +OS editor isn’t configured then this will fail. Currently, any failures +to open the configuration will show up only in the logs.

+
+
reload_config
+
+

Reload the configuration. The exact meaning depends on the app +runtime in use but this usually involves re-reading the configuration +file and applying any changes. Note that not all changes can be applied +at runtime.

+
+
close_surface
+
+

Close the current “surface”, whether that is a window, tab, split, +etc. This only closes ONE surface. This will trigger close confirmation +as configured.

+
+
close_window
+
+

Close the window, regardless of how many tabs or splits there may be. +This will trigger close confirmation as configured.

+
+
close_all_windows
+
+

Close all windows. This will trigger close confirmation as +configured. This only works for macOS currently.

+
+
toggle_fullscreen
+
+

Toggle fullscreen mode of window.

+
+
toggle_window_decorations
+
+

Toggle window decorations on and off. This only works on Linux.

+
+
toggle_secure_input
+
+

Toggle secure input mode on or off. This is used to prevent apps that +monitor input from seeing what you type. This is useful for entering +passwords or other sensitive information.

+

This applies to the entire application, not just the focused +terminal. You must toggle it off to disable it, or quit Ghostty.

+

This only works on macOS, since this is a system API on macOS.

+
+
toggle_quick_terminal
+
+

Toggle the “quick” terminal. The quick terminal is a terminal that +appears on demand from a keybinding, often sliding in from a screen edge +such as the top. This is useful for quick access to a terminal without +having to open a new window or tab.

+

When the quick terminal loses focus, it disappears. The terminal +state is preserved between appearances, so you can always press the +keybinding to bring it back up.

+

The quick terminal has some limitations:

+
    +
  • It is a singleton; only one instance can exist at a time.
  • +
  • It does not support tabs.
  • +
  • It will not be restored when the application is restarted (for +systems that support window restoration).
  • +
  • It supports fullscreen, but fullscreen will always be a non-native +fullscreen (macos-non-native-fullscreen = true). This only applies to +the quick terminal window. This is a requirement due to how the quick +terminal is rendered.
  • +
+

See the various configurations for the quick terminal in the +configuration file to customize its behavior.

+
+
toggle_visibility
+
+

Show/hide all windows. If all windows become shown, we also ensure +Ghostty is focused.

+

This currently only works on macOS. When hiding all windows, we do +not yield focus to the previous application.

+
+
quit
+
+

Quit ghostty.

+
+
crash
+
+

Crash ghostty in the desired thread for the focused surface.

+

WARNING: This is a hard crash (panic) and data can be lost.

+

The purpose of this action is to test crash handling. For some users, +it may be useful to test crash reporting functionality in order to +determine if it all works as expected.

+

The value determines the crash location:

+
    +
  • “main” - crash on the main (GUI) thread.
  • +
  • “io” - crash on the IO thread for the focused surface.
  • +
  • “render” - crash on the render thread for the focused surface.
  • +
+
+
+

FILES

+
+
$XDG_CONFIG_HOME/ghostty/config
+
+

Location of the default configuration file.

+
+
$LOCALAPPDATA/ghostty/config
+
+

On Windows, if $XDG_CONFIG_HOME is not set, +$LOCALAPPDATA will be searched for configuration files.

+
+
+

ENVIRONMENT

+
+
XDG_CONFIG_HOME
+
+

Default location for configuration files.

+
+
LOCALAPPDATA
+
+

WINDOWS ONLY: alternate location to search for +configuration files.

+
+
+

BUGS

+

See GitHub issues: https://github.com/ghostty-org/ghostty/issues

+

AUTHOR

+

Mitchell Hashimoto m@mitchellh.com

+

SEE ALSO

+

ghostty(1)

+ + diff --git a/bin/share/ghostty/doc/ghostty.5.md b/bin/share/ghostty/doc/ghostty.5.md new file mode 100644 index 0000000..2603763 --- /dev/null +++ b/bin/share/ghostty/doc/ghostty.5.md @@ -0,0 +1,2517 @@ +% GHOSTTY(5) Version 0.1.0-main+dd6460bc | Ghostty terminal emulator configuration file + +# NAME + +**ghostty** - Ghostty terminal emulator configuration file + +# DESCRIPTION + +To configure Ghostty, you must use a configuration file. GUI-based configuration +is on the roadmap but not yet supported. The configuration file must be placed +at `$XDG_CONFIG_HOME/ghostty/config`, which defaults to `~/.config/ghostty/config` +if the [XDG environment is not set](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html). + +The file format is documented below as an example: + + # The syntax is "key = value". The whitespace around the equals doesn't matter. + background = 282c34 + foreground= ffffff + + # Blank lines are ignored! + + keybind = ctrl+z=close_surface + keybind = ctrl+d=new_split:right + + # Colors can be changed by setting the 16 colors of `palette`, which each color + # being defined as regular and bold. + # + # black + palette = 0=#1d2021 + palette = 8=#7c6f64 + # red + palette = 1=#cc241d + palette = 9=#fb4934 + # green + palette = 2=#98971a + palette = 10=#b8bb26 + # yellow + palette = 3=#d79921 + palette = 11=#fabd2f + # blue + palette = 4=#458588 + palette = 12=#83a598 + # purple + palette = 5=#b16286 + palette = 13=#d3869b + # aqua + palette = 6=#689d6a + palette = 14=#8ec07c + # white + palette = 7=#a89984 + palette = 15=#fbf1c7 + +You can view all available configuration options and their documentation by +executing the command `ghostty +show-config --default --docs`. Note that this will +output the full default configuration with docs to stdout, so you may want to +pipe that through a pager, an editor, etc. + +Note: You'll see a lot of weird blank configurations like `font-family =`. This +is a valid syntax to specify the default behavior (no value). The `+show-config` +outputs it so it's clear that key is defaulting and also to have something to +attach the doc comment to. + +You can also see and read all available configuration options in the source +Config structure. The available keys are the keys verbatim, and their possible +values are typically documented in the comments. You also can search for +the public config files of many Ghostty users for examples and inspiration. + +## Configuration Errors + +If your configuration file has any errors, Ghostty does its best to ignore +them and move on. Configuration errors currently show up in the log. The log +is written directly to stderr, so it is up to you to figure out how to access +that for your system (for now). On macOS, you can also use the system `log` CLI +utility. See the Mac App section for more information. + +## Debugging Configuration + +You can verify that configuration is being properly loaded by looking at the +debug output of Ghostty. Documentation for how to view the debug output is in +the "building Ghostty" section at the end of the README. + +In the debug output, you should see in the first 20 lines or so messages about +loading (or not loading) a configuration file, as well as any errors it may have +encountered. Configuration errors are also shown in a dedicated window on both +macOS and Linux (GTK). Ghostty does not treat configuration errors as fatal and +will fall back to default values for erroneous keys. + +You can also view the full configuration Ghostty is loading using `ghostty ++show-config` from the command-line. Use the `--help` flag to additional options +for that command. + +# CONFIGURATION OPTIONS + +**`font-family`** + +: The font families to use. + + You can generate the list of valid values using the CLI: + + ghostty +list-fonts + + This configuration can be repeated multiple times to specify preferred + fallback fonts when the requested codepoint is not available in the primary + font. This is particularly useful for multiple languages, symbolic fonts, + etc. + + Notes on emoji specifically: On macOS, Ghostty by default will always use + Apple Color Emoji and on Linux will always use Noto Emoji. You can + override this behavior by specifying a font family here that contains + emoji glyphs. + + The specific styles (bold, italic, bold italic) do not need to be + explicitly set. If a style is not set, then the regular style (font-family) + will be searched for stylistic variants. If a stylistic variant is not + found, Ghostty will use the regular style. This prevents falling back to a + different font family just to get a style such as bold. This also applies + if you explicitly specify a font family for a style. For example, if you + set `font-family-bold = FooBar` and "FooBar" cannot be found, Ghostty will + use whatever font is set for `font-family` for the bold style. + + Finally, some styles may be synthesized if they are not supported. + For example, if a font does not have an italic style and no alternative + italic font is specified, Ghostty will synthesize an italic style by + applying a slant to the regular style. If you want to disable these + synthesized styles then you can use the `font-style` configurations + as documented below. + + You can disable styles completely by using the `font-style` set of + configurations. See the documentation for `font-style` for more information. + + If you want to overwrite a previous set value rather than append a fallback, + specify the value as `""` (empty string) to reset the list and then set the + new values. For example: + + font-family = "" + font-family = "My Favorite Font" + + Setting any of these as CLI arguments will automatically clear the + values set in configuration files so you don't need to specify + `--font-family=""` before setting a new value. You only need to specify + this within config files if you want to clear previously set values in + configuration files or on the CLI if you want to clear values set on the + CLI. + + Changing this configuration at runtime will only affect new terminals, i.e. + new windows, tabs, etc. + + +**`font-family-bold`** + +**`font-family-italic`** + +**`font-family-bold-italic`** + +**`font-style`** + +: The named font style to use for each of the requested terminal font styles. + This looks up the style based on the font style string advertised by the + font itself. For example, "Iosevka Heavy" has a style of "Heavy". + + You can also use these fields to completely disable a font style. If you set + the value of the configuration below to literal `false` then that font style + will be disabled. If the running program in the terminal requests a disabled + font style, the regular font style will be used instead. + + These are only valid if its corresponding font-family is also specified. If + no font-family is specified, then the font-style is ignored unless you're + disabling the font style. + + +**`font-style-bold`** + +**`font-style-italic`** + +**`font-style-bold-italic`** + +**`font-synthetic-style`** + +: Control whether Ghostty should synthesize a style if the requested style is + not available in the specified font-family. + + Ghostty can synthesize bold, italic, and bold italic styles if the font + does not have a specific style. For bold, this is done by drawing an + outline around the glyph of varying thickness. For italic, this is done by + applying a slant to the glyph. For bold italic, both of these are applied. + + Synthetic styles are not perfect and will generally not look as good + as a font that has the style natively. However, they are useful to + provide styled text when the font does not have the style. + + Set this to "false" or "true" to disable or enable synthetic styles + completely. You can disable specific styles using "no-bold", "no-italic", + and "no-bold-italic". You can disable multiple styles by separating them + with a comma. For example, "no-bold,no-italic". + + Available style keys are: `bold`, `italic`, `bold-italic`. + + If synthetic styles are disabled, then the regular style will be used + instead if the requested style is not available. If the font has the + requested style, then the font will be used as-is since the style is + not synthetic. + + Warning: An easy mistake is to disable `bold` or `italic` but not + `bold-italic`. Disabling only `bold` or `italic` will NOT disable either + in the `bold-italic` style. If you want to disable `bold-italic`, you must + explicitly disable it. You cannot partially disable `bold-italic`. + + By default, synthetic styles are enabled. + + +**`font-feature`** + +: Apply a font feature. This can be repeated multiple times to enable multiple + font features. You can NOT set multiple font features with a single value + (yet). + + The font feature will apply to all fonts rendered by Ghostty. A future + enhancement will allow targeting specific faces. + + A valid value is the name of a feature. Prefix the feature with a `-` to + explicitly disable it. Example: `ss20` or `-ss20`. + + To disable programming ligatures, use `-calt` since this is the typical + feature name for programming ligatures. To look into what font features + your font has and what they do, use a font inspection tool such as + [fontdrop.info](https://fontdrop.info). + + To generally disable most ligatures, use `-calt`, `-liga`, and `-dlig` (as + separate repetitive entries in your config). + + +**`font-size`** + +: Font size in points. This value can be a non-integer and the nearest integer + pixel size will be selected. If you have a high dpi display where 1pt = 2px + then you can get an odd numbered pixel size by specifying a half point. + + For example, 13.5pt @ 2px/pt = 27px + + Changing this configuration at runtime will only affect new terminals, + i.e. new windows, tabs, etc. Note that you may still not see the change + depending on your `window-inherit-font-size` setting. If that setting is + true, only the first window will be affected by this change since all + subsequent windows will inherit the font size of the previous window. + + +**`font-variation`** + +: A repeatable configuration to set one or more font variations values for + a variable font. A variable font is a single font, usually with a filename + ending in `-VF.ttf` or `-VF.otf` that contains one or more configurable axes + for things such as weight, slant, etc. Not all fonts support variations; + only fonts that explicitly state they are variable fonts will work. + + The format of this is `id=value` where `id` is the axis identifier. An axis + identifier is always a 4 character string, such as `wght`. To get the list + of supported axes, look at your font documentation or use a font inspection + tool. + + Invalid ids and values are usually ignored. For example, if a font only + supports weights from 100 to 700, setting `wght=800` will do nothing (it + will not be clamped to 700). You must consult your font's documentation to + see what values are supported. + + Common axes are: `wght` (weight), `slnt` (slant), `ital` (italic), `opsz` + (optical size), `wdth` (width), `GRAD` (gradient), etc. + + +**`font-variation-bold`** + +**`font-variation-italic`** + +**`font-variation-bold-italic`** + +**`font-codepoint-map`** + +: Force one or a range of Unicode codepoints to map to a specific named font. + This is useful if you want to support special symbols or if you want to use + specific glyphs that render better for your specific font. + + The syntax is `codepoint=fontname` where `codepoint` is either a single + codepoint or a range. Codepoints must be specified as full Unicode + hex values, such as `U+ABCD`. Codepoints ranges are specified as + `U+ABCD-U+DEFG`. You can specify multiple ranges for the same font separated + by commas, such as `U+ABCD-U+DEFG,U+1234-U+5678=fontname`. The font name is + the same value as you would use for `font-family`. + + This configuration can be repeated multiple times to specify multiple + codepoint mappings. + + Changing this configuration at runtime will only affect new terminals, + i.e. new windows, tabs, etc. + + +**`font-thicken`** + +: Draw fonts with a thicker stroke, if supported. This is only supported + currently on macOS. + + +**`adjust-cell-width`** + +: All of the configurations behavior adjust various metrics determined by the + font. The values can be integers (1, -1, etc.) or a percentage (20%, -15%, + etc.). In each case, the values represent the amount to change the original + value. + + For example, a value of `1` increases the value by 1; it does not set it to + literally 1. A value of `20%` increases the value by 20%. And so on. + + There is little to no validation on these values so the wrong values (i.e. + `-100%`) can cause the terminal to be unusable. Use with caution and reason. + + Some values are clamped to minimum or maximum values. This can make it + appear that certain values are ignored. For example, the underline position + is clamped to the height of a cell. If you set the underline position so + high that it extends beyond the bottom of the cell size, it will be clamped + to the bottom of the cell. + + `adjust-cell-height` has some additional behaviors to describe: + + * The font will be centered vertically in the cell. + + * The cursor will remain the same size as the font. + + * Powerline glyphs will be adjusted along with the cell height so + that things like status lines continue to look aligned. + + +**`adjust-cell-height`** + +**`adjust-font-baseline`** + +: Distance in pixels from the bottom of the cell to the text baseline. + Increase to move baseline UP, decrease to move baseline DOWN. + + +**`adjust-underline-position`** + +: Distance in pixels from the top of the cell to the top of the underline. + Increase to move underline DOWN, decrease to move underline UP. + + +**`adjust-underline-thickness`** + +: Thickness in pixels of the underline. + + +**`adjust-strikethrough-position`** + +: Distance in pixels from the top of the cell to the top of the strikethrough. + Increase to move strikethrough DOWN, decrease to move underline UP. + + +**`adjust-strikethrough-thickness`** + +: Thickness in pixels of the strikethrough. + + +**`adjust-overline-position`** + +: Distance in pixels from the top of the cell to the top of the overline. + Increase to move overline DOWN, decrease to move underline UP. + + +**`adjust-overline-thickness`** + +: Thickness in pixels of the overline. + + +**`adjust-cursor-thickness`** + +: Thickness in pixels of the bar cursor and outlined rect cursor. + + +**`adjust-box-thickness`** + +: Thickness in pixels of box drawing characters. + + +**`grapheme-width-method`** + +: The method to use for calculating the cell width of a grapheme cluster. + The default value is `unicode` which uses the Unicode standard to determine + grapheme width. This results in correct grapheme width but may result in + cursor-desync issues with some programs (such as shells) that may use a + legacy method such as `wcswidth`. + + Valid values are: + + * `legacy` - Use a legacy method to determine grapheme width, such as + wcswidth This maximizes compatibility with legacy programs but may result + in incorrect grapheme width for certain graphemes such as skin-tone + emoji, non-English characters, etc. + + This is called "legacy" and not something more specific because the + behavior is undefined and we want to retain the ability to modify it. + For example, we may or may not use libc `wcswidth` now or in the future. + + * `unicode` - Use the Unicode standard to determine grapheme width. + + If a running program explicitly enables terminal mode 2027, then `unicode` + width will be forced regardless of this configuration. When mode 2027 is + reset, this configuration will be used again. + + This configuration can be changed at runtime but will not affect existing + terminals. Only new terminals will use the new configuration. + + +**`freetype-load-flags`** + +: FreeType load flags to enable. The format of this is a list of flags to + enable separated by commas. If you prefix a flag with `no-` then it is + disabled. If you omit a flag, it's default value is used, so you must + explicitly disable flags you don't want. You can also use `true` or `false` + to turn all flags on or off. + + This configuration only applies to Ghostty builds that use FreeType. + This is usually the case only for Linux builds. macOS uses CoreText + and does not have an equivalent configuration. + + Available flags: + + * `hinting` - Enable or disable hinting, enabled by default. + * `force-autohint` - Use the freetype auto-hinter rather than the + font's native hinter. Enabled by default. + * `monochrome` - Instructs renderer to use 1-bit monochrome + rendering. This option doesn't impact the hinter. + Enabled by default. + * `autohint` - Use the freetype auto-hinter. Enabled by default. + + Example: `hinting`, `no-hinting`, `force-autohint`, `no-force-autohint` + + +**`theme`** + +: A theme to use. This can be a built-in theme name, a custom theme + name, or an absolute path to a custom theme file. Ghostty also supports + specifying a different theme to use for light and dark mode. Each + option is documented below. + + If the theme is an absolute pathname, Ghostty will attempt to load that + file as a theme. If that file does not exist or is inaccessible, an error + will be logged and no other directories will be searched. + + If the theme is not an absolute pathname, two different directories will be + searched for a file name that matches the theme. This is case sensitive on + systems with case-sensitive filesystems. It is an error for a theme name to + include path separators unless it is an absolute pathname. + + The first directory is the `themes` subdirectory of your Ghostty + configuration directory. This is `$XDG_CONFIG_DIR/ghostty/themes` or + `~/.config/ghostty/themes`. + + The second directory is the `themes` subdirectory of the Ghostty resources + directory. Ghostty ships with a multitude of themes that will be installed + into this directory. On macOS, this list is in the `Ghostty.app/Contents/ + Resources/ghostty/themes` directory. On Linux, this list is in the `share/ + ghostty/themes` directory (wherever you installed the Ghostty "share" + directory. + + To see a list of available themes, run `ghostty +list-themes`. + + A theme file is simply another Ghostty configuration file. They share + the same syntax and same configuration options. A theme can set any valid + configuration option so please do not use a theme file from an untrusted + source. The built-in themes are audited to only set safe configuration + options. + + Some options cannot be set within theme files. The reason these are not + supported should be self-evident. A theme file cannot set `theme` or + `config-file`. At the time of writing this, Ghostty will not show any + warnings or errors if you set these options in a theme file but they will + be silently ignored. + + Any additional colors specified via background, foreground, palette, etc. + will override the colors specified in the theme. + + To specify a different theme for light and dark mode, use the following + syntax: `light:theme-name,dark:theme-name`. For example: + `light:rose-pine-dawn,dark:rose-pine`. Whitespace around all values are + trimmed and order of light and dark does not matter. Both light and dark + must be specified in this form. In this form, the theme used will be + based on the current desktop environment theme. + + There are some known bugs with light/dark mode theming. These will + be fixed in a future update: + + - macOS: titlebar tabs style is not updated when switching themes. + + + +**`background`** + +: Background color for the window. + + +**`foreground`** + +: Foreground color for the window. + + +**`selection-foreground`** + +: The foreground and background color for selection. If this is not set, then + the selection color is just the inverted window background and foreground + (note: not to be confused with the cell bg/fg). + + +**`selection-background`** + +**`selection-invert-fg-bg`** + +: Swap the foreground and background colors of cells for selection. This + option overrides the `selection-foreground` and `selection-background` + options. + + If you select across cells with differing foregrounds and backgrounds, the + selection color will vary across the selection. + + +**`minimum-contrast`** + +: The minimum contrast ratio between the foreground and background colors. + The contrast ratio is a value between 1 and 21. A value of 1 allows for no + contrast (i.e. black on black). This value is the contrast ratio as defined + by the [WCAG 2.0 specification](https://www.w3.org/TR/WCAG20/). + + If you want to avoid invisible text (same color as background), a value of + 1.1 is a good value. If you want to avoid text that is difficult to read, a + value of 3 or higher is a good value. The higher the value, the more likely + that text will become black or white. + + This value does not apply to Emoji or images. + + +**`palette`** + +: Color palette for the 256 color form that many terminal applications use. + The syntax of this configuration is `N=HEXCODE` where `N` is 0 to 255 (for + the 256 colors in the terminal color table) and `HEXCODE` is a typical RGB + color code such as `#AABBCC`. + + For definitions on all the codes [see this cheat + sheet](https://www.ditig.com/256-colors-cheat-sheet). + + +**`cursor-color`** + +: The color of the cursor. If this is not set, a default will be chosen. + + +**`cursor-invert-fg-bg`** + +: Swap the foreground and background colors of the cell under the cursor. This + option overrides the `cursor-color` and `cursor-text` options. + + +**`cursor-opacity`** + +: The opacity level (opposite of transparency) of the cursor. A value of 1 + is fully opaque and a value of 0 is fully transparent. A value less than 0 + or greater than 1 will be clamped to the nearest valid value. Note that a + sufficiently small value such as 0.3 may be effectively invisible and may + make it difficult to find the cursor. + + +**`cursor-style`** + +: The style of the cursor. This sets the default style. A running program can + still request an explicit cursor style using escape sequences (such as `CSI + q`). Shell configurations will often request specific cursor styles. + + Note that shell integration will automatically set the cursor to a bar at + a prompt, regardless of this configuration. You can disable that behavior + by specifying `shell-integration-features = no-cursor` or disabling shell + integration entirely. + + Valid values are: + + * `block` + * `bar` + * `underline` + * `block_hollow` + + + +**`cursor-style-blink`** + +: Sets the default blinking state of the cursor. This is just the default + state; running programs may override the cursor style using `DECSCUSR` (`CSI + q`). + + If this is not set, the cursor blinks by default. Note that this is not the + same as a "true" value, as noted below. + + If this is not set at all (`null`), then Ghostty will respect DEC Mode 12 + (AT&T cursor blink) as an alternate approach to turning blinking on/off. If + this is set to any value other than null, DEC mode 12 will be ignored but + `DECSCUSR` will still be respected. + + Valid values are: + + * `` (blank) + * `true` + * `false` + + + +**`cursor-text`** + +: The color of the text under the cursor. If this is not set, a default will + be chosen. + + +**`cursor-click-to-move`** + +: Enables the ability to move the cursor at prompts by using `alt+click` on + Linux and `option+click` on macOS. + + This feature requires shell integration (specifically prompt marking + via `OSC 133`) and only works in primary screen mode. Alternate screen + applications like vim usually have their own version of this feature but + this configuration doesn't control that. + + It should be noted that this feature works by translating your desired + position into a series of synthetic arrow key movements, so some weird + behavior around edge cases are to be expected. This is unfortunately how + this feature is implemented across terminals because there isn't any other + way to implement it. + + +**`mouse-hide-while-typing`** + +: Hide the mouse immediately when typing. The mouse becomes visible again + when the mouse is used (button, movement, etc.). Platform-specific behavior + may dictate other scenarios where the mouse is shown. For example on macOS, + the mouse is shown again when a new window, tab, or split is created. + + +**`mouse-shift-capture`** + +: Determines whether running programs can detect the shift key pressed with a + mouse click. Typically, the shift key is used to extend mouse selection. + + The default value of `false` means that the shift key is not sent with + the mouse protocol and will extend the selection. This value can be + conditionally overridden by the running program with the `XTSHIFTESCAPE` + sequence. + + The value `true` means that the shift key is sent with the mouse protocol + but the running program can override this behavior with `XTSHIFTESCAPE`. + + The value `never` is the same as `false` but the running program cannot + override this behavior with `XTSHIFTESCAPE`. The value `always` is the + same as `true` but the running program cannot override this behavior with + `XTSHIFTESCAPE`. + + If you always want shift to extend mouse selection even if the program + requests otherwise, set this to `never`. + + Valid values are: + + * `true` + * `false` + * `always` + * `never` + + + +**`mouse-scroll-multiplier`** + +: Multiplier for scrolling distance with the mouse wheel. Any value less + than 0.01 or greater than 10,000 will be clamped to the nearest valid + value. + + A value of "1" (default) scrolls te default amount. A value of "2" scrolls + double the default amount. A value of "0.5" scrolls half the default amount. + Et cetera. + + +**`background-opacity`** + +: The opacity level (opposite of transparency) of the background. A value of + 1 is fully opaque and a value of 0 is fully transparent. A value less than 0 + or greater than 1 will be clamped to the nearest valid value. + + On macOS, background opacity is disabled when the terminal enters native + fullscreen. This is because the background becomes gray and it can cause + widgets to show through which isn't generally desirable. + + +**`background-blur-radius`** + +: A positive value enables blurring of the background when background-opacity + is less than 1. The value is the blur radius to apply. A value of 20 + is reasonable for a good looking blur. Higher values will cause strange + rendering issues as well as performance issues. + + This is only supported on macOS. + + +**`unfocused-split-opacity`** + +: The opacity level (opposite of transparency) of an unfocused split. + Unfocused splits by default are slightly faded out to make it easier to see + which split is focused. To disable this feature, set this value to 1. + + A value of 1 is fully opaque and a value of 0 is fully transparent. Because + "0" is not useful (it makes the window look very weird), the minimum value + is 0.15. This value still looks weird but you can at least see what's going + on. A value outside of the range 0.15 to 1 will be clamped to the nearest + valid value. + + +**`unfocused-split-fill`** + +: The color to dim the unfocused split. Unfocused splits are dimmed by + rendering a semi-transparent rectangle over the split. This sets the color of + that rectangle and can be used to carefully control the dimming effect. + + This will default to the background color. + + +**`command`** + +: The command to run, usually a shell. If this is not an absolute path, it'll + be looked up in the `PATH`. If this is not set, a default will be looked up + from your system. The rules for the default lookup are: + + * `SHELL` environment variable + + * `passwd` entry (user information) + + This can contain additional arguments to run the command with. If additional + arguments are provided, the command will be executed using `/bin/sh -c`. + Ghostty does not do any shell command parsing. + + This command will be used for all new terminal surfaces, i.e. new windows, + tabs, etc. If you want to run a command only for the first terminal surface + created when Ghostty starts, use the `initial-command` configuration. + + Ghostty supports the common `-e` flag for executing a command with + arguments. For example, `ghostty -e fish --with --custom --args`. + This flag sets the `initial-command` configuration, see that for more + information. + + +**`initial-command`** + +: This is the same as "command", but only applies to the first terminal + surface created when Ghostty starts. Subsequent terminal surfaces will use + the `command` configuration. + + After the first terminal surface is created (or closed), there is no + way to run this initial command again automatically. As such, setting + this at runtime works but will only affect the next terminal surface + if it is the first one ever created. + + If you're using the `ghostty` CLI there is also a shortcut to set this + with arguments directly: you can use the `-e` flag. For example: `ghostty -e + fish --with --custom --args`. The `-e` flag automatically forces some + other behaviors as well: + + * `gtk-single-instance=false` - This ensures that a new instance is + launched and the CLI args are respected. + + * `quit-after-last-window-closed=true` - This ensures that the Ghostty + process will exit when the command exits. Additionally, the + `quit-after-last-window-closed-delay` is unset. + + * `shell-integration=detect` (if not `none`) - This prevents forcibly + injecting any configured shell integration into the command's + environment. With `-e` its highly unlikely that you're executing a + shell and forced shell integration is likely to cause problems + (i.e. by wrapping your command in a shell, setting env vars, etc.). + This is a safety measure to prevent unexpected behavior. If you want + shell integration with a `-e`-executed command, you must either + name your binary appopriately or source the shell integration script + manually. + + + +**`wait-after-command`** + +: If true, keep the terminal open after the command exits. Normally, the + terminal window closes when the running command (such as a shell) exits. + With this true, the terminal window will stay open until any keypress is + received. + + This is primarily useful for scripts or debugging. + + +**`abnormal-command-exit-runtime`** + +: The number of milliseconds of runtime below which we consider a process exit + to be abnormal. This is used to show an error message when the process exits + too quickly. + + On Linux, this must be paired with a non-zero exit code. On macOS, we allow + any exit code because of the way shell processes are launched via the login + command. + + +**`scrollback-limit`** + +: The size of the scrollback buffer in bytes. This also includes the active + screen. No matter what this is set to, enough memory will always be + allocated for the visible screen and anything leftover is the limit for + the scrollback. + + When this limit is reached, the oldest lines are removed from the + scrollback. + + Scrollback currently exists completely in memory. This means that the + larger this value, the larger potential memory usage. Scrollback is + allocated lazily up to this limit, so if you set this to a very large + value, it will not immediately consume a lot of memory. + + This size is per terminal surface, not for the entire application. + + It is not currently possible to set an unlimited scrollback buffer. + This is a future planned feature. + + This can be changed at runtime but will only affect new terminal surfaces. + + +**`link`** + +: Match a regular expression against the terminal text and associate clicking + it with an action. This can be used to match URLs, file paths, etc. Actions + can be opening using the system opener (i.e. `open` or `xdg-open`) or + executing any arbitrary binding action. + + Links that are configured earlier take precedence over links that are + configured later. + + A default link that matches a URL and opens it in the system opener always + exists. This can be disabled using `link-url`. + + TODO: This can't currently be set! + + +**`link-url`** + +: Enable URL matching. URLs are matched on hover with control (Linux) or + super (macOS) pressed and open using the default system application for + the linked URL. + + The URL matcher is always lowest priority of any configured links (see + `link`). If you want to customize URL matching, use `link` and disable this. + + +**`fullscreen`** + +: Start new windows in fullscreen. This setting applies to new windows and + does not apply to tabs, splits, etc. However, this setting will apply to all + new windows, not just the first one. + + On macOS, this setting does not work if window-decoration is set to + "false", because native fullscreen on macOS requires window decorations + to be set. + + +**`title`** + +: The title Ghostty will use for the window. This will force the title of the + window to be this title at all times and Ghostty will ignore any set title + escape sequences programs (such as Neovim) may send. + + If you want a blank title, set this to one or more spaces by quoting + the value. For example, `title = " "`. This effectively hides the title. + This is necessary because setting a blank value resets the title to the + default value of the running program. + + This configuration can be reloaded at runtime. If it is set, the title + will update for all windows. If it is unset, the next title change escape + sequence will be honored but previous changes will not retroactively + be set. This latter case may require you restart programs such as neovim + to get the new title. + + +**`class`** + +: The setting that will change the application class value. + + This controls the class field of the `WM_CLASS` X11 property (when running + under X11), and the Wayland application ID (when running under Wayland). + + Note that changing this value between invocations will create new, separate + instances, of Ghostty when running with `gtk-single-instance=true`. See that + option for more details. + + The class name must follow the requirements defined [in the GTK + documentation](https://docs.gtk.org/gio/type_func.Application.id_is_valid.html). + + The default is `com.mitchellh.ghostty`. + + This only affects GTK builds. + + +**`x11-instance-name`** + +: This controls the instance name field of the `WM_CLASS` X11 property when + running under X11. It has no effect otherwise. + + The default is `ghostty`. + + This only affects GTK builds. + + +**`working-directory`** + +: The directory to change to after starting the command. + + This setting is secondary to the `window-inherit-working-directory` + setting. If a previous Ghostty terminal exists in the same process, + `window-inherit-working-directory` will take precedence. Otherwise, this + setting will be used. Typically, this setting is used only for the first + window. + + The default is `inherit` except in special scenarios listed next. On macOS, + if Ghostty can detect it is launched from launchd (double-clicked) or + `open`, then it defaults to `home`. On Linux with GTK, if Ghostty can detect + it was launched from a desktop launcher, then it defaults to `home`. + + The value of this must be an absolute value or one of the special values + below: + + * `home` - The home directory of the executing user. + + * `inherit` - The working directory of the launching process. + + +**`keybind`** + +: Key bindings. The format is `trigger=action`. Duplicate triggers will + overwrite previously set values. The list of actions is available in + the documentation or using the `ghostty +list-actions` command. + + Trigger: `+`-separated list of keys and modifiers. Example: `ctrl+a`, + `ctrl+shift+b`, `up`. Some notes: + + * modifiers cannot repeat, `ctrl+ctrl+a` is invalid. + + * modifiers and keys can be in any order, `shift+a+ctrl` is *weird*, + but valid. + + * only a single key input is allowed, `ctrl+a+b` is invalid. + + * the key input can be prefixed with `physical:` to specify a + physical key mapping rather than a logical one. A physical key + mapping responds to the hardware keycode and not the keycode + translated by any system keyboard layouts. Example: "ctrl+physical:a" + + Valid modifiers are `shift`, `ctrl` (alias: `control`), `alt` (alias: `opt`, + `option`), and `super` (alias: `cmd`, `command`). You may use the modifier + or the alias. When debugging keybinds, the non-aliased modifier will always + be used in output. + + Note: The fn or "globe" key on keyboards are not supported as a + modifier. This is a limitation of the operating systems and GUI toolkits + that Ghostty uses. + + You may also specify multiple triggers separated by `>` to require a + sequence of triggers to activate the action. For example, + `ctrl+a>n=new_window` will only trigger the `new_window` action if the + user presses `ctrl+a` followed separately by `n`. In other software, this + is sometimes called a leader key, a key chord, a key table, etc. There + is no hardcoded limit on the number of parts in a sequence. + + Warning: If you define a sequence as a CLI argument to `ghostty`, + you probably have to quote the keybind since `>` is a special character + in most shells. Example: ghostty --keybind='ctrl+a>n=new_window' + + A trigger sequence has some special handling: + + * Ghostty will wait an indefinite amount of time for the next key in + the sequence. There is no way to specify a timeout. The only way to + force the output of a prefix key is to assign another keybind to + specifically output that key (i.e. `ctrl+a>ctrl+a=text:foo`) or + press an unbound key which will send both keys to the program. + + * If a prefix in a sequence is previously bound, the sequence will + override the previous binding. For example, if `ctrl+a` is bound to + `new_window` and `ctrl+a>n` is bound to `new_tab`, pressing `ctrl+a` + will do nothing. + + * Adding to the above, if a previously bound sequence prefix is + used in a new, non-sequence binding, the entire previously bound + sequence will be unbound. For example, if you bind `ctrl+a>n` and + `ctrl+a>t`, and then bind `ctrl+a` directly, both `ctrl+a>n` and + `ctrl+a>t` will become unbound. + + * Trigger sequences are not allowed for `global:` or `all:`-prefixed + triggers. This is a limitation we could remove in the future. + + Action is the action to take when the trigger is satisfied. It takes the + format `action` or `action:param`. The latter form is only valid if the + action requires a parameter. + + * `ignore` - Do nothing, ignore the key input. This can be used to + black hole certain inputs to have no effect. + + * `unbind` - Remove the binding. This makes it so the previous action + is removed, and the key will be sent through to the child command + if it is printable. + + * `csi:text` - Send a CSI sequence. i.e. `csi:A` sends "cursor up". + + * `esc:text` - Send an escape sequence. i.e. `esc:d` deletes to the + end of the word to the right. + + * `text:text` - Send a string. Uses Zig string literal syntax. + i.e. `text:\x15` sends Ctrl-U. + + * All other actions can be found in the documentation or by using the + `ghostty +list-actions` command. + + Some notes for the action: + + * The parameter is taken as-is after the `:`. Double quotes or + other mechanisms are included and NOT parsed. If you want to + send a string value that includes spaces, wrap the entire + trigger/action in double quotes. Example: `--keybind="up=csi:A B"` + + There are some additional special values that can be specified for + keybind: + + * `keybind=clear` will clear all set keybindings. Warning: this + removes ALL keybindings up to this point, including the default + keybindings. + + The keybind trigger can be prefixed with some special values to change + the behavior of the keybind. These are: + + * `all:` - Make the keybind apply to all terminal surfaces. By default, + keybinds only apply to the focused terminal surface. If this is true, + then the keybind will be sent to all terminal surfaces. This only + applies to actions that are surface-specific. For actions that + are already global (i.e. `quit`), this prefix has no effect. + + * `global:` - Make the keybind global. By default, keybinds only work + within Ghostty and under the right conditions (application focused, + sometimes terminal focused, etc.). If you want a keybind to work + globally across your system (i.e. even when Ghostty is not focused), + specify this prefix. This prefix implies `all:`. Note: this does not + work in all environments; see the additional notes below for more + information. + + * `unconsumed:` - Do not consume the input. By default, a keybind + will consume the input, meaning that the associated encoding (if + any) will not be sent to the running program in the terminal. If + you wish to send the encoded value to the program, specify the + `unconsumed:` prefix before the entire keybind. For example: + `unconsumed:ctrl+a=reload_config`. `global:` and `all:`-prefixed + keybinds will always consume the input regardless of this setting. + Since they are not associated with a specific terminal surface, + they're never encoded. + + Keybind triggers are not unique per prefix combination. For example, + `ctrl+a` and `global:ctrl+a` are not two separate keybinds. The keybind + set later will overwrite the keybind set earlier. In this case, the + `global:` keybind will be used. + + Multiple prefixes can be specified. For example, + `global:unconsumed:ctrl+a=reload_config` will make the keybind global + and not consume the input to reload the config. + + Note: `global:` is only supported on macOS. On macOS, + this feature requires accessibility permissions to be granted to Ghostty. + When a `global:` keybind is specified and Ghostty is launched or reloaded, + Ghostty will attempt to request these permissions. If the permissions are + not granted, the keybind will not work. On macOS, you can find these + permissions in System Preferences -> Privacy & Security -> Accessibility. + + +**`window-padding-x`** + +: Horizontal window padding. This applies padding between the terminal cells + and the left and right window borders. The value is in points, meaning that + it will be scaled appropriately for screen DPI. + + If this value is set too large, the screen will render nothing, because the + grid will be completely squished by the padding. It is up to you as the user + to pick a reasonable value. If you pick an unreasonable value, a warning + will appear in the logs. + + Changing this configuration at runtime will only affect new terminals, i.e. + new windows, tabs, etc. + + To set a different left and right padding, specify two numerical values + separated by a comma. For example, `window-padding-x = 2,4` will set the + left padding to 2 and the right padding to 4. If you want to set both + paddings to the same value, you can use a single value. For example, + `window-padding-x = 2` will set both paddings to 2. + + +**`window-padding-y`** + +: Vertical window padding. This applies padding between the terminal cells and + the top and bottom window borders. The value is in points, meaning that it + will be scaled appropriately for screen DPI. + + If this value is set too large, the screen will render nothing, because the + grid will be completely squished by the padding. It is up to you as the user + to pick a reasonable value. If you pick an unreasonable value, a warning + will appear in the logs. + + Changing this configuration at runtime will only affect new terminals, + i.e. new windows, tabs, etc. + + To set a different top and bottom padding, specify two numerical values + separated by a comma. For example, `window-padding-y = 2,4` will set the + top padding to 2 and the bottom padding to 4. If you want to set both + paddings to the same value, you can use a single value. For example, + `window-padding-y = 2` will set both paddings to 2. + + +**`window-padding-balance`** + +: The viewport dimensions are usually not perfectly divisible by the cell + size. In this case, some extra padding on the end of a column and the bottom + of the final row may exist. If this is `true`, then this extra padding + is automatically balanced between all four edges to minimize imbalance on + one side. If this is `false`, the top left grid cell will always hug the + edge with zero padding other than what may be specified with the other + `window-padding` options. + + If other `window-padding` fields are set and this is `true`, this will still + apply. The other padding is applied first and may affect how many grid cells + actually exist, and this is applied last in order to balance the padding + given a certain viewport size and grid cell size. + + +**`window-padding-color`** + +: The color of the padding area of the window. Valid values are: + + * `background` - The background color specified in `background`. + * `extend` - Extend the background color of the nearest grid cell. + * `extend-always` - Same as "extend" but always extends without applying + any of the heuristics that disable extending noted below. + + The "extend" value will be disabled in certain scenarios. On primary + screen applications (i.e. not something like Neovim), the color will not + be extended vertically if any of the following are true: + + * The nearest row has any cells that have the default background color. + The thinking is that in this case, the default background color looks + fine as a padding color. + * The nearest row is a prompt row (requires shell integration). The + thinking here is that prompts often contain powerline glyphs that + do not look good extended. + * The nearest row contains a perfect fit powerline character. These + don't look good extended. + + + +**`window-vsync`** + +: Synchronize rendering with the screen refresh rate. If true, this will + minimize tearing and align redraws with the screen but may cause input + latency. If false, this will maximize redraw frequency but may cause tearing, + and under heavy load may use more CPU and power. + + This defaults to true because out-of-sync rendering on macOS can + cause kernel panics (macOS 14.4+) and performance issues for external + displays over some hardware such as DisplayLink. If you want to minimize + input latency, set this to false with the known aforementioned risks. + + Changing this value at runtime will only affect new terminals. + + This setting is only supported currently on macOS. + + +**`window-inherit-working-directory`** + +: If true, new windows and tabs will inherit the working directory of the + previously focused window. If no window was previously focused, the default + working directory will be used (the `working-directory` option). + + +**`window-inherit-font-size`** + +: If true, new windows and tabs will inherit the font size of the previously + focused window. If no window was previously focused, the default font size + will be used. If this is false, the default font size specified in the + configuration `font-size` will be used. + + +**`window-decoration`** + +: Valid values: + + * `true` + * `false` - windows won't have native decorations, i.e. titlebar and + borders. On macOS this also disables tabs and tab overview. + + The "toggle_window_decorations" keybind action can be used to create + a keybinding to toggle this setting at runtime. + + Changing this configuration in your configuration and reloading will + only affect new windows. Existing windows will not be affected. + + macOS: To hide the titlebar without removing the native window borders + or rounded corners, use `macos-titlebar-style = hidden` instead. + + +**`window-title-font-family`** + +: The font that will be used for the application's window and tab titles. + + This is currently only supported on macOS. + + +**`window-theme`** + +: The theme to use for the windows. Valid values: + + * `auto` - Determine the theme based on the configured terminal + background color. This has no effect if the "theme" configuration + has separate light and dark themes. In that case, the behavior + of "auto" is equivalent to "system". + * `system` - Use the system theme. + * `light` - Use the light theme regardless of system theme. + * `dark` - Use the dark theme regardless of system theme. + * `ghostty` - Use the background and foreground colors specified in the + Ghostty configuration. This is only supported on Linux builds with + Adwaita and `gtk-adwaita` enabled. + + On macOS, if `macos-titlebar-style` is "tabs", the window theme will be + automatically set based on the luminosity of the terminal background color. + This only applies to terminal windows. This setting will still apply to + non-terminal windows within Ghostty. + + This is currently only supported on macOS and Linux. + + +**`window-colorspace`** + +: The colorspace to use for the terminal window. The default is `srgb` but + this can also be set to `display-p3` to use the Display P3 colorspace. + + Changing this value at runtime will only affect new windows. + + This setting is only supported on macOS. + + +**`window-height`** + +: The initial window size. This size is in terminal grid cells by default. + Both values must be set to take effect. If only one value is set, it is + ignored. + + We don't currently support specifying a size in pixels but a future change + can enable that. If this isn't specified, the app runtime will determine + some default size. + + Note that the window manager may put limits on the size or override the + size. For example, a tiling window manager may force the window to be a + certain size to fit within the grid. There is nothing Ghostty will do about + this, but it will make an effort. + + Sizes larger than the screen size will be clamped to the screen size. + This can be used to create a maximized-by-default window size. + + This will not affect new tabs, splits, or other nested terminal elements. + This only affects the initial window size of any new window. Changing this + value will not affect the size of the window after it has been created. This + is only used for the initial size. + + BUG: On Linux with GTK, the calculated window size will not properly take + into account window decorations. As a result, the grid dimensions will not + exactly match this configuration. If window decorations are disabled (see + window-decorations), then this will work as expected. + + Windows smaller than 10 wide by 4 high are not allowed. + + +**`window-width`** + +**`window-save-state`** + +: Whether to enable saving and restoring window state. Window state includes + their position, size, tabs, splits, etc. Some window state requires shell + integration, such as preserving working directories. See `shell-integration` + for more information. + + There are three valid values for this configuration: + + * `default` will use the default system behavior. On macOS, this + will only save state if the application is forcibly terminated + or if it is configured systemwide via Settings.app. + + * `never` will never save window state. + + * `always` will always save window state whenever Ghostty is exited. + + If you change this value to `never` while Ghostty is not running, the next + Ghostty launch will NOT restore the window state. + + If you change this value to `default` while Ghostty is not running and the + previous exit saved state, the next Ghostty launch will still restore the + window state. This is because Ghostty cannot know if the previous exit was + due to a forced save or not (macOS doesn't provide this information). + + If you change this value so that window state is saved while Ghostty is not + running, the previous window state will not be restored because Ghostty only + saves state on exit if this is enabled. + + The default value is `default`. + + This is currently only supported on macOS. This has no effect on Linux. + + +**`window-step-resize`** + +: Resize the window in discrete increments of the focused surface's cell size. + If this is disabled, surfaces are resized in pixel increments. Currently + only supported on macOS. + + +**`window-new-tab-position`** + +: The position where new tabs are created. Valid values: + + * `current` - Insert the new tab after the currently focused tab, + or at the end if there are no focused tabs. + + * `end` - Insert the new tab at the end of the tab list. + + +**`resize-overlay`** + +: This controls when resize overlays are shown. Resize overlays are a + transient popup that shows the size of the terminal while the surfaces are + being resized. The possible options are: + + * `always` - Always show resize overlays. + * `never` - Never show resize overlays. + * `after-first` - The resize overlay will not appear when the surface + is first created, but will show up if the surface is + subsequently resized. + + The default is `after-first`. + + +**`resize-overlay-position`** + +: If resize overlays are enabled, this controls the position of the overlay. + The possible options are: + + * `center` + * `top-left` + * `top-center` + * `top-right` + * `bottom-left` + * `bottom-center` + * `bottom-right` + + The default is `center`. + + +**`resize-overlay-duration`** + +: If resize overlays are enabled, this controls how long the overlay is + visible on the screen before it is hidden. The default is ¾ of a second or + 750 ms. + + The duration is specified as a series of numbers followed by time units. + Whitespace is allowed between numbers and units. Each number and unit will + be added together to form the total duration. + + The allowed time units are as follows: + + * `y` - 365 SI days, or 8760 hours, or 31536000 seconds. No adjustments + are made for leap years or leap seconds. + * `d` - one SI day, or 86400 seconds. + * `h` - one hour, or 3600 seconds. + * `m` - one minute, or 60 seconds. + * `s` - one second. + * `ms` - one millisecond, or 0.001 second. + * `us` or `µs` - one microsecond, or 0.000001 second. + * `ns` - one nanosecond, or 0.000000001 second. + + Examples: + * `1h30m` + * `45s` + + Units can be repeated and will be added together. This means that + `1h1h` is equivalent to `2h`. This is confusing and should be avoided. + A future update may disallow this. + + The maximum value is `584y 49w 23h 34m 33s 709ms 551µs 615ns`. Any + value larger than this will be clamped to the maximum value. + + +**`focus-follows-mouse`** + +**`clipboard-read`** + +: Whether to allow programs running in the terminal to read/write to the + system clipboard (OSC 52, for googling). The default is to allow clipboard + reading after prompting the user and allow writing unconditionally. + + Valid values are: + + * `ask` + * `allow` + * `deny` + + + +**`clipboard-write`** + +**`clipboard-trim-trailing-spaces`** + +: Trims trailing whitespace on data that is copied to the clipboard. This does + not affect data sent to the clipboard via `clipboard-write`. + + +**`clipboard-paste-protection`** + +: Require confirmation before pasting text that appears unsafe. This helps + prevent a "copy/paste attack" where a user may accidentally execute unsafe + commands by pasting text with newlines. + + +**`clipboard-paste-bracketed-safe`** + +: If true, bracketed pastes will be considered safe. By default, bracketed + pastes are considered safe. "Bracketed" pastes are pastes while the running + program has bracketed paste mode enabled (a setting set by the running + program, not the terminal emulator). + + +**`image-storage-limit`** + +: The total amount of bytes that can be used for image data (i.e. the Kitty + image protocol) per terminal screen. The maximum value is 4,294,967,295 + (4GiB). The default is 320MB. If this is set to zero, then all image + protocols will be disabled. + + This value is separate for primary and alternate screens so the effective + limit per surface is double. + + +**`copy-on-select`** + +: Whether to automatically copy selected text to the clipboard. `true` + will prefer to copy to the selection clipboard if supported by the + OS, otherwise it will copy to the system clipboard. + + The value `clipboard` will always copy text to the selection clipboard + (for supported systems) as well as the system clipboard. This is sometimes + a preferred behavior on Linux. + + Middle-click paste will always use the selection clipboard on Linux + and the system clipboard on macOS. Middle-click paste is always enabled + even if this is `false`. + + The default value is true on Linux and false on macOS. macOS copy on + select behavior is not typical for applications so it is disabled by + default. On Linux, this is a standard behavior so it is enabled by + default. + + +**`click-repeat-interval`** + +: The time in milliseconds between clicks to consider a click a repeat + (double, triple, etc.) or an entirely new single click. A value of zero will + use a platform-specific default. The default on macOS is determined by the + OS settings. On every other platform it is 500ms. + + +**`config-file`** + +: Additional configuration files to read. This configuration can be repeated + to read multiple configuration files. Configuration files themselves can + load more configuration files. Paths are relative to the file containing the + `config-file` directive. For command-line arguments, paths are relative to + the current working directory. + + Prepend a ? character to the file path to suppress errors if the file does + not exist. If you want to include a file that begins with a literal ? + character, surround the file path in double quotes ("). + + Cycles are not allowed. If a cycle is detected, an error will be logged and + the configuration file will be ignored. + + Configuration files are loaded after the configuration they're defined + within in the order they're defined. **THIS IS A VERY SUBTLE BUT IMPORTANT + POINT.** To put it another way: configuration files do not take effect + until after the entire configuration is loaded. For example, in the + configuration below: + + ``` + config-file = "foo" + a = 1 + ``` + + If "foo" contains `a = 2`, the final value of `a` will be 2, because + `foo` is loaded after the configuration file that configures the + nested `config-file` value. + + +**`config-default-files`** + +: When this is true, the default configuration file paths will be loaded. + The default configuration file paths are currently only the XDG + config path ($XDG_CONFIG_HOME/ghostty/config). + + If this is false, the default configuration paths will not be loaded. + This is targeted directly at using Ghostty from the CLI in a way + that minimizes external effects. + + This is a CLI-only configuration. Setting this in a configuration file + will have no effect. It is not an error, but it will not do anything. + This configuration can only be set via CLI arguments. + + +**`confirm-close-surface`** + +: Confirms that a surface should be closed before closing it. This defaults to + true. If set to false, surfaces will close without any confirmation. + + +**`quit-after-last-window-closed`** + +: Whether or not to quit after the last surface is closed. + + This defaults to `false` on macOS since that is standard behavior for + a macOS application. On Linux, this defaults to `true` since that is + generally expected behavior. + + On Linux, if this is `true`, Ghostty can delay quitting fully until a + configurable amount of time has passed after the last window is closed. + See the documentation of `quit-after-last-window-closed-delay`. + + +**`quit-after-last-window-closed-delay`** + +: Controls how long Ghostty will stay running after the last open surface has + been closed. This only has an effect if `quit-after-last-window-closed` is + also set to `true`. + + The minimum value for this configuration is `1s`. Any values lower than + this will be clamped to `1s`. + + The duration is specified as a series of numbers followed by time units. + Whitespace is allowed between numbers and units. Each number and unit will + be added together to form the total duration. + + The allowed time units are as follows: + + * `y` - 365 SI days, or 8760 hours, or 31536000 seconds. No adjustments + are made for leap years or leap seconds. + * `d` - one SI day, or 86400 seconds. + * `h` - one hour, or 3600 seconds. + * `m` - one minute, or 60 seconds. + * `s` - one second. + * `ms` - one millisecond, or 0.001 second. + * `us` or `µs` - one microsecond, or 0.000001 second. + * `ns` - one nanosecond, or 0.000000001 second. + + Examples: + * `1h30m` + * `45s` + + Units can be repeated and will be added together. This means that + `1h1h` is equivalent to `2h`. This is confusing and should be avoided. + A future update may disallow this. + + The maximum value is `584y 49w 23h 34m 33s 709ms 551µs 615ns`. Any + value larger than this will be clamped to the maximum value. + + By default `quit-after-last-window-closed-delay` is unset and + Ghostty will quit immediately after the last window is closed if + `quit-after-last-window-closed` is `true`. + + Only implemented on Linux. + + +**`initial-window`** + +: This controls whether an initial window is created when Ghostty + is run. Note that if `quit-after-last-window-closed` is `true` and + `quit-after-last-window-closed-delay` is set, setting `initial-window` to + `false` will mean that Ghostty will quit after the configured delay if no + window is ever created. Only implemented on Linux and macOS. + + +**`quick-terminal-position`** + +: The position of the "quick" terminal window. To learn more about the + quick terminal, see the documentation for the `toggle_quick_terminal` + binding action. + + Valid values are: + + * `top` - Terminal appears at the top of the screen. + * `bottom` - Terminal appears at the bottom of the screen. + * `left` - Terminal appears at the left of the screen. + * `right` - Terminal appears at the right of the screen. + + Changing this configuration requires restarting Ghostty completely. + + +**`quick-terminal-screen`** + +: The screen where the quick terminal should show up. + + Valid values are: + + * `main` - The screen that the operating system recommends as the main + screen. On macOS, this is the screen that is currently receiving + keyboard input. This screen is defined by the operating system and + not chosen by Ghostty. + + * `mouse` - The screen that the mouse is currently hovered over. + + * `macos-menu-bar` - The screen that contains the macOS menu bar as + set in the display settings on macOS. This is a bit confusing because + every screen on macOS has a menu bar, but this is the screen that + contains the primary menu bar. + + The default value is `main` because this is the recommended screen + by the operating system. + + +**`quick-terminal-animation-duration`** + +: Duration (in seconds) of the quick terminal enter and exit animation. + Set it to 0 to disable animation completely. This can be changed at + runtime. + + +**`shell-integration`** + +: Whether to enable shell integration auto-injection or not. Shell integration + greatly enhances the terminal experience by enabling a number of features: + + * Working directory reporting so new tabs, splits inherit the + previous terminal's working directory. + + * Prompt marking that enables the "jump_to_prompt" keybinding. + + * If you're sitting at a prompt, closing a terminal will not ask + for confirmation. + + * Resizing the window with a complex prompt usually paints much + better. + + Allowable values are: + + * `none` - Do not do any automatic injection. You can still manually + configure your shell to enable the integration. + + * `detect` - Detect the shell based on the filename. + + * `bash`, `elvish`, `fish`, `zsh` - Use this specific shell injection scheme. + + The default value is `detect`. + + +**`shell-integration-features`** + +: Shell integration features to enable if shell integration itself is enabled. + The format of this is a list of features to enable separated by commas. If + you prefix a feature with `no-` then it is disabled. If you omit a feature, + its default value is used, so you must explicitly disable features you don't + want. You can also use `true` or `false` to turn all features on or off. + + Available features: + + * `cursor` - Set the cursor to a blinking bar at the prompt. + + * `sudo` - Set sudo wrapper to preserve terminfo. + + * `title` - Set the window title via shell integration. + + Example: `cursor`, `no-cursor`, `sudo`, `no-sudo`, `title`, `no-title` + + +**`osc-color-report-format`** + +: Sets the reporting format for OSC sequences that request color information. + Ghostty currently supports OSC 10 (foreground), OSC 11 (background), and + OSC 4 (256 color palette) queries, and by default the reported values + are scaled-up RGB values, where each component are 16 bits. This is how + most terminals report these values. However, some legacy applications may + require 8-bit, unscaled, components. We also support turning off reporting + altogether. The components are lowercase hex values. + + Allowable values are: + + * `none` - OSC 4/10/11 queries receive no reply + + * `8-bit` - Color components are return unscaled, i.e. `rr/gg/bb` + + * `16-bit` - Color components are returned scaled, e.g. `rrrr/gggg/bbbb` + + The default value is `16-bit`. + + +**`vt-kam-allowed`** + +: If true, allows the "KAM" mode (ANSI mode 2) to be used within + the terminal. KAM disables keyboard input at the request of the + application. This is not a common feature and is not recommended + to be enabled. This will not be documented further because + if you know you need KAM, you know. If you don't know if you + need KAM, you don't need it. + + +**`custom-shader`** + +: Custom shaders to run after the default shaders. This is a file path + to a GLSL-syntax shader for all platforms. + + Warning: Invalid shaders can cause Ghostty to become unusable such as by + causing the window to be completely black. If this happens, you can + unset this configuration to disable the shader. + + On Linux, this requires OpenGL 4.2. Ghostty typically only requires + OpenGL 3.3, but custom shaders push that requirement up to 4.2. + + The shader API is identical to the Shadertoy API: you specify a `mainImage` + function and the available uniforms match Shadertoy. The iChannel0 uniform + is a texture containing the rendered terminal screen. + + If the shader fails to compile, the shader will be ignored. Any errors + related to shader compilation will not show up as configuration errors + and only show up in the log, since shader compilation happens after + configuration loading on the dedicated render thread. For interactive + development, use [shadertoy.com](https://shadertoy.com). + + This can be repeated multiple times to load multiple shaders. The shaders + will be run in the order they are specified. + + Changing this value at runtime and reloading the configuration will only + affect new windows, tabs, and splits. + + +**`custom-shader-animation`** + +: If `true` (default), the focused terminal surface will run an animation + loop when custom shaders are used. This uses slightly more CPU (generally + less than 10%) but allows the shader to animate. This only runs if there + are custom shaders and the terminal is focused. + + If this is set to `false`, the terminal and custom shader will only render + when the terminal is updated. This is more efficient but the shader will + not animate. + + This can also be set to `always`, which will always run the animation + loop regardless of whether the terminal is focused or not. The animation + loop will still only run when custom shaders are used. Note that this + will use more CPU per terminal surface and can become quite expensive + depending on the shader and your terminal usage. + + This value can be changed at runtime and will affect all currently + open terminals. + + +**`macos-non-native-fullscreen`** + +: If anything other than false, fullscreen mode on macOS will not use the + native fullscreen, but make the window fullscreen without animations and + using a new space. It's faster than the native fullscreen mode since it + doesn't use animations. + + Important: tabs DO NOT WORK in this mode. Non-native fullscreen removes + the titlebar and macOS native tabs require the titlebar. If you use tabs, + you should not use this mode. + + If you fullscreen a window with tabs, the currently focused tab will + become fullscreen while the others will remain in a separate window in + the background. You can switch to that window using normal window-switching + keybindings such as command+tilde. When you exit fullscreen, the window + will return to the tabbed state it was in before. + + Allowable values are: + + * `visible-menu` - Use non-native macOS fullscreen, keep the menu bar visible + * `true` - Use non-native macOS fullscreen, hide the menu bar + * `false` - Use native macOS fullscreen + + Changing this option at runtime works, but will only apply to the next + time the window is made fullscreen. If a window is already fullscreen, + it will retain the previous setting until fullscreen is exited. + + +**`macos-titlebar-style`** + +: The style of the macOS titlebar. Available values are: "native", + "transparent", "tabs", and "hidden". + + The "native" style uses the native macOS titlebar with zero customization. + The titlebar will match your window theme (see `window-theme`). + + The "transparent" style is the same as "native" but the titlebar will + be transparent and allow your window background color to come through. + This makes a more seamless window appearance but looks a little less + typical for a macOS application and may not work well with all themes. + + The "transparent" style will also update in real-time to dynamic + changes to the window background color, i.e. via OSC 11. To make this + more aesthetically pleasing, this only happens if the terminal is + a window, tab, or split that borders the top of the window. This + avoids a disjointed appearance where the titlebar color changes + but all the topmost terminals don't match. + + The "tabs" style is a completely custom titlebar that integrates the + tab bar into the titlebar. This titlebar always matches the background + color of the terminal. There are some limitations to this style: + On macOS 13 and below, saved window state will not restore tabs correctly. + macOS 14 does not have this issue and any other macOS version has not + been tested. + + The "hidden" style hides the titlebar. Unlike `window-decoration = false`, + however, it does not remove the frame from the window or cause it to have + squared corners. Changing to or from this option at run-time may affect + existing windows in buggy ways. The top titlebar area of the window will + continue to drag the window around and you will not be able to use + the mouse for terminal events in this space. + + The default value is "transparent". This is an opinionated choice + but its one I think is the most aesthetically pleasing and works in + most cases. + + Changing this option at runtime only applies to new windows. + + +**`macos-titlebar-proxy-icon`** + +: Whether the proxy icon in the macOS titlebar is visible. The proxy icon + is the icon that represents the folder of the current working directory. + You can see this very clearly in the macOS built-in Terminal.app + titlebar. + + The proxy icon is only visible with the native macOS titlebar style. + + Valid values are: + + * `visible` - Show the proxy icon. + * `hidden` - Hide the proxy icon. + + The default value is `visible`. + + This setting can be changed at runtime and will affect all currently + open windows but only after their working directory changes again. + Therefore, to make this work after changing the setting, you must + usually `cd` to a different directory, open a different file in an + editor, etc. + + +**`macos-option-as-alt`** + +: macOS doesn't have a distinct "alt" key and instead has the "option" + key which behaves slightly differently. On macOS by default, the + option key plus a character will sometimes produces a Unicode character. + For example, on US standard layouts option-b produces "∫". This may be + undesirable if you want to use "option" as an "alt" key for keybindings + in terminal programs or shells. + + This configuration lets you change the behavior so that option is treated + as alt. + + The default behavior (unset) will depend on your active keyboard + layout. If your keyboard layout is one of the keyboard layouts listed + below, then the default value is "true". Otherwise, the default + value is "false". Keyboard layouts with a default value of "true" are: + + - U.S. Standard + - U.S. International + + Note that if an *Option*-sequence doesn't produce a printable character, it + will be treated as *Alt* regardless of this setting. (i.e. `alt+ctrl+a`). + + Explicit values that can be set: + + If `true`, the *Option* key will be treated as *Alt*. This makes terminal + sequences expecting *Alt* to work properly, but will break Unicode input + sequences on macOS if you use them via the *Alt* key. + + You may set this to `false` to restore the macOS *Alt* key unicode + sequences but this will break terminal sequences expecting *Alt* to work. + + The values `left` or `right` enable this for the left or right *Option* + key, respectively. + + This does not work with GLFW builds. + + +**`macos-window-shadow`** + +: Whether to enable the macOS window shadow. The default value is true. + With some window managers and window transparency settings, you may + find false more visually appealing. + + +**`macos-auto-secure-input`** + +: If true, Ghostty on macOS will automatically enable the "Secure Input" + feature when it detects that a password prompt is being displayed. + + "Secure Input" is a macOS security feature that prevents applications from + reading keyboard events. This can always be enabled manually using the + `Ghostty > Secure Keyboard Entry` menu item. + + Note that automatic password prompt detection is based on heuristics + and may not always work as expected. Specifically, it does not work + over SSH connections, but there may be other cases where it also + doesn't work. + + A reason to disable this feature is if you find that it is interfering + with legitimate accessibility software (or software that uses the + accessibility APIs), since secure input prevents any application from + reading keyboard events. + + +**`macos-secure-input-indication`** + +: If true, Ghostty will show a graphical indication when secure input is + enabled. This indication is generally recommended to know when secure input + is enabled. + + Normally, secure input is only active when a password prompt is displayed + or it is manually (and typically temporarily) enabled. However, if you + always have secure input enabled, the indication can be distracting and + you may want to disable it. + + +**`linux-cgroup`** + +: Put every surface (tab, split, window) into a dedicated Linux cgroup. + + This makes it so that resource management can be done on a per-surface + granularity. For example, if a shell program is using too much memory, + only that shell will be killed by the oom monitor instead of the entire + Ghostty process. Similarly, if a shell program is using too much CPU, + only that surface will be CPU-throttled. + + This will cause startup times to be slower (a hundred milliseconds or so), + so the default value is "single-instance." In single-instance mode, only + one instance of Ghostty is running (see gtk-single-instance) so the startup + time is a one-time cost. Additionally, single instance Ghostty is much + more likely to have many windows, tabs, etc. so cgroup isolation is a + big benefit. + + This feature requires systemd. If systemd is unavailable, cgroup + initialization will fail. By default, this will not prevent Ghostty + from working (see linux-cgroup-hard-fail). + + Valid values are: + + * `never` - Never use cgroups. + * `always` - Always use cgroups. + * `single-instance` - Enable cgroups only for Ghostty instances launched + as single-instance applications (see gtk-single-instance). + + + +**`linux-cgroup-memory-limit`** + +: Memory limit for any individual terminal process (tab, split, window, + etc.) in bytes. If this is unset then no memory limit will be set. + + Note that this sets the "memory.high" configuration for the memory + controller, which is a soft limit. You should configure something like + systemd-oom to handle killing processes that have too much memory + pressure. + + +**`linux-cgroup-processes-limit`** + +: Number of processes limit for any individual terminal process (tab, split, + window, etc.). If this is unset then no limit will be set. + + Note that this sets the "pids.max" configuration for the process number + controller, which is a hard limit. + + +**`linux-cgroup-hard-fail`** + +: If this is false, then any cgroup initialization (for linux-cgroup) + will be allowed to fail and the failure is ignored. This is useful if + you view cgroup isolation as a "nice to have" and not a critical resource + management feature, because Ghostty startup will not fail if cgroup APIs + fail. + + If this is true, then any cgroup initialization failure will cause + Ghostty to exit or new surfaces to not be created. + + Note: This currently only affects cgroup initialization. Subprocesses + must always be able to move themselves into an isolated cgroup. + + +**`gtk-single-instance`** + +: If `true`, the Ghostty GTK application will run in single-instance mode: + each new `ghostty` process launched will result in a new window if there is + already a running process. + + If `false`, each new ghostty process will launch a separate application. + + The default value is `detect` which will default to `true` if Ghostty + detects that it was launched from the `.desktop` file such as an app + launcher (like Gnome Shell) or by D-Bus activation. If Ghostty is launched + from the command line, it will default to `false`. + + Note that debug builds of Ghostty have a separate single-instance ID + so you can test single instance without conflicting with release builds. + + +**`gtk-titlebar`** + +: When enabled, the full GTK titlebar is displayed instead of your window + manager's simple titlebar. The behavior of this option will vary with your + window manager. + + This option does nothing when `window-decoration` is false or when running + under macOS. + + Changing this value at runtime and reloading the configuration will only + affect new windows. + + +**`gtk-tabs-location`** + +: Determines the side of the screen that the GTK tab bar will stick to. + Top, bottom, left, right, and hidden are supported. The default is top. + + If this option has value `left` or `right` when using Adwaita, it falls + back to `top`. `hidden`, meaning that tabs don't exist, is not supported + without using Adwaita, falling back to `top`. + + When `hidden` is set and Adwaita is enabled, a tab button displaying the + number of tabs will appear in the title bar. It has the ability to open a + tab overview for displaying tabs. Alternatively, you can use the + `toggle_tab_overview` action in a keybind if your window doesn't have a + title bar, or you can switch tabs with keybinds. + + +**`adw-toolbar-style`** + +: Determines the appearance of the top and bottom bars when using the + Adwaita tab bar. This requires `gtk-adwaita` to be enabled (it is + by default). + + Valid values are: + + * `flat` - Top and bottom bars are flat with the terminal window. + * `raised` - Top and bottom bars cast a shadow on the terminal area. + * `raised-border` - Similar to `raised` but the shadow is replaced with a + more subtle border. + + Changing this value at runtime will only affect new windows. + + +**`gtk-wide-tabs`** + +: If `true` (default), then the Ghostty GTK tabs will be "wide." Wide tabs + are the new typical Gnome style where tabs fill their available space. + If you set this to `false` then tabs will only take up space they need, + which is the old style. + + +**`gtk-adwaita`** + +: If `true` (default), Ghostty will enable Adwaita theme support. This + will make `window-theme` work properly and will also allow Ghostty to + properly respond to system theme changes, light/dark mode changing, etc. + This requires a GTK4 desktop with a GTK4 theme. + + If you are running GTK3 or have a GTK3 theme, you may have to set this + to false to get your theme picked up properly. Having this set to true + with GTK3 should not cause any problems, but it may not work exactly as + expected. + + This configuration only has an effect if Ghostty was built with + Adwaita support. + + +**`desktop-notifications`** + +: If `true` (default), applications running in the terminal can show desktop + notifications using certain escape sequences such as OSC 9 or OSC 777. + + +**`bold-is-bright`** + +: If `true`, the bold text will use the bright color palette. + + +**`term`** + +: This will be used to set the `TERM` environment variable. + HACK: We set this with an `xterm` prefix because vim uses that to enable key + protocols (specifically this will enable `modifyOtherKeys`), among other + features. An option exists in vim to modify this: `:set + keyprotocol=ghostty:kitty`, however a bug in the implementation prevents it + from working properly. https://github.com/vim/vim/pull/13211 fixes this. + + +**`enquiry-response`** + +: String to send when we receive `ENQ` (`0x05`) from the command that we are + running. Defaults to an empty string if not set. + + +**`auto-update`** + +: Control the auto-update functionality of Ghostty. This is only supported + on macOS currently, since Linux builds are distributed via package + managers that are not centrally controlled by Ghostty. + + Checking or downloading an update does not send any information to + the project beyond standard network information mandated by the + underlying protocols. To put it another way: Ghostty doesn't explicitly + add any tracking to the update process. The update process works by + downloading information about the latest version and comparing it + client-side to the current version. + + Valid values are: + + * `off` - Disable auto-updates. + * `check` - Check for updates and notify the user if an update is + available, but do not automatically download or install the update. + * `download` - Check for updates, automatically download the update, + notify the user, but do not automatically install the update. + + The default value is `check`. + + Changing this value at runtime works after a small delay. + + +**`auto-update-channel`** + +: The release channel to use for auto-updates. + + The default value of this matches the release channel of the currently + running Ghostty version. If you download a pre-release version of Ghostty + then this will be set to `tip` and you will receive pre-release updates. + If you download a stable version of Ghostty then this will be set to + `stable` and you will receive stable updates. + + Valid values are: + + * `stable` - Stable, tagged releases such as "1.0.0". + * `tip` - Pre-release versions generated from each commit to the + main branch. This is the version that was in use during private + beta testing by thousands of people. It is generally stable but + will likely have more bugs than the stable channel. + + Changing this configuration requires a full restart of + Ghostty to take effect. + + This only works on macOS since only macOS has an auto-update feature. + + + +# KEYBIND ACTIONS + +**`ignore`** + +: Ignore this key combination, don't send it to the child process, just + black hole it. + + +**`unbind`** + +: This action is used to flag that the binding should be removed from + the set. This should never exist in an active set and `set.put` has an + assertion to verify this. + + +**`csi`** + +: Send a CSI sequence. The value should be the CSI sequence without the + CSI header (`ESC ]` or `\x1b]`). + + +**`esc`** + +: Send an `ESC` sequence. + + +**`text`** + +**`cursor_key`** + +: Send data to the pty depending on whether cursor key mode is enabled + (`application`) or disabled (`normal`). + + +**`reset`** + +: Reset the terminal. This can fix a lot of issues when a running + program puts the terminal into a broken state. This is equivalent to + when you type "reset" and press enter. + + If you do this while in a TUI program such as vim, this may break + the program. If you do this while in a shell, you may have to press + enter after to get a new prompt. + + +**`copy_to_clipboard`** + +: Copy and paste. + + +**`paste_from_clipboard`** + +**`paste_from_selection`** + +**`increase_font_size`** + +: Increase/decrease the font size by a certain amount. + + +**`decrease_font_size`** + +**`reset_font_size`** + +: Reset the font size to the original configured size. + + +**`clear_screen`** + +: Clear the screen. This also clears all scrollback. + + +**`select_all`** + +: Select all text on the screen. + + +**`scroll_to_top`** + +: Scroll the screen varying amounts. + + +**`scroll_to_bottom`** + +**`scroll_page_up`** + +**`scroll_page_down`** + +**`scroll_page_fractional`** + +**`scroll_page_lines`** + +**`adjust_selection`** + +: Adjust an existing selection in a given direction. This action + does nothing if there is no active selection. + + +**`jump_to_prompt`** + +: Jump the viewport forward or back by prompt. Positive number is the + number of prompts to jump forward, negative is backwards. + + +**`write_scrollback_file`** + +: Write the entire scrollback into a temporary file. The action + determines what to do with the filepath. Valid values are: + + - "paste": Paste the file path into the terminal. + - "open": Open the file in the default OS editor for text files. + The default OS editor is determined by using `open` on macOS + and `xdg-open` on Linux. + + + +**`write_screen_file`** + +: Same as write_scrollback_file but writes the full screen contents. + See write_scrollback_file for available values. + + +**`write_selection_file`** + +: Same as write_scrollback_file but writes the selected text. + If there is no selected text this does nothing (it doesn't + even create an empty file). See write_scrollback_file for + available values. + + +**`new_window`** + +: Open a new window. If the application isn't currently focused, + this will bring it to the front. + + +**`new_tab`** + +: Open a new tab. + + +**`previous_tab`** + +: Go to the previous tab. + + +**`next_tab`** + +: Go to the next tab. + + +**`last_tab`** + +: Go to the last tab (the one with the highest index) + + +**`goto_tab`** + +: Go to the tab with the specific number, 1-indexed. If the tab number + is higher than the number of tabs, this will go to the last tab. + + +**`move_tab`** + +: Moves a tab by a relative offset. + Adjusts the tab position based on `offset` (e.g., -1 for left, +1 for right). + If the new position is out of bounds, it wraps around cyclically within the tab range. + + +**`toggle_tab_overview`** + +: Toggle the tab overview. + This only works with libadwaita enabled currently. + + +**`new_split`** + +: Create a new split in the given direction. The new split will appear in + the direction given. + + +**`goto_split`** + +: Focus on a split in a given direction. + + +**`toggle_split_zoom`** + +: zoom/unzoom the current split. + + +**`resize_split`** + +: Resize the current split by moving the split divider in the given + direction + + +**`equalize_splits`** + +: Equalize all splits in the current window + + +**`inspector`** + +: Show, hide, or toggle the terminal inspector for the currently focused + terminal. + + +**`open_config`** + +: Open the configuration file in the default OS editor. If your default OS + editor isn't configured then this will fail. Currently, any failures to + open the configuration will show up only in the logs. + + +**`reload_config`** + +: Reload the configuration. The exact meaning depends on the app runtime + in use but this usually involves re-reading the configuration file + and applying any changes. Note that not all changes can be applied at + runtime. + + +**`close_surface`** + +: Close the current "surface", whether that is a window, tab, split, etc. + This only closes ONE surface. This will trigger close confirmation as + configured. + + +**`close_window`** + +: Close the window, regardless of how many tabs or splits there may be. + This will trigger close confirmation as configured. + + +**`close_all_windows`** + +: Close all windows. This will trigger close confirmation as configured. + This only works for macOS currently. + + +**`toggle_fullscreen`** + +: Toggle fullscreen mode of window. + + +**`toggle_window_decorations`** + +: Toggle window decorations on and off. This only works on Linux. + + +**`toggle_secure_input`** + +: Toggle secure input mode on or off. This is used to prevent apps + that monitor input from seeing what you type. This is useful for + entering passwords or other sensitive information. + + This applies to the entire application, not just the focused + terminal. You must toggle it off to disable it, or quit Ghostty. + + This only works on macOS, since this is a system API on macOS. + + +**`toggle_quick_terminal`** + +: Toggle the "quick" terminal. The quick terminal is a terminal that + appears on demand from a keybinding, often sliding in from a screen + edge such as the top. This is useful for quick access to a terminal + without having to open a new window or tab. + + When the quick terminal loses focus, it disappears. The terminal state + is preserved between appearances, so you can always press the keybinding + to bring it back up. + + The quick terminal has some limitations: + + - It is a singleton; only one instance can exist at a time. + - It does not support tabs. + - It will not be restored when the application is restarted + (for systems that support window restoration). + - It supports fullscreen, but fullscreen will always be a non-native + fullscreen (macos-non-native-fullscreen = true). This only applies + to the quick terminal window. This is a requirement due to how + the quick terminal is rendered. + + See the various configurations for the quick terminal in the + configuration file to customize its behavior. + + +**`toggle_visibility`** + +: Show/hide all windows. If all windows become shown, we also ensure + Ghostty is focused. + + This currently only works on macOS. When hiding all windows, we do + not yield focus to the previous application. + + +**`quit`** + +: Quit ghostty. + + +**`crash`** + +: Crash ghostty in the desired thread for the focused surface. + + WARNING: This is a hard crash (panic) and data can be lost. + + The purpose of this action is to test crash handling. For some + users, it may be useful to test crash reporting functionality in + order to determine if it all works as expected. + + The value determines the crash location: + + - "main" - crash on the main (GUI) thread. + - "io" - crash on the IO thread for the focused surface. + - "render" - crash on the render thread for the focused surface. + + + +# FILES + +_\$XDG_CONFIG_HOME/ghostty/config_ + +: Location of the default configuration file. + +_\$LOCALAPPDATA/ghostty/config_ + +: **On Windows**, if _\$XDG_CONFIG_HOME_ is not set, _\$LOCALAPPDATA_ will be searched +for configuration files. + +# ENVIRONMENT + +**XDG_CONFIG_HOME** + +: Default location for configuration files. + +**LOCALAPPDATA** + +: **WINDOWS ONLY:** alternate location to search for configuration files. + +# BUGS + +See GitHub issues: + +# AUTHOR + +Mitchell Hashimoto + +# SEE ALSO + +**ghostty(1)** diff --git a/bin/share/ghostty/shell-integration/bash/bash-preexec.sh b/bin/share/ghostty/shell-integration/bash/bash-preexec.sh new file mode 100644 index 0000000..14a6778 --- /dev/null +++ b/bin/share/ghostty/shell-integration/bash/bash-preexec.sh @@ -0,0 +1,386 @@ +# bash-preexec.sh -- Bash support for ZSH-like 'preexec' and 'precmd' functions. +# https://github.com/rcaloras/bash-preexec +# +# +# 'preexec' functions are executed before each interactive command is +# executed, with the interactive command as its argument. The 'precmd' +# function is executed before each prompt is displayed. +# +# Author: Ryan Caloras (ryan@bashhub.com) +# Forked from Original Author: Glyph Lefkowitz +# +# V0.5.0 +# + +# General Usage: +# +# 1. Source this file at the end of your bash profile so as not to interfere +# with anything else that's using PROMPT_COMMAND. +# +# 2. Add any precmd or preexec functions by appending them to their arrays: +# e.g. +# precmd_functions+=(my_precmd_function) +# precmd_functions+=(some_other_precmd_function) +# +# preexec_functions+=(my_preexec_function) +# +# 3. Consider changing anything using the DEBUG trap or PROMPT_COMMAND +# to use preexec and precmd instead. Preexisting usages will be +# preserved, but doing so manually may be less surprising. +# +# Note: This module requires two Bash features which you must not otherwise be +# using: the "DEBUG" trap, and the "PROMPT_COMMAND" variable. If you override +# either of these after bash-preexec has been installed it will most likely break. + +# Tell shellcheck what kind of file this is. +# shellcheck shell=bash + +# Make sure this is bash that's running and return otherwise. +# Use POSIX syntax for this line: +if [ -z "${BASH_VERSION-}" ]; then + return 1; +fi + +# We only support Bash 3.1+. +# Note: BASH_VERSINFO is first available in Bash-2.0. +if [[ -z "${BASH_VERSINFO-}" ]] || (( BASH_VERSINFO[0] < 3 || (BASH_VERSINFO[0] == 3 && BASH_VERSINFO[1] < 1) )); then + return 1 +fi + +# Avoid duplicate inclusion +if [[ -n "${bash_preexec_imported:-}" || -n "${__bp_imported:-}" ]]; then + return 0 +fi +bash_preexec_imported="defined" + +# WARNING: This variable is no longer used and should not be relied upon. +# Use ${bash_preexec_imported} instead. +# shellcheck disable=SC2034 +__bp_imported="${bash_preexec_imported}" + +# Should be available to each precmd and preexec +# functions, should they want it. $? and $_ are available as $? and $_, but +# $PIPESTATUS is available only in a copy, $BP_PIPESTATUS. +# TODO: Figure out how to restore PIPESTATUS before each precmd or preexec +# function. +__bp_last_ret_value="$?" +BP_PIPESTATUS=("${PIPESTATUS[@]}") +__bp_last_argument_prev_command="$_" + +__bp_inside_precmd=0 +__bp_inside_preexec=0 + +# Initial PROMPT_COMMAND string that is removed from PROMPT_COMMAND post __bp_install +__bp_install_string=$'__bp_trap_string="$(trap -p DEBUG)"\ntrap - DEBUG\n__bp_install' + +# Fails if any of the given variables are readonly +# Reference https://stackoverflow.com/a/4441178 +__bp_require_not_readonly() { + local var + for var; do + if ! ( unset "$var" 2> /dev/null ); then + echo "bash-preexec requires write access to ${var}" >&2 + return 1 + fi + done +} + +# Remove ignorespace and or replace ignoreboth from HISTCONTROL +# so we can accurately invoke preexec with a command from our +# history even if it starts with a space. +__bp_adjust_histcontrol() { + local histcontrol + histcontrol="${HISTCONTROL:-}" + histcontrol="${histcontrol//ignorespace}" + # Replace ignoreboth with ignoredups + if [[ "$histcontrol" == *"ignoreboth"* ]]; then + histcontrol="ignoredups:${histcontrol//ignoreboth}" + fi; + export HISTCONTROL="$histcontrol" +} + +# This variable describes whether we are currently in "interactive mode"; +# i.e. whether this shell has just executed a prompt and is waiting for user +# input. It documents whether the current command invoked by the trace hook is +# run interactively by the user; it's set immediately after the prompt hook, +# and unset as soon as the trace hook is run. +__bp_preexec_interactive_mode="" + +# These arrays are used to add functions to be run before, or after, prompts. +declare -a precmd_functions +declare -a preexec_functions + +# Trims leading and trailing whitespace from $2 and writes it to the variable +# name passed as $1 +__bp_trim_whitespace() { + local var=${1:?} text=${2:-} + text="${text#"${text%%[![:space:]]*}"}" # remove leading whitespace characters + text="${text%"${text##*[![:space:]]}"}" # remove trailing whitespace characters + printf -v "$var" '%s' "$text" +} + + +# Trims whitespace and removes any leading or trailing semicolons from $2 and +# writes the resulting string to the variable name passed as $1. Used for +# manipulating substrings in PROMPT_COMMAND +__bp_sanitize_string() { + local var=${1:?} text=${2:-} sanitized + __bp_trim_whitespace sanitized "$text" + sanitized=${sanitized%;} + sanitized=${sanitized#;} + __bp_trim_whitespace sanitized "$sanitized" + printf -v "$var" '%s' "$sanitized" +} + +# This function is installed as part of the PROMPT_COMMAND; +# It sets a variable to indicate that the prompt was just displayed, +# to allow the DEBUG trap to know that the next command is likely interactive. +__bp_interactive_mode() { + __bp_preexec_interactive_mode="on"; +} + + +# This function is installed as part of the PROMPT_COMMAND. +# It will invoke any functions defined in the precmd_functions array. +__bp_precmd_invoke_cmd() { + # Save the returned value from our last command, and from each process in + # its pipeline. Note: this MUST be the first thing done in this function. + # BP_PIPESTATUS may be unused, ignore + # shellcheck disable=SC2034 + + __bp_last_ret_value="$?" BP_PIPESTATUS=("${PIPESTATUS[@]}") + + # Don't invoke precmds if we are inside an execution of an "original + # prompt command" by another precmd execution loop. This avoids infinite + # recursion. + if (( __bp_inside_precmd > 0 )); then + return + fi + local __bp_inside_precmd=1 + + # Invoke every function defined in our function array. + local precmd_function + for precmd_function in "${precmd_functions[@]}"; do + + # Only execute this function if it actually exists. + # Test existence of functions with: declare -[Ff] + if type -t "$precmd_function" 1>/dev/null; then + __bp_set_ret_value "$__bp_last_ret_value" "$__bp_last_argument_prev_command" + # Quote our function invocation to prevent issues with IFS + "$precmd_function" + fi + done + + __bp_set_ret_value "$__bp_last_ret_value" +} + +# Sets a return value in $?. We may want to get access to the $? variable in our +# precmd functions. This is available for instance in zsh. We can simulate it in bash +# by setting the value here. +__bp_set_ret_value() { + return ${1:+"$1"} +} + +__bp_in_prompt_command() { + + local prompt_command_array IFS=$'\n;' + read -rd '' -a prompt_command_array <<< "${PROMPT_COMMAND[*]:-}" + + local trimmed_arg + __bp_trim_whitespace trimmed_arg "${1:-}" + + local command trimmed_command + for command in "${prompt_command_array[@]:-}"; do + __bp_trim_whitespace trimmed_command "$command" + if [[ "$trimmed_command" == "$trimmed_arg" ]]; then + return 0 + fi + done + + return 1 +} + +# This function is installed as the DEBUG trap. It is invoked before each +# interactive prompt display. Its purpose is to inspect the current +# environment to attempt to detect if the current command is being invoked +# interactively, and invoke 'preexec' if so. +__bp_preexec_invoke_exec() { + + # Save the contents of $_ so that it can be restored later on. + # https://stackoverflow.com/questions/40944532/bash-preserve-in-a-debug-trap#40944702 + __bp_last_argument_prev_command="${1:-}" + # Don't invoke preexecs if we are inside of another preexec. + if (( __bp_inside_preexec > 0 )); then + return + fi + local __bp_inside_preexec=1 + + # Checks if the file descriptor is not standard out (i.e. '1') + # __bp_delay_install checks if we're in test. Needed for bats to run. + # Prevents preexec from being invoked for functions in PS1 + if [[ ! -t 1 && -z "${__bp_delay_install:-}" ]]; then + return + fi + + if [[ -n "${COMP_POINT:-}" || -n "${READLINE_POINT:-}" ]]; then + # We're in the middle of a completer or a keybinding set up by "bind + # -x". This obviously can't be an interactively issued command. + return + fi + if [[ -z "${__bp_preexec_interactive_mode:-}" ]]; then + # We're doing something related to displaying the prompt. Let the + # prompt set the title instead of me. + return + else + # If we're in a subshell, then the prompt won't be re-displayed to put + # us back into interactive mode, so let's not set the variable back. + # In other words, if you have a subshell like + # (sleep 1; sleep 2) + # You want to see the 'sleep 2' as a set_command_title as well. + if [[ 0 -eq "${BASH_SUBSHELL:-}" ]]; then + __bp_preexec_interactive_mode="" + fi + fi + + if __bp_in_prompt_command "${BASH_COMMAND:-}"; then + # If we're executing something inside our prompt_command then we don't + # want to call preexec. Bash prior to 3.1 can't detect this at all :/ + __bp_preexec_interactive_mode="" + return + fi + + local this_command + this_command=$( + export LC_ALL=C + HISTTIMEFORMAT='' builtin history 1 | sed '1 s/^ *[0-9][0-9]*[* ] //' + ) + + # Sanity check to make sure we have something to invoke our function with. + if [[ -z "$this_command" ]]; then + return + fi + + # Invoke every function defined in our function array. + local preexec_function + local preexec_function_ret_value + local preexec_ret_value=0 + for preexec_function in "${preexec_functions[@]:-}"; do + + # Only execute each function if it actually exists. + # Test existence of function with: declare -[fF] + if type -t "$preexec_function" 1>/dev/null; then + __bp_set_ret_value "${__bp_last_ret_value:-}" + # Quote our function invocation to prevent issues with IFS + "$preexec_function" "$this_command" + preexec_function_ret_value="$?" + if [[ "$preexec_function_ret_value" != 0 ]]; then + preexec_ret_value="$preexec_function_ret_value" + fi + fi + done + + # Restore the last argument of the last executed command, and set the return + # value of the DEBUG trap to be the return code of the last preexec function + # to return an error. + # If `extdebug` is enabled a non-zero return value from any preexec function + # will cause the user's command not to execute. + # Run `shopt -s extdebug` to enable + __bp_set_ret_value "$preexec_ret_value" "$__bp_last_argument_prev_command" +} + +__bp_install() { + # Exit if we already have this installed. + if [[ "${PROMPT_COMMAND[*]:-}" == *"__bp_precmd_invoke_cmd"* ]]; then + return 1; + fi + + trap '__bp_preexec_invoke_exec "$_"' DEBUG + + # Preserve any prior DEBUG trap as a preexec function + local prior_trap + # we can't easily do this with variable expansion. Leaving as sed command. + # shellcheck disable=SC2001 + prior_trap=$(sed "s/[^']*'\(.*\)'[^']*/\1/" <<<"${__bp_trap_string:-}") + unset __bp_trap_string + if [[ -n "$prior_trap" ]]; then + eval '__bp_original_debug_trap() { + '"$prior_trap"' + }' + preexec_functions+=(__bp_original_debug_trap) + fi + + # Adjust our HISTCONTROL Variable if needed. + # + # GHOSTTY: Don't modify HISTCONTROL. This hack is only needed to improve the + # accuracy of the command argument passed to the preexec functions, and we + # don't use that argument in our bash shell integration script (and nor does + # the __bp_original_debug_trap function above, which is the only other active + # preexec function). + #__bp_adjust_histcontrol + + # Issue #25. Setting debug trap for subshells causes sessions to exit for + # backgrounded subshell commands (e.g. (pwd)& ). Believe this is a bug in Bash. + # + # Disabling this by default. It can be enabled by setting this variable. + if [[ -n "${__bp_enable_subshells:-}" ]]; then + + # Set so debug trap will work be invoked in subshells. + set -o functrace > /dev/null 2>&1 + shopt -s extdebug > /dev/null 2>&1 + fi; + + local existing_prompt_command + # Remove setting our trap install string and sanitize the existing prompt command string + existing_prompt_command="${PROMPT_COMMAND:-}" + # Edge case of appending to PROMPT_COMMAND + existing_prompt_command="${existing_prompt_command//$__bp_install_string/:}" # no-op + existing_prompt_command="${existing_prompt_command//$'\n':$'\n'/$'\n'}" # remove known-token only + existing_prompt_command="${existing_prompt_command//$'\n':;/$'\n'}" # remove known-token only + __bp_sanitize_string existing_prompt_command "$existing_prompt_command" + if [[ "${existing_prompt_command:-:}" == ":" ]]; then + existing_prompt_command= + fi + + # Install our hooks in PROMPT_COMMAND to allow our trap to know when we've + # actually entered something. + PROMPT_COMMAND='__bp_precmd_invoke_cmd' + PROMPT_COMMAND+=${existing_prompt_command:+$'\n'$existing_prompt_command} + if (( BASH_VERSINFO[0] > 5 || (BASH_VERSINFO[0] == 5 && BASH_VERSINFO[1] >= 1) )); then + PROMPT_COMMAND+=('__bp_interactive_mode') + else + # shellcheck disable=SC2179 # PROMPT_COMMAND is not an array in bash <= 5.0 + PROMPT_COMMAND+=$'\n__bp_interactive_mode' + fi + + # Add two functions to our arrays for convenience + # of definition. + precmd_functions+=(precmd) + preexec_functions+=(preexec) + + # Invoke our two functions manually that were added to $PROMPT_COMMAND + __bp_precmd_invoke_cmd + __bp_interactive_mode +} + +# Sets an installation string as part of our PROMPT_COMMAND to install +# after our session has started. This allows bash-preexec to be included +# at any point in our bash profile. +__bp_install_after_session_init() { + # bash-preexec needs to modify these variables in order to work correctly + # if it can't, just stop the installation + __bp_require_not_readonly PROMPT_COMMAND HISTCONTROL HISTTIMEFORMAT || return + + local sanitized_prompt_command + __bp_sanitize_string sanitized_prompt_command "${PROMPT_COMMAND:-}" + if [[ -n "$sanitized_prompt_command" ]]; then + # shellcheck disable=SC2178 # PROMPT_COMMAND is not an array in bash <= 5.0 + PROMPT_COMMAND=${sanitized_prompt_command}$'\n' + fi; + # shellcheck disable=SC2179 # PROMPT_COMMAND is not an array in bash <= 5.0 + PROMPT_COMMAND+=${__bp_install_string} +} + +# Run our install so long as we're not delaying it. +if [[ -z "${__bp_delay_install:-}" ]]; then + __bp_install_after_session_init +fi; diff --git a/bin/share/ghostty/shell-integration/bash/ghostty.bash b/bin/share/ghostty/shell-integration/bash/ghostty.bash new file mode 100644 index 0000000..48b03fe --- /dev/null +++ b/bin/share/ghostty/shell-integration/bash/ghostty.bash @@ -0,0 +1,176 @@ +# This is originally based on the recommended bash integration from +# the semantic prompts proposal as well as some logic from Kitty's +# bash integration. +# +# I'm not a bash expert so this probably has some major issues but for +# my simple bash usage this is working. If a bash expert wants to +# improve this please do! + +# We need to be in interactive mode and we need to have the Ghostty +# resources dir set which also tells us we're running in Ghostty. +if [[ "$-" != *i* ]] ; then builtin return; fi +if [ -z "$GHOSTTY_RESOURCES_DIR" ]; then builtin return; fi + +# When automatic shell integration is active, we need to manually +# load the normal bash startup files based on the injected state. +if [ -n "$GHOSTTY_BASH_INJECT" ]; then + builtin declare ghostty_bash_inject="$GHOSTTY_BASH_INJECT" + builtin unset GHOSTTY_BASH_INJECT ENV + + # At this point, we're in POSIX mode and rely on the injected + # flags to guide is through the rest of the startup sequence. + + # POSIX mode was requested by the user so there's nothing + # more to do that optionally source their original $ENV. + # No other startup files are read, per the standard. + if [[ "$ghostty_bash_inject" == *"--posix"* ]]; then + if [ -n "$GHOSTTY_BASH_ENV" ]; then + builtin source "$GHOSTTY_BASH_ENV" + builtin export ENV="$GHOSTTY_BASH_ENV" + fi + else + # Restore bash's default 'posix' behavior. Also reset 'inherit_errexit', + # which doesn't happen as part of the 'posix' reset. + builtin set +o posix + builtin shopt -u inherit_errexit 2>/dev/null + + # Unexport HISTFILE if it was set by the shell integration code. + if [[ -n "$GHOSTTY_BASH_UNEXPORT_HISTFILE" ]]; then + builtin export -n HISTFILE + builtin unset GHOSTTY_BASH_UNEXPORT_HISTFILE + fi + + # Manually source the startup files, respecting the injected flags like + # --norc and --noprofile that we parsed with the shell integration code. + # + # See also: run_startup_files() in shell.c in the Bash source code + if builtin shopt -q login_shell; then + if [[ $ghostty_bash_inject != *"--noprofile"* ]]; then + [ -r /etc/profile ] && builtin source "/etc/profile" + for rcfile in "$HOME/.bash_profile" "$HOME/.bash_login" "$HOME/.profile"; do + [ -r "$rcfile" ] && { builtin source "$rcfile"; break; } + done + fi + else + if [[ $ghostty_bash_inject != *"--norc"* ]]; then + # The location of the system bashrc is determined at bash build + # time via -DSYS_BASHRC and can therefore vary across distros: + # Arch, Debian, Ubuntu use /etc/bash.bashrc + # Fedora uses /etc/bashrc sourced from ~/.bashrc instead of SYS_BASHRC + # Void Linux uses /etc/bash/bashrc + # Nixos uses /etc/bashrc + for rcfile in /etc/bash.bashrc /etc/bash/bashrc /etc/bashrc; do + [ -r "$rcfile" ] && { builtin source "$rcfile"; break; } + done + if [[ -z "$GHOSTTY_BASH_RCFILE" ]]; then GHOSTTY_BASH_RCFILE="$HOME/.bashrc"; fi + [ -r "$GHOSTTY_BASH_RCFILE" ] && builtin source "$GHOSTTY_BASH_RCFILE" + fi + fi + fi + + builtin unset GHOSTTY_BASH_ENV GHOSTTY_BASH_RCFILE + builtin unset ghostty_bash_inject rcfile +fi + +# Import bash-preexec, safe to do multiple times +builtin source "$GHOSTTY_RESOURCES_DIR/shell-integration/bash/bash-preexec.sh" + +# This is set to 1 when we're executing a command so that we don't +# send prompt marks multiple times. +_ghostty_executing="" +_ghostty_last_reported_cwd="" + +function __ghostty_get_current_command() { + builtin local last_cmd + # shellcheck disable=SC1007 + last_cmd=$(HISTTIMEFORMAT= builtin history 1) + last_cmd="${last_cmd#*[[:digit:]]*[[:space:]]}" # remove leading history number + last_cmd="${last_cmd#"${last_cmd%%[![:space:]]*}"}" # remove remaining leading whitespace + builtin printf "\e]2;%s\a" "${last_cmd//[[:cntrl:]]}" # remove any control characters +} + +function __ghostty_precmd() { + local ret="$?" + if test "$_ghostty_executing" != "0"; then + _GHOSTTY_SAVE_PS0="$PS0" + _GHOSTTY_SAVE_PS1="$PS1" + _GHOSTTY_SAVE_PS2="$PS2" + + # Marks + PS1=$PS1'\[\e]133;B\a\]' + PS2=$PS2'\[\e]133;B\a\]' + + # bash doesn't redraw the leading lines in a multiline prompt so + # mark the last line as a secondary prompt (k=s) to prevent the + # preceding lines from being erased by ghostty after a resize. + if [[ "${PS1}" == *"\n"* || "${PS1}" == *$'\n'* ]]; then + PS1=$PS1'\[\e]133;A;k=s\a\]' + fi + + # Cursor + if test "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" != "1"; then + PS1=$PS1'\[\e[5 q\]' + PS0=$PS0'\[\e[0 q\]' + fi + + # Sudo + if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_SUDO" != "1" ]] && [[ -n "$TERMINFO" ]]; then + # Wrap `sudo` command to ensure Ghostty terminfo is preserved + # shellcheck disable=SC2317 + sudo() { + builtin local sudo_has_sudoedit_flags="no" + for arg in "$@"; do + # Check if argument is '-e' or '--edit' (sudoedit flags) + if [[ "$arg" == "-e" || $arg == "--edit" ]]; then + sudo_has_sudoedit_flags="yes" + builtin break + fi + # Check if argument is neither an option nor a key-value pair + if [[ "$arg" != -* && "$arg" != *=* ]]; then + builtin break + fi + done + if [[ "$sudo_has_sudoedit_flags" == "yes" ]]; then + builtin command sudo "$@"; + else + builtin command sudo TERMINFO="$TERMINFO" "$@"; + fi + } + fi + + if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_TITLE" != 1 ]]; then + # Command and working directory + # shellcheck disable=SC2016 + PS0=$PS0'$(__ghostty_get_current_command)' + PS1=$PS1'\[\e]2;$PWD\a\]' + fi + fi + + if test "$_ghostty_executing" != ""; then + # End of current command. Report its status. + builtin printf "\e]133;D;%s;aid=%s\a" "$ret" "$BASHPID" + fi + + # unfortunately bash provides no hooks to detect cwd changes + # in particular this means cwd reporting will not happen for a + # command like cd /test && cat. PS0 is evaluated before cd is run. + if [[ "$_ghostty_last_reported_cwd" != "$PWD" ]]; then + _ghostty_last_reported_cwd="$PWD" + builtin printf "\e]7;kitty-shell-cwd://%s%s\a" "$HOSTNAME" "$PWD" + fi + + # Fresh line and start of prompt. + builtin printf "\e]133;A;aid=%s\a" "$BASHPID" + _ghostty_executing=0 +} + +function __ghostty_preexec() { + PS0="$_GHOSTTY_SAVE_PS0" + PS1="$_GHOSTTY_SAVE_PS1" + PS2="$_GHOSTTY_SAVE_PS2" + builtin printf "\e]133;C;\a" + _ghostty_executing=1 +} + +preexec_functions+=(__ghostty_preexec) +precmd_functions+=(__ghostty_precmd) diff --git a/bin/share/ghostty/shell-integration/elvish/lib/ghostty-integration.elv b/bin/share/ghostty/shell-integration/elvish/lib/ghostty-integration.elv new file mode 100644 index 0000000..3d2f4a6 --- /dev/null +++ b/bin/share/ghostty/shell-integration/elvish/lib/ghostty-integration.elv @@ -0,0 +1,123 @@ +{ + fn restore-xdg-dirs { + use str + var integration-dir = $E:GHOSTTY_SHELL_INTEGRATION_XDG_DIR + var xdg-dirs = [(str:split ':' $E:XDG_DATA_DIRS)] + var len = (count $xdg-dirs) + + var index = $nil + range $len | each {|dir-index| + if (eq $xdg-dirs[$dir-index] $integration-dir) { + set index = $dir-index + break + } + } + if (eq $nil $index) { return } # will appear as an error + + if (== 0 $index) { + set xdg-dirs = $xdg-dirs[1..] + } elif (== (- $len 1) $index) { + set xdg-dirs = $xdg-dirs[0..(- $len 1)] + } else { + # no builtin function for this : ) + set xdg-dirs = [ (take $index $xdg-dirs) (drop (+ 1 $index) $xdg-dirs) ] + } + + if (== 0 (count $xdg-dirs)) { + unset-env XDG_DATA_DIRS + } else { + set-env XDG_DATA_DIRS (str:join ':' $xdg-dirs) + } + unset-env GHOSTTY_SHELL_INTEGRATION_XDG_DIR + } + if (and (has-env GHOSTTY_SHELL_INTEGRATION_XDG_DIR) (has-env XDG_DATA_DIRS)) { + restore-xdg-dirs + } +} + +{ + # helper used by `mark-*` functions + fn set-prompt-state {|new| set-env __ghostty_prompt_state $new } + + fn mark-prompt-start { + if (not-eq prompt-start (constantly $E:__ghostty_prompt_state)) { + printf "\e]133;D\a" + } + set-prompt-state 'prompt-start' + printf "\e]133;A\a" + } + + fn mark-output-start {|_| + set-prompt-state 'pre-exec' + printf "\e]133;C\a" + } + + fn mark-output-end {|cmd-info| + set-prompt-state 'post-exec' + + var exit-status = 0 + + # in case of error: retrieve exit status, + # unless does not exist (= builtin function failure), then default to 1 + if (not-eq $nil $cmd-info[error]) { + set exit-status = 1 + + if (has-key $cmd-info[error] reason) { + if (has-key $cmd-info[error][reason] exit-status) { + set exit-status = $cmd-info[error][reason][exit-status] + } + } + } + + printf "\e]133;D;"$exit-status"\a" + } + + fn report-pwd { + printf "\e]7;file://%s%s\a" (hostname) (pwd) + } + + fn sudo-with-terminfo {|@args| + var sudoedit = $false + for arg $args { + use str + if (str:has-prefix $arg -) { + if (has-value [e -edit] $arg[1..]) { + set sudoedit = $true + break + } + continue + } + + if (not (has-value $arg =)) { break } + } + + if (not $sudoedit) { set args = [ TERMINFO=$E:TERMINFO $@args ] } + command sudo $@args + } + + defer { + mark-prompt-start + report-pwd + } + + set edit:before-readline = (conj $edit:before-readline $mark-prompt-start~) + set edit:after-readline = (conj $edit:after-readline $mark-output-start~) + set edit:after-command = (conj $edit:after-command $mark-output-end~) + + var no-title = (eq 1 $E:GHOSTTY_SHELL_INTEGRATION_NO_TITLE) + var no-cursor = (eq 1 $E:GHOSTTY_SHELL_INTEGRATION_NO_CURSOR) + var no-sudo = (eq 1 $E:GHOSTTY_SHELL_INTEGRATION_NO_SUDO) + + if (not $no-title) { + set after-chdir = (conj $after-chdir {|_| report-pwd }) + } + if (not $no-cursor) { + fn beam { printf "\e[5 q" } + fn block { printf "\e[0 q" } + set edit:before-readline = (conj $edit:before-readline $beam~) + set edit:after-readline = (conj $edit:after-readline {|_| block }) + } + if (and (not $no-sudo) (not-eq "" $E:TERMINFO) (eq file (type -t sudo))) { + edit:add-var sudo~ $sudo-with-terminfo~ + } +} diff --git a/bin/share/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish b/bin/share/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish new file mode 100644 index 0000000..420a495 --- /dev/null +++ b/bin/share/ghostty/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish @@ -0,0 +1,135 @@ +# This shell script aims to be written in a way where it can't really fail +# or all failure scenarios are handled, so that we never leave the shell in +# a weird state. If you find a way to break this, please report a bug! + +function ghostty_restore_xdg_data_dir -d "restore the original XDG_DATA_DIR value" + # If we don't have our own data dir then we don't need to do anything. + if not set -q GHOSTTY_SHELL_INTEGRATION_XDG_DIR + return + end + + # If the data dir isn't set at all then we don't need to do anything. + if not set -q XDG_DATA_DIRS + return + end + + # We need to do this so that XDG_DATA_DIRS turns into an array. + set --function --path xdg_data_dirs "$XDG_DATA_DIRS" + + # If our data dir is in the list then remove it. + if set --function index (contains --index "$GHOSTTY_SHELL_INTEGRATION_XDG_DIR" $xdg_data_dirs) + set --erase --function xdg_data_dirs[$index] + end + + # Re-export our data dir + if set -q xdg_data_dirs[1] + set --global --export --unpath XDG_DATA_DIRS "$xdg_data_dirs" + else + set --erase --global XDG_DATA_DIRS + end + + set --erase GHOSTTY_SHELL_INTEGRATION_XDG_DIR +end + +function ghostty_exit -d "exit the shell integration setup" + functions -e ghostty_restore_xdg_data_dir + functions -e ghostty_exit + exit 0 +end + +# We always try to restore the XDG data dir +ghostty_restore_xdg_data_dir + +# If we aren't interactive or we've already run, don't run. +status --is-interactive || ghostty_exit + +# We do the full setup on the first prompt render. We do this so that other +# shell integrations that setup the prompt and modify things are able to run +# first. We want to run _last_. +function __ghostty_setup --on-event fish_prompt -d "Setup ghostty integration" + functions -e __ghostty_setup + + # Check if we are setting cursors + set --local no_cursor "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" + + if test -z $no_cursor + # Change the cursor to a beam on prompt. + function __ghostty_set_cursor_beam --on-event fish_prompt -d "Set cursor shape" + echo -en "\e[5 q" + end + function __ghostty_reset_cursor --on-event fish_preexec -d "Reset cursor shape" + echo -en "\e[0 q" + end + end + + # Check if we are setting sudo + set --local no_sudo "$GHOSTTY_SHELL_INTEGRATION_NO_SUDO" + + # When using sudo shell integration feature, ensure $TERMINFO is set + # and `sudo` is not already a function or alias + if test -z $no_sudo + and test -n "$TERMINFO"; and test "file" = (type -t sudo 2> /dev/null; or echo "x") + # Wrap `sudo` command to ensure Ghostty terminfo is preserved + function sudo -d "Wrap sudo to preserve terminfo" + set --local sudo_has_sudoedit_flags "no" + for arg in $argv + # Check if argument is '-e' or '--edit' (sudoedit flags) + if string match -q -- "-e" "$arg"; or string match -q -- "--edit" "$arg" + set --local sudo_has_sudoedit_flags "yes" + break + end + # Check if argument is neither an option nor a key-value pair + if not string match -r -q -- "^-" "$arg"; and not string match -r -q -- "=" "$arg" + break + end + end + if test "$sudo_has_sudoedit_flags" = "yes" + command sudo $argv + else + command sudo TERMINFO="$TERMINFO" $argv + end + end + end + + # Setup prompt marking + function __ghostty_mark_prompt_start --on-event fish_prompt --on-event fish_cancel --on-event fish_posterror + # If we never got the output end event, then we need to send it now. + if test "$__ghostty_prompt_state" != prompt-start + echo -en "\e]133;D\a" + end + + set --global __ghostty_prompt_state prompt-start + echo -en "\e]133;A\a" + end + + function __ghostty_mark_output_start --on-event fish_preexec + set --global __ghostty_prompt_state pre-exec + echo -en "\e]133;C\a" + end + + function __ghostty_mark_output_end --on-event fish_postexec + set --global __ghostty_prompt_state post-exec + echo -en "\e]133;D;$status\a" + end + + # Report pwd. This is actually built-in to fish but only for terminals + # that match an allowlist and that isn't us. + function __update_cwd_osc --on-variable PWD -d 'Notify capable terminals when $PWD changes' + if status --is-command-substitution || set -q INSIDE_EMACS + return + end + printf \e\]7\;file://%s%s\a $hostname (string escape --style=url $PWD) + end + + # Enable fish to handle reflow because Ghostty clears the prompt on resize. + set --global fish_handle_reflow 1 + + # Initial calls for first prompt + if test -z $no_cursor + __ghostty_set_cursor_beam + end + __ghostty_mark_prompt_start + __update_cwd_osc +end + +ghostty_exit diff --git a/bin/share/ghostty/shell-integration/zsh/.zshenv b/bin/share/ghostty/shell-integration/zsh/.zshenv new file mode 100644 index 0000000..7fbfad6 --- /dev/null +++ b/bin/share/ghostty/shell-integration/zsh/.zshenv @@ -0,0 +1,60 @@ +# Based on (started as) a copy of Kitty's zsh integration. Kitty is +# distributed under GPLv3, so this file is also distributed under GPLv3. +# The license header is reproduced below: +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# This file can get sourced with aliases enabled. To avoid alias expansion +# we quote everything that can be quoted. Some aliases will still break us +# though. + +# Restore the original ZDOTDIR value. +if [[ -n "${GHOSTTY_ZSH_ZDOTDIR+X}" ]]; then + 'builtin' 'export' ZDOTDIR="$GHOSTTY_ZSH_ZDOTDIR" + 'builtin' 'unset' 'GHOSTTY_ZSH_ZDOTDIR' +else + 'builtin' 'unset' 'ZDOTDIR' +fi + +# Use try-always to have the right error code. +{ + # Zsh treats empty $ZDOTDIR as if it was "/". We do the same. + # + # Source the user's zshenv before sourcing ghostty.zsh because the former + # might set fpath and other things without which ghostty.zsh won't work. + # + # Use typeset in case we are in a function with warn_create_global in + # effect. Unlikely but better safe than sorry. + 'builtin' 'typeset' _ghostty_file=${ZDOTDIR-~}"/.zshenv" + # Zsh ignores unreadable rc files. We do the same. + # Zsh ignores rc files that are directories, and so does source. + [[ ! -r "$_ghostty_file" ]] || 'builtin' 'source' '--' "$_ghostty_file" +} always { + if [[ -o 'interactive' ]]; then + 'builtin' 'autoload' '--' 'is-at-least' + 'is-at-least' "5.1" || { + builtin echo "ZSH ${ZSH_VERSION} is too old for ghostty shell integration" > /dev/stderr + return + } + # ${(%):-%x} is the path to the current file. + # On top of it we add :A:h to get the directory. + 'builtin' 'typeset' _ghostty_file="${${(%):-%x}:A:h}"/ghostty-integration + if [[ -r "$_ghostty_file" ]]; then + 'builtin' 'autoload' '-Uz' '--' "$_ghostty_file" + "${_ghostty_file:t}" + 'builtin' 'unfunction' '--' "${_ghostty_file:t}" + fi + fi + 'builtin' 'unset' '_ghostty_file' +} diff --git a/bin/share/ghostty/shell-integration/zsh/ghostty-integration b/bin/share/ghostty/shell-integration/zsh/ghostty-integration new file mode 100644 index 0000000..fb54cba --- /dev/null +++ b/bin/share/ghostty/shell-integration/zsh/ghostty-integration @@ -0,0 +1,316 @@ +# Based on (started as) a copy of Kitty's zsh integration. Kitty is +# distributed under GPLv3, so this file is also distributed under GPLv3. +# The license header is reproduced below: +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# +# Enables integration between zsh and ghostty. +# +# This is an autoloadable function. It's invoked automatically in shells +# directly spawned by Ghostty but not in any other shells. For example, running +# `exec zsh`, `sudo -E zsh`, `tmux`, or plain `zsh` will create a shell where +# ghostty-integration won't automatically run. Zsh users who want integration with +# Ghostty in all shells should add the following lines to their .zshrc: +# +# if [[ -n $GHOSTTY_RESOURCES_DIR ]]; then +# "$GHOSTTY_RESOURCES_DIR"/shell-integration/zsh/ghostty-integration +# fi +# +# Implementation note: We can assume that alias expansion is disabled in this +# file, so no need to quote defensively. We still have to defensively prefix all +# builtins with `builtin` to avoid accidentally invoking user-defined functions. +# We avoid `function` reserved word as an additional defensive measure. + +# Note that updating options with `builtin emulate -L zsh` affects the global options +# if it's called outside of a function. So nearly all code has to be in functions. +_entrypoint() { + builtin emulate -L zsh -o no_warn_create_global -o no_aliases + + [[ -o interactive ]] || builtin return 0 # non-interactive shell + (( ! $+_ghostty_state )) || builtin return 0 # already initialized + + # 0: no OSC 133 [AC] marks have been written yet. + # 1: the last written OSC 133 C has not been closed with D yet. + # 2: none of the above. + builtin typeset -gi _ghostty_state + + # Attempt to create a writable file descriptor to the TTY so that we can print + # to the TTY later even when STDOUT is redirected. This code is fairly subtle. + # + # - It's tempting to do `[[ -t 1 ]] && exec {_ghostty_state}>&1` but we cannot do this + # because it'll create a file descriptor >= 10 without O_CLOEXEC. This file + # descriptor will leak to child processes. + # - If we do `exec {3}>&1`, the file descriptor won't leak to the child processes + # but it'll still leak if the current process is replaced with another. In + # addition, it'll break user code that relies on fd 3 being available. + # - Zsh doesn't expose dup3, which would have allowed us to copy STDOUT with + # O_CLOEXEC. The only way to create a file descriptor with O_CLOEXEC is via + # sysopen. + # - `zmodload zsh/system` and `sysopen -o cloexec -wu _ghostty_fd -- /dev/tty` can + # fail with an error message to STDERR (the latter can happen even if /dev/tty + # is writable), hence the redirection of STDERR. We do it for the whole block + # for performance reasons (redirections are slow). + # - We must open the file descriptor right here rather than in _ghostty_deferred_init + # because there are broken zsh plugins out there that run `exec {fd}< <(cmd)` + # and then close the file descriptor more than once while suppressing errors. + # This could end up closing our file descriptor if we opened it in + # _ghostty_deferred_init. + typeset -gi _ghostty_fd + { + builtin zmodload zsh/system && (( $+builtins[sysopen] )) && { + { [[ -w $TTY ]] && builtin sysopen -o cloexec -wu _ghostty_fd -- $TTY } || + { [[ -w /dev/tty ]] && builtin sysopen -o cloexec -wu _ghostty_fd -- /dev/tty } + } + } 2>/dev/null || (( _ghostty_fd = 1 )) + + # Defer initialization so that other zsh init files can be configure + # the integration. + builtin typeset -ag precmd_functions + precmd_functions+=(_ghostty_deferred_init) +} + +_ghostty_deferred_init() { + builtin emulate -L zsh -o no_warn_create_global -o no_aliases + + # The directory where ghostty-integration is located: /../shell-integration/zsh. + builtin local self_dir="${functions_source[_ghostty_deferred_init]:A:h}" + + # Enable semantic markup with OSC 133. + _ghostty_precmd() { + builtin local -i cmd_status=$? + builtin emulate -L zsh -o no_warn_create_global -o no_aliases + + # Don't write OSC 133 D when our precmd handler is invoked from zle. + # Some plugins do that to update prompt on cd. + if ! builtin zle; then + # This code works incorrectly in the presence of a precmd or chpwd + # hook that prints. For example, sindresorhus/pure prints an empty + # line on precmd and marlonrichert/zsh-snap prints $PWD on chpwd. + # We'll end up writing our OSC 133 D mark too late. + # + # Another failure mode is when the output of a command doesn't end + # with LF and prompst_sp is set (it is by default). In this case + # we'll incorrectly state that '%' from prompt_sp is a part of the + # command's output. + if (( _ghostty_state == 1 )); then + # The last written OSC 133 C has not been closed with D yet. + # Close it and supply status. + builtin print -nu $_ghostty_fd '\e]133;D;'$cmd_status'\a' + (( _ghostty_state = 2 )) + elif (( _ghostty_state == 2 )); then + # There might be an unclosed OSC 133 C. Close that. + builtin print -nu $_ghostty_fd '\e]133;D\a' + fi + fi + + builtin local mark1=$'%{\e]133;A\a%}' + if [[ -o prompt_percent ]]; then + builtin typeset -g precmd_functions + if [[ ${precmd_functions[-1]} == _ghostty_precmd ]]; then + # This is the best case for us: we can add our marks to PS1 and + # PS2. This way our marks will be printed whenever zsh + # redisplays prompt: on reset-prompt, on SIGWINCH, and on + # SIGCHLD if notify is set. Themes that update prompt + # asynchronously from a `zle -F` handler might still remove our + # marks. Oh well. + builtin local mark2=$'%{\e]133;A;k=s\a%}' + # Add marks conditionally to avoid a situation where we have + # several marks in place. These conditions can have false + # positives and false negatives though. + # + # - False positive (with prompt_percent): PS1="%(?.$mark1.)" + # - False negative (with prompt_subst): PS1='$mark1' + [[ $PS1 == *$mark1* ]] || PS1=${mark1}${PS1} + # PS2 mark is needed when clearing the prompt on resize + [[ $PS2 == *$mark2* ]] || PS2=${mark2}${PS2} + (( _ghostty_state = 2 )) + else + # If our precmd hook is not the last, we cannot rely on prompt + # changes to stick, so we don't even try. At least we can move + # our hook to the end to have better luck next time. If there is + # another piece of code that wants to take this privileged + # position, this won't work well. We'll break them as much as + # they are breaking us. + precmd_functions=(${precmd_functions:#_ghostty_precmd} _ghostty_precmd) + # Plugins that invoke precmd hooks from zle do that before zle + # is trashed. This means that the cursor is in the middle of + # BUFFER and we cannot print our mark there. Prompt might + # already have a mark, so the following reset-prompt will write + # it. If it doesn't, there is nothing we can do. + if ! builtin zle; then + builtin print -rnu $_ghostty_fd -- $mark1[3,-3] + (( _ghostty_state = 2 )) + fi + fi + elif ! builtin zle; then + # Without prompt_percent we cannot patch prompt. Just print the + # mark, except when we are invoked from zle. In the latter case we + # cannot do anything. + builtin print -rnu $_ghostty_fd -- $mark1[3,-3] + (( _ghostty_state = 2 )) + fi + } + + _ghostty_preexec() { + builtin emulate -L zsh -o no_warn_create_global -o no_aliases + + # This can potentially break user prompt. Oh well. The robustness of + # this code can be improved in the case prompt_subst is set because + # it'll allow us distinguish (not perfectly but close enough) between + # our own prompt, user prompt, and our own prompt with user additions on + # top. We cannot force prompt_subst on the user though, so we would + # still need this code for the no_prompt_subst case. + PS1=${PS1//$'%{\e]133;A\a%}'} + PS2=${PS2//$'%{\e]133;A;k=s\a%}'} + + # This will work incorrectly in the presence of a preexec hook that + # prints. For example, if MichaelAquilina/zsh-you-should-use installs + # its preexec hook before us, we'll incorrectly mark its output as + # belonging to the command (as if the user typed it into zle) rather + # than command output. + builtin print -nu $_ghostty_fd '\e]133;C\a' + (( _ghostty_state = 1 )) + } + + # Enable reporting current working dir to terminal. Ghostty supports + # the kitty-shell-cwd format. + _ghostty_report_pwd() { builtin print -nu $_ghostty_fd '\e]7;kitty-shell-cwd://'"$HOST""$PWD"'\a'; } + chpwd_functions=(${chpwd_functions[@]} "_ghostty_report_pwd") + # An executed program could change cwd and report the changed cwd, so also report cwd at each new prompt + # as in this case chpwd_functions is insufficient. chpwd_functions is still needed for things like: cd x && something + functions[_ghostty_precmd]+=" + _ghostty_report_pwd" + _ghostty_report_pwd + + if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_TITLE" != 1 ]]; then + # Enable terminal title changes. + functions[_ghostty_precmd]+=" + builtin print -rnu $_ghostty_fd \$'\\e]2;'\"\${(%):-%(4~|…/%3~|%~)}\"\$'\\a'" + functions[_ghostty_preexec]+=" + builtin print -rnu $_ghostty_fd \$'\\e]2;'\"\${(V)1}\"\$'\\a'" + fi + + if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" != 1 ]]; then + # Enable cursor shape changes depending on the current keymap. + # This implementation leaks blinking block cursor into external commands + # executed from zle. For example, users of fzf-based widgets may find + # themselves with a blinking block cursor within fzf. + _ghostty_zle_line_init _ghostty_zle_line_finish _ghostty_zle_keymap_select() { + case ${KEYMAP-} in + # Blinking block cursor. + vicmd|visual) builtin print -nu "$_ghostty_fd" '\e[1 q';; + # Blinking bar cursor. + *) builtin print -nu "$_ghostty_fd" '\e[5 q';; + esac + } + # Restore the blinking default shape before executing an external command + functions[_ghostty_preexec]+=" + builtin print -rnu $_ghostty_fd \$'\\e[0 q'" + fi + + # Sudo + if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_SUDO" != "1" ]] && [[ -n "$TERMINFO" ]]; then + # Wrap `sudo` command to ensure Ghostty terminfo is preserved + sudo() { + builtin local sudo_has_sudoedit_flags="no" + for arg in "$@"; do + # Check if argument is '-e' or '--edit' (sudoedit flags) + if [[ "$arg" == "-e" || $arg == "--edit" ]]; then + sudo_has_sudoedit_flags="yes" + builtin break + fi + # Check if argument is neither an option nor a key-value pair + if [[ "$arg" != -* && "$arg" != *=* ]]; then + builtin break + fi + done + if [[ "$sudo_has_sudoedit_flags" == "yes" ]]; then + builtin command sudo "$@"; + else + builtin command sudo TERMINFO="$TERMINFO" "$@"; + fi + } + fi + + # Some zsh users manually run `source ~/.zshrc` in order to apply rc file + # changes to the current shell. This is a terrible practice that breaks many + # things, including our shell integration. For example, Oh My Zsh and Prezto + # (both very popular among zsh users) will remove zle-line-init and + # zle-line-finish hooks if .zshrc is manually sourced. Prezto will also remove + # zle-keymap-select. + # + # Another common (and much more robust) way to apply rc file changes to the + # current shell is `exec zsh`. This will remove our integration from the shell + # unless it's explicitly invoked from .zshrc. This is not an issue with + # `exec zsh` but rather with our implementation of automatic shell integration. + + # In the ideal world we would use add-zle-hook-widget to hook zle-line-init + # and similar widget. This breaks user configs though, so we have do this + # horrible thing instead. + builtin local hook func widget orig_widget flag + for hook in line-init line-finish keymap-select; do + func=_ghostty_zle_${hook/-/_} + (( $+functions[$func] )) || builtin continue + widget=zle-$hook + if [[ $widgets[$widget] == user:azhw:* && + $+functions[add-zle-hook-widget] -eq 1 ]]; then + # If the widget is already hooked by add-zle-hook-widget at the top + # level, add our hook at the end. We MUST do it this way. We cannot + # just wrap the widget ourselves in this case because it would + # trigger bugs in add-zle-hook-widget. + add-zle-hook-widget $hook $func + else + if (( $+widgets[$widget] )); then + # There is a widget but it's not from add-zle-hook-widget. We + # can rename the original widget, install our own and invoke + # the original when we are called. + # + # Note: The leading dot is to work around bugs in + # zsh-syntax-highlighting. + orig_widget=._ghostty_orig_$widget + builtin zle -A $widget $orig_widget + if [[ $widgets[$widget] == user:* ]]; then + # No -w here to preserve $WIDGET within the original widget. + flag= + else + flag=w + fi + functions[$func]+=" + builtin zle $orig_widget -N$flag -- \"\$@\"" + fi + builtin zle -N $widget $func + fi + done + + if (( $+functions[_ghostty_preexec] )); then + builtin typeset -ag preexec_functions + preexec_functions+=(_ghostty_preexec) + fi + + builtin typeset -ag precmd_functions + if (( $+functions[_ghostty_precmd] )); then + precmd_functions=(${precmd_functions:/_ghostty_deferred_init/_ghostty_precmd}) + _ghostty_precmd + else + precmd_functions=(${precmd_functions:#_ghostty_deferred_init}) + fi + + # Unfunction _ghostty_deferred_init to save memory. Don't unfunction + # ghostty-integration though because decent public functions aren't supposed to + # to unfunction themselves when invoked. Unfunctioning is done by calling code. + builtin unfunction _ghostty_deferred_init +} + +_entrypoint diff --git a/bin/share/ghostty/themes/3024 Day b/bin/share/ghostty/themes/3024 Day new file mode 100644 index 0000000..06d2118 --- /dev/null +++ b/bin/share/ghostty/themes/3024 Day @@ -0,0 +1,21 @@ +palette = 0=#090300 +palette = 1=#db2d20 +palette = 2=#01a252 +palette = 3=#fded02 +palette = 4=#01a0e4 +palette = 5=#a16a94 +palette = 6=#b5e4f4 +palette = 7=#a5a2a2 +palette = 8=#5c5855 +palette = 9=#e8bbd0 +palette = 10=#3a3432 +palette = 11=#4a4543 +palette = 12=#807d7c +palette = 13=#d6d5d4 +palette = 14=#cdab53 +palette = 15=#f7f7f7 +background = f7f7f7 +foreground = 4a4543 +cursor-color = 4a4543 +selection-background = a5a2a2 +selection-foreground = 4a4543 diff --git a/bin/share/ghostty/themes/3024 Night b/bin/share/ghostty/themes/3024 Night new file mode 100644 index 0000000..5284162 --- /dev/null +++ b/bin/share/ghostty/themes/3024 Night @@ -0,0 +1,21 @@ +palette = 0=#090300 +palette = 1=#db2d20 +palette = 2=#01a252 +palette = 3=#fded02 +palette = 4=#01a0e4 +palette = 5=#a16a94 +palette = 6=#b5e4f4 +palette = 7=#a5a2a2 +palette = 8=#5c5855 +palette = 9=#e8bbd0 +palette = 10=#3a3432 +palette = 11=#4a4543 +palette = 12=#807d7c +palette = 13=#d6d5d4 +palette = 14=#cdab53 +palette = 15=#f7f7f7 +background = 090300 +foreground = a5a2a2 +cursor-color = a5a2a2 +selection-background = 4a4543 +selection-foreground = a5a2a2 diff --git a/bin/share/ghostty/themes/Aardvark Blue b/bin/share/ghostty/themes/Aardvark Blue new file mode 100644 index 0000000..edc66a8 --- /dev/null +++ b/bin/share/ghostty/themes/Aardvark Blue @@ -0,0 +1,21 @@ +palette = 0=#191919 +palette = 1=#aa342e +palette = 2=#4b8c0f +palette = 3=#dbba00 +palette = 4=#1370d3 +palette = 5=#c43ac3 +palette = 6=#008eb0 +palette = 7=#bebebe +palette = 8=#454545 +palette = 9=#f05b50 +palette = 10=#95dc55 +palette = 11=#ffe763 +palette = 12=#60a4ec +palette = 13=#e26be2 +palette = 14=#60b6cb +palette = 15=#f7f7f7 +background = 102040 +foreground = dddddd +cursor-color = 007acc +selection-background = bfdbfe +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Abernathy b/bin/share/ghostty/themes/Abernathy new file mode 100644 index 0000000..a6a380c --- /dev/null +++ b/bin/share/ghostty/themes/Abernathy @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cd0000 +palette = 2=#00cd00 +palette = 3=#cdcd00 +palette = 4=#1093f5 +palette = 5=#cd00cd +palette = 6=#00cdcd +palette = 7=#faebd7 +palette = 8=#404040 +palette = 9=#ff0000 +palette = 10=#00ff00 +palette = 11=#ffff00 +palette = 12=#11b5f6 +palette = 13=#ff00ff +palette = 14=#00ffff +palette = 15=#ffffff +background = 111416 +foreground = eeeeec +cursor-color = bbbbbb +selection-background = eeeeec +selection-foreground = 333333 diff --git a/bin/share/ghostty/themes/Adventure b/bin/share/ghostty/themes/Adventure new file mode 100644 index 0000000..5c73b5e --- /dev/null +++ b/bin/share/ghostty/themes/Adventure @@ -0,0 +1,21 @@ +palette = 0=#040404 +palette = 1=#d84a33 +palette = 2=#5da602 +palette = 3=#eebb6e +palette = 4=#417ab3 +palette = 5=#e5c499 +palette = 6=#bdcfe5 +palette = 7=#dbded8 +palette = 8=#685656 +palette = 9=#d76b42 +palette = 10=#99b52c +palette = 11=#ffb670 +palette = 12=#97d7ef +palette = 13=#aa7900 +palette = 14=#bdcfe5 +palette = 15=#e4d5c7 +background = 040404 +foreground = feffff +cursor-color = feffff +selection-background = 606060 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/AdventureTime b/bin/share/ghostty/themes/AdventureTime new file mode 100644 index 0000000..0383845 --- /dev/null +++ b/bin/share/ghostty/themes/AdventureTime @@ -0,0 +1,21 @@ +palette = 0=#050404 +palette = 1=#bd0013 +palette = 2=#4ab118 +palette = 3=#e7741e +palette = 4=#0f4ac6 +palette = 5=#665993 +palette = 6=#70a598 +palette = 7=#f8dcc0 +palette = 8=#4e7cbf +palette = 9=#fc5f5a +palette = 10=#9eff6e +palette = 11=#efc11a +palette = 12=#1997c6 +palette = 13=#9b5953 +palette = 14=#c8faf4 +palette = 15=#f6f5fb +background = 1f1d45 +foreground = f8dcc0 +cursor-color = efbf38 +selection-background = 706b4e +selection-foreground = f3d9c4 diff --git a/bin/share/ghostty/themes/Afterglow b/bin/share/ghostty/themes/Afterglow new file mode 100644 index 0000000..9e3bacb --- /dev/null +++ b/bin/share/ghostty/themes/Afterglow @@ -0,0 +1,21 @@ +palette = 0=#151515 +palette = 1=#ac4142 +palette = 2=#7e8e50 +palette = 3=#e5b567 +palette = 4=#6c99bb +palette = 5=#9f4e85 +palette = 6=#7dd6cf +palette = 7=#d0d0d0 +palette = 8=#505050 +palette = 9=#ac4142 +palette = 10=#7e8e50 +palette = 11=#e5b567 +palette = 12=#6c99bb +palette = 13=#9f4e85 +palette = 14=#7dd6cf +palette = 15=#f5f5f5 +background = 212121 +foreground = d0d0d0 +cursor-color = d0d0d0 +selection-background = 303030 +selection-foreground = d0d0d0 diff --git a/bin/share/ghostty/themes/Alabaster b/bin/share/ghostty/themes/Alabaster new file mode 100644 index 0000000..669116b --- /dev/null +++ b/bin/share/ghostty/themes/Alabaster @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#aa3731 +palette = 2=#448c27 +palette = 3=#cb9000 +palette = 4=#325cc0 +palette = 5=#7a3e9d +palette = 6=#0083b2 +palette = 7=#f7f7f7 +palette = 8=#777777 +palette = 9=#f05050 +palette = 10=#60cb00 +palette = 11=#ffbc5d +palette = 12=#007acc +palette = 13=#e64ce6 +palette = 14=#00aacb +palette = 15=#f7f7f7 +background = f7f7f7 +foreground = 000000 +cursor-color = 007acc +selection-background = bfdbfe +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/AlienBlood b/bin/share/ghostty/themes/AlienBlood new file mode 100644 index 0000000..03fbf1c --- /dev/null +++ b/bin/share/ghostty/themes/AlienBlood @@ -0,0 +1,21 @@ +palette = 0=#112616 +palette = 1=#7f2b27 +palette = 2=#2f7e25 +palette = 3=#717f24 +palette = 4=#2f6a7f +palette = 5=#47587f +palette = 6=#327f77 +palette = 7=#647d75 +palette = 8=#3c4812 +palette = 9=#e08009 +palette = 10=#18e000 +palette = 11=#bde000 +palette = 12=#00aae0 +palette = 13=#0058e0 +palette = 14=#00e0c4 +palette = 15=#73fa91 +background = 0f1610 +foreground = 637d75 +cursor-color = 73fa91 +selection-background = 1d4125 +selection-foreground = 73fa91 diff --git a/bin/share/ghostty/themes/Andromeda b/bin/share/ghostty/themes/Andromeda new file mode 100644 index 0000000..05b2723 --- /dev/null +++ b/bin/share/ghostty/themes/Andromeda @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cd3131 +palette = 2=#05bc79 +palette = 3=#e5e512 +palette = 4=#2472c8 +palette = 5=#bc3fbc +palette = 6=#0fa8cd +palette = 7=#e5e5e5 +palette = 8=#666666 +palette = 9=#cd3131 +palette = 10=#05bc79 +palette = 11=#e5e512 +palette = 12=#2472c8 +palette = 13=#bc3fbc +palette = 14=#0fa8cd +palette = 15=#e5e5e5 +background = 262a33 +foreground = e5e5e5 +cursor-color = f8f8f0 +selection-background = 5a5c62 +selection-foreground = ece7e7 diff --git a/bin/share/ghostty/themes/Apple Classic b/bin/share/ghostty/themes/Apple Classic new file mode 100644 index 0000000..e7e7245 --- /dev/null +++ b/bin/share/ghostty/themes/Apple Classic @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c91b00 +palette = 2=#00c200 +palette = 3=#c7c400 +palette = 4=#0225c7 +palette = 5=#ca30c7 +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#ff77ff +palette = 14=#60fdff +palette = 15=#ffffff +background = 2c2b2b +foreground = d5a200 +cursor-color = c7c7c7 +selection-background = 6b5b02 +selection-foreground = 67e000 diff --git a/bin/share/ghostty/themes/Apple System Colors b/bin/share/ghostty/themes/Apple System Colors new file mode 100644 index 0000000..937a521 --- /dev/null +++ b/bin/share/ghostty/themes/Apple System Colors @@ -0,0 +1,21 @@ +palette = 0=#1a1a1a +palette = 1=#cc372e +palette = 2=#26a439 +palette = 3=#cdac08 +palette = 4=#0869cb +palette = 5=#9647bf +palette = 6=#479ec2 +palette = 7=#98989d +palette = 8=#464646 +palette = 9=#ff453a +palette = 10=#32d74b +palette = 11=#ffd60a +palette = 12=#0a84ff +palette = 13=#bf5af2 +palette = 14=#76d6ff +palette = 15=#ffffff +background = 1e1e1e +foreground = ffffff +cursor-color = 98989d +selection-background = 3f638b +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Argonaut b/bin/share/ghostty/themes/Argonaut new file mode 100644 index 0000000..09b24c3 --- /dev/null +++ b/bin/share/ghostty/themes/Argonaut @@ -0,0 +1,21 @@ +palette = 0=#232323 +palette = 1=#ff000f +palette = 2=#8ce10b +palette = 3=#ffb900 +palette = 4=#008df8 +palette = 5=#6d43a6 +palette = 6=#00d8eb +palette = 7=#ffffff +palette = 8=#444444 +palette = 9=#ff2740 +palette = 10=#abe15b +palette = 11=#ffd242 +palette = 12=#0092ff +palette = 13=#9a5feb +palette = 14=#67fff0 +palette = 15=#ffffff +background = 0e1019 +foreground = fffaf4 +cursor-color = ff0018 +selection-background = 002a3b +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Arthur b/bin/share/ghostty/themes/Arthur new file mode 100644 index 0000000..a5c3cdf --- /dev/null +++ b/bin/share/ghostty/themes/Arthur @@ -0,0 +1,21 @@ +palette = 0=#3d352a +palette = 1=#cd5c5c +palette = 2=#86af80 +palette = 3=#e8ae5b +palette = 4=#6495ed +palette = 5=#deb887 +palette = 6=#b0c4de +palette = 7=#bbaa99 +palette = 8=#554444 +palette = 9=#cc5533 +palette = 10=#88aa22 +palette = 11=#ffa75d +palette = 12=#87ceeb +palette = 13=#996600 +palette = 14=#b0c4de +palette = 15=#ddccbb +background = 1c1c1c +foreground = ddeedd +cursor-color = e2bbef +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/AtelierSulphurpool b/bin/share/ghostty/themes/AtelierSulphurpool new file mode 100644 index 0000000..e234c08 --- /dev/null +++ b/bin/share/ghostty/themes/AtelierSulphurpool @@ -0,0 +1,21 @@ +palette = 0=#202746 +palette = 1=#c94922 +palette = 2=#ac9739 +palette = 3=#c08b30 +palette = 4=#3d8fd1 +palette = 5=#6679cc +palette = 6=#22a2c9 +palette = 7=#979db4 +palette = 8=#6b7394 +palette = 9=#c76b29 +palette = 10=#293256 +palette = 11=#5e6687 +palette = 12=#898ea4 +palette = 13=#dfe2f1 +palette = 14=#9c637a +palette = 15=#f5f7ff +background = 202746 +foreground = 979db4 +cursor-color = 979db4 +selection-background = 5e6687 +selection-foreground = 979db4 diff --git a/bin/share/ghostty/themes/Atom b/bin/share/ghostty/themes/Atom new file mode 100644 index 0000000..8ca2b28 --- /dev/null +++ b/bin/share/ghostty/themes/Atom @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fd5ff1 +palette = 2=#87c38a +palette = 3=#ffd7b1 +palette = 4=#85befd +palette = 5=#b9b6fc +palette = 6=#85befd +palette = 7=#e0e0e0 +palette = 8=#000000 +palette = 9=#fd5ff1 +palette = 10=#94fa36 +palette = 11=#f5ffa8 +palette = 12=#96cbfe +palette = 13=#b9b6fc +palette = 14=#85befd +palette = 15=#e0e0e0 +background = 161719 +foreground = c5c8c6 +cursor-color = d0d0d0 +selection-background = 444444 +selection-foreground = c5c8c6 diff --git a/bin/share/ghostty/themes/AtomOneLight b/bin/share/ghostty/themes/AtomOneLight new file mode 100644 index 0000000..4f6c956 --- /dev/null +++ b/bin/share/ghostty/themes/AtomOneLight @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#de3e35 +palette = 2=#3f953a +palette = 3=#d2b67c +palette = 4=#2f5af3 +palette = 5=#950095 +palette = 6=#3f953a +palette = 7=#bbbbbb +palette = 8=#000000 +palette = 9=#de3e35 +palette = 10=#3f953a +palette = 11=#d2b67c +palette = 12=#2f5af3 +palette = 13=#a00095 +palette = 14=#3f953a +palette = 15=#ffffff +background = f9f9f9 +foreground = 2a2c33 +cursor-color = bbbbbb +selection-background = ededed +selection-foreground = 2a2c33 diff --git a/bin/share/ghostty/themes/Aurora b/bin/share/ghostty/themes/Aurora new file mode 100644 index 0000000..91a68ad --- /dev/null +++ b/bin/share/ghostty/themes/Aurora @@ -0,0 +1,21 @@ +palette = 0=#23262e +palette = 1=#f0266f +palette = 2=#8fd46d +palette = 3=#ffe66d +palette = 4=#0321d7 +palette = 5=#ee5d43 +palette = 6=#03d6b8 +palette = 7=#c74ded +palette = 8=#292e38 +palette = 9=#f92672 +palette = 10=#8fd46d +palette = 11=#ffe66d +palette = 12=#03d6b8 +palette = 13=#ee5d43 +palette = 14=#03d6b8 +palette = 15=#c74ded +background = 23262e +foreground = ffca28 +cursor-color = ee5d43 +selection-background = 292e38 +selection-foreground = 00e8c6 diff --git a/bin/share/ghostty/themes/Ayu Mirage b/bin/share/ghostty/themes/Ayu Mirage new file mode 100644 index 0000000..ed469c3 --- /dev/null +++ b/bin/share/ghostty/themes/Ayu Mirage @@ -0,0 +1,21 @@ +palette = 0=#191e2a +palette = 1=#ed8274 +palette = 2=#a6cc70 +palette = 3=#fad07b +palette = 4=#6dcbfa +palette = 5=#cfbafa +palette = 6=#90e1c6 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#f28779 +palette = 10=#bae67e +palette = 11=#ffd580 +palette = 12=#73d0ff +palette = 13=#d4bfff +palette = 14=#95e6cb +palette = 15=#ffffff +background = 1f2430 +foreground = cbccc6 +cursor-color = ffcc66 +selection-background = 33415e +selection-foreground = cbccc6 diff --git a/bin/share/ghostty/themes/Banana Blueberry b/bin/share/ghostty/themes/Banana Blueberry new file mode 100644 index 0000000..5723376 --- /dev/null +++ b/bin/share/ghostty/themes/Banana Blueberry @@ -0,0 +1,21 @@ +palette = 0=#17141f +palette = 1=#ff6b7f +palette = 2=#00bd9c +palette = 3=#e6c62f +palette = 4=#22e8df +palette = 5=#dc396a +palette = 6=#56b6c2 +palette = 7=#f1f1f1 +palette = 8=#495162 +palette = 9=#fe9ea1 +palette = 10=#98c379 +palette = 11=#f9e46b +palette = 12=#91fff4 +palette = 13=#da70d6 +palette = 14=#bcf3ff +palette = 15=#ffffff +background = 191323 +foreground = cccccc +cursor-color = e07d13 +selection-background = 220525 +selection-foreground = f4f4f4 diff --git a/bin/share/ghostty/themes/Batman b/bin/share/ghostty/themes/Batman new file mode 100644 index 0000000..cc860d2 --- /dev/null +++ b/bin/share/ghostty/themes/Batman @@ -0,0 +1,21 @@ +palette = 0=#1b1d1e +palette = 1=#e6dc44 +palette = 2=#c8be46 +palette = 3=#f4fd22 +palette = 4=#737174 +palette = 5=#747271 +palette = 6=#62605f +palette = 7=#c6c5bf +palette = 8=#505354 +palette = 9=#fff78e +palette = 10=#fff27d +palette = 11=#feed6c +palette = 12=#919495 +palette = 13=#9a9a9d +palette = 14=#a3a3a6 +palette = 15=#dadbd6 +background = 1b1d1e +foreground = 6f6f6f +cursor-color = fcef0c +selection-background = 4d504c +selection-foreground = f0e04a diff --git a/bin/share/ghostty/themes/Belafonte Day b/bin/share/ghostty/themes/Belafonte Day new file mode 100644 index 0000000..c7599a8 --- /dev/null +++ b/bin/share/ghostty/themes/Belafonte Day @@ -0,0 +1,21 @@ +palette = 0=#20111b +palette = 1=#be100e +palette = 2=#858162 +palette = 3=#eaa549 +palette = 4=#426a79 +palette = 5=#97522c +palette = 6=#989a9c +palette = 7=#968c83 +palette = 8=#5e5252 +palette = 9=#be100e +palette = 10=#858162 +palette = 11=#eaa549 +palette = 12=#426a79 +palette = 13=#97522c +palette = 14=#989a9c +palette = 15=#d5ccba +background = d5ccba +foreground = 45373c +cursor-color = 45373c +selection-background = 968c83 +selection-foreground = 45373c diff --git a/bin/share/ghostty/themes/Belafonte Night b/bin/share/ghostty/themes/Belafonte Night new file mode 100644 index 0000000..5a8432e --- /dev/null +++ b/bin/share/ghostty/themes/Belafonte Night @@ -0,0 +1,21 @@ +palette = 0=#20111b +palette = 1=#be100e +palette = 2=#858162 +palette = 3=#eaa549 +palette = 4=#426a79 +palette = 5=#97522c +palette = 6=#989a9c +palette = 7=#968c83 +palette = 8=#5e5252 +palette = 9=#be100e +palette = 10=#858162 +palette = 11=#eaa549 +palette = 12=#426a79 +palette = 13=#97522c +palette = 14=#989a9c +palette = 15=#d5ccba +background = 20111b +foreground = 968c83 +cursor-color = 968c83 +selection-background = 45373c +selection-foreground = 968c83 diff --git a/bin/share/ghostty/themes/BirdsOfParadise b/bin/share/ghostty/themes/BirdsOfParadise new file mode 100644 index 0000000..3c1767c --- /dev/null +++ b/bin/share/ghostty/themes/BirdsOfParadise @@ -0,0 +1,21 @@ +palette = 0=#573d26 +palette = 1=#be2d26 +palette = 2=#6ba18a +palette = 3=#e99d2a +palette = 4=#5a86ad +palette = 5=#ac80a6 +palette = 6=#74a6ad +palette = 7=#e0dbb7 +palette = 8=#9b6c4a +palette = 9=#e84627 +palette = 10=#95d8ba +palette = 11=#d0d150 +palette = 12=#b8d3ed +palette = 13=#d19ecb +palette = 14=#93cfd7 +palette = 15=#fff9d5 +background = 2a1f1d +foreground = e0dbb7 +cursor-color = 573d26 +selection-background = 563c27 +selection-foreground = e0dbbb diff --git a/bin/share/ghostty/themes/Blazer b/bin/share/ghostty/themes/Blazer new file mode 100644 index 0000000..db67a9b --- /dev/null +++ b/bin/share/ghostty/themes/Blazer @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b87a7a +palette = 2=#7ab87a +palette = 3=#b8b87a +palette = 4=#7a7ab8 +palette = 5=#b87ab8 +palette = 6=#7ab8b8 +palette = 7=#d9d9d9 +palette = 8=#262626 +palette = 9=#dbbdbd +palette = 10=#bddbbd +palette = 11=#dbdbbd +palette = 12=#bdbddb +palette = 13=#dbbddb +palette = 14=#bddbdb +palette = 15=#ffffff +background = 0d1926 +foreground = d9e6f2 +cursor-color = d9e6f2 +selection-background = c1ddff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Blue Matrix b/bin/share/ghostty/themes/Blue Matrix new file mode 100644 index 0000000..7019203 --- /dev/null +++ b/bin/share/ghostty/themes/Blue Matrix @@ -0,0 +1,21 @@ +palette = 0=#101116 +palette = 1=#ff5680 +palette = 2=#00ff9c +palette = 3=#fffc58 +palette = 4=#00b0ff +palette = 5=#d57bff +palette = 6=#76c1ff +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#d682ec +palette = 14=#60fdff +palette = 15=#ffffff +background = 101116 +foreground = 00a2ff +cursor-color = 76ff9f +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/BlueBerryPie b/bin/share/ghostty/themes/BlueBerryPie new file mode 100644 index 0000000..3007fa4 --- /dev/null +++ b/bin/share/ghostty/themes/BlueBerryPie @@ -0,0 +1,21 @@ +palette = 0=#0a4c62 +palette = 1=#99246e +palette = 2=#5cb1b3 +palette = 3=#eab9a8 +palette = 4=#90a5bd +palette = 5=#9d54a7 +palette = 6=#7e83cc +palette = 7=#f0e8d6 +palette = 8=#201637 +palette = 9=#c87272 +palette = 10=#0a6c7e +palette = 11=#7a3188 +palette = 12=#39173d +palette = 13=#bc94b7 +palette = 14=#5e6071 +palette = 15=#0a6c7e +background = 1c0c28 +foreground = babab9 +cursor-color = fcfad6 +selection-background = 606060 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/BlueDolphin b/bin/share/ghostty/themes/BlueDolphin new file mode 100644 index 0000000..fececdc --- /dev/null +++ b/bin/share/ghostty/themes/BlueDolphin @@ -0,0 +1,21 @@ +palette = 0=#292d3e +palette = 1=#ff8288 +palette = 2=#b4e88d +palette = 3=#f4d69f +palette = 4=#82aaff +palette = 5=#e9c1ff +palette = 6=#89ebff +palette = 7=#d0d0d0 +palette = 8=#434758 +palette = 9=#ff8b92 +palette = 10=#ddffa7 +palette = 11=#ffe585 +palette = 12=#9cc4ff +palette = 13=#ddb0f6 +palette = 14=#a3f7ff +palette = 15=#ffffff +background = 006984 +foreground = c5f2ff +cursor-color = ffcc00 +selection-background = 2baeca +selection-foreground = eceff1 diff --git a/bin/share/ghostty/themes/BlulocoDark b/bin/share/ghostty/themes/BlulocoDark new file mode 100644 index 0000000..ed018c8 --- /dev/null +++ b/bin/share/ghostty/themes/BlulocoDark @@ -0,0 +1,21 @@ +palette = 0=#41444d +palette = 1=#fc2f52 +palette = 2=#25a45c +palette = 3=#ff936a +palette = 4=#3476ff +palette = 5=#7a82da +palette = 6=#4483aa +palette = 7=#cdd4e0 +palette = 8=#8f9aae +palette = 9=#ff6480 +palette = 10=#3fc56b +palette = 11=#f9c859 +palette = 12=#10b1fe +palette = 13=#ff78f8 +palette = 14=#5fb9bc +palette = 15=#ffffff +background = 282c34 +foreground = b9c0cb +cursor-color = ffcc00 +selection-background = b9c0ca +selection-foreground = 272b33 diff --git a/bin/share/ghostty/themes/BlulocoLight b/bin/share/ghostty/themes/BlulocoLight new file mode 100644 index 0000000..dd429ec --- /dev/null +++ b/bin/share/ghostty/themes/BlulocoLight @@ -0,0 +1,21 @@ +palette = 0=#373a41 +palette = 1=#d52753 +palette = 2=#23974a +palette = 3=#df631c +palette = 4=#275fe4 +palette = 5=#823ff1 +palette = 6=#27618d +palette = 7=#babbc2 +palette = 8=#676a77 +palette = 9=#ff6480 +palette = 10=#3cbc66 +palette = 11=#c5a332 +palette = 12=#0099e1 +palette = 13=#ce33c0 +palette = 14=#6d93bb +palette = 15=#d3d3d3 +background = f9f9f9 +foreground = 373a41 +cursor-color = f32759 +selection-background = daf0ff +selection-foreground = 373a41 diff --git a/bin/share/ghostty/themes/Borland b/bin/share/ghostty/themes/Borland new file mode 100644 index 0000000..e3e425b --- /dev/null +++ b/bin/share/ghostty/themes/Borland @@ -0,0 +1,21 @@ +palette = 0=#4f4f4f +palette = 1=#ff6c60 +palette = 2=#a8ff60 +palette = 3=#ffffb6 +palette = 4=#96cbfe +palette = 5=#ff73fd +palette = 6=#c6c5fe +palette = 7=#eeeeee +palette = 8=#7c7c7c +palette = 9=#ffb6b0 +palette = 10=#ceffac +palette = 11=#ffffcc +palette = 12=#b5dcff +palette = 13=#ff9cfe +palette = 14=#dfdffe +palette = 15=#ffffff +background = 0000a4 +foreground = ffff4e +cursor-color = ffa560 +selection-background = a4a4a4 +selection-foreground = 0000a4 diff --git a/bin/share/ghostty/themes/Breeze b/bin/share/ghostty/themes/Breeze new file mode 100644 index 0000000..ca5c0f9 --- /dev/null +++ b/bin/share/ghostty/themes/Breeze @@ -0,0 +1,21 @@ +palette = 0=#31363b +palette = 1=#ed1515 +palette = 2=#11d116 +palette = 3=#f67400 +palette = 4=#1d99f3 +palette = 5=#9b59b6 +palette = 6=#1abc9c +palette = 7=#eff0f1 +palette = 8=#7f8c8d +palette = 9=#c0392b +palette = 10=#1cdc9a +palette = 11=#fdbc4b +palette = 12=#3daee9 +palette = 13=#8e44ad +palette = 14=#16a085 +palette = 15=#fcfcfc +background = 31363b +foreground = eff0f1 +cursor-color = eff0f1 +selection-background = eff0f1 +selection-foreground = 31363b diff --git a/bin/share/ghostty/themes/Bright Lights b/bin/share/ghostty/themes/Bright Lights new file mode 100644 index 0000000..4d83f31 --- /dev/null +++ b/bin/share/ghostty/themes/Bright Lights @@ -0,0 +1,21 @@ +palette = 0=#191919 +palette = 1=#ff355b +palette = 2=#b7e876 +palette = 3=#ffc251 +palette = 4=#76d4ff +palette = 5=#ba76e7 +palette = 6=#6cbfb5 +palette = 7=#c2c8d7 +palette = 8=#191919 +palette = 9=#ff355b +palette = 10=#b7e876 +palette = 11=#ffc251 +palette = 12=#76d5ff +palette = 13=#ba76e7 +palette = 14=#6cbfb5 +palette = 15=#c2c8d7 +background = 191919 +foreground = b3c9d7 +cursor-color = f34b00 +selection-background = b3c9d7 +selection-foreground = 191919 diff --git a/bin/share/ghostty/themes/Broadcast b/bin/share/ghostty/themes/Broadcast new file mode 100644 index 0000000..e46c4a8 --- /dev/null +++ b/bin/share/ghostty/themes/Broadcast @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#da4939 +palette = 2=#519f50 +palette = 3=#ffd24a +palette = 4=#6d9cbe +palette = 5=#d0d0ff +palette = 6=#6e9cbe +palette = 7=#ffffff +palette = 8=#323232 +palette = 9=#ff7b6b +palette = 10=#83d182 +palette = 11=#ffff7c +palette = 12=#9fcef0 +palette = 13=#ffffff +palette = 14=#a0cef0 +palette = 15=#ffffff +background = 2b2b2b +foreground = e6e1dc +cursor-color = ffffff +selection-background = 5a647e +selection-foreground = e6e1dc diff --git a/bin/share/ghostty/themes/Brogrammer b/bin/share/ghostty/themes/Brogrammer new file mode 100644 index 0000000..bab5c54 --- /dev/null +++ b/bin/share/ghostty/themes/Brogrammer @@ -0,0 +1,21 @@ +palette = 0=#1f1f1f +palette = 1=#f81118 +palette = 2=#2dc55e +palette = 3=#ecba0f +palette = 4=#2a84d2 +palette = 5=#4e5ab7 +palette = 6=#1081d6 +palette = 7=#d6dbe5 +palette = 8=#d6dbe5 +palette = 9=#de352e +palette = 10=#1dd361 +palette = 11=#f3bd09 +palette = 12=#1081d6 +palette = 13=#5350b9 +palette = 14=#0f7ddb +palette = 15=#ffffff +background = 131313 +foreground = d6dbe5 +cursor-color = b9b9b9 +selection-background = 1f1f1f +selection-foreground = d6dbe5 diff --git a/bin/share/ghostty/themes/Builtin Dark b/bin/share/ghostty/themes/Builtin Dark new file mode 100644 index 0000000..41f6473 --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Dark @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#bb0000 +palette = 2=#00bb00 +palette = 3=#bbbb00 +palette = 4=#0000bb +palette = 5=#bb00bb +palette = 6=#00bbbb +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 000000 +foreground = bbbbbb +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Builtin Light b/bin/share/ghostty/themes/Builtin Light new file mode 100644 index 0000000..a930ee1 --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Light @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#bb0000 +palette = 2=#00bb00 +palette = 3=#bbbb00 +palette = 4=#0000bb +palette = 5=#bb00bb +palette = 6=#00bbbb +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Builtin Pastel Dark b/bin/share/ghostty/themes/Builtin Pastel Dark new file mode 100644 index 0000000..b159e18 --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Pastel Dark @@ -0,0 +1,21 @@ +palette = 0=#4f4f4f +palette = 1=#ff6c60 +palette = 2=#a8ff60 +palette = 3=#ffffb6 +palette = 4=#96cbfe +palette = 5=#ff73fd +palette = 6=#c6c5fe +palette = 7=#eeeeee +palette = 8=#7c7c7c +palette = 9=#ffb6b0 +palette = 10=#ceffac +palette = 11=#ffffcc +palette = 12=#b5dcff +palette = 13=#ff9cfe +palette = 14=#dfdffe +palette = 15=#ffffff +background = 000000 +foreground = bbbbbb +cursor-color = ffa560 +selection-background = 363983 +selection-foreground = f2f2f2 diff --git a/bin/share/ghostty/themes/Builtin Solarized Dark b/bin/share/ghostty/themes/Builtin Solarized Dark new file mode 100644 index 0000000..0606812 --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Solarized Dark @@ -0,0 +1,21 @@ +palette = 0=#073642 +palette = 1=#dc322f +palette = 2=#859900 +palette = 3=#b58900 +palette = 4=#268bd2 +palette = 5=#d33682 +palette = 6=#2aa198 +palette = 7=#eee8d5 +palette = 8=#002b36 +palette = 9=#cb4b16 +palette = 10=#586e75 +palette = 11=#657b83 +palette = 12=#839496 +palette = 13=#6c71c4 +palette = 14=#93a1a1 +palette = 15=#fdf6e3 +background = 002b36 +foreground = 839496 +cursor-color = 839496 +selection-background = 073642 +selection-foreground = 93a1a1 diff --git a/bin/share/ghostty/themes/Builtin Solarized Light b/bin/share/ghostty/themes/Builtin Solarized Light new file mode 100644 index 0000000..39995b5 --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Solarized Light @@ -0,0 +1,21 @@ +palette = 0=#073642 +palette = 1=#dc322f +palette = 2=#859900 +palette = 3=#b58900 +palette = 4=#268bd2 +palette = 5=#d33682 +palette = 6=#2aa198 +palette = 7=#eee8d5 +palette = 8=#002b36 +palette = 9=#cb4b16 +palette = 10=#586e75 +palette = 11=#657b83 +palette = 12=#839496 +palette = 13=#6c71c4 +palette = 14=#93a1a1 +palette = 15=#fdf6e3 +background = fdf6e3 +foreground = 657b83 +cursor-color = 657b83 +selection-background = eee8d5 +selection-foreground = 586e75 diff --git a/bin/share/ghostty/themes/Builtin Tango Dark b/bin/share/ghostty/themes/Builtin Tango Dark new file mode 100644 index 0000000..3301074 --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Tango Dark @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc0000 +palette = 2=#4e9a06 +palette = 3=#c4a000 +palette = 4=#3465a4 +palette = 5=#75507b +palette = 6=#06989a +palette = 7=#d3d7cf +palette = 8=#555753 +palette = 9=#ef2929 +palette = 10=#8ae234 +palette = 11=#fce94f +palette = 12=#729fcf +palette = 13=#ad7fa8 +palette = 14=#34e2e2 +palette = 15=#eeeeec +background = 000000 +foreground = ffffff +cursor-color = ffffff +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Builtin Tango Light b/bin/share/ghostty/themes/Builtin Tango Light new file mode 100644 index 0000000..7adc3fb --- /dev/null +++ b/bin/share/ghostty/themes/Builtin Tango Light @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc0000 +palette = 2=#4e9a06 +palette = 3=#c4a000 +palette = 4=#3465a4 +palette = 5=#75507b +palette = 6=#06989a +palette = 7=#d3d7cf +palette = 8=#555753 +palette = 9=#ef2929 +palette = 10=#8ae234 +palette = 11=#fce94f +palette = 12=#729fcf +palette = 13=#ad7fa8 +palette = 14=#34e2e2 +palette = 15=#eeeeec +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/C64 b/bin/share/ghostty/themes/C64 new file mode 100644 index 0000000..d8dff1f --- /dev/null +++ b/bin/share/ghostty/themes/C64 @@ -0,0 +1,21 @@ +palette = 0=#090300 +palette = 1=#883932 +palette = 2=#55a049 +palette = 3=#bfce72 +palette = 4=#40318d +palette = 5=#8b3f96 +palette = 6=#67b6bd +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#883932 +palette = 10=#55a049 +palette = 11=#bfce72 +palette = 12=#40318d +palette = 13=#8b3f96 +palette = 14=#67b6bd +palette = 15=#f7f7f7 +background = 40318d +foreground = 7869c4 +cursor-color = 7869c4 +selection-background = 7869c4 +selection-foreground = 40318d diff --git a/bin/share/ghostty/themes/CGA b/bin/share/ghostty/themes/CGA new file mode 100644 index 0000000..06bf3e2 --- /dev/null +++ b/bin/share/ghostty/themes/CGA @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#aa0000 +palette = 2=#00aa00 +palette = 3=#aa5500 +palette = 4=#0000aa +palette = 5=#aa00aa +palette = 6=#00aaaa +palette = 7=#aaaaaa +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 000000 +foreground = aaaaaa +cursor-color = b8b8b8 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/CLRS b/bin/share/ghostty/themes/CLRS new file mode 100644 index 0000000..abf7f5a --- /dev/null +++ b/bin/share/ghostty/themes/CLRS @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f8282a +palette = 2=#328a5d +palette = 3=#fa701d +palette = 4=#135cd0 +palette = 5=#9f00bd +palette = 6=#33c3c1 +palette = 7=#b3b3b3 +palette = 8=#555753 +palette = 9=#fb0416 +palette = 10=#2cc631 +palette = 11=#fdd727 +palette = 12=#1670ff +palette = 13=#e900b0 +palette = 14=#3ad5ce +palette = 15=#eeeeec +background = ffffff +foreground = 262626 +cursor-color = 6fd3fc +selection-background = 6fd3fc +selection-foreground = 041730 diff --git a/bin/share/ghostty/themes/Calamity b/bin/share/ghostty/themes/Calamity new file mode 100644 index 0000000..682c6cc --- /dev/null +++ b/bin/share/ghostty/themes/Calamity @@ -0,0 +1,21 @@ +palette = 0=#2f2833 +palette = 1=#fc644d +palette = 2=#a5f69c +palette = 3=#e9d7a5 +palette = 4=#3b79c7 +palette = 5=#f92672 +palette = 6=#74d3de +palette = 7=#d5ced9 +palette = 8=#7e6c88 +palette = 9=#fc644d +palette = 10=#a5f69c +palette = 11=#e9d7a5 +palette = 12=#3b79c7 +palette = 13=#f92672 +palette = 14=#74d3de +palette = 15=#ffffff +background = 2f2833 +foreground = d5ced9 +cursor-color = d5ced9 +selection-background = 7e6c88 +selection-foreground = d5ced9 diff --git a/bin/share/ghostty/themes/Chalk b/bin/share/ghostty/themes/Chalk new file mode 100644 index 0000000..33c62a6 --- /dev/null +++ b/bin/share/ghostty/themes/Chalk @@ -0,0 +1,21 @@ +palette = 0=#7d8b8f +palette = 1=#b23a52 +palette = 2=#789b6a +palette = 3=#b9ac4a +palette = 4=#2a7fac +palette = 5=#bd4f5a +palette = 6=#44a799 +palette = 7=#d2d8d9 +palette = 8=#888888 +palette = 9=#f24840 +palette = 10=#80c470 +palette = 11=#ffeb62 +palette = 12=#4196ff +palette = 13=#fc5275 +palette = 14=#53cdbd +palette = 15=#d2d8d9 +background = 2b2d2e +foreground = d2d8d9 +cursor-color = 708284 +selection-background = e4e8ed +selection-foreground = 3f4041 diff --git a/bin/share/ghostty/themes/Chalkboard b/bin/share/ghostty/themes/Chalkboard new file mode 100644 index 0000000..7a4c6cd --- /dev/null +++ b/bin/share/ghostty/themes/Chalkboard @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c37372 +palette = 2=#72c373 +palette = 3=#c2c372 +palette = 4=#7372c3 +palette = 5=#c372c2 +palette = 6=#72c2c3 +palette = 7=#d9d9d9 +palette = 8=#323232 +palette = 9=#dbaaaa +palette = 10=#aadbaa +palette = 11=#dadbaa +palette = 12=#aaaadb +palette = 13=#dbaada +palette = 14=#aadadb +palette = 15=#ffffff +background = 29262f +foreground = d9e6f2 +cursor-color = d9e6f2 +selection-background = 073642 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/ChallengerDeep b/bin/share/ghostty/themes/ChallengerDeep new file mode 100644 index 0000000..e447a41 --- /dev/null +++ b/bin/share/ghostty/themes/ChallengerDeep @@ -0,0 +1,21 @@ +palette = 0=#141228 +palette = 1=#ff5458 +palette = 2=#62d196 +palette = 3=#ffb378 +palette = 4=#65b2ff +palette = 5=#906cff +palette = 6=#63f2f1 +palette = 7=#a6b3cc +palette = 8=#565575 +palette = 9=#ff8080 +palette = 10=#95ffa4 +palette = 11=#ffe9aa +palette = 12=#91ddff +palette = 13=#c991e1 +palette = 14=#aaffe4 +palette = 15=#cbe3e7 +background = 1e1c31 +foreground = cbe1e7 +cursor-color = fbfcfc +selection-background = cbe1e7 +selection-foreground = 1e1c31 diff --git a/bin/share/ghostty/themes/Chester b/bin/share/ghostty/themes/Chester new file mode 100644 index 0000000..b12cd23 --- /dev/null +++ b/bin/share/ghostty/themes/Chester @@ -0,0 +1,21 @@ +palette = 0=#080200 +palette = 1=#fa5e5b +palette = 2=#16c98d +palette = 3=#ffc83f +palette = 4=#288ad6 +palette = 5=#d34590 +palette = 6=#28ddde +palette = 7=#e7e7e7 +palette = 8=#6f6b68 +palette = 9=#fa5e5b +palette = 10=#16c98d +palette = 11=#feef6d +palette = 12=#278ad6 +palette = 13=#d34590 +palette = 14=#27dede +palette = 15=#ffffff +background = 2c3643 +foreground = ffffff +cursor-color = b4b1b1 +selection-background = 67747c +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Ciapre b/bin/share/ghostty/themes/Ciapre new file mode 100644 index 0000000..c1ddeec --- /dev/null +++ b/bin/share/ghostty/themes/Ciapre @@ -0,0 +1,21 @@ +palette = 0=#181818 +palette = 1=#810009 +palette = 2=#48513b +palette = 3=#cc8b3f +palette = 4=#576d8c +palette = 5=#724d7c +palette = 6=#5c4f4b +palette = 7=#aea47f +palette = 8=#555555 +palette = 9=#ac3835 +palette = 10=#a6a75d +palette = 11=#dcdf7c +palette = 12=#3097c6 +palette = 13=#d33061 +palette = 14=#f3dbb2 +palette = 15=#f4f4f4 +background = 191c27 +foreground = aea47a +cursor-color = 92805b +selection-background = 172539 +selection-foreground = aea47f diff --git a/bin/share/ghostty/themes/Cobalt Neon b/bin/share/ghostty/themes/Cobalt Neon new file mode 100644 index 0000000..c584a57 --- /dev/null +++ b/bin/share/ghostty/themes/Cobalt Neon @@ -0,0 +1,21 @@ +palette = 0=#142631 +palette = 1=#ff2320 +palette = 2=#3ba5ff +palette = 3=#e9e75c +palette = 4=#8ff586 +palette = 5=#781aa0 +palette = 6=#8ff586 +palette = 7=#ba46b2 +palette = 8=#fff688 +palette = 9=#d4312e +palette = 10=#8ff586 +palette = 11=#e9f06d +palette = 12=#3c7dd2 +palette = 13=#8230a7 +palette = 14=#6cbc67 +palette = 15=#8ff586 +background = 142838 +foreground = 8ff586 +cursor-color = c4206f +selection-background = 094fb1 +selection-foreground = 8ff586 diff --git a/bin/share/ghostty/themes/Cobalt2 b/bin/share/ghostty/themes/Cobalt2 new file mode 100644 index 0000000..00dbb25 --- /dev/null +++ b/bin/share/ghostty/themes/Cobalt2 @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff0000 +palette = 2=#38de21 +palette = 3=#ffe50a +palette = 4=#1460d2 +palette = 5=#ff005d +palette = 6=#00bbbb +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#f40e17 +palette = 10=#3bd01d +palette = 11=#edc809 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#6ae3fa +palette = 15=#ffffff +background = 132738 +foreground = ffffff +cursor-color = f0cc09 +selection-background = 18354f +selection-foreground = b5b5b5 diff --git a/bin/share/ghostty/themes/CrayonPonyFish b/bin/share/ghostty/themes/CrayonPonyFish new file mode 100644 index 0000000..0357000 --- /dev/null +++ b/bin/share/ghostty/themes/CrayonPonyFish @@ -0,0 +1,21 @@ +palette = 0=#2b1b1d +palette = 1=#91002b +palette = 2=#579524 +palette = 3=#ab311b +palette = 4=#8c87b0 +palette = 5=#692f50 +palette = 6=#e8a866 +palette = 7=#68525a +palette = 8=#3d2b2e +palette = 9=#c5255d +palette = 10=#8dff57 +palette = 11=#c8381d +palette = 12=#cfc9ff +palette = 13=#fc6cba +palette = 14=#ffceaf +palette = 15=#b0949d +background = 150707 +foreground = 68525a +cursor-color = 68525a +selection-background = 2b1b1d +selection-foreground = 69525a diff --git a/bin/share/ghostty/themes/CutiePro b/bin/share/ghostty/themes/CutiePro new file mode 100644 index 0000000..7b3426f --- /dev/null +++ b/bin/share/ghostty/themes/CutiePro @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f56e7f +palette = 2=#bec975 +palette = 3=#f58669 +palette = 4=#42d9c5 +palette = 5=#d286b7 +palette = 6=#37cb8a +palette = 7=#d5c3c3 +palette = 8=#88847f +palette = 9=#e5a1a3 +palette = 10=#e8d6a7 +palette = 11=#f1bb79 +palette = 12=#80c5de +palette = 13=#b294bb +palette = 14=#9dccbb +palette = 15=#ffffff +background = 181818 +foreground = d5d0c9 +cursor-color = efc4cd +selection-background = 363636 +selection-foreground = d5d0c9 diff --git a/bin/share/ghostty/themes/Cyberdyne b/bin/share/ghostty/themes/Cyberdyne new file mode 100644 index 0000000..5564d65 --- /dev/null +++ b/bin/share/ghostty/themes/Cyberdyne @@ -0,0 +1,21 @@ +palette = 0=#080808 +palette = 1=#ff8373 +palette = 2=#00c172 +palette = 3=#d2a700 +palette = 4=#0071cf +palette = 5=#ff90fe +palette = 6=#6bffdd +palette = 7=#f1f1f1 +palette = 8=#2e2e2e +palette = 9=#ffc4be +palette = 10=#d6fcba +palette = 11=#fffed5 +palette = 12=#c2e3ff +palette = 13=#ffb2fe +palette = 14=#e6e7fe +palette = 15=#ffffff +background = 151144 +foreground = 00ff92 +cursor-color = 00ff9c +selection-background = 454d96 +selection-foreground = f4f4f4 diff --git a/bin/share/ghostty/themes/CyberpunkScarletProtocol b/bin/share/ghostty/themes/CyberpunkScarletProtocol new file mode 100644 index 0000000..c5c6d4e --- /dev/null +++ b/bin/share/ghostty/themes/CyberpunkScarletProtocol @@ -0,0 +1,21 @@ +palette = 0=#101116 +palette = 1=#ea3356 +palette = 2=#64d98c +palette = 3=#faf968 +palette = 4=#306fb1 +palette = 5=#ba3ec1 +palette = 6=#59c2c6 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ed776d +palette = 10=#8df77a +palette = 11=#fefc7f +palette = 12=#6a71f6 +palette = 13=#ae40e4 +palette = 14=#8efafd +palette = 15=#ffffff +background = 101116 +foreground = d13554 +cursor-color = 9bfca8 +selection-background = c7ddfc +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Dark Modern b/bin/share/ghostty/themes/Dark Modern new file mode 100644 index 0000000..90ac9a8 --- /dev/null +++ b/bin/share/ghostty/themes/Dark Modern @@ -0,0 +1,21 @@ +palette = 0=#272727 +palette = 1=#f74949 +palette = 2=#2ea043 +palette = 3=#9e6a03 +palette = 4=#0078d4 +palette = 5=#d01273 +palette = 6=#1db4d6 +palette = 7=#cccccc +palette = 8=#5d5d5d +palette = 9=#dc5452 +palette = 10=#23d18b +palette = 11=#f5f543 +palette = 12=#3b8eea +palette = 13=#d670d6 +palette = 14=#29b8db +palette = 15=#e5e5e5 +background = 1f1f1f +foreground = cccccc +cursor-color = ffffff +selection-background = 3a3d41 +selection-foreground = e0e0e0 diff --git a/bin/share/ghostty/themes/Dark Pastel b/bin/share/ghostty/themes/Dark Pastel new file mode 100644 index 0000000..2b57b47 --- /dev/null +++ b/bin/share/ghostty/themes/Dark Pastel @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff5555 +palette = 2=#55ff55 +palette = 3=#ffff55 +palette = 4=#5555ff +palette = 5=#ff55ff +palette = 6=#55ffff +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 000000 +foreground = ffffff +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Dark+ b/bin/share/ghostty/themes/Dark+ new file mode 100644 index 0000000..e90dc0c --- /dev/null +++ b/bin/share/ghostty/themes/Dark+ @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cd3131 +palette = 2=#0dbc79 +palette = 3=#e5e510 +palette = 4=#2472c8 +palette = 5=#bc3fbc +palette = 6=#11a8cd +palette = 7=#e5e5e5 +palette = 8=#666666 +palette = 9=#f14c4c +palette = 10=#23d18b +palette = 11=#f5f543 +palette = 12=#3b8eea +palette = 13=#d670d6 +palette = 14=#29b8db +palette = 15=#e5e5e5 +background = 1e1e1e +foreground = cccccc +cursor-color = ffffff +selection-background = 3a3d41 +selection-foreground = e0e0e0 diff --git a/bin/share/ghostty/themes/Darkside b/bin/share/ghostty/themes/Darkside new file mode 100644 index 0000000..39858d0 --- /dev/null +++ b/bin/share/ghostty/themes/Darkside @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#e8341c +palette = 2=#68c256 +palette = 3=#f2d42c +palette = 4=#1c98e8 +palette = 5=#8e69c9 +palette = 6=#1c98e8 +palette = 7=#bababa +palette = 8=#000000 +palette = 9=#e05a4f +palette = 10=#77b869 +palette = 11=#efd64b +palette = 12=#387cd3 +palette = 13=#957bbe +palette = 14=#3d97e2 +palette = 15=#bababa +background = 222324 +foreground = bababa +cursor-color = bbbbbb +selection-background = 303333 +selection-foreground = bababa diff --git a/bin/share/ghostty/themes/Desert b/bin/share/ghostty/themes/Desert new file mode 100644 index 0000000..82372b3 --- /dev/null +++ b/bin/share/ghostty/themes/Desert @@ -0,0 +1,21 @@ +palette = 0=#4d4d4d +palette = 1=#ff2b2b +palette = 2=#98fb98 +palette = 3=#f0e68c +palette = 4=#cd853f +palette = 5=#ffdead +palette = 6=#ffa0a0 +palette = 7=#f5deb3 +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#87ceff +palette = 13=#ff55ff +palette = 14=#ffd700 +palette = 15=#ffffff +background = 333333 +foreground = ffffff +cursor-color = 00ff00 +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Dimidium b/bin/share/ghostty/themes/Dimidium new file mode 100644 index 0000000..1566068 --- /dev/null +++ b/bin/share/ghostty/themes/Dimidium @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cf494c +palette = 2=#60b442 +palette = 3=#db9c11 +palette = 4=#0575d8 +palette = 5=#af5ed2 +palette = 6=#1db6bb +palette = 7=#bab7b6 +palette = 8=#817e7e +palette = 9=#ff643b +palette = 10=#37e57b +palette = 11=#fccd1a +palette = 12=#688dfd +palette = 13=#ed6fe9 +palette = 14=#32e0fb +palette = 15=#d3d8d9 +background = 141414 +foreground = bab7b6 +cursor-color = 37e57b +selection-background = 8db8e5 +selection-foreground = 141414 diff --git a/bin/share/ghostty/themes/DimmedMonokai b/bin/share/ghostty/themes/DimmedMonokai new file mode 100644 index 0000000..ab0ecea --- /dev/null +++ b/bin/share/ghostty/themes/DimmedMonokai @@ -0,0 +1,21 @@ +palette = 0=#3a3d43 +palette = 1=#be3f48 +palette = 2=#879a3b +palette = 3=#c5a635 +palette = 4=#4f76a1 +palette = 5=#855c8d +palette = 6=#578fa4 +palette = 7=#b9bcba +palette = 8=#888987 +palette = 9=#fb001f +palette = 10=#0f722f +palette = 11=#c47033 +palette = 12=#186de3 +palette = 13=#fb0067 +palette = 14=#2e706d +palette = 15=#fdffb9 +background = 1f1f1f +foreground = b9bcba +cursor-color = f83e19 +selection-background = 2a2d32 +selection-foreground = b9bcba diff --git a/bin/share/ghostty/themes/Django b/bin/share/ghostty/themes/Django new file mode 100644 index 0000000..399dabf --- /dev/null +++ b/bin/share/ghostty/themes/Django @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fd6209 +palette = 2=#41a83e +palette = 3=#ffe862 +palette = 4=#245032 +palette = 5=#f8f8f8 +palette = 6=#9df39f +palette = 7=#ffffff +palette = 8=#323232 +palette = 9=#ff943b +palette = 10=#73da70 +palette = 11=#ffff94 +palette = 12=#568264 +palette = 13=#ffffff +palette = 14=#cfffd1 +palette = 15=#ffffff +background = 0b2f20 +foreground = f8f8f8 +cursor-color = 336442 +selection-background = 245032 +selection-foreground = f8f8f8 diff --git a/bin/share/ghostty/themes/DjangoRebornAgain b/bin/share/ghostty/themes/DjangoRebornAgain new file mode 100644 index 0000000..e782ec3 --- /dev/null +++ b/bin/share/ghostty/themes/DjangoRebornAgain @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fd6209 +palette = 2=#41a83e +palette = 3=#ffe862 +palette = 4=#245032 +palette = 5=#f8f8f8 +palette = 6=#9df39f +palette = 7=#ffffff +palette = 8=#323232 +palette = 9=#ff943b +palette = 10=#73da70 +palette = 11=#ffff94 +palette = 12=#568264 +palette = 13=#ffffff +palette = 14=#cfffd1 +palette = 15=#ffffff +background = 051f14 +foreground = dadedc +cursor-color = ffcc00 +selection-background = 203727 +selection-foreground = dadedc diff --git a/bin/share/ghostty/themes/DjangoSmooth b/bin/share/ghostty/themes/DjangoSmooth new file mode 100644 index 0000000..637b719 --- /dev/null +++ b/bin/share/ghostty/themes/DjangoSmooth @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fd6209 +palette = 2=#41a83e +palette = 3=#ffe862 +palette = 4=#989898 +palette = 5=#f8f8f8 +palette = 6=#9df39f +palette = 7=#e8e8e7 +palette = 8=#323232 +palette = 9=#ff943b +palette = 10=#73da70 +palette = 11=#ffff94 +palette = 12=#cacaca +palette = 13=#ffffff +palette = 14=#cfffd1 +palette = 15=#ffffff +background = 245032 +foreground = f8f8f8 +cursor-color = 336442 +selection-background = 336442 +selection-foreground = f8f8f8 diff --git a/bin/share/ghostty/themes/Doom Peacock b/bin/share/ghostty/themes/Doom Peacock new file mode 100644 index 0000000..71b3265 --- /dev/null +++ b/bin/share/ghostty/themes/Doom Peacock @@ -0,0 +1,21 @@ +palette = 0=#1c1f24 +palette = 1=#cb4b16 +palette = 2=#26a6a6 +palette = 3=#bcd42a +palette = 4=#2a6cc6 +palette = 5=#a9a1e1 +palette = 6=#5699af +palette = 7=#ede0ce +palette = 8=#2b2a27 +palette = 9=#ff5d38 +palette = 10=#98be65 +palette = 11=#e6f972 +palette = 12=#51afef +palette = 13=#c678dd +palette = 14=#46d9ff +palette = 15=#dfdfdf +background = 2b2a27 +foreground = ede0ce +cursor-color = 9c9c9d +selection-background = a60033 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/DoomOne b/bin/share/ghostty/themes/DoomOne new file mode 100644 index 0000000..00b867c --- /dev/null +++ b/bin/share/ghostty/themes/DoomOne @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff6c6b +palette = 2=#98be65 +palette = 3=#ecbe7b +palette = 4=#a9a1e1 +palette = 5=#c678dd +palette = 6=#51afef +palette = 7=#bbc2cf +palette = 8=#000000 +palette = 9=#ff6655 +palette = 10=#99bb66 +palette = 11=#ecbe7b +palette = 12=#a9a1e1 +palette = 13=#c678dd +palette = 14=#51afef +palette = 15=#bfbfbf +background = 282c34 +foreground = bbc2cf +cursor-color = 51afef +selection-background = 42444b +selection-foreground = bbc2cf diff --git a/bin/share/ghostty/themes/DotGov b/bin/share/ghostty/themes/DotGov new file mode 100644 index 0000000..a2ceec4 --- /dev/null +++ b/bin/share/ghostty/themes/DotGov @@ -0,0 +1,21 @@ +palette = 0=#191919 +palette = 1=#bf091d +palette = 2=#3d9751 +palette = 3=#f6bb34 +palette = 4=#17b2e0 +palette = 5=#7830b0 +palette = 6=#8bd2ed +palette = 7=#ffffff +palette = 8=#191919 +palette = 9=#bf091d +palette = 10=#3d9751 +palette = 11=#f6bb34 +palette = 12=#17b2e0 +palette = 13=#7830b0 +palette = 14=#8bd2ed +palette = 15=#ffffff +background = 262c35 +foreground = ebebeb +cursor-color = d9002f +selection-background = 1a4080 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Dracula b/bin/share/ghostty/themes/Dracula new file mode 100644 index 0000000..51919f5 --- /dev/null +++ b/bin/share/ghostty/themes/Dracula @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff5555 +palette = 2=#50fa7b +palette = 3=#f1fa8c +palette = 4=#bd93f9 +palette = 5=#ff79c6 +palette = 6=#8be9fd +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#50fa7b +palette = 11=#f1fa8c +palette = 12=#bd93f9 +palette = 13=#ff79c6 +palette = 14=#8be9fd +palette = 15=#ffffff +background = 1e1f29 +foreground = f8f8f2 +cursor-color = bbbbbb +selection-background = 44475a +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Dracula+ b/bin/share/ghostty/themes/Dracula+ new file mode 100644 index 0000000..09d273f --- /dev/null +++ b/bin/share/ghostty/themes/Dracula+ @@ -0,0 +1,21 @@ +palette = 0=#21222c +palette = 1=#ff5555 +palette = 2=#50fa7b +palette = 3=#ffcb6b +palette = 4=#82aaff +palette = 5=#c792ea +palette = 6=#8be9fd +palette = 7=#f8f8f2 +palette = 8=#545454 +palette = 9=#ff6e6e +palette = 10=#69ff94 +palette = 11=#ffcb6b +palette = 12=#d6acff +palette = 13=#ff92df +palette = 14=#a4ffff +palette = 15=#f8f8f2 +background = 212121 +foreground = f8f8f2 +cursor-color = eceff4 +selection-background = f8f8f2 +selection-foreground = 545454 diff --git a/bin/share/ghostty/themes/Duotone Dark b/bin/share/ghostty/themes/Duotone Dark new file mode 100644 index 0000000..0a66e39 --- /dev/null +++ b/bin/share/ghostty/themes/Duotone Dark @@ -0,0 +1,21 @@ +palette = 0=#1f1d27 +palette = 1=#d9393e +palette = 2=#2dcd73 +palette = 3=#d9b76e +palette = 4=#ffc284 +palette = 5=#de8d40 +palette = 6=#2488ff +palette = 7=#b7a1ff +palette = 8=#353147 +palette = 9=#d9393e +palette = 10=#2dcd73 +palette = 11=#d9b76e +palette = 12=#ffc284 +palette = 13=#de8d40 +palette = 14=#2488ff +palette = 15=#eae5ff +background = 1f1d27 +foreground = b7a1ff +cursor-color = ff9839 +selection-background = 353147 +selection-foreground = b7a2ff diff --git a/bin/share/ghostty/themes/ENCOM b/bin/share/ghostty/themes/ENCOM new file mode 100644 index 0000000..fa7f7a6 --- /dev/null +++ b/bin/share/ghostty/themes/ENCOM @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#9f0000 +palette = 2=#008b00 +palette = 3=#ffd000 +palette = 4=#0081ff +palette = 5=#bc00ca +palette = 6=#008b8b +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff0000 +palette = 10=#00ee00 +palette = 11=#ffff00 +palette = 12=#0000ff +palette = 13=#ff00ff +palette = 14=#00cdcd +palette = 15=#ffffff +background = 000000 +foreground = 00a595 +cursor-color = bbbbbb +selection-background = 00a48c +selection-foreground = 3de1c9 diff --git a/bin/share/ghostty/themes/Earthsong b/bin/share/ghostty/themes/Earthsong new file mode 100644 index 0000000..01b9824 --- /dev/null +++ b/bin/share/ghostty/themes/Earthsong @@ -0,0 +1,21 @@ +palette = 0=#121418 +palette = 1=#c94234 +palette = 2=#85c54c +palette = 3=#f5ae2e +palette = 4=#1398b9 +palette = 5=#d0633d +palette = 6=#509552 +palette = 7=#e5c6aa +palette = 8=#675f54 +palette = 9=#ff645a +palette = 10=#98e036 +palette = 11=#e0d561 +palette = 12=#5fdaff +palette = 13=#ff9269 +palette = 14=#84f088 +palette = 15=#f6f7ec +background = 292520 +foreground = e5c7a9 +cursor-color = f6f7ec +selection-background = 121418 +selection-foreground = e5c7a9 diff --git a/bin/share/ghostty/themes/Elemental b/bin/share/ghostty/themes/Elemental new file mode 100644 index 0000000..77d71ed --- /dev/null +++ b/bin/share/ghostty/themes/Elemental @@ -0,0 +1,21 @@ +palette = 0=#3c3c30 +palette = 1=#98290f +palette = 2=#479a43 +palette = 3=#7f7111 +palette = 4=#497f7d +palette = 5=#7f4e2f +palette = 6=#387f58 +palette = 7=#807974 +palette = 8=#555445 +palette = 9=#e0502a +palette = 10=#61e070 +palette = 11=#d69927 +palette = 12=#79d9d9 +palette = 13=#cd7c54 +palette = 14=#59d599 +palette = 15=#fff1e9 +background = 22211d +foreground = 807a74 +cursor-color = facb80 +selection-background = 413829 +selection-foreground = facd77 diff --git a/bin/share/ghostty/themes/Elementary b/bin/share/ghostty/themes/Elementary new file mode 100644 index 0000000..ebc03e2 --- /dev/null +++ b/bin/share/ghostty/themes/Elementary @@ -0,0 +1,21 @@ +palette = 0=#242424 +palette = 1=#d71c15 +palette = 2=#5aa513 +palette = 3=#fdb40c +palette = 4=#063b8c +palette = 5=#e40038 +palette = 6=#2595e1 +palette = 7=#efefef +palette = 8=#4b4b4b +palette = 9=#fc1c18 +palette = 10=#6bc219 +palette = 11=#fec80e +palette = 12=#0955ff +palette = 13=#fb0050 +palette = 14=#3ea8fc +palette = 15=#8c00ec +background = 181818 +foreground = efefef +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Espresso b/bin/share/ghostty/themes/Espresso new file mode 100644 index 0000000..dc9aeb3 --- /dev/null +++ b/bin/share/ghostty/themes/Espresso @@ -0,0 +1,21 @@ +palette = 0=#353535 +palette = 1=#d25252 +palette = 2=#a5c261 +palette = 3=#ffc66d +palette = 4=#6c99bb +palette = 5=#d197d9 +palette = 6=#bed6ff +palette = 7=#eeeeec +palette = 8=#535353 +palette = 9=#f00c0c +palette = 10=#c2e075 +palette = 11=#e1e48b +palette = 12=#8ab7d9 +palette = 13=#efb5f7 +palette = 14=#dcf4ff +palette = 15=#ffffff +background = 323232 +foreground = ffffff +cursor-color = d6d6d6 +selection-background = 5b5b5b +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Espresso Libre b/bin/share/ghostty/themes/Espresso Libre new file mode 100644 index 0000000..77effc0 --- /dev/null +++ b/bin/share/ghostty/themes/Espresso Libre @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc0000 +palette = 2=#1a921c +palette = 3=#f0e53a +palette = 4=#0066ff +palette = 5=#c5656b +palette = 6=#06989a +palette = 7=#d3d7cf +palette = 8=#555753 +palette = 9=#ef2929 +palette = 10=#9aff87 +palette = 11=#fffb5c +palette = 12=#43a8ed +palette = 13=#ff818a +palette = 14=#34e2e2 +palette = 15=#eeeeec +background = 2a211c +foreground = b8a898 +cursor-color = ffffff +selection-background = c3dcff +selection-foreground = b8a898 diff --git a/bin/share/ghostty/themes/Everblush b/bin/share/ghostty/themes/Everblush new file mode 100644 index 0000000..4ef88d2 --- /dev/null +++ b/bin/share/ghostty/themes/Everblush @@ -0,0 +1,21 @@ +palette = 0=#232a2d +palette = 1=#e57474 +palette = 2=#8ccf7e +palette = 3=#e5c76b +palette = 4=#67b0e8 +palette = 5=#c47fd5 +palette = 6=#6cbfbf +palette = 7=#b3b9b8 +palette = 8=#2d3437 +palette = 9=#ef7e7e +palette = 10=#96d988 +palette = 11=#f4d67a +palette = 12=#71baf2 +palette = 13=#ce89df +palette = 14=#67cbe7 +palette = 15=#bdc3c2 +background = 141b1e +foreground = dadada +cursor-color = dadada +selection-background = 141b1e +selection-foreground = dadada diff --git a/bin/share/ghostty/themes/Everforest Dark - Hard b/bin/share/ghostty/themes/Everforest Dark - Hard new file mode 100644 index 0000000..c9637c9 --- /dev/null +++ b/bin/share/ghostty/themes/Everforest Dark - Hard @@ -0,0 +1,21 @@ +palette = 0=#7a8478 +palette = 1=#e67e80 +palette = 2=#a7c080 +palette = 3=#dbbc7f +palette = 4=#7fbbb3 +palette = 5=#d699b6 +palette = 6=#83c092 +palette = 7=#f2efdf +palette = 8=#a6b0a0 +palette = 9=#f85552 +palette = 10=#8da101 +palette = 11=#dfa000 +palette = 12=#3a94c5 +palette = 13=#df69ba +palette = 14=#35a77c +palette = 15=#fffbef +background = 1e2326 +foreground = d3c6aa +cursor-color = e69875 +selection-background = 4c3743 +selection-foreground = d3c6aa diff --git a/bin/share/ghostty/themes/Fahrenheit b/bin/share/ghostty/themes/Fahrenheit new file mode 100644 index 0000000..fdda4ae --- /dev/null +++ b/bin/share/ghostty/themes/Fahrenheit @@ -0,0 +1,21 @@ +palette = 0=#1d1d1d +palette = 1=#cda074 +palette = 2=#9e744d +palette = 3=#fecf75 +palette = 4=#720102 +palette = 5=#734c4d +palette = 6=#979797 +palette = 7=#ffffce +palette = 8=#000000 +palette = 9=#fecea0 +palette = 10=#cc734d +palette = 11=#fd9f4d +palette = 12=#cb4a05 +palette = 13=#4e739f +palette = 14=#fed04d +palette = 15=#ffffff +background = 000000 +foreground = ffffce +cursor-color = bbbbbb +selection-background = 4e739f +selection-foreground = ffffce diff --git a/bin/share/ghostty/themes/Fairyfloss b/bin/share/ghostty/themes/Fairyfloss new file mode 100644 index 0000000..7ab21de --- /dev/null +++ b/bin/share/ghostty/themes/Fairyfloss @@ -0,0 +1,21 @@ +palette = 0=#040303 +palette = 1=#f92672 +palette = 2=#c2ffdf +palette = 3=#e6c000 +palette = 4=#c2ffdf +palette = 5=#ffb8d1 +palette = 6=#c5a3ff +palette = 7=#f8f8f0 +palette = 8=#6090cb +palette = 9=#ff857f +palette = 10=#c2ffdf +palette = 11=#ffea00 +palette = 12=#c2ffdf +palette = 13=#ffb8d1 +palette = 14=#c5a3ff +palette = 15=#f8f8f0 +background = 5a5475 +foreground = f8f8f2 +cursor-color = f8f8f0 +selection-background = 8077a8 +selection-foreground = f6e1ce diff --git a/bin/share/ghostty/themes/Fideloper b/bin/share/ghostty/themes/Fideloper new file mode 100644 index 0000000..7fc5e4d --- /dev/null +++ b/bin/share/ghostty/themes/Fideloper @@ -0,0 +1,21 @@ +palette = 0=#292f33 +palette = 1=#cb1e2d +palette = 2=#edb8ac +palette = 3=#b7ab9b +palette = 4=#2e78c2 +palette = 5=#c0236f +palette = 6=#309186 +palette = 7=#eae3ce +palette = 8=#092028 +palette = 9=#d4605a +palette = 10=#d4605a +palette = 11=#a86671 +palette = 12=#7c85c4 +palette = 13=#5c5db2 +palette = 14=#819090 +palette = 15=#fcf4df +background = 292f33 +foreground = dbdae0 +cursor-color = d4605a +selection-background = efb8ac +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Firefly Traditional b/bin/share/ghostty/themes/Firefly Traditional new file mode 100644 index 0000000..891a9cd --- /dev/null +++ b/bin/share/ghostty/themes/Firefly Traditional @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c23720 +palette = 2=#33bc26 +palette = 3=#afad24 +palette = 4=#5a63ff +palette = 5=#d53ad2 +palette = 6=#33bbc7 +palette = 7=#cccccc +palette = 8=#828282 +palette = 9=#ff3b1e +palette = 10=#2ee720 +palette = 11=#ecec16 +palette = 12=#838dff +palette = 13=#ff5cfe +palette = 14=#29f0f0 +palette = 15=#ebebeb +background = 000000 +foreground = f5f5f5 +cursor-color = 00f900 +selection-background = cfeac6 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/FirefoxDev b/bin/share/ghostty/themes/FirefoxDev new file mode 100644 index 0000000..a0bfd52 --- /dev/null +++ b/bin/share/ghostty/themes/FirefoxDev @@ -0,0 +1,21 @@ +palette = 0=#002831 +palette = 1=#e63853 +palette = 2=#5eb83c +palette = 3=#a57706 +palette = 4=#359ddf +palette = 5=#d75cff +palette = 6=#4b73a2 +palette = 7=#dcdcdc +palette = 8=#001e27 +palette = 9=#e1003f +palette = 10=#1d9000 +palette = 11=#cd9409 +palette = 12=#006fc0 +palette = 13=#a200da +palette = 14=#005794 +palette = 15=#e2e2e2 +background = 0e1011 +foreground = 7c8fa4 +cursor-color = 708284 +selection-background = 163c61 +selection-foreground = f2f5f9 diff --git a/bin/share/ghostty/themes/Firewatch b/bin/share/ghostty/themes/Firewatch new file mode 100644 index 0000000..df86fc9 --- /dev/null +++ b/bin/share/ghostty/themes/Firewatch @@ -0,0 +1,21 @@ +palette = 0=#585f6d +palette = 1=#d95360 +palette = 2=#5ab977 +palette = 3=#dfb563 +palette = 4=#4d89c4 +palette = 5=#d55119 +palette = 6=#44a8b6 +palette = 7=#e6e5ff +palette = 8=#585f6d +palette = 9=#d95360 +palette = 10=#5ab977 +palette = 11=#dfb563 +palette = 12=#4c89c5 +palette = 13=#d55119 +palette = 14=#44a8b6 +palette = 15=#e6e5ff +background = 1e2027 +foreground = 9ba2b2 +cursor-color = f6f7ec +selection-background = 2f363e +selection-foreground = 7d8fa4 diff --git a/bin/share/ghostty/themes/FishTank b/bin/share/ghostty/themes/FishTank new file mode 100644 index 0000000..033dc5a --- /dev/null +++ b/bin/share/ghostty/themes/FishTank @@ -0,0 +1,21 @@ +palette = 0=#03073c +palette = 1=#c6004a +palette = 2=#acf157 +palette = 3=#fecd5e +palette = 4=#525fb8 +palette = 5=#986f82 +palette = 6=#968763 +palette = 7=#ecf0fc +palette = 8=#6c5b30 +palette = 9=#da4b8a +palette = 10=#dbffa9 +palette = 11=#fee6a9 +palette = 12=#b2befa +palette = 13=#fda5cd +palette = 14=#a5bd86 +palette = 15=#f6ffec +background = 232537 +foreground = ecf0fe +cursor-color = fecd5e +selection-background = fcf7e9 +selection-foreground = 232537 diff --git a/bin/share/ghostty/themes/Flat b/bin/share/ghostty/themes/Flat new file mode 100644 index 0000000..af4b313 --- /dev/null +++ b/bin/share/ghostty/themes/Flat @@ -0,0 +1,21 @@ +palette = 0=#222d3f +palette = 1=#a82320 +palette = 2=#32a548 +palette = 3=#e58d11 +palette = 4=#3167ac +palette = 5=#781aa0 +palette = 6=#2c9370 +palette = 7=#b0b6ba +palette = 8=#212c3c +palette = 9=#d4312e +palette = 10=#2d9440 +palette = 11=#e5be0c +palette = 12=#3c7dd2 +palette = 13=#8230a7 +palette = 14=#35b387 +palette = 15=#e7eced +background = 002240 +foreground = 2cc55d +cursor-color = e5be0c +selection-background = 792b9c +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Flatland b/bin/share/ghostty/themes/Flatland new file mode 100644 index 0000000..422d915 --- /dev/null +++ b/bin/share/ghostty/themes/Flatland @@ -0,0 +1,21 @@ +palette = 0=#1d1d19 +palette = 1=#f18339 +palette = 2=#9fd364 +palette = 3=#f4ef6d +palette = 4=#5096be +palette = 5=#695abc +palette = 6=#d63865 +palette = 7=#ffffff +palette = 8=#1d1d19 +palette = 9=#d22a24 +palette = 10=#a7d42c +palette = 11=#ff8949 +palette = 12=#61b9d0 +palette = 13=#695abc +palette = 14=#d63865 +palette = 15=#ffffff +background = 1d1f21 +foreground = b8dbef +cursor-color = 708284 +selection-background = 2b2a24 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Floraverse b/bin/share/ghostty/themes/Floraverse new file mode 100644 index 0000000..1c272dc --- /dev/null +++ b/bin/share/ghostty/themes/Floraverse @@ -0,0 +1,21 @@ +palette = 0=#08002e +palette = 1=#64002c +palette = 2=#5d731a +palette = 3=#cd751c +palette = 4=#1d6da1 +palette = 5=#b7077e +palette = 6=#42a38c +palette = 7=#f3e0b8 +palette = 8=#331e4d +palette = 9=#d02063 +palette = 10=#b4ce59 +palette = 11=#fac357 +palette = 12=#40a4cf +palette = 13=#f12aae +palette = 14=#62caa8 +palette = 15=#fff5db +background = 0e0d15 +foreground = dbd1b9 +cursor-color = bbbbbb +selection-background = f3e0b8 +selection-foreground = 08002e diff --git a/bin/share/ghostty/themes/ForestBlue b/bin/share/ghostty/themes/ForestBlue new file mode 100644 index 0000000..826111f --- /dev/null +++ b/bin/share/ghostty/themes/ForestBlue @@ -0,0 +1,21 @@ +palette = 0=#333333 +palette = 1=#f8818e +palette = 2=#92d3a2 +palette = 3=#1a8e63 +palette = 4=#8ed0ce +palette = 5=#5e468c +palette = 6=#31658c +palette = 7=#e2d8cd +palette = 8=#3d3d3d +palette = 9=#fb3d66 +palette = 10=#6bb48d +palette = 11=#30c85a +palette = 12=#39a7a2 +palette = 13=#7e62b3 +palette = 14=#6096bf +palette = 15=#e2d8cd +background = 051519 +foreground = e2d8cd +cursor-color = 9e9ecb +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Framer b/bin/share/ghostty/themes/Framer new file mode 100644 index 0000000..e82c752 --- /dev/null +++ b/bin/share/ghostty/themes/Framer @@ -0,0 +1,21 @@ +palette = 0=#141414 +palette = 1=#ff5555 +palette = 2=#98ec65 +palette = 3=#ffcc33 +palette = 4=#00aaff +palette = 5=#aa88ff +palette = 6=#88ddff +palette = 7=#cccccc +palette = 8=#414141 +palette = 9=#ff8888 +palette = 10=#b6f292 +palette = 11=#ffd966 +palette = 12=#33bbff +palette = 13=#cebbff +palette = 14=#bbecff +palette = 15=#ffffff +background = 111111 +foreground = 777777 +cursor-color = fcdc08 +selection-background = 666666 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/FrontEndDelight b/bin/share/ghostty/themes/FrontEndDelight new file mode 100644 index 0000000..bb33b6c --- /dev/null +++ b/bin/share/ghostty/themes/FrontEndDelight @@ -0,0 +1,21 @@ +palette = 0=#242526 +palette = 1=#f8511b +palette = 2=#565747 +palette = 3=#fa771d +palette = 4=#2c70b7 +palette = 5=#f02e4f +palette = 6=#3ca1a6 +palette = 7=#adadad +palette = 8=#5fac6d +palette = 9=#f74319 +palette = 10=#74ec4c +palette = 11=#fdc325 +palette = 12=#3393ca +palette = 13=#e75e4f +palette = 14=#4fbce6 +palette = 15=#8c735b +background = 1b1c1d +foreground = adadad +cursor-color = cdcdcd +selection-background = ea6154 +selection-foreground = 1b1c1d diff --git a/bin/share/ghostty/themes/FunForrest b/bin/share/ghostty/themes/FunForrest new file mode 100644 index 0000000..283745e --- /dev/null +++ b/bin/share/ghostty/themes/FunForrest @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d6262b +palette = 2=#919c00 +palette = 3=#be8a13 +palette = 4=#4699a3 +palette = 5=#8d4331 +palette = 6=#da8213 +palette = 7=#ddc265 +palette = 8=#7f6a55 +palette = 9=#e55a1c +palette = 10=#bfc65a +palette = 11=#ffcb1b +palette = 12=#7cc9cf +palette = 13=#d26349 +palette = 14=#e6a96b +palette = 15=#ffeaa3 +background = 251200 +foreground = dec165 +cursor-color = e5591c +selection-background = e5591c +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Galaxy b/bin/share/ghostty/themes/Galaxy new file mode 100644 index 0000000..2cf9f7b --- /dev/null +++ b/bin/share/ghostty/themes/Galaxy @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f9555f +palette = 2=#21b089 +palette = 3=#fef02a +palette = 4=#589df6 +palette = 5=#944d95 +palette = 6=#1f9ee7 +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#fa8c8f +palette = 10=#35bb9a +palette = 11=#ffff55 +palette = 12=#589df6 +palette = 13=#e75699 +palette = 14=#3979bc +palette = 15=#ffffff +background = 1d2837 +foreground = ffffff +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Galizur b/bin/share/ghostty/themes/Galizur new file mode 100644 index 0000000..8f43a3e --- /dev/null +++ b/bin/share/ghostty/themes/Galizur @@ -0,0 +1,21 @@ +palette = 0=#223344 +palette = 1=#aa1122 +palette = 2=#33aa11 +palette = 3=#ccaa22 +palette = 4=#2255cc +palette = 5=#7755aa +palette = 6=#22bbdd +palette = 7=#8899aa +palette = 8=#556677 +palette = 9=#ff1133 +palette = 10=#33ff11 +palette = 11=#ffdd33 +palette = 12=#3377ff +palette = 13=#aa77ff +palette = 14=#33ddff +palette = 15=#bbccdd +background = 071317 +foreground = ddeeff +cursor-color = ddeeff +selection-background = 071317 +selection-foreground = ddeeff diff --git a/bin/share/ghostty/themes/GitHub Dark b/bin/share/ghostty/themes/GitHub Dark new file mode 100644 index 0000000..dfd163f --- /dev/null +++ b/bin/share/ghostty/themes/GitHub Dark @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f78166 +palette = 2=#56d364 +palette = 3=#e3b341 +palette = 4=#6ca4f8 +palette = 5=#db61a2 +palette = 6=#2b7489 +palette = 7=#ffffff +palette = 8=#4d4d4d +palette = 9=#f78166 +palette = 10=#56d364 +palette = 11=#e3b341 +palette = 12=#6ca4f8 +palette = 13=#db61a2 +palette = 14=#2b7489 +palette = 15=#ffffff +background = 101216 +foreground = 8b949e +cursor-color = c9d1d9 +selection-background = 3b5070 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Github b/bin/share/ghostty/themes/Github new file mode 100644 index 0000000..8331272 --- /dev/null +++ b/bin/share/ghostty/themes/Github @@ -0,0 +1,21 @@ +palette = 0=#3e3e3e +palette = 1=#970b16 +palette = 2=#07962a +palette = 3=#f8eec7 +palette = 4=#003e8a +palette = 5=#e94691 +palette = 6=#89d1ec +palette = 7=#ffffff +palette = 8=#666666 +palette = 9=#de0000 +palette = 10=#87d5a2 +palette = 11=#f1d007 +palette = 12=#2e6cba +palette = 13=#ffa29f +palette = 14=#1cfafe +palette = 15=#ffffff +background = f4f4f4 +foreground = 3e3e3e +cursor-color = 3f3f3f +selection-background = a9c1e2 +selection-foreground = 535353 diff --git a/bin/share/ghostty/themes/Glacier b/bin/share/ghostty/themes/Glacier new file mode 100644 index 0000000..dcdfda5 --- /dev/null +++ b/bin/share/ghostty/themes/Glacier @@ -0,0 +1,21 @@ +palette = 0=#2e343c +palette = 1=#bd0f2f +palette = 2=#35a770 +palette = 3=#fb9435 +palette = 4=#1f5872 +palette = 5=#bd2523 +palette = 6=#778397 +palette = 7=#ffffff +palette = 8=#404a55 +palette = 9=#bd0f2f +palette = 10=#49e998 +palette = 11=#fddf6e +palette = 12=#2a8bc1 +palette = 13=#ea4727 +palette = 14=#a0b6d3 +palette = 15=#ffffff +background = 0c1115 +foreground = ffffff +cursor-color = 6c6c6c +selection-background = bd2523 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Grape b/bin/share/ghostty/themes/Grape new file mode 100644 index 0000000..236520d --- /dev/null +++ b/bin/share/ghostty/themes/Grape @@ -0,0 +1,21 @@ +palette = 0=#2d283f +palette = 1=#ed2261 +palette = 2=#1fa91b +palette = 3=#8ddc20 +palette = 4=#487df4 +palette = 5=#8d35c9 +palette = 6=#3bdeed +palette = 7=#9e9ea0 +palette = 8=#59516a +palette = 9=#f0729a +palette = 10=#53aa5e +palette = 11=#b2dc87 +palette = 12=#a9bcec +palette = 13=#ad81c2 +palette = 14=#9de3eb +palette = 15=#a288f7 +background = 171423 +foreground = 9f9fa1 +cursor-color = a288f7 +selection-background = 493d70 +selection-foreground = 171422 diff --git a/bin/share/ghostty/themes/Grass b/bin/share/ghostty/themes/Grass new file mode 100644 index 0000000..43f708e --- /dev/null +++ b/bin/share/ghostty/themes/Grass @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#bb0000 +palette = 2=#00bb00 +palette = 3=#e7b000 +palette = 4=#0000a3 +palette = 5=#950062 +palette = 6=#00bbbb +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#bb0000 +palette = 10=#00bb00 +palette = 11=#e7b000 +palette = 12=#0000bb +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 13773d +foreground = fff0a5 +cursor-color = 8c2800 +selection-background = b64926 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Grey-green b/bin/share/ghostty/themes/Grey-green new file mode 100644 index 0000000..74ccbea --- /dev/null +++ b/bin/share/ghostty/themes/Grey-green @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fe1414 +palette = 2=#74ff00 +palette = 3=#f1ff01 +palette = 4=#00deff +palette = 5=#ff00f0 +palette = 6=#00ffbc +palette = 7=#ffffff +palette = 8=#666666 +palette = 9=#ff3939 +palette = 10=#00ff44 +palette = 11=#ffd100 +palette = 12=#00afff +palette = 13=#ff008a +palette = 14=#00ffd3 +palette = 15=#f5ecec +background = 002a1a +foreground = ffffff +cursor-color = fff400 +selection-background = 517e50 +selection-foreground = e2e2e2 diff --git a/bin/share/ghostty/themes/GruvboxDark b/bin/share/ghostty/themes/GruvboxDark new file mode 100644 index 0000000..1c49da2 --- /dev/null +++ b/bin/share/ghostty/themes/GruvboxDark @@ -0,0 +1,21 @@ +palette = 0=#282828 +palette = 1=#cc241d +palette = 2=#98971a +palette = 3=#d79921 +palette = 4=#458588 +palette = 5=#b16286 +palette = 6=#689d6a +palette = 7=#a89984 +palette = 8=#928374 +palette = 9=#fb4934 +palette = 10=#b8bb26 +palette = 11=#fabd2f +palette = 12=#83a598 +palette = 13=#d3869b +palette = 14=#8ec07c +palette = 15=#ebdbb2 +background = 282828 +foreground = ebdbb2 +cursor-color = ebdbb2 +selection-background = 665c54 +selection-foreground = ebdbb2 diff --git a/bin/share/ghostty/themes/GruvboxDarkHard b/bin/share/ghostty/themes/GruvboxDarkHard new file mode 100644 index 0000000..d98089d --- /dev/null +++ b/bin/share/ghostty/themes/GruvboxDarkHard @@ -0,0 +1,21 @@ +palette = 0=#1b1b1b +palette = 1=#cc241d +palette = 2=#98971a +palette = 3=#d79921 +palette = 4=#458588 +palette = 5=#b16286 +palette = 6=#689d6a +palette = 7=#a89984 +palette = 8=#928374 +palette = 9=#fb4934 +palette = 10=#b8bb26 +palette = 11=#fabd2f +palette = 12=#83a598 +palette = 13=#d3869b +palette = 14=#8ec07c +palette = 15=#ebdbb2 +background = 1b1b1b +foreground = ebdbb2 +cursor-color = ebdbb2 +selection-background = 665c54 +selection-foreground = ebdbb2 diff --git a/bin/share/ghostty/themes/GruvboxLight b/bin/share/ghostty/themes/GruvboxLight new file mode 100644 index 0000000..ea0da40 --- /dev/null +++ b/bin/share/ghostty/themes/GruvboxLight @@ -0,0 +1,21 @@ +palette = 0=#fbf1c7 +palette = 1=#9d0006 +palette = 2=#79740e +palette = 3=#b57614 +palette = 4=#076678 +palette = 5=#8f3f71 +palette = 6=#427b58 +palette = 7=#3c3836 +palette = 8=#9d8374 +palette = 9=#cc241d +palette = 10=#98971a +palette = 11=#d79921 +palette = 12=#458588 +palette = 13=#b16186 +palette = 14=#689d69 +palette = 15=#7c6f64 +background = fbf1c7 +foreground = 282828 +cursor-color = 282828 +selection-background = d5c4a1 +selection-foreground = 665c54 diff --git a/bin/share/ghostty/themes/Guezwhoz b/bin/share/ghostty/themes/Guezwhoz new file mode 100644 index 0000000..eae6725 --- /dev/null +++ b/bin/share/ghostty/themes/Guezwhoz @@ -0,0 +1,21 @@ +palette = 0=#080808 +palette = 1=#ff5f5f +palette = 2=#87d7af +palette = 3=#d7d787 +palette = 4=#5fafd7 +palette = 5=#afafff +palette = 6=#5fd7d7 +palette = 7=#dadada +palette = 8=#8a8a8a +palette = 9=#d75f5f +palette = 10=#afd7af +palette = 11=#d7d7af +palette = 12=#87afd7 +palette = 13=#afafd7 +palette = 14=#87d7d7 +palette = 15=#dadada +background = 1c1c1c +foreground = d0d0d0 +cursor-color = eeeeee +selection-background = 005f5f +selection-foreground = eeeeee diff --git a/bin/share/ghostty/themes/HaX0R_BLUE b/bin/share/ghostty/themes/HaX0R_BLUE new file mode 100644 index 0000000..4dd034e --- /dev/null +++ b/bin/share/ghostty/themes/HaX0R_BLUE @@ -0,0 +1,21 @@ +palette = 0=#010921 +palette = 1=#10b6ff +palette = 2=#10b6ff +palette = 3=#10b6ff +palette = 4=#10b6ff +palette = 5=#10b6ff +palette = 6=#10b6ff +palette = 7=#fafafa +palette = 8=#080117 +palette = 9=#00b3f7 +palette = 10=#00b3f7 +palette = 11=#00b3f7 +palette = 12=#00b3f7 +palette = 13=#00b3f7 +palette = 14=#00b3f7 +palette = 15=#fefefe +background = 010515 +foreground = 11b7ff +cursor-color = 10b6ff +selection-background = c1e4ff +selection-foreground = f6f6f6 diff --git a/bin/share/ghostty/themes/HaX0R_GR33N b/bin/share/ghostty/themes/HaX0R_GR33N new file mode 100644 index 0000000..1a1c8fe --- /dev/null +++ b/bin/share/ghostty/themes/HaX0R_GR33N @@ -0,0 +1,21 @@ +palette = 0=#001f0b +palette = 1=#15d00d +palette = 2=#15d00d +palette = 3=#15d00d +palette = 4=#15d00d +palette = 5=#15d00d +palette = 6=#15d00d +palette = 7=#fafafa +palette = 8=#001510 +palette = 9=#19e20e +palette = 10=#19e20e +palette = 11=#19e20e +palette = 12=#19e20e +palette = 13=#19e20e +palette = 14=#19e20e +palette = 15=#fefefe +background = 020f01 +foreground = 16b10e +cursor-color = 15d00d +selection-background = d4ffc1 +selection-foreground = fdfdfd diff --git a/bin/share/ghostty/themes/HaX0R_R3D b/bin/share/ghostty/themes/HaX0R_R3D new file mode 100644 index 0000000..eb7863e --- /dev/null +++ b/bin/share/ghostty/themes/HaX0R_R3D @@ -0,0 +1,21 @@ +palette = 0=#1f0000 +palette = 1=#b00d0d +palette = 2=#b00d0d +palette = 3=#b00d0d +palette = 4=#b00d0d +palette = 5=#b00d0d +palette = 6=#b00d0d +palette = 7=#fafafa +palette = 8=#150000 +palette = 9=#ff1111 +palette = 10=#ff1010 +palette = 11=#ff1010 +palette = 12=#ff1010 +palette = 13=#ff1010 +palette = 14=#ff1010 +palette = 15=#fefefe +background = 200101 +foreground = b10e0e +cursor-color = b00d0d +selection-background = ebc1ff +selection-foreground = fdfdfd diff --git a/bin/share/ghostty/themes/Hacktober b/bin/share/ghostty/themes/Hacktober new file mode 100644 index 0000000..f0bead1 --- /dev/null +++ b/bin/share/ghostty/themes/Hacktober @@ -0,0 +1,21 @@ +palette = 0=#191918 +palette = 1=#b34538 +palette = 2=#587744 +palette = 3=#d08949 +palette = 4=#206ec5 +palette = 5=#864651 +palette = 6=#ac9166 +palette = 7=#f1eee7 +palette = 8=#2c2b2a +palette = 9=#b33323 +palette = 10=#42824a +palette = 11=#c75a22 +palette = 12=#5389c5 +palette = 13=#e795a5 +palette = 14=#ebc587 +palette = 15=#ffffff +background = 141414 +foreground = c9c9c9 +cursor-color = c9c9c9 +selection-background = 141414 +selection-foreground = c9c9c9 diff --git a/bin/share/ghostty/themes/Hardcore b/bin/share/ghostty/themes/Hardcore new file mode 100644 index 0000000..96b5316 --- /dev/null +++ b/bin/share/ghostty/themes/Hardcore @@ -0,0 +1,21 @@ +palette = 0=#1b1d1e +palette = 1=#f92672 +palette = 2=#a6e22e +palette = 3=#fd971f +palette = 4=#66d9ef +palette = 5=#9e6ffe +palette = 6=#5e7175 +palette = 7=#ccccc6 +palette = 8=#505354 +palette = 9=#ff669d +palette = 10=#beed5f +palette = 11=#e6db74 +palette = 12=#66d9ef +palette = 13=#9e6ffe +palette = 14=#a3babf +palette = 15=#f8f8f2 +background = 121212 +foreground = a0a0a0 +cursor-color = bbbbbb +selection-background = 453b39 +selection-foreground = b6bbc0 diff --git a/bin/share/ghostty/themes/Harper b/bin/share/ghostty/themes/Harper new file mode 100644 index 0000000..fa0846b --- /dev/null +++ b/bin/share/ghostty/themes/Harper @@ -0,0 +1,21 @@ +palette = 0=#010101 +palette = 1=#f8b63f +palette = 2=#7fb5e1 +palette = 3=#d6da25 +palette = 4=#489e48 +palette = 5=#b296c6 +palette = 6=#f5bfd7 +palette = 7=#a8a49d +palette = 8=#726e6a +palette = 9=#f8b63f +palette = 10=#7fb5e1 +palette = 11=#d6da25 +palette = 12=#489e48 +palette = 13=#b296c6 +palette = 14=#f5bfd7 +palette = 15=#fefbea +background = 010101 +foreground = a8a49d +cursor-color = a8a49d +selection-background = 5a5753 +selection-foreground = a8a49d diff --git a/bin/share/ghostty/themes/Highway b/bin/share/ghostty/themes/Highway new file mode 100644 index 0000000..753f1fd --- /dev/null +++ b/bin/share/ghostty/themes/Highway @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d00e18 +palette = 2=#138034 +palette = 3=#ffcb3e +palette = 4=#006bb3 +palette = 5=#6b2775 +palette = 6=#384564 +palette = 7=#ededed +palette = 8=#5d504a +palette = 9=#f07e18 +palette = 10=#b1d130 +palette = 11=#fff120 +palette = 12=#4fc2fd +palette = 13=#de0071 +palette = 14=#5d504a +palette = 15=#ffffff +background = 222225 +foreground = ededed +cursor-color = e0d9b9 +selection-background = 384564 +selection-foreground = ededed diff --git a/bin/share/ghostty/themes/Hipster Green b/bin/share/ghostty/themes/Hipster Green new file mode 100644 index 0000000..1e633f9 --- /dev/null +++ b/bin/share/ghostty/themes/Hipster Green @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b6214a +palette = 2=#00a600 +palette = 3=#bfbf00 +palette = 4=#246eb2 +palette = 5=#b200b2 +palette = 6=#00a6b2 +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#86a93e +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = 100b05 +foreground = 84c138 +cursor-color = 23ff18 +selection-background = 083905 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Hivacruz b/bin/share/ghostty/themes/Hivacruz new file mode 100644 index 0000000..2f0f11a --- /dev/null +++ b/bin/share/ghostty/themes/Hivacruz @@ -0,0 +1,21 @@ +palette = 0=#202746 +palette = 1=#c94922 +palette = 2=#ac9739 +palette = 3=#c08b30 +palette = 4=#3d8fd1 +palette = 5=#6679cc +palette = 6=#22a2c9 +palette = 7=#979db4 +palette = 8=#6b7394 +palette = 9=#c76b29 +palette = 10=#73ad43 +palette = 11=#5e6687 +palette = 12=#898ea4 +palette = 13=#dfe2f1 +palette = 14=#9c637a +palette = 15=#f5f7ff +background = 132638 +foreground = ede4e4 +cursor-color = 979db4 +selection-background = 5e6687 +selection-foreground = 979db4 diff --git a/bin/share/ghostty/themes/Homebrew b/bin/share/ghostty/themes/Homebrew new file mode 100644 index 0000000..202bcd7 --- /dev/null +++ b/bin/share/ghostty/themes/Homebrew @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#990000 +palette = 2=#00a600 +palette = 3=#999900 +palette = 4=#0000b2 +palette = 5=#b200b2 +palette = 6=#00a6b2 +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#00d900 +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = 000000 +foreground = 00ff00 +cursor-color = 23ff18 +selection-background = 083905 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Hopscotch b/bin/share/ghostty/themes/Hopscotch new file mode 100644 index 0000000..27a38d1 --- /dev/null +++ b/bin/share/ghostty/themes/Hopscotch @@ -0,0 +1,21 @@ +palette = 0=#322931 +palette = 1=#dd464c +palette = 2=#8fc13e +palette = 3=#fdcc59 +palette = 4=#1290bf +palette = 5=#c85e7c +palette = 6=#149b93 +palette = 7=#b9b5b8 +palette = 8=#797379 +palette = 9=#fd8b19 +palette = 10=#433b42 +palette = 11=#5c545b +palette = 12=#989498 +palette = 13=#d5d3d5 +palette = 14=#b33508 +palette = 15=#ffffff +background = 322931 +foreground = b9b5b8 +cursor-color = b9b5b8 +selection-background = 5c545b +selection-foreground = b9b5b8 diff --git a/bin/share/ghostty/themes/Hopscotch.256 b/bin/share/ghostty/themes/Hopscotch.256 new file mode 100644 index 0000000..6786285 --- /dev/null +++ b/bin/share/ghostty/themes/Hopscotch.256 @@ -0,0 +1,21 @@ +palette = 0=#322931 +palette = 1=#dd464c +palette = 2=#8fc13e +palette = 3=#fdcc59 +palette = 4=#1290bf +palette = 5=#c85e7c +palette = 6=#149b93 +palette = 7=#b9b5b8 +palette = 8=#797379 +palette = 9=#dd464c +palette = 10=#8fc13e +palette = 11=#fdcc59 +palette = 12=#1290bf +palette = 13=#c85e7c +palette = 14=#149b93 +palette = 15=#ffffff +background = 322931 +foreground = b9b5b8 +cursor-color = b9b5b8 +selection-background = 5c545b +selection-foreground = b9b5b8 diff --git a/bin/share/ghostty/themes/Horizon b/bin/share/ghostty/themes/Horizon new file mode 100644 index 0000000..ea6eba2 --- /dev/null +++ b/bin/share/ghostty/themes/Horizon @@ -0,0 +1,21 @@ +palette = 0=#131519 +palette = 1=#e95478 +palette = 2=#14d386 +palette = 3=#fab795 +palette = 4=#30aad7 +palette = 5=#b877db +palette = 6=#1fdad9 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#e06783 +palette = 10=#0af29d +palette = 11=#fac39a +palette = 12=#56c2ea +palette = 13=#c38ce1 +palette = 14=#3ce8e6 +palette = 15=#ffffff +background = 1c1e26 +foreground = bbbaba +cursor-color = c7c7c7 +selection-background = 292b36 +selection-foreground = dfd3d5 diff --git a/bin/share/ghostty/themes/Hurtado b/bin/share/ghostty/themes/Hurtado new file mode 100644 index 0000000..80d9746 --- /dev/null +++ b/bin/share/ghostty/themes/Hurtado @@ -0,0 +1,21 @@ +palette = 0=#575757 +palette = 1=#ff1b00 +palette = 2=#a5e055 +palette = 3=#fbe74a +palette = 4=#496487 +palette = 5=#fd5ff1 +palette = 6=#86e9fe +palette = 7=#cbcccb +palette = 8=#262626 +palette = 9=#d51d00 +palette = 10=#a5df55 +palette = 11=#fbe84a +palette = 12=#89beff +palette = 13=#c001c1 +palette = 14=#86eafe +palette = 15=#dbdbdb +background = 000000 +foreground = dbdbdb +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Hybrid b/bin/share/ghostty/themes/Hybrid new file mode 100644 index 0000000..2ba32b3 --- /dev/null +++ b/bin/share/ghostty/themes/Hybrid @@ -0,0 +1,21 @@ +palette = 0=#2a2e33 +palette = 1=#b84d51 +palette = 2=#b3bf5a +palette = 3=#e4b55e +palette = 4=#6e90b0 +palette = 5=#a17eac +palette = 6=#7fbfb4 +palette = 7=#b5b9b6 +palette = 8=#1d1f22 +palette = 9=#8d2e32 +palette = 10=#798431 +palette = 11=#e58a50 +palette = 12=#4b6b88 +palette = 13=#6e5079 +palette = 14=#4d7b74 +palette = 15=#5a626a +background = 161719 +foreground = b7bcba +cursor-color = b7bcba +selection-background = 1e1f22 +selection-foreground = b7bcba diff --git a/bin/share/ghostty/themes/IC_Green_PPL b/bin/share/ghostty/themes/IC_Green_PPL new file mode 100644 index 0000000..ff283fe --- /dev/null +++ b/bin/share/ghostty/themes/IC_Green_PPL @@ -0,0 +1,21 @@ +palette = 0=#014401 +palette = 1=#ff2736 +palette = 2=#41a638 +palette = 3=#76a831 +palette = 4=#2ec3b9 +palette = 5=#50a096 +palette = 6=#3ca078 +palette = 7=#e6fef2 +palette = 8=#035c03 +palette = 9=#b4fa5c +palette = 10=#aefb86 +palette = 11=#dafa87 +palette = 12=#2efaeb +palette = 13=#50fafa +palette = 14=#3cfac8 +palette = 15=#e0f1dc +background = 2c2c2c +foreground = e0f1dc +cursor-color = 47fa6b +selection-background = 116b41 +selection-foreground = e0f1dc diff --git a/bin/share/ghostty/themes/IC_Orange_PPL b/bin/share/ghostty/themes/IC_Orange_PPL new file mode 100644 index 0000000..488f1e5 --- /dev/null +++ b/bin/share/ghostty/themes/IC_Orange_PPL @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c13900 +palette = 2=#a4a900 +palette = 3=#caaf00 +palette = 4=#bd6d00 +palette = 5=#fc5e00 +palette = 6=#f79500 +palette = 7=#ffc88a +palette = 8=#6a4f2a +palette = 9=#ff8c68 +palette = 10=#f6ff40 +palette = 11=#ffe36e +palette = 12=#ffbe55 +palette = 13=#fc874f +palette = 14=#c69752 +palette = 15=#fafaff +background = 262626 +foreground = ffcb83 +cursor-color = fc531d +selection-background = c14020 +selection-foreground = ffc88a diff --git a/bin/share/ghostty/themes/IR_Black b/bin/share/ghostty/themes/IR_Black new file mode 100644 index 0000000..6024a51 --- /dev/null +++ b/bin/share/ghostty/themes/IR_Black @@ -0,0 +1,21 @@ +palette = 0=#4f4f4f +palette = 1=#fa6c60 +palette = 2=#a8ff60 +palette = 3=#fffeb7 +palette = 4=#96cafe +palette = 5=#fa73fd +palette = 6=#c6c5fe +palette = 7=#efedef +palette = 8=#7b7b7b +palette = 9=#fcb6b0 +palette = 10=#cfffab +palette = 11=#ffffcc +palette = 12=#b5dcff +palette = 13=#fb9cfe +palette = 14=#e0e0fe +palette = 15=#ffffff +background = 000000 +foreground = f1f1f1 +cursor-color = 808080 +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Jackie Brown b/bin/share/ghostty/themes/Jackie Brown new file mode 100644 index 0000000..6c49e8f --- /dev/null +++ b/bin/share/ghostty/themes/Jackie Brown @@ -0,0 +1,21 @@ +palette = 0=#2c1d16 +palette = 1=#ef5734 +palette = 2=#2baf2b +palette = 3=#bebf00 +palette = 4=#246eb2 +palette = 5=#d05ec1 +palette = 6=#00acee +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#86a93e +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = 2c1d16 +foreground = ffcc2f +cursor-color = 23ff18 +selection-background = af8d21 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Japanesque b/bin/share/ghostty/themes/Japanesque new file mode 100644 index 0000000..241ede4 --- /dev/null +++ b/bin/share/ghostty/themes/Japanesque @@ -0,0 +1,21 @@ +palette = 0=#343935 +palette = 1=#cf3f61 +palette = 2=#7bb75b +palette = 3=#e9b32a +palette = 4=#4c9ad4 +palette = 5=#a57fc4 +palette = 6=#389aad +palette = 7=#fafaf6 +palette = 8=#595b59 +palette = 9=#d18fa6 +palette = 10=#767f2c +palette = 11=#78592f +palette = 12=#135979 +palette = 13=#604291 +palette = 14=#76bbca +palette = 15=#b2b5ae +background = 1e1e1e +foreground = f7f6ec +cursor-color = edcf4f +selection-background = 175877 +selection-foreground = f7f6ec diff --git a/bin/share/ghostty/themes/Jellybeans b/bin/share/ghostty/themes/Jellybeans new file mode 100644 index 0000000..964bc4e --- /dev/null +++ b/bin/share/ghostty/themes/Jellybeans @@ -0,0 +1,21 @@ +palette = 0=#929292 +palette = 1=#e27373 +palette = 2=#94b979 +palette = 3=#ffba7b +palette = 4=#97bedc +palette = 5=#e1c0fa +palette = 6=#00988e +palette = 7=#dedede +palette = 8=#bdbdbd +palette = 9=#ffa1a1 +palette = 10=#bddeab +palette = 11=#ffdca0 +palette = 12=#b1d8f6 +palette = 13=#fbdaff +palette = 14=#1ab2a8 +palette = 15=#ffffff +background = 121212 +foreground = dedede +cursor-color = ffa560 +selection-background = 474e91 +selection-foreground = f4f4f4 diff --git a/bin/share/ghostty/themes/JetBrains Darcula b/bin/share/ghostty/themes/JetBrains Darcula new file mode 100644 index 0000000..bc89e0b --- /dev/null +++ b/bin/share/ghostty/themes/JetBrains Darcula @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fa5355 +palette = 2=#126e00 +palette = 3=#c2c300 +palette = 4=#4581eb +palette = 5=#fa54ff +palette = 6=#33c2c1 +palette = 7=#adadad +palette = 8=#555555 +palette = 9=#fb7172 +palette = 10=#67ff4f +palette = 11=#ffff00 +palette = 12=#6d9df1 +palette = 13=#fb82ff +palette = 14=#60d3d1 +palette = 15=#eeeeee +background = 202020 +foreground = adadad +cursor-color = ffffff +selection-background = 1a3272 +selection-foreground = adadad diff --git a/bin/share/ghostty/themes/Kanagawa Dragon b/bin/share/ghostty/themes/Kanagawa Dragon new file mode 100644 index 0000000..452e663 --- /dev/null +++ b/bin/share/ghostty/themes/Kanagawa Dragon @@ -0,0 +1,21 @@ +palette = 0=#0d0c0c +palette = 1=#c4746e +palette = 2=#8a9a7b +palette = 3=#c4b28a +palette = 4=#8ba4b0 +palette = 5=#a292a3 +palette = 6=#8ea4a2 +palette = 7=#c8c093 +palette = 8=#a6a69c +palette = 9=#e46876 +palette = 10=#87a987 +palette = 11=#e6c384 +palette = 12=#7fb4ca +palette = 13=#938aa9 +palette = 14=#7aa89f +palette = 15=#c5c9c5 +background = 181616 +foreground = c8c093 +cursor-color = c5c9c5 +selection-background = 223249 +selection-foreground = c5c9c5 diff --git a/bin/share/ghostty/themes/Kanagawa Wave b/bin/share/ghostty/themes/Kanagawa Wave new file mode 100644 index 0000000..9bff6ee --- /dev/null +++ b/bin/share/ghostty/themes/Kanagawa Wave @@ -0,0 +1,21 @@ +palette = 0=#090618 +palette = 1=#c34043 +palette = 2=#76946a +palette = 3=#c0a36e +palette = 4=#7e9cd8 +palette = 5=#957fb8 +palette = 6=#6a9589 +palette = 7=#c8c093 +palette = 8=#727169 +palette = 9=#e82424 +palette = 10=#98bb6c +palette = 11=#e6c384 +palette = 12=#7fb4ca +palette = 13=#938aa9 +palette = 14=#7aa89f +palette = 15=#dcd7ba +background = 1f1f28 +foreground = dcd7ba +cursor-color = c8c093 +selection-background = 2d4f67 +selection-foreground = c8c093 diff --git a/bin/share/ghostty/themes/Kibble b/bin/share/ghostty/themes/Kibble new file mode 100644 index 0000000..06e25a5 --- /dev/null +++ b/bin/share/ghostty/themes/Kibble @@ -0,0 +1,21 @@ +palette = 0=#4d4d4d +palette = 1=#c70031 +palette = 2=#29cf13 +palette = 3=#d8e30e +palette = 4=#3449d1 +palette = 5=#8400ff +palette = 6=#0798ab +palette = 7=#e2d1e3 +palette = 8=#5a5a5a +palette = 9=#f01578 +palette = 10=#6ce05c +palette = 11=#f3f79e +palette = 12=#97a4f7 +palette = 13=#c495f0 +palette = 14=#68f2e0 +palette = 15=#ffffff +background = 0e100a +foreground = f7f7f7 +cursor-color = 9fda9c +selection-background = 9ba787 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Kolorit b/bin/share/ghostty/themes/Kolorit new file mode 100644 index 0000000..d4a00b7 --- /dev/null +++ b/bin/share/ghostty/themes/Kolorit @@ -0,0 +1,21 @@ +palette = 0=#1d1a1e +palette = 1=#ff5b82 +palette = 2=#47d7a1 +palette = 3=#e8e562 +palette = 4=#5db4ee +palette = 5=#da6cda +palette = 6=#57e9eb +palette = 7=#ededed +palette = 8=#1d1a1e +palette = 9=#ff5b82 +palette = 10=#47d7a1 +palette = 11=#e8e562 +palette = 12=#5db4ee +palette = 13=#da6cda +palette = 14=#57e9eb +palette = 15=#ededed +background = 1d1a1e +foreground = efecec +cursor-color = c7c7c7 +selection-background = e1925c +selection-foreground = 1d1a1e diff --git a/bin/share/ghostty/themes/Konsolas b/bin/share/ghostty/themes/Konsolas new file mode 100644 index 0000000..e83c980 --- /dev/null +++ b/bin/share/ghostty/themes/Konsolas @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#aa1717 +palette = 2=#18b218 +palette = 3=#ebae1f +palette = 4=#2323a5 +palette = 5=#ad1edc +palette = 6=#42b0c8 +palette = 7=#c8c1c1 +palette = 8=#7b716e +palette = 9=#ff4141 +palette = 10=#5fff5f +palette = 11=#ffff55 +palette = 12=#4b4bff +palette = 13=#ff54ff +palette = 14=#69ffff +palette = 15=#ffffff +background = 060606 +foreground = c8c1c1 +cursor-color = c8c1c1 +selection-background = 060606 +selection-foreground = c8c1c1 diff --git a/bin/share/ghostty/themes/Lab Fox b/bin/share/ghostty/themes/Lab Fox new file mode 100644 index 0000000..48192a9 --- /dev/null +++ b/bin/share/ghostty/themes/Lab Fox @@ -0,0 +1,21 @@ +palette = 0=#2e2e2e +palette = 1=#fc6d26 +palette = 2=#3eb383 +palette = 3=#fca121 +palette = 4=#db3b21 +palette = 5=#380d75 +palette = 6=#6e49cb +palette = 7=#ffffff +palette = 8=#464646 +palette = 9=#ff6517 +palette = 10=#53eaa8 +palette = 11=#fca013 +palette = 12=#db501f +palette = 13=#441090 +palette = 14=#7d53e7 +palette = 15=#ffffff +background = 2e2e2e +foreground = ffffff +cursor-color = 7f7f7f +selection-background = cb392e +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Laser b/bin/share/ghostty/themes/Laser new file mode 100644 index 0000000..294dd9d --- /dev/null +++ b/bin/share/ghostty/themes/Laser @@ -0,0 +1,21 @@ +palette = 0=#626262 +palette = 1=#ff8373 +palette = 2=#b4fb73 +palette = 3=#09b4bd +palette = 4=#fed300 +palette = 5=#ff90fe +palette = 6=#d1d1fe +palette = 7=#f1f1f1 +palette = 8=#8f8f8f +palette = 9=#ffc4be +palette = 10=#d6fcba +palette = 11=#fffed5 +palette = 12=#f92883 +palette = 13=#ffb2fe +palette = 14=#e6e7fe +palette = 15=#ffffff +background = 030d18 +foreground = f106e3 +cursor-color = 00ff9c +selection-background = 2e206a +selection-foreground = f4f4f4 diff --git a/bin/share/ghostty/themes/Later This Evening b/bin/share/ghostty/themes/Later This Evening new file mode 100644 index 0000000..1c97a3d --- /dev/null +++ b/bin/share/ghostty/themes/Later This Evening @@ -0,0 +1,21 @@ +palette = 0=#2b2b2b +palette = 1=#d45a60 +palette = 2=#afba67 +palette = 3=#e5d289 +palette = 4=#a0bad6 +palette = 5=#c092d6 +palette = 6=#91bfb7 +palette = 7=#3c3d3d +palette = 8=#454747 +palette = 9=#d3232f +palette = 10=#aabb39 +palette = 11=#e5be39 +palette = 12=#6699d6 +palette = 13=#ab53d6 +palette = 14=#5fc0ae +palette = 15=#c1c2c2 +background = 222222 +foreground = 959595 +cursor-color = 424242 +selection-background = 424242 +selection-foreground = 959595 diff --git a/bin/share/ghostty/themes/Lavandula b/bin/share/ghostty/themes/Lavandula new file mode 100644 index 0000000..97a035f --- /dev/null +++ b/bin/share/ghostty/themes/Lavandula @@ -0,0 +1,21 @@ +palette = 0=#230046 +palette = 1=#7d1625 +palette = 2=#337e6f +palette = 3=#7f6f49 +palette = 4=#4f4a7f +palette = 5=#5a3f7f +palette = 6=#58777f +palette = 7=#736e7d +palette = 8=#372d46 +palette = 9=#e05167 +palette = 10=#52e0c4 +palette = 11=#e0c386 +palette = 12=#8e87e0 +palette = 13=#a776e0 +palette = 14=#9ad4e0 +palette = 15=#8c91fa +background = 050014 +foreground = 736e7d +cursor-color = 8c91fa +selection-background = 37323c +selection-foreground = 8c91fa diff --git a/bin/share/ghostty/themes/LiquidCarbon b/bin/share/ghostty/themes/LiquidCarbon new file mode 100644 index 0000000..daf949f --- /dev/null +++ b/bin/share/ghostty/themes/LiquidCarbon @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff3030 +palette = 2=#559a70 +palette = 3=#ccac00 +palette = 4=#0099cc +palette = 5=#cc69c8 +palette = 6=#7ac4cc +palette = 7=#bccccc +palette = 8=#000000 +palette = 9=#ff3030 +palette = 10=#559a70 +palette = 11=#ccac00 +palette = 12=#0099cc +palette = 13=#cc69c8 +palette = 14=#7ac4cc +palette = 15=#bccccc +background = 303030 +foreground = afc2c2 +cursor-color = ffffff +selection-background = 7dbeff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/LiquidCarbonTransparent b/bin/share/ghostty/themes/LiquidCarbonTransparent new file mode 100644 index 0000000..43ce1a1 --- /dev/null +++ b/bin/share/ghostty/themes/LiquidCarbonTransparent @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff3030 +palette = 2=#559a70 +palette = 3=#ccac00 +palette = 4=#0099cc +palette = 5=#cc69c8 +palette = 6=#7ac4cc +palette = 7=#bccccc +palette = 8=#000000 +palette = 9=#ff3030 +palette = 10=#559a70 +palette = 11=#ccac00 +palette = 12=#0099cc +palette = 13=#cc69c8 +palette = 14=#7ac4cc +palette = 15=#bccccc +background = 000000 +foreground = afc2c2 +cursor-color = ffffff +selection-background = 7dbeff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/LiquidCarbonTransparentInverse b/bin/share/ghostty/themes/LiquidCarbonTransparentInverse new file mode 100644 index 0000000..debe931 --- /dev/null +++ b/bin/share/ghostty/themes/LiquidCarbonTransparentInverse @@ -0,0 +1,21 @@ +palette = 0=#bccccd +palette = 1=#ff3030 +palette = 2=#559a70 +palette = 3=#ccac00 +palette = 4=#0099cc +palette = 5=#cc69c8 +palette = 6=#7ac4cc +palette = 7=#000000 +palette = 8=#ffffff +palette = 9=#ff3030 +palette = 10=#559a70 +palette = 11=#ccac00 +palette = 12=#0099cc +palette = 13=#cc69c8 +palette = 14=#7ac4cc +palette = 15=#000000 +background = 000000 +foreground = afc2c2 +cursor-color = ffffff +selection-background = 7dbeff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Man Page b/bin/share/ghostty/themes/Man Page new file mode 100644 index 0000000..0196489 --- /dev/null +++ b/bin/share/ghostty/themes/Man Page @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc0000 +palette = 2=#00a600 +palette = 3=#999900 +palette = 4=#0000b2 +palette = 5=#b200b2 +palette = 6=#00a6b2 +palette = 7=#cccccc +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#00d900 +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = fef49c +foreground = 000000 +cursor-color = 7f7f7f +selection-background = a4c9cd +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Mariana b/bin/share/ghostty/themes/Mariana new file mode 100644 index 0000000..c49c308 --- /dev/null +++ b/bin/share/ghostty/themes/Mariana @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ec5f66 +palette = 2=#99c794 +palette = 3=#f9ae58 +palette = 4=#6699cc +palette = 5=#c695c6 +palette = 6=#5fb4b4 +palette = 7=#f7f7f7 +palette = 8=#333333 +palette = 9=#f97b58 +palette = 10=#acd1a8 +palette = 11=#fac761 +palette = 12=#85add6 +palette = 13=#d8b6d8 +palette = 14=#82c4c4 +palette = 15=#ffffff +background = 343d46 +foreground = d8dee9 +cursor-color = fcbb6a +selection-background = 4e5a65 +selection-foreground = d8dee9 diff --git a/bin/share/ghostty/themes/Material b/bin/share/ghostty/themes/Material new file mode 100644 index 0000000..0fcc63a --- /dev/null +++ b/bin/share/ghostty/themes/Material @@ -0,0 +1,21 @@ +palette = 0=#212121 +palette = 1=#b7141f +palette = 2=#457b24 +palette = 3=#f6981e +palette = 4=#134eb2 +palette = 5=#560088 +palette = 6=#0e717c +palette = 7=#efefef +palette = 8=#424242 +palette = 9=#e83b3f +palette = 10=#7aba3a +palette = 11=#ffea2e +palette = 12=#54a4f3 +palette = 13=#aa4dbc +palette = 14=#26bbd1 +palette = 15=#d9d9d9 +background = eaeaea +foreground = 232322 +cursor-color = 16afca +selection-background = c2c2c2 +selection-foreground = 4e4e4e diff --git a/bin/share/ghostty/themes/MaterialDark b/bin/share/ghostty/themes/MaterialDark new file mode 100644 index 0000000..402fe32 --- /dev/null +++ b/bin/share/ghostty/themes/MaterialDark @@ -0,0 +1,21 @@ +palette = 0=#212121 +palette = 1=#b7141f +palette = 2=#457b24 +palette = 3=#f6981e +palette = 4=#134eb2 +palette = 5=#560088 +palette = 6=#0e717c +palette = 7=#efefef +palette = 8=#424242 +palette = 9=#e83b3f +palette = 10=#7aba3a +palette = 11=#ffea2e +palette = 12=#54a4f3 +palette = 13=#aa4dbc +palette = 14=#26bbd1 +palette = 15=#d9d9d9 +background = 232322 +foreground = e5e5e5 +cursor-color = 16afca +selection-background = dfdfdf +selection-foreground = 3d3d3d diff --git a/bin/share/ghostty/themes/MaterialDarker b/bin/share/ghostty/themes/MaterialDarker new file mode 100644 index 0000000..af49ce2 --- /dev/null +++ b/bin/share/ghostty/themes/MaterialDarker @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff5370 +palette = 2=#c3e88d +palette = 3=#ffcb6b +palette = 4=#82aaff +palette = 5=#c792ea +palette = 6=#89ddff +palette = 7=#ffffff +palette = 8=#545454 +palette = 9=#ff5370 +palette = 10=#c3e88d +palette = 11=#ffcb6b +palette = 12=#82aaff +palette = 13=#c792ea +palette = 14=#89ddff +palette = 15=#ffffff +background = 212121 +foreground = eeffff +cursor-color = ffffff +selection-background = eeffff +selection-foreground = 545454 diff --git a/bin/share/ghostty/themes/MaterialDesignColors b/bin/share/ghostty/themes/MaterialDesignColors new file mode 100644 index 0000000..7254f91 --- /dev/null +++ b/bin/share/ghostty/themes/MaterialDesignColors @@ -0,0 +1,21 @@ +palette = 0=#435b67 +palette = 1=#fc3841 +palette = 2=#5cf19e +palette = 3=#fed032 +palette = 4=#37b6ff +palette = 5=#fc226e +palette = 6=#59ffd1 +palette = 7=#ffffff +palette = 8=#a1b0b8 +palette = 9=#fc746d +palette = 10=#adf7be +palette = 11=#fee16c +palette = 12=#70cfff +palette = 13=#fc669b +palette = 14=#9affe6 +palette = 15=#ffffff +background = 1d262a +foreground = e7ebed +cursor-color = eaeaea +selection-background = 4e6a78 +selection-foreground = e7ebed diff --git a/bin/share/ghostty/themes/MaterialOcean b/bin/share/ghostty/themes/MaterialOcean new file mode 100644 index 0000000..55170be --- /dev/null +++ b/bin/share/ghostty/themes/MaterialOcean @@ -0,0 +1,21 @@ +palette = 0=#546e7a +palette = 1=#ff5370 +palette = 2=#c3e88d +palette = 3=#ffcb6b +palette = 4=#82aaff +palette = 5=#c792ea +palette = 6=#89ddff +palette = 7=#ffffff +palette = 8=#546e7a +palette = 9=#ff5370 +palette = 10=#c3e88d +palette = 11=#ffcb6b +palette = 12=#82aaff +palette = 13=#c792ea +palette = 14=#89ddff +palette = 15=#ffffff +background = 0f111a +foreground = 8f93a2 +cursor-color = ffcc00 +selection-background = 1f2233 +selection-foreground = 8f93a2 diff --git a/bin/share/ghostty/themes/Mathias b/bin/share/ghostty/themes/Mathias new file mode 100644 index 0000000..250cbe3 --- /dev/null +++ b/bin/share/ghostty/themes/Mathias @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#e52222 +palette = 2=#a6e32d +palette = 3=#fc951e +palette = 4=#c48dff +palette = 5=#fa2573 +palette = 6=#67d9f0 +palette = 7=#f2f2f2 +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 000000 +foreground = bbbbbb +cursor-color = bbbbbb +selection-background = 555555 +selection-foreground = f2f2f2 diff --git a/bin/share/ghostty/themes/Medallion b/bin/share/ghostty/themes/Medallion new file mode 100644 index 0000000..c417e2c --- /dev/null +++ b/bin/share/ghostty/themes/Medallion @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b64c00 +palette = 2=#7c8b16 +palette = 3=#d3bd26 +palette = 4=#616bb0 +palette = 5=#8c5a90 +palette = 6=#916c25 +palette = 7=#cac29a +palette = 8=#5e5219 +palette = 9=#ff9149 +palette = 10=#b2ca3b +palette = 11=#ffe54a +palette = 12=#acb8ff +palette = 13=#ffa0ff +palette = 14=#ffbc51 +palette = 15=#fed698 +background = 1d1908 +foreground = cac296 +cursor-color = d3ba30 +selection-background = 626dac +selection-foreground = cac29a diff --git a/bin/share/ghostty/themes/Mellifluous b/bin/share/ghostty/themes/Mellifluous new file mode 100644 index 0000000..fe22cf3 --- /dev/null +++ b/bin/share/ghostty/themes/Mellifluous @@ -0,0 +1,21 @@ +palette = 0=#1a1a1a +palette = 1=#d29393 +palette = 2=#b3b393 +palette = 3=#cbaa89 +palette = 4=#a8a1be +palette = 5=#b39fb0 +palette = 6=#c0af8c +palette = 7=#dadada +palette = 8=#5b5b5b +palette = 9=#c95954 +palette = 10=#828040 +palette = 11=#a6794c +palette = 12=#5a6599 +palette = 13=#9c6995 +palette = 14=#74a39e +palette = 15=#ffffff +background = 1a1a1a +foreground = dadada +cursor-color = bfad9e +selection-background = 2d2d2d +selection-foreground = c0af8c diff --git a/bin/share/ghostty/themes/Mirage b/bin/share/ghostty/themes/Mirage new file mode 100644 index 0000000..ffd6650 --- /dev/null +++ b/bin/share/ghostty/themes/Mirage @@ -0,0 +1,21 @@ +palette = 0=#011627 +palette = 1=#ff9999 +palette = 2=#85cc95 +palette = 3=#ffd700 +palette = 4=#7fb5ff +palette = 5=#ddb3ff +palette = 6=#21c7a8 +palette = 7=#ffffff +palette = 8=#575656 +palette = 9=#ff9999 +palette = 10=#85cc95 +palette = 11=#ffd700 +palette = 12=#7fb5ff +palette = 13=#ddb3ff +palette = 14=#85cc95 +palette = 15=#ffffff +background = 1b2738 +foreground = a6b2c0 +cursor-color = ddb3ff +selection-background = 273951 +selection-foreground = d3dbe5 diff --git a/bin/share/ghostty/themes/Misterioso b/bin/share/ghostty/themes/Misterioso new file mode 100644 index 0000000..6021d8a --- /dev/null +++ b/bin/share/ghostty/themes/Misterioso @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff4242 +palette = 2=#74af68 +palette = 3=#ffad29 +palette = 4=#338f86 +palette = 5=#9414e6 +palette = 6=#23d7d7 +palette = 7=#e1e1e0 +palette = 8=#555555 +palette = 9=#ff3242 +palette = 10=#74cd68 +palette = 11=#ffb929 +palette = 12=#23d7d7 +palette = 13=#ff37ff +palette = 14=#00ede1 +palette = 15=#ffffff +background = 2d3743 +foreground = e1e1e0 +cursor-color = 000000 +selection-background = 2d37ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Molokai b/bin/share/ghostty/themes/Molokai new file mode 100644 index 0000000..a24720b --- /dev/null +++ b/bin/share/ghostty/themes/Molokai @@ -0,0 +1,21 @@ +palette = 0=#121212 +palette = 1=#fa2573 +palette = 2=#98e123 +palette = 3=#dfd460 +palette = 4=#1080d0 +palette = 5=#8700ff +palette = 6=#43a8d0 +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#f6669d +palette = 10=#b1e05f +palette = 11=#fff26d +palette = 12=#00afff +palette = 13=#af87ff +palette = 14=#51ceff +palette = 15=#ffffff +background = 121212 +foreground = bbbbbb +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/MonaLisa b/bin/share/ghostty/themes/MonaLisa new file mode 100644 index 0000000..fd4e6d8 --- /dev/null +++ b/bin/share/ghostty/themes/MonaLisa @@ -0,0 +1,21 @@ +palette = 0=#351b0e +palette = 1=#9b291c +palette = 2=#636232 +palette = 3=#c36e28 +palette = 4=#515c5d +palette = 5=#9b1d29 +palette = 6=#588056 +palette = 7=#f7d75c +palette = 8=#874228 +palette = 9=#ff4331 +palette = 10=#b4b264 +palette = 11=#ff9566 +palette = 12=#9eb2b4 +palette = 13=#ff5b6a +palette = 14=#8acd8f +palette = 15=#ffe598 +background = 120b0d +foreground = f7d66a +cursor-color = c46c32 +selection-background = f7d66a +selection-foreground = 120b0d diff --git a/bin/share/ghostty/themes/Monokai Remastered b/bin/share/ghostty/themes/Monokai Remastered new file mode 100644 index 0000000..060fe4c --- /dev/null +++ b/bin/share/ghostty/themes/Monokai Remastered @@ -0,0 +1,21 @@ +palette = 0=#1a1a1a +palette = 1=#f4005f +palette = 2=#98e024 +palette = 3=#fd971f +palette = 4=#9d65ff +palette = 5=#f4005f +palette = 6=#58d1eb +palette = 7=#c4c5b5 +palette = 8=#625e4c +palette = 9=#f4005f +palette = 10=#98e024 +palette = 11=#e0d561 +palette = 12=#9d65ff +palette = 13=#f4005f +palette = 14=#58d1eb +palette = 15=#f6f6ef +background = 0c0c0c +foreground = d9d9d9 +cursor-color = fc971f +selection-background = 343434 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Monokai Soda b/bin/share/ghostty/themes/Monokai Soda new file mode 100644 index 0000000..822662b --- /dev/null +++ b/bin/share/ghostty/themes/Monokai Soda @@ -0,0 +1,21 @@ +palette = 0=#1a1a1a +palette = 1=#f4005f +palette = 2=#98e024 +palette = 3=#fa8419 +palette = 4=#9d65ff +palette = 5=#f4005f +palette = 6=#58d1eb +palette = 7=#c4c5b5 +palette = 8=#625e4c +palette = 9=#f4005f +palette = 10=#98e024 +palette = 11=#e0d561 +palette = 12=#9d65ff +palette = 13=#f4005f +palette = 14=#58d1eb +palette = 15=#f6f6ef +background = 1a1a1a +foreground = c4c5b5 +cursor-color = f6f7ec +selection-background = 343434 +selection-foreground = c4c5b5 diff --git a/bin/share/ghostty/themes/Monokai Vivid b/bin/share/ghostty/themes/Monokai Vivid new file mode 100644 index 0000000..bc3b1ce --- /dev/null +++ b/bin/share/ghostty/themes/Monokai Vivid @@ -0,0 +1,21 @@ +palette = 0=#121212 +palette = 1=#fa2934 +palette = 2=#98e123 +palette = 3=#fff30a +palette = 4=#0443ff +palette = 5=#f800f8 +palette = 6=#01b6ed +palette = 7=#ffffff +palette = 8=#838383 +palette = 9=#f6669d +palette = 10=#b1e05f +palette = 11=#fff26d +palette = 12=#0443ff +palette = 13=#f200f6 +palette = 14=#51ceff +palette = 15=#ffffff +background = 121212 +foreground = f9f9f9 +cursor-color = fb0007 +selection-background = ffffff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/N0tch2k b/bin/share/ghostty/themes/N0tch2k new file mode 100644 index 0000000..d9ba512 --- /dev/null +++ b/bin/share/ghostty/themes/N0tch2k @@ -0,0 +1,21 @@ +palette = 0=#383838 +palette = 1=#a95551 +palette = 2=#666666 +palette = 3=#a98051 +palette = 4=#657d3e +palette = 5=#767676 +palette = 6=#c9c9c9 +palette = 7=#d0b8a3 +palette = 8=#474747 +palette = 9=#a97775 +palette = 10=#8c8c8c +palette = 11=#a99175 +palette = 12=#98bd5e +palette = 13=#a3a3a3 +palette = 14=#dcdcdc +palette = 15=#d8c8bb +background = 222222 +foreground = a0a0a0 +cursor-color = aa9175 +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Neon b/bin/share/ghostty/themes/Neon new file mode 100644 index 0000000..5f36069 --- /dev/null +++ b/bin/share/ghostty/themes/Neon @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff3045 +palette = 2=#5ffa74 +palette = 3=#fffc7e +palette = 4=#0208cb +palette = 5=#f924e7 +palette = 6=#00fffc +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff5a5a +palette = 10=#75ff88 +palette = 11=#fffd96 +palette = 12=#3c40cb +palette = 13=#f15be5 +palette = 14=#88fffe +palette = 15=#ffffff +background = 14161a +foreground = 00fffc +cursor-color = c7c7c7 +selection-background = 0013ff +selection-foreground = 08d2cf diff --git a/bin/share/ghostty/themes/Neopolitan b/bin/share/ghostty/themes/Neopolitan new file mode 100644 index 0000000..76a19d5 --- /dev/null +++ b/bin/share/ghostty/themes/Neopolitan @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#800000 +palette = 2=#61ce3c +palette = 3=#fbde2d +palette = 4=#253b76 +palette = 5=#ff0080 +palette = 6=#8da6ce +palette = 7=#f8f8f8 +palette = 8=#000000 +palette = 9=#800000 +palette = 10=#61ce3c +palette = 11=#fbde2d +palette = 12=#253b76 +palette = 13=#ff0080 +palette = 14=#8da6ce +palette = 15=#f8f8f8 +background = 271f19 +foreground = ffffff +cursor-color = ffffff +selection-background = 253b76 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Neutron b/bin/share/ghostty/themes/Neutron new file mode 100644 index 0000000..2a288f5 --- /dev/null +++ b/bin/share/ghostty/themes/Neutron @@ -0,0 +1,21 @@ +palette = 0=#23252b +palette = 1=#b54036 +palette = 2=#5ab977 +palette = 3=#deb566 +palette = 4=#6a7c93 +palette = 5=#a4799d +palette = 6=#3f94a8 +palette = 7=#e6e8ef +palette = 8=#23252b +palette = 9=#b54036 +palette = 10=#5ab977 +palette = 11=#deb566 +palette = 12=#6a7c93 +palette = 13=#a4799d +palette = 14=#3f94a8 +palette = 15=#ebedf2 +background = 1c1e22 +foreground = e6e8ef +cursor-color = f6f7ec +selection-background = 2f363e +selection-foreground = 7d8fa4 diff --git a/bin/share/ghostty/themes/Night Owlish Light b/bin/share/ghostty/themes/Night Owlish Light new file mode 100644 index 0000000..f474115 --- /dev/null +++ b/bin/share/ghostty/themes/Night Owlish Light @@ -0,0 +1,21 @@ +palette = 0=#011627 +palette = 1=#d3423e +palette = 2=#2aa298 +palette = 3=#daaa01 +palette = 4=#4876d6 +palette = 5=#403f53 +palette = 6=#08916a +palette = 7=#7a8181 +palette = 8=#7a8181 +palette = 9=#f76e6e +palette = 10=#49d0c5 +palette = 11=#dac26b +palette = 12=#5ca7e4 +palette = 13=#697098 +palette = 14=#00c990 +palette = 15=#989fb1 +background = ffffff +foreground = 403f53 +cursor-color = 403f53 +selection-background = f2f2f2 +selection-foreground = 403f53 diff --git a/bin/share/ghostty/themes/NightLion v1 b/bin/share/ghostty/themes/NightLion v1 new file mode 100644 index 0000000..212323e --- /dev/null +++ b/bin/share/ghostty/themes/NightLion v1 @@ -0,0 +1,21 @@ +palette = 0=#4c4c4c +palette = 1=#bb0000 +palette = 2=#5fde8f +palette = 3=#f3f167 +palette = 4=#276bd8 +palette = 5=#bb00bb +palette = 6=#00dadf +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 000000 +foreground = bbbbbb +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/NightLion v2 b/bin/share/ghostty/themes/NightLion v2 new file mode 100644 index 0000000..13f7f27 --- /dev/null +++ b/bin/share/ghostty/themes/NightLion v2 @@ -0,0 +1,21 @@ +palette = 0=#4c4c4c +palette = 1=#bb0000 +palette = 2=#04f623 +palette = 3=#f3f167 +palette = 4=#64d0f0 +palette = 5=#ce6fdb +palette = 6=#00dadf +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#7df71d +palette = 11=#ffff55 +palette = 12=#62cbe8 +palette = 13=#ff9bf5 +palette = 14=#00ccd8 +palette = 15=#ffffff +background = 171717 +foreground = bbbbbb +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Nocturnal Winter b/bin/share/ghostty/themes/Nocturnal Winter new file mode 100644 index 0000000..9480835 --- /dev/null +++ b/bin/share/ghostty/themes/Nocturnal Winter @@ -0,0 +1,21 @@ +palette = 0=#4d4d4d +palette = 1=#f12d52 +palette = 2=#09cd7e +palette = 3=#f5f17a +palette = 4=#3182e0 +palette = 5=#ff2b6d +palette = 6=#09c87a +palette = 7=#fcfcfc +palette = 8=#808080 +palette = 9=#f16d86 +palette = 10=#0ae78d +palette = 11=#fffc67 +palette = 12=#6096ff +palette = 13=#ff78a2 +palette = 14=#0ae78d +palette = 15=#ffffff +background = 0d0d17 +foreground = e6e5e5 +cursor-color = e6e5e5 +selection-background = adbdd0 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Novel b/bin/share/ghostty/themes/Novel new file mode 100644 index 0000000..2f95c94 --- /dev/null +++ b/bin/share/ghostty/themes/Novel @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc0000 +palette = 2=#009600 +palette = 3=#d06b00 +palette = 4=#0000cc +palette = 5=#cc00cc +palette = 6=#0087cc +palette = 7=#cccccc +palette = 8=#808080 +palette = 9=#cc0000 +palette = 10=#009600 +palette = 11=#d06b00 +palette = 12=#0000cc +palette = 13=#cc00cc +palette = 14=#0087cc +palette = 15=#ffffff +background = dfdbc3 +foreground = 3b2322 +cursor-color = 73635a +selection-background = a4a390 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/NvimDark b/bin/share/ghostty/themes/NvimDark new file mode 100644 index 0000000..ac72a2d --- /dev/null +++ b/bin/share/ghostty/themes/NvimDark @@ -0,0 +1,21 @@ +palette = 0=#07080d +palette = 1=#ffc0b9 +palette = 2=#b3f6c0 +palette = 3=#fce094 +palette = 4=#a6dbff +palette = 5=#ffcaff +palette = 6=#8cf8f7 +palette = 7=#eef1f8 +palette = 8=#4f5258 +palette = 9=#ffc0b9 +palette = 10=#b3f6c0 +palette = 11=#fce094 +palette = 12=#a6dbff +palette = 13=#ffcaff +palette = 14=#8cf8f7 +palette = 15=#eef1f8 +background = 14161b +foreground = e0e2ea +cursor-color = 9b9ea4 +selection-background = 4f5258 +selection-foreground = e0e2ea diff --git a/bin/share/ghostty/themes/NvimLight b/bin/share/ghostty/themes/NvimLight new file mode 100644 index 0000000..f571091 --- /dev/null +++ b/bin/share/ghostty/themes/NvimLight @@ -0,0 +1,21 @@ +palette = 0=#07080d +palette = 1=#590008 +palette = 2=#005523 +palette = 3=#6b5300 +palette = 4=#004c73 +palette = 5=#470045 +palette = 6=#007373 +palette = 7=#eef1f8 +palette = 8=#4f5258 +palette = 9=#590008 +palette = 10=#005523 +palette = 11=#6b5300 +palette = 12=#004c73 +palette = 13=#470045 +palette = 14=#007373 +palette = 15=#eef1f8 +background = e0e2ea +foreground = 14161b +cursor-color = 9b9ea4 +selection-background = 9b9ea4 +selection-foreground = 14161b diff --git a/bin/share/ghostty/themes/Obsidian b/bin/share/ghostty/themes/Obsidian new file mode 100644 index 0000000..59a7956 --- /dev/null +++ b/bin/share/ghostty/themes/Obsidian @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#a60001 +palette = 2=#00bb00 +palette = 3=#fecd22 +palette = 4=#3a9bdb +palette = 5=#bb00bb +palette = 6=#00bbbb +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#ff0003 +palette = 10=#93c863 +palette = 11=#fef874 +palette = 12=#a1d7ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 283033 +foreground = cdcdcd +cursor-color = c0cad0 +selection-background = 3e4c4f +selection-foreground = dfe1e2 diff --git a/bin/share/ghostty/themes/Ocean b/bin/share/ghostty/themes/Ocean new file mode 100644 index 0000000..13038c0 --- /dev/null +++ b/bin/share/ghostty/themes/Ocean @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#990000 +palette = 2=#00a600 +palette = 3=#999900 +palette = 4=#0000b2 +palette = 5=#b200b2 +palette = 6=#00a6b2 +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#00d900 +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = 224fbc +foreground = ffffff +cursor-color = 7f7f7f +selection-background = 216dff +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Oceanic-Next b/bin/share/ghostty/themes/Oceanic-Next new file mode 100644 index 0000000..b1e1b97 --- /dev/null +++ b/bin/share/ghostty/themes/Oceanic-Next @@ -0,0 +1,21 @@ +palette = 0=#1b2b34 +palette = 1=#db686b +palette = 2=#a2c699 +palette = 3=#f2ca73 +palette = 4=#7198c8 +palette = 5=#bd96c2 +palette = 6=#74b1b2 +palette = 7=#ffffff +palette = 8=#68737d +palette = 9=#db686b +palette = 10=#a2c699 +palette = 11=#f2ca73 +palette = 12=#7198c8 +palette = 13=#bd96c2 +palette = 14=#74b1b2 +palette = 15=#ffffff +background = 1b2b34 +foreground = c1c5cd +cursor-color = c1c5cd +selection-background = 515b65 +selection-foreground = c1c5cd diff --git a/bin/share/ghostty/themes/OceanicMaterial b/bin/share/ghostty/themes/OceanicMaterial new file mode 100644 index 0000000..b3c6dbb --- /dev/null +++ b/bin/share/ghostty/themes/OceanicMaterial @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ee2b2a +palette = 2=#40a33f +palette = 3=#ffea2e +palette = 4=#1e80f0 +palette = 5=#8800a0 +palette = 6=#16afca +palette = 7=#a4a4a4 +palette = 8=#777777 +palette = 9=#dc5c60 +palette = 10=#70be71 +palette = 11=#fff163 +palette = 12=#54a4f3 +palette = 13=#aa4dbc +palette = 14=#42c7da +palette = 15=#ffffff +background = 1c262b +foreground = c2c8d7 +cursor-color = b3b8c3 +selection-background = 6dc2b8 +selection-foreground = c2c8d7 diff --git a/bin/share/ghostty/themes/Ollie b/bin/share/ghostty/themes/Ollie new file mode 100644 index 0000000..0200e55 --- /dev/null +++ b/bin/share/ghostty/themes/Ollie @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ac2e31 +palette = 2=#31ac61 +palette = 3=#ac4300 +palette = 4=#2d57ac +palette = 5=#b08528 +palette = 6=#1fa6ac +palette = 7=#8a8eac +palette = 8=#5b3725 +palette = 9=#ff3d48 +palette = 10=#3bff99 +palette = 11=#ff5e1e +palette = 12=#4488ff +palette = 13=#ffc21d +palette = 14=#1ffaff +palette = 15=#5b6ea7 +background = 222125 +foreground = 8a8dae +cursor-color = 5b6ea7 +selection-background = 1e3a66 +selection-foreground = 8a8eac diff --git a/bin/share/ghostty/themes/OneHalfDark b/bin/share/ghostty/themes/OneHalfDark new file mode 100644 index 0000000..e25302f --- /dev/null +++ b/bin/share/ghostty/themes/OneHalfDark @@ -0,0 +1,21 @@ +palette = 0=#282c34 +palette = 1=#e06c75 +palette = 2=#98c379 +palette = 3=#e5c07b +palette = 4=#61afef +palette = 5=#c678dd +palette = 6=#56b6c2 +palette = 7=#dcdfe4 +palette = 8=#282c34 +palette = 9=#e06c75 +palette = 10=#98c379 +palette = 11=#e5c07b +palette = 12=#61afef +palette = 13=#c678dd +palette = 14=#56b6c2 +palette = 15=#dcdfe4 +background = 282c34 +foreground = dcdfe4 +cursor-color = a3b3cc +selection-background = 474e5d +selection-foreground = dcdfe4 diff --git a/bin/share/ghostty/themes/OneHalfLight b/bin/share/ghostty/themes/OneHalfLight new file mode 100644 index 0000000..441198b --- /dev/null +++ b/bin/share/ghostty/themes/OneHalfLight @@ -0,0 +1,21 @@ +palette = 0=#383a42 +palette = 1=#e45649 +palette = 2=#50a14f +palette = 3=#c18401 +palette = 4=#0184bc +palette = 5=#a626a4 +palette = 6=#0997b3 +palette = 7=#fafafa +palette = 8=#4f525e +palette = 9=#e06c75 +palette = 10=#98c379 +palette = 11=#e5c07b +palette = 12=#61afef +palette = 13=#c678dd +palette = 14=#56b6c2 +palette = 15=#ffffff +background = fafafa +foreground = 383a42 +cursor-color = bfceff +selection-background = bfceff +selection-foreground = 383a42 diff --git a/bin/share/ghostty/themes/Operator Mono Dark b/bin/share/ghostty/themes/Operator Mono Dark new file mode 100644 index 0000000..32e9339 --- /dev/null +++ b/bin/share/ghostty/themes/Operator Mono Dark @@ -0,0 +1,21 @@ +palette = 0=#5a5a5a +palette = 1=#ca372d +palette = 2=#4d7b3a +palette = 3=#d4d697 +palette = 4=#4387cf +palette = 5=#b86cb4 +palette = 6=#72d5c6 +palette = 7=#ced4cd +palette = 8=#9a9b99 +palette = 9=#c37d62 +palette = 10=#83d0a2 +palette = 11=#fdfdc5 +palette = 12=#89d3f6 +palette = 13=#ff2c7a +palette = 14=#82eada +palette = 15=#fdfdf6 +background = 191919 +foreground = c3cac2 +cursor-color = fcdc08 +selection-background = 19273b +selection-foreground = dde5dc diff --git a/bin/share/ghostty/themes/Overnight Slumber b/bin/share/ghostty/themes/Overnight Slumber new file mode 100644 index 0000000..4b378c9 --- /dev/null +++ b/bin/share/ghostty/themes/Overnight Slumber @@ -0,0 +1,21 @@ +palette = 0=#0a1222 +palette = 1=#ffa7c4 +palette = 2=#85cc95 +palette = 3=#ffcb8b +palette = 4=#8dabe1 +palette = 5=#c792eb +palette = 6=#78ccf0 +palette = 7=#ffffff +palette = 8=#575656 +palette = 9=#ffa7c4 +palette = 10=#85cc95 +palette = 11=#ffcb8b +palette = 12=#8dabe1 +palette = 13=#c792eb +palette = 14=#ffa7c4 +palette = 15=#ffffff +background = 0e1729 +foreground = ced2d6 +cursor-color = ffa7c4 +selection-background = 1f2b41 +selection-foreground = ced2d6 diff --git a/bin/share/ghostty/themes/Oxocarbon b/bin/share/ghostty/themes/Oxocarbon new file mode 100644 index 0000000..a61fc08 --- /dev/null +++ b/bin/share/ghostty/themes/Oxocarbon @@ -0,0 +1,21 @@ +palette = 0=#161616 +palette = 1=#3ddbd9 +palette = 2=#33b1ff +palette = 3=#ee5396 +palette = 4=#42be65 +palette = 5=#be95ff +palette = 6=#ff7eb6 +palette = 7=#f2f4f8 +palette = 8=#585858 +palette = 9=#3ddbd9 +palette = 10=#33b1ff +palette = 11=#ee5396 +palette = 12=#42be65 +palette = 13=#be95ff +palette = 14=#ff7eb6 +palette = 15=#f2f4f8 +background = 161616 +foreground = f2f4f8 +cursor-color = ffffff +selection-background = 393939 +selection-foreground = 161616 diff --git a/bin/share/ghostty/themes/PaleNightHC b/bin/share/ghostty/themes/PaleNightHC new file mode 100644 index 0000000..8f93531 --- /dev/null +++ b/bin/share/ghostty/themes/PaleNightHC @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f07178 +palette = 2=#c3e88d +palette = 3=#ffcb6b +palette = 4=#82aaff +palette = 5=#c792ea +palette = 6=#89ddff +palette = 7=#ffffff +palette = 8=#666666 +palette = 9=#f6a9ae +palette = 10=#dbf1ba +palette = 11=#ffdfa6 +palette = 12=#b4ccff +palette = 13=#ddbdf2 +palette = 14=#b8eaff +palette = 15=#999999 +background = 3e4251 +foreground = cccccc +cursor-color = ffcb6b +selection-background = 717cb4 +selection-foreground = 80cbc4 diff --git a/bin/share/ghostty/themes/Pandora b/bin/share/ghostty/themes/Pandora new file mode 100644 index 0000000..e9844e4 --- /dev/null +++ b/bin/share/ghostty/themes/Pandora @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff4242 +palette = 2=#74af68 +palette = 3=#ffad29 +palette = 4=#338f86 +palette = 5=#9414e6 +palette = 6=#23d7d7 +palette = 7=#e2e2e2 +palette = 8=#3f5648 +palette = 9=#ff3242 +palette = 10=#74cd68 +palette = 11=#ffb929 +palette = 12=#23d7d7 +palette = 13=#ff37ff +palette = 14=#00ede1 +palette = 15=#ffffff +background = 141e43 +foreground = e1e1e1 +cursor-color = 43d58e +selection-background = 2d37ff +selection-foreground = 82e0ff diff --git a/bin/share/ghostty/themes/Paraiso Dark b/bin/share/ghostty/themes/Paraiso Dark new file mode 100644 index 0000000..9c7ae85 --- /dev/null +++ b/bin/share/ghostty/themes/Paraiso Dark @@ -0,0 +1,21 @@ +palette = 0=#2f1e2e +palette = 1=#ef6155 +palette = 2=#48b685 +palette = 3=#fec418 +palette = 4=#06b6ef +palette = 5=#815ba4 +palette = 6=#5bc4bf +palette = 7=#a39e9b +palette = 8=#776e71 +palette = 9=#ef6155 +palette = 10=#48b685 +palette = 11=#fec418 +palette = 12=#06b6ef +palette = 13=#815ba4 +palette = 14=#5bc4bf +palette = 15=#e7e9db +background = 2f1e2e +foreground = a39e9b +cursor-color = a39e9b +selection-background = 4f424c +selection-foreground = a39e9b diff --git a/bin/share/ghostty/themes/PaulMillr b/bin/share/ghostty/themes/PaulMillr new file mode 100644 index 0000000..b475997 --- /dev/null +++ b/bin/share/ghostty/themes/PaulMillr @@ -0,0 +1,21 @@ +palette = 0=#2a2a2a +palette = 1=#ff0000 +palette = 2=#79ff0f +palette = 3=#e7bf00 +palette = 4=#396bd7 +palette = 5=#b449be +palette = 6=#66ccff +palette = 7=#bbbbbb +palette = 8=#666666 +palette = 9=#ff0080 +palette = 10=#66ff66 +palette = 11=#f3d64e +palette = 12=#709aed +palette = 13=#db67e6 +palette = 14=#7adff2 +palette = 15=#ffffff +background = 000000 +foreground = f2f2f2 +cursor-color = 4d4d4d +selection-background = 414141 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/PencilDark b/bin/share/ghostty/themes/PencilDark new file mode 100644 index 0000000..85f5cb5 --- /dev/null +++ b/bin/share/ghostty/themes/PencilDark @@ -0,0 +1,21 @@ +palette = 0=#212121 +palette = 1=#c30771 +palette = 2=#10a778 +palette = 3=#a89c14 +palette = 4=#008ec4 +palette = 5=#523c79 +palette = 6=#20a5ba +palette = 7=#d9d9d9 +palette = 8=#424242 +palette = 9=#fb007a +palette = 10=#5fd7af +palette = 11=#f3e430 +palette = 12=#20bbfc +palette = 13=#6855de +palette = 14=#4fb8cc +palette = 15=#f1f1f1 +background = 212121 +foreground = f1f1f1 +cursor-color = 20bbfc +selection-background = b6d6fd +selection-foreground = f1f1f1 diff --git a/bin/share/ghostty/themes/PencilLight b/bin/share/ghostty/themes/PencilLight new file mode 100644 index 0000000..63caa66 --- /dev/null +++ b/bin/share/ghostty/themes/PencilLight @@ -0,0 +1,21 @@ +palette = 0=#212121 +palette = 1=#c30771 +palette = 2=#10a778 +palette = 3=#a89c14 +palette = 4=#008ec4 +palette = 5=#523c79 +palette = 6=#20a5ba +palette = 7=#d9d9d9 +palette = 8=#424242 +palette = 9=#fb007a +palette = 10=#5fd7af +palette = 11=#f3e430 +palette = 12=#20bbfc +palette = 13=#6855de +palette = 14=#4fb8cc +palette = 15=#f1f1f1 +background = f1f1f1 +foreground = 424242 +cursor-color = 20bbfc +selection-background = b6d6fd +selection-foreground = 424242 diff --git a/bin/share/ghostty/themes/Peppermint b/bin/share/ghostty/themes/Peppermint new file mode 100644 index 0000000..0cd7056 --- /dev/null +++ b/bin/share/ghostty/themes/Peppermint @@ -0,0 +1,21 @@ +palette = 0=#353535 +palette = 1=#e74669 +palette = 2=#89d287 +palette = 3=#dab853 +palette = 4=#449fd0 +palette = 5=#da62dc +palette = 6=#65aaaf +palette = 7=#b4b4b4 +palette = 8=#535353 +palette = 9=#e4859b +palette = 10=#a3cca2 +palette = 11=#e1e487 +palette = 12=#6fbce2 +palette = 13=#e586e7 +palette = 14=#96dcdb +palette = 15=#dfdfdf +background = 000000 +foreground = c8c8c8 +cursor-color = bbbbbb +selection-background = e6e6e6 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Piatto Light b/bin/share/ghostty/themes/Piatto Light new file mode 100644 index 0000000..af64543 --- /dev/null +++ b/bin/share/ghostty/themes/Piatto Light @@ -0,0 +1,21 @@ +palette = 0=#414141 +palette = 1=#b23771 +palette = 2=#66781e +palette = 3=#cd6f34 +palette = 4=#3c5ea8 +palette = 5=#a454b2 +palette = 6=#66781e +palette = 7=#ffffff +palette = 8=#3f3f3f +palette = 9=#db3365 +palette = 10=#829429 +palette = 11=#cd6f34 +palette = 12=#3c5ea8 +palette = 13=#a454b2 +palette = 14=#829429 +palette = 15=#f2f2f2 +background = ffffff +foreground = 414141 +cursor-color = 5e77c8 +selection-background = 706b4e +selection-foreground = acbcdc diff --git a/bin/share/ghostty/themes/Pnevma b/bin/share/ghostty/themes/Pnevma new file mode 100644 index 0000000..5456ab7 --- /dev/null +++ b/bin/share/ghostty/themes/Pnevma @@ -0,0 +1,21 @@ +palette = 0=#2f2e2d +palette = 1=#a36666 +palette = 2=#90a57d +palette = 3=#d7af87 +palette = 4=#7fa5bd +palette = 5=#c79ec4 +palette = 6=#8adbb4 +palette = 7=#d0d0d0 +palette = 8=#4a4845 +palette = 9=#d78787 +palette = 10=#afbea2 +palette = 11=#e4c9af +palette = 12=#a1bdce +palette = 13=#d7beda +palette = 14=#b1e7dd +palette = 15=#efefef +background = 1c1c1c +foreground = d0d0d0 +cursor-color = e4c9af +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Popping and Locking b/bin/share/ghostty/themes/Popping and Locking new file mode 100644 index 0000000..bdc5899 --- /dev/null +++ b/bin/share/ghostty/themes/Popping and Locking @@ -0,0 +1,21 @@ +palette = 0=#1d2021 +palette = 1=#cc241d +palette = 2=#98971a +palette = 3=#d79921 +palette = 4=#458588 +palette = 5=#b16286 +palette = 6=#689d6a +palette = 7=#a89984 +palette = 8=#928374 +palette = 9=#f42c3e +palette = 10=#b8bb26 +palette = 11=#fabd2f +palette = 12=#99c6ca +palette = 13=#d3869b +palette = 14=#7ec16e +palette = 15=#ebdbb2 +background = 181921 +foreground = ebdbb2 +cursor-color = c7c7c7 +selection-background = ebdbb2 +selection-foreground = 928374 diff --git a/bin/share/ghostty/themes/Pro b/bin/share/ghostty/themes/Pro new file mode 100644 index 0000000..618be4c --- /dev/null +++ b/bin/share/ghostty/themes/Pro @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#990000 +palette = 2=#00a600 +palette = 3=#999900 +palette = 4=#2009db +palette = 5=#b200b2 +palette = 6=#00a6b2 +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#00d900 +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = 000000 +foreground = f2f2f2 +cursor-color = 4d4d4d +selection-background = 414141 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Pro Light b/bin/share/ghostty/themes/Pro Light new file mode 100644 index 0000000..f5a81c3 --- /dev/null +++ b/bin/share/ghostty/themes/Pro Light @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#e5492b +palette = 2=#50d148 +palette = 3=#c6c440 +palette = 4=#3b75ff +palette = 5=#ed66e8 +palette = 6=#4ed2de +palette = 7=#dcdcdc +palette = 8=#9f9f9f +palette = 9=#ff6640 +palette = 10=#61ef57 +palette = 11=#f2f156 +palette = 12=#0082ff +palette = 13=#ff7eff +palette = 14=#61f7f8 +palette = 15=#f2f2f2 +background = ffffff +foreground = 191919 +cursor-color = 4d4d4d +selection-background = c1ddff +selection-foreground = 191919 diff --git a/bin/share/ghostty/themes/Purple Rain b/bin/share/ghostty/themes/Purple Rain new file mode 100644 index 0000000..a0a3d0b --- /dev/null +++ b/bin/share/ghostty/themes/Purple Rain @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff260e +palette = 2=#9be205 +palette = 3=#ffc400 +palette = 4=#00a2fa +palette = 5=#815bb5 +palette = 6=#00deef +palette = 7=#ffffff +palette = 8=#565656 +palette = 9=#ff4250 +palette = 10=#b8e36e +palette = 11=#ffd852 +palette = 12=#00a6ff +palette = 13=#ac7bf0 +palette = 14=#74fdf3 +palette = 15=#ffffff +background = 21084a +foreground = fffbf6 +cursor-color = ff271d +selection-background = 287691 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Rapture b/bin/share/ghostty/themes/Rapture new file mode 100644 index 0000000..eb7df75 --- /dev/null +++ b/bin/share/ghostty/themes/Rapture @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fc644d +palette = 2=#7afde1 +palette = 3=#fff09b +palette = 4=#6c9bf5 +palette = 5=#ff4fa1 +palette = 6=#64e0ff +palette = 7=#c0c9e5 +palette = 8=#304b66 +palette = 9=#fc644d +palette = 10=#7afde1 +palette = 11=#fff09b +palette = 12=#6c9bf5 +palette = 13=#ff4fa1 +palette = 14=#64e0ff +palette = 15=#ffffff +background = 111e2a +foreground = c0c9e5 +cursor-color = ffffff +selection-background = 304b66 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Raycast_Dark b/bin/share/ghostty/themes/Raycast_Dark new file mode 100644 index 0000000..65aa8e1 --- /dev/null +++ b/bin/share/ghostty/themes/Raycast_Dark @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff5360 +palette = 2=#59d499 +palette = 3=#ffc531 +palette = 4=#56c2ff +palette = 5=#cf2f98 +palette = 6=#52eee5 +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#ff6363 +palette = 10=#59d499 +palette = 11=#ffc531 +palette = 12=#56c2ff +palette = 13=#cf2f98 +palette = 14=#52eee5 +palette = 15=#ffffff +background = 1a1a1a +foreground = ffffff +cursor-color = cccccc +selection-background = 333333 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Raycast_Light b/bin/share/ghostty/themes/Raycast_Light new file mode 100644 index 0000000..a634a71 --- /dev/null +++ b/bin/share/ghostty/themes/Raycast_Light @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b12424 +palette = 2=#006b4f +palette = 3=#f8a300 +palette = 4=#138af2 +palette = 5=#9a1b6e +palette = 6=#3eb8bf +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#b12424 +palette = 10=#006b4f +palette = 11=#f8a300 +palette = 12=#138af2 +palette = 13=#9a1b6e +palette = 14=#3eb8bf +palette = 15=#ffffff +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = e5e5e5 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Red Alert b/bin/share/ghostty/themes/Red Alert new file mode 100644 index 0000000..e0dfc23 --- /dev/null +++ b/bin/share/ghostty/themes/Red Alert @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d62e4e +palette = 2=#71be6b +palette = 3=#beb86b +palette = 4=#489bee +palette = 5=#e979d7 +palette = 6=#6bbeb8 +palette = 7=#d6d6d6 +palette = 8=#262626 +palette = 9=#e02553 +palette = 10=#aff08c +palette = 11=#dfddb7 +palette = 12=#65aaf1 +palette = 13=#ddb7df +palette = 14=#b7dfdd +palette = 15=#ffffff +background = 762423 +foreground = ffffff +cursor-color = ffffff +selection-background = 073642 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Red Planet b/bin/share/ghostty/themes/Red Planet new file mode 100644 index 0000000..515b645 --- /dev/null +++ b/bin/share/ghostty/themes/Red Planet @@ -0,0 +1,21 @@ +palette = 0=#202020 +palette = 1=#8c3432 +palette = 2=#728271 +palette = 3=#e8bf6a +palette = 4=#69819e +palette = 5=#896492 +palette = 6=#5b8390 +palette = 7=#b9aa99 +palette = 8=#676767 +palette = 9=#b55242 +palette = 10=#869985 +palette = 11=#ebeb91 +palette = 12=#60827e +palette = 13=#de4974 +palette = 14=#38add8 +palette = 15=#d6bfb8 +background = 222222 +foreground = c2b790 +cursor-color = c2b790 +selection-background = 1b324a +selection-foreground = bcb291 diff --git a/bin/share/ghostty/themes/Red Sands b/bin/share/ghostty/themes/Red Sands new file mode 100644 index 0000000..acd5042 --- /dev/null +++ b/bin/share/ghostty/themes/Red Sands @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff3f00 +palette = 2=#00bb00 +palette = 3=#e7b000 +palette = 4=#0072ff +palette = 5=#bb00bb +palette = 6=#00bbbb +palette = 7=#bbbbbb +palette = 8=#555555 +palette = 9=#bb0000 +palette = 10=#00bb00 +palette = 11=#e7b000 +palette = 12=#0072ae +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 7a251e +foreground = d7c9a7 +cursor-color = ffffff +selection-background = a4a390 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Relaxed b/bin/share/ghostty/themes/Relaxed new file mode 100644 index 0000000..b5f6c9e --- /dev/null +++ b/bin/share/ghostty/themes/Relaxed @@ -0,0 +1,21 @@ +palette = 0=#151515 +palette = 1=#bc5653 +palette = 2=#909d63 +palette = 3=#ebc17a +palette = 4=#6a8799 +palette = 5=#b06698 +palette = 6=#c9dfff +palette = 7=#d9d9d9 +palette = 8=#636363 +palette = 9=#bc5653 +palette = 10=#a0ac77 +palette = 11=#ebc17a +palette = 12=#7eaac7 +palette = 13=#b06698 +palette = 14=#acbbd0 +palette = 15=#f7f7f7 +background = 353a44 +foreground = d9d9d9 +cursor-color = d9d9d9 +selection-background = 6a7985 +selection-foreground = d9d9d9 diff --git a/bin/share/ghostty/themes/Retro b/bin/share/ghostty/themes/Retro new file mode 100644 index 0000000..cdc0b75 --- /dev/null +++ b/bin/share/ghostty/themes/Retro @@ -0,0 +1,21 @@ +palette = 0=#13a10e +palette = 1=#13a10e +palette = 2=#13a10e +palette = 3=#13a10e +palette = 4=#13a10e +palette = 5=#13a10e +palette = 6=#13a10e +palette = 7=#13a10e +palette = 8=#16ba10 +palette = 9=#16ba10 +palette = 10=#16ba10 +palette = 11=#16ba10 +palette = 12=#16ba10 +palette = 13=#16ba10 +palette = 14=#16ba10 +palette = 15=#16ba10 +background = 000000 +foreground = 13a10e +cursor-color = 13a10e +selection-background = ffffff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/RetroLegends b/bin/share/ghostty/themes/RetroLegends new file mode 100644 index 0000000..f26808c --- /dev/null +++ b/bin/share/ghostty/themes/RetroLegends @@ -0,0 +1,21 @@ +palette = 0=#262626 +palette = 1=#de5454 +palette = 2=#45eb45 +palette = 3=#f7bf2b +palette = 4=#4066f2 +palette = 5=#bf4cf2 +palette = 6=#40d9e6 +palette = 7=#bfe6bf +palette = 8=#4c594c +palette = 9=#ff6666 +palette = 10=#59ff59 +palette = 11=#ffd933 +palette = 12=#4c80ff +palette = 13=#e666ff +palette = 14=#59e6ff +palette = 15=#f2fff2 +background = 0d0d0d +foreground = 45eb45 +cursor-color = 45eb45 +selection-background = 336633 +selection-foreground = f2fff2 diff --git a/bin/share/ghostty/themes/Rippedcasts b/bin/share/ghostty/themes/Rippedcasts new file mode 100644 index 0000000..4546794 --- /dev/null +++ b/bin/share/ghostty/themes/Rippedcasts @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cdaf95 +palette = 2=#a8ff60 +palette = 3=#bfbb1f +palette = 4=#75a5b0 +palette = 5=#ff73fd +palette = 6=#5a647e +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#eecbad +palette = 10=#bcee68 +palette = 11=#e5e500 +palette = 12=#86bdc9 +palette = 13=#e500e5 +palette = 14=#8c9bc4 +palette = 15=#e5e5e5 +background = 2b2b2b +foreground = ffffff +cursor-color = 7f7f7f +selection-background = 5a647e +selection-foreground = f2f2f2 diff --git a/bin/share/ghostty/themes/Rouge 2 b/bin/share/ghostty/themes/Rouge 2 new file mode 100644 index 0000000..aba034d --- /dev/null +++ b/bin/share/ghostty/themes/Rouge 2 @@ -0,0 +1,21 @@ +palette = 0=#5d5d6b +palette = 1=#c6797e +palette = 2=#969e92 +palette = 3=#dbcdab +palette = 4=#6e94b9 +palette = 5=#4c4e78 +palette = 6=#8ab6c1 +palette = 7=#e8e8ea +palette = 8=#616274 +palette = 9=#c6797e +palette = 10=#e6dcc4 +palette = 11=#e6dcc4 +palette = 12=#98b3cd +palette = 13=#8283a1 +palette = 14=#abcbd3 +palette = 15=#e8e8ea +background = 17182b +foreground = a2a3aa +cursor-color = 969e92 +selection-background = 5d5d6b +selection-foreground = dfe5ee diff --git a/bin/share/ghostty/themes/Royal b/bin/share/ghostty/themes/Royal new file mode 100644 index 0000000..c016d22 --- /dev/null +++ b/bin/share/ghostty/themes/Royal @@ -0,0 +1,21 @@ +palette = 0=#241f2b +palette = 1=#91284c +palette = 2=#23801c +palette = 3=#b49d27 +palette = 4=#6580b0 +palette = 5=#674d96 +palette = 6=#8aaabe +palette = 7=#524966 +palette = 8=#312d3d +palette = 9=#d5356c +palette = 10=#2cd946 +palette = 11=#fde83b +palette = 12=#90baf9 +palette = 13=#a479e3 +palette = 14=#acd4eb +palette = 15=#9e8cbd +background = 100815 +foreground = 514968 +cursor-color = 524966 +selection-background = 1f1d2b +selection-foreground = a593cd diff --git a/bin/share/ghostty/themes/Ryuuko b/bin/share/ghostty/themes/Ryuuko new file mode 100644 index 0000000..ba3bcfa --- /dev/null +++ b/bin/share/ghostty/themes/Ryuuko @@ -0,0 +1,21 @@ +palette = 0=#2c3941 +palette = 1=#865f5b +palette = 2=#66907d +palette = 3=#b1a990 +palette = 4=#6a8e95 +palette = 5=#b18a73 +palette = 6=#88b2ac +palette = 7=#ececec +palette = 8=#5d7079 +palette = 9=#865f5b +palette = 10=#66907d +palette = 11=#b1a990 +palette = 12=#6a8e95 +palette = 13=#b18a73 +palette = 14=#88b2ac +palette = 15=#ececec +background = 2c3941 +foreground = ececec +cursor-color = ececec +selection-background = 002831 +selection-foreground = 819090 diff --git a/bin/share/ghostty/themes/Sakura b/bin/share/ghostty/themes/Sakura new file mode 100644 index 0000000..5513d71 --- /dev/null +++ b/bin/share/ghostty/themes/Sakura @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d52370 +palette = 2=#41af1a +palette = 3=#bc7053 +palette = 4=#6964ab +palette = 5=#c71fbf +palette = 6=#939393 +palette = 7=#998eac +palette = 8=#786d69 +palette = 9=#f41d99 +palette = 10=#22e529 +palette = 11=#f59574 +palette = 12=#9892f1 +palette = 13=#e90cdd +palette = 14=#eeeeee +palette = 15=#cbb6ff +background = 18131e +foreground = dd7bdc +cursor-color = ff65fd +selection-background = c05cbf +selection-foreground = 24242e diff --git a/bin/share/ghostty/themes/Scarlet Protocol b/bin/share/ghostty/themes/Scarlet Protocol new file mode 100644 index 0000000..62b43ab --- /dev/null +++ b/bin/share/ghostty/themes/Scarlet Protocol @@ -0,0 +1,21 @@ +palette = 0=#101116 +palette = 1=#ff0051 +palette = 2=#00dc84 +palette = 3=#faf945 +palette = 4=#0271b6 +palette = 5=#ca30c7 +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#bd35ec +palette = 14=#60fdff +palette = 15=#ffffff +background = 1c153d +foreground = e41951 +cursor-color = 76ff9f +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/SeaShells b/bin/share/ghostty/themes/SeaShells new file mode 100644 index 0000000..ac362a5 --- /dev/null +++ b/bin/share/ghostty/themes/SeaShells @@ -0,0 +1,21 @@ +palette = 0=#17384c +palette = 1=#d15123 +palette = 2=#027c9b +palette = 3=#fca02f +palette = 4=#1e4950 +palette = 5=#68d4f1 +palette = 6=#50a3b5 +palette = 7=#deb88d +palette = 8=#434b53 +palette = 9=#d48678 +palette = 10=#628d98 +palette = 11=#fdd39f +palette = 12=#1bbcdd +palette = 13=#bbe3ee +palette = 14=#87acb4 +palette = 15=#fee4ce +background = 09141b +foreground = deb88d +cursor-color = fca02f +selection-background = 1e4962 +selection-foreground = fee4ce diff --git a/bin/share/ghostty/themes/Seafoam Pastel b/bin/share/ghostty/themes/Seafoam Pastel new file mode 100644 index 0000000..088ebc8 --- /dev/null +++ b/bin/share/ghostty/themes/Seafoam Pastel @@ -0,0 +1,21 @@ +palette = 0=#757575 +palette = 1=#825d4d +palette = 2=#728c62 +palette = 3=#ada16d +palette = 4=#4d7b82 +palette = 5=#8a7267 +palette = 6=#729494 +palette = 7=#e0e0e0 +palette = 8=#8a8a8a +palette = 9=#cf937a +palette = 10=#98d9aa +palette = 11=#fae79d +palette = 12=#7ac3cf +palette = 13=#d6b2a1 +palette = 14=#ade0e0 +palette = 15=#e0e0e0 +background = 243435 +foreground = d4e7d4 +cursor-color = 57647a +selection-background = ffffff +selection-foreground = 9e8b13 diff --git a/bin/share/ghostty/themes/Seti b/bin/share/ghostty/themes/Seti new file mode 100644 index 0000000..22a8aa5 --- /dev/null +++ b/bin/share/ghostty/themes/Seti @@ -0,0 +1,21 @@ +palette = 0=#323232 +palette = 1=#c22832 +palette = 2=#8ec43d +palette = 3=#e0c64f +palette = 4=#43a5d5 +palette = 5=#8b57b5 +palette = 6=#8ec43d +palette = 7=#eeeeee +palette = 8=#323232 +palette = 9=#c22832 +palette = 10=#8ec43d +palette = 11=#e0c64f +palette = 12=#43a5d5 +palette = 13=#8b57b5 +palette = 14=#8ec43d +palette = 15=#ffffff +background = 111213 +foreground = cacecd +cursor-color = e3bf21 +selection-background = 303233 +selection-foreground = cacecd diff --git a/bin/share/ghostty/themes/Shaman b/bin/share/ghostty/themes/Shaman new file mode 100644 index 0000000..57148e0 --- /dev/null +++ b/bin/share/ghostty/themes/Shaman @@ -0,0 +1,21 @@ +palette = 0=#012026 +palette = 1=#b2302d +palette = 2=#00a941 +palette = 3=#5e8baa +palette = 4=#449a86 +palette = 5=#00599d +palette = 6=#5d7e19 +palette = 7=#405555 +palette = 8=#384451 +palette = 9=#ff4242 +palette = 10=#2aea5e +palette = 11=#8ed4fd +palette = 12=#61d5ba +palette = 13=#1298ff +palette = 14=#98d028 +palette = 15=#58fbd6 +background = 001015 +foreground = 405555 +cursor-color = 4afcd6 +selection-background = 415555 +selection-foreground = 5afad6 diff --git a/bin/share/ghostty/themes/Slate b/bin/share/ghostty/themes/Slate new file mode 100644 index 0000000..104a2bd --- /dev/null +++ b/bin/share/ghostty/themes/Slate @@ -0,0 +1,21 @@ +palette = 0=#222222 +palette = 1=#e2a8bf +palette = 2=#81d778 +palette = 3=#c4c9c0 +palette = 4=#264b49 +palette = 5=#a481d3 +palette = 6=#15ab9c +palette = 7=#02c5e0 +palette = 8=#ffffff +palette = 9=#ffcdd9 +palette = 10=#beffa8 +palette = 11=#d0ccca +palette = 12=#7ab0d2 +palette = 13=#c5a7d9 +palette = 14=#8cdfe0 +palette = 15=#e0e0e0 +background = 222222 +foreground = 35b1d2 +cursor-color = 87d3c4 +selection-background = 0f3754 +selection-foreground = 2dffc0 diff --git a/bin/share/ghostty/themes/SleepyHollow b/bin/share/ghostty/themes/SleepyHollow new file mode 100644 index 0000000..e38548a --- /dev/null +++ b/bin/share/ghostty/themes/SleepyHollow @@ -0,0 +1,21 @@ +palette = 0=#572100 +palette = 1=#ba3934 +palette = 2=#91773f +palette = 3=#b55600 +palette = 4=#5f63b4 +palette = 5=#a17c7b +palette = 6=#8faea9 +palette = 7=#af9a91 +palette = 8=#4e4b61 +palette = 9=#d9443f +palette = 10=#d6b04e +palette = 11=#f66813 +palette = 12=#8086ef +palette = 13=#e2c2bb +palette = 14=#a4dce7 +palette = 15=#d2c7a9 +background = 121214 +foreground = af9a91 +cursor-color = af9a91 +selection-background = 575256 +selection-foreground = d2c7a9 diff --git a/bin/share/ghostty/themes/Smyck b/bin/share/ghostty/themes/Smyck new file mode 100644 index 0000000..c496468 --- /dev/null +++ b/bin/share/ghostty/themes/Smyck @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b84131 +palette = 2=#7da900 +palette = 3=#c4a500 +palette = 4=#62a3c4 +palette = 5=#ba8acc +palette = 6=#207383 +palette = 7=#a1a1a1 +palette = 8=#7a7a7a +palette = 9=#d6837c +palette = 10=#c4f137 +palette = 11=#fee14d +palette = 12=#8dcff0 +palette = 13=#f79aff +palette = 14=#6ad9cf +palette = 15=#f7f7f7 +background = 1b1b1b +foreground = f7f7f7 +cursor-color = bbbbbb +selection-background = 207483 +selection-foreground = f7f7f7 diff --git a/bin/share/ghostty/themes/Snazzy b/bin/share/ghostty/themes/Snazzy new file mode 100644 index 0000000..4a51d3e --- /dev/null +++ b/bin/share/ghostty/themes/Snazzy @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#fc4346 +palette = 2=#50fb7c +palette = 3=#f0fb8c +palette = 4=#49baff +palette = 5=#fc4cb4 +palette = 6=#8be9fe +palette = 7=#ededec +palette = 8=#555555 +palette = 9=#fc4346 +palette = 10=#50fb7c +palette = 11=#f0fb8c +palette = 12=#49baff +palette = 13=#fc4cb4 +palette = 14=#8be9fe +palette = 15=#ededec +background = 1e1f29 +foreground = ebece6 +cursor-color = e4e4e4 +selection-background = 81aec6 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/SoftServer b/bin/share/ghostty/themes/SoftServer new file mode 100644 index 0000000..55ec2ef --- /dev/null +++ b/bin/share/ghostty/themes/SoftServer @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#a2686a +palette = 2=#9aa56a +palette = 3=#a3906a +palette = 4=#6b8fa3 +palette = 5=#6a71a3 +palette = 6=#6ba58f +palette = 7=#99a3a2 +palette = 8=#666c6c +palette = 9=#dd5c60 +palette = 10=#bfdf55 +palette = 11=#deb360 +palette = 12=#62b1df +palette = 13=#606edf +palette = 14=#64e39c +palette = 15=#d2e0de +background = 242626 +foreground = 99a3a2 +cursor-color = d2e0de +selection-background = 7f8786 +selection-foreground = effffe diff --git a/bin/share/ghostty/themes/Solarized Darcula b/bin/share/ghostty/themes/Solarized Darcula new file mode 100644 index 0000000..0b0dc67 --- /dev/null +++ b/bin/share/ghostty/themes/Solarized Darcula @@ -0,0 +1,21 @@ +palette = 0=#25292a +palette = 1=#f24840 +palette = 2=#629655 +palette = 3=#b68800 +palette = 4=#2075c7 +palette = 5=#797fd4 +palette = 6=#15968d +palette = 7=#d2d8d9 +palette = 8=#25292a +palette = 9=#f24840 +palette = 10=#629655 +palette = 11=#b68800 +palette = 12=#2075c7 +palette = 13=#797fd4 +palette = 14=#15968d +palette = 15=#d2d8d9 +background = 3d3f41 +foreground = d2d8d9 +cursor-color = 708284 +selection-background = 214283 +selection-foreground = d2d8d9 diff --git a/bin/share/ghostty/themes/Solarized Dark - Patched b/bin/share/ghostty/themes/Solarized Dark - Patched new file mode 100644 index 0000000..afe5780 --- /dev/null +++ b/bin/share/ghostty/themes/Solarized Dark - Patched @@ -0,0 +1,21 @@ +palette = 0=#002831 +palette = 1=#d11c24 +palette = 2=#738a05 +palette = 3=#a57706 +palette = 4=#2176c7 +palette = 5=#c61c6f +palette = 6=#259286 +palette = 7=#eae3cb +palette = 8=#475b62 +palette = 9=#bd3613 +palette = 10=#475b62 +palette = 11=#536870 +palette = 12=#708284 +palette = 13=#5956ba +palette = 14=#819090 +palette = 15=#fcf4dc +background = 001e27 +foreground = 708284 +cursor-color = 708284 +selection-background = 002831 +selection-foreground = 819090 diff --git a/bin/share/ghostty/themes/Solarized Dark Higher Contrast b/bin/share/ghostty/themes/Solarized Dark Higher Contrast new file mode 100644 index 0000000..2c7bd1e --- /dev/null +++ b/bin/share/ghostty/themes/Solarized Dark Higher Contrast @@ -0,0 +1,21 @@ +palette = 0=#002831 +palette = 1=#d11c24 +palette = 2=#6cbe6c +palette = 3=#a57706 +palette = 4=#2176c7 +palette = 5=#c61c6f +palette = 6=#259286 +palette = 7=#eae3cb +palette = 8=#006488 +palette = 9=#f5163b +palette = 10=#51ef84 +palette = 11=#b27e28 +palette = 12=#178ec8 +palette = 13=#e24d8e +palette = 14=#00b39e +palette = 15=#fcf4dc +background = 001e27 +foreground = 9cc2c3 +cursor-color = f34b00 +selection-background = 003748 +selection-foreground = 7a8f8e diff --git a/bin/share/ghostty/themes/SpaceGray b/bin/share/ghostty/themes/SpaceGray new file mode 100644 index 0000000..8ccf324 --- /dev/null +++ b/bin/share/ghostty/themes/SpaceGray @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b04b57 +palette = 2=#87b379 +palette = 3=#e5c179 +palette = 4=#7d8fa4 +palette = 5=#a47996 +palette = 6=#85a7a5 +palette = 7=#b3b8c3 +palette = 8=#000000 +palette = 9=#b04b57 +palette = 10=#87b379 +palette = 11=#e5c179 +palette = 12=#7d8fa4 +palette = 13=#a47996 +palette = 14=#85a7a5 +palette = 15=#ffffff +background = 20242d +foreground = b3b8c3 +cursor-color = b3b8c3 +selection-background = 16181e +selection-foreground = b3b8c3 diff --git a/bin/share/ghostty/themes/SpaceGray Bright b/bin/share/ghostty/themes/SpaceGray Bright new file mode 100644 index 0000000..88bd965 --- /dev/null +++ b/bin/share/ghostty/themes/SpaceGray Bright @@ -0,0 +1,21 @@ +palette = 0=#080808 +palette = 1=#bc5553 +palette = 2=#a0b56c +palette = 3=#f6c987 +palette = 4=#7baec1 +palette = 5=#b98aae +palette = 6=#85c9b8 +palette = 7=#d8d8d8 +palette = 8=#626262 +palette = 9=#bc5553 +palette = 10=#a0b56c +palette = 11=#f6c987 +palette = 12=#7baec1 +palette = 13=#b98aae +palette = 14=#85c9b8 +palette = 15=#f7f7f7 +background = 2a2e3a +foreground = f3f3f3 +cursor-color = c6c6c6 +selection-background = cacaca +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/SpaceGray Eighties b/bin/share/ghostty/themes/SpaceGray Eighties new file mode 100644 index 0000000..4b35d9f --- /dev/null +++ b/bin/share/ghostty/themes/SpaceGray Eighties @@ -0,0 +1,21 @@ +palette = 0=#15171c +palette = 1=#ec5f67 +palette = 2=#81a764 +palette = 3=#fec254 +palette = 4=#5486c0 +palette = 5=#bf83c1 +palette = 6=#57c2c1 +palette = 7=#efece7 +palette = 8=#555555 +palette = 9=#ff6973 +palette = 10=#93d493 +palette = 11=#ffd256 +palette = 12=#4d84d1 +palette = 13=#ff55ff +palette = 14=#83e9e4 +palette = 15=#ffffff +background = 222222 +foreground = bdbaae +cursor-color = bbbbbb +selection-background = 272e35 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/SpaceGray Eighties Dull b/bin/share/ghostty/themes/SpaceGray Eighties Dull new file mode 100644 index 0000000..5230329 --- /dev/null +++ b/bin/share/ghostty/themes/SpaceGray Eighties Dull @@ -0,0 +1,21 @@ +palette = 0=#15171c +palette = 1=#b24a56 +palette = 2=#92b477 +palette = 3=#c6735a +palette = 4=#7c8fa5 +palette = 5=#a5789e +palette = 6=#80cdcb +palette = 7=#b3b8c3 +palette = 8=#555555 +palette = 9=#ec5f67 +palette = 10=#89e986 +palette = 11=#fec254 +palette = 12=#5486c0 +palette = 13=#bf83c1 +palette = 14=#58c2c1 +palette = 15=#ffffff +background = 222222 +foreground = c9c6bc +cursor-color = bbbbbb +selection-background = 272e36 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Spacedust b/bin/share/ghostty/themes/Spacedust new file mode 100644 index 0000000..6895d6c --- /dev/null +++ b/bin/share/ghostty/themes/Spacedust @@ -0,0 +1,21 @@ +palette = 0=#6e5346 +palette = 1=#e35b00 +palette = 2=#5cab96 +palette = 3=#e3cd7b +palette = 4=#0f548b +palette = 5=#e35b00 +palette = 6=#06afc7 +palette = 7=#f0f1ce +palette = 8=#684c31 +palette = 9=#ff8a3a +palette = 10=#aecab8 +palette = 11=#ffc878 +palette = 12=#67a0ce +palette = 13=#ff8a3a +palette = 14=#83a7b4 +palette = 15=#fefff1 +background = 0a1e24 +foreground = ecf0c1 +cursor-color = 708284 +selection-background = 0a385c +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Spiderman b/bin/share/ghostty/themes/Spiderman new file mode 100644 index 0000000..6b8ec7c --- /dev/null +++ b/bin/share/ghostty/themes/Spiderman @@ -0,0 +1,21 @@ +palette = 0=#1b1d1e +palette = 1=#e60813 +palette = 2=#e22928 +palette = 3=#e24756 +palette = 4=#2c3fff +palette = 5=#2435db +palette = 6=#3256ff +palette = 7=#fffef6 +palette = 8=#505354 +palette = 9=#ff0325 +palette = 10=#ff3338 +palette = 11=#fe3a35 +palette = 12=#1d50ff +palette = 13=#747cff +palette = 14=#6184ff +palette = 15=#fffff9 +background = 1b1d1e +foreground = e3e3e3 +cursor-color = 2c3fff +selection-background = 070e50 +selection-foreground = f0272d diff --git a/bin/share/ghostty/themes/Spring b/bin/share/ghostty/themes/Spring new file mode 100644 index 0000000..6bdd49f --- /dev/null +++ b/bin/share/ghostty/themes/Spring @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff4d83 +palette = 2=#1f8c3b +palette = 3=#1fc95b +palette = 4=#1dd3ee +palette = 5=#8959a8 +palette = 6=#3e999f +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#ff0021 +palette = 10=#1fc231 +palette = 11=#d5b807 +palette = 12=#15a9fd +palette = 13=#8959a8 +palette = 14=#3e999f +palette = 15=#ffffff +background = ffffff +foreground = 4d4d4c +cursor-color = 4d4d4c +selection-background = d6d6d6 +selection-foreground = 4d4d4c diff --git a/bin/share/ghostty/themes/Square b/bin/share/ghostty/themes/Square new file mode 100644 index 0000000..b5bb89a --- /dev/null +++ b/bin/share/ghostty/themes/Square @@ -0,0 +1,21 @@ +palette = 0=#050505 +palette = 1=#e9897c +palette = 2=#b6377d +palette = 3=#ecebbe +palette = 4=#a9cdeb +palette = 5=#75507b +palette = 6=#c9caec +palette = 7=#f2f2f2 +palette = 8=#141414 +palette = 9=#f99286 +palette = 10=#c3f786 +palette = 11=#fcfbcc +palette = 12=#b6defb +palette = 13=#ad7fa8 +palette = 14=#d7d9fc +palette = 15=#e2e2e2 +background = 1a1a1a +foreground = acacab +cursor-color = fcfbcc +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Sublette b/bin/share/ghostty/themes/Sublette new file mode 100644 index 0000000..b2302e6 --- /dev/null +++ b/bin/share/ghostty/themes/Sublette @@ -0,0 +1,21 @@ +palette = 0=#253045 +palette = 1=#ee5577 +palette = 2=#55ee77 +palette = 3=#ffdd88 +palette = 4=#5588ff +palette = 5=#ff77cc +palette = 6=#44eeee +palette = 7=#f5f5da +palette = 8=#405570 +palette = 9=#ee6655 +palette = 10=#99ee77 +palette = 11=#ffff77 +palette = 12=#77bbff +palette = 13=#aa88ff +palette = 14=#55ffbb +palette = 15=#ffffee +background = 202535 +foreground = ccced0 +cursor-color = ccced0 +selection-background = ccced0 +selection-foreground = 202535 diff --git a/bin/share/ghostty/themes/Subliminal b/bin/share/ghostty/themes/Subliminal new file mode 100644 index 0000000..8092448 --- /dev/null +++ b/bin/share/ghostty/themes/Subliminal @@ -0,0 +1,21 @@ +palette = 0=#7f7f7f +palette = 1=#e15a60 +palette = 2=#a9cfa4 +palette = 3=#ffe2a9 +palette = 4=#6699cc +palette = 5=#f1a5ab +palette = 6=#5fb3b3 +palette = 7=#d4d4d4 +palette = 8=#7f7f7f +palette = 9=#e15a60 +palette = 10=#a9cfa4 +palette = 11=#ffe2a9 +palette = 12=#6699cc +palette = 13=#f1a5ab +palette = 14=#5fb3b3 +palette = 15=#d4d4d4 +background = 282c35 +foreground = d4d4d4 +cursor-color = c7c7c7 +selection-background = 484e5b +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Sugarplum b/bin/share/ghostty/themes/Sugarplum new file mode 100644 index 0000000..c406768 --- /dev/null +++ b/bin/share/ghostty/themes/Sugarplum @@ -0,0 +1,21 @@ +palette = 0=#111147 +palette = 1=#5ca8dc +palette = 2=#53b397 +palette = 3=#249a84 +palette = 4=#db7ddd +palette = 5=#d0beee +palette = 6=#f9f3f9 +palette = 7=#a175d4 +palette = 8=#111147 +palette = 9=#5cb5dc +palette = 10=#52deb5 +palette = 11=#01f5c7 +palette = 12=#fa5dfd +palette = 13=#c6a5fd +palette = 14=#ffffff +palette = 15=#b577fd +background = 111147 +foreground = db7ddd +cursor-color = 53b397 +selection-background = 5ca8dc +selection-foreground = d0beee diff --git a/bin/share/ghostty/themes/Sundried b/bin/share/ghostty/themes/Sundried new file mode 100644 index 0000000..8e4fa66 --- /dev/null +++ b/bin/share/ghostty/themes/Sundried @@ -0,0 +1,21 @@ +palette = 0=#302b2a +palette = 1=#a7463d +palette = 2=#587744 +palette = 3=#9d602a +palette = 4=#485b98 +palette = 5=#864651 +palette = 6=#9c814f +palette = 7=#c9c9c9 +palette = 8=#4d4e48 +palette = 9=#aa000c +palette = 10=#128c21 +palette = 11=#fc6a21 +palette = 12=#7999f7 +palette = 13=#fd8aa1 +palette = 14=#fad484 +palette = 15=#ffffff +background = 1a1818 +foreground = c9c9c9 +cursor-color = ffffff +selection-background = 302b2a +selection-foreground = c9c9c9 diff --git a/bin/share/ghostty/themes/Symfonic b/bin/share/ghostty/themes/Symfonic new file mode 100644 index 0000000..463dd4e --- /dev/null +++ b/bin/share/ghostty/themes/Symfonic @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#dc322f +palette = 2=#56db3a +palette = 3=#ff8400 +palette = 4=#0084d4 +palette = 5=#b729d9 +palette = 6=#ccccff +palette = 7=#ffffff +palette = 8=#1b1d21 +palette = 9=#dc322f +palette = 10=#56db3a +palette = 11=#ff8400 +palette = 12=#0084d4 +palette = 13=#b729d9 +palette = 14=#ccccff +palette = 15=#ffffff +background = 000000 +foreground = ffffff +cursor-color = dc322f +selection-background = 073642 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/SynthwaveAlpha b/bin/share/ghostty/themes/SynthwaveAlpha new file mode 100644 index 0000000..fc87ee4 --- /dev/null +++ b/bin/share/ghostty/themes/SynthwaveAlpha @@ -0,0 +1,21 @@ +palette = 0=#241b30 +palette = 1=#e60a70 +palette = 2=#00986c +palette = 3=#adad3e +palette = 4=#6e29ad +palette = 5=#b300ad +palette = 6=#00b0b1 +palette = 7=#b9b1bc +palette = 8=#7f7094 +palette = 9=#e60a70 +palette = 10=#0ae4a4 +palette = 11=#f9f972 +palette = 12=#aa54f9 +palette = 13=#ff00f6 +palette = 14=#00fbfd +palette = 15=#f2f2e3 +background = 241b30 +foreground = f2f2e3 +cursor-color = f2f2e3 +selection-background = 6e29ad +selection-foreground = f2f2e3 diff --git a/bin/share/ghostty/themes/Tango Adapted b/bin/share/ghostty/themes/Tango Adapted new file mode 100644 index 0000000..5a6d270 --- /dev/null +++ b/bin/share/ghostty/themes/Tango Adapted @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff0000 +palette = 2=#59d600 +palette = 3=#f0cb00 +palette = 4=#00a2ff +palette = 5=#c17ecc +palette = 6=#00d0d6 +palette = 7=#e6ebe1 +palette = 8=#8f928b +palette = 9=#ff0013 +palette = 10=#93ff00 +palette = 11=#fff121 +palette = 12=#88c9ff +palette = 13=#e9a7e1 +palette = 14=#00feff +palette = 15=#f6f6f4 +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Tango Half Adapted b/bin/share/ghostty/themes/Tango Half Adapted new file mode 100644 index 0000000..32f1ea7 --- /dev/null +++ b/bin/share/ghostty/themes/Tango Half Adapted @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff0000 +palette = 2=#4cc300 +palette = 3=#e2c000 +palette = 4=#008ef6 +palette = 5=#a96cb3 +palette = 6=#00bdc3 +palette = 7=#e0e5db +palette = 8=#797d76 +palette = 9=#ff0013 +palette = 10=#8af600 +palette = 11=#ffec00 +palette = 12=#76bfff +palette = 13=#d898d1 +palette = 14=#00f6fa +palette = 15=#f4f4f2 +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Teerb b/bin/share/ghostty/themes/Teerb new file mode 100644 index 0000000..2b8db6f --- /dev/null +++ b/bin/share/ghostty/themes/Teerb @@ -0,0 +1,21 @@ +palette = 0=#1c1c1c +palette = 1=#d68686 +palette = 2=#aed686 +palette = 3=#d7af87 +palette = 4=#86aed6 +palette = 5=#d6aed6 +palette = 6=#8adbb4 +palette = 7=#d0d0d0 +palette = 8=#1c1c1c +palette = 9=#d68686 +palette = 10=#aed686 +palette = 11=#e4c9af +palette = 12=#86aed6 +palette = 13=#d6aed6 +palette = 14=#b1e7dd +palette = 15=#efefef +background = 262626 +foreground = d0d0d0 +cursor-color = e4c9af +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Terminal Basic b/bin/share/ghostty/themes/Terminal Basic new file mode 100644 index 0000000..9edf06d --- /dev/null +++ b/bin/share/ghostty/themes/Terminal Basic @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#990000 +palette = 2=#00a600 +palette = 3=#999900 +palette = 4=#0000b2 +palette = 5=#b200b2 +palette = 6=#00a6b2 +palette = 7=#bfbfbf +palette = 8=#666666 +palette = 9=#e50000 +palette = 10=#00d900 +palette = 11=#e5e500 +palette = 12=#0000ff +palette = 13=#e500e5 +palette = 14=#00e5e5 +palette = 15=#e5e5e5 +background = ffffff +foreground = 000000 +cursor-color = 7f7f7f +selection-background = a4c9ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Thayer Bright b/bin/share/ghostty/themes/Thayer Bright new file mode 100644 index 0000000..5a16845 --- /dev/null +++ b/bin/share/ghostty/themes/Thayer Bright @@ -0,0 +1,21 @@ +palette = 0=#1b1d1e +palette = 1=#f92672 +palette = 2=#4df840 +palette = 3=#f4fd22 +palette = 4=#2757d6 +palette = 5=#8c54fe +palette = 6=#38c8b5 +palette = 7=#ccccc6 +palette = 8=#505354 +palette = 9=#ff5995 +palette = 10=#b6e354 +palette = 11=#feed6c +palette = 12=#3f78ff +palette = 13=#9e6ffe +palette = 14=#23cfd5 +palette = 15=#f8f8f2 +background = 1b1d1e +foreground = f8f8f8 +cursor-color = fc971f +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/The Hulk b/bin/share/ghostty/themes/The Hulk new file mode 100644 index 0000000..dc7e883 --- /dev/null +++ b/bin/share/ghostty/themes/The Hulk @@ -0,0 +1,21 @@ +palette = 0=#1b1d1e +palette = 1=#269d1b +palette = 2=#13ce30 +palette = 3=#63e457 +palette = 4=#2525f5 +palette = 5=#641f74 +palette = 6=#378ca9 +palette = 7=#d9d8d1 +palette = 8=#505354 +palette = 9=#8dff2a +palette = 10=#48ff77 +palette = 11=#3afe16 +palette = 12=#506b95 +palette = 13=#72589d +palette = 14=#4085a6 +palette = 15=#e5e6e1 +background = 1b1d1e +foreground = b5b5b5 +cursor-color = 16b61b +selection-background = 4d504c +selection-foreground = 0b6309 diff --git a/bin/share/ghostty/themes/Tinacious Design (Dark) b/bin/share/ghostty/themes/Tinacious Design (Dark) new file mode 100644 index 0000000..0e40ad5 --- /dev/null +++ b/bin/share/ghostty/themes/Tinacious Design (Dark) @@ -0,0 +1,21 @@ +palette = 0=#1d1d26 +palette = 1=#ff3399 +palette = 2=#00d364 +palette = 3=#ffcc66 +palette = 4=#00cbff +palette = 5=#cc66ff +palette = 6=#00ceca +palette = 7=#cbcbf0 +palette = 8=#636667 +palette = 9=#ff2f92 +palette = 10=#00d364 +palette = 11=#ffd479 +palette = 12=#00cbff +palette = 13=#d783ff +palette = 14=#00d5d4 +palette = 15=#d5d6f3 +background = 1d1d26 +foreground = cbcbf0 +cursor-color = cbcbf0 +selection-background = ff3399 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Tinacious Design (Light) b/bin/share/ghostty/themes/Tinacious Design (Light) new file mode 100644 index 0000000..5f0333f --- /dev/null +++ b/bin/share/ghostty/themes/Tinacious Design (Light) @@ -0,0 +1,21 @@ +palette = 0=#1d1d26 +palette = 1=#ff3399 +palette = 2=#00d364 +palette = 3=#ffcc66 +palette = 4=#00cbff +palette = 5=#cc66ff +palette = 6=#00ceca +palette = 7=#cbcbf0 +palette = 8=#636667 +palette = 9=#ff2f92 +palette = 10=#00d364 +palette = 11=#ffd479 +palette = 12=#00cbff +palette = 13=#d783ff +palette = 14=#00d5d4 +palette = 15=#d5d6f3 +background = f8f8ff +foreground = 1d1d26 +cursor-color = cbcbf0 +selection-background = ff3399 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Tomorrow b/bin/share/ghostty/themes/Tomorrow new file mode 100644 index 0000000..983c230 --- /dev/null +++ b/bin/share/ghostty/themes/Tomorrow @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c82829 +palette = 2=#718c00 +palette = 3=#eab700 +palette = 4=#4271ae +palette = 5=#8959a8 +palette = 6=#3e999f +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#c82829 +palette = 10=#718c00 +palette = 11=#eab700 +palette = 12=#4271ae +palette = 13=#8959a8 +palette = 14=#3e999f +palette = 15=#ffffff +background = ffffff +foreground = 4d4d4c +cursor-color = 4d4d4c +selection-background = d6d6d6 +selection-foreground = 4d4d4c diff --git a/bin/share/ghostty/themes/Tomorrow Night b/bin/share/ghostty/themes/Tomorrow Night new file mode 100644 index 0000000..7ed5cb4 --- /dev/null +++ b/bin/share/ghostty/themes/Tomorrow Night @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc6666 +palette = 2=#b5bd68 +palette = 3=#f0c674 +palette = 4=#81a2be +palette = 5=#b294bb +palette = 6=#8abeb7 +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#cc6666 +palette = 10=#b5bd68 +palette = 11=#f0c674 +palette = 12=#81a2be +palette = 13=#b294bb +palette = 14=#8abeb7 +palette = 15=#ffffff +background = 1d1f21 +foreground = c5c8c6 +cursor-color = c5c8c6 +selection-background = 373b41 +selection-foreground = c5c8c6 diff --git a/bin/share/ghostty/themes/Tomorrow Night Blue b/bin/share/ghostty/themes/Tomorrow Night Blue new file mode 100644 index 0000000..d70423e --- /dev/null +++ b/bin/share/ghostty/themes/Tomorrow Night Blue @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff9da4 +palette = 2=#d1f1a9 +palette = 3=#ffeead +palette = 4=#bbdaff +palette = 5=#ebbbff +palette = 6=#99ffff +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#ff9da4 +palette = 10=#d1f1a9 +palette = 11=#ffeead +palette = 12=#bbdaff +palette = 13=#ebbbff +palette = 14=#99ffff +palette = 15=#ffffff +background = 002451 +foreground = ffffff +cursor-color = ffffff +selection-background = 003f8e +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Tomorrow Night Bright b/bin/share/ghostty/themes/Tomorrow Night Bright new file mode 100644 index 0000000..c722b93 --- /dev/null +++ b/bin/share/ghostty/themes/Tomorrow Night Bright @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d54e53 +palette = 2=#b9ca4a +palette = 3=#e7c547 +palette = 4=#7aa6da +palette = 5=#c397d8 +palette = 6=#70c0b1 +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#d54e53 +palette = 10=#b9ca4a +palette = 11=#e7c547 +palette = 12=#7aa6da +palette = 13=#c397d8 +palette = 14=#70c0b1 +palette = 15=#ffffff +background = 000000 +foreground = eaeaea +cursor-color = eaeaea +selection-background = 424242 +selection-foreground = eaeaea diff --git a/bin/share/ghostty/themes/Tomorrow Night Burns b/bin/share/ghostty/themes/Tomorrow Night Burns new file mode 100644 index 0000000..da8d9f2 --- /dev/null +++ b/bin/share/ghostty/themes/Tomorrow Night Burns @@ -0,0 +1,21 @@ +palette = 0=#252525 +palette = 1=#832e31 +palette = 2=#a63c40 +palette = 3=#d3494e +palette = 4=#fc595f +palette = 5=#df9395 +palette = 6=#ba8586 +palette = 7=#f5f5f5 +palette = 8=#5d6f71 +palette = 9=#832e31 +palette = 10=#a63c40 +palette = 11=#d2494e +palette = 12=#fc595f +palette = 13=#df9395 +palette = 14=#ba8586 +palette = 15=#f5f5f5 +background = 151515 +foreground = a1b0b8 +cursor-color = ff443e +selection-background = b0bec5 +selection-foreground = 2a2d32 diff --git a/bin/share/ghostty/themes/Tomorrow Night Eighties b/bin/share/ghostty/themes/Tomorrow Night Eighties new file mode 100644 index 0000000..427e176 --- /dev/null +++ b/bin/share/ghostty/themes/Tomorrow Night Eighties @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f2777a +palette = 2=#99cc99 +palette = 3=#ffcc66 +palette = 4=#6699cc +palette = 5=#cc99cc +palette = 6=#66cccc +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#f2777a +palette = 10=#99cc99 +palette = 11=#ffcc66 +palette = 12=#6699cc +palette = 13=#cc99cc +palette = 14=#66cccc +palette = 15=#ffffff +background = 2d2d2d +foreground = cccccc +cursor-color = cccccc +selection-background = 515151 +selection-foreground = cccccc diff --git a/bin/share/ghostty/themes/ToyChest b/bin/share/ghostty/themes/ToyChest new file mode 100644 index 0000000..d60ffc4 --- /dev/null +++ b/bin/share/ghostty/themes/ToyChest @@ -0,0 +1,21 @@ +palette = 0=#2c3f58 +palette = 1=#be2d26 +palette = 2=#1a9172 +palette = 3=#db8e27 +palette = 4=#325d96 +palette = 5=#8a5edc +palette = 6=#35a08f +palette = 7=#23d183 +palette = 8=#336889 +palette = 9=#dd5944 +palette = 10=#31d07b +palette = 11=#e7d84b +palette = 12=#34a6da +palette = 13=#ae6bdc +palette = 14=#42c3ae +palette = 15=#d5d5d5 +background = 24364b +foreground = 31d07b +cursor-color = d5d5d5 +selection-background = 5f217a +selection-foreground = d5d5d5 diff --git a/bin/share/ghostty/themes/Treehouse b/bin/share/ghostty/themes/Treehouse new file mode 100644 index 0000000..5becee3 --- /dev/null +++ b/bin/share/ghostty/themes/Treehouse @@ -0,0 +1,21 @@ +palette = 0=#321300 +palette = 1=#b2270e +palette = 2=#44a900 +palette = 3=#aa820c +palette = 4=#58859a +palette = 5=#97363d +palette = 6=#b25a1e +palette = 7=#786b53 +palette = 8=#433626 +palette = 9=#ed5d20 +palette = 10=#55f238 +palette = 11=#f2b732 +palette = 12=#85cfed +palette = 13=#e14c5a +palette = 14=#f07d14 +palette = 15=#ffc800 +background = 191919 +foreground = 786b53 +cursor-color = fac814 +selection-background = 786b53 +selection-foreground = fac800 diff --git a/bin/share/ghostty/themes/Twilight b/bin/share/ghostty/themes/Twilight new file mode 100644 index 0000000..5150a36 --- /dev/null +++ b/bin/share/ghostty/themes/Twilight @@ -0,0 +1,21 @@ +palette = 0=#141414 +palette = 1=#c06d44 +palette = 2=#afb97a +palette = 3=#c2a86c +palette = 4=#44474a +palette = 5=#b4be7c +palette = 6=#778385 +palette = 7=#ffffd4 +palette = 8=#262626 +palette = 9=#de7c4c +palette = 10=#ccd88c +palette = 11=#e2c47e +palette = 12=#5a5e62 +palette = 13=#d0dc8e +palette = 14=#8a989b +palette = 15=#ffffd4 +background = 141414 +foreground = ffffd4 +cursor-color = ffffff +selection-background = 313131 +selection-foreground = ffffd4 diff --git a/bin/share/ghostty/themes/Ubuntu b/bin/share/ghostty/themes/Ubuntu new file mode 100644 index 0000000..8414a0e --- /dev/null +++ b/bin/share/ghostty/themes/Ubuntu @@ -0,0 +1,21 @@ +palette = 0=#2e3436 +palette = 1=#cc0000 +palette = 2=#4e9a06 +palette = 3=#c4a000 +palette = 4=#3465a4 +palette = 5=#75507b +palette = 6=#06989a +palette = 7=#d3d7cf +palette = 8=#555753 +palette = 9=#ef2929 +palette = 10=#8ae234 +palette = 11=#fce94f +palette = 12=#729fcf +palette = 13=#ad7fa8 +palette = 14=#34e2e2 +palette = 15=#eeeeec +background = 300a24 +foreground = eeeeec +cursor-color = bbbbbb +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/UltraDark b/bin/share/ghostty/themes/UltraDark new file mode 100644 index 0000000..20990e7 --- /dev/null +++ b/bin/share/ghostty/themes/UltraDark @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f07178 +palette = 2=#c3e88d +palette = 3=#ffcb6b +palette = 4=#82aaff +palette = 5=#c792ea +palette = 6=#89ddff +palette = 7=#cccccc +palette = 8=#333333 +palette = 9=#f6a9ae +palette = 10=#dbf1ba +palette = 11=#ffdfa6 +palette = 12=#b4ccff +palette = 13=#ddbdf2 +palette = 14=#b8eaff +palette = 15=#ffffff +background = 000000 +foreground = ffffff +cursor-color = fefefe +selection-background = 222222 +selection-foreground = cccccc diff --git a/bin/share/ghostty/themes/UltraViolent b/bin/share/ghostty/themes/UltraViolent new file mode 100644 index 0000000..d56b1c5 --- /dev/null +++ b/bin/share/ghostty/themes/UltraViolent @@ -0,0 +1,21 @@ +palette = 0=#242728 +palette = 1=#ff0090 +palette = 2=#b6ff00 +palette = 3=#fff727 +palette = 4=#47e0fb +palette = 5=#d731ff +palette = 6=#0effbb +palette = 7=#e1e1e1 +palette = 8=#636667 +palette = 9=#fb58b4 +palette = 10=#deff8c +palette = 11=#ebe087 +palette = 12=#7fecff +palette = 13=#e681ff +palette = 14=#69fcd3 +palette = 15=#f9f9f5 +background = 242728 +foreground = c1c1c1 +cursor-color = c1c1c1 +selection-background = 574c49 +selection-foreground = c3c7cb diff --git a/bin/share/ghostty/themes/UnderTheSea b/bin/share/ghostty/themes/UnderTheSea new file mode 100644 index 0000000..1c04766 --- /dev/null +++ b/bin/share/ghostty/themes/UnderTheSea @@ -0,0 +1,21 @@ +palette = 0=#022026 +palette = 1=#b2302d +palette = 2=#00a941 +palette = 3=#59819c +palette = 4=#459a86 +palette = 5=#00599d +palette = 6=#5d7e19 +palette = 7=#405555 +palette = 8=#384451 +palette = 9=#ff4242 +palette = 10=#2aea5e +palette = 11=#8ed4fd +palette = 12=#61d5ba +palette = 13=#1298ff +palette = 14=#98d028 +palette = 15=#58fbd6 +background = 011116 +foreground = ffffff +cursor-color = 4afcd6 +selection-background = 415555 +selection-foreground = 4dffda diff --git a/bin/share/ghostty/themes/Unikitty b/bin/share/ghostty/themes/Unikitty new file mode 100644 index 0000000..66dd6da --- /dev/null +++ b/bin/share/ghostty/themes/Unikitty @@ -0,0 +1,21 @@ +palette = 0=#0c0c0c +palette = 1=#a80f20 +palette = 2=#bafc8b +palette = 3=#eedf4b +palette = 4=#145fcd +palette = 5=#ff36a2 +palette = 6=#6bd1bc +palette = 7=#e2d7e1 +palette = 8=#434343 +palette = 9=#d91329 +palette = 10=#d3ffaf +palette = 11=#ffef50 +palette = 12=#0075ea +palette = 13=#fdd5e5 +palette = 14=#79ecd5 +palette = 15=#fff3fe +background = ff8cd9 +foreground = 0b0b0b +cursor-color = bafc8b +selection-background = 3ea9fe +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Urple b/bin/share/ghostty/themes/Urple new file mode 100644 index 0000000..3e21d79 --- /dev/null +++ b/bin/share/ghostty/themes/Urple @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#b0425b +palette = 2=#37a415 +palette = 3=#ad5c42 +palette = 4=#564d9b +palette = 5=#6c3ca1 +palette = 6=#808080 +palette = 7=#87799c +palette = 8=#5d3225 +palette = 9=#ff6388 +palette = 10=#29e620 +palette = 11=#f08161 +palette = 12=#867aed +palette = 13=#a05eee +palette = 14=#eaeaea +palette = 15=#bfa3ff +background = 1b1b23 +foreground = 877a9b +cursor-color = a063eb +selection-background = a063eb +selection-foreground = 1b1b22 diff --git a/bin/share/ghostty/themes/Vaughn b/bin/share/ghostty/themes/Vaughn new file mode 100644 index 0000000..92b4cf7 --- /dev/null +++ b/bin/share/ghostty/themes/Vaughn @@ -0,0 +1,21 @@ +palette = 0=#25234f +palette = 1=#705050 +palette = 2=#60b48a +palette = 3=#dfaf8f +palette = 4=#5555ff +palette = 5=#f08cc3 +palette = 6=#8cd0d3 +palette = 7=#709080 +palette = 8=#709080 +palette = 9=#dca3a3 +palette = 10=#60b48a +palette = 11=#f0dfaf +palette = 12=#5555ff +palette = 13=#ec93d3 +palette = 14=#93e0e3 +palette = 15=#ffffff +background = 25234f +foreground = dcdccc +cursor-color = ff5555 +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/VibrantInk b/bin/share/ghostty/themes/VibrantInk new file mode 100644 index 0000000..f30c47f --- /dev/null +++ b/bin/share/ghostty/themes/VibrantInk @@ -0,0 +1,21 @@ +palette = 0=#878787 +palette = 1=#ff6600 +palette = 2=#ccff04 +palette = 3=#ffcc00 +palette = 4=#44b4cc +palette = 5=#9933cc +palette = 6=#44b4cc +palette = 7=#f5f5f5 +palette = 8=#555555 +palette = 9=#ff0000 +palette = 10=#00ff00 +palette = 11=#ffff00 +palette = 12=#0000ff +palette = 13=#ff00ff +palette = 14=#00ffff +palette = 15=#e5e5e5 +background = 000000 +foreground = ffffff +cursor-color = ffffff +selection-background = b5d5ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Violet Dark b/bin/share/ghostty/themes/Violet Dark new file mode 100644 index 0000000..068b254 --- /dev/null +++ b/bin/share/ghostty/themes/Violet Dark @@ -0,0 +1,21 @@ +palette = 0=#56595c +palette = 1=#c94c22 +palette = 2=#85981c +palette = 3=#b4881d +palette = 4=#2e8bce +palette = 5=#d13a82 +palette = 6=#32a198 +palette = 7=#c9c6bd +palette = 8=#45484b +palette = 9=#bd3613 +palette = 10=#738a04 +palette = 11=#a57705 +palette = 12=#2176c7 +palette = 13=#c61c6f +palette = 14=#259286 +palette = 15=#c9c6bd +background = 1c1d1f +foreground = 708284 +cursor-color = 708284 +selection-background = 595ab7 +selection-foreground = 1c1d1f diff --git a/bin/share/ghostty/themes/Violet Light b/bin/share/ghostty/themes/Violet Light new file mode 100644 index 0000000..a4f52ec --- /dev/null +++ b/bin/share/ghostty/themes/Violet Light @@ -0,0 +1,21 @@ +palette = 0=#56595c +palette = 1=#c94c22 +palette = 2=#85981c +palette = 3=#b4881d +palette = 4=#2e8bce +palette = 5=#d13a82 +palette = 6=#32a198 +palette = 7=#d3d0c9 +palette = 8=#45484b +palette = 9=#bd3613 +palette = 10=#738a04 +palette = 11=#a57705 +palette = 12=#2176c7 +palette = 13=#c61c6f +palette = 14=#259286 +palette = 15=#c9c6bd +background = fcf4dc +foreground = 536870 +cursor-color = 536870 +selection-background = 595ab7 +selection-foreground = fcf4dc diff --git a/bin/share/ghostty/themes/WarmNeon b/bin/share/ghostty/themes/WarmNeon new file mode 100644 index 0000000..99b510e --- /dev/null +++ b/bin/share/ghostty/themes/WarmNeon @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#e24346 +palette = 2=#39b13a +palette = 3=#dae145 +palette = 4=#4261c5 +palette = 5=#f920fb +palette = 6=#2abbd4 +palette = 7=#d0b8a3 +palette = 8=#fefcfc +palette = 9=#e97071 +palette = 10=#9cc090 +palette = 11=#ddda7a +palette = 12=#7b91d6 +palette = 13=#f674ba +palette = 14=#5ed1e5 +palette = 15=#d8c8bb +background = 404040 +foreground = afdab6 +cursor-color = 30ff24 +selection-background = b0ad21 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Wez b/bin/share/ghostty/themes/Wez new file mode 100644 index 0000000..348010c --- /dev/null +++ b/bin/share/ghostty/themes/Wez @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#cc5555 +palette = 2=#55cc55 +palette = 3=#cdcd55 +palette = 4=#5555cc +palette = 5=#cc55cc +palette = 6=#7acaca +palette = 7=#cccccc +palette = 8=#555555 +palette = 9=#ff5555 +palette = 10=#55ff55 +palette = 11=#ffff55 +palette = 12=#5555ff +palette = 13=#ff55ff +palette = 14=#55ffff +palette = 15=#ffffff +background = 000000 +foreground = b3b3b3 +cursor-color = 53ae71 +selection-background = 4d52f8 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/Whimsy b/bin/share/ghostty/themes/Whimsy new file mode 100644 index 0000000..798958e --- /dev/null +++ b/bin/share/ghostty/themes/Whimsy @@ -0,0 +1,21 @@ +palette = 0=#535178 +palette = 1=#ef6487 +palette = 2=#5eca89 +palette = 3=#fdd877 +palette = 4=#65aef7 +palette = 5=#aa7ff0 +palette = 6=#43c1be +palette = 7=#ffffff +palette = 8=#535178 +palette = 9=#ef6487 +palette = 10=#5eca89 +palette = 11=#fdd877 +palette = 12=#65aef7 +palette = 13=#aa7ff0 +palette = 14=#43c1be +palette = 15=#ffffff +background = 29283b +foreground = b3b0d6 +cursor-color = b3b0d6 +selection-background = 3d3c58 +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/WildCherry b/bin/share/ghostty/themes/WildCherry new file mode 100644 index 0000000..7523e40 --- /dev/null +++ b/bin/share/ghostty/themes/WildCherry @@ -0,0 +1,21 @@ +palette = 0=#000507 +palette = 1=#d94085 +palette = 2=#2ab250 +palette = 3=#ffd16f +palette = 4=#883cdc +palette = 5=#ececec +palette = 6=#c1b8b7 +palette = 7=#fff8de +palette = 8=#009cc9 +palette = 9=#da6bac +palette = 10=#f4dca5 +palette = 11=#eac066 +palette = 12=#308cba +palette = 13=#ae636b +palette = 14=#ff919d +palette = 15=#e4838d +background = 1f1726 +foreground = dafaff +cursor-color = dd00ff +selection-background = 002831 +selection-foreground = e4ffff diff --git a/bin/share/ghostty/themes/Wombat b/bin/share/ghostty/themes/Wombat new file mode 100644 index 0000000..1c47910 --- /dev/null +++ b/bin/share/ghostty/themes/Wombat @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff615a +palette = 2=#b1e969 +palette = 3=#ebd99c +palette = 4=#5da9f6 +palette = 5=#e86aff +palette = 6=#82fff7 +palette = 7=#dedacf +palette = 8=#313131 +palette = 9=#f58c80 +palette = 10=#ddf88f +palette = 11=#eee5b2 +palette = 12=#a5c7ff +palette = 13=#ddaaff +palette = 14=#b7fff9 +palette = 15=#ffffff +background = 171717 +foreground = dedacf +cursor-color = bbbbbb +selection-background = 453b39 +selection-foreground = b6bbc0 diff --git a/bin/share/ghostty/themes/Wryan b/bin/share/ghostty/themes/Wryan new file mode 100644 index 0000000..7f125bd --- /dev/null +++ b/bin/share/ghostty/themes/Wryan @@ -0,0 +1,21 @@ +palette = 0=#333333 +palette = 1=#8c4665 +palette = 2=#287373 +palette = 3=#7c7c99 +palette = 4=#395573 +palette = 5=#5e468c +palette = 6=#31658c +palette = 7=#899ca1 +palette = 8=#3d3d3d +palette = 9=#bf4d80 +palette = 10=#53a6a6 +palette = 11=#9e9ecb +palette = 12=#477ab3 +palette = 13=#7e62b3 +palette = 14=#6096bf +palette = 15=#c0c0c0 +background = 101010 +foreground = 999993 +cursor-color = 9e9ecb +selection-background = 4d4d4d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/Zenburn b/bin/share/ghostty/themes/Zenburn new file mode 100644 index 0000000..cb88aeb --- /dev/null +++ b/bin/share/ghostty/themes/Zenburn @@ -0,0 +1,21 @@ +palette = 0=#4d4d4d +palette = 1=#705050 +palette = 2=#60b48a +palette = 3=#f0dfaf +palette = 4=#506070 +palette = 5=#dc8cc3 +palette = 6=#8cd0d3 +palette = 7=#dcdccc +palette = 8=#709080 +palette = 9=#dca3a3 +palette = 10=#c3bf9f +palette = 11=#e0cf9f +palette = 12=#94bff3 +palette = 13=#ec93d3 +palette = 14=#93e0e3 +palette = 15=#ffffff +background = 3f3f3f +foreground = dcdccc +cursor-color = 73635a +selection-background = 21322f +selection-foreground = c2d87a diff --git a/bin/share/ghostty/themes/arcoiris b/bin/share/ghostty/themes/arcoiris new file mode 100644 index 0000000..f771dab --- /dev/null +++ b/bin/share/ghostty/themes/arcoiris @@ -0,0 +1,21 @@ +palette = 0=#333333 +palette = 1=#da2700 +palette = 2=#12c258 +palette = 3=#ffc656 +palette = 4=#518bfc +palette = 5=#e37bd9 +palette = 6=#63fad5 +palette = 7=#bab2b2 +palette = 8=#777777 +palette = 9=#ffb9b9 +palette = 10=#e3f6aa +palette = 11=#ffddaa +palette = 12=#b3e8f3 +palette = 13=#cbbaf9 +palette = 14=#bcffc7 +palette = 15=#efefef +background = 201f1e +foreground = eee4d9 +cursor-color = 7a1c1c +selection-background = 25524a +selection-foreground = f3fffd diff --git a/bin/share/ghostty/themes/ayu b/bin/share/ghostty/themes/ayu new file mode 100644 index 0000000..113df3c --- /dev/null +++ b/bin/share/ghostty/themes/ayu @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff3333 +palette = 2=#b8cc52 +palette = 3=#e7c547 +palette = 4=#36a3d9 +palette = 5=#f07178 +palette = 6=#95e6cb +palette = 7=#ffffff +palette = 8=#323232 +palette = 9=#ff6565 +palette = 10=#eafe84 +palette = 11=#fff779 +palette = 12=#68d5ff +palette = 13=#ffa3aa +palette = 14=#c7fffd +palette = 15=#ffffff +background = 0f1419 +foreground = e6e1cf +cursor-color = f29718 +selection-background = 253340 +selection-foreground = e6e1cf diff --git a/bin/share/ghostty/themes/ayu_light b/bin/share/ghostty/themes/ayu_light new file mode 100644 index 0000000..8aada9a --- /dev/null +++ b/bin/share/ghostty/themes/ayu_light @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff3333 +palette = 2=#86b300 +palette = 3=#f29718 +palette = 4=#41a6d9 +palette = 5=#f07178 +palette = 6=#4dbf99 +palette = 7=#ffffff +palette = 8=#323232 +palette = 9=#ff6565 +palette = 10=#b8e532 +palette = 11=#ffc94a +palette = 12=#73d8ff +palette = 13=#ffa3aa +palette = 14=#7ff1cb +palette = 15=#ffffff +background = fafafa +foreground = 5c6773 +cursor-color = ff6a00 +selection-background = f0eee4 +selection-foreground = 5c6773 diff --git a/bin/share/ghostty/themes/catppuccin-frappe b/bin/share/ghostty/themes/catppuccin-frappe new file mode 100644 index 0000000..0ebebb6 --- /dev/null +++ b/bin/share/ghostty/themes/catppuccin-frappe @@ -0,0 +1,21 @@ +palette = 0=#51576d +palette = 1=#e78284 +palette = 2=#a6d189 +palette = 3=#e5c890 +palette = 4=#8caaee +palette = 5=#f4b8e4 +palette = 6=#81c8be +palette = 7=#a5adce +palette = 8=#626880 +palette = 9=#e67172 +palette = 10=#8ec772 +palette = 11=#d9ba73 +palette = 12=#7b9ef0 +palette = 13=#f2a4db +palette = 14=#5abfb5 +palette = 15=#b5bfe2 +background = 303446 +foreground = c6d0f5 +cursor-color = f2d5cf +selection-background = 626880 +selection-foreground = c6d0f5 diff --git a/bin/share/ghostty/themes/catppuccin-latte b/bin/share/ghostty/themes/catppuccin-latte new file mode 100644 index 0000000..d94fe8e --- /dev/null +++ b/bin/share/ghostty/themes/catppuccin-latte @@ -0,0 +1,21 @@ +palette = 0=#5c5f77 +palette = 1=#d20f39 +palette = 2=#40a02b +palette = 3=#df8e1d +palette = 4=#1e66f5 +palette = 5=#ea76cb +palette = 6=#179299 +palette = 7=#acb0be +palette = 8=#6c6f85 +palette = 9=#de293e +palette = 10=#49af3d +palette = 11=#eea02d +palette = 12=#456eff +palette = 13=#fe85d8 +palette = 14=#2d9fa8 +palette = 15=#bcc0cc +background = eff1f5 +foreground = 4c4f69 +cursor-color = dc8a78 +selection-background = acb0be +selection-foreground = 4c4f69 diff --git a/bin/share/ghostty/themes/catppuccin-macchiato b/bin/share/ghostty/themes/catppuccin-macchiato new file mode 100644 index 0000000..1ca9eb2 --- /dev/null +++ b/bin/share/ghostty/themes/catppuccin-macchiato @@ -0,0 +1,21 @@ +palette = 0=#494d64 +palette = 1=#ed8796 +palette = 2=#a6da95 +palette = 3=#eed49f +palette = 4=#8aadf4 +palette = 5=#f5bde6 +palette = 6=#8bd5ca +palette = 7=#a5adcb +palette = 8=#5b6078 +palette = 9=#ec7486 +palette = 10=#8ccf7f +palette = 11=#e1c682 +palette = 12=#78a1f6 +palette = 13=#f2a9dd +palette = 14=#63cbc0 +palette = 15=#b8c0e0 +background = 24273a +foreground = cad3f5 +cursor-color = f4dbd6 +selection-background = 5b6078 +selection-foreground = cad3f5 diff --git a/bin/share/ghostty/themes/catppuccin-mocha b/bin/share/ghostty/themes/catppuccin-mocha new file mode 100644 index 0000000..4832ec2 --- /dev/null +++ b/bin/share/ghostty/themes/catppuccin-mocha @@ -0,0 +1,21 @@ +palette = 0=#45475a +palette = 1=#f38ba8 +palette = 2=#a6e3a1 +palette = 3=#f9e2af +palette = 4=#89b4fa +palette = 5=#f5c2e7 +palette = 6=#94e2d5 +palette = 7=#a6adc8 +palette = 8=#585b70 +palette = 9=#f37799 +palette = 10=#89d88b +palette = 11=#ebd391 +palette = 12=#74a8fc +palette = 13=#f2aede +palette = 14=#6bd7ca +palette = 15=#bac2de +background = 1e1e2e +foreground = cdd6f4 +cursor-color = f5e0dc +selection-background = 585b70 +selection-foreground = cdd6f4 diff --git a/bin/share/ghostty/themes/coffee_theme b/bin/share/ghostty/themes/coffee_theme new file mode 100644 index 0000000..4e3cd75 --- /dev/null +++ b/bin/share/ghostty/themes/coffee_theme @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c91b00 +palette = 2=#00c200 +palette = 3=#c7c400 +palette = 4=#0225c7 +palette = 5=#ca30c7 +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#ff77ff +palette = 14=#60fdff +palette = 15=#ffffff +background = f5deb3 +foreground = 000000 +cursor-color = c7c7c7 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/cyberpunk b/bin/share/ghostty/themes/cyberpunk new file mode 100644 index 0000000..a056e8d --- /dev/null +++ b/bin/share/ghostty/themes/cyberpunk @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#ff7092 +palette = 2=#00fbac +palette = 3=#fffa6a +palette = 4=#00bfff +palette = 5=#df95ff +palette = 6=#86cbfe +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#ff8aa4 +palette = 10=#21f6bc +palette = 11=#fff787 +palette = 12=#1bccfd +palette = 13=#e6aefe +palette = 14=#99d6fc +palette = 15=#ffffff +background = 332a57 +foreground = e5e5e5 +cursor-color = 21f6bc +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/darkermatrix b/bin/share/ghostty/themes/darkermatrix new file mode 100644 index 0000000..19cf855 --- /dev/null +++ b/bin/share/ghostty/themes/darkermatrix @@ -0,0 +1,21 @@ +palette = 0=#091013 +palette = 1=#002e18 +palette = 2=#6fa64c +palette = 3=#595900 +palette = 4=#00cb6b +palette = 5=#412a4d +palette = 6=#125459 +palette = 7=#002e19 +palette = 8=#333333 +palette = 9=#00381d +palette = 10=#90d762 +palette = 11=#e2e500 +palette = 12=#00ff87 +palette = 13=#412a4d +palette = 14=#176c73 +palette = 15=#00381e +background = 070c0e +foreground = 28380d +cursor-color = 373a26 +selection-background = 0f191c +selection-foreground = 00ff87 diff --git a/bin/share/ghostty/themes/darkmatrix b/bin/share/ghostty/themes/darkmatrix new file mode 100644 index 0000000..5fa951a --- /dev/null +++ b/bin/share/ghostty/themes/darkmatrix @@ -0,0 +1,21 @@ +palette = 0=#091013 +palette = 1=#006536 +palette = 2=#6fa64c +palette = 3=#7e8000 +palette = 4=#2c9a84 +palette = 5=#452d53 +palette = 6=#114d53 +palette = 7=#006536 +palette = 8=#333333 +palette = 9=#00733d +palette = 10=#90d762 +palette = 11=#e2e500 +palette = 12=#46d8b8 +palette = 13=#4a3059 +palette = 14=#12545a +palette = 15=#006536 +background = 070c0e +foreground = 3e5715 +cursor-color = 9fa86e +selection-background = 0f191c +selection-foreground = 00ff87 diff --git a/bin/share/ghostty/themes/dayfox b/bin/share/ghostty/themes/dayfox new file mode 100644 index 0000000..bbb019f --- /dev/null +++ b/bin/share/ghostty/themes/dayfox @@ -0,0 +1,21 @@ +palette = 0=#352c24 +palette = 1=#a5222f +palette = 2=#396847 +palette = 3=#ac5402 +palette = 4=#2848a9 +palette = 5=#6e33ce +palette = 6=#287980 +palette = 7=#f2e9e1 +palette = 8=#534c45 +palette = 9=#b3434e +palette = 10=#577f63 +palette = 11=#b86e28 +palette = 12=#4863b6 +palette = 13=#8452d5 +palette = 14=#488d93 +palette = 15=#f4ece6 +background = f6f2ee +foreground = 3d2b5a +cursor-color = 3d2b5a +selection-background = e7d2be +selection-foreground = 3d2b5a diff --git a/bin/share/ghostty/themes/deep b/bin/share/ghostty/themes/deep new file mode 100644 index 0000000..9ec1f19 --- /dev/null +++ b/bin/share/ghostty/themes/deep @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d70005 +palette = 2=#1cd915 +palette = 3=#d9bd26 +palette = 4=#5665ff +palette = 5=#b052da +palette = 6=#50d2da +palette = 7=#e0e0e0 +palette = 8=#535353 +palette = 9=#fb0007 +palette = 10=#22ff18 +palette = 11=#fedc2b +palette = 12=#9fa9ff +palette = 13=#e09aff +palette = 14=#8df9ff +palette = 15=#ffffff +background = 090909 +foreground = cdcdcd +cursor-color = d0d0d0 +selection-background = 780002 +selection-foreground = ececec diff --git a/bin/share/ghostty/themes/duckbones b/bin/share/ghostty/themes/duckbones new file mode 100644 index 0000000..4cdf30e --- /dev/null +++ b/bin/share/ghostty/themes/duckbones @@ -0,0 +1,21 @@ +palette = 0=#0e101a +palette = 1=#e03600 +palette = 2=#5dcd97 +palette = 3=#e39500 +palette = 4=#00a3cb +palette = 5=#795ccc +palette = 6=#00a3cb +palette = 7=#ebefc0 +palette = 8=#2b2f46 +palette = 9=#ff4821 +palette = 10=#58db9e +palette = 11=#f6a100 +palette = 12=#00b4e0 +palette = 13=#b3a1e6 +palette = 14=#00b4e0 +palette = 15=#b3b692 +background = 0e101a +foreground = ebefc0 +cursor-color = edf2c2 +selection-background = 37382d +selection-foreground = ebefc0 diff --git a/bin/share/ghostty/themes/farmhouse-dark b/bin/share/ghostty/themes/farmhouse-dark new file mode 100644 index 0000000..0aabbc1 --- /dev/null +++ b/bin/share/ghostty/themes/farmhouse-dark @@ -0,0 +1,21 @@ +palette = 0=#1d2027 +palette = 1=#ba0004 +palette = 2=#549d00 +palette = 3=#c87300 +palette = 4=#0049e6 +palette = 5=#9f1b61 +palette = 6=#1fb65c +palette = 7=#e8e4e1 +palette = 8=#394047 +palette = 9=#eb0009 +palette = 10=#7ac100 +palette = 11=#ea9a00 +palette = 12=#006efe +palette = 13=#bf3b7f +palette = 14=#19e062 +palette = 15=#f4eef0 +background = 1d2027 +foreground = e8e4e1 +cursor-color = 006efe +selection-background = 4d5658 +selection-foreground = b3b1aa diff --git a/bin/share/ghostty/themes/farmhouse-light b/bin/share/ghostty/themes/farmhouse-light new file mode 100644 index 0000000..eeaf06e --- /dev/null +++ b/bin/share/ghostty/themes/farmhouse-light @@ -0,0 +1,21 @@ +palette = 0=#1d2027 +palette = 1=#8d0003 +palette = 2=#3a7d00 +palette = 3=#a95600 +palette = 4=#092ccd +palette = 5=#820046 +palette = 6=#229256 +palette = 7=#e8e4e1 +palette = 8=#394047 +palette = 9=#eb0009 +palette = 10=#7ac100 +palette = 11=#ea9a00 +palette = 12=#006efe +palette = 13=#bf3b7f +palette = 14=#19e062 +palette = 15=#f4eef0 +background = e8e4e1 +foreground = 1d2027 +cursor-color = 006efe +selection-background = b3b1aa +selection-foreground = 4d5658 diff --git a/bin/share/ghostty/themes/flexoki-dark b/bin/share/ghostty/themes/flexoki-dark new file mode 100644 index 0000000..08bd68b --- /dev/null +++ b/bin/share/ghostty/themes/flexoki-dark @@ -0,0 +1,21 @@ +palette = 0=#1c1b1a +palette = 1=#d14d41 +palette = 2=#879a39 +palette = 3=#d0a215 +palette = 4=#4385be +palette = 5=#ce5d97 +palette = 6=#3aa99f +palette = 7=#b7b5ac +palette = 8=#575653 +palette = 9=#d14d41 +palette = 10=#879a39 +palette = 11=#d0a215 +palette = 12=#4385be +palette = 13=#ce5d97 +palette = 14=#3aa99f +palette = 15=#cecdc3 +background = 1c1b1a +foreground = cecdc3 +cursor-color = cecdc3 +selection-background = cecdc3 +selection-foreground = 4385be diff --git a/bin/share/ghostty/themes/flexoki-light b/bin/share/ghostty/themes/flexoki-light new file mode 100644 index 0000000..1b17e21 --- /dev/null +++ b/bin/share/ghostty/themes/flexoki-light @@ -0,0 +1,21 @@ +palette = 0=#100f0f +palette = 1=#af3029 +palette = 2=#66800b +palette = 3=#ad8301 +palette = 4=#205ea6 +palette = 5=#a02f6f +palette = 6=#24837b +palette = 7=#f2f0e5 +palette = 8=#575653 +palette = 9=#d14d41 +palette = 10=#879a39 +palette = 11=#d0a215 +palette = 12=#4385be +palette = 13=#ce5d97 +palette = 14=#3aa99f +palette = 15=#fffcf0 +background = fffcf0 +foreground = 100f0f +cursor-color = 100f0f +selection-background = cecdc3 +selection-foreground = 100f0f diff --git a/bin/share/ghostty/themes/gruber-darker b/bin/share/ghostty/themes/gruber-darker new file mode 100644 index 0000000..d53a168 --- /dev/null +++ b/bin/share/ghostty/themes/gruber-darker @@ -0,0 +1,21 @@ +palette = 0=#181818 +palette = 1=#f43841 +palette = 2=#73d936 +palette = 3=#ffdd33 +palette = 4=#96a6c8 +palette = 5=#9e95c7 +palette = 6=#95a99f +palette = 7=#e4e4e4 +palette = 8=#52494e +palette = 9=#ff4f58 +palette = 10=#73d936 +palette = 11=#ffdd33 +palette = 12=#96a6c8 +palette = 13=#afafd7 +palette = 14=#95a99f +palette = 15=#f5f5f5 +background = 181818 +foreground = e4e4e4 +cursor-color = ffdd33 +selection-background = ffffff +selection-foreground = 52494e diff --git a/bin/share/ghostty/themes/gruvbox-material b/bin/share/ghostty/themes/gruvbox-material new file mode 100644 index 0000000..383c66c --- /dev/null +++ b/bin/share/ghostty/themes/gruvbox-material @@ -0,0 +1,21 @@ +palette = 0=#141617 +palette = 1=#ea6926 +palette = 2=#c1d041 +palette = 3=#eecf75 +palette = 4=#6da3ec +palette = 5=#fd9bc1 +palette = 6=#fe9d6e +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#d3573b +palette = 10=#c1d041 +palette = 11=#eecf75 +palette = 12=#2c86ff +palette = 13=#fd9bc1 +palette = 14=#92a5df +palette = 15=#ffffff +background = 1d2021 +foreground = d4be98 +cursor-color = ffffff +selection-background = 2b2c3f +selection-foreground = 7cfb70 diff --git a/bin/share/ghostty/themes/heeler b/bin/share/ghostty/themes/heeler new file mode 100644 index 0000000..1b3548a --- /dev/null +++ b/bin/share/ghostty/themes/heeler @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d3573b +palette = 2=#c1d041 +palette = 3=#eecf75 +palette = 4=#6da3ec +palette = 5=#fd9bc1 +palette = 6=#fe9d6e +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#d3573b +palette = 10=#c1d041 +palette = 11=#eecf75 +palette = 12=#2c86ff +palette = 13=#fd9bc1 +palette = 14=#92a5df +palette = 15=#ffffff +background = 211f44 +foreground = fdfdfd +cursor-color = ffffff +selection-background = 2b2c3f +selection-foreground = 7cfb70 diff --git a/bin/share/ghostty/themes/iTerm2 Dark Background b/bin/share/ghostty/themes/iTerm2 Dark Background new file mode 100644 index 0000000..6665531 --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Dark Background @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c91b00 +palette = 2=#00c200 +palette = 3=#c7c400 +palette = 4=#0225c7 +palette = 5=#ca30c7 +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#ff77ff +palette = 14=#60fdff +palette = 15=#ffffff +background = 000000 +foreground = c7c7c7 +cursor-color = c7c7c7 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/iTerm2 Default b/bin/share/ghostty/themes/iTerm2 Default new file mode 100644 index 0000000..09dc82a --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Default @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c91b00 +palette = 2=#00c200 +palette = 3=#c7c400 +palette = 4=#2225c4 +palette = 5=#ca30c7 +palette = 6=#00c5c7 +palette = 7=#ffffff +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#ff77ff +palette = 14=#60fdff +palette = 15=#ffffff +background = 000000 +foreground = ffffff +cursor-color = e5e5e5 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/iTerm2 Light Background b/bin/share/ghostty/themes/iTerm2 Light Background new file mode 100644 index 0000000..cde57db --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Light Background @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#c91b00 +palette = 2=#00c200 +palette = 3=#c7c400 +palette = 4=#0225c7 +palette = 5=#ca30c7 +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#ff6e67 +palette = 10=#5ffa68 +palette = 11=#fffc67 +palette = 12=#6871ff +palette = 13=#ff77ff +palette = 14=#60fdff +palette = 15=#ffffff +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/iTerm2 Pastel Dark Background b/bin/share/ghostty/themes/iTerm2 Pastel Dark Background new file mode 100644 index 0000000..5532702 --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Pastel Dark Background @@ -0,0 +1,21 @@ +palette = 0=#626262 +palette = 1=#ff8373 +palette = 2=#b4fb73 +palette = 3=#fffdc3 +palette = 4=#a5d5fe +palette = 5=#ff90fe +palette = 6=#d1d1fe +palette = 7=#f1f1f1 +palette = 8=#8f8f8f +palette = 9=#ffc4be +palette = 10=#d6fcba +palette = 11=#fffed5 +palette = 12=#c2e3ff +palette = 13=#ffb2fe +palette = 14=#e6e6fe +palette = 15=#ffffff +background = 000000 +foreground = c7c7c7 +cursor-color = ffb473 +selection-background = 454d96 +selection-foreground = f4f4f4 diff --git a/bin/share/ghostty/themes/iTerm2 Smoooooth b/bin/share/ghostty/themes/iTerm2 Smoooooth new file mode 100644 index 0000000..3ae477b --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Smoooooth @@ -0,0 +1,21 @@ +palette = 0=#14191e +palette = 1=#b43c2a +palette = 2=#00c200 +palette = 3=#c7c400 +palette = 4=#2744c7 +palette = 5=#c040be +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#dd7975 +palette = 10=#58e790 +palette = 11=#ece100 +palette = 12=#a7abf2 +palette = 13=#e17ee1 +palette = 14=#60fdff +palette = 15=#ffffff +background = 15191f +foreground = dcdcdc +cursor-color = ffffff +selection-background = b3d7ff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/iTerm2 Solarized Dark b/bin/share/ghostty/themes/iTerm2 Solarized Dark new file mode 100644 index 0000000..0606812 --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Solarized Dark @@ -0,0 +1,21 @@ +palette = 0=#073642 +palette = 1=#dc322f +palette = 2=#859900 +palette = 3=#b58900 +palette = 4=#268bd2 +palette = 5=#d33682 +palette = 6=#2aa198 +palette = 7=#eee8d5 +palette = 8=#002b36 +palette = 9=#cb4b16 +palette = 10=#586e75 +palette = 11=#657b83 +palette = 12=#839496 +palette = 13=#6c71c4 +palette = 14=#93a1a1 +palette = 15=#fdf6e3 +background = 002b36 +foreground = 839496 +cursor-color = 839496 +selection-background = 073642 +selection-foreground = 93a1a1 diff --git a/bin/share/ghostty/themes/iTerm2 Solarized Light b/bin/share/ghostty/themes/iTerm2 Solarized Light new file mode 100644 index 0000000..39995b5 --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Solarized Light @@ -0,0 +1,21 @@ +palette = 0=#073642 +palette = 1=#dc322f +palette = 2=#859900 +palette = 3=#b58900 +palette = 4=#268bd2 +palette = 5=#d33682 +palette = 6=#2aa198 +palette = 7=#eee8d5 +palette = 8=#002b36 +palette = 9=#cb4b16 +palette = 10=#586e75 +palette = 11=#657b83 +palette = 12=#839496 +palette = 13=#6c71c4 +palette = 14=#93a1a1 +palette = 15=#fdf6e3 +background = fdf6e3 +foreground = 657b83 +cursor-color = 657b83 +selection-background = eee8d5 +selection-foreground = 586e75 diff --git a/bin/share/ghostty/themes/iTerm2 Tango Dark b/bin/share/ghostty/themes/iTerm2 Tango Dark new file mode 100644 index 0000000..cfa6a26 --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Tango Dark @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d81e00 +palette = 2=#5ea702 +palette = 3=#cfae00 +palette = 4=#427ab3 +palette = 5=#89658e +palette = 6=#00a7aa +palette = 7=#dbded8 +palette = 8=#686a66 +palette = 9=#f54235 +palette = 10=#99e343 +palette = 11=#fdeb61 +palette = 12=#84b0d8 +palette = 13=#bc94b7 +palette = 14=#37e6e8 +palette = 15=#f1f1f0 +background = 000000 +foreground = ffffff +cursor-color = ffffff +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/iTerm2 Tango Light b/bin/share/ghostty/themes/iTerm2 Tango Light new file mode 100644 index 0000000..b99b0e0 --- /dev/null +++ b/bin/share/ghostty/themes/iTerm2 Tango Light @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d81e00 +palette = 2=#5ea702 +palette = 3=#cfae00 +palette = 4=#427ab3 +palette = 5=#89658e +palette = 6=#00a7aa +palette = 7=#dbded8 +palette = 8=#686a66 +palette = 9=#f54235 +palette = 10=#99e343 +palette = 11=#fdeb61 +palette = 12=#84b0d8 +palette = 13=#bc94b7 +palette = 14=#37e6e8 +palette = 15=#f1f1f0 +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/iceberg-dark b/bin/share/ghostty/themes/iceberg-dark new file mode 100644 index 0000000..c83ab97 --- /dev/null +++ b/bin/share/ghostty/themes/iceberg-dark @@ -0,0 +1,21 @@ +palette = 0=#1e2132 +palette = 1=#e27878 +palette = 2=#b4be82 +palette = 3=#e2a478 +palette = 4=#84a0c6 +palette = 5=#a093c7 +palette = 6=#89b8c2 +palette = 7=#c6c8d1 +palette = 8=#6b7089 +palette = 9=#e98989 +palette = 10=#c0ca8e +palette = 11=#e9b189 +palette = 12=#91acd1 +palette = 13=#ada0d3 +palette = 14=#95c4ce +palette = 15=#d2d4de +background = 161821 +foreground = c6c8d1 +cursor-color = c6c8d1 +selection-background = c6c8d1 +selection-foreground = 161821 diff --git a/bin/share/ghostty/themes/iceberg-light b/bin/share/ghostty/themes/iceberg-light new file mode 100644 index 0000000..af48f94 --- /dev/null +++ b/bin/share/ghostty/themes/iceberg-light @@ -0,0 +1,21 @@ +palette = 0=#dcdfe7 +palette = 1=#cc517a +palette = 2=#668e3d +palette = 3=#c57339 +palette = 4=#2d539e +palette = 5=#7759b4 +palette = 6=#3f83a6 +palette = 7=#33374c +palette = 8=#8389a3 +palette = 9=#cc3768 +palette = 10=#598030 +palette = 11=#b6662d +palette = 12=#22478e +palette = 13=#6845ad +palette = 14=#327698 +palette = 15=#262a3f +background = e8e9ec +foreground = 33374c +cursor-color = 33374c +selection-background = 33374c +selection-foreground = e8e9ec diff --git a/bin/share/ghostty/themes/idea b/bin/share/ghostty/themes/idea new file mode 100644 index 0000000..f911999 --- /dev/null +++ b/bin/share/ghostty/themes/idea @@ -0,0 +1,21 @@ +palette = 0=#adadad +palette = 1=#fc5256 +palette = 2=#98b61c +palette = 3=#ccb444 +palette = 4=#437ee7 +palette = 5=#9d74b0 +palette = 6=#248887 +palette = 7=#181818 +palette = 8=#ffffff +palette = 9=#fc7072 +palette = 10=#98b61c +palette = 11=#ffff0b +palette = 12=#6c9ced +palette = 13=#fc7eff +palette = 14=#248887 +palette = 15=#181818 +background = 202020 +foreground = adadad +cursor-color = bbbbbb +selection-background = 44475a +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/idleToes b/bin/share/ghostty/themes/idleToes new file mode 100644 index 0000000..98504e5 --- /dev/null +++ b/bin/share/ghostty/themes/idleToes @@ -0,0 +1,21 @@ +palette = 0=#323232 +palette = 1=#d25252 +palette = 2=#7fe173 +palette = 3=#ffc66d +palette = 4=#4099ff +palette = 5=#f680ff +palette = 6=#bed6ff +palette = 7=#eeeeec +palette = 8=#535353 +palette = 9=#f07070 +palette = 10=#9dff91 +palette = 11=#ffe48b +palette = 12=#5eb7f7 +palette = 13=#ff9dff +palette = 14=#dcf4ff +palette = 15=#ffffff +background = 323232 +foreground = ffffff +cursor-color = d6d6d6 +selection-background = 5b5b5b +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/jubi b/bin/share/ghostty/themes/jubi new file mode 100644 index 0000000..be87547 --- /dev/null +++ b/bin/share/ghostty/themes/jubi @@ -0,0 +1,21 @@ +palette = 0=#3b3750 +palette = 1=#cf7b98 +palette = 2=#90a94b +palette = 3=#6ebfc0 +palette = 4=#576ea6 +palette = 5=#bc4f68 +palette = 6=#75a7d2 +palette = 7=#c3d3de +palette = 8=#a874ce +palette = 9=#de90ab +palette = 10=#bcdd61 +palette = 11=#87e9ea +palette = 12=#8c9fcd +palette = 13=#e16c87 +palette = 14=#b7c9ef +palette = 15=#d5e5f1 +background = 262b33 +foreground = c3d3de +cursor-color = c3d3de +selection-background = 5b5184 +selection-foreground = 1e1b2e diff --git a/bin/share/ghostty/themes/kanagawabones b/bin/share/ghostty/themes/kanagawabones new file mode 100644 index 0000000..43e0b40 --- /dev/null +++ b/bin/share/ghostty/themes/kanagawabones @@ -0,0 +1,21 @@ +palette = 0=#1f1f28 +palette = 1=#e46a78 +palette = 2=#98bc6d +palette = 3=#e5c283 +palette = 4=#7eb3c9 +palette = 5=#957fb8 +palette = 6=#7eb3c9 +palette = 7=#ddd8bb +palette = 8=#3c3c51 +palette = 9=#ec818c +palette = 10=#9ec967 +palette = 11=#f1c982 +palette = 12=#7bc2df +palette = 13=#a98fd2 +palette = 14=#7bc2df +palette = 15=#a8a48d +background = 1f1f28 +foreground = ddd8bb +cursor-color = e6e0c2 +selection-background = 49473e +selection-foreground = ddd8bb diff --git a/bin/share/ghostty/themes/kurokula b/bin/share/ghostty/themes/kurokula new file mode 100644 index 0000000..5b1dcb3 --- /dev/null +++ b/bin/share/ghostty/themes/kurokula @@ -0,0 +1,21 @@ +palette = 0=#333333 +palette = 1=#b66056 +palette = 2=#85b1a9 +palette = 3=#dbbb43 +palette = 4=#6890d7 +palette = 5=#887aa3 +palette = 6=#837369 +palette = 7=#ddd0c4 +palette = 8=#515151 +palette = 9=#ffc663 +palette = 10=#c1ffae +palette = 11=#fff700 +palette = 12=#a1d9ff +palette = 13=#a994ff +palette = 14=#f9cfb9 +palette = 15=#ffffff +background = 141515 +foreground = ddd0c4 +cursor-color = 702420 +selection-background = 515151 +selection-foreground = ffc663 diff --git a/bin/share/ghostty/themes/lovelace b/bin/share/ghostty/themes/lovelace new file mode 100644 index 0000000..8564a6c --- /dev/null +++ b/bin/share/ghostty/themes/lovelace @@ -0,0 +1,21 @@ +palette = 0=#282a36 +palette = 1=#f37f97 +palette = 2=#5adecd +palette = 3=#f2a272 +palette = 4=#8897f4 +palette = 5=#c574dd +palette = 6=#79e6f3 +palette = 7=#fdfdfd +palette = 8=#414458 +palette = 9=#ff4971 +palette = 10=#18e3c8 +palette = 11=#ff8037 +palette = 12=#556fff +palette = 13=#b043d1 +palette = 14=#3fdcee +palette = 15=#bebec1 +background = 1d1f28 +foreground = fdfdfd +cursor-color = c574dd +selection-background = c1deff +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/matrix b/bin/share/ghostty/themes/matrix new file mode 100644 index 0000000..bd4217f --- /dev/null +++ b/bin/share/ghostty/themes/matrix @@ -0,0 +1,21 @@ +palette = 0=#0f191c +palette = 1=#23755a +palette = 2=#82d967 +palette = 3=#ffd700 +palette = 4=#3f5242 +palette = 5=#409931 +palette = 6=#50b45a +palette = 7=#507350 +palette = 8=#688060 +palette = 9=#2fc079 +palette = 10=#90d762 +palette = 11=#faff00 +palette = 12=#4f7e7e +palette = 13=#11ff25 +palette = 14=#c1ff8a +palette = 15=#678c61 +background = 0f191c +foreground = 426644 +cursor-color = 384545 +selection-background = 18282e +selection-foreground = 00ff87 diff --git a/bin/share/ghostty/themes/mellow b/bin/share/ghostty/themes/mellow new file mode 100644 index 0000000..0770ef6 --- /dev/null +++ b/bin/share/ghostty/themes/mellow @@ -0,0 +1,21 @@ +palette = 0=#27272a +palette = 1=#f5a191 +palette = 2=#90b99f +palette = 3=#e6b99d +palette = 4=#aca1cf +palette = 5=#e29eca +palette = 6=#ea83a5 +palette = 7=#c1c0d4 +palette = 8=#353539 +palette = 9=#ffae9f +palette = 10=#9dc6ac +palette = 11=#f0c5a9 +palette = 12=#b9aeda +palette = 13=#ecaad6 +palette = 14=#f591b2 +palette = 15=#cac9dd +background = 161617 +foreground = c9c7cd +cursor-color = cac9dd +selection-background = 2a2a2d +selection-foreground = c1c0d4 diff --git a/bin/share/ghostty/themes/midnight-in-mojave b/bin/share/ghostty/themes/midnight-in-mojave new file mode 100644 index 0000000..f3b7a36 --- /dev/null +++ b/bin/share/ghostty/themes/midnight-in-mojave @@ -0,0 +1,21 @@ +palette = 0=#1e1e1e +palette = 1=#ff453a +palette = 2=#32d74b +palette = 3=#ffd60a +palette = 4=#0a84ff +palette = 5=#bf5af2 +palette = 6=#5ac8fa +palette = 7=#ffffff +palette = 8=#1e1e1e +palette = 9=#ff453a +palette = 10=#32d74b +palette = 11=#ffd60a +palette = 12=#0a84ff +palette = 13=#bf5af2 +palette = 14=#5ac8fa +palette = 15=#ffffff +background = 1e1e1e +foreground = ffffff +cursor-color = 32d74b +selection-background = 4a504d +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/neobones_dark b/bin/share/ghostty/themes/neobones_dark new file mode 100644 index 0000000..438c0cd --- /dev/null +++ b/bin/share/ghostty/themes/neobones_dark @@ -0,0 +1,21 @@ +palette = 0=#0f191f +palette = 1=#de6e7c +palette = 2=#90ff6b +palette = 3=#b77e64 +palette = 4=#8190d4 +palette = 5=#b279a7 +palette = 6=#66a5ad +palette = 7=#c6d5cf +palette = 8=#263945 +palette = 9=#e8838f +palette = 10=#a0ff85 +palette = 11=#d68c67 +palette = 12=#92a0e2 +palette = 13=#cf86c1 +palette = 14=#65b8c1 +palette = 15=#98a39e +background = 0f191f +foreground = c6d5cf +cursor-color = ceddd7 +selection-background = 3a3e3d +selection-foreground = c6d5cf diff --git a/bin/share/ghostty/themes/neobones_light b/bin/share/ghostty/themes/neobones_light new file mode 100644 index 0000000..f75283a --- /dev/null +++ b/bin/share/ghostty/themes/neobones_light @@ -0,0 +1,21 @@ +palette = 0=#e5ede6 +palette = 1=#a8334c +palette = 2=#567a30 +palette = 3=#944927 +palette = 4=#286486 +palette = 5=#88507d +palette = 6=#3b8992 +palette = 7=#202e18 +palette = 8=#b3c6b6 +palette = 9=#94253e +palette = 10=#3f5a22 +palette = 11=#803d1c +palette = 12=#1d5573 +palette = 13=#7b3b70 +palette = 14=#2b747c +palette = 15=#415934 +background = e5ede6 +foreground = 202e18 +cursor-color = 202e18 +selection-background = ade48c +selection-foreground = 202e18 diff --git a/bin/share/ghostty/themes/nightfox b/bin/share/ghostty/themes/nightfox new file mode 100644 index 0000000..7d61300 --- /dev/null +++ b/bin/share/ghostty/themes/nightfox @@ -0,0 +1,21 @@ +palette = 0=#393b44 +palette = 1=#c94f6d +palette = 2=#81b29a +palette = 3=#dbc074 +palette = 4=#719cd6 +palette = 5=#9d79d6 +palette = 6=#63cdcf +palette = 7=#dfdfe0 +palette = 8=#575860 +palette = 9=#d16983 +palette = 10=#8ebaa4 +palette = 11=#e0c989 +palette = 12=#86abdc +palette = 13=#baa1e2 +palette = 14=#7ad5d6 +palette = 15=#e4e4e5 +background = 192330 +foreground = cdcecf +cursor-color = cdcecf +selection-background = 2b3b51 +selection-foreground = cdcecf diff --git a/bin/share/ghostty/themes/niji b/bin/share/ghostty/themes/niji new file mode 100644 index 0000000..969360d --- /dev/null +++ b/bin/share/ghostty/themes/niji @@ -0,0 +1,21 @@ +palette = 0=#333333 +palette = 1=#d23e08 +palette = 2=#54ca74 +palette = 3=#fff700 +palette = 4=#2ab9ff +palette = 5=#ff50da +palette = 6=#1ef9f5 +palette = 7=#ddd0c4 +palette = 8=#515151 +palette = 9=#ffb7b7 +palette = 10=#c1ffae +palette = 11=#fcffb8 +palette = 12=#8efff3 +palette = 13=#ffa2ed +palette = 14=#bcffc7 +palette = 15=#ffffff +background = 141515 +foreground = ffffff +cursor-color = ffc663 +selection-background = 515151 +selection-foreground = ffc663 diff --git a/bin/share/ghostty/themes/nord b/bin/share/ghostty/themes/nord new file mode 100644 index 0000000..2a99d92 --- /dev/null +++ b/bin/share/ghostty/themes/nord @@ -0,0 +1,21 @@ +palette = 0=#3b4252 +palette = 1=#bf616a +palette = 2=#a3be8c +palette = 3=#ebcb8b +palette = 4=#81a1c1 +palette = 5=#b48ead +palette = 6=#88c0d0 +palette = 7=#e5e9f0 +palette = 8=#4c566a +palette = 9=#bf616a +palette = 10=#a3be8c +palette = 11=#ebcb8b +palette = 12=#81a1c1 +palette = 13=#b48ead +palette = 14=#8fbcbb +palette = 15=#eceff4 +background = 2e3440 +foreground = d8dee9 +cursor-color = eceff4 +selection-background = eceff4 +selection-foreground = 4c566a diff --git a/bin/share/ghostty/themes/nord-light b/bin/share/ghostty/themes/nord-light new file mode 100644 index 0000000..02da938 --- /dev/null +++ b/bin/share/ghostty/themes/nord-light @@ -0,0 +1,21 @@ +palette = 0=#3b4252 +palette = 1=#bf616a +palette = 2=#a3be8c +palette = 3=#ebcb8b +palette = 4=#81a1c1 +palette = 5=#b48ead +palette = 6=#88c0d0 +palette = 7=#d8dee9 +palette = 8=#4c566a +palette = 9=#bf616a +palette = 10=#a3be8c +palette = 11=#ebcb8b +palette = 12=#81a1c1 +palette = 13=#b48ead +palette = 14=#8fbcbb +palette = 15=#eceff4 +background = e5e9f0 +foreground = 414858 +cursor-color = 88c0d0 +selection-background = d8dee9 +selection-foreground = 4c556a diff --git a/bin/share/ghostty/themes/primary b/bin/share/ghostty/themes/primary new file mode 100644 index 0000000..60e4461 --- /dev/null +++ b/bin/share/ghostty/themes/primary @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#db4437 +palette = 2=#0f9d58 +palette = 3=#f4b400 +palette = 4=#4285f4 +palette = 5=#db4437 +palette = 6=#4285f4 +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#db4437 +palette = 10=#0f9d58 +palette = 11=#f4b400 +palette = 12=#4285f4 +palette = 13=#4285f4 +palette = 14=#0f9d58 +palette = 15=#ffffff +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = 656565 +selection-foreground = eeeeee diff --git a/bin/share/ghostty/themes/purplepeter b/bin/share/ghostty/themes/purplepeter new file mode 100644 index 0000000..84b75b8 --- /dev/null +++ b/bin/share/ghostty/themes/purplepeter @@ -0,0 +1,21 @@ +palette = 0=#0a0520 +palette = 1=#ff796d +palette = 2=#99b481 +palette = 3=#efdfac +palette = 4=#66d9ef +palette = 5=#e78fcd +palette = 6=#ba8cff +palette = 7=#ffba81 +palette = 8=#100b23 +palette = 9=#f99f92 +palette = 10=#b4be8f +palette = 11=#f2e9bf +palette = 12=#79daed +palette = 13=#ba91d4 +palette = 14=#a0a0d6 +palette = 15=#b9aed3 +background = 2a1a4a +foreground = ece7fa +cursor-color = c7c7c7 +selection-background = 8689c2 +selection-foreground = 271c50 diff --git a/bin/share/ghostty/themes/rebecca b/bin/share/ghostty/themes/rebecca new file mode 100644 index 0000000..d915f13 --- /dev/null +++ b/bin/share/ghostty/themes/rebecca @@ -0,0 +1,21 @@ +palette = 0=#12131e +palette = 1=#dd7755 +palette = 2=#04dbb5 +palette = 3=#f2e7b7 +palette = 4=#7aa5ff +palette = 5=#bf9cf9 +palette = 6=#56d3c2 +palette = 7=#e4e3e9 +palette = 8=#666699 +palette = 9=#ff92cd +palette = 10=#01eac0 +palette = 11=#fffca8 +palette = 12=#69c0fa +palette = 13=#c17ff8 +palette = 14=#8bfde1 +palette = 15=#f4f2f9 +background = 292a44 +foreground = e8e6ed +cursor-color = b89bf9 +selection-background = 663399 +selection-foreground = f4f2f9 diff --git a/bin/share/ghostty/themes/rose-pine b/bin/share/ghostty/themes/rose-pine new file mode 100644 index 0000000..f7ed237 --- /dev/null +++ b/bin/share/ghostty/themes/rose-pine @@ -0,0 +1,21 @@ +palette = 0=#26233a +palette = 1=#eb6f92 +palette = 2=#9ccfd8 +palette = 3=#f6c177 +palette = 4=#31748f +palette = 5=#c4a7e7 +palette = 6=#ebbcba +palette = 7=#e0def4 +palette = 8=#6e6a86 +palette = 9=#eb6f92 +palette = 10=#9ccfd8 +palette = 11=#f6c177 +palette = 12=#31748f +palette = 13=#c4a7e7 +palette = 14=#ebbcba +palette = 15=#e0def4 +background = 191724 +foreground = e0def4 +cursor-color = e0def4 +selection-background = 191724 +selection-foreground = e0def4 diff --git a/bin/share/ghostty/themes/rose-pine-dawn b/bin/share/ghostty/themes/rose-pine-dawn new file mode 100644 index 0000000..fd46e62 --- /dev/null +++ b/bin/share/ghostty/themes/rose-pine-dawn @@ -0,0 +1,21 @@ +palette = 0=#f2e9e1 +palette = 1=#b4637a +palette = 2=#56949f +palette = 3=#ea9d34 +palette = 4=#286983 +palette = 5=#907aa9 +palette = 6=#d7827e +palette = 7=#575279 +palette = 8=#9893a5 +palette = 9=#b4637a +palette = 10=#56949f +palette = 11=#ea9d34 +palette = 12=#286983 +palette = 13=#907aa9 +palette = 14=#d7827e +palette = 15=#575279 +background = faf4ed +foreground = 575279 +cursor-color = 575279 +selection-background = faf4ed +selection-foreground = 575279 diff --git a/bin/share/ghostty/themes/rose-pine-moon b/bin/share/ghostty/themes/rose-pine-moon new file mode 100644 index 0000000..9baa281 --- /dev/null +++ b/bin/share/ghostty/themes/rose-pine-moon @@ -0,0 +1,21 @@ +palette = 0=#393552 +palette = 1=#eb6f92 +palette = 2=#9ccfd8 +palette = 3=#f6c177 +palette = 4=#3e8fb0 +palette = 5=#c4a7e7 +palette = 6=#ea9a97 +palette = 7=#e0def4 +palette = 8=#6e6a86 +palette = 9=#eb6f92 +palette = 10=#9ccfd8 +palette = 11=#f6c177 +palette = 12=#3e8fb0 +palette = 13=#c4a7e7 +palette = 14=#ea9a97 +palette = 15=#e0def4 +background = 232136 +foreground = e0def4 +cursor-color = e0def4 +selection-background = 232136 +selection-foreground = e0def4 diff --git a/bin/share/ghostty/themes/seoulbones_dark b/bin/share/ghostty/themes/seoulbones_dark new file mode 100644 index 0000000..38b4ba7 --- /dev/null +++ b/bin/share/ghostty/themes/seoulbones_dark @@ -0,0 +1,21 @@ +palette = 0=#4b4b4b +palette = 1=#e388a3 +palette = 2=#98bd99 +palette = 3=#ffdf9b +palette = 4=#97bdde +palette = 5=#a5a6c5 +palette = 6=#6fbdbe +palette = 7=#dddddd +palette = 8=#6c6465 +palette = 9=#eb99b1 +palette = 10=#8fcd92 +palette = 11=#ffe5b3 +palette = 12=#a2c8e9 +palette = 13=#b2b3da +palette = 14=#6bcacb +palette = 15=#a8a8a8 +background = 4b4b4b +foreground = dddddd +cursor-color = e2e2e2 +selection-background = 777777 +selection-foreground = dddddd diff --git a/bin/share/ghostty/themes/seoulbones_light b/bin/share/ghostty/themes/seoulbones_light new file mode 100644 index 0000000..33fcd9b --- /dev/null +++ b/bin/share/ghostty/themes/seoulbones_light @@ -0,0 +1,21 @@ +palette = 0=#e2e2e2 +palette = 1=#dc5284 +palette = 2=#628562 +palette = 3=#c48562 +palette = 4=#0084a3 +palette = 5=#896788 +palette = 6=#008586 +palette = 7=#555555 +palette = 8=#bfbabb +palette = 9=#be3c6d +palette = 10=#487249 +palette = 11=#a76b48 +palette = 12=#006f89 +palette = 13=#7f4c7e +palette = 14=#006f70 +palette = 15=#777777 +background = e2e2e2 +foreground = 555555 +cursor-color = 555555 +selection-background = cccccc +selection-foreground = 555555 diff --git a/bin/share/ghostty/themes/shades-of-purple b/bin/share/ghostty/themes/shades-of-purple new file mode 100644 index 0000000..0e46a97 --- /dev/null +++ b/bin/share/ghostty/themes/shades-of-purple @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#d90429 +palette = 2=#3ad900 +palette = 3=#ffe700 +palette = 4=#6943ff +palette = 5=#ff2c70 +palette = 6=#00c5c7 +palette = 7=#c7c7c7 +palette = 8=#686868 +palette = 9=#f92a1c +palette = 10=#43d426 +palette = 11=#f1d000 +palette = 12=#6871ff +palette = 13=#ff77ff +palette = 14=#79e8fb +palette = 15=#ffffff +background = 1e1d40 +foreground = ffffff +cursor-color = fad000 +selection-background = b362ff +selection-foreground = c2c2c2 diff --git a/bin/share/ghostty/themes/synthwave b/bin/share/ghostty/themes/synthwave new file mode 100644 index 0000000..8731053 --- /dev/null +++ b/bin/share/ghostty/themes/synthwave @@ -0,0 +1,21 @@ +palette = 0=#000000 +palette = 1=#f6188f +palette = 2=#1ebb2b +palette = 3=#fdf834 +palette = 4=#2186ec +palette = 5=#f85a21 +palette = 6=#12c3e2 +palette = 7=#ffffff +palette = 8=#000000 +palette = 9=#f841a0 +palette = 10=#25c141 +palette = 11=#fdf454 +palette = 12=#2f9ded +palette = 13=#f97137 +palette = 14=#19cde6 +palette = 15=#ffffff +background = 000000 +foreground = dad9c7 +cursor-color = 19cde6 +selection-background = 19cde6 +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/synthwave-everything b/bin/share/ghostty/themes/synthwave-everything new file mode 100644 index 0000000..a66df2f --- /dev/null +++ b/bin/share/ghostty/themes/synthwave-everything @@ -0,0 +1,21 @@ +palette = 0=#fefefe +palette = 1=#f97e72 +palette = 2=#72f1b8 +palette = 3=#fede5d +palette = 4=#6d77b3 +palette = 5=#c792ea +palette = 6=#f772e0 +palette = 7=#fefefe +palette = 8=#fefefe +palette = 9=#f88414 +palette = 10=#72f1b8 +palette = 11=#fff951 +palette = 12=#36f9f6 +palette = 13=#e1acff +palette = 14=#f92aad +palette = 15=#fefefe +background = 2a2139 +foreground = f0eff1 +cursor-color = 72f1b8 +selection-background = 181521 +selection-foreground = f0eff1 diff --git a/bin/share/ghostty/themes/terafox b/bin/share/ghostty/themes/terafox new file mode 100644 index 0000000..089bb08 --- /dev/null +++ b/bin/share/ghostty/themes/terafox @@ -0,0 +1,21 @@ +palette = 0=#2f3239 +palette = 1=#e85c51 +palette = 2=#7aa4a1 +palette = 3=#fda47f +palette = 4=#5a93aa +palette = 5=#ad5c7c +palette = 6=#a1cdd8 +palette = 7=#ebebeb +palette = 8=#4e5157 +palette = 9=#eb746b +palette = 10=#8eb2af +palette = 11=#fdb292 +palette = 12=#73a3b7 +palette = 13=#b97490 +palette = 14=#afd4de +palette = 15=#eeeeee +background = 152528 +foreground = e6eaea +cursor-color = e6eaea +selection-background = 293e40 +selection-foreground = e6eaea diff --git a/bin/share/ghostty/themes/tokyonight b/bin/share/ghostty/themes/tokyonight new file mode 100644 index 0000000..ced361b --- /dev/null +++ b/bin/share/ghostty/themes/tokyonight @@ -0,0 +1,21 @@ +palette = 0=#15161e +palette = 1=#f7768e +palette = 2=#9ece6a +palette = 3=#e0af68 +palette = 4=#7aa2f7 +palette = 5=#bb9af7 +palette = 6=#7dcfff +palette = 7=#a9b1d6 +palette = 8=#414868 +palette = 9=#f7768e +palette = 10=#9ece6a +palette = 11=#e0af68 +palette = 12=#7aa2f7 +palette = 13=#bb9af7 +palette = 14=#7dcfff +palette = 15=#c0caf5 +background = 1a1b26 +foreground = c0caf5 +cursor-color = c0caf5 +selection-background = 33467c +selection-foreground = c0caf5 diff --git a/bin/share/ghostty/themes/tokyonight-day b/bin/share/ghostty/themes/tokyonight-day new file mode 100644 index 0000000..3801e34 --- /dev/null +++ b/bin/share/ghostty/themes/tokyonight-day @@ -0,0 +1,21 @@ +palette = 0=#e9e9ed +palette = 1=#f52a65 +palette = 2=#587539 +palette = 3=#8c6c3e +palette = 4=#2e7de9 +palette = 5=#9854f1 +palette = 6=#007197 +palette = 7=#6172b0 +palette = 8=#a1a6c5 +palette = 9=#f52a65 +palette = 10=#587539 +palette = 11=#8c6c3e +palette = 12=#2e7de9 +palette = 13=#9854f1 +palette = 14=#007197 +palette = 15=#3760bf +background = e1e2e7 +foreground = 3760bf +cursor-color = 3760bf +selection-background = 99a7df +selection-foreground = 3760bf diff --git a/bin/share/ghostty/themes/tokyonight-storm b/bin/share/ghostty/themes/tokyonight-storm new file mode 100644 index 0000000..eb38c33 --- /dev/null +++ b/bin/share/ghostty/themes/tokyonight-storm @@ -0,0 +1,21 @@ +palette = 0=#1d202f +palette = 1=#f7768e +palette = 2=#9ece6a +palette = 3=#e0af68 +palette = 4=#7aa2f7 +palette = 5=#bb9af7 +palette = 6=#7dcfff +palette = 7=#a9b1d6 +palette = 8=#414868 +palette = 9=#f7768e +palette = 10=#9ece6a +palette = 11=#e0af68 +palette = 12=#7aa2f7 +palette = 13=#bb9af7 +palette = 14=#7dcfff +palette = 15=#c0caf5 +background = 24283b +foreground = c0caf5 +cursor-color = c0caf5 +selection-background = 364a82 +selection-foreground = c0caf5 diff --git a/bin/share/ghostty/themes/vesper b/bin/share/ghostty/themes/vesper new file mode 100644 index 0000000..8949b34 --- /dev/null +++ b/bin/share/ghostty/themes/vesper @@ -0,0 +1,21 @@ +palette = 0=#101010 +palette = 1=#f5a191 +palette = 2=#90b99f +palette = 3=#e6b99d +palette = 4=#aca1cf +palette = 5=#e29eca +palette = 6=#ea83a5 +palette = 7=#a0a0a0 +palette = 8=#7e7e7e +palette = 9=#ff8080 +palette = 10=#99ffe4 +palette = 11=#ffc799 +palette = 12=#b9aeda +palette = 13=#ecaad6 +palette = 14=#f591b2 +palette = 15=#ffffff +background = 101010 +foreground = ffffff +cursor-color = acb1ab +selection-background = 988049 +selection-foreground = acb1ab diff --git a/bin/share/ghostty/themes/vimbones b/bin/share/ghostty/themes/vimbones new file mode 100644 index 0000000..e3ae95b --- /dev/null +++ b/bin/share/ghostty/themes/vimbones @@ -0,0 +1,21 @@ +palette = 0=#f0f0ca +palette = 1=#a8334c +palette = 2=#4f6c31 +palette = 3=#944927 +palette = 4=#286486 +palette = 5=#88507d +palette = 6=#3b8992 +palette = 7=#353535 +palette = 8=#c6c6a3 +palette = 9=#94253e +palette = 10=#3f5a22 +palette = 11=#803d1c +palette = 12=#1d5573 +palette = 13=#7b3b70 +palette = 14=#2b747c +palette = 15=#5c5c5c +background = f0f0ca +foreground = 353535 +cursor-color = 353535 +selection-background = d7d7d7 +selection-foreground = 353535 diff --git a/bin/share/ghostty/themes/wilmersdorf b/bin/share/ghostty/themes/wilmersdorf new file mode 100644 index 0000000..e3cd0ad --- /dev/null +++ b/bin/share/ghostty/themes/wilmersdorf @@ -0,0 +1,21 @@ +palette = 0=#34373e +palette = 1=#e06383 +palette = 2=#7ebebd +palette = 3=#cccccc +palette = 4=#a6c1e0 +palette = 5=#e1c1ee +palette = 6=#5b94ab +palette = 7=#ababab +palette = 8=#434750 +palette = 9=#fa7193 +palette = 10=#8fd7d6 +palette = 11=#d1dfff +palette = 12=#b2cff0 +palette = 13=#efccfd +palette = 14=#69abc5 +palette = 15=#d3d3d3 +background = 282b33 +foreground = c6c6c6 +cursor-color = 7ebebd +selection-background = 1f2024 +selection-foreground = c6c6c6 diff --git a/bin/share/ghostty/themes/xcodedark b/bin/share/ghostty/themes/xcodedark new file mode 100644 index 0000000..1b7479c --- /dev/null +++ b/bin/share/ghostty/themes/xcodedark @@ -0,0 +1,21 @@ +palette = 0=#414453 +palette = 1=#ff8170 +palette = 2=#78c2b3 +palette = 3=#d9c97c +palette = 4=#4eb0cc +palette = 5=#ff7ab2 +palette = 6=#b281eb +palette = 7=#dfdfe0 +palette = 8=#7f8c98 +palette = 9=#ff8170 +palette = 10=#acf2e4 +palette = 11=#ffa14f +palette = 12=#6bdfff +palette = 13=#ff7ab2 +palette = 14=#dabaff +palette = 15=#dfdfe0 +background = 292a30 +foreground = dfdfe0 +cursor-color = dfdfe0 +selection-background = 414453 +selection-foreground = dfdfe0 diff --git a/bin/share/ghostty/themes/xcodedarkhc b/bin/share/ghostty/themes/xcodedarkhc new file mode 100644 index 0000000..eed9a26 --- /dev/null +++ b/bin/share/ghostty/themes/xcodedarkhc @@ -0,0 +1,21 @@ +palette = 0=#43454b +palette = 1=#ff8a7a +palette = 2=#83c9bc +palette = 3=#d9c668 +palette = 4=#4ec4e6 +palette = 5=#ff85b8 +palette = 6=#cda1ff +palette = 7=#ffffff +palette = 8=#838991 +palette = 9=#ff8a7a +palette = 10=#b1faeb +palette = 11=#ffa14f +palette = 12=#6bdfff +palette = 13=#ff85b8 +palette = 14=#e5cfff +palette = 15=#ffffff +background = 1f1f24 +foreground = ffffff +cursor-color = ffffff +selection-background = 43454b +selection-foreground = ffffff diff --git a/bin/share/ghostty/themes/xcodelight b/bin/share/ghostty/themes/xcodelight new file mode 100644 index 0000000..d8ce1ef --- /dev/null +++ b/bin/share/ghostty/themes/xcodelight @@ -0,0 +1,21 @@ +palette = 0=#b4d8fd +palette = 1=#d12f1b +palette = 2=#3e8087 +palette = 3=#78492a +palette = 4=#0f68a0 +palette = 5=#ad3da4 +palette = 6=#804fb8 +palette = 7=#262626 +palette = 8=#8a99a6 +palette = 9=#d12f1b +palette = 10=#23575c +palette = 11=#78492a +palette = 12=#0b4f79 +palette = 13=#ad3da4 +palette = 14=#4b21b0 +palette = 15=#262626 +background = ffffff +foreground = 262626 +cursor-color = 262626 +selection-background = b4d8fd +selection-foreground = 262626 diff --git a/bin/share/ghostty/themes/xcodelighthc b/bin/share/ghostty/themes/xcodelighthc new file mode 100644 index 0000000..a5b222e --- /dev/null +++ b/bin/share/ghostty/themes/xcodelighthc @@ -0,0 +1,21 @@ +palette = 0=#b4d8fd +palette = 1=#ad1805 +palette = 2=#355d61 +palette = 3=#78492a +palette = 4=#0058a1 +palette = 5=#9c2191 +palette = 6=#703daa +palette = 7=#000000 +palette = 8=#8a99a6 +palette = 9=#ad1805 +palette = 10=#174145 +palette = 11=#78492a +palette = 12=#003f73 +palette = 13=#9c2191 +palette = 14=#441ea1 +palette = 15=#000000 +background = ffffff +foreground = 000000 +cursor-color = 000000 +selection-background = b4d8fd +selection-foreground = 000000 diff --git a/bin/share/ghostty/themes/xcodewwdc b/bin/share/ghostty/themes/xcodewwdc new file mode 100644 index 0000000..6eeb253 --- /dev/null +++ b/bin/share/ghostty/themes/xcodewwdc @@ -0,0 +1,21 @@ +palette = 0=#494d5c +palette = 1=#bb383a +palette = 2=#94c66e +palette = 3=#d28e5d +palette = 4=#8884c5 +palette = 5=#b73999 +palette = 6=#00aba4 +palette = 7=#e7e8eb +palette = 8=#7f869e +palette = 9=#bb383a +palette = 10=#94c66e +palette = 11=#d28e5d +palette = 12=#8884c5 +palette = 13=#b73999 +palette = 14=#00aba4 +palette = 15=#e7e8eb +background = 292c36 +foreground = e7e8eb +cursor-color = e7e8eb +selection-background = 494d5c +selection-foreground = e7e8eb diff --git a/bin/share/ghostty/themes/zenbones b/bin/share/ghostty/themes/zenbones new file mode 100644 index 0000000..b753d06 --- /dev/null +++ b/bin/share/ghostty/themes/zenbones @@ -0,0 +1,21 @@ +palette = 0=#f0edec +palette = 1=#a8334c +palette = 2=#4f6c31 +palette = 3=#944927 +palette = 4=#286486 +palette = 5=#88507d +palette = 6=#3b8992 +palette = 7=#2c363c +palette = 8=#cfc1ba +palette = 9=#94253e +palette = 10=#3f5a22 +palette = 11=#803d1c +palette = 12=#1d5573 +palette = 13=#7b3b70 +palette = 14=#2b747c +palette = 15=#4f5e68 +background = f0edec +foreground = 2c363c +cursor-color = 2c363c +selection-background = cbd9e3 +selection-foreground = 2c363c diff --git a/bin/share/ghostty/themes/zenbones_dark b/bin/share/ghostty/themes/zenbones_dark new file mode 100644 index 0000000..6a807c1 --- /dev/null +++ b/bin/share/ghostty/themes/zenbones_dark @@ -0,0 +1,21 @@ +palette = 0=#1c1917 +palette = 1=#de6e7c +palette = 2=#819b69 +palette = 3=#b77e64 +palette = 4=#6099c0 +palette = 5=#b279a7 +palette = 6=#66a5ad +palette = 7=#b4bdc3 +palette = 8=#403833 +palette = 9=#e8838f +palette = 10=#8bae68 +palette = 11=#d68c67 +palette = 12=#61abda +palette = 13=#cf86c1 +palette = 14=#65b8c1 +palette = 15=#888f94 +background = 1c1917 +foreground = b4bdc3 +cursor-color = c4cacf +selection-background = 3d4042 +selection-foreground = b4bdc3 diff --git a/bin/share/ghostty/themes/zenbones_light b/bin/share/ghostty/themes/zenbones_light new file mode 100644 index 0000000..b753d06 --- /dev/null +++ b/bin/share/ghostty/themes/zenbones_light @@ -0,0 +1,21 @@ +palette = 0=#f0edec +palette = 1=#a8334c +palette = 2=#4f6c31 +palette = 3=#944927 +palette = 4=#286486 +palette = 5=#88507d +palette = 6=#3b8992 +palette = 7=#2c363c +palette = 8=#cfc1ba +palette = 9=#94253e +palette = 10=#3f5a22 +palette = 11=#803d1c +palette = 12=#1d5573 +palette = 13=#7b3b70 +palette = 14=#2b747c +palette = 15=#4f5e68 +background = f0edec +foreground = 2c363c +cursor-color = 2c363c +selection-background = cbd9e3 +selection-foreground = 2c363c diff --git a/bin/share/ghostty/themes/zenburned b/bin/share/ghostty/themes/zenburned new file mode 100644 index 0000000..0d19854 --- /dev/null +++ b/bin/share/ghostty/themes/zenburned @@ -0,0 +1,21 @@ +palette = 0=#404040 +palette = 1=#e3716e +palette = 2=#819b69 +palette = 3=#b77e64 +palette = 4=#6099c0 +palette = 5=#b279a7 +palette = 6=#66a5ad +palette = 7=#f0e4cf +palette = 8=#625a5b +palette = 9=#ec8685 +palette = 10=#8bae68 +palette = 11=#d68c67 +palette = 12=#61abda +palette = 13=#cf86c1 +palette = 14=#65b8c1 +palette = 15=#c0ab86 +background = 404040 +foreground = f0e4cf +cursor-color = f3eadb +selection-background = 746956 +selection-foreground = f0e4cf diff --git a/bin/share/ghostty/themes/zenwritten_dark b/bin/share/ghostty/themes/zenwritten_dark new file mode 100644 index 0000000..c6fd3d3 --- /dev/null +++ b/bin/share/ghostty/themes/zenwritten_dark @@ -0,0 +1,21 @@ +palette = 0=#191919 +palette = 1=#de6e7c +palette = 2=#819b69 +palette = 3=#b77e64 +palette = 4=#6099c0 +palette = 5=#b279a7 +palette = 6=#66a5ad +palette = 7=#bbbbbb +palette = 8=#3d3839 +palette = 9=#e8838f +palette = 10=#8bae68 +palette = 11=#d68c67 +palette = 12=#61abda +palette = 13=#cf86c1 +palette = 14=#65b8c1 +palette = 15=#8e8e8e +background = 191919 +foreground = bbbbbb +cursor-color = c9c9c9 +selection-background = 404040 +selection-foreground = bbbbbb diff --git a/bin/share/ghostty/themes/zenwritten_light b/bin/share/ghostty/themes/zenwritten_light new file mode 100644 index 0000000..dbb65f4 --- /dev/null +++ b/bin/share/ghostty/themes/zenwritten_light @@ -0,0 +1,21 @@ +palette = 0=#eeeeee +palette = 1=#a8334c +palette = 2=#4f6c31 +palette = 3=#944927 +palette = 4=#286486 +palette = 5=#88507d +palette = 6=#3b8992 +palette = 7=#353535 +palette = 8=#c6c3c3 +palette = 9=#94253e +palette = 10=#3f5a22 +palette = 11=#803d1c +palette = 12=#1d5573 +palette = 13=#7b3b70 +palette = 14=#2b747c +palette = 15=#5c5c5c +background = eeeeee +foreground = 353535 +cursor-color = 353535 +selection-background = d7d7d7 +selection-foreground = 353535 diff --git a/bin/share/icons/hicolor/128x128/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/128x128/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..bad0eb8 Binary files /dev/null and b/bin/share/icons/hicolor/128x128/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/128x128@2/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/128x128@2/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..46c3f70 Binary files /dev/null and b/bin/share/icons/hicolor/128x128@2/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/16x16/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/16x16/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..cacff7a Binary files /dev/null and b/bin/share/icons/hicolor/16x16/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/16x16@2/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/16x16@2/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..b35e666 Binary files /dev/null and b/bin/share/icons/hicolor/16x16@2/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..8032244 Binary files /dev/null and b/bin/share/icons/hicolor/256x256/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/256x256@2/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/256x256@2/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..b51b8d7 Binary files /dev/null and b/bin/share/icons/hicolor/256x256@2/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/32x32/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/32x32/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..b647bcf Binary files /dev/null and b/bin/share/icons/hicolor/32x32/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/32x32@2/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/32x32@2/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..e394a51 Binary files /dev/null and b/bin/share/icons/hicolor/32x32@2/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/icons/hicolor/512x512/apps/com.mitchellh.ghostty.png b/bin/share/icons/hicolor/512x512/apps/com.mitchellh.ghostty.png new file mode 100644 index 0000000..b51b8d7 Binary files /dev/null and b/bin/share/icons/hicolor/512x512/apps/com.mitchellh.ghostty.png differ diff --git a/bin/share/kio/servicemenus/com.mitchellh.ghostty.desktop b/bin/share/kio/servicemenus/com.mitchellh.ghostty.desktop new file mode 100644 index 0000000..5e83513 --- /dev/null +++ b/bin/share/kio/servicemenus/com.mitchellh.ghostty.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Service +ServiceTypes=KonqPopupMenu/Plugin +MimeType=inode/directory +Actions=RunGhosttyDir + +[Desktop Action RunGhosttyDir] +Name=Open Ghostty Here +Icon=com.mitchellh.ghostty +Exec=ghostty --working-directory=%F --gtk-single-instance=false + diff --git a/bin/share/man/man1/ghostty.1 b/bin/share/man/man1/ghostty.1 new file mode 100644 index 0000000..cb725ba --- /dev/null +++ b/bin/share/man/man1/ghostty.1 @@ -0,0 +1,2593 @@ +.\" Automatically generated by Pandoc 3.1.11.1 +.\" +.TH "GHOSTTY" "1" "" "Version 0.1.0\-main+dd6460bc" "Ghostty terminal emulator" +.SH NAME +\f[B]ghostty\f[R] \- Ghostty terminal emulator +.SH DESCRIPTION +Ghostty is a cross\-platform, GPU\-accelerated terminal emulator that +aims to push the boundaries of what is possible with a terminal emulator +by exposing modern, opt\-in features that enable CLI tool developers to +build more feature rich, interactive applications. +.PP +There are a number of excellent terminal emulator options that exist +today. +The unique goal of Ghostty is to have a platform for experimenting with +modern, optional, non\-standards\-compliant features to enhance the +capabilities of CLI applications. +We aim to be the best in this category, and competitive in the rest. +.PP +While aiming for this ambitious goal, Ghostty is a fully standards +compliant terminal emulator that aims to remain compatible with all +existing shells and software. +You can use this as a drop\-in replacement for your existing terminal +emulator. +.SH COMMAND LINE ACTIONS +.TP +\f[B]\f[CB]\-\-version\f[B]\f[R] +The \f[CR]version\f[R] command is used to display information about +Ghostty. +.TP +\f[B]\f[CB]\-\-help\f[B]\f[R] +The \f[CR]help\f[R] command shows general help about Ghostty. +You can also specify \f[CR]\-\-help\f[R] or \f[CR]\-h\f[R] along with +any action such as \f[CR]+list\-themes\f[R] to see help for a specific +action. +.TP +\f[B]\f[CB]+list\-fonts\f[B]\f[R] +The \f[CR]list\-fonts\f[R] command is used to list all the available +fonts for Ghostty. +This uses the exact same font discovery mechanism Ghostty uses to find +fonts to use. +.RS +.PP +When executed with no arguments, this will list all available fonts, +sorted by family name, then font name. +If a family name is given with \f[CR]\-\-family\f[R], the sorting will +be disabled and the results instead will be shown in the same priority +order Ghostty would use to pick a font. +.PP +The \f[CR]\-\-family\f[R] argument can be used to filter results to a +specific family. +The family handling is identical to the \f[CR]font\-family\f[R] set of +Ghostty configuration values, so this can be used to debug why your +desired font may not be loading. +.PP +The \f[CR]\-\-bold\f[R] and \f[CR]\-\-italic\f[R] arguments can be used +to filter results to specific styles. +It is not guaranteed that only those styles are returned, it will just +prioritize fonts that match those styles. +.RE +.TP +\f[B]\f[CB]+list\-keybinds\f[B]\f[R] +The \f[CR]list\-keybinds\f[R] command is used to list all the available +keybinds for Ghostty. +.RS +.PP +When executed without any arguments this will list the current keybinds +loaded by the config file. +If no config file is found or there aren\[cq]t any changes to the +keybinds it will print out the default ones configured for Ghostty +.PP +The \f[CR]\-\-default\f[R] argument will print out all the default +keybinds configured for Ghostty +.PP +The \f[CR]\-\-plain\f[R] flag will disable formatting and make the +output more friendly for Unix tooling. +This is default when not printing to a tty. +.RE +.TP +\f[B]\f[CB]+list\-themes\f[B]\f[R] +The \f[CR]list\-themes\f[R] command is used to preview or list all the +available themes for Ghostty. +.RS +.PP +If this command is run from a TTY, a TUI preview of the themes will be +shown. +While in the preview, \f[CR]F1\f[R] will bring up a help screen and +\f[CR]ESC\f[R] will exit the preview. +Other keys that can be used to navigate the preview are listed in the +help screen. +.PP +If this command is not run from a TTY, or the output is piped to another +command, a plain list of theme names will be printed to the screen. +A plain list can be forced using the \f[CR]\-\-plain\f[R] CLI flag. +.PP +Two different directories will be searched for themes. +.PP +The first directory is the \f[CR]themes\f[R] subdirectory of your +Ghostty configuration directory. +This is \f[CR]$XDG_CONFIG_DIR/ghostty/themes\f[R] or +\f[CR]\[ti]/.config/ghostty/themes\f[R]. +.PP +The second directory is the \f[CR]themes\f[R] subdirectory of the +Ghostty resources directory. +Ghostty ships with a multitude of themes that will be installed into +this directory. +On macOS, this directory is the +\f[CR]Ghostty.app/Contents/ Resources/ghostty/themes\f[R]. +On Linux, this directory is the \f[CR]share/ghostty/ themes\f[R] +(wherever you installed the Ghostty \[lq]share\[rq] directory). +If you\[cq]re running Ghostty from the source, this is the +\f[CR]zig\-out/share/ghostty/themes\f[R] directory. +.PP +You can also set the \f[CR]GHOSTTY_RESOURCES_DIR\f[R] environment +variable to point to the resources directory. +.PP +Flags: +.IP \[bu] 2 +\f[CR]\-\-path\f[R]: Show the full path to the theme. +.IP \[bu] 2 +\f[CR]\-\-plain\f[R]: Force a plain listing of themes. +.RE +.TP +\f[B]\f[CB]+list\-colors\f[B]\f[R] +The \f[CR]list\-colors\f[R] command is used to list all the named RGB +colors in Ghostty. +.TP +\f[B]\f[CB]+list\-actions\f[B]\f[R] +The \f[CR]list\-actions\f[R] command is used to list all the available +keybind actions for Ghostty. +.RS +.PP +The \f[CR]\-\-docs\f[R] argument will print out the documentation for +each action. +.RE +.TP +\f[B]\f[CB]+show\-config\f[B]\f[R] +The \f[CR]show\-config\f[R] command shows the current configuration in a +valid Ghostty configuration file format. +.RS +.PP +When executed without any arguments this will output the current +configuration that is different from the default configuration. +If you\[cq]re using the default configuration this will output nothing. +.PP +If you are a new user and want to see all available options with +documentation, run +\f[CR]ghostty +show\-config \-\-default \-\-docs\f[R]. +.PP +The output is not in any specific order, but the order should be +consistent between runs. +The output is not guaranteed to be exactly match the input configuration +files, but it will result in the same behavior. +Comments, whitespace, and other formatting is not preserved from user +configuration files. +.PP +Flags: +.IP \[bu] 2 +\f[CR]\-\-default\f[R]: Show the default configuration instead of +loading the user configuration. +.IP \[bu] 2 +\f[CR]\-\-changes\-only\f[R]: Only show the options that have been +changed from the default. +This has no effect if \f[CR]\-\-default\f[R] is specified. +.IP \[bu] 2 +\f[CR]\-\-docs\f[R]: Print the documentation above each option as a +comment, This is very noisy but is very useful to learn about available +options, especially paired with \f[CR]\-\-default\f[R]. +.RE +.TP +\f[B]\f[CB]+validate\-config\f[B]\f[R] +The \f[CR]validate\-config\f[R] command is used to validate a Ghostty +config file. +.RS +.PP +When executed without any arguments, this will load the config from the +default location. +.PP +The \f[CR]\-\-config\-file\f[R] argument can be passed to validate a +specific target config file in a non\-default location. +.RE +.TP +\f[B]\f[CB]+crash\-report\f[B]\f[R] +The \f[CR]crash\-report\f[R] command is used to inspect and send crash +reports. +.RS +.PP +When executed without any arguments, this will list existing crash +reports. +.PP +This command currently only supports listing crash reports. +Viewing and sending crash reports is unimplemented and will be added in +the future. +.RE +.SH CONFIGURATION OPTIONS +.TP +\f[B]\f[CB]\-\-font\-family\f[B]\f[R] +The font families to use. +.RS +.PP +You can generate the list of valid values using the CLI: +.IP +.EX +ghostty +list\-fonts +.EE +.PP +This configuration can be repeated multiple times to specify preferred +fallback fonts when the requested codepoint is not available in the +primary font. +This is particularly useful for multiple languages, symbolic fonts, etc. +.PP +Notes on emoji specifically: On macOS, Ghostty by default will always +use Apple Color Emoji and on Linux will always use Noto Emoji. +You can override this behavior by specifying a font family here that +contains emoji glyphs. +.PP +The specific styles (bold, italic, bold italic) do not need to be +explicitly set. +If a style is not set, then the regular style (font\-family) will be +searched for stylistic variants. +If a stylistic variant is not found, Ghostty will use the regular style. +This prevents falling back to a different font family just to get a +style such as bold. +This also applies if you explicitly specify a font family for a style. +For example, if you set \f[CR]font\-family\-bold = FooBar\f[R] and +\[lq]FooBar\[rq] cannot be found, Ghostty will use whatever font is set +for \f[CR]font\-family\f[R] for the bold style. +.PP +Finally, some styles may be synthesized if they are not supported. +For example, if a font does not have an italic style and no alternative +italic font is specified, Ghostty will synthesize an italic style by +applying a slant to the regular style. +If you want to disable these synthesized styles then you can use the +\f[CR]font\-style\f[R] configurations as documented below. +.PP +You can disable styles completely by using the \f[CR]font\-style\f[R] +set of configurations. +See the documentation for \f[CR]font\-style\f[R] for more information. +.PP +If you want to overwrite a previous set value rather than append a +fallback, specify the value as \f[CR]\[dq]\[dq]\f[R] (empty string) to +reset the list and then set the new values. +For example: +.IP +.EX +font\-family = \[dq]\[dq] +font\-family = \[dq]My Favorite Font\[dq] +.EE +.PP +Setting any of these as CLI arguments will automatically clear the +values set in configuration files so you don\[cq]t need to specify +\f[CR]\-\-font\-family=\[dq]\[dq]\f[R] before setting a new value. +You only need to specify this within config files if you want to clear +previously set values in configuration files or on the CLI if you want +to clear values set on the CLI. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e. +new windows, tabs, etc. +.RE +.PP +\f[B]\f[CB]\-\-font\-family\-bold\f[B]\f[R] +.PP +\f[B]\f[CB]\-\-font\-family\-italic\f[B]\f[R] +.PP +\f[B]\f[CB]\-\-font\-family\-bold\-italic\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-font\-style\f[B]\f[R] +The named font style to use for each of the requested terminal font +styles. +This looks up the style based on the font style string advertised by the +font itself. +For example, \[lq]Iosevka Heavy\[rq] has a style of \[lq]Heavy\[rq]. +.RS +.PP +You can also use these fields to completely disable a font style. +If you set the value of the configuration below to literal +\f[CR]false\f[R] then that font style will be disabled. +If the running program in the terminal requests a disabled font style, +the regular font style will be used instead. +.PP +These are only valid if its corresponding font\-family is also +specified. +If no font\-family is specified, then the font\-style is ignored unless +you\[cq]re disabling the font style. +.RE +.PP +\f[B]\f[CB]\-\-font\-style\-bold\f[B]\f[R] +.PP +\f[B]\f[CB]\-\-font\-style\-italic\f[B]\f[R] +.PP +\f[B]\f[CB]\-\-font\-style\-bold\-italic\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-font\-synthetic\-style\f[B]\f[R] +Control whether Ghostty should synthesize a style if the requested style +is not available in the specified font\-family. +.RS +.PP +Ghostty can synthesize bold, italic, and bold italic styles if the font +does not have a specific style. +For bold, this is done by drawing an outline around the glyph of varying +thickness. +For italic, this is done by applying a slant to the glyph. +For bold italic, both of these are applied. +.PP +Synthetic styles are not perfect and will generally not look as good as +a font that has the style natively. +However, they are useful to provide styled text when the font does not +have the style. +.PP +Set this to \[lq]false\[rq] or \[lq]true\[rq] to disable or enable +synthetic styles completely. +You can disable specific styles using \[lq]no\-bold\[rq], +\[lq]no\-italic\[rq], and \[lq]no\-bold\-italic\[rq]. +You can disable multiple styles by separating them with a comma. +For example, \[lq]no\-bold,no\-italic\[rq]. +.PP +Available style keys are: \f[CR]bold\f[R], \f[CR]italic\f[R], +\f[CR]bold\-italic\f[R]. +.PP +If synthetic styles are disabled, then the regular style will be used +instead if the requested style is not available. +If the font has the requested style, then the font will be used as\-is +since the style is not synthetic. +.PP +Warning: An easy mistake is to disable \f[CR]bold\f[R] or +\f[CR]italic\f[R] but not \f[CR]bold\-italic\f[R]. +Disabling only \f[CR]bold\f[R] or \f[CR]italic\f[R] will NOT disable +either in the \f[CR]bold\-italic\f[R] style. +If you want to disable \f[CR]bold\-italic\f[R], you must explicitly +disable it. +You cannot partially disable \f[CR]bold\-italic\f[R]. +.PP +By default, synthetic styles are enabled. +.RE +.TP +\f[B]\f[CB]\-\-font\-feature\f[B]\f[R] +Apply a font feature. +This can be repeated multiple times to enable multiple font features. +You can NOT set multiple font features with a single value (yet). +.RS +.PP +The font feature will apply to all fonts rendered by Ghostty. +A future enhancement will allow targeting specific faces. +.PP +A valid value is the name of a feature. +Prefix the feature with a \f[CR]\-\f[R] to explicitly disable it. +Example: \f[CR]ss20\f[R] or \f[CR]\-ss20\f[R]. +.PP +To disable programming ligatures, use \f[CR]\-calt\f[R] since this is +the typical feature name for programming ligatures. +To look into what font features your font has and what they do, use a +font inspection tool such as \c +.UR https://fontdrop.info +fontdrop.info +.UE \c +\&. +.PP +To generally disable most ligatures, use \f[CR]\-calt\f[R], +\f[CR]\-liga\f[R], and \f[CR]\-dlig\f[R] (as separate repetitive entries +in your config). +.RE +.TP +\f[B]\f[CB]\-\-font\-size\f[B]\f[R] +Font size in points. +This value can be a non\-integer and the nearest integer pixel size will +be selected. +If you have a high dpi display where 1pt = 2px then you can get an odd +numbered pixel size by specifying a half point. +.RS +.PP +For example, 13.5pt \[at] 2px/pt = 27px +.PP +Changing this configuration at runtime will only affect new terminals, +i.e.\ new windows, tabs, etc. +Note that you may still not see the change depending on your +\f[CR]window\-inherit\-font\-size\f[R] setting. +If that setting is true, only the first window will be affected by this +change since all subsequent windows will inherit the font size of the +previous window. +.RE +.TP +\f[B]\f[CB]\-\-font\-variation\f[B]\f[R] +A repeatable configuration to set one or more font variations values for +a variable font. +A variable font is a single font, usually with a filename ending in +\f[CR]\-VF.ttf\f[R] or \f[CR]\-VF.otf\f[R] that contains one or more +configurable axes for things such as weight, slant, etc. +Not all fonts support variations; only fonts that explicitly state they +are variable fonts will work. +.RS +.PP +The format of this is \f[CR]id=value\f[R] where \f[CR]id\f[R] is the +axis identifier. +An axis identifier is always a 4 character string, such as +\f[CR]wght\f[R]. +To get the list of supported axes, look at your font documentation or +use a font inspection tool. +.PP +Invalid ids and values are usually ignored. +For example, if a font only supports weights from 100 to 700, setting +\f[CR]wght=800\f[R] will do nothing (it will not be clamped to 700). +You must consult your font\[cq]s documentation to see what values are +supported. +.PP +Common axes are: \f[CR]wght\f[R] (weight), \f[CR]slnt\f[R] (slant), +\f[CR]ital\f[R] (italic), \f[CR]opsz\f[R] (optical size), +\f[CR]wdth\f[R] (width), \f[CR]GRAD\f[R] (gradient), etc. +.RE +.PP +\f[B]\f[CB]\-\-font\-variation\-bold\f[B]\f[R] +.PP +\f[B]\f[CB]\-\-font\-variation\-italic\f[B]\f[R] +.PP +\f[B]\f[CB]\-\-font\-variation\-bold\-italic\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-font\-codepoint\-map\f[B]\f[R] +Force one or a range of Unicode codepoints to map to a specific named +font. +This is useful if you want to support special symbols or if you want to +use specific glyphs that render better for your specific font. +.RS +.PP +The syntax is \f[CR]codepoint=fontname\f[R] where \f[CR]codepoint\f[R] +is either a single codepoint or a range. +Codepoints must be specified as full Unicode hex values, such as +\f[CR]U+ABCD\f[R]. +Codepoints ranges are specified as \f[CR]U+ABCD\-U+DEFG\f[R]. +You can specify multiple ranges for the same font separated by commas, +such as \f[CR]U+ABCD\-U+DEFG,U+1234\-U+5678=fontname\f[R]. +The font name is the same value as you would use for +\f[CR]font\-family\f[R]. +.PP +This configuration can be repeated multiple times to specify multiple +codepoint mappings. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e.\ new windows, tabs, etc. +.RE +.TP +\f[B]\f[CB]\-\-font\-thicken\f[B]\f[R] +Draw fonts with a thicker stroke, if supported. +This is only supported currently on macOS. +.TP +\f[B]\f[CB]\-\-adjust\-cell\-width\f[B]\f[R] +All of the configurations behavior adjust various metrics determined by +the font. +The values can be integers (1, \-1, etc.) +or a percentage (20%, \-15%, etc.). +In each case, the values represent the amount to change the original +value. +.RS +.PP +For example, a value of \f[CR]1\f[R] increases the value by 1; it does +not set it to literally 1. +A value of \f[CR]20%\f[R] increases the value by 20%. +And so on. +.PP +There is little to no validation on these values so the wrong values +(i.e. +\f[CR]\-100%\f[R]) can cause the terminal to be unusable. +Use with caution and reason. +.PP +Some values are clamped to minimum or maximum values. +This can make it appear that certain values are ignored. +For example, the underline position is clamped to the height of a cell. +If you set the underline position so high that it extends beyond the +bottom of the cell size, it will be clamped to the bottom of the cell. +.PP +\f[CR]adjust\-cell\-height\f[R] has some additional behaviors to +describe: +.IP \[bu] 2 +The font will be centered vertically in the cell. +.IP \[bu] 2 +The cursor will remain the same size as the font. +.IP \[bu] 2 +Powerline glyphs will be adjusted along with the cell height so that +things like status lines continue to look aligned. +.RE +.PP +\f[B]\f[CB]\-\-adjust\-cell\-height\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-adjust\-font\-baseline\f[B]\f[R] +Distance in pixels from the bottom of the cell to the text baseline. +Increase to move baseline UP, decrease to move baseline DOWN. +.TP +\f[B]\f[CB]\-\-adjust\-underline\-position\f[B]\f[R] +Distance in pixels from the top of the cell to the top of the underline. +Increase to move underline DOWN, decrease to move underline UP. +.TP +\f[B]\f[CB]\-\-adjust\-underline\-thickness\f[B]\f[R] +Thickness in pixels of the underline. +.TP +\f[B]\f[CB]\-\-adjust\-strikethrough\-position\f[B]\f[R] +Distance in pixels from the top of the cell to the top of the +strikethrough. +Increase to move strikethrough DOWN, decrease to move underline UP. +.TP +\f[B]\f[CB]\-\-adjust\-strikethrough\-thickness\f[B]\f[R] +Thickness in pixels of the strikethrough. +.TP +\f[B]\f[CB]\-\-adjust\-overline\-position\f[B]\f[R] +Distance in pixels from the top of the cell to the top of the overline. +Increase to move overline DOWN, decrease to move underline UP. +.TP +\f[B]\f[CB]\-\-adjust\-overline\-thickness\f[B]\f[R] +Thickness in pixels of the overline. +.TP +\f[B]\f[CB]\-\-adjust\-cursor\-thickness\f[B]\f[R] +Thickness in pixels of the bar cursor and outlined rect cursor. +.TP +\f[B]\f[CB]\-\-adjust\-box\-thickness\f[B]\f[R] +Thickness in pixels of box drawing characters. +.TP +\f[B]\f[CB]\-\-grapheme\-width\-method\f[B]\f[R] +The method to use for calculating the cell width of a grapheme cluster. +The default value is \f[CR]unicode\f[R] which uses the Unicode standard +to determine grapheme width. +This results in correct grapheme width but may result in cursor\-desync +issues with some programs (such as shells) that may use a legacy method +such as \f[CR]wcswidth\f[R]. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]legacy\f[R] \- Use a legacy method to determine grapheme width, +such as wcswidth This maximizes compatibility with legacy programs but +may result in incorrect grapheme width for certain graphemes such as +skin\-tone emoji, non\-English characters, etc. +.RS 2 +.PP +This is called \[lq]legacy\[rq] and not something more specific because +the behavior is undefined and we want to retain the ability to modify +it. +For example, we may or may not use libc \f[CR]wcswidth\f[R] now or in +the future. +.RE +.IP \[bu] 2 +\f[CR]unicode\f[R] \- Use the Unicode standard to determine grapheme +width. +.PP +If a running program explicitly enables terminal mode 2027, then +\f[CR]unicode\f[R] width will be forced regardless of this +configuration. +When mode 2027 is reset, this configuration will be used again. +.PP +This configuration can be changed at runtime but will not affect +existing terminals. +Only new terminals will use the new configuration. +.RE +.TP +\f[B]\f[CB]\-\-freetype\-load\-flags\f[B]\f[R] +FreeType load flags to enable. +The format of this is a list of flags to enable separated by commas. +If you prefix a flag with \f[CR]no\-\f[R] then it is disabled. +If you omit a flag, it\[cq]s default value is used, so you must +explicitly disable flags you don\[cq]t want. +You can also use \f[CR]true\f[R] or \f[CR]false\f[R] to turn all flags +on or off. +.RS +.PP +This configuration only applies to Ghostty builds that use FreeType. +This is usually the case only for Linux builds. +macOS uses CoreText and does not have an equivalent configuration. +.PP +Available flags: +.IP \[bu] 2 +\f[CR]hinting\f[R] \- Enable or disable hinting, enabled by default. +.IP \[bu] 2 +\f[CR]force\-autohint\f[R] \- Use the freetype auto\-hinter rather than +the font\[cq]s native hinter. +Enabled by default. +.IP \[bu] 2 +\f[CR]monochrome\f[R] \- Instructs renderer to use 1\-bit monochrome +rendering. +This option doesn\[cq]t impact the hinter. +Enabled by default. +.IP \[bu] 2 +\f[CR]autohint\f[R] \- Use the freetype auto\-hinter. +Enabled by default. +.PP +Example: \f[CR]hinting\f[R], \f[CR]no\-hinting\f[R], +\f[CR]force\-autohint\f[R], \f[CR]no\-force\-autohint\f[R] +.RE +.TP +\f[B]\f[CB]\-\-theme\f[B]\f[R] +A theme to use. +This can be a built\-in theme name, a custom theme name, or an absolute +path to a custom theme file. +Ghostty also supports specifying a different theme to use for light and +dark mode. +Each option is documented below. +.RS +.PP +If the theme is an absolute pathname, Ghostty will attempt to load that +file as a theme. +If that file does not exist or is inaccessible, an error will be logged +and no other directories will be searched. +.PP +If the theme is not an absolute pathname, two different directories will +be searched for a file name that matches the theme. +This is case sensitive on systems with case\-sensitive filesystems. +It is an error for a theme name to include path separators unless it is +an absolute pathname. +.PP +The first directory is the \f[CR]themes\f[R] subdirectory of your +Ghostty configuration directory. +This is \f[CR]$XDG_CONFIG_DIR/ghostty/themes\f[R] or +\f[CR]\[ti]/.config/ghostty/themes\f[R]. +.PP +The second directory is the \f[CR]themes\f[R] subdirectory of the +Ghostty resources directory. +Ghostty ships with a multitude of themes that will be installed into +this directory. +On macOS, this list is in the +\f[CR]Ghostty.app/Contents/ Resources/ghostty/themes\f[R] directory. +On Linux, this list is in the \f[CR]share/ ghostty/themes\f[R] directory +(wherever you installed the Ghostty \[lq]share\[rq] directory. +.PP +To see a list of available themes, run \f[CR]ghostty +list\-themes\f[R]. +.PP +A theme file is simply another Ghostty configuration file. +They share the same syntax and same configuration options. +A theme can set any valid configuration option so please do not use a +theme file from an untrusted source. +The built\-in themes are audited to only set safe configuration options. +.PP +Some options cannot be set within theme files. +The reason these are not supported should be self\-evident. +A theme file cannot set \f[CR]theme\f[R] or \f[CR]config\-file\f[R]. +At the time of writing this, Ghostty will not show any warnings or +errors if you set these options in a theme file but they will be +silently ignored. +.PP +Any additional colors specified via background, foreground, palette, +etc. +will override the colors specified in the theme. +.PP +To specify a different theme for light and dark mode, use the following +syntax: \f[CR]light:theme\-name,dark:theme\-name\f[R]. +For example: \f[CR]light:rose\-pine\-dawn,dark:rose\-pine\f[R]. +Whitespace around all values are trimmed and order of light and dark +does not matter. +Both light and dark must be specified in this form. +In this form, the theme used will be based on the current desktop +environment theme. +.PP +There are some known bugs with light/dark mode theming. +These will be fixed in a future update: +.IP \[bu] 2 +macOS: titlebar tabs style is not updated when switching themes. +.RE +.TP +\f[B]\f[CB]\-\-background\f[B]\f[R] +Background color for the window. +.TP +\f[B]\f[CB]\-\-foreground\f[B]\f[R] +Foreground color for the window. +.TP +\f[B]\f[CB]\-\-selection\-foreground\f[B]\f[R] +The foreground and background color for selection. +If this is not set, then the selection color is just the inverted window +background and foreground (note: not to be confused with the cell +bg/fg). +.PP +\f[B]\f[CB]\-\-selection\-background\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-selection\-invert\-fg\-bg\f[B]\f[R] +Swap the foreground and background colors of cells for selection. +This option overrides the \f[CR]selection\-foreground\f[R] and +\f[CR]selection\-background\f[R] options. +.RS +.PP +If you select across cells with differing foregrounds and backgrounds, +the selection color will vary across the selection. +.RE +.TP +\f[B]\f[CB]\-\-minimum\-contrast\f[B]\f[R] +The minimum contrast ratio between the foreground and background colors. +The contrast ratio is a value between 1 and 21. +A value of 1 allows for no contrast (i.e.\ black on black). +This value is the contrast ratio as defined by the \c +.UR https://www.w3.org/TR/WCAG20/ +WCAG 2.0 specification +.UE \c +\&. +.RS +.PP +If you want to avoid invisible text (same color as background), a value +of 1.1 is a good value. +If you want to avoid text that is difficult to read, a value of 3 or +higher is a good value. +The higher the value, the more likely that text will become black or +white. +.PP +This value does not apply to Emoji or images. +.RE +.TP +\f[B]\f[CB]\-\-palette\f[B]\f[R] +Color palette for the 256 color form that many terminal applications +use. +The syntax of this configuration is \f[CR]N=HEXCODE\f[R] where +\f[CR]N\f[R] is 0 to 255 (for the 256 colors in the terminal color +table) and \f[CR]HEXCODE\f[R] is a typical RGB color code such as +\f[CR]#AABBCC\f[R]. +.RS +.PP +For definitions on all the codes \c +.UR https://www.ditig.com/256-colors-cheat-sheet +see this cheat sheet +.UE \c +\&. +.RE +.TP +\f[B]\f[CB]\-\-cursor\-color\f[B]\f[R] +The color of the cursor. +If this is not set, a default will be chosen. +.TP +\f[B]\f[CB]\-\-cursor\-invert\-fg\-bg\f[B]\f[R] +Swap the foreground and background colors of the cell under the cursor. +This option overrides the \f[CR]cursor\-color\f[R] and +\f[CR]cursor\-text\f[R] options. +.TP +\f[B]\f[CB]\-\-cursor\-opacity\f[B]\f[R] +The opacity level (opposite of transparency) of the cursor. +A value of 1 is fully opaque and a value of 0 is fully transparent. +A value less than 0 or greater than 1 will be clamped to the nearest +valid value. +Note that a sufficiently small value such as 0.3 may be effectively +invisible and may make it difficult to find the cursor. +.TP +\f[B]\f[CB]\-\-cursor\-style\f[B]\f[R] +The style of the cursor. +This sets the default style. +A running program can still request an explicit cursor style using +escape sequences (such as \f[CR]CSI q\f[R]). +Shell configurations will often request specific cursor styles. +.RS +.PP +Note that shell integration will automatically set the cursor to a bar +at a prompt, regardless of this configuration. +You can disable that behavior by specifying +\f[CR]shell\-integration\-features = no\-cursor\f[R] or disabling shell +integration entirely. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]block\f[R] +.IP \[bu] 2 +\f[CR]bar\f[R] +.IP \[bu] 2 +\f[CR]underline\f[R] +.IP \[bu] 2 +\f[CR]block_hollow\f[R] +.RE +.TP +\f[B]\f[CB]\-\-cursor\-style\-blink\f[B]\f[R] +Sets the default blinking state of the cursor. +This is just the default state; running programs may override the cursor +style using \f[CR]DECSCUSR\f[R] (\f[CR]CSI q\f[R]). +.RS +.PP +If this is not set, the cursor blinks by default. +Note that this is not the same as a \[lq]true\[rq] value, as noted +below. +.PP +If this is not set at all (\f[CR]null\f[R]), then Ghostty will respect +DEC Mode 12 (AT&T cursor blink) as an alternate approach to turning +blinking on/off. +If this is set to any value other than null, DEC mode 12 will be ignored +but \f[CR]DECSCUSR\f[R] will still be respected. +.PP +Valid values are: +.IP \[bu] 2 +\[ga]\[ga] (blank) +.IP \[bu] 2 +\f[CR]true\f[R] +.IP \[bu] 2 +\f[CR]false\f[R] +.RE +.TP +\f[B]\f[CB]\-\-cursor\-text\f[B]\f[R] +The color of the text under the cursor. +If this is not set, a default will be chosen. +.TP +\f[B]\f[CB]\-\-cursor\-click\-to\-move\f[B]\f[R] +Enables the ability to move the cursor at prompts by using +\f[CR]alt+click\f[R] on Linux and \f[CR]option+click\f[R] on macOS. +.RS +.PP +This feature requires shell integration (specifically prompt marking via +\f[CR]OSC 133\f[R]) and only works in primary screen mode. +Alternate screen applications like vim usually have their own version of +this feature but this configuration doesn\[cq]t control that. +.PP +It should be noted that this feature works by translating your desired +position into a series of synthetic arrow key movements, so some weird +behavior around edge cases are to be expected. +This is unfortunately how this feature is implemented across terminals +because there isn\[cq]t any other way to implement it. +.RE +.TP +\f[B]\f[CB]\-\-mouse\-hide\-while\-typing\f[B]\f[R] +Hide the mouse immediately when typing. +The mouse becomes visible again when the mouse is used (button, +movement, etc.). +Platform\-specific behavior may dictate other scenarios where the mouse +is shown. +For example on macOS, the mouse is shown again when a new window, tab, +or split is created. +.TP +\f[B]\f[CB]\-\-mouse\-shift\-capture\f[B]\f[R] +Determines whether running programs can detect the shift key pressed +with a mouse click. +Typically, the shift key is used to extend mouse selection. +.RS +.PP +The default value of \f[CR]false\f[R] means that the shift key is not +sent with the mouse protocol and will extend the selection. +This value can be conditionally overridden by the running program with +the \f[CR]XTSHIFTESCAPE\f[R] sequence. +.PP +The value \f[CR]true\f[R] means that the shift key is sent with the +mouse protocol but the running program can override this behavior with +\f[CR]XTSHIFTESCAPE\f[R]. +.PP +The value \f[CR]never\f[R] is the same as \f[CR]false\f[R] but the +running program cannot override this behavior with +\f[CR]XTSHIFTESCAPE\f[R]. +The value \f[CR]always\f[R] is the same as \f[CR]true\f[R] but the +running program cannot override this behavior with +\f[CR]XTSHIFTESCAPE\f[R]. +.PP +If you always want shift to extend mouse selection even if the program +requests otherwise, set this to \f[CR]never\f[R]. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]true\f[R] +.IP \[bu] 2 +\f[CR]false\f[R] +.IP \[bu] 2 +\f[CR]always\f[R] +.IP \[bu] 2 +\f[CR]never\f[R] +.RE +.TP +\f[B]\f[CB]\-\-mouse\-scroll\-multiplier\f[B]\f[R] +Multiplier for scrolling distance with the mouse wheel. +Any value less than 0.01 or greater than 10,000 will be clamped to the +nearest valid value. +.RS +.PP +A value of \[lq]1\[rq] (default) scrolls te default amount. +A value of \[lq]2\[rq] scrolls double the default amount. +A value of \[lq]0.5\[rq] scrolls half the default amount. +Et cetera. +.RE +.TP +\f[B]\f[CB]\-\-background\-opacity\f[B]\f[R] +The opacity level (opposite of transparency) of the background. +A value of 1 is fully opaque and a value of 0 is fully transparent. +A value less than 0 or greater than 1 will be clamped to the nearest +valid value. +.RS +.PP +On macOS, background opacity is disabled when the terminal enters native +fullscreen. +This is because the background becomes gray and it can cause widgets to +show through which isn\[cq]t generally desirable. +.RE +.TP +\f[B]\f[CB]\-\-background\-blur\-radius\f[B]\f[R] +A positive value enables blurring of the background when +background\-opacity is less than 1. +The value is the blur radius to apply. +A value of 20 is reasonable for a good looking blur. +Higher values will cause strange rendering issues as well as performance +issues. +.RS +.PP +This is only supported on macOS. +.RE +.TP +\f[B]\f[CB]\-\-unfocused\-split\-opacity\f[B]\f[R] +The opacity level (opposite of transparency) of an unfocused split. +Unfocused splits by default are slightly faded out to make it easier to +see which split is focused. +To disable this feature, set this value to 1. +.RS +.PP +A value of 1 is fully opaque and a value of 0 is fully transparent. +Because \[lq]0\[rq] is not useful (it makes the window look very weird), +the minimum value is 0.15. +This value still looks weird but you can at least see what\[cq]s going +on. +A value outside of the range 0.15 to 1 will be clamped to the nearest +valid value. +.RE +.TP +\f[B]\f[CB]\-\-unfocused\-split\-fill\f[B]\f[R] +The color to dim the unfocused split. +Unfocused splits are dimmed by rendering a semi\-transparent rectangle +over the split. +This sets the color of that rectangle and can be used to carefully +control the dimming effect. +.RS +.PP +This will default to the background color. +.RE +.TP +\f[B]\f[CB]\-\-command\f[B]\f[R] +The command to run, usually a shell. +If this is not an absolute path, it\[cq]ll be looked up in the +\f[CR]PATH\f[R]. +If this is not set, a default will be looked up from your system. +The rules for the default lookup are: +.RS +.IP \[bu] 2 +\f[CR]SHELL\f[R] environment variable +.IP \[bu] 2 +\f[CR]passwd\f[R] entry (user information) +.PP +This can contain additional arguments to run the command with. +If additional arguments are provided, the command will be executed using +\f[CR]/bin/sh \-c\f[R]. +Ghostty does not do any shell command parsing. +.PP +This command will be used for all new terminal surfaces, i.e.\ new +windows, tabs, etc. +If you want to run a command only for the first terminal surface created +when Ghostty starts, use the \f[CR]initial\-command\f[R] configuration. +.PP +Ghostty supports the common \f[CR]\-e\f[R] flag for executing a command +with arguments. +For example, \f[CR]ghostty \-e fish \-\-with \-\-custom \-\-args\f[R]. +This flag sets the \f[CR]initial\-command\f[R] configuration, see that +for more information. +.RE +.TP +\f[B]\f[CB]\-\-initial\-command\f[B]\f[R] +This is the same as \[lq]command\[rq], but only applies to the first +terminal surface created when Ghostty starts. +Subsequent terminal surfaces will use the \f[CR]command\f[R] +configuration. +.RS +.PP +After the first terminal surface is created (or closed), there is no way +to run this initial command again automatically. +As such, setting this at runtime works but will only affect the next +terminal surface if it is the first one ever created. +.PP +If you\[cq]re using the \f[CR]ghostty\f[R] CLI there is also a shortcut +to set this with arguments directly: you can use the \f[CR]\-e\f[R] +flag. +For example: \f[CR]ghostty \-e fish \-\-with \-\-custom \-\-args\f[R]. +The \f[CR]\-e\f[R] flag automatically forces some other behaviors as +well: +.IP \[bu] 2 +\f[CR]gtk\-single\-instance=false\f[R] \- This ensures that a new +instance is launched and the CLI args are respected. +.IP \[bu] 2 +\f[CR]quit\-after\-last\-window\-closed=true\f[R] \- This ensures that +the Ghostty process will exit when the command exits. +Additionally, the \f[CR]quit\-after\-last\-window\-closed\-delay\f[R] is +unset. +.IP \[bu] 2 +\f[CR]shell\-integration=detect\f[R] (if not \f[CR]none\f[R]) \- This +prevents forcibly injecting any configured shell integration into the +command\[cq]s environment. +With \f[CR]\-e\f[R] its highly unlikely that you\[cq]re executing a +shell and forced shell integration is likely to cause problems (i.e.\ by +wrapping your command in a shell, setting env vars, etc.). +This is a safety measure to prevent unexpected behavior. +If you want shell integration with a \f[CR]\-e\f[R]\-executed command, +you must either name your binary appopriately or source the shell +integration script manually. +.RE +.TP +\f[B]\f[CB]\-\-wait\-after\-command\f[B]\f[R] +If true, keep the terminal open after the command exits. +Normally, the terminal window closes when the running command (such as a +shell) exits. +With this true, the terminal window will stay open until any keypress is +received. +.RS +.PP +This is primarily useful for scripts or debugging. +.RE +.TP +\f[B]\f[CB]\-\-abnormal\-command\-exit\-runtime\f[B]\f[R] +The number of milliseconds of runtime below which we consider a process +exit to be abnormal. +This is used to show an error message when the process exits too +quickly. +.RS +.PP +On Linux, this must be paired with a non\-zero exit code. +On macOS, we allow any exit code because of the way shell processes are +launched via the login command. +.RE +.TP +\f[B]\f[CB]\-\-scrollback\-limit\f[B]\f[R] +The size of the scrollback buffer in bytes. +This also includes the active screen. +No matter what this is set to, enough memory will always be allocated +for the visible screen and anything leftover is the limit for the +scrollback. +.RS +.PP +When this limit is reached, the oldest lines are removed from the +scrollback. +.PP +Scrollback currently exists completely in memory. +This means that the larger this value, the larger potential memory +usage. +Scrollback is allocated lazily up to this limit, so if you set this to a +very large value, it will not immediately consume a lot of memory. +.PP +This size is per terminal surface, not for the entire application. +.PP +It is not currently possible to set an unlimited scrollback buffer. +This is a future planned feature. +.PP +This can be changed at runtime but will only affect new terminal +surfaces. +.RE +.TP +\f[B]\f[CB]\-\-link\f[B]\f[R] +Match a regular expression against the terminal text and associate +clicking it with an action. +This can be used to match URLs, file paths, etc. +Actions can be opening using the system opener (i.e.\ \f[CR]open\f[R] or +\f[CR]xdg\-open\f[R]) or executing any arbitrary binding action. +.RS +.PP +Links that are configured earlier take precedence over links that are +configured later. +.PP +A default link that matches a URL and opens it in the system opener +always exists. +This can be disabled using \f[CR]link\-url\f[R]. +.PP +TODO: This can\[cq]t currently be set! +.RE +.TP +\f[B]\f[CB]\-\-link\-url\f[B]\f[R] +Enable URL matching. +URLs are matched on hover with control (Linux) or super (macOS) pressed +and open using the default system application for the linked URL. +.RS +.PP +The URL matcher is always lowest priority of any configured links (see +\f[CR]link\f[R]). +If you want to customize URL matching, use \f[CR]link\f[R] and disable +this. +.RE +.TP +\f[B]\f[CB]\-\-fullscreen\f[B]\f[R] +Start new windows in fullscreen. +This setting applies to new windows and does not apply to tabs, splits, +etc. +However, this setting will apply to all new windows, not just the first +one. +.RS +.PP +On macOS, this setting does not work if window\-decoration is set to +\[lq]false\[rq], because native fullscreen on macOS requires window +decorations to be set. +.RE +.TP +\f[B]\f[CB]\-\-title\f[B]\f[R] +The title Ghostty will use for the window. +This will force the title of the window to be this title at all times +and Ghostty will ignore any set title escape sequences programs (such as +Neovim) may send. +.RS +.PP +If you want a blank title, set this to one or more spaces by quoting the +value. +For example, \f[CR]title = \[dq] \[dq]\f[R]. +This effectively hides the title. +This is necessary because setting a blank value resets the title to the +default value of the running program. +.PP +This configuration can be reloaded at runtime. +If it is set, the title will update for all windows. +If it is unset, the next title change escape sequence will be honored +but previous changes will not retroactively be set. +This latter case may require you restart programs such as neovim to get +the new title. +.RE +.TP +\f[B]\f[CB]\-\-class\f[B]\f[R] +The setting that will change the application class value. +.RS +.PP +This controls the class field of the \f[CR]WM_CLASS\f[R] X11 property +(when running under X11), and the Wayland application ID (when running +under Wayland). +.PP +Note that changing this value between invocations will create new, +separate instances, of Ghostty when running with +\f[CR]gtk\-single\-instance=true\f[R]. +See that option for more details. +.PP +The class name must follow the requirements defined \c +.UR https://docs.gtk.org/gio/type_func.Application.id_is_valid.html +in the GTK documentation +.UE \c +\&. +.PP +The default is \f[CR]com.mitchellh.ghostty\f[R]. +.PP +This only affects GTK builds. +.RE +.TP +\f[B]\f[CB]\-\-x11\-instance\-name\f[B]\f[R] +This controls the instance name field of the \f[CR]WM_CLASS\f[R] X11 +property when running under X11. +It has no effect otherwise. +.RS +.PP +The default is \f[CR]ghostty\f[R]. +.PP +This only affects GTK builds. +.RE +.TP +\f[B]\f[CB]\-\-working\-directory\f[B]\f[R] +The directory to change to after starting the command. +.RS +.PP +This setting is secondary to the +\f[CR]window\-inherit\-working\-directory\f[R] setting. +If a previous Ghostty terminal exists in the same process, +\f[CR]window\-inherit\-working\-directory\f[R] will take precedence. +Otherwise, this setting will be used. +Typically, this setting is used only for the first window. +.PP +The default is \f[CR]inherit\f[R] except in special scenarios listed +next. +On macOS, if Ghostty can detect it is launched from launchd +(double\-clicked) or \f[CR]open\f[R], then it defaults to +\f[CR]home\f[R]. +On Linux with GTK, if Ghostty can detect it was launched from a desktop +launcher, then it defaults to \f[CR]home\f[R]. +.PP +The value of this must be an absolute value or one of the special values +below: +.IP \[bu] 2 +\f[CR]home\f[R] \- The home directory of the executing user. +.IP \[bu] 2 +\f[CR]inherit\f[R] \- The working directory of the launching process. +.RE +.TP +\f[B]\f[CB]\-\-keybind\f[B]\f[R] +Key bindings. +The format is \f[CR]trigger=action\f[R]. +Duplicate triggers will overwrite previously set values. +The list of actions is available in the documentation or using the +\f[CR]ghostty +list\-actions\f[R] command. +.RS +.PP +Trigger: \f[CR]+\f[R]\-separated list of keys and modifiers. +Example: \f[CR]ctrl+a\f[R], \f[CR]ctrl+shift+b\f[R], \f[CR]up\f[R]. +Some notes: +.IP \[bu] 2 +modifiers cannot repeat, \f[CR]ctrl+ctrl+a\f[R] is invalid. +.IP \[bu] 2 +modifiers and keys can be in any order, \f[CR]shift+a+ctrl\f[R] is +\f[I]weird\f[R], but valid. +.IP \[bu] 2 +only a single key input is allowed, \f[CR]ctrl+a+b\f[R] is invalid. +.IP \[bu] 2 +the key input can be prefixed with \f[CR]physical:\f[R] to specify a +physical key mapping rather than a logical one. +A physical key mapping responds to the hardware keycode and not the +keycode translated by any system keyboard layouts. +Example: \[lq]ctrl+physical:a\[rq] +.PP +Valid modifiers are \f[CR]shift\f[R], \f[CR]ctrl\f[R] (alias: +\f[CR]control\f[R]), \f[CR]alt\f[R] (alias: \f[CR]opt\f[R], +\f[CR]option\f[R]), and \f[CR]super\f[R] (alias: \f[CR]cmd\f[R], +\f[CR]command\f[R]). +You may use the modifier or the alias. +When debugging keybinds, the non\-aliased modifier will always be used +in output. +.PP +Note: The fn or \[lq]globe\[rq] key on keyboards are not supported as a +modifier. +This is a limitation of the operating systems and GUI toolkits that +Ghostty uses. +.PP +You may also specify multiple triggers separated by \f[CR]>\f[R] to +require a sequence of triggers to activate the action. +For example, \f[CR]ctrl+a>n=new_window\f[R] will only trigger the +\f[CR]new_window\f[R] action if the user presses \f[CR]ctrl+a\f[R] +followed separately by \f[CR]n\f[R]. +In other software, this is sometimes called a leader key, a key chord, a +key table, etc. +There is no hardcoded limit on the number of parts in a sequence. +.PP +Warning: If you define a sequence as a CLI argument to +\f[CR]ghostty\f[R], you probably have to quote the keybind since +\f[CR]>\f[R] is a special character in most shells. +Example: ghostty \[en]keybind=`ctrl+a>n=new_window' +.PP +A trigger sequence has some special handling: +.IP \[bu] 2 +Ghostty will wait an indefinite amount of time for the next key in the +sequence. +There is no way to specify a timeout. +The only way to force the output of a prefix key is to assign another +keybind to specifically output that key +(i.e.\ \f[CR]ctrl+a>ctrl+a=text:foo\f[R]) or press an unbound key which +will send both keys to the program. +.IP \[bu] 2 +If a prefix in a sequence is previously bound, the sequence will +override the previous binding. +For example, if \f[CR]ctrl+a\f[R] is bound to \f[CR]new_window\f[R] and +\f[CR]ctrl+a>n\f[R] is bound to \f[CR]new_tab\f[R], pressing +\f[CR]ctrl+a\f[R] will do nothing. +.IP \[bu] 2 +Adding to the above, if a previously bound sequence prefix is used in a +new, non\-sequence binding, the entire previously bound sequence will be +unbound. +For example, if you bind \f[CR]ctrl+a>n\f[R] and \f[CR]ctrl+a>t\f[R], +and then bind \f[CR]ctrl+a\f[R] directly, both \f[CR]ctrl+a>n\f[R] and +\f[CR]ctrl+a>t\f[R] will become unbound. +.IP \[bu] 2 +Trigger sequences are not allowed for \f[CR]global:\f[R] or +\f[CR]all:\f[R]\-prefixed triggers. +This is a limitation we could remove in the future. +.PP +Action is the action to take when the trigger is satisfied. +It takes the format \f[CR]action\f[R] or \f[CR]action:param\f[R]. +The latter form is only valid if the action requires a parameter. +.IP \[bu] 2 +\f[CR]ignore\f[R] \- Do nothing, ignore the key input. +This can be used to black hole certain inputs to have no effect. +.IP \[bu] 2 +\f[CR]unbind\f[R] \- Remove the binding. +This makes it so the previous action is removed, and the key will be +sent through to the child command if it is printable. +.IP \[bu] 2 +\f[CR]csi:text\f[R] \- Send a CSI sequence. +i.e.\ \f[CR]csi:A\f[R] sends \[lq]cursor up\[rq]. +.IP \[bu] 2 +\f[CR]esc:text\f[R] \- Send an escape sequence. +i.e.\ \f[CR]esc:d\f[R] deletes to the end of the word to the right. +.IP \[bu] 2 +\f[CR]text:text\f[R] \- Send a string. +Uses Zig string literal syntax. +i.e.\ \f[CR]text:\[rs]x15\f[R] sends Ctrl\-U. +.IP \[bu] 2 +All other actions can be found in the documentation or by using the +\f[CR]ghostty +list\-actions\f[R] command. +.PP +Some notes for the action: +.IP \[bu] 2 +The parameter is taken as\-is after the \f[CR]:\f[R]. +Double quotes or other mechanisms are included and NOT parsed. +If you want to send a string value that includes spaces, wrap the entire +trigger/action in double quotes. +Example: \f[CR]\-\-keybind=\[dq]up=csi:A B\[dq]\f[R] +.PP +There are some additional special values that can be specified for +keybind: +.IP \[bu] 2 +\f[CR]keybind=clear\f[R] will clear all set keybindings. +Warning: this removes ALL keybindings up to this point, including the +default keybindings. +.PP +The keybind trigger can be prefixed with some special values to change +the behavior of the keybind. +These are: +.IP \[bu] 2 +\f[CR]all:\f[R] \- Make the keybind apply to all terminal surfaces. +By default, keybinds only apply to the focused terminal surface. +If this is true, then the keybind will be sent to all terminal surfaces. +This only applies to actions that are surface\-specific. +For actions that are already global (i.e.\ \f[CR]quit\f[R]), this prefix +has no effect. +.IP \[bu] 2 +\f[CR]global:\f[R] \- Make the keybind global. +By default, keybinds only work within Ghostty and under the right +conditions (application focused, sometimes terminal focused, etc.). +If you want a keybind to work globally across your system (i.e.\ even +when Ghostty is not focused), specify this prefix. +This prefix implies \f[CR]all:\f[R]. +Note: this does not work in all environments; see the additional notes +below for more information. +.IP \[bu] 2 +\f[CR]unconsumed:\f[R] \- Do not consume the input. +By default, a keybind will consume the input, meaning that the +associated encoding (if any) will not be sent to the running program in +the terminal. +If you wish to send the encoded value to the program, specify the +\f[CR]unconsumed:\f[R] prefix before the entire keybind. +For example: \f[CR]unconsumed:ctrl+a=reload_config\f[R]. +\f[CR]global:\f[R] and \f[CR]all:\f[R]\-prefixed keybinds will always +consume the input regardless of this setting. +Since they are not associated with a specific terminal surface, +they\[cq]re never encoded. +.PP +Keybind triggers are not unique per prefix combination. +For example, \f[CR]ctrl+a\f[R] and \f[CR]global:ctrl+a\f[R] are not two +separate keybinds. +The keybind set later will overwrite the keybind set earlier. +In this case, the \f[CR]global:\f[R] keybind will be used. +.PP +Multiple prefixes can be specified. +For example, \f[CR]global:unconsumed:ctrl+a=reload_config\f[R] will make +the keybind global and not consume the input to reload the config. +.PP +Note: \f[CR]global:\f[R] is only supported on macOS. +On macOS, this feature requires accessibility permissions to be granted +to Ghostty. +When a \f[CR]global:\f[R] keybind is specified and Ghostty is launched +or reloaded, Ghostty will attempt to request these permissions. +If the permissions are not granted, the keybind will not work. +On macOS, you can find these permissions in System Preferences \-> +Privacy & Security \-> Accessibility. +.RE +.TP +\f[B]\f[CB]\-\-window\-padding\-x\f[B]\f[R] +Horizontal window padding. +This applies padding between the terminal cells and the left and right +window borders. +The value is in points, meaning that it will be scaled appropriately for +screen DPI. +.RS +.PP +If this value is set too large, the screen will render nothing, because +the grid will be completely squished by the padding. +It is up to you as the user to pick a reasonable value. +If you pick an unreasonable value, a warning will appear in the logs. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e. +new windows, tabs, etc. +.PP +To set a different left and right padding, specify two numerical values +separated by a comma. +For example, \f[CR]window\-padding\-x = 2,4\f[R] will set the left +padding to 2 and the right padding to 4. +If you want to set both paddings to the same value, you can use a single +value. +For example, \f[CR]window\-padding\-x = 2\f[R] will set both paddings to +2. +.RE +.TP +\f[B]\f[CB]\-\-window\-padding\-y\f[B]\f[R] +Vertical window padding. +This applies padding between the terminal cells and the top and bottom +window borders. +The value is in points, meaning that it will be scaled appropriately for +screen DPI. +.RS +.PP +If this value is set too large, the screen will render nothing, because +the grid will be completely squished by the padding. +It is up to you as the user to pick a reasonable value. +If you pick an unreasonable value, a warning will appear in the logs. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e.\ new windows, tabs, etc. +.PP +To set a different top and bottom padding, specify two numerical values +separated by a comma. +For example, \f[CR]window\-padding\-y = 2,4\f[R] will set the top +padding to 2 and the bottom padding to 4. +If you want to set both paddings to the same value, you can use a single +value. +For example, \f[CR]window\-padding\-y = 2\f[R] will set both paddings to +2. +.RE +.TP +\f[B]\f[CB]\-\-window\-padding\-balance\f[B]\f[R] +The viewport dimensions are usually not perfectly divisible by the cell +size. +In this case, some extra padding on the end of a column and the bottom +of the final row may exist. +If this is \f[CR]true\f[R], then this extra padding is automatically +balanced between all four edges to minimize imbalance on one side. +If this is \f[CR]false\f[R], the top left grid cell will always hug the +edge with zero padding other than what may be specified with the other +\f[CR]window\-padding\f[R] options. +.RS +.PP +If other \f[CR]window\-padding\f[R] fields are set and this is +\f[CR]true\f[R], this will still apply. +The other padding is applied first and may affect how many grid cells +actually exist, and this is applied last in order to balance the padding +given a certain viewport size and grid cell size. +.RE +.TP +\f[B]\f[CB]\-\-window\-padding\-color\f[B]\f[R] +The color of the padding area of the window. +Valid values are: +.RS +.IP \[bu] 2 +\f[CR]background\f[R] \- The background color specified in +\f[CR]background\f[R]. +.IP \[bu] 2 +\f[CR]extend\f[R] \- Extend the background color of the nearest grid +cell. +.IP \[bu] 2 +\f[CR]extend\-always\f[R] \- Same as \[lq]extend\[rq] but always extends +without applying any of the heuristics that disable extending noted +below. +.PP +The \[lq]extend\[rq] value will be disabled in certain scenarios. +On primary screen applications (i.e.\ not something like Neovim), the +color will not be extended vertically if any of the following are true: +.IP \[bu] 2 +The nearest row has any cells that have the default background color. +The thinking is that in this case, the default background color looks +fine as a padding color. +.IP \[bu] 2 +The nearest row is a prompt row (requires shell integration). +The thinking here is that prompts often contain powerline glyphs that do +not look good extended. +.IP \[bu] 2 +The nearest row contains a perfect fit powerline character. +These don\[cq]t look good extended. +.RE +.TP +\f[B]\f[CB]\-\-window\-vsync\f[B]\f[R] +Synchronize rendering with the screen refresh rate. +If true, this will minimize tearing and align redraws with the screen +but may cause input latency. +If false, this will maximize redraw frequency but may cause tearing, and +under heavy load may use more CPU and power. +.RS +.PP +This defaults to true because out\-of\-sync rendering on macOS can cause +kernel panics (macOS 14.4+) and performance issues for external displays +over some hardware such as DisplayLink. +If you want to minimize input latency, set this to false with the known +aforementioned risks. +.PP +Changing this value at runtime will only affect new terminals. +.PP +This setting is only supported currently on macOS. +.RE +.TP +\f[B]\f[CB]\-\-window\-inherit\-working\-directory\f[B]\f[R] +If true, new windows and tabs will inherit the working directory of the +previously focused window. +If no window was previously focused, the default working directory will +be used (the \f[CR]working\-directory\f[R] option). +.TP +\f[B]\f[CB]\-\-window\-inherit\-font\-size\f[B]\f[R] +If true, new windows and tabs will inherit the font size of the +previously focused window. +If no window was previously focused, the default font size will be used. +If this is false, the default font size specified in the configuration +\f[CR]font\-size\f[R] will be used. +.TP +\f[B]\f[CB]\-\-window\-decoration\f[B]\f[R] +Valid values: +.RS +.IP \[bu] 2 +\f[CR]true\f[R] +.IP \[bu] 2 +\f[CR]false\f[R] \- windows won\[cq]t have native decorations, +i.e.\ titlebar and borders. +On macOS this also disables tabs and tab overview. +.PP +The \[lq]toggle_window_decorations\[rq] keybind action can be used to +create a keybinding to toggle this setting at runtime. +.PP +Changing this configuration in your configuration and reloading will +only affect new windows. +Existing windows will not be affected. +.PP +macOS: To hide the titlebar without removing the native window borders +or rounded corners, use \f[CR]macos\-titlebar\-style = hidden\f[R] +instead. +.RE +.TP +\f[B]\f[CB]\-\-window\-title\-font\-family\f[B]\f[R] +The font that will be used for the application\[cq]s window and tab +titles. +.RS +.PP +This is currently only supported on macOS. +.RE +.TP +\f[B]\f[CB]\-\-window\-theme\f[B]\f[R] +The theme to use for the windows. +Valid values: +.RS +.IP \[bu] 2 +\f[CR]auto\f[R] \- Determine the theme based on the configured terminal +background color. +This has no effect if the \[lq]theme\[rq] configuration has separate +light and dark themes. +In that case, the behavior of \[lq]auto\[rq] is equivalent to +\[lq]system\[rq]. +.IP \[bu] 2 +\f[CR]system\f[R] \- Use the system theme. +.IP \[bu] 2 +\f[CR]light\f[R] \- Use the light theme regardless of system theme. +.IP \[bu] 2 +\f[CR]dark\f[R] \- Use the dark theme regardless of system theme. +.IP \[bu] 2 +\f[CR]ghostty\f[R] \- Use the background and foreground colors specified +in the Ghostty configuration. +This is only supported on Linux builds with Adwaita and +\f[CR]gtk\-adwaita\f[R] enabled. +.PP +On macOS, if \f[CR]macos\-titlebar\-style\f[R] is \[lq]tabs\[rq], the +window theme will be automatically set based on the luminosity of the +terminal background color. +This only applies to terminal windows. +This setting will still apply to non\-terminal windows within Ghostty. +.PP +This is currently only supported on macOS and Linux. +.RE +.TP +\f[B]\f[CB]\-\-window\-colorspace\f[B]\f[R] +The colorspace to use for the terminal window. +The default is \f[CR]srgb\f[R] but this can also be set to +\f[CR]display\-p3\f[R] to use the Display P3 colorspace. +.RS +.PP +Changing this value at runtime will only affect new windows. +.PP +This setting is only supported on macOS. +.RE +.TP +\f[B]\f[CB]\-\-window\-height\f[B]\f[R] +The initial window size. +This size is in terminal grid cells by default. +Both values must be set to take effect. +If only one value is set, it is ignored. +.RS +.PP +We don\[cq]t currently support specifying a size in pixels but a future +change can enable that. +If this isn\[cq]t specified, the app runtime will determine some default +size. +.PP +Note that the window manager may put limits on the size or override the +size. +For example, a tiling window manager may force the window to be a +certain size to fit within the grid. +There is nothing Ghostty will do about this, but it will make an effort. +.PP +Sizes larger than the screen size will be clamped to the screen size. +This can be used to create a maximized\-by\-default window size. +.PP +This will not affect new tabs, splits, or other nested terminal +elements. +This only affects the initial window size of any new window. +Changing this value will not affect the size of the window after it has +been created. +This is only used for the initial size. +.PP +BUG: On Linux with GTK, the calculated window size will not properly +take into account window decorations. +As a result, the grid dimensions will not exactly match this +configuration. +If window decorations are disabled (see window\-decorations), then this +will work as expected. +.PP +Windows smaller than 10 wide by 4 high are not allowed. +.RE +.PP +\f[B]\f[CB]\-\-window\-width\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-window\-save\-state\f[B]\f[R] +Whether to enable saving and restoring window state. +Window state includes their position, size, tabs, splits, etc. +Some window state requires shell integration, such as preserving working +directories. +See \f[CR]shell\-integration\f[R] for more information. +.RS +.PP +There are three valid values for this configuration: +.IP \[bu] 2 +\f[CR]default\f[R] will use the default system behavior. +On macOS, this will only save state if the application is forcibly +terminated or if it is configured systemwide via Settings.app. +.IP \[bu] 2 +\f[CR]never\f[R] will never save window state. +.IP \[bu] 2 +\f[CR]always\f[R] will always save window state whenever Ghostty is +exited. +.PP +If you change this value to \f[CR]never\f[R] while Ghostty is not +running, the next Ghostty launch will NOT restore the window state. +.PP +If you change this value to \f[CR]default\f[R] while Ghostty is not +running and the previous exit saved state, the next Ghostty launch will +still restore the window state. +This is because Ghostty cannot know if the previous exit was due to a +forced save or not (macOS doesn\[cq]t provide this information). +.PP +If you change this value so that window state is saved while Ghostty is +not running, the previous window state will not be restored because +Ghostty only saves state on exit if this is enabled. +.PP +The default value is \f[CR]default\f[R]. +.PP +This is currently only supported on macOS. +This has no effect on Linux. +.RE +.TP +\f[B]\f[CB]\-\-window\-step\-resize\f[B]\f[R] +Resize the window in discrete increments of the focused surface\[cq]s +cell size. +If this is disabled, surfaces are resized in pixel increments. +Currently only supported on macOS. +.TP +\f[B]\f[CB]\-\-window\-new\-tab\-position\f[B]\f[R] +The position where new tabs are created. +Valid values: +.RS +.IP \[bu] 2 +\f[CR]current\f[R] \- Insert the new tab after the currently focused +tab, or at the end if there are no focused tabs. +.IP \[bu] 2 +\f[CR]end\f[R] \- Insert the new tab at the end of the tab list. +.RE +.TP +\f[B]\f[CB]\-\-resize\-overlay\f[B]\f[R] +This controls when resize overlays are shown. +Resize overlays are a transient popup that shows the size of the +terminal while the surfaces are being resized. +The possible options are: +.RS +.IP \[bu] 2 +\f[CR]always\f[R] \- Always show resize overlays. +.IP \[bu] 2 +\f[CR]never\f[R] \- Never show resize overlays. +.IP \[bu] 2 +\f[CR]after\-first\f[R] \- The resize overlay will not appear when the +surface is first created, but will show up if the surface is +subsequently resized. +.PP +The default is \f[CR]after\-first\f[R]. +.RE +.TP +\f[B]\f[CB]\-\-resize\-overlay\-position\f[B]\f[R] +If resize overlays are enabled, this controls the position of the +overlay. +The possible options are: +.RS +.IP \[bu] 2 +\f[CR]center\f[R] +.IP \[bu] 2 +\f[CR]top\-left\f[R] +.IP \[bu] 2 +\f[CR]top\-center\f[R] +.IP \[bu] 2 +\f[CR]top\-right\f[R] +.IP \[bu] 2 +\f[CR]bottom\-left\f[R] +.IP \[bu] 2 +\f[CR]bottom\-center\f[R] +.IP \[bu] 2 +\f[CR]bottom\-right\f[R] +.PP +The default is \f[CR]center\f[R]. +.RE +.TP +\f[B]\f[CB]\-\-resize\-overlay\-duration\f[B]\f[R] +If resize overlays are enabled, this controls how long the overlay is +visible on the screen before it is hidden. +The default is ¾ of a second or 750 ms. +.RS +.PP +The duration is specified as a series of numbers followed by time units. +Whitespace is allowed between numbers and units. +Each number and unit will be added together to form the total duration. +.PP +The allowed time units are as follows: +.IP \[bu] 2 +\f[CR]y\f[R] \- 365 SI days, or 8760 hours, or 31536000 seconds. +No adjustments are made for leap years or leap seconds. +.IP \[bu] 2 +\f[CR]d\f[R] \- one SI day, or 86400 seconds. +.IP \[bu] 2 +\f[CR]h\f[R] \- one hour, or 3600 seconds. +.IP \[bu] 2 +\f[CR]m\f[R] \- one minute, or 60 seconds. +.IP \[bu] 2 +\f[CR]s\f[R] \- one second. +.IP \[bu] 2 +\f[CR]ms\f[R] \- one millisecond, or 0.001 second. +.IP \[bu] 2 +\f[CR]us\f[R] or \f[CR]µs\f[R] \- one microsecond, or 0.000001 second. +.IP \[bu] 2 +\f[CR]ns\f[R] \- one nanosecond, or 0.000000001 second. +.PP +Examples: * \f[CR]1h30m\f[R] * \f[CR]45s\f[R] +.PP +Units can be repeated and will be added together. +This means that \f[CR]1h1h\f[R] is equivalent to \f[CR]2h\f[R]. +This is confusing and should be avoided. +A future update may disallow this. +.PP +The maximum value is \f[CR]584y 49w 23h 34m 33s 709ms 551µs 615ns\f[R]. +Any value larger than this will be clamped to the maximum value. +.RE +.PP +\f[B]\f[CB]\-\-focus\-follows\-mouse\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-clipboard\-read\f[B]\f[R] +Whether to allow programs running in the terminal to read/write to the +system clipboard (OSC 52, for googling). +The default is to allow clipboard reading after prompting the user and +allow writing unconditionally. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]ask\f[R] +.IP \[bu] 2 +\f[CR]allow\f[R] +.IP \[bu] 2 +\f[CR]deny\f[R] +.RE +.PP +\f[B]\f[CB]\-\-clipboard\-write\f[B]\f[R] +.TP +\f[B]\f[CB]\-\-clipboard\-trim\-trailing\-spaces\f[B]\f[R] +Trims trailing whitespace on data that is copied to the clipboard. +This does not affect data sent to the clipboard via +\f[CR]clipboard\-write\f[R]. +.TP +\f[B]\f[CB]\-\-clipboard\-paste\-protection\f[B]\f[R] +Require confirmation before pasting text that appears unsafe. +This helps prevent a \[lq]copy/paste attack\[rq] where a user may +accidentally execute unsafe commands by pasting text with newlines. +.TP +\f[B]\f[CB]\-\-clipboard\-paste\-bracketed\-safe\f[B]\f[R] +If true, bracketed pastes will be considered safe. +By default, bracketed pastes are considered safe. +\[lq]Bracketed\[rq] pastes are pastes while the running program has +bracketed paste mode enabled (a setting set by the running program, not +the terminal emulator). +.TP +\f[B]\f[CB]\-\-image\-storage\-limit\f[B]\f[R] +The total amount of bytes that can be used for image data (i.e.\ the +Kitty image protocol) per terminal screen. +The maximum value is 4,294,967,295 (4GiB). +The default is 320MB. +If this is set to zero, then all image protocols will be disabled. +.RS +.PP +This value is separate for primary and alternate screens so the +effective limit per surface is double. +.RE +.TP +\f[B]\f[CB]\-\-copy\-on\-select\f[B]\f[R] +Whether to automatically copy selected text to the clipboard. +\f[CR]true\f[R] will prefer to copy to the selection clipboard if +supported by the OS, otherwise it will copy to the system clipboard. +.RS +.PP +The value \f[CR]clipboard\f[R] will always copy text to the selection +clipboard (for supported systems) as well as the system clipboard. +This is sometimes a preferred behavior on Linux. +.PP +Middle\-click paste will always use the selection clipboard on Linux and +the system clipboard on macOS. +Middle\-click paste is always enabled even if this is \f[CR]false\f[R]. +.PP +The default value is true on Linux and false on macOS. +macOS copy on select behavior is not typical for applications so it is +disabled by default. +On Linux, this is a standard behavior so it is enabled by default. +.RE +.TP +\f[B]\f[CB]\-\-click\-repeat\-interval\f[B]\f[R] +The time in milliseconds between clicks to consider a click a repeat +(double, triple, etc.) +or an entirely new single click. +A value of zero will use a platform\-specific default. +The default on macOS is determined by the OS settings. +On every other platform it is 500ms. +.TP +\f[B]\f[CB]\-\-config\-file\f[B]\f[R] +Additional configuration files to read. +This configuration can be repeated to read multiple configuration files. +Configuration files themselves can load more configuration files. +Paths are relative to the file containing the \f[CR]config\-file\f[R] +directive. +For command\-line arguments, paths are relative to the current working +directory. +.RS +.PP +Prepend a ? +character to the file path to suppress errors if the file does not +exist. +If you want to include a file that begins with a literal ? +character, surround the file path in double quotes (\[lq]). +.PP +Cycles are not allowed. +If a cycle is detected, an error will be logged and the configuration +file will be ignored. +.PP +Configuration files are loaded after the configuration they\[cq]re +defined within in the order they\[cq]re defined. +\f[B]THIS IS A VERY SUBTLE BUT IMPORTANT POINT.\f[R] To put it another +way: configuration files do not take effect until after the entire +configuration is loaded. +For example, in the configuration below: +.IP +.EX +config\-file = \[dq]foo\[dq] +a = 1 +.EE +.PP +If \[lq]foo\[rq] contains \f[CR]a = 2\f[R], the final value of +\f[CR]a\f[R] will be 2, because \f[CR]foo\f[R] is loaded after the +configuration file that configures the nested \f[CR]config\-file\f[R] +value. +.RE +.TP +\f[B]\f[CB]\-\-config\-default\-files\f[B]\f[R] +When this is true, the default configuration file paths will be loaded. +The default configuration file paths are currently only the XDG config +path ($XDG_CONFIG_HOME/ghostty/config). +.RS +.PP +If this is false, the default configuration paths will not be loaded. +This is targeted directly at using Ghostty from the CLI in a way that +minimizes external effects. +.PP +This is a CLI\-only configuration. +Setting this in a configuration file will have no effect. +It is not an error, but it will not do anything. +This configuration can only be set via CLI arguments. +.RE +.TP +\f[B]\f[CB]\-\-confirm\-close\-surface\f[B]\f[R] +Confirms that a surface should be closed before closing it. +This defaults to true. +If set to false, surfaces will close without any confirmation. +.TP +\f[B]\f[CB]\-\-quit\-after\-last\-window\-closed\f[B]\f[R] +Whether or not to quit after the last surface is closed. +.RS +.PP +This defaults to \f[CR]false\f[R] on macOS since that is standard +behavior for a macOS application. +On Linux, this defaults to \f[CR]true\f[R] since that is generally +expected behavior. +.PP +On Linux, if this is \f[CR]true\f[R], Ghostty can delay quitting fully +until a configurable amount of time has passed after the last window is +closed. +See the documentation of +\f[CR]quit\-after\-last\-window\-closed\-delay\f[R]. +.RE +.TP +\f[B]\f[CB]\-\-quit\-after\-last\-window\-closed\-delay\f[B]\f[R] +Controls how long Ghostty will stay running after the last open surface +has been closed. +This only has an effect if \f[CR]quit\-after\-last\-window\-closed\f[R] +is also set to \f[CR]true\f[R]. +.RS +.PP +The minimum value for this configuration is \f[CR]1s\f[R]. +Any values lower than this will be clamped to \f[CR]1s\f[R]. +.PP +The duration is specified as a series of numbers followed by time units. +Whitespace is allowed between numbers and units. +Each number and unit will be added together to form the total duration. +.PP +The allowed time units are as follows: +.IP \[bu] 2 +\f[CR]y\f[R] \- 365 SI days, or 8760 hours, or 31536000 seconds. +No adjustments are made for leap years or leap seconds. +.IP \[bu] 2 +\f[CR]d\f[R] \- one SI day, or 86400 seconds. +.IP \[bu] 2 +\f[CR]h\f[R] \- one hour, or 3600 seconds. +.IP \[bu] 2 +\f[CR]m\f[R] \- one minute, or 60 seconds. +.IP \[bu] 2 +\f[CR]s\f[R] \- one second. +.IP \[bu] 2 +\f[CR]ms\f[R] \- one millisecond, or 0.001 second. +.IP \[bu] 2 +\f[CR]us\f[R] or \f[CR]µs\f[R] \- one microsecond, or 0.000001 second. +.IP \[bu] 2 +\f[CR]ns\f[R] \- one nanosecond, or 0.000000001 second. +.PP +Examples: * \f[CR]1h30m\f[R] * \f[CR]45s\f[R] +.PP +Units can be repeated and will be added together. +This means that \f[CR]1h1h\f[R] is equivalent to \f[CR]2h\f[R]. +This is confusing and should be avoided. +A future update may disallow this. +.PP +The maximum value is \f[CR]584y 49w 23h 34m 33s 709ms 551µs 615ns\f[R]. +Any value larger than this will be clamped to the maximum value. +.PP +By default \f[CR]quit\-after\-last\-window\-closed\-delay\f[R] is unset +and Ghostty will quit immediately after the last window is closed if +\f[CR]quit\-after\-last\-window\-closed\f[R] is \f[CR]true\f[R]. +.PP +Only implemented on Linux. +.RE +.TP +\f[B]\f[CB]\-\-initial\-window\f[B]\f[R] +This controls whether an initial window is created when Ghostty is run. +Note that if \f[CR]quit\-after\-last\-window\-closed\f[R] is +\f[CR]true\f[R] and \f[CR]quit\-after\-last\-window\-closed\-delay\f[R] +is set, setting \f[CR]initial\-window\f[R] to \f[CR]false\f[R] will mean +that Ghostty will quit after the configured delay if no window is ever +created. +Only implemented on Linux and macOS. +.TP +\f[B]\f[CB]\-\-quick\-terminal\-position\f[B]\f[R] +The position of the \[lq]quick\[rq] terminal window. +To learn more about the quick terminal, see the documentation for the +\f[CR]toggle_quick_terminal\f[R] binding action. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]top\f[R] \- Terminal appears at the top of the screen. +.IP \[bu] 2 +\f[CR]bottom\f[R] \- Terminal appears at the bottom of the screen. +.IP \[bu] 2 +\f[CR]left\f[R] \- Terminal appears at the left of the screen. +.IP \[bu] 2 +\f[CR]right\f[R] \- Terminal appears at the right of the screen. +.PP +Changing this configuration requires restarting Ghostty completely. +.RE +.TP +\f[B]\f[CB]\-\-quick\-terminal\-screen\f[B]\f[R] +The screen where the quick terminal should show up. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]main\f[R] \- The screen that the operating system recommends as +the main screen. +On macOS, this is the screen that is currently receiving keyboard input. +This screen is defined by the operating system and not chosen by +Ghostty. +.IP \[bu] 2 +\f[CR]mouse\f[R] \- The screen that the mouse is currently hovered over. +.IP \[bu] 2 +\f[CR]macos\-menu\-bar\f[R] \- The screen that contains the macOS menu +bar as set in the display settings on macOS. +This is a bit confusing because every screen on macOS has a menu bar, +but this is the screen that contains the primary menu bar. +.PP +The default value is \f[CR]main\f[R] because this is the recommended +screen by the operating system. +.RE +.TP +\f[B]\f[CB]\-\-quick\-terminal\-animation\-duration\f[B]\f[R] +Duration (in seconds) of the quick terminal enter and exit animation. +Set it to 0 to disable animation completely. +This can be changed at runtime. +.TP +\f[B]\f[CB]\-\-shell\-integration\f[B]\f[R] +Whether to enable shell integration auto\-injection or not. +Shell integration greatly enhances the terminal experience by enabling a +number of features: +.RS +.IP \[bu] 2 +Working directory reporting so new tabs, splits inherit the previous +terminal\[cq]s working directory. +.IP \[bu] 2 +Prompt marking that enables the \[lq]jump_to_prompt\[rq] keybinding. +.IP \[bu] 2 +If you\[cq]re sitting at a prompt, closing a terminal will not ask for +confirmation. +.IP \[bu] 2 +Resizing the window with a complex prompt usually paints much better. +.PP +Allowable values are: +.IP \[bu] 2 +\f[CR]none\f[R] \- Do not do any automatic injection. +You can still manually configure your shell to enable the integration. +.IP \[bu] 2 +\f[CR]detect\f[R] \- Detect the shell based on the filename. +.IP \[bu] 2 +\f[CR]bash\f[R], \f[CR]elvish\f[R], \f[CR]fish\f[R], \f[CR]zsh\f[R] \- +Use this specific shell injection scheme. +.PP +The default value is \f[CR]detect\f[R]. +.RE +.TP +\f[B]\f[CB]\-\-shell\-integration\-features\f[B]\f[R] +Shell integration features to enable if shell integration itself is +enabled. +The format of this is a list of features to enable separated by commas. +If you prefix a feature with \f[CR]no\-\f[R] then it is disabled. +If you omit a feature, its default value is used, so you must explicitly +disable features you don\[cq]t want. +You can also use \f[CR]true\f[R] or \f[CR]false\f[R] to turn all +features on or off. +.RS +.PP +Available features: +.IP \[bu] 2 +\f[CR]cursor\f[R] \- Set the cursor to a blinking bar at the prompt. +.IP \[bu] 2 +\f[CR]sudo\f[R] \- Set sudo wrapper to preserve terminfo. +.IP \[bu] 2 +\f[CR]title\f[R] \- Set the window title via shell integration. +.PP +Example: \f[CR]cursor\f[R], \f[CR]no\-cursor\f[R], \f[CR]sudo\f[R], +\f[CR]no\-sudo\f[R], \f[CR]title\f[R], \f[CR]no\-title\f[R] +.RE +.TP +\f[B]\f[CB]\-\-osc\-color\-report\-format\f[B]\f[R] +Sets the reporting format for OSC sequences that request color +information. +Ghostty currently supports OSC 10 (foreground), OSC 11 (background), and +OSC 4 (256 color palette) queries, and by default the reported values +are scaled\-up RGB values, where each component are 16 bits. +This is how most terminals report these values. +However, some legacy applications may require 8\-bit, unscaled, +components. +We also support turning off reporting altogether. +The components are lowercase hex values. +.RS +.PP +Allowable values are: +.IP \[bu] 2 +\f[CR]none\f[R] \- OSC 4/10/11 queries receive no reply +.IP \[bu] 2 +\f[CR]8\-bit\f[R] \- Color components are return unscaled, +i.e.\ \f[CR]rr/gg/bb\f[R] +.IP \[bu] 2 +\f[CR]16\-bit\f[R] \- Color components are returned scaled, +e.g.\ \f[CR]rrrr/gggg/bbbb\f[R] +.PP +The default value is \f[CR]16\-bit\f[R]. +.RE +.TP +\f[B]\f[CB]\-\-vt\-kam\-allowed\f[B]\f[R] +If true, allows the \[lq]KAM\[rq] mode (ANSI mode 2) to be used within +the terminal. +KAM disables keyboard input at the request of the application. +This is not a common feature and is not recommended to be enabled. +This will not be documented further because if you know you need KAM, +you know. +If you don\[cq]t know if you need KAM, you don\[cq]t need it. +.TP +\f[B]\f[CB]\-\-custom\-shader\f[B]\f[R] +Custom shaders to run after the default shaders. +This is a file path to a GLSL\-syntax shader for all platforms. +.RS +.PP +Warning: Invalid shaders can cause Ghostty to become unusable such as by +causing the window to be completely black. +If this happens, you can unset this configuration to disable the shader. +.PP +On Linux, this requires OpenGL 4.2. +Ghostty typically only requires OpenGL 3.3, but custom shaders push that +requirement up to 4.2. +.PP +The shader API is identical to the Shadertoy API: you specify a +\f[CR]mainImage\f[R] function and the available uniforms match +Shadertoy. +The iChannel0 uniform is a texture containing the rendered terminal +screen. +.PP +If the shader fails to compile, the shader will be ignored. +Any errors related to shader compilation will not show up as +configuration errors and only show up in the log, since shader +compilation happens after configuration loading on the dedicated render +thread. +For interactive development, use \c +.UR https://shadertoy.com +shadertoy.com +.UE \c +\&. +.PP +This can be repeated multiple times to load multiple shaders. +The shaders will be run in the order they are specified. +.PP +Changing this value at runtime and reloading the configuration will only +affect new windows, tabs, and splits. +.RE +.TP +\f[B]\f[CB]\-\-custom\-shader\-animation\f[B]\f[R] +If \f[CR]true\f[R] (default), the focused terminal surface will run an +animation loop when custom shaders are used. +This uses slightly more CPU (generally less than 10%) but allows the +shader to animate. +This only runs if there are custom shaders and the terminal is focused. +.RS +.PP +If this is set to \f[CR]false\f[R], the terminal and custom shader will +only render when the terminal is updated. +This is more efficient but the shader will not animate. +.PP +This can also be set to \f[CR]always\f[R], which will always run the +animation loop regardless of whether the terminal is focused or not. +The animation loop will still only run when custom shaders are used. +Note that this will use more CPU per terminal surface and can become +quite expensive depending on the shader and your terminal usage. +.PP +This value can be changed at runtime and will affect all currently open +terminals. +.RE +.TP +\f[B]\f[CB]\-\-macos\-non\-native\-fullscreen\f[B]\f[R] +If anything other than false, fullscreen mode on macOS will not use the +native fullscreen, but make the window fullscreen without animations and +using a new space. +It\[cq]s faster than the native fullscreen mode since it doesn\[cq]t use +animations. +.RS +.PP +Important: tabs DO NOT WORK in this mode. +Non\-native fullscreen removes the titlebar and macOS native tabs +require the titlebar. +If you use tabs, you should not use this mode. +.PP +If you fullscreen a window with tabs, the currently focused tab will +become fullscreen while the others will remain in a separate window in +the background. +You can switch to that window using normal window\-switching keybindings +such as command+tilde. +When you exit fullscreen, the window will return to the tabbed state it +was in before. +.PP +Allowable values are: +.IP \[bu] 2 +\f[CR]visible\-menu\f[R] \- Use non\-native macOS fullscreen, keep the +menu bar visible +.IP \[bu] 2 +\f[CR]true\f[R] \- Use non\-native macOS fullscreen, hide the menu bar +.IP \[bu] 2 +\f[CR]false\f[R] \- Use native macOS fullscreen +.PP +Changing this option at runtime works, but will only apply to the next +time the window is made fullscreen. +If a window is already fullscreen, it will retain the previous setting +until fullscreen is exited. +.RE +.TP +\f[B]\f[CB]\-\-macos\-titlebar\-style\f[B]\f[R] +The style of the macOS titlebar. +Available values are: \[lq]native\[rq], \[lq]transparent\[rq], +\[lq]tabs\[rq], and \[lq]hidden\[rq]. +.RS +.PP +The \[lq]native\[rq] style uses the native macOS titlebar with zero +customization. +The titlebar will match your window theme (see +\f[CR]window\-theme\f[R]). +.PP +The \[lq]transparent\[rq] style is the same as \[lq]native\[rq] but the +titlebar will be transparent and allow your window background color to +come through. +This makes a more seamless window appearance but looks a little less +typical for a macOS application and may not work well with all themes. +.PP +The \[lq]transparent\[rq] style will also update in real\-time to +dynamic changes to the window background color, i.e.\ via OSC 11. +To make this more aesthetically pleasing, this only happens if the +terminal is a window, tab, or split that borders the top of the window. +This avoids a disjointed appearance where the titlebar color changes but +all the topmost terminals don\[cq]t match. +.PP +The \[lq]tabs\[rq] style is a completely custom titlebar that integrates +the tab bar into the titlebar. +This titlebar always matches the background color of the terminal. +There are some limitations to this style: On macOS 13 and below, saved +window state will not restore tabs correctly. +macOS 14 does not have this issue and any other macOS version has not +been tested. +.PP +The \[lq]hidden\[rq] style hides the titlebar. +Unlike \f[CR]window\-decoration = false\f[R], however, it does not +remove the frame from the window or cause it to have squared corners. +Changing to or from this option at run\-time may affect existing windows +in buggy ways. +The top titlebar area of the window will continue to drag the window +around and you will not be able to use the mouse for terminal events in +this space. +.PP +The default value is \[lq]transparent\[rq]. +This is an opinionated choice but its one I think is the most +aesthetically pleasing and works in most cases. +.PP +Changing this option at runtime only applies to new windows. +.RE +.TP +\f[B]\f[CB]\-\-macos\-titlebar\-proxy\-icon\f[B]\f[R] +Whether the proxy icon in the macOS titlebar is visible. +The proxy icon is the icon that represents the folder of the current +working directory. +You can see this very clearly in the macOS built\-in Terminal.app +titlebar. +.RS +.PP +The proxy icon is only visible with the native macOS titlebar style. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]visible\f[R] \- Show the proxy icon. +.IP \[bu] 2 +\f[CR]hidden\f[R] \- Hide the proxy icon. +.PP +The default value is \f[CR]visible\f[R]. +.PP +This setting can be changed at runtime and will affect all currently +open windows but only after their working directory changes again. +Therefore, to make this work after changing the setting, you must +usually \f[CR]cd\f[R] to a different directory, open a different file in +an editor, etc. +.RE +.TP +\f[B]\f[CB]\-\-macos\-option\-as\-alt\f[B]\f[R] +macOS doesn\[cq]t have a distinct \[lq]alt\[rq] key and instead has the +\[lq]option\[rq] key which behaves slightly differently. +On macOS by default, the option key plus a character will sometimes +produces a Unicode character. +For example, on US standard layouts option\-b produces \[lq]∫\[rq]. +This may be undesirable if you want to use \[lq]option\[rq] as an +\[lq]alt\[rq] key for keybindings in terminal programs or shells. +.RS +.PP +This configuration lets you change the behavior so that option is +treated as alt. +.PP +The default behavior (unset) will depend on your active keyboard layout. +If your keyboard layout is one of the keyboard layouts listed below, +then the default value is \[lq]true\[rq]. +Otherwise, the default value is \[lq]false\[rq]. +Keyboard layouts with a default value of \[lq]true\[rq] are: +.IP \[bu] 2 +U.S. +Standard +.IP \[bu] 2 +U.S. +International +.PP +Note that if an \f[I]Option\f[R]\-sequence doesn\[cq]t produce a +printable character, it will be treated as \f[I]Alt\f[R] regardless of +this setting. +(i.e.\ \f[CR]alt+ctrl+a\f[R]). +.PP +Explicit values that can be set: +.PP +If \f[CR]true\f[R], the \f[I]Option\f[R] key will be treated as +\f[I]Alt\f[R]. +This makes terminal sequences expecting \f[I]Alt\f[R] to work properly, +but will break Unicode input sequences on macOS if you use them via the +\f[I]Alt\f[R] key. +.PP +You may set this to \f[CR]false\f[R] to restore the macOS \f[I]Alt\f[R] +key unicode sequences but this will break terminal sequences expecting +\f[I]Alt\f[R] to work. +.PP +The values \f[CR]left\f[R] or \f[CR]right\f[R] enable this for the left +or right \f[I]Option\f[R] key, respectively. +.PP +This does not work with GLFW builds. +.RE +.TP +\f[B]\f[CB]\-\-macos\-window\-shadow\f[B]\f[R] +Whether to enable the macOS window shadow. +The default value is true. +With some window managers and window transparency settings, you may find +false more visually appealing. +.TP +\f[B]\f[CB]\-\-macos\-auto\-secure\-input\f[B]\f[R] +If true, Ghostty on macOS will automatically enable the \[lq]Secure +Input\[rq] feature when it detects that a password prompt is being +displayed. +.RS +.PP +\[lq]Secure Input\[rq] is a macOS security feature that prevents +applications from reading keyboard events. +This can always be enabled manually using the +\f[CR]Ghostty > Secure Keyboard Entry\f[R] menu item. +.PP +Note that automatic password prompt detection is based on heuristics and +may not always work as expected. +Specifically, it does not work over SSH connections, but there may be +other cases where it also doesn\[cq]t work. +.PP +A reason to disable this feature is if you find that it is interfering +with legitimate accessibility software (or software that uses the +accessibility APIs), since secure input prevents any application from +reading keyboard events. +.RE +.TP +\f[B]\f[CB]\-\-macos\-secure\-input\-indication\f[B]\f[R] +If true, Ghostty will show a graphical indication when secure input is +enabled. +This indication is generally recommended to know when secure input is +enabled. +.RS +.PP +Normally, secure input is only active when a password prompt is +displayed or it is manually (and typically temporarily) enabled. +However, if you always have secure input enabled, the indication can be +distracting and you may want to disable it. +.RE +.TP +\f[B]\f[CB]\-\-linux\-cgroup\f[B]\f[R] +Put every surface (tab, split, window) into a dedicated Linux cgroup. +.RS +.PP +This makes it so that resource management can be done on a per\-surface +granularity. +For example, if a shell program is using too much memory, only that +shell will be killed by the oom monitor instead of the entire Ghostty +process. +Similarly, if a shell program is using too much CPU, only that surface +will be CPU\-throttled. +.PP +This will cause startup times to be slower (a hundred milliseconds or +so), so the default value is \[lq]single\-instance.\[rq] In +single\-instance mode, only one instance of Ghostty is running (see +gtk\-single\-instance) so the startup time is a one\-time cost. +Additionally, single instance Ghostty is much more likely to have many +windows, tabs, etc. +so cgroup isolation is a big benefit. +.PP +This feature requires systemd. +If systemd is unavailable, cgroup initialization will fail. +By default, this will not prevent Ghostty from working (see +linux\-cgroup\-hard\-fail). +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]never\f[R] \- Never use cgroups. +.IP \[bu] 2 +\f[CR]always\f[R] \- Always use cgroups. +.IP \[bu] 2 +\f[CR]single\-instance\f[R] \- Enable cgroups only for Ghostty instances +launched as single\-instance applications (see gtk\-single\-instance). +.RE +.TP +\f[B]\f[CB]\-\-linux\-cgroup\-memory\-limit\f[B]\f[R] +Memory limit for any individual terminal process (tab, split, window, +etc.) +in bytes. +If this is unset then no memory limit will be set. +.RS +.PP +Note that this sets the \[lq]memory.high\[rq] configuration for the +memory controller, which is a soft limit. +You should configure something like systemd\-oom to handle killing +processes that have too much memory pressure. +.RE +.TP +\f[B]\f[CB]\-\-linux\-cgroup\-processes\-limit\f[B]\f[R] +Number of processes limit for any individual terminal process (tab, +split, window, etc.). +If this is unset then no limit will be set. +.RS +.PP +Note that this sets the \[lq]pids.max\[rq] configuration for the process +number controller, which is a hard limit. +.RE +.TP +\f[B]\f[CB]\-\-linux\-cgroup\-hard\-fail\f[B]\f[R] +If this is false, then any cgroup initialization (for linux\-cgroup) +will be allowed to fail and the failure is ignored. +This is useful if you view cgroup isolation as a \[lq]nice to have\[rq] +and not a critical resource management feature, because Ghostty startup +will not fail if cgroup APIs fail. +.RS +.PP +If this is true, then any cgroup initialization failure will cause +Ghostty to exit or new surfaces to not be created. +.PP +Note: This currently only affects cgroup initialization. +Subprocesses must always be able to move themselves into an isolated +cgroup. +.RE +.TP +\f[B]\f[CB]\-\-gtk\-single\-instance\f[B]\f[R] +If \f[CR]true\f[R], the Ghostty GTK application will run in +single\-instance mode: each new \f[CR]ghostty\f[R] process launched will +result in a new window if there is already a running process. +.RS +.PP +If \f[CR]false\f[R], each new ghostty process will launch a separate +application. +.PP +The default value is \f[CR]detect\f[R] which will default to +\f[CR]true\f[R] if Ghostty detects that it was launched from the +\f[CR].desktop\f[R] file such as an app launcher (like Gnome Shell) or +by D\-Bus activation. +If Ghostty is launched from the command line, it will default to +\f[CR]false\f[R]. +.PP +Note that debug builds of Ghostty have a separate single\-instance ID so +you can test single instance without conflicting with release builds. +.RE +.TP +\f[B]\f[CB]\-\-gtk\-titlebar\f[B]\f[R] +When enabled, the full GTK titlebar is displayed instead of your window +manager\[cq]s simple titlebar. +The behavior of this option will vary with your window manager. +.RS +.PP +This option does nothing when \f[CR]window\-decoration\f[R] is false or +when running under macOS. +.PP +Changing this value at runtime and reloading the configuration will only +affect new windows. +.RE +.TP +\f[B]\f[CB]\-\-gtk\-tabs\-location\f[B]\f[R] +Determines the side of the screen that the GTK tab bar will stick to. +Top, bottom, left, right, and hidden are supported. +The default is top. +.RS +.PP +If this option has value \f[CR]left\f[R] or \f[CR]right\f[R] when using +Adwaita, it falls back to \f[CR]top\f[R]. +\f[CR]hidden\f[R], meaning that tabs don\[cq]t exist, is not supported +without using Adwaita, falling back to \f[CR]top\f[R]. +.PP +When \f[CR]hidden\f[R] is set and Adwaita is enabled, a tab button +displaying the number of tabs will appear in the title bar. +It has the ability to open a tab overview for displaying tabs. +Alternatively, you can use the \f[CR]toggle_tab_overview\f[R] action in +a keybind if your window doesn\[cq]t have a title bar, or you can switch +tabs with keybinds. +.RE +.TP +\f[B]\f[CB]\-\-adw\-toolbar\-style\f[B]\f[R] +Determines the appearance of the top and bottom bars when using the +Adwaita tab bar. +This requires \f[CR]gtk\-adwaita\f[R] to be enabled (it is by default). +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]flat\f[R] \- Top and bottom bars are flat with the terminal +window. +.IP \[bu] 2 +\f[CR]raised\f[R] \- Top and bottom bars cast a shadow on the terminal +area. +.IP \[bu] 2 +\f[CR]raised\-border\f[R] \- Similar to \f[CR]raised\f[R] but the shadow +is replaced with a more subtle border. +.PP +Changing this value at runtime will only affect new windows. +.RE +.TP +\f[B]\f[CB]\-\-gtk\-wide\-tabs\f[B]\f[R] +If \f[CR]true\f[R] (default), then the Ghostty GTK tabs will be +\[lq]wide.\[rq] Wide tabs are the new typical Gnome style where tabs +fill their available space. +If you set this to \f[CR]false\f[R] then tabs will only take up space +they need, which is the old style. +.TP +\f[B]\f[CB]\-\-gtk\-adwaita\f[B]\f[R] +If \f[CR]true\f[R] (default), Ghostty will enable Adwaita theme support. +This will make \f[CR]window\-theme\f[R] work properly and will also +allow Ghostty to properly respond to system theme changes, light/dark +mode changing, etc. +This requires a GTK4 desktop with a GTK4 theme. +.RS +.PP +If you are running GTK3 or have a GTK3 theme, you may have to set this +to false to get your theme picked up properly. +Having this set to true with GTK3 should not cause any problems, but it +may not work exactly as expected. +.PP +This configuration only has an effect if Ghostty was built with Adwaita +support. +.RE +.TP +\f[B]\f[CB]\-\-desktop\-notifications\f[B]\f[R] +If \f[CR]true\f[R] (default), applications running in the terminal can +show desktop notifications using certain escape sequences such as OSC 9 +or OSC 777. +.TP +\f[B]\f[CB]\-\-bold\-is\-bright\f[B]\f[R] +If \f[CR]true\f[R], the bold text will use the bright color palette. +.TP +\f[B]\f[CB]\-\-term\f[B]\f[R] +This will be used to set the \f[CR]TERM\f[R] environment variable. +HACK: We set this with an \f[CR]xterm\f[R] prefix because vim uses that +to enable key protocols (specifically this will enable +\f[CR]modifyOtherKeys\f[R]), among other features. +An option exists in vim to modify this: +\f[CR]:set keyprotocol=ghostty:kitty\f[R], however a bug in the +implementation prevents it from working properly. +https://github.com/vim/vim/pull/13211 fixes this. +.TP +\f[B]\f[CB]\-\-enquiry\-response\f[B]\f[R] +String to send when we receive \f[CR]ENQ\f[R] (\f[CR]0x05\f[R]) from the +command that we are running. +Defaults to an empty string if not set. +.TP +\f[B]\f[CB]\-\-auto\-update\f[B]\f[R] +Control the auto\-update functionality of Ghostty. +This is only supported on macOS currently, since Linux builds are +distributed via package managers that are not centrally controlled by +Ghostty. +.RS +.PP +Checking or downloading an update does not send any information to the +project beyond standard network information mandated by the underlying +protocols. +To put it another way: Ghostty doesn\[cq]t explicitly add any tracking +to the update process. +The update process works by downloading information about the latest +version and comparing it client\-side to the current version. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]off\f[R] \- Disable auto\-updates. +.IP \[bu] 2 +\f[CR]check\f[R] \- Check for updates and notify the user if an update +is available, but do not automatically download or install the update. +.IP \[bu] 2 +\f[CR]download\f[R] \- Check for updates, automatically download the +update, notify the user, but do not automatically install the update. +.PP +The default value is \f[CR]check\f[R]. +.PP +Changing this value at runtime works after a small delay. +.RE +.TP +\f[B]\f[CB]\-\-auto\-update\-channel\f[B]\f[R] +The release channel to use for auto\-updates. +.RS +.PP +The default value of this matches the release channel of the currently +running Ghostty version. +If you download a pre\-release version of Ghostty then this will be set +to \f[CR]tip\f[R] and you will receive pre\-release updates. +If you download a stable version of Ghostty then this will be set to +\f[CR]stable\f[R] and you will receive stable updates. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]stable\f[R] \- Stable, tagged releases such as \[lq]1.0.0\[rq]. +.IP \[bu] 2 +\f[CR]tip\f[R] \- Pre\-release versions generated from each commit to +the main branch. +This is the version that was in use during private beta testing by +thousands of people. +It is generally stable but will likely have more bugs than the stable +channel. +.PP +Changing this configuration requires a full restart of Ghostty to take +effect. +.PP +This only works on macOS since only macOS has an auto\-update feature. +.RE +.SH FILES +.TP +\f[I]$XDG_CONFIG_HOME/ghostty/config\f[R] +Location of the default configuration file. +.TP +\f[I]$LOCALAPPDATA/ghostty/config\f[R] +\f[B]On Windows\f[R], if \f[I]$XDG_CONFIG_HOME\f[R] is not set, +\f[I]$LOCALAPPDATA\f[R] will be searched for configuration files. +.SH ENVIRONMENT +.TP +\f[B]TERM\f[R] +Defaults to \f[CR]xterm\-ghostty\f[R]. +Can be configured with the \f[CR]term\f[R] configuration option. +.TP +\f[B]GHOSTTY_RESOURCES_DIR\f[R] +Where the Ghostty resources can be found. +.TP +\f[B]XDG_CONFIG_HOME\f[R] +Default location for configuration files. +.TP +\f[B]LOCALAPPDATA\f[R] +\f[B]WINDOWS ONLY:\f[R] alternate location to search for configuration +files. +.SH BUGS +See GitHub issues: \c +.UR https://github.com/ghostty-org/ghostty/issues +.UE \c +.SH AUTHOR +Mitchell Hashimoto \c +.MT m@mitchellh.com +.ME \c +.SH SEE ALSO +\f[B]ghostty(5)\f[R] diff --git a/bin/share/man/man5/ghostty.5 b/bin/share/man/man5/ghostty.5 new file mode 100644 index 0000000..4717fda --- /dev/null +++ b/bin/share/man/man5/ghostty.5 @@ -0,0 +1,2762 @@ +.\" Automatically generated by Pandoc 3.1.11.1 +.\" +.TH "GHOSTTY" "5" "" "Version 0.1.0\-main+dd6460bc" "Ghostty terminal emulator configuration file" +.SH NAME +\f[B]ghostty\f[R] \- Ghostty terminal emulator configuration file +.SH DESCRIPTION +To configure Ghostty, you must use a configuration file. +GUI\-based configuration is on the roadmap but not yet supported. +The configuration file must be placed at +\f[CR]$XDG_CONFIG_HOME/ghostty/config\f[R], which defaults to +\f[CR]\[ti]/.config/ghostty/config\f[R] if the \c +.UR +https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html +XDG environment is not set +.UE \c +\&. +.PP +The file format is documented below as an example: +.IP +.EX +# The syntax is \[dq]key = value\[dq]. The whitespace around the equals doesn\[aq]t matter. +background = 282c34 +foreground= ffffff + +# Blank lines are ignored! + +keybind = ctrl+z=close_surface +keybind = ctrl+d=new_split:right + +# Colors can be changed by setting the 16 colors of \[ga]palette\[ga], which each color +# being defined as regular and bold. +# +# black +palette = 0=#1d2021 +palette = 8=#7c6f64 +# red +palette = 1=#cc241d +palette = 9=#fb4934 +# green +palette = 2=#98971a +palette = 10=#b8bb26 +# yellow +palette = 3=#d79921 +palette = 11=#fabd2f +# blue +palette = 4=#458588 +palette = 12=#83a598 +# purple +palette = 5=#b16286 +palette = 13=#d3869b +# aqua +palette = 6=#689d6a +palette = 14=#8ec07c +# white +palette = 7=#a89984 +palette = 15=#fbf1c7 +.EE +.PP +You can view all available configuration options and their documentation +by executing the command +\f[CR]ghostty +show\-config \-\-default \-\-docs\f[R]. +Note that this will output the full default configuration with docs to +stdout, so you may want to pipe that through a pager, an editor, etc. +.PP +Note: You\[cq]ll see a lot of weird blank configurations like +\f[CR]font\-family =\f[R]. +This is a valid syntax to specify the default behavior (no value). +The \f[CR]+show\-config\f[R] outputs it so it\[cq]s clear that key is +defaulting and also to have something to attach the doc comment to. +.PP +You can also see and read all available configuration options in the +source Config structure. +The available keys are the keys verbatim, and their possible values are +typically documented in the comments. +You also can search for the public config files of many Ghostty users +for examples and inspiration. +.SS Configuration Errors +If your configuration file has any errors, Ghostty does its best to +ignore them and move on. +Configuration errors currently show up in the log. +The log is written directly to stderr, so it is up to you to figure out +how to access that for your system (for now). +On macOS, you can also use the system \f[CR]log\f[R] CLI utility. +See the Mac App section for more information. +.SS Debugging Configuration +You can verify that configuration is being properly loaded by looking at +the debug output of Ghostty. +Documentation for how to view the debug output is in the \[lq]building +Ghostty\[rq] section at the end of the README. +.PP +In the debug output, you should see in the first 20 lines or so messages +about loading (or not loading) a configuration file, as well as any +errors it may have encountered. +Configuration errors are also shown in a dedicated window on both macOS +and Linux (GTK). +Ghostty does not treat configuration errors as fatal and will fall back +to default values for erroneous keys. +.PP +You can also view the full configuration Ghostty is loading using +\f[CR]ghostty +show\-config\f[R] from the command\-line. +Use the \f[CR]\-\-help\f[R] flag to additional options for that command. +.SH CONFIGURATION OPTIONS +.TP +\f[B]\f[CB]font\-family\f[B]\f[R] +The font families to use. +.RS +.PP +You can generate the list of valid values using the CLI: +.IP +.EX +ghostty +list\-fonts +.EE +.PP +This configuration can be repeated multiple times to specify preferred +fallback fonts when the requested codepoint is not available in the +primary font. +This is particularly useful for multiple languages, symbolic fonts, etc. +.PP +Notes on emoji specifically: On macOS, Ghostty by default will always +use Apple Color Emoji and on Linux will always use Noto Emoji. +You can override this behavior by specifying a font family here that +contains emoji glyphs. +.PP +The specific styles (bold, italic, bold italic) do not need to be +explicitly set. +If a style is not set, then the regular style (font\-family) will be +searched for stylistic variants. +If a stylistic variant is not found, Ghostty will use the regular style. +This prevents falling back to a different font family just to get a +style such as bold. +This also applies if you explicitly specify a font family for a style. +For example, if you set \f[CR]font\-family\-bold = FooBar\f[R] and +\[lq]FooBar\[rq] cannot be found, Ghostty will use whatever font is set +for \f[CR]font\-family\f[R] for the bold style. +.PP +Finally, some styles may be synthesized if they are not supported. +For example, if a font does not have an italic style and no alternative +italic font is specified, Ghostty will synthesize an italic style by +applying a slant to the regular style. +If you want to disable these synthesized styles then you can use the +\f[CR]font\-style\f[R] configurations as documented below. +.PP +You can disable styles completely by using the \f[CR]font\-style\f[R] +set of configurations. +See the documentation for \f[CR]font\-style\f[R] for more information. +.PP +If you want to overwrite a previous set value rather than append a +fallback, specify the value as \f[CR]\[dq]\[dq]\f[R] (empty string) to +reset the list and then set the new values. +For example: +.IP +.EX +font\-family = \[dq]\[dq] +font\-family = \[dq]My Favorite Font\[dq] +.EE +.PP +Setting any of these as CLI arguments will automatically clear the +values set in configuration files so you don\[cq]t need to specify +\f[CR]\-\-font\-family=\[dq]\[dq]\f[R] before setting a new value. +You only need to specify this within config files if you want to clear +previously set values in configuration files or on the CLI if you want +to clear values set on the CLI. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e. +new windows, tabs, etc. +.RE +.PP +\f[B]\f[CB]font\-family\-bold\f[B]\f[R] +.PP +\f[B]\f[CB]font\-family\-italic\f[B]\f[R] +.PP +\f[B]\f[CB]font\-family\-bold\-italic\f[B]\f[R] +.TP +\f[B]\f[CB]font\-style\f[B]\f[R] +The named font style to use for each of the requested terminal font +styles. +This looks up the style based on the font style string advertised by the +font itself. +For example, \[lq]Iosevka Heavy\[rq] has a style of \[lq]Heavy\[rq]. +.RS +.PP +You can also use these fields to completely disable a font style. +If you set the value of the configuration below to literal +\f[CR]false\f[R] then that font style will be disabled. +If the running program in the terminal requests a disabled font style, +the regular font style will be used instead. +.PP +These are only valid if its corresponding font\-family is also +specified. +If no font\-family is specified, then the font\-style is ignored unless +you\[cq]re disabling the font style. +.RE +.PP +\f[B]\f[CB]font\-style\-bold\f[B]\f[R] +.PP +\f[B]\f[CB]font\-style\-italic\f[B]\f[R] +.PP +\f[B]\f[CB]font\-style\-bold\-italic\f[B]\f[R] +.TP +\f[B]\f[CB]font\-synthetic\-style\f[B]\f[R] +Control whether Ghostty should synthesize a style if the requested style +is not available in the specified font\-family. +.RS +.PP +Ghostty can synthesize bold, italic, and bold italic styles if the font +does not have a specific style. +For bold, this is done by drawing an outline around the glyph of varying +thickness. +For italic, this is done by applying a slant to the glyph. +For bold italic, both of these are applied. +.PP +Synthetic styles are not perfect and will generally not look as good as +a font that has the style natively. +However, they are useful to provide styled text when the font does not +have the style. +.PP +Set this to \[lq]false\[rq] or \[lq]true\[rq] to disable or enable +synthetic styles completely. +You can disable specific styles using \[lq]no\-bold\[rq], +\[lq]no\-italic\[rq], and \[lq]no\-bold\-italic\[rq]. +You can disable multiple styles by separating them with a comma. +For example, \[lq]no\-bold,no\-italic\[rq]. +.PP +Available style keys are: \f[CR]bold\f[R], \f[CR]italic\f[R], +\f[CR]bold\-italic\f[R]. +.PP +If synthetic styles are disabled, then the regular style will be used +instead if the requested style is not available. +If the font has the requested style, then the font will be used as\-is +since the style is not synthetic. +.PP +Warning: An easy mistake is to disable \f[CR]bold\f[R] or +\f[CR]italic\f[R] but not \f[CR]bold\-italic\f[R]. +Disabling only \f[CR]bold\f[R] or \f[CR]italic\f[R] will NOT disable +either in the \f[CR]bold\-italic\f[R] style. +If you want to disable \f[CR]bold\-italic\f[R], you must explicitly +disable it. +You cannot partially disable \f[CR]bold\-italic\f[R]. +.PP +By default, synthetic styles are enabled. +.RE +.TP +\f[B]\f[CB]font\-feature\f[B]\f[R] +Apply a font feature. +This can be repeated multiple times to enable multiple font features. +You can NOT set multiple font features with a single value (yet). +.RS +.PP +The font feature will apply to all fonts rendered by Ghostty. +A future enhancement will allow targeting specific faces. +.PP +A valid value is the name of a feature. +Prefix the feature with a \f[CR]\-\f[R] to explicitly disable it. +Example: \f[CR]ss20\f[R] or \f[CR]\-ss20\f[R]. +.PP +To disable programming ligatures, use \f[CR]\-calt\f[R] since this is +the typical feature name for programming ligatures. +To look into what font features your font has and what they do, use a +font inspection tool such as \c +.UR https://fontdrop.info +fontdrop.info +.UE \c +\&. +.PP +To generally disable most ligatures, use \f[CR]\-calt\f[R], +\f[CR]\-liga\f[R], and \f[CR]\-dlig\f[R] (as separate repetitive entries +in your config). +.RE +.TP +\f[B]\f[CB]font\-size\f[B]\f[R] +Font size in points. +This value can be a non\-integer and the nearest integer pixel size will +be selected. +If you have a high dpi display where 1pt = 2px then you can get an odd +numbered pixel size by specifying a half point. +.RS +.PP +For example, 13.5pt \[at] 2px/pt = 27px +.PP +Changing this configuration at runtime will only affect new terminals, +i.e.\ new windows, tabs, etc. +Note that you may still not see the change depending on your +\f[CR]window\-inherit\-font\-size\f[R] setting. +If that setting is true, only the first window will be affected by this +change since all subsequent windows will inherit the font size of the +previous window. +.RE +.TP +\f[B]\f[CB]font\-variation\f[B]\f[R] +A repeatable configuration to set one or more font variations values for +a variable font. +A variable font is a single font, usually with a filename ending in +\f[CR]\-VF.ttf\f[R] or \f[CR]\-VF.otf\f[R] that contains one or more +configurable axes for things such as weight, slant, etc. +Not all fonts support variations; only fonts that explicitly state they +are variable fonts will work. +.RS +.PP +The format of this is \f[CR]id=value\f[R] where \f[CR]id\f[R] is the +axis identifier. +An axis identifier is always a 4 character string, such as +\f[CR]wght\f[R]. +To get the list of supported axes, look at your font documentation or +use a font inspection tool. +.PP +Invalid ids and values are usually ignored. +For example, if a font only supports weights from 100 to 700, setting +\f[CR]wght=800\f[R] will do nothing (it will not be clamped to 700). +You must consult your font\[cq]s documentation to see what values are +supported. +.PP +Common axes are: \f[CR]wght\f[R] (weight), \f[CR]slnt\f[R] (slant), +\f[CR]ital\f[R] (italic), \f[CR]opsz\f[R] (optical size), +\f[CR]wdth\f[R] (width), \f[CR]GRAD\f[R] (gradient), etc. +.RE +.PP +\f[B]\f[CB]font\-variation\-bold\f[B]\f[R] +.PP +\f[B]\f[CB]font\-variation\-italic\f[B]\f[R] +.PP +\f[B]\f[CB]font\-variation\-bold\-italic\f[B]\f[R] +.TP +\f[B]\f[CB]font\-codepoint\-map\f[B]\f[R] +Force one or a range of Unicode codepoints to map to a specific named +font. +This is useful if you want to support special symbols or if you want to +use specific glyphs that render better for your specific font. +.RS +.PP +The syntax is \f[CR]codepoint=fontname\f[R] where \f[CR]codepoint\f[R] +is either a single codepoint or a range. +Codepoints must be specified as full Unicode hex values, such as +\f[CR]U+ABCD\f[R]. +Codepoints ranges are specified as \f[CR]U+ABCD\-U+DEFG\f[R]. +You can specify multiple ranges for the same font separated by commas, +such as \f[CR]U+ABCD\-U+DEFG,U+1234\-U+5678=fontname\f[R]. +The font name is the same value as you would use for +\f[CR]font\-family\f[R]. +.PP +This configuration can be repeated multiple times to specify multiple +codepoint mappings. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e.\ new windows, tabs, etc. +.RE +.TP +\f[B]\f[CB]font\-thicken\f[B]\f[R] +Draw fonts with a thicker stroke, if supported. +This is only supported currently on macOS. +.TP +\f[B]\f[CB]adjust\-cell\-width\f[B]\f[R] +All of the configurations behavior adjust various metrics determined by +the font. +The values can be integers (1, \-1, etc.) +or a percentage (20%, \-15%, etc.). +In each case, the values represent the amount to change the original +value. +.RS +.PP +For example, a value of \f[CR]1\f[R] increases the value by 1; it does +not set it to literally 1. +A value of \f[CR]20%\f[R] increases the value by 20%. +And so on. +.PP +There is little to no validation on these values so the wrong values +(i.e. +\f[CR]\-100%\f[R]) can cause the terminal to be unusable. +Use with caution and reason. +.PP +Some values are clamped to minimum or maximum values. +This can make it appear that certain values are ignored. +For example, the underline position is clamped to the height of a cell. +If you set the underline position so high that it extends beyond the +bottom of the cell size, it will be clamped to the bottom of the cell. +.PP +\f[CR]adjust\-cell\-height\f[R] has some additional behaviors to +describe: +.IP \[bu] 2 +The font will be centered vertically in the cell. +.IP \[bu] 2 +The cursor will remain the same size as the font. +.IP \[bu] 2 +Powerline glyphs will be adjusted along with the cell height so that +things like status lines continue to look aligned. +.RE +.PP +\f[B]\f[CB]adjust\-cell\-height\f[B]\f[R] +.TP +\f[B]\f[CB]adjust\-font\-baseline\f[B]\f[R] +Distance in pixels from the bottom of the cell to the text baseline. +Increase to move baseline UP, decrease to move baseline DOWN. +.TP +\f[B]\f[CB]adjust\-underline\-position\f[B]\f[R] +Distance in pixels from the top of the cell to the top of the underline. +Increase to move underline DOWN, decrease to move underline UP. +.TP +\f[B]\f[CB]adjust\-underline\-thickness\f[B]\f[R] +Thickness in pixels of the underline. +.TP +\f[B]\f[CB]adjust\-strikethrough\-position\f[B]\f[R] +Distance in pixels from the top of the cell to the top of the +strikethrough. +Increase to move strikethrough DOWN, decrease to move underline UP. +.TP +\f[B]\f[CB]adjust\-strikethrough\-thickness\f[B]\f[R] +Thickness in pixels of the strikethrough. +.TP +\f[B]\f[CB]adjust\-overline\-position\f[B]\f[R] +Distance in pixels from the top of the cell to the top of the overline. +Increase to move overline DOWN, decrease to move underline UP. +.TP +\f[B]\f[CB]adjust\-overline\-thickness\f[B]\f[R] +Thickness in pixels of the overline. +.TP +\f[B]\f[CB]adjust\-cursor\-thickness\f[B]\f[R] +Thickness in pixels of the bar cursor and outlined rect cursor. +.TP +\f[B]\f[CB]adjust\-box\-thickness\f[B]\f[R] +Thickness in pixels of box drawing characters. +.TP +\f[B]\f[CB]grapheme\-width\-method\f[B]\f[R] +The method to use for calculating the cell width of a grapheme cluster. +The default value is \f[CR]unicode\f[R] which uses the Unicode standard +to determine grapheme width. +This results in correct grapheme width but may result in cursor\-desync +issues with some programs (such as shells) that may use a legacy method +such as \f[CR]wcswidth\f[R]. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]legacy\f[R] \- Use a legacy method to determine grapheme width, +such as wcswidth This maximizes compatibility with legacy programs but +may result in incorrect grapheme width for certain graphemes such as +skin\-tone emoji, non\-English characters, etc. +.RS 2 +.PP +This is called \[lq]legacy\[rq] and not something more specific because +the behavior is undefined and we want to retain the ability to modify +it. +For example, we may or may not use libc \f[CR]wcswidth\f[R] now or in +the future. +.RE +.IP \[bu] 2 +\f[CR]unicode\f[R] \- Use the Unicode standard to determine grapheme +width. +.PP +If a running program explicitly enables terminal mode 2027, then +\f[CR]unicode\f[R] width will be forced regardless of this +configuration. +When mode 2027 is reset, this configuration will be used again. +.PP +This configuration can be changed at runtime but will not affect +existing terminals. +Only new terminals will use the new configuration. +.RE +.TP +\f[B]\f[CB]freetype\-load\-flags\f[B]\f[R] +FreeType load flags to enable. +The format of this is a list of flags to enable separated by commas. +If you prefix a flag with \f[CR]no\-\f[R] then it is disabled. +If you omit a flag, it\[cq]s default value is used, so you must +explicitly disable flags you don\[cq]t want. +You can also use \f[CR]true\f[R] or \f[CR]false\f[R] to turn all flags +on or off. +.RS +.PP +This configuration only applies to Ghostty builds that use FreeType. +This is usually the case only for Linux builds. +macOS uses CoreText and does not have an equivalent configuration. +.PP +Available flags: +.IP \[bu] 2 +\f[CR]hinting\f[R] \- Enable or disable hinting, enabled by default. +.IP \[bu] 2 +\f[CR]force\-autohint\f[R] \- Use the freetype auto\-hinter rather than +the font\[cq]s native hinter. +Enabled by default. +.IP \[bu] 2 +\f[CR]monochrome\f[R] \- Instructs renderer to use 1\-bit monochrome +rendering. +This option doesn\[cq]t impact the hinter. +Enabled by default. +.IP \[bu] 2 +\f[CR]autohint\f[R] \- Use the freetype auto\-hinter. +Enabled by default. +.PP +Example: \f[CR]hinting\f[R], \f[CR]no\-hinting\f[R], +\f[CR]force\-autohint\f[R], \f[CR]no\-force\-autohint\f[R] +.RE +.TP +\f[B]\f[CB]theme\f[B]\f[R] +A theme to use. +This can be a built\-in theme name, a custom theme name, or an absolute +path to a custom theme file. +Ghostty also supports specifying a different theme to use for light and +dark mode. +Each option is documented below. +.RS +.PP +If the theme is an absolute pathname, Ghostty will attempt to load that +file as a theme. +If that file does not exist or is inaccessible, an error will be logged +and no other directories will be searched. +.PP +If the theme is not an absolute pathname, two different directories will +be searched for a file name that matches the theme. +This is case sensitive on systems with case\-sensitive filesystems. +It is an error for a theme name to include path separators unless it is +an absolute pathname. +.PP +The first directory is the \f[CR]themes\f[R] subdirectory of your +Ghostty configuration directory. +This is \f[CR]$XDG_CONFIG_DIR/ghostty/themes\f[R] or +\f[CR]\[ti]/.config/ghostty/themes\f[R]. +.PP +The second directory is the \f[CR]themes\f[R] subdirectory of the +Ghostty resources directory. +Ghostty ships with a multitude of themes that will be installed into +this directory. +On macOS, this list is in the +\f[CR]Ghostty.app/Contents/ Resources/ghostty/themes\f[R] directory. +On Linux, this list is in the \f[CR]share/ ghostty/themes\f[R] directory +(wherever you installed the Ghostty \[lq]share\[rq] directory. +.PP +To see a list of available themes, run \f[CR]ghostty +list\-themes\f[R]. +.PP +A theme file is simply another Ghostty configuration file. +They share the same syntax and same configuration options. +A theme can set any valid configuration option so please do not use a +theme file from an untrusted source. +The built\-in themes are audited to only set safe configuration options. +.PP +Some options cannot be set within theme files. +The reason these are not supported should be self\-evident. +A theme file cannot set \f[CR]theme\f[R] or \f[CR]config\-file\f[R]. +At the time of writing this, Ghostty will not show any warnings or +errors if you set these options in a theme file but they will be +silently ignored. +.PP +Any additional colors specified via background, foreground, palette, +etc. +will override the colors specified in the theme. +.PP +To specify a different theme for light and dark mode, use the following +syntax: \f[CR]light:theme\-name,dark:theme\-name\f[R]. +For example: \f[CR]light:rose\-pine\-dawn,dark:rose\-pine\f[R]. +Whitespace around all values are trimmed and order of light and dark +does not matter. +Both light and dark must be specified in this form. +In this form, the theme used will be based on the current desktop +environment theme. +.PP +There are some known bugs with light/dark mode theming. +These will be fixed in a future update: +.IP \[bu] 2 +macOS: titlebar tabs style is not updated when switching themes. +.RE +.TP +\f[B]\f[CB]background\f[B]\f[R] +Background color for the window. +.TP +\f[B]\f[CB]foreground\f[B]\f[R] +Foreground color for the window. +.TP +\f[B]\f[CB]selection\-foreground\f[B]\f[R] +The foreground and background color for selection. +If this is not set, then the selection color is just the inverted window +background and foreground (note: not to be confused with the cell +bg/fg). +.PP +\f[B]\f[CB]selection\-background\f[B]\f[R] +.TP +\f[B]\f[CB]selection\-invert\-fg\-bg\f[B]\f[R] +Swap the foreground and background colors of cells for selection. +This option overrides the \f[CR]selection\-foreground\f[R] and +\f[CR]selection\-background\f[R] options. +.RS +.PP +If you select across cells with differing foregrounds and backgrounds, +the selection color will vary across the selection. +.RE +.TP +\f[B]\f[CB]minimum\-contrast\f[B]\f[R] +The minimum contrast ratio between the foreground and background colors. +The contrast ratio is a value between 1 and 21. +A value of 1 allows for no contrast (i.e.\ black on black). +This value is the contrast ratio as defined by the \c +.UR https://www.w3.org/TR/WCAG20/ +WCAG 2.0 specification +.UE \c +\&. +.RS +.PP +If you want to avoid invisible text (same color as background), a value +of 1.1 is a good value. +If you want to avoid text that is difficult to read, a value of 3 or +higher is a good value. +The higher the value, the more likely that text will become black or +white. +.PP +This value does not apply to Emoji or images. +.RE +.TP +\f[B]\f[CB]palette\f[B]\f[R] +Color palette for the 256 color form that many terminal applications +use. +The syntax of this configuration is \f[CR]N=HEXCODE\f[R] where +\f[CR]N\f[R] is 0 to 255 (for the 256 colors in the terminal color +table) and \f[CR]HEXCODE\f[R] is a typical RGB color code such as +\f[CR]#AABBCC\f[R]. +.RS +.PP +For definitions on all the codes \c +.UR https://www.ditig.com/256-colors-cheat-sheet +see this cheat sheet +.UE \c +\&. +.RE +.TP +\f[B]\f[CB]cursor\-color\f[B]\f[R] +The color of the cursor. +If this is not set, a default will be chosen. +.TP +\f[B]\f[CB]cursor\-invert\-fg\-bg\f[B]\f[R] +Swap the foreground and background colors of the cell under the cursor. +This option overrides the \f[CR]cursor\-color\f[R] and +\f[CR]cursor\-text\f[R] options. +.TP +\f[B]\f[CB]cursor\-opacity\f[B]\f[R] +The opacity level (opposite of transparency) of the cursor. +A value of 1 is fully opaque and a value of 0 is fully transparent. +A value less than 0 or greater than 1 will be clamped to the nearest +valid value. +Note that a sufficiently small value such as 0.3 may be effectively +invisible and may make it difficult to find the cursor. +.TP +\f[B]\f[CB]cursor\-style\f[B]\f[R] +The style of the cursor. +This sets the default style. +A running program can still request an explicit cursor style using +escape sequences (such as \f[CR]CSI q\f[R]). +Shell configurations will often request specific cursor styles. +.RS +.PP +Note that shell integration will automatically set the cursor to a bar +at a prompt, regardless of this configuration. +You can disable that behavior by specifying +\f[CR]shell\-integration\-features = no\-cursor\f[R] or disabling shell +integration entirely. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]block\f[R] +.IP \[bu] 2 +\f[CR]bar\f[R] +.IP \[bu] 2 +\f[CR]underline\f[R] +.IP \[bu] 2 +\f[CR]block_hollow\f[R] +.RE +.TP +\f[B]\f[CB]cursor\-style\-blink\f[B]\f[R] +Sets the default blinking state of the cursor. +This is just the default state; running programs may override the cursor +style using \f[CR]DECSCUSR\f[R] (\f[CR]CSI q\f[R]). +.RS +.PP +If this is not set, the cursor blinks by default. +Note that this is not the same as a \[lq]true\[rq] value, as noted +below. +.PP +If this is not set at all (\f[CR]null\f[R]), then Ghostty will respect +DEC Mode 12 (AT&T cursor blink) as an alternate approach to turning +blinking on/off. +If this is set to any value other than null, DEC mode 12 will be ignored +but \f[CR]DECSCUSR\f[R] will still be respected. +.PP +Valid values are: +.IP \[bu] 2 +\[ga]\[ga] (blank) +.IP \[bu] 2 +\f[CR]true\f[R] +.IP \[bu] 2 +\f[CR]false\f[R] +.RE +.TP +\f[B]\f[CB]cursor\-text\f[B]\f[R] +The color of the text under the cursor. +If this is not set, a default will be chosen. +.TP +\f[B]\f[CB]cursor\-click\-to\-move\f[B]\f[R] +Enables the ability to move the cursor at prompts by using +\f[CR]alt+click\f[R] on Linux and \f[CR]option+click\f[R] on macOS. +.RS +.PP +This feature requires shell integration (specifically prompt marking via +\f[CR]OSC 133\f[R]) and only works in primary screen mode. +Alternate screen applications like vim usually have their own version of +this feature but this configuration doesn\[cq]t control that. +.PP +It should be noted that this feature works by translating your desired +position into a series of synthetic arrow key movements, so some weird +behavior around edge cases are to be expected. +This is unfortunately how this feature is implemented across terminals +because there isn\[cq]t any other way to implement it. +.RE +.TP +\f[B]\f[CB]mouse\-hide\-while\-typing\f[B]\f[R] +Hide the mouse immediately when typing. +The mouse becomes visible again when the mouse is used (button, +movement, etc.). +Platform\-specific behavior may dictate other scenarios where the mouse +is shown. +For example on macOS, the mouse is shown again when a new window, tab, +or split is created. +.TP +\f[B]\f[CB]mouse\-shift\-capture\f[B]\f[R] +Determines whether running programs can detect the shift key pressed +with a mouse click. +Typically, the shift key is used to extend mouse selection. +.RS +.PP +The default value of \f[CR]false\f[R] means that the shift key is not +sent with the mouse protocol and will extend the selection. +This value can be conditionally overridden by the running program with +the \f[CR]XTSHIFTESCAPE\f[R] sequence. +.PP +The value \f[CR]true\f[R] means that the shift key is sent with the +mouse protocol but the running program can override this behavior with +\f[CR]XTSHIFTESCAPE\f[R]. +.PP +The value \f[CR]never\f[R] is the same as \f[CR]false\f[R] but the +running program cannot override this behavior with +\f[CR]XTSHIFTESCAPE\f[R]. +The value \f[CR]always\f[R] is the same as \f[CR]true\f[R] but the +running program cannot override this behavior with +\f[CR]XTSHIFTESCAPE\f[R]. +.PP +If you always want shift to extend mouse selection even if the program +requests otherwise, set this to \f[CR]never\f[R]. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]true\f[R] +.IP \[bu] 2 +\f[CR]false\f[R] +.IP \[bu] 2 +\f[CR]always\f[R] +.IP \[bu] 2 +\f[CR]never\f[R] +.RE +.TP +\f[B]\f[CB]mouse\-scroll\-multiplier\f[B]\f[R] +Multiplier for scrolling distance with the mouse wheel. +Any value less than 0.01 or greater than 10,000 will be clamped to the +nearest valid value. +.RS +.PP +A value of \[lq]1\[rq] (default) scrolls te default amount. +A value of \[lq]2\[rq] scrolls double the default amount. +A value of \[lq]0.5\[rq] scrolls half the default amount. +Et cetera. +.RE +.TP +\f[B]\f[CB]background\-opacity\f[B]\f[R] +The opacity level (opposite of transparency) of the background. +A value of 1 is fully opaque and a value of 0 is fully transparent. +A value less than 0 or greater than 1 will be clamped to the nearest +valid value. +.RS +.PP +On macOS, background opacity is disabled when the terminal enters native +fullscreen. +This is because the background becomes gray and it can cause widgets to +show through which isn\[cq]t generally desirable. +.RE +.TP +\f[B]\f[CB]background\-blur\-radius\f[B]\f[R] +A positive value enables blurring of the background when +background\-opacity is less than 1. +The value is the blur radius to apply. +A value of 20 is reasonable for a good looking blur. +Higher values will cause strange rendering issues as well as performance +issues. +.RS +.PP +This is only supported on macOS. +.RE +.TP +\f[B]\f[CB]unfocused\-split\-opacity\f[B]\f[R] +The opacity level (opposite of transparency) of an unfocused split. +Unfocused splits by default are slightly faded out to make it easier to +see which split is focused. +To disable this feature, set this value to 1. +.RS +.PP +A value of 1 is fully opaque and a value of 0 is fully transparent. +Because \[lq]0\[rq] is not useful (it makes the window look very weird), +the minimum value is 0.15. +This value still looks weird but you can at least see what\[cq]s going +on. +A value outside of the range 0.15 to 1 will be clamped to the nearest +valid value. +.RE +.TP +\f[B]\f[CB]unfocused\-split\-fill\f[B]\f[R] +The color to dim the unfocused split. +Unfocused splits are dimmed by rendering a semi\-transparent rectangle +over the split. +This sets the color of that rectangle and can be used to carefully +control the dimming effect. +.RS +.PP +This will default to the background color. +.RE +.TP +\f[B]\f[CB]command\f[B]\f[R] +The command to run, usually a shell. +If this is not an absolute path, it\[cq]ll be looked up in the +\f[CR]PATH\f[R]. +If this is not set, a default will be looked up from your system. +The rules for the default lookup are: +.RS +.IP \[bu] 2 +\f[CR]SHELL\f[R] environment variable +.IP \[bu] 2 +\f[CR]passwd\f[R] entry (user information) +.PP +This can contain additional arguments to run the command with. +If additional arguments are provided, the command will be executed using +\f[CR]/bin/sh \-c\f[R]. +Ghostty does not do any shell command parsing. +.PP +This command will be used for all new terminal surfaces, i.e.\ new +windows, tabs, etc. +If you want to run a command only for the first terminal surface created +when Ghostty starts, use the \f[CR]initial\-command\f[R] configuration. +.PP +Ghostty supports the common \f[CR]\-e\f[R] flag for executing a command +with arguments. +For example, \f[CR]ghostty \-e fish \-\-with \-\-custom \-\-args\f[R]. +This flag sets the \f[CR]initial\-command\f[R] configuration, see that +for more information. +.RE +.TP +\f[B]\f[CB]initial\-command\f[B]\f[R] +This is the same as \[lq]command\[rq], but only applies to the first +terminal surface created when Ghostty starts. +Subsequent terminal surfaces will use the \f[CR]command\f[R] +configuration. +.RS +.PP +After the first terminal surface is created (or closed), there is no way +to run this initial command again automatically. +As such, setting this at runtime works but will only affect the next +terminal surface if it is the first one ever created. +.PP +If you\[cq]re using the \f[CR]ghostty\f[R] CLI there is also a shortcut +to set this with arguments directly: you can use the \f[CR]\-e\f[R] +flag. +For example: \f[CR]ghostty \-e fish \-\-with \-\-custom \-\-args\f[R]. +The \f[CR]\-e\f[R] flag automatically forces some other behaviors as +well: +.IP \[bu] 2 +\f[CR]gtk\-single\-instance=false\f[R] \- This ensures that a new +instance is launched and the CLI args are respected. +.IP \[bu] 2 +\f[CR]quit\-after\-last\-window\-closed=true\f[R] \- This ensures that +the Ghostty process will exit when the command exits. +Additionally, the \f[CR]quit\-after\-last\-window\-closed\-delay\f[R] is +unset. +.IP \[bu] 2 +\f[CR]shell\-integration=detect\f[R] (if not \f[CR]none\f[R]) \- This +prevents forcibly injecting any configured shell integration into the +command\[cq]s environment. +With \f[CR]\-e\f[R] its highly unlikely that you\[cq]re executing a +shell and forced shell integration is likely to cause problems (i.e.\ by +wrapping your command in a shell, setting env vars, etc.). +This is a safety measure to prevent unexpected behavior. +If you want shell integration with a \f[CR]\-e\f[R]\-executed command, +you must either name your binary appopriately or source the shell +integration script manually. +.RE +.TP +\f[B]\f[CB]wait\-after\-command\f[B]\f[R] +If true, keep the terminal open after the command exits. +Normally, the terminal window closes when the running command (such as a +shell) exits. +With this true, the terminal window will stay open until any keypress is +received. +.RS +.PP +This is primarily useful for scripts or debugging. +.RE +.TP +\f[B]\f[CB]abnormal\-command\-exit\-runtime\f[B]\f[R] +The number of milliseconds of runtime below which we consider a process +exit to be abnormal. +This is used to show an error message when the process exits too +quickly. +.RS +.PP +On Linux, this must be paired with a non\-zero exit code. +On macOS, we allow any exit code because of the way shell processes are +launched via the login command. +.RE +.TP +\f[B]\f[CB]scrollback\-limit\f[B]\f[R] +The size of the scrollback buffer in bytes. +This also includes the active screen. +No matter what this is set to, enough memory will always be allocated +for the visible screen and anything leftover is the limit for the +scrollback. +.RS +.PP +When this limit is reached, the oldest lines are removed from the +scrollback. +.PP +Scrollback currently exists completely in memory. +This means that the larger this value, the larger potential memory +usage. +Scrollback is allocated lazily up to this limit, so if you set this to a +very large value, it will not immediately consume a lot of memory. +.PP +This size is per terminal surface, not for the entire application. +.PP +It is not currently possible to set an unlimited scrollback buffer. +This is a future planned feature. +.PP +This can be changed at runtime but will only affect new terminal +surfaces. +.RE +.TP +\f[B]\f[CB]link\f[B]\f[R] +Match a regular expression against the terminal text and associate +clicking it with an action. +This can be used to match URLs, file paths, etc. +Actions can be opening using the system opener (i.e.\ \f[CR]open\f[R] or +\f[CR]xdg\-open\f[R]) or executing any arbitrary binding action. +.RS +.PP +Links that are configured earlier take precedence over links that are +configured later. +.PP +A default link that matches a URL and opens it in the system opener +always exists. +This can be disabled using \f[CR]link\-url\f[R]. +.PP +TODO: This can\[cq]t currently be set! +.RE +.TP +\f[B]\f[CB]link\-url\f[B]\f[R] +Enable URL matching. +URLs are matched on hover with control (Linux) or super (macOS) pressed +and open using the default system application for the linked URL. +.RS +.PP +The URL matcher is always lowest priority of any configured links (see +\f[CR]link\f[R]). +If you want to customize URL matching, use \f[CR]link\f[R] and disable +this. +.RE +.TP +\f[B]\f[CB]fullscreen\f[B]\f[R] +Start new windows in fullscreen. +This setting applies to new windows and does not apply to tabs, splits, +etc. +However, this setting will apply to all new windows, not just the first +one. +.RS +.PP +On macOS, this setting does not work if window\-decoration is set to +\[lq]false\[rq], because native fullscreen on macOS requires window +decorations to be set. +.RE +.TP +\f[B]\f[CB]title\f[B]\f[R] +The title Ghostty will use for the window. +This will force the title of the window to be this title at all times +and Ghostty will ignore any set title escape sequences programs (such as +Neovim) may send. +.RS +.PP +If you want a blank title, set this to one or more spaces by quoting the +value. +For example, \f[CR]title = \[dq] \[dq]\f[R]. +This effectively hides the title. +This is necessary because setting a blank value resets the title to the +default value of the running program. +.PP +This configuration can be reloaded at runtime. +If it is set, the title will update for all windows. +If it is unset, the next title change escape sequence will be honored +but previous changes will not retroactively be set. +This latter case may require you restart programs such as neovim to get +the new title. +.RE +.TP +\f[B]\f[CB]class\f[B]\f[R] +The setting that will change the application class value. +.RS +.PP +This controls the class field of the \f[CR]WM_CLASS\f[R] X11 property +(when running under X11), and the Wayland application ID (when running +under Wayland). +.PP +Note that changing this value between invocations will create new, +separate instances, of Ghostty when running with +\f[CR]gtk\-single\-instance=true\f[R]. +See that option for more details. +.PP +The class name must follow the requirements defined \c +.UR https://docs.gtk.org/gio/type_func.Application.id_is_valid.html +in the GTK documentation +.UE \c +\&. +.PP +The default is \f[CR]com.mitchellh.ghostty\f[R]. +.PP +This only affects GTK builds. +.RE +.TP +\f[B]\f[CB]x11\-instance\-name\f[B]\f[R] +This controls the instance name field of the \f[CR]WM_CLASS\f[R] X11 +property when running under X11. +It has no effect otherwise. +.RS +.PP +The default is \f[CR]ghostty\f[R]. +.PP +This only affects GTK builds. +.RE +.TP +\f[B]\f[CB]working\-directory\f[B]\f[R] +The directory to change to after starting the command. +.RS +.PP +This setting is secondary to the +\f[CR]window\-inherit\-working\-directory\f[R] setting. +If a previous Ghostty terminal exists in the same process, +\f[CR]window\-inherit\-working\-directory\f[R] will take precedence. +Otherwise, this setting will be used. +Typically, this setting is used only for the first window. +.PP +The default is \f[CR]inherit\f[R] except in special scenarios listed +next. +On macOS, if Ghostty can detect it is launched from launchd +(double\-clicked) or \f[CR]open\f[R], then it defaults to +\f[CR]home\f[R]. +On Linux with GTK, if Ghostty can detect it was launched from a desktop +launcher, then it defaults to \f[CR]home\f[R]. +.PP +The value of this must be an absolute value or one of the special values +below: +.IP \[bu] 2 +\f[CR]home\f[R] \- The home directory of the executing user. +.IP \[bu] 2 +\f[CR]inherit\f[R] \- The working directory of the launching process. +.RE +.TP +\f[B]\f[CB]keybind\f[B]\f[R] +Key bindings. +The format is \f[CR]trigger=action\f[R]. +Duplicate triggers will overwrite previously set values. +The list of actions is available in the documentation or using the +\f[CR]ghostty +list\-actions\f[R] command. +.RS +.PP +Trigger: \f[CR]+\f[R]\-separated list of keys and modifiers. +Example: \f[CR]ctrl+a\f[R], \f[CR]ctrl+shift+b\f[R], \f[CR]up\f[R]. +Some notes: +.IP \[bu] 2 +modifiers cannot repeat, \f[CR]ctrl+ctrl+a\f[R] is invalid. +.IP \[bu] 2 +modifiers and keys can be in any order, \f[CR]shift+a+ctrl\f[R] is +\f[I]weird\f[R], but valid. +.IP \[bu] 2 +only a single key input is allowed, \f[CR]ctrl+a+b\f[R] is invalid. +.IP \[bu] 2 +the key input can be prefixed with \f[CR]physical:\f[R] to specify a +physical key mapping rather than a logical one. +A physical key mapping responds to the hardware keycode and not the +keycode translated by any system keyboard layouts. +Example: \[lq]ctrl+physical:a\[rq] +.PP +Valid modifiers are \f[CR]shift\f[R], \f[CR]ctrl\f[R] (alias: +\f[CR]control\f[R]), \f[CR]alt\f[R] (alias: \f[CR]opt\f[R], +\f[CR]option\f[R]), and \f[CR]super\f[R] (alias: \f[CR]cmd\f[R], +\f[CR]command\f[R]). +You may use the modifier or the alias. +When debugging keybinds, the non\-aliased modifier will always be used +in output. +.PP +Note: The fn or \[lq]globe\[rq] key on keyboards are not supported as a +modifier. +This is a limitation of the operating systems and GUI toolkits that +Ghostty uses. +.PP +You may also specify multiple triggers separated by \f[CR]>\f[R] to +require a sequence of triggers to activate the action. +For example, \f[CR]ctrl+a>n=new_window\f[R] will only trigger the +\f[CR]new_window\f[R] action if the user presses \f[CR]ctrl+a\f[R] +followed separately by \f[CR]n\f[R]. +In other software, this is sometimes called a leader key, a key chord, a +key table, etc. +There is no hardcoded limit on the number of parts in a sequence. +.PP +Warning: If you define a sequence as a CLI argument to +\f[CR]ghostty\f[R], you probably have to quote the keybind since +\f[CR]>\f[R] is a special character in most shells. +Example: ghostty \[en]keybind=`ctrl+a>n=new_window' +.PP +A trigger sequence has some special handling: +.IP \[bu] 2 +Ghostty will wait an indefinite amount of time for the next key in the +sequence. +There is no way to specify a timeout. +The only way to force the output of a prefix key is to assign another +keybind to specifically output that key +(i.e.\ \f[CR]ctrl+a>ctrl+a=text:foo\f[R]) or press an unbound key which +will send both keys to the program. +.IP \[bu] 2 +If a prefix in a sequence is previously bound, the sequence will +override the previous binding. +For example, if \f[CR]ctrl+a\f[R] is bound to \f[CR]new_window\f[R] and +\f[CR]ctrl+a>n\f[R] is bound to \f[CR]new_tab\f[R], pressing +\f[CR]ctrl+a\f[R] will do nothing. +.IP \[bu] 2 +Adding to the above, if a previously bound sequence prefix is used in a +new, non\-sequence binding, the entire previously bound sequence will be +unbound. +For example, if you bind \f[CR]ctrl+a>n\f[R] and \f[CR]ctrl+a>t\f[R], +and then bind \f[CR]ctrl+a\f[R] directly, both \f[CR]ctrl+a>n\f[R] and +\f[CR]ctrl+a>t\f[R] will become unbound. +.IP \[bu] 2 +Trigger sequences are not allowed for \f[CR]global:\f[R] or +\f[CR]all:\f[R]\-prefixed triggers. +This is a limitation we could remove in the future. +.PP +Action is the action to take when the trigger is satisfied. +It takes the format \f[CR]action\f[R] or \f[CR]action:param\f[R]. +The latter form is only valid if the action requires a parameter. +.IP \[bu] 2 +\f[CR]ignore\f[R] \- Do nothing, ignore the key input. +This can be used to black hole certain inputs to have no effect. +.IP \[bu] 2 +\f[CR]unbind\f[R] \- Remove the binding. +This makes it so the previous action is removed, and the key will be +sent through to the child command if it is printable. +.IP \[bu] 2 +\f[CR]csi:text\f[R] \- Send a CSI sequence. +i.e.\ \f[CR]csi:A\f[R] sends \[lq]cursor up\[rq]. +.IP \[bu] 2 +\f[CR]esc:text\f[R] \- Send an escape sequence. +i.e.\ \f[CR]esc:d\f[R] deletes to the end of the word to the right. +.IP \[bu] 2 +\f[CR]text:text\f[R] \- Send a string. +Uses Zig string literal syntax. +i.e.\ \f[CR]text:\[rs]x15\f[R] sends Ctrl\-U. +.IP \[bu] 2 +All other actions can be found in the documentation or by using the +\f[CR]ghostty +list\-actions\f[R] command. +.PP +Some notes for the action: +.IP \[bu] 2 +The parameter is taken as\-is after the \f[CR]:\f[R]. +Double quotes or other mechanisms are included and NOT parsed. +If you want to send a string value that includes spaces, wrap the entire +trigger/action in double quotes. +Example: \f[CR]\-\-keybind=\[dq]up=csi:A B\[dq]\f[R] +.PP +There are some additional special values that can be specified for +keybind: +.IP \[bu] 2 +\f[CR]keybind=clear\f[R] will clear all set keybindings. +Warning: this removes ALL keybindings up to this point, including the +default keybindings. +.PP +The keybind trigger can be prefixed with some special values to change +the behavior of the keybind. +These are: +.IP \[bu] 2 +\f[CR]all:\f[R] \- Make the keybind apply to all terminal surfaces. +By default, keybinds only apply to the focused terminal surface. +If this is true, then the keybind will be sent to all terminal surfaces. +This only applies to actions that are surface\-specific. +For actions that are already global (i.e.\ \f[CR]quit\f[R]), this prefix +has no effect. +.IP \[bu] 2 +\f[CR]global:\f[R] \- Make the keybind global. +By default, keybinds only work within Ghostty and under the right +conditions (application focused, sometimes terminal focused, etc.). +If you want a keybind to work globally across your system (i.e.\ even +when Ghostty is not focused), specify this prefix. +This prefix implies \f[CR]all:\f[R]. +Note: this does not work in all environments; see the additional notes +below for more information. +.IP \[bu] 2 +\f[CR]unconsumed:\f[R] \- Do not consume the input. +By default, a keybind will consume the input, meaning that the +associated encoding (if any) will not be sent to the running program in +the terminal. +If you wish to send the encoded value to the program, specify the +\f[CR]unconsumed:\f[R] prefix before the entire keybind. +For example: \f[CR]unconsumed:ctrl+a=reload_config\f[R]. +\f[CR]global:\f[R] and \f[CR]all:\f[R]\-prefixed keybinds will always +consume the input regardless of this setting. +Since they are not associated with a specific terminal surface, +they\[cq]re never encoded. +.PP +Keybind triggers are not unique per prefix combination. +For example, \f[CR]ctrl+a\f[R] and \f[CR]global:ctrl+a\f[R] are not two +separate keybinds. +The keybind set later will overwrite the keybind set earlier. +In this case, the \f[CR]global:\f[R] keybind will be used. +.PP +Multiple prefixes can be specified. +For example, \f[CR]global:unconsumed:ctrl+a=reload_config\f[R] will make +the keybind global and not consume the input to reload the config. +.PP +Note: \f[CR]global:\f[R] is only supported on macOS. +On macOS, this feature requires accessibility permissions to be granted +to Ghostty. +When a \f[CR]global:\f[R] keybind is specified and Ghostty is launched +or reloaded, Ghostty will attempt to request these permissions. +If the permissions are not granted, the keybind will not work. +On macOS, you can find these permissions in System Preferences \-> +Privacy & Security \-> Accessibility. +.RE +.TP +\f[B]\f[CB]window\-padding\-x\f[B]\f[R] +Horizontal window padding. +This applies padding between the terminal cells and the left and right +window borders. +The value is in points, meaning that it will be scaled appropriately for +screen DPI. +.RS +.PP +If this value is set too large, the screen will render nothing, because +the grid will be completely squished by the padding. +It is up to you as the user to pick a reasonable value. +If you pick an unreasonable value, a warning will appear in the logs. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e. +new windows, tabs, etc. +.PP +To set a different left and right padding, specify two numerical values +separated by a comma. +For example, \f[CR]window\-padding\-x = 2,4\f[R] will set the left +padding to 2 and the right padding to 4. +If you want to set both paddings to the same value, you can use a single +value. +For example, \f[CR]window\-padding\-x = 2\f[R] will set both paddings to +2. +.RE +.TP +\f[B]\f[CB]window\-padding\-y\f[B]\f[R] +Vertical window padding. +This applies padding between the terminal cells and the top and bottom +window borders. +The value is in points, meaning that it will be scaled appropriately for +screen DPI. +.RS +.PP +If this value is set too large, the screen will render nothing, because +the grid will be completely squished by the padding. +It is up to you as the user to pick a reasonable value. +If you pick an unreasonable value, a warning will appear in the logs. +.PP +Changing this configuration at runtime will only affect new terminals, +i.e.\ new windows, tabs, etc. +.PP +To set a different top and bottom padding, specify two numerical values +separated by a comma. +For example, \f[CR]window\-padding\-y = 2,4\f[R] will set the top +padding to 2 and the bottom padding to 4. +If you want to set both paddings to the same value, you can use a single +value. +For example, \f[CR]window\-padding\-y = 2\f[R] will set both paddings to +2. +.RE +.TP +\f[B]\f[CB]window\-padding\-balance\f[B]\f[R] +The viewport dimensions are usually not perfectly divisible by the cell +size. +In this case, some extra padding on the end of a column and the bottom +of the final row may exist. +If this is \f[CR]true\f[R], then this extra padding is automatically +balanced between all four edges to minimize imbalance on one side. +If this is \f[CR]false\f[R], the top left grid cell will always hug the +edge with zero padding other than what may be specified with the other +\f[CR]window\-padding\f[R] options. +.RS +.PP +If other \f[CR]window\-padding\f[R] fields are set and this is +\f[CR]true\f[R], this will still apply. +The other padding is applied first and may affect how many grid cells +actually exist, and this is applied last in order to balance the padding +given a certain viewport size and grid cell size. +.RE +.TP +\f[B]\f[CB]window\-padding\-color\f[B]\f[R] +The color of the padding area of the window. +Valid values are: +.RS +.IP \[bu] 2 +\f[CR]background\f[R] \- The background color specified in +\f[CR]background\f[R]. +.IP \[bu] 2 +\f[CR]extend\f[R] \- Extend the background color of the nearest grid +cell. +.IP \[bu] 2 +\f[CR]extend\-always\f[R] \- Same as \[lq]extend\[rq] but always extends +without applying any of the heuristics that disable extending noted +below. +.PP +The \[lq]extend\[rq] value will be disabled in certain scenarios. +On primary screen applications (i.e.\ not something like Neovim), the +color will not be extended vertically if any of the following are true: +.IP \[bu] 2 +The nearest row has any cells that have the default background color. +The thinking is that in this case, the default background color looks +fine as a padding color. +.IP \[bu] 2 +The nearest row is a prompt row (requires shell integration). +The thinking here is that prompts often contain powerline glyphs that do +not look good extended. +.IP \[bu] 2 +The nearest row contains a perfect fit powerline character. +These don\[cq]t look good extended. +.RE +.TP +\f[B]\f[CB]window\-vsync\f[B]\f[R] +Synchronize rendering with the screen refresh rate. +If true, this will minimize tearing and align redraws with the screen +but may cause input latency. +If false, this will maximize redraw frequency but may cause tearing, and +under heavy load may use more CPU and power. +.RS +.PP +This defaults to true because out\-of\-sync rendering on macOS can cause +kernel panics (macOS 14.4+) and performance issues for external displays +over some hardware such as DisplayLink. +If you want to minimize input latency, set this to false with the known +aforementioned risks. +.PP +Changing this value at runtime will only affect new terminals. +.PP +This setting is only supported currently on macOS. +.RE +.TP +\f[B]\f[CB]window\-inherit\-working\-directory\f[B]\f[R] +If true, new windows and tabs will inherit the working directory of the +previously focused window. +If no window was previously focused, the default working directory will +be used (the \f[CR]working\-directory\f[R] option). +.TP +\f[B]\f[CB]window\-inherit\-font\-size\f[B]\f[R] +If true, new windows and tabs will inherit the font size of the +previously focused window. +If no window was previously focused, the default font size will be used. +If this is false, the default font size specified in the configuration +\f[CR]font\-size\f[R] will be used. +.TP +\f[B]\f[CB]window\-decoration\f[B]\f[R] +Valid values: +.RS +.IP \[bu] 2 +\f[CR]true\f[R] +.IP \[bu] 2 +\f[CR]false\f[R] \- windows won\[cq]t have native decorations, +i.e.\ titlebar and borders. +On macOS this also disables tabs and tab overview. +.PP +The \[lq]toggle_window_decorations\[rq] keybind action can be used to +create a keybinding to toggle this setting at runtime. +.PP +Changing this configuration in your configuration and reloading will +only affect new windows. +Existing windows will not be affected. +.PP +macOS: To hide the titlebar without removing the native window borders +or rounded corners, use \f[CR]macos\-titlebar\-style = hidden\f[R] +instead. +.RE +.TP +\f[B]\f[CB]window\-title\-font\-family\f[B]\f[R] +The font that will be used for the application\[cq]s window and tab +titles. +.RS +.PP +This is currently only supported on macOS. +.RE +.TP +\f[B]\f[CB]window\-theme\f[B]\f[R] +The theme to use for the windows. +Valid values: +.RS +.IP \[bu] 2 +\f[CR]auto\f[R] \- Determine the theme based on the configured terminal +background color. +This has no effect if the \[lq]theme\[rq] configuration has separate +light and dark themes. +In that case, the behavior of \[lq]auto\[rq] is equivalent to +\[lq]system\[rq]. +.IP \[bu] 2 +\f[CR]system\f[R] \- Use the system theme. +.IP \[bu] 2 +\f[CR]light\f[R] \- Use the light theme regardless of system theme. +.IP \[bu] 2 +\f[CR]dark\f[R] \- Use the dark theme regardless of system theme. +.IP \[bu] 2 +\f[CR]ghostty\f[R] \- Use the background and foreground colors specified +in the Ghostty configuration. +This is only supported on Linux builds with Adwaita and +\f[CR]gtk\-adwaita\f[R] enabled. +.PP +On macOS, if \f[CR]macos\-titlebar\-style\f[R] is \[lq]tabs\[rq], the +window theme will be automatically set based on the luminosity of the +terminal background color. +This only applies to terminal windows. +This setting will still apply to non\-terminal windows within Ghostty. +.PP +This is currently only supported on macOS and Linux. +.RE +.TP +\f[B]\f[CB]window\-colorspace\f[B]\f[R] +The colorspace to use for the terminal window. +The default is \f[CR]srgb\f[R] but this can also be set to +\f[CR]display\-p3\f[R] to use the Display P3 colorspace. +.RS +.PP +Changing this value at runtime will only affect new windows. +.PP +This setting is only supported on macOS. +.RE +.TP +\f[B]\f[CB]window\-height\f[B]\f[R] +The initial window size. +This size is in terminal grid cells by default. +Both values must be set to take effect. +If only one value is set, it is ignored. +.RS +.PP +We don\[cq]t currently support specifying a size in pixels but a future +change can enable that. +If this isn\[cq]t specified, the app runtime will determine some default +size. +.PP +Note that the window manager may put limits on the size or override the +size. +For example, a tiling window manager may force the window to be a +certain size to fit within the grid. +There is nothing Ghostty will do about this, but it will make an effort. +.PP +Sizes larger than the screen size will be clamped to the screen size. +This can be used to create a maximized\-by\-default window size. +.PP +This will not affect new tabs, splits, or other nested terminal +elements. +This only affects the initial window size of any new window. +Changing this value will not affect the size of the window after it has +been created. +This is only used for the initial size. +.PP +BUG: On Linux with GTK, the calculated window size will not properly +take into account window decorations. +As a result, the grid dimensions will not exactly match this +configuration. +If window decorations are disabled (see window\-decorations), then this +will work as expected. +.PP +Windows smaller than 10 wide by 4 high are not allowed. +.RE +.PP +\f[B]\f[CB]window\-width\f[B]\f[R] +.TP +\f[B]\f[CB]window\-save\-state\f[B]\f[R] +Whether to enable saving and restoring window state. +Window state includes their position, size, tabs, splits, etc. +Some window state requires shell integration, such as preserving working +directories. +See \f[CR]shell\-integration\f[R] for more information. +.RS +.PP +There are three valid values for this configuration: +.IP \[bu] 2 +\f[CR]default\f[R] will use the default system behavior. +On macOS, this will only save state if the application is forcibly +terminated or if it is configured systemwide via Settings.app. +.IP \[bu] 2 +\f[CR]never\f[R] will never save window state. +.IP \[bu] 2 +\f[CR]always\f[R] will always save window state whenever Ghostty is +exited. +.PP +If you change this value to \f[CR]never\f[R] while Ghostty is not +running, the next Ghostty launch will NOT restore the window state. +.PP +If you change this value to \f[CR]default\f[R] while Ghostty is not +running and the previous exit saved state, the next Ghostty launch will +still restore the window state. +This is because Ghostty cannot know if the previous exit was due to a +forced save or not (macOS doesn\[cq]t provide this information). +.PP +If you change this value so that window state is saved while Ghostty is +not running, the previous window state will not be restored because +Ghostty only saves state on exit if this is enabled. +.PP +The default value is \f[CR]default\f[R]. +.PP +This is currently only supported on macOS. +This has no effect on Linux. +.RE +.TP +\f[B]\f[CB]window\-step\-resize\f[B]\f[R] +Resize the window in discrete increments of the focused surface\[cq]s +cell size. +If this is disabled, surfaces are resized in pixel increments. +Currently only supported on macOS. +.TP +\f[B]\f[CB]window\-new\-tab\-position\f[B]\f[R] +The position where new tabs are created. +Valid values: +.RS +.IP \[bu] 2 +\f[CR]current\f[R] \- Insert the new tab after the currently focused +tab, or at the end if there are no focused tabs. +.IP \[bu] 2 +\f[CR]end\f[R] \- Insert the new tab at the end of the tab list. +.RE +.TP +\f[B]\f[CB]resize\-overlay\f[B]\f[R] +This controls when resize overlays are shown. +Resize overlays are a transient popup that shows the size of the +terminal while the surfaces are being resized. +The possible options are: +.RS +.IP \[bu] 2 +\f[CR]always\f[R] \- Always show resize overlays. +.IP \[bu] 2 +\f[CR]never\f[R] \- Never show resize overlays. +.IP \[bu] 2 +\f[CR]after\-first\f[R] \- The resize overlay will not appear when the +surface is first created, but will show up if the surface is +subsequently resized. +.PP +The default is \f[CR]after\-first\f[R]. +.RE +.TP +\f[B]\f[CB]resize\-overlay\-position\f[B]\f[R] +If resize overlays are enabled, this controls the position of the +overlay. +The possible options are: +.RS +.IP \[bu] 2 +\f[CR]center\f[R] +.IP \[bu] 2 +\f[CR]top\-left\f[R] +.IP \[bu] 2 +\f[CR]top\-center\f[R] +.IP \[bu] 2 +\f[CR]top\-right\f[R] +.IP \[bu] 2 +\f[CR]bottom\-left\f[R] +.IP \[bu] 2 +\f[CR]bottom\-center\f[R] +.IP \[bu] 2 +\f[CR]bottom\-right\f[R] +.PP +The default is \f[CR]center\f[R]. +.RE +.TP +\f[B]\f[CB]resize\-overlay\-duration\f[B]\f[R] +If resize overlays are enabled, this controls how long the overlay is +visible on the screen before it is hidden. +The default is ¾ of a second or 750 ms. +.RS +.PP +The duration is specified as a series of numbers followed by time units. +Whitespace is allowed between numbers and units. +Each number and unit will be added together to form the total duration. +.PP +The allowed time units are as follows: +.IP \[bu] 2 +\f[CR]y\f[R] \- 365 SI days, or 8760 hours, or 31536000 seconds. +No adjustments are made for leap years or leap seconds. +.IP \[bu] 2 +\f[CR]d\f[R] \- one SI day, or 86400 seconds. +.IP \[bu] 2 +\f[CR]h\f[R] \- one hour, or 3600 seconds. +.IP \[bu] 2 +\f[CR]m\f[R] \- one minute, or 60 seconds. +.IP \[bu] 2 +\f[CR]s\f[R] \- one second. +.IP \[bu] 2 +\f[CR]ms\f[R] \- one millisecond, or 0.001 second. +.IP \[bu] 2 +\f[CR]us\f[R] or \f[CR]µs\f[R] \- one microsecond, or 0.000001 second. +.IP \[bu] 2 +\f[CR]ns\f[R] \- one nanosecond, or 0.000000001 second. +.PP +Examples: * \f[CR]1h30m\f[R] * \f[CR]45s\f[R] +.PP +Units can be repeated and will be added together. +This means that \f[CR]1h1h\f[R] is equivalent to \f[CR]2h\f[R]. +This is confusing and should be avoided. +A future update may disallow this. +.PP +The maximum value is \f[CR]584y 49w 23h 34m 33s 709ms 551µs 615ns\f[R]. +Any value larger than this will be clamped to the maximum value. +.RE +.PP +\f[B]\f[CB]focus\-follows\-mouse\f[B]\f[R] +.TP +\f[B]\f[CB]clipboard\-read\f[B]\f[R] +Whether to allow programs running in the terminal to read/write to the +system clipboard (OSC 52, for googling). +The default is to allow clipboard reading after prompting the user and +allow writing unconditionally. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]ask\f[R] +.IP \[bu] 2 +\f[CR]allow\f[R] +.IP \[bu] 2 +\f[CR]deny\f[R] +.RE +.PP +\f[B]\f[CB]clipboard\-write\f[B]\f[R] +.TP +\f[B]\f[CB]clipboard\-trim\-trailing\-spaces\f[B]\f[R] +Trims trailing whitespace on data that is copied to the clipboard. +This does not affect data sent to the clipboard via +\f[CR]clipboard\-write\f[R]. +.TP +\f[B]\f[CB]clipboard\-paste\-protection\f[B]\f[R] +Require confirmation before pasting text that appears unsafe. +This helps prevent a \[lq]copy/paste attack\[rq] where a user may +accidentally execute unsafe commands by pasting text with newlines. +.TP +\f[B]\f[CB]clipboard\-paste\-bracketed\-safe\f[B]\f[R] +If true, bracketed pastes will be considered safe. +By default, bracketed pastes are considered safe. +\[lq]Bracketed\[rq] pastes are pastes while the running program has +bracketed paste mode enabled (a setting set by the running program, not +the terminal emulator). +.TP +\f[B]\f[CB]image\-storage\-limit\f[B]\f[R] +The total amount of bytes that can be used for image data (i.e.\ the +Kitty image protocol) per terminal screen. +The maximum value is 4,294,967,295 (4GiB). +The default is 320MB. +If this is set to zero, then all image protocols will be disabled. +.RS +.PP +This value is separate for primary and alternate screens so the +effective limit per surface is double. +.RE +.TP +\f[B]\f[CB]copy\-on\-select\f[B]\f[R] +Whether to automatically copy selected text to the clipboard. +\f[CR]true\f[R] will prefer to copy to the selection clipboard if +supported by the OS, otherwise it will copy to the system clipboard. +.RS +.PP +The value \f[CR]clipboard\f[R] will always copy text to the selection +clipboard (for supported systems) as well as the system clipboard. +This is sometimes a preferred behavior on Linux. +.PP +Middle\-click paste will always use the selection clipboard on Linux and +the system clipboard on macOS. +Middle\-click paste is always enabled even if this is \f[CR]false\f[R]. +.PP +The default value is true on Linux and false on macOS. +macOS copy on select behavior is not typical for applications so it is +disabled by default. +On Linux, this is a standard behavior so it is enabled by default. +.RE +.TP +\f[B]\f[CB]click\-repeat\-interval\f[B]\f[R] +The time in milliseconds between clicks to consider a click a repeat +(double, triple, etc.) +or an entirely new single click. +A value of zero will use a platform\-specific default. +The default on macOS is determined by the OS settings. +On every other platform it is 500ms. +.TP +\f[B]\f[CB]config\-file\f[B]\f[R] +Additional configuration files to read. +This configuration can be repeated to read multiple configuration files. +Configuration files themselves can load more configuration files. +Paths are relative to the file containing the \f[CR]config\-file\f[R] +directive. +For command\-line arguments, paths are relative to the current working +directory. +.RS +.PP +Prepend a ? +character to the file path to suppress errors if the file does not +exist. +If you want to include a file that begins with a literal ? +character, surround the file path in double quotes (\[lq]). +.PP +Cycles are not allowed. +If a cycle is detected, an error will be logged and the configuration +file will be ignored. +.PP +Configuration files are loaded after the configuration they\[cq]re +defined within in the order they\[cq]re defined. +\f[B]THIS IS A VERY SUBTLE BUT IMPORTANT POINT.\f[R] To put it another +way: configuration files do not take effect until after the entire +configuration is loaded. +For example, in the configuration below: +.IP +.EX +config\-file = \[dq]foo\[dq] +a = 1 +.EE +.PP +If \[lq]foo\[rq] contains \f[CR]a = 2\f[R], the final value of +\f[CR]a\f[R] will be 2, because \f[CR]foo\f[R] is loaded after the +configuration file that configures the nested \f[CR]config\-file\f[R] +value. +.RE +.TP +\f[B]\f[CB]config\-default\-files\f[B]\f[R] +When this is true, the default configuration file paths will be loaded. +The default configuration file paths are currently only the XDG config +path ($XDG_CONFIG_HOME/ghostty/config). +.RS +.PP +If this is false, the default configuration paths will not be loaded. +This is targeted directly at using Ghostty from the CLI in a way that +minimizes external effects. +.PP +This is a CLI\-only configuration. +Setting this in a configuration file will have no effect. +It is not an error, but it will not do anything. +This configuration can only be set via CLI arguments. +.RE +.TP +\f[B]\f[CB]confirm\-close\-surface\f[B]\f[R] +Confirms that a surface should be closed before closing it. +This defaults to true. +If set to false, surfaces will close without any confirmation. +.TP +\f[B]\f[CB]quit\-after\-last\-window\-closed\f[B]\f[R] +Whether or not to quit after the last surface is closed. +.RS +.PP +This defaults to \f[CR]false\f[R] on macOS since that is standard +behavior for a macOS application. +On Linux, this defaults to \f[CR]true\f[R] since that is generally +expected behavior. +.PP +On Linux, if this is \f[CR]true\f[R], Ghostty can delay quitting fully +until a configurable amount of time has passed after the last window is +closed. +See the documentation of +\f[CR]quit\-after\-last\-window\-closed\-delay\f[R]. +.RE +.TP +\f[B]\f[CB]quit\-after\-last\-window\-closed\-delay\f[B]\f[R] +Controls how long Ghostty will stay running after the last open surface +has been closed. +This only has an effect if \f[CR]quit\-after\-last\-window\-closed\f[R] +is also set to \f[CR]true\f[R]. +.RS +.PP +The minimum value for this configuration is \f[CR]1s\f[R]. +Any values lower than this will be clamped to \f[CR]1s\f[R]. +.PP +The duration is specified as a series of numbers followed by time units. +Whitespace is allowed between numbers and units. +Each number and unit will be added together to form the total duration. +.PP +The allowed time units are as follows: +.IP \[bu] 2 +\f[CR]y\f[R] \- 365 SI days, or 8760 hours, or 31536000 seconds. +No adjustments are made for leap years or leap seconds. +.IP \[bu] 2 +\f[CR]d\f[R] \- one SI day, or 86400 seconds. +.IP \[bu] 2 +\f[CR]h\f[R] \- one hour, or 3600 seconds. +.IP \[bu] 2 +\f[CR]m\f[R] \- one minute, or 60 seconds. +.IP \[bu] 2 +\f[CR]s\f[R] \- one second. +.IP \[bu] 2 +\f[CR]ms\f[R] \- one millisecond, or 0.001 second. +.IP \[bu] 2 +\f[CR]us\f[R] or \f[CR]µs\f[R] \- one microsecond, or 0.000001 second. +.IP \[bu] 2 +\f[CR]ns\f[R] \- one nanosecond, or 0.000000001 second. +.PP +Examples: * \f[CR]1h30m\f[R] * \f[CR]45s\f[R] +.PP +Units can be repeated and will be added together. +This means that \f[CR]1h1h\f[R] is equivalent to \f[CR]2h\f[R]. +This is confusing and should be avoided. +A future update may disallow this. +.PP +The maximum value is \f[CR]584y 49w 23h 34m 33s 709ms 551µs 615ns\f[R]. +Any value larger than this will be clamped to the maximum value. +.PP +By default \f[CR]quit\-after\-last\-window\-closed\-delay\f[R] is unset +and Ghostty will quit immediately after the last window is closed if +\f[CR]quit\-after\-last\-window\-closed\f[R] is \f[CR]true\f[R]. +.PP +Only implemented on Linux. +.RE +.TP +\f[B]\f[CB]initial\-window\f[B]\f[R] +This controls whether an initial window is created when Ghostty is run. +Note that if \f[CR]quit\-after\-last\-window\-closed\f[R] is +\f[CR]true\f[R] and \f[CR]quit\-after\-last\-window\-closed\-delay\f[R] +is set, setting \f[CR]initial\-window\f[R] to \f[CR]false\f[R] will mean +that Ghostty will quit after the configured delay if no window is ever +created. +Only implemented on Linux and macOS. +.TP +\f[B]\f[CB]quick\-terminal\-position\f[B]\f[R] +The position of the \[lq]quick\[rq] terminal window. +To learn more about the quick terminal, see the documentation for the +\f[CR]toggle_quick_terminal\f[R] binding action. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]top\f[R] \- Terminal appears at the top of the screen. +.IP \[bu] 2 +\f[CR]bottom\f[R] \- Terminal appears at the bottom of the screen. +.IP \[bu] 2 +\f[CR]left\f[R] \- Terminal appears at the left of the screen. +.IP \[bu] 2 +\f[CR]right\f[R] \- Terminal appears at the right of the screen. +.PP +Changing this configuration requires restarting Ghostty completely. +.RE +.TP +\f[B]\f[CB]quick\-terminal\-screen\f[B]\f[R] +The screen where the quick terminal should show up. +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]main\f[R] \- The screen that the operating system recommends as +the main screen. +On macOS, this is the screen that is currently receiving keyboard input. +This screen is defined by the operating system and not chosen by +Ghostty. +.IP \[bu] 2 +\f[CR]mouse\f[R] \- The screen that the mouse is currently hovered over. +.IP \[bu] 2 +\f[CR]macos\-menu\-bar\f[R] \- The screen that contains the macOS menu +bar as set in the display settings on macOS. +This is a bit confusing because every screen on macOS has a menu bar, +but this is the screen that contains the primary menu bar. +.PP +The default value is \f[CR]main\f[R] because this is the recommended +screen by the operating system. +.RE +.TP +\f[B]\f[CB]quick\-terminal\-animation\-duration\f[B]\f[R] +Duration (in seconds) of the quick terminal enter and exit animation. +Set it to 0 to disable animation completely. +This can be changed at runtime. +.TP +\f[B]\f[CB]shell\-integration\f[B]\f[R] +Whether to enable shell integration auto\-injection or not. +Shell integration greatly enhances the terminal experience by enabling a +number of features: +.RS +.IP \[bu] 2 +Working directory reporting so new tabs, splits inherit the previous +terminal\[cq]s working directory. +.IP \[bu] 2 +Prompt marking that enables the \[lq]jump_to_prompt\[rq] keybinding. +.IP \[bu] 2 +If you\[cq]re sitting at a prompt, closing a terminal will not ask for +confirmation. +.IP \[bu] 2 +Resizing the window with a complex prompt usually paints much better. +.PP +Allowable values are: +.IP \[bu] 2 +\f[CR]none\f[R] \- Do not do any automatic injection. +You can still manually configure your shell to enable the integration. +.IP \[bu] 2 +\f[CR]detect\f[R] \- Detect the shell based on the filename. +.IP \[bu] 2 +\f[CR]bash\f[R], \f[CR]elvish\f[R], \f[CR]fish\f[R], \f[CR]zsh\f[R] \- +Use this specific shell injection scheme. +.PP +The default value is \f[CR]detect\f[R]. +.RE +.TP +\f[B]\f[CB]shell\-integration\-features\f[B]\f[R] +Shell integration features to enable if shell integration itself is +enabled. +The format of this is a list of features to enable separated by commas. +If you prefix a feature with \f[CR]no\-\f[R] then it is disabled. +If you omit a feature, its default value is used, so you must explicitly +disable features you don\[cq]t want. +You can also use \f[CR]true\f[R] or \f[CR]false\f[R] to turn all +features on or off. +.RS +.PP +Available features: +.IP \[bu] 2 +\f[CR]cursor\f[R] \- Set the cursor to a blinking bar at the prompt. +.IP \[bu] 2 +\f[CR]sudo\f[R] \- Set sudo wrapper to preserve terminfo. +.IP \[bu] 2 +\f[CR]title\f[R] \- Set the window title via shell integration. +.PP +Example: \f[CR]cursor\f[R], \f[CR]no\-cursor\f[R], \f[CR]sudo\f[R], +\f[CR]no\-sudo\f[R], \f[CR]title\f[R], \f[CR]no\-title\f[R] +.RE +.TP +\f[B]\f[CB]osc\-color\-report\-format\f[B]\f[R] +Sets the reporting format for OSC sequences that request color +information. +Ghostty currently supports OSC 10 (foreground), OSC 11 (background), and +OSC 4 (256 color palette) queries, and by default the reported values +are scaled\-up RGB values, where each component are 16 bits. +This is how most terminals report these values. +However, some legacy applications may require 8\-bit, unscaled, +components. +We also support turning off reporting altogether. +The components are lowercase hex values. +.RS +.PP +Allowable values are: +.IP \[bu] 2 +\f[CR]none\f[R] \- OSC 4/10/11 queries receive no reply +.IP \[bu] 2 +\f[CR]8\-bit\f[R] \- Color components are return unscaled, +i.e.\ \f[CR]rr/gg/bb\f[R] +.IP \[bu] 2 +\f[CR]16\-bit\f[R] \- Color components are returned scaled, +e.g.\ \f[CR]rrrr/gggg/bbbb\f[R] +.PP +The default value is \f[CR]16\-bit\f[R]. +.RE +.TP +\f[B]\f[CB]vt\-kam\-allowed\f[B]\f[R] +If true, allows the \[lq]KAM\[rq] mode (ANSI mode 2) to be used within +the terminal. +KAM disables keyboard input at the request of the application. +This is not a common feature and is not recommended to be enabled. +This will not be documented further because if you know you need KAM, +you know. +If you don\[cq]t know if you need KAM, you don\[cq]t need it. +.TP +\f[B]\f[CB]custom\-shader\f[B]\f[R] +Custom shaders to run after the default shaders. +This is a file path to a GLSL\-syntax shader for all platforms. +.RS +.PP +Warning: Invalid shaders can cause Ghostty to become unusable such as by +causing the window to be completely black. +If this happens, you can unset this configuration to disable the shader. +.PP +On Linux, this requires OpenGL 4.2. +Ghostty typically only requires OpenGL 3.3, but custom shaders push that +requirement up to 4.2. +.PP +The shader API is identical to the Shadertoy API: you specify a +\f[CR]mainImage\f[R] function and the available uniforms match +Shadertoy. +The iChannel0 uniform is a texture containing the rendered terminal +screen. +.PP +If the shader fails to compile, the shader will be ignored. +Any errors related to shader compilation will not show up as +configuration errors and only show up in the log, since shader +compilation happens after configuration loading on the dedicated render +thread. +For interactive development, use \c +.UR https://shadertoy.com +shadertoy.com +.UE \c +\&. +.PP +This can be repeated multiple times to load multiple shaders. +The shaders will be run in the order they are specified. +.PP +Changing this value at runtime and reloading the configuration will only +affect new windows, tabs, and splits. +.RE +.TP +\f[B]\f[CB]custom\-shader\-animation\f[B]\f[R] +If \f[CR]true\f[R] (default), the focused terminal surface will run an +animation loop when custom shaders are used. +This uses slightly more CPU (generally less than 10%) but allows the +shader to animate. +This only runs if there are custom shaders and the terminal is focused. +.RS +.PP +If this is set to \f[CR]false\f[R], the terminal and custom shader will +only render when the terminal is updated. +This is more efficient but the shader will not animate. +.PP +This can also be set to \f[CR]always\f[R], which will always run the +animation loop regardless of whether the terminal is focused or not. +The animation loop will still only run when custom shaders are used. +Note that this will use more CPU per terminal surface and can become +quite expensive depending on the shader and your terminal usage. +.PP +This value can be changed at runtime and will affect all currently open +terminals. +.RE +.TP +\f[B]\f[CB]macos\-non\-native\-fullscreen\f[B]\f[R] +If anything other than false, fullscreen mode on macOS will not use the +native fullscreen, but make the window fullscreen without animations and +using a new space. +It\[cq]s faster than the native fullscreen mode since it doesn\[cq]t use +animations. +.RS +.PP +Important: tabs DO NOT WORK in this mode. +Non\-native fullscreen removes the titlebar and macOS native tabs +require the titlebar. +If you use tabs, you should not use this mode. +.PP +If you fullscreen a window with tabs, the currently focused tab will +become fullscreen while the others will remain in a separate window in +the background. +You can switch to that window using normal window\-switching keybindings +such as command+tilde. +When you exit fullscreen, the window will return to the tabbed state it +was in before. +.PP +Allowable values are: +.IP \[bu] 2 +\f[CR]visible\-menu\f[R] \- Use non\-native macOS fullscreen, keep the +menu bar visible +.IP \[bu] 2 +\f[CR]true\f[R] \- Use non\-native macOS fullscreen, hide the menu bar +.IP \[bu] 2 +\f[CR]false\f[R] \- Use native macOS fullscreen +.PP +Changing this option at runtime works, but will only apply to the next +time the window is made fullscreen. +If a window is already fullscreen, it will retain the previous setting +until fullscreen is exited. +.RE +.TP +\f[B]\f[CB]macos\-titlebar\-style\f[B]\f[R] +The style of the macOS titlebar. +Available values are: \[lq]native\[rq], \[lq]transparent\[rq], +\[lq]tabs\[rq], and \[lq]hidden\[rq]. +.RS +.PP +The \[lq]native\[rq] style uses the native macOS titlebar with zero +customization. +The titlebar will match your window theme (see +\f[CR]window\-theme\f[R]). +.PP +The \[lq]transparent\[rq] style is the same as \[lq]native\[rq] but the +titlebar will be transparent and allow your window background color to +come through. +This makes a more seamless window appearance but looks a little less +typical for a macOS application and may not work well with all themes. +.PP +The \[lq]transparent\[rq] style will also update in real\-time to +dynamic changes to the window background color, i.e.\ via OSC 11. +To make this more aesthetically pleasing, this only happens if the +terminal is a window, tab, or split that borders the top of the window. +This avoids a disjointed appearance where the titlebar color changes but +all the topmost terminals don\[cq]t match. +.PP +The \[lq]tabs\[rq] style is a completely custom titlebar that integrates +the tab bar into the titlebar. +This titlebar always matches the background color of the terminal. +There are some limitations to this style: On macOS 13 and below, saved +window state will not restore tabs correctly. +macOS 14 does not have this issue and any other macOS version has not +been tested. +.PP +The \[lq]hidden\[rq] style hides the titlebar. +Unlike \f[CR]window\-decoration = false\f[R], however, it does not +remove the frame from the window or cause it to have squared corners. +Changing to or from this option at run\-time may affect existing windows +in buggy ways. +The top titlebar area of the window will continue to drag the window +around and you will not be able to use the mouse for terminal events in +this space. +.PP +The default value is \[lq]transparent\[rq]. +This is an opinionated choice but its one I think is the most +aesthetically pleasing and works in most cases. +.PP +Changing this option at runtime only applies to new windows. +.RE +.TP +\f[B]\f[CB]macos\-titlebar\-proxy\-icon\f[B]\f[R] +Whether the proxy icon in the macOS titlebar is visible. +The proxy icon is the icon that represents the folder of the current +working directory. +You can see this very clearly in the macOS built\-in Terminal.app +titlebar. +.RS +.PP +The proxy icon is only visible with the native macOS titlebar style. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]visible\f[R] \- Show the proxy icon. +.IP \[bu] 2 +\f[CR]hidden\f[R] \- Hide the proxy icon. +.PP +The default value is \f[CR]visible\f[R]. +.PP +This setting can be changed at runtime and will affect all currently +open windows but only after their working directory changes again. +Therefore, to make this work after changing the setting, you must +usually \f[CR]cd\f[R] to a different directory, open a different file in +an editor, etc. +.RE +.TP +\f[B]\f[CB]macos\-option\-as\-alt\f[B]\f[R] +macOS doesn\[cq]t have a distinct \[lq]alt\[rq] key and instead has the +\[lq]option\[rq] key which behaves slightly differently. +On macOS by default, the option key plus a character will sometimes +produces a Unicode character. +For example, on US standard layouts option\-b produces \[lq]∫\[rq]. +This may be undesirable if you want to use \[lq]option\[rq] as an +\[lq]alt\[rq] key for keybindings in terminal programs or shells. +.RS +.PP +This configuration lets you change the behavior so that option is +treated as alt. +.PP +The default behavior (unset) will depend on your active keyboard layout. +If your keyboard layout is one of the keyboard layouts listed below, +then the default value is \[lq]true\[rq]. +Otherwise, the default value is \[lq]false\[rq]. +Keyboard layouts with a default value of \[lq]true\[rq] are: +.IP \[bu] 2 +U.S. +Standard +.IP \[bu] 2 +U.S. +International +.PP +Note that if an \f[I]Option\f[R]\-sequence doesn\[cq]t produce a +printable character, it will be treated as \f[I]Alt\f[R] regardless of +this setting. +(i.e.\ \f[CR]alt+ctrl+a\f[R]). +.PP +Explicit values that can be set: +.PP +If \f[CR]true\f[R], the \f[I]Option\f[R] key will be treated as +\f[I]Alt\f[R]. +This makes terminal sequences expecting \f[I]Alt\f[R] to work properly, +but will break Unicode input sequences on macOS if you use them via the +\f[I]Alt\f[R] key. +.PP +You may set this to \f[CR]false\f[R] to restore the macOS \f[I]Alt\f[R] +key unicode sequences but this will break terminal sequences expecting +\f[I]Alt\f[R] to work. +.PP +The values \f[CR]left\f[R] or \f[CR]right\f[R] enable this for the left +or right \f[I]Option\f[R] key, respectively. +.PP +This does not work with GLFW builds. +.RE +.TP +\f[B]\f[CB]macos\-window\-shadow\f[B]\f[R] +Whether to enable the macOS window shadow. +The default value is true. +With some window managers and window transparency settings, you may find +false more visually appealing. +.TP +\f[B]\f[CB]macos\-auto\-secure\-input\f[B]\f[R] +If true, Ghostty on macOS will automatically enable the \[lq]Secure +Input\[rq] feature when it detects that a password prompt is being +displayed. +.RS +.PP +\[lq]Secure Input\[rq] is a macOS security feature that prevents +applications from reading keyboard events. +This can always be enabled manually using the +\f[CR]Ghostty > Secure Keyboard Entry\f[R] menu item. +.PP +Note that automatic password prompt detection is based on heuristics and +may not always work as expected. +Specifically, it does not work over SSH connections, but there may be +other cases where it also doesn\[cq]t work. +.PP +A reason to disable this feature is if you find that it is interfering +with legitimate accessibility software (or software that uses the +accessibility APIs), since secure input prevents any application from +reading keyboard events. +.RE +.TP +\f[B]\f[CB]macos\-secure\-input\-indication\f[B]\f[R] +If true, Ghostty will show a graphical indication when secure input is +enabled. +This indication is generally recommended to know when secure input is +enabled. +.RS +.PP +Normally, secure input is only active when a password prompt is +displayed or it is manually (and typically temporarily) enabled. +However, if you always have secure input enabled, the indication can be +distracting and you may want to disable it. +.RE +.TP +\f[B]\f[CB]linux\-cgroup\f[B]\f[R] +Put every surface (tab, split, window) into a dedicated Linux cgroup. +.RS +.PP +This makes it so that resource management can be done on a per\-surface +granularity. +For example, if a shell program is using too much memory, only that +shell will be killed by the oom monitor instead of the entire Ghostty +process. +Similarly, if a shell program is using too much CPU, only that surface +will be CPU\-throttled. +.PP +This will cause startup times to be slower (a hundred milliseconds or +so), so the default value is \[lq]single\-instance.\[rq] In +single\-instance mode, only one instance of Ghostty is running (see +gtk\-single\-instance) so the startup time is a one\-time cost. +Additionally, single instance Ghostty is much more likely to have many +windows, tabs, etc. +so cgroup isolation is a big benefit. +.PP +This feature requires systemd. +If systemd is unavailable, cgroup initialization will fail. +By default, this will not prevent Ghostty from working (see +linux\-cgroup\-hard\-fail). +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]never\f[R] \- Never use cgroups. +.IP \[bu] 2 +\f[CR]always\f[R] \- Always use cgroups. +.IP \[bu] 2 +\f[CR]single\-instance\f[R] \- Enable cgroups only for Ghostty instances +launched as single\-instance applications (see gtk\-single\-instance). +.RE +.TP +\f[B]\f[CB]linux\-cgroup\-memory\-limit\f[B]\f[R] +Memory limit for any individual terminal process (tab, split, window, +etc.) +in bytes. +If this is unset then no memory limit will be set. +.RS +.PP +Note that this sets the \[lq]memory.high\[rq] configuration for the +memory controller, which is a soft limit. +You should configure something like systemd\-oom to handle killing +processes that have too much memory pressure. +.RE +.TP +\f[B]\f[CB]linux\-cgroup\-processes\-limit\f[B]\f[R] +Number of processes limit for any individual terminal process (tab, +split, window, etc.). +If this is unset then no limit will be set. +.RS +.PP +Note that this sets the \[lq]pids.max\[rq] configuration for the process +number controller, which is a hard limit. +.RE +.TP +\f[B]\f[CB]linux\-cgroup\-hard\-fail\f[B]\f[R] +If this is false, then any cgroup initialization (for linux\-cgroup) +will be allowed to fail and the failure is ignored. +This is useful if you view cgroup isolation as a \[lq]nice to have\[rq] +and not a critical resource management feature, because Ghostty startup +will not fail if cgroup APIs fail. +.RS +.PP +If this is true, then any cgroup initialization failure will cause +Ghostty to exit or new surfaces to not be created. +.PP +Note: This currently only affects cgroup initialization. +Subprocesses must always be able to move themselves into an isolated +cgroup. +.RE +.TP +\f[B]\f[CB]gtk\-single\-instance\f[B]\f[R] +If \f[CR]true\f[R], the Ghostty GTK application will run in +single\-instance mode: each new \f[CR]ghostty\f[R] process launched will +result in a new window if there is already a running process. +.RS +.PP +If \f[CR]false\f[R], each new ghostty process will launch a separate +application. +.PP +The default value is \f[CR]detect\f[R] which will default to +\f[CR]true\f[R] if Ghostty detects that it was launched from the +\f[CR].desktop\f[R] file such as an app launcher (like Gnome Shell) or +by D\-Bus activation. +If Ghostty is launched from the command line, it will default to +\f[CR]false\f[R]. +.PP +Note that debug builds of Ghostty have a separate single\-instance ID so +you can test single instance without conflicting with release builds. +.RE +.TP +\f[B]\f[CB]gtk\-titlebar\f[B]\f[R] +When enabled, the full GTK titlebar is displayed instead of your window +manager\[cq]s simple titlebar. +The behavior of this option will vary with your window manager. +.RS +.PP +This option does nothing when \f[CR]window\-decoration\f[R] is false or +when running under macOS. +.PP +Changing this value at runtime and reloading the configuration will only +affect new windows. +.RE +.TP +\f[B]\f[CB]gtk\-tabs\-location\f[B]\f[R] +Determines the side of the screen that the GTK tab bar will stick to. +Top, bottom, left, right, and hidden are supported. +The default is top. +.RS +.PP +If this option has value \f[CR]left\f[R] or \f[CR]right\f[R] when using +Adwaita, it falls back to \f[CR]top\f[R]. +\f[CR]hidden\f[R], meaning that tabs don\[cq]t exist, is not supported +without using Adwaita, falling back to \f[CR]top\f[R]. +.PP +When \f[CR]hidden\f[R] is set and Adwaita is enabled, a tab button +displaying the number of tabs will appear in the title bar. +It has the ability to open a tab overview for displaying tabs. +Alternatively, you can use the \f[CR]toggle_tab_overview\f[R] action in +a keybind if your window doesn\[cq]t have a title bar, or you can switch +tabs with keybinds. +.RE +.TP +\f[B]\f[CB]adw\-toolbar\-style\f[B]\f[R] +Determines the appearance of the top and bottom bars when using the +Adwaita tab bar. +This requires \f[CR]gtk\-adwaita\f[R] to be enabled (it is by default). +.RS +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]flat\f[R] \- Top and bottom bars are flat with the terminal +window. +.IP \[bu] 2 +\f[CR]raised\f[R] \- Top and bottom bars cast a shadow on the terminal +area. +.IP \[bu] 2 +\f[CR]raised\-border\f[R] \- Similar to \f[CR]raised\f[R] but the shadow +is replaced with a more subtle border. +.PP +Changing this value at runtime will only affect new windows. +.RE +.TP +\f[B]\f[CB]gtk\-wide\-tabs\f[B]\f[R] +If \f[CR]true\f[R] (default), then the Ghostty GTK tabs will be +\[lq]wide.\[rq] Wide tabs are the new typical Gnome style where tabs +fill their available space. +If you set this to \f[CR]false\f[R] then tabs will only take up space +they need, which is the old style. +.TP +\f[B]\f[CB]gtk\-adwaita\f[B]\f[R] +If \f[CR]true\f[R] (default), Ghostty will enable Adwaita theme support. +This will make \f[CR]window\-theme\f[R] work properly and will also +allow Ghostty to properly respond to system theme changes, light/dark +mode changing, etc. +This requires a GTK4 desktop with a GTK4 theme. +.RS +.PP +If you are running GTK3 or have a GTK3 theme, you may have to set this +to false to get your theme picked up properly. +Having this set to true with GTK3 should not cause any problems, but it +may not work exactly as expected. +.PP +This configuration only has an effect if Ghostty was built with Adwaita +support. +.RE +.TP +\f[B]\f[CB]desktop\-notifications\f[B]\f[R] +If \f[CR]true\f[R] (default), applications running in the terminal can +show desktop notifications using certain escape sequences such as OSC 9 +or OSC 777. +.TP +\f[B]\f[CB]bold\-is\-bright\f[B]\f[R] +If \f[CR]true\f[R], the bold text will use the bright color palette. +.TP +\f[B]\f[CB]term\f[B]\f[R] +This will be used to set the \f[CR]TERM\f[R] environment variable. +HACK: We set this with an \f[CR]xterm\f[R] prefix because vim uses that +to enable key protocols (specifically this will enable +\f[CR]modifyOtherKeys\f[R]), among other features. +An option exists in vim to modify this: +\f[CR]:set keyprotocol=ghostty:kitty\f[R], however a bug in the +implementation prevents it from working properly. +https://github.com/vim/vim/pull/13211 fixes this. +.TP +\f[B]\f[CB]enquiry\-response\f[B]\f[R] +String to send when we receive \f[CR]ENQ\f[R] (\f[CR]0x05\f[R]) from the +command that we are running. +Defaults to an empty string if not set. +.TP +\f[B]\f[CB]auto\-update\f[B]\f[R] +Control the auto\-update functionality of Ghostty. +This is only supported on macOS currently, since Linux builds are +distributed via package managers that are not centrally controlled by +Ghostty. +.RS +.PP +Checking or downloading an update does not send any information to the +project beyond standard network information mandated by the underlying +protocols. +To put it another way: Ghostty doesn\[cq]t explicitly add any tracking +to the update process. +The update process works by downloading information about the latest +version and comparing it client\-side to the current version. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]off\f[R] \- Disable auto\-updates. +.IP \[bu] 2 +\f[CR]check\f[R] \- Check for updates and notify the user if an update +is available, but do not automatically download or install the update. +.IP \[bu] 2 +\f[CR]download\f[R] \- Check for updates, automatically download the +update, notify the user, but do not automatically install the update. +.PP +The default value is \f[CR]check\f[R]. +.PP +Changing this value at runtime works after a small delay. +.RE +.TP +\f[B]\f[CB]auto\-update\-channel\f[B]\f[R] +The release channel to use for auto\-updates. +.RS +.PP +The default value of this matches the release channel of the currently +running Ghostty version. +If you download a pre\-release version of Ghostty then this will be set +to \f[CR]tip\f[R] and you will receive pre\-release updates. +If you download a stable version of Ghostty then this will be set to +\f[CR]stable\f[R] and you will receive stable updates. +.PP +Valid values are: +.IP \[bu] 2 +\f[CR]stable\f[R] \- Stable, tagged releases such as \[lq]1.0.0\[rq]. +.IP \[bu] 2 +\f[CR]tip\f[R] \- Pre\-release versions generated from each commit to +the main branch. +This is the version that was in use during private beta testing by +thousands of people. +It is generally stable but will likely have more bugs than the stable +channel. +.PP +Changing this configuration requires a full restart of Ghostty to take +effect. +.PP +This only works on macOS since only macOS has an auto\-update feature. +.RE +.SH KEYBIND ACTIONS +.TP +\f[B]\f[CB]ignore\f[B]\f[R] +Ignore this key combination, don\[cq]t send it to the child process, +just black hole it. +.TP +\f[B]\f[CB]unbind\f[B]\f[R] +This action is used to flag that the binding should be removed from the +set. +This should never exist in an active set and \f[CR]set.put\f[R] has an +assertion to verify this. +.TP +\f[B]\f[CB]csi\f[B]\f[R] +Send a CSI sequence. +The value should be the CSI sequence without the CSI header +(\f[CR]ESC ]\f[R] or \f[CR]\[rs]x1b]\f[R]). +.TP +\f[B]\f[CB]esc\f[B]\f[R] +Send an \f[CR]ESC\f[R] sequence. +.PP +\f[B]\f[CB]text\f[B]\f[R] +.TP +\f[B]\f[CB]cursor_key\f[B]\f[R] +Send data to the pty depending on whether cursor key mode is enabled +(\f[CR]application\f[R]) or disabled (\f[CR]normal\f[R]). +.TP +\f[B]\f[CB]reset\f[B]\f[R] +Reset the terminal. +This can fix a lot of issues when a running program puts the terminal +into a broken state. +This is equivalent to when you type \[lq]reset\[rq] and press enter. +.RS +.PP +If you do this while in a TUI program such as vim, this may break the +program. +If you do this while in a shell, you may have to press enter after to +get a new prompt. +.RE +.TP +\f[B]\f[CB]copy_to_clipboard\f[B]\f[R] +Copy and paste. +.PP +\f[B]\f[CB]paste_from_clipboard\f[B]\f[R] +.PP +\f[B]\f[CB]paste_from_selection\f[B]\f[R] +.TP +\f[B]\f[CB]increase_font_size\f[B]\f[R] +Increase/decrease the font size by a certain amount. +.PP +\f[B]\f[CB]decrease_font_size\f[B]\f[R] +.TP +\f[B]\f[CB]reset_font_size\f[B]\f[R] +Reset the font size to the original configured size. +.TP +\f[B]\f[CB]clear_screen\f[B]\f[R] +Clear the screen. +This also clears all scrollback. +.TP +\f[B]\f[CB]select_all\f[B]\f[R] +Select all text on the screen. +.TP +\f[B]\f[CB]scroll_to_top\f[B]\f[R] +Scroll the screen varying amounts. +.PP +\f[B]\f[CB]scroll_to_bottom\f[B]\f[R] +.PP +\f[B]\f[CB]scroll_page_up\f[B]\f[R] +.PP +\f[B]\f[CB]scroll_page_down\f[B]\f[R] +.PP +\f[B]\f[CB]scroll_page_fractional\f[B]\f[R] +.PP +\f[B]\f[CB]scroll_page_lines\f[B]\f[R] +.TP +\f[B]\f[CB]adjust_selection\f[B]\f[R] +Adjust an existing selection in a given direction. +This action does nothing if there is no active selection. +.TP +\f[B]\f[CB]jump_to_prompt\f[B]\f[R] +Jump the viewport forward or back by prompt. +Positive number is the number of prompts to jump forward, negative is +backwards. +.TP +\f[B]\f[CB]write_scrollback_file\f[B]\f[R] +Write the entire scrollback into a temporary file. +The action determines what to do with the filepath. +Valid values are: +.RS +.IP \[bu] 2 +\[lq]paste\[rq]: Paste the file path into the terminal. +.IP \[bu] 2 +\[lq]open\[rq]: Open the file in the default OS editor for text files. +The default OS editor is determined by using \f[CR]open\f[R] on macOS +and \f[CR]xdg\-open\f[R] on Linux. +.RE +.TP +\f[B]\f[CB]write_screen_file\f[B]\f[R] +Same as write_scrollback_file but writes the full screen contents. +See write_scrollback_file for available values. +.TP +\f[B]\f[CB]write_selection_file\f[B]\f[R] +Same as write_scrollback_file but writes the selected text. +If there is no selected text this does nothing (it doesn\[cq]t even +create an empty file). +See write_scrollback_file for available values. +.TP +\f[B]\f[CB]new_window\f[B]\f[R] +Open a new window. +If the application isn\[cq]t currently focused, this will bring it to +the front. +.TP +\f[B]\f[CB]new_tab\f[B]\f[R] +Open a new tab. +.TP +\f[B]\f[CB]previous_tab\f[B]\f[R] +Go to the previous tab. +.TP +\f[B]\f[CB]next_tab\f[B]\f[R] +Go to the next tab. +.TP +\f[B]\f[CB]last_tab\f[B]\f[R] +Go to the last tab (the one with the highest index) +.TP +\f[B]\f[CB]goto_tab\f[B]\f[R] +Go to the tab with the specific number, 1\-indexed. +If the tab number is higher than the number of tabs, this will go to the +last tab. +.TP +\f[B]\f[CB]move_tab\f[B]\f[R] +Moves a tab by a relative offset. +Adjusts the tab position based on \f[CR]offset\f[R] (e.g., \-1 for left, ++1 for right). +If the new position is out of bounds, it wraps around cyclically within +the tab range. +.TP +\f[B]\f[CB]toggle_tab_overview\f[B]\f[R] +Toggle the tab overview. +This only works with libadwaita enabled currently. +.TP +\f[B]\f[CB]new_split\f[B]\f[R] +Create a new split in the given direction. +The new split will appear in the direction given. +.TP +\f[B]\f[CB]goto_split\f[B]\f[R] +Focus on a split in a given direction. +.TP +\f[B]\f[CB]toggle_split_zoom\f[B]\f[R] +zoom/unzoom the current split. +.TP +\f[B]\f[CB]resize_split\f[B]\f[R] +Resize the current split by moving the split divider in the given +direction +.TP +\f[B]\f[CB]equalize_splits\f[B]\f[R] +Equalize all splits in the current window +.TP +\f[B]\f[CB]inspector\f[B]\f[R] +Show, hide, or toggle the terminal inspector for the currently focused +terminal. +.TP +\f[B]\f[CB]open_config\f[B]\f[R] +Open the configuration file in the default OS editor. +If your default OS editor isn\[cq]t configured then this will fail. +Currently, any failures to open the configuration will show up only in +the logs. +.TP +\f[B]\f[CB]reload_config\f[B]\f[R] +Reload the configuration. +The exact meaning depends on the app runtime in use but this usually +involves re\-reading the configuration file and applying any changes. +Note that not all changes can be applied at runtime. +.TP +\f[B]\f[CB]close_surface\f[B]\f[R] +Close the current \[lq]surface\[rq], whether that is a window, tab, +split, etc. +This only closes ONE surface. +This will trigger close confirmation as configured. +.TP +\f[B]\f[CB]close_window\f[B]\f[R] +Close the window, regardless of how many tabs or splits there may be. +This will trigger close confirmation as configured. +.TP +\f[B]\f[CB]close_all_windows\f[B]\f[R] +Close all windows. +This will trigger close confirmation as configured. +This only works for macOS currently. +.TP +\f[B]\f[CB]toggle_fullscreen\f[B]\f[R] +Toggle fullscreen mode of window. +.TP +\f[B]\f[CB]toggle_window_decorations\f[B]\f[R] +Toggle window decorations on and off. +This only works on Linux. +.TP +\f[B]\f[CB]toggle_secure_input\f[B]\f[R] +Toggle secure input mode on or off. +This is used to prevent apps that monitor input from seeing what you +type. +This is useful for entering passwords or other sensitive information. +.RS +.PP +This applies to the entire application, not just the focused terminal. +You must toggle it off to disable it, or quit Ghostty. +.PP +This only works on macOS, since this is a system API on macOS. +.RE +.TP +\f[B]\f[CB]toggle_quick_terminal\f[B]\f[R] +Toggle the \[lq]quick\[rq] terminal. +The quick terminal is a terminal that appears on demand from a +keybinding, often sliding in from a screen edge such as the top. +This is useful for quick access to a terminal without having to open a +new window or tab. +.RS +.PP +When the quick terminal loses focus, it disappears. +The terminal state is preserved between appearances, so you can always +press the keybinding to bring it back up. +.PP +The quick terminal has some limitations: +.IP \[bu] 2 +It is a singleton; only one instance can exist at a time. +.IP \[bu] 2 +It does not support tabs. +.IP \[bu] 2 +It will not be restored when the application is restarted (for systems +that support window restoration). +.IP \[bu] 2 +It supports fullscreen, but fullscreen will always be a non\-native +fullscreen (macos\-non\-native\-fullscreen = true). +This only applies to the quick terminal window. +This is a requirement due to how the quick terminal is rendered. +.PP +See the various configurations for the quick terminal in the +configuration file to customize its behavior. +.RE +.TP +\f[B]\f[CB]toggle_visibility\f[B]\f[R] +Show/hide all windows. +If all windows become shown, we also ensure Ghostty is focused. +.RS +.PP +This currently only works on macOS. +When hiding all windows, we do not yield focus to the previous +application. +.RE +.TP +\f[B]\f[CB]quit\f[B]\f[R] +Quit ghostty. +.TP +\f[B]\f[CB]crash\f[B]\f[R] +Crash ghostty in the desired thread for the focused surface. +.RS +.PP +WARNING: This is a hard crash (panic) and data can be lost. +.PP +The purpose of this action is to test crash handling. +For some users, it may be useful to test crash reporting functionality +in order to determine if it all works as expected. +.PP +The value determines the crash location: +.IP \[bu] 2 +\[lq]main\[rq] \- crash on the main (GUI) thread. +.IP \[bu] 2 +\[lq]io\[rq] \- crash on the IO thread for the focused surface. +.IP \[bu] 2 +\[lq]render\[rq] \- crash on the render thread for the focused surface. +.RE +.SH FILES +.TP +\f[I]$XDG_CONFIG_HOME/ghostty/config\f[R] +Location of the default configuration file. +.TP +\f[I]$LOCALAPPDATA/ghostty/config\f[R] +\f[B]On Windows\f[R], if \f[I]$XDG_CONFIG_HOME\f[R] is not set, +\f[I]$LOCALAPPDATA\f[R] will be searched for configuration files. +.SH ENVIRONMENT +.TP +\f[B]XDG_CONFIG_HOME\f[R] +Default location for configuration files. +.TP +\f[B]LOCALAPPDATA\f[R] +\f[B]WINDOWS ONLY:\f[R] alternate location to search for configuration +files. +.SH BUGS +See GitHub issues: \c +.UR https://github.com/ghostty-org/ghostty/issues +.UE \c +.SH AUTHOR +Mitchell Hashimoto \c +.MT m@mitchellh.com +.ME \c +.SH SEE ALSO +\f[B]ghostty(1)\f[R] diff --git a/bin/share/nvim/site/ftdetect/ghostty.vim b/bin/share/nvim/site/ftdetect/ghostty.vim new file mode 100644 index 0000000..72a02fc --- /dev/null +++ b/bin/share/nvim/site/ftdetect/ghostty.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile */ghostty/config set ft=ghostty diff --git a/bin/share/nvim/site/ftplugin/ghostty.vim b/bin/share/nvim/site/ftplugin/ghostty.vim new file mode 100644 index 0000000..020eb10 --- /dev/null +++ b/bin/share/nvim/site/ftplugin/ghostty.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" Language: Ghostty config file +" Maintainer: Ghostty +" +" THIS FILE IS AUTO-GENERATED + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setlocal commentstring=#\ %s +setlocal iskeyword+=- + +" Use syntax keywords for completion +setlocal omnifunc=syntaxcomplete#Complete + +let b:undo_ftplugin = 'setl cms< isk< ofu<' diff --git a/bin/share/nvim/site/syntax/ghostty.vim b/bin/share/nvim/site/syntax/ghostty.vim new file mode 100644 index 0000000..c18b07f --- /dev/null +++ b/bin/share/nvim/site/syntax/ghostty.vim @@ -0,0 +1,155 @@ +" Vim syntax file +" Language: Ghostty config file +" Maintainer: Ghostty +" +" THIS FILE IS AUTO-GENERATED + +if exists('b:current_syntax') + finish +endif + +let b:current_syntax = 'ghostty' + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword ghosttyConfigKeyword + \ font-family + \ font-family-bold + \ font-family-italic + \ font-family-bold-italic + \ font-style + \ font-style-bold + \ font-style-italic + \ font-style-bold-italic + \ font-synthetic-style + \ font-feature + \ font-size + \ font-variation + \ font-variation-bold + \ font-variation-italic + \ font-variation-bold-italic + \ font-codepoint-map + \ font-thicken + \ adjust-cell-width + \ adjust-cell-height + \ adjust-font-baseline + \ adjust-underline-position + \ adjust-underline-thickness + \ adjust-strikethrough-position + \ adjust-strikethrough-thickness + \ adjust-overline-position + \ adjust-overline-thickness + \ adjust-cursor-thickness + \ adjust-box-thickness + \ grapheme-width-method + \ freetype-load-flags + \ theme + \ background + \ foreground + \ selection-foreground + \ selection-background + \ selection-invert-fg-bg + \ minimum-contrast + \ palette + \ cursor-color + \ cursor-invert-fg-bg + \ cursor-opacity + \ cursor-style + \ cursor-style-blink + \ cursor-text + \ cursor-click-to-move + \ mouse-hide-while-typing + \ mouse-shift-capture + \ mouse-scroll-multiplier + \ background-opacity + \ background-blur-radius + \ unfocused-split-opacity + \ unfocused-split-fill + \ command + \ initial-command + \ wait-after-command + \ abnormal-command-exit-runtime + \ scrollback-limit + \ link + \ link-url + \ fullscreen + \ title + \ class + \ x11-instance-name + \ working-directory + \ keybind + \ window-padding-x + \ window-padding-y + \ window-padding-balance + \ window-padding-color + \ window-vsync + \ window-inherit-working-directory + \ window-inherit-font-size + \ window-decoration + \ window-title-font-family + \ window-theme + \ window-colorspace + \ window-height + \ window-width + \ window-save-state + \ window-step-resize + \ window-new-tab-position + \ resize-overlay + \ resize-overlay-position + \ resize-overlay-duration + \ focus-follows-mouse + \ clipboard-read + \ clipboard-write + \ clipboard-trim-trailing-spaces + \ clipboard-paste-protection + \ clipboard-paste-bracketed-safe + \ image-storage-limit + \ copy-on-select + \ click-repeat-interval + \ config-file + \ config-default-files + \ confirm-close-surface + \ quit-after-last-window-closed + \ quit-after-last-window-closed-delay + \ initial-window + \ quick-terminal-position + \ quick-terminal-screen + \ quick-terminal-animation-duration + \ shell-integration + \ shell-integration-features + \ osc-color-report-format + \ vt-kam-allowed + \ custom-shader + \ custom-shader-animation + \ macos-non-native-fullscreen + \ macos-titlebar-style + \ macos-titlebar-proxy-icon + \ macos-option-as-alt + \ macos-window-shadow + \ macos-auto-secure-input + \ macos-secure-input-indication + \ linux-cgroup + \ linux-cgroup-memory-limit + \ linux-cgroup-processes-limit + \ linux-cgroup-hard-fail + \ gtk-single-instance + \ gtk-titlebar + \ gtk-tabs-location + \ adw-toolbar-style + \ gtk-wide-tabs + \ gtk-adwaita + \ desktop-notifications + \ bold-is-bright + \ term + \ enquiry-response + \ auto-update + \ auto-update-channel + +syn match ghosttyConfigComment /^\s*#.*/ contains=@Spell + +hi def link ghosttyConfigComment Comment +hi def link ghosttyConfigKeyword Keyword + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/bin/share/terminfo/g/ghostty b/bin/share/terminfo/g/ghostty new file mode 100644 index 0000000..489a555 Binary files /dev/null and b/bin/share/terminfo/g/ghostty differ diff --git a/bin/share/terminfo/ghostty.termcap b/bin/share/terminfo/ghostty.termcap new file mode 100644 index 0000000..a9487fe --- /dev/null +++ b/bin/share/terminfo/ghostty.termcap @@ -0,0 +1,21 @@ +# (untranslatable capabilities removed to fit entry within 1023 bytes) +# (sgr removed to fit entry within 1023 bytes) +# (acsc removed to fit entry within 1023 bytes) +# (terminfo-only capabilities suppressed to fit entry within 1023 bytes) +xterm-ghostty|ghostty|Ghostty:\ + :am:hs:km:mi:ms:xn:\ + :co#80:it#8:li#24:\ + :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\ + :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\ + :ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\ + :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=\r:cs=\E[%i%d;%dr:\ + :ct=\E[3g:dc=\E[P:dl=\E[M:do=\n:ds=\E]2;\007:ec=\E[%dX:\ + :ei=\E[4l:fs=^G:ho=\E[H:ic=\E[@:im=\E[4h:k1=\EOP:k2=\EOQ:\ + :k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:\ + :k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\ + :kd=\EOB:ke=\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\ + :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\ + :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\ + :so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[?1049l:ti=\E[?1049h:\ + :ts=\E]2;:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:\ + :ve=\E[?12l\E[?25h:vi=\E[?25l:vs=\E[?12;25h: diff --git a/bin/share/terminfo/ghostty.terminfo b/bin/share/terminfo/ghostty.terminfo new file mode 100644 index 0000000..fa436de --- /dev/null +++ b/bin/share/terminfo/ghostty.terminfo @@ -0,0 +1,269 @@ +xterm-ghostty|ghostty|Ghostty, + am, + bce, + ccc, + hs, + km, + mc5i, + mir, + msgr, + npc, + xenl, + AX, + Tc, + Su, + XT, + fullkbd, + colors#256, + cols#80, + it#8, + lines#24, + pairs#32767, + acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + Smulx=\E[4:%p1%dm, + Setulc=\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%d%;m, + Ss=\E[%p1%d q, + Se=\E[2 q, + Ms=\E]52;%p1%s;%p2%s\007, + Sync=\E[?2026%?%p1%{1}%-%tl%eh%;, + BD=\E[?2004l, + BE=\E[?2004h, + PS=\E[200~, + PE=\E[201~, + XM=\E[?1006;1000%?%p1%{1}%=%th%el%;, + xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;, + RV=\E[>c, + rv=\E\\[[0-9]+;[0-9]+;[0-9]+c, + XR=\E[>0q, + xr=\EP>\\|[ -~]+a\E\\, + Enmg=\E[?69h, + Dsmg=\E[?69l, + Clmg=\E[s, + Cmg=\E[%i%p1%d;%p2%ds, + clear=\E[H\E[2J, + E3=\E[3J, + fe=\E[?1004h, + fd=\E[?1004l, + kxIN=\E[I, + kxOUT=\E[O, + bel=^G, + blink=\E[5m, + bold=\E[1m, + cbt=\E[Z, + civis=\E[?25l, + cnorm=\E[?12l\E[?25h, + cr=\r, + csr=\E[%i%p1%d;%p2%dr, + cub=\E[%p1%dD, + cub1=^H, + cud=\E[%p1%dB, + cud1=^J, + cuf=\E[%p1%dC, + cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, + cuu=\E[%p1%dA, + cuu1=\E[A, + cvvis=\E[?12;25h, + dch=\E[%p1%dP, + dch1=\E[P, + dim=\E[2m, + dl=\E[%p1%dM, + dl1=\E[M, + dsl=\E]2;\007, + ech=\E[%p1%dX, + ed=\E[J, + el=\E[K, + el1=\E[1K, + flash=\E[?5h$<100/>\E[?5l, + fsl=^G, + home=\E[H, + hpa=\E[%i%p1%dG, + ht=^I, + hts=\EH, + ich=\E[%p1%d@, + ich1=\E[@, + il=\E[%p1%dL, + il1=\E[L, + ind=\n, + indn=\E[%p1%dS, + initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, + invis=\E[8m, + oc=\E]104\007, + op=\E[39;49m, + rc=\E8, + rep=%p1%c\E[%p2%{1}%-%db, + rev=\E[7m, + ri=\EM, + rin=\E[%p1%dT, + ritm=\E[23m, + rmacs=\E(B, + rmam=\E[?7l, + rmcup=\E[?1049l, + rmir=\E[4l, + rmkx=\E[?1l\E>, + rmso=\E[27m, + rmul=\E[24m, + rmxx=\E[29m, + setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, + setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, + setrgbb=\E[48:2:%p1%d:%p2%d:%p3%dm, + setrgbf=\E[38:2:%p1%d:%p2%d:%p3%dm, + sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, + sgr0=\E(B\E[m, + sitm=\E[3m, + smacs=\E(0, + smam=\E[?7h, + smcup=\E[?1049h, + smir=\E[4h, + smkx=\E[?1h\E=, + smso=\E[7m, + smul=\E[4m, + smxx=\E[9m, + tbc=\E[3g, + tsl=\E]2;, + u6=\E[%i%d;%dR, + u7=\E[6n, + u8=\E[?%[;0123456789]c, + u9=\E[c, + vpa=\E[%i%p1%dd, + kDC=\E[3;2~, + kDC3=\E[3;3~, + kDC4=\E[3;4~, + kDC5=\E[3;5~, + kDC6=\E[3;6~, + kDC7=\E[3;7~, + kDN=\E[1;2B, + kDN3=\E[1;3B, + kDN4=\E[1;4B, + kDN5=\E[1;5B, + kDN6=\E[1;6B, + kDN7=\E[1;7B, + kEND=\E[1;2F, + kEND3=\E[1;3F, + kEND4=\E[1;4F, + kEND5=\E[1;5F, + kEND6=\E[1;6F, + kEND7=\E[1;7F, + kHOM=\E[1;2H, + kHOM3=\E[1;3H, + kHOM4=\E[1;4H, + kHOM5=\E[1;5H, + kHOM6=\E[1;6H, + kHOM7=\E[1;7H, + kIC=\E[2;2~, + kIC3=\E[2;3~, + kIC4=\E[2;4~, + kIC5=\E[2;5~, + kIC6=\E[2;6~, + kIC7=\E[2;7~, + kLFT=\E[1;2D, + kLFT3=\E[1;3D, + kLFT4=\E[1;4D, + kLFT5=\E[1;5D, + kLFT6=\E[1;6D, + kLFT7=\E[1;7D, + kNXT=\E[6;2~, + kNXT3=\E[6;3~, + kNXT4=\E[6;4~, + kNXT5=\E[6;5~, + kNXT6=\E[6;6~, + kNXT7=\E[6;7~, + kPRV=\E[5;2~, + kPRV3=\E[5;3~, + kPRV4=\E[5;4~, + kPRV5=\E[5;5~, + kPRV6=\E[5;6~, + kPRV7=\E[5;7~, + kRIT=\E[1;2C, + kRIT3=\E[1;3C, + kRIT4=\E[1;4C, + kRIT5=\E[1;5C, + kRIT6=\E[1;6C, + kRIT7=\E[1;7C, + kUP=\E[1;2A, + kUP3=\E[1;3A, + kUP4=\E[1;4A, + kUP5=\E[1;5A, + kUP6=\E[1;6A, + kUP7=\E[1;7A, + kbs=^?, + kcbt=\E[Z, + kcub1=\EOD, + kcud1=\EOB, + kcuf1=\EOC, + kcuu1=\EOA, + kdch1=\E[3~, + kend=\EOF, + kent=\EOM, + kf1=\EOP, + kf10=\E[21~, + kf11=\E[23~, + kf12=\E[24~, + kf13=\E[1;2P, + kf14=\E[1;2Q, + kf15=\E[1;2R, + kf16=\E[1;2S, + kf17=\E[15;2~, + kf18=\E[17;2~, + kf19=\E[18;2~, + kf2=\EOQ, + kf20=\E[19;2~, + kf21=\E[20;2~, + kf22=\E[21;2~, + kf23=\E[23;2~, + kf24=\E[24;2~, + kf25=\E[1;5P, + kf26=\E[1;5Q, + kf27=\E[1;5R, + kf28=\E[1;5S, + kf29=\E[15;5~, + kf3=\EOR, + kf30=\E[17;5~, + kf31=\E[18;5~, + kf32=\E[19;5~, + kf33=\E[20;5~, + kf34=\E[21;5~, + kf35=\E[23;5~, + kf36=\E[24;5~, + kf37=\E[1;6P, + kf38=\E[1;6Q, + kf39=\E[1;6R, + kf4=\EOS, + kf40=\E[1;6S, + kf41=\E[15;6~, + kf42=\E[17;6~, + kf43=\E[18;6~, + kf44=\E[19;6~, + kf45=\E[20;6~, + kf46=\E[21;6~, + kf47=\E[23;6~, + kf48=\E[24;6~, + kf49=\E[1;3P, + kf5=\E[15~, + kf50=\E[1;3Q, + kf51=\E[1;3R, + kf52=\E[1;3S, + kf53=\E[15;3~, + kf54=\E[17;3~, + kf55=\E[18;3~, + kf56=\E[19;3~, + kf57=\E[20;3~, + kf58=\E[21;3~, + kf59=\E[23;3~, + kf6=\E[17~, + kf60=\E[24;3~, + kf61=\E[1;4P, + kf62=\E[1;4Q, + kf63=\E[1;4R, + kf7=\E[18~, + kf8=\E[19~, + kf9=\E[20~, + khome=\EOH, + kich1=\E[2~, + kind=\E[1;2B, + kmous=\E[<, + knp=\E[6~, + kpp=\E[5~, + kri=\E[1;2A, + rs1=\E]\E\\\Ec, + sc=\E7, diff --git a/bin/share/terminfo/x/xterm-ghostty b/bin/share/terminfo/x/xterm-ghostty new file mode 100644 index 0000000..489a555 Binary files /dev/null and b/bin/share/terminfo/x/xterm-ghostty differ diff --git a/bin/share/vim/vimfiles/ftdetect/ghostty.vim b/bin/share/vim/vimfiles/ftdetect/ghostty.vim new file mode 100644 index 0000000..72a02fc --- /dev/null +++ b/bin/share/vim/vimfiles/ftdetect/ghostty.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile */ghostty/config set ft=ghostty diff --git a/bin/share/vim/vimfiles/ftplugin/ghostty.vim b/bin/share/vim/vimfiles/ftplugin/ghostty.vim new file mode 100644 index 0000000..020eb10 --- /dev/null +++ b/bin/share/vim/vimfiles/ftplugin/ghostty.vim @@ -0,0 +1,18 @@ +" Vim filetype plugin file +" Language: Ghostty config file +" Maintainer: Ghostty +" +" THIS FILE IS AUTO-GENERATED + +if exists('b:did_ftplugin') + finish +endif +let b:did_ftplugin = 1 + +setlocal commentstring=#\ %s +setlocal iskeyword+=- + +" Use syntax keywords for completion +setlocal omnifunc=syntaxcomplete#Complete + +let b:undo_ftplugin = 'setl cms< isk< ofu<' diff --git a/bin/share/vim/vimfiles/syntax/ghostty.vim b/bin/share/vim/vimfiles/syntax/ghostty.vim new file mode 100644 index 0000000..c18b07f --- /dev/null +++ b/bin/share/vim/vimfiles/syntax/ghostty.vim @@ -0,0 +1,155 @@ +" Vim syntax file +" Language: Ghostty config file +" Maintainer: Ghostty +" +" THIS FILE IS AUTO-GENERATED + +if exists('b:current_syntax') + finish +endif + +let b:current_syntax = 'ghostty' + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword ghosttyConfigKeyword + \ font-family + \ font-family-bold + \ font-family-italic + \ font-family-bold-italic + \ font-style + \ font-style-bold + \ font-style-italic + \ font-style-bold-italic + \ font-synthetic-style + \ font-feature + \ font-size + \ font-variation + \ font-variation-bold + \ font-variation-italic + \ font-variation-bold-italic + \ font-codepoint-map + \ font-thicken + \ adjust-cell-width + \ adjust-cell-height + \ adjust-font-baseline + \ adjust-underline-position + \ adjust-underline-thickness + \ adjust-strikethrough-position + \ adjust-strikethrough-thickness + \ adjust-overline-position + \ adjust-overline-thickness + \ adjust-cursor-thickness + \ adjust-box-thickness + \ grapheme-width-method + \ freetype-load-flags + \ theme + \ background + \ foreground + \ selection-foreground + \ selection-background + \ selection-invert-fg-bg + \ minimum-contrast + \ palette + \ cursor-color + \ cursor-invert-fg-bg + \ cursor-opacity + \ cursor-style + \ cursor-style-blink + \ cursor-text + \ cursor-click-to-move + \ mouse-hide-while-typing + \ mouse-shift-capture + \ mouse-scroll-multiplier + \ background-opacity + \ background-blur-radius + \ unfocused-split-opacity + \ unfocused-split-fill + \ command + \ initial-command + \ wait-after-command + \ abnormal-command-exit-runtime + \ scrollback-limit + \ link + \ link-url + \ fullscreen + \ title + \ class + \ x11-instance-name + \ working-directory + \ keybind + \ window-padding-x + \ window-padding-y + \ window-padding-balance + \ window-padding-color + \ window-vsync + \ window-inherit-working-directory + \ window-inherit-font-size + \ window-decoration + \ window-title-font-family + \ window-theme + \ window-colorspace + \ window-height + \ window-width + \ window-save-state + \ window-step-resize + \ window-new-tab-position + \ resize-overlay + \ resize-overlay-position + \ resize-overlay-duration + \ focus-follows-mouse + \ clipboard-read + \ clipboard-write + \ clipboard-trim-trailing-spaces + \ clipboard-paste-protection + \ clipboard-paste-bracketed-safe + \ image-storage-limit + \ copy-on-select + \ click-repeat-interval + \ config-file + \ config-default-files + \ confirm-close-surface + \ quit-after-last-window-closed + \ quit-after-last-window-closed-delay + \ initial-window + \ quick-terminal-position + \ quick-terminal-screen + \ quick-terminal-animation-duration + \ shell-integration + \ shell-integration-features + \ osc-color-report-format + \ vt-kam-allowed + \ custom-shader + \ custom-shader-animation + \ macos-non-native-fullscreen + \ macos-titlebar-style + \ macos-titlebar-proxy-icon + \ macos-option-as-alt + \ macos-window-shadow + \ macos-auto-secure-input + \ macos-secure-input-indication + \ linux-cgroup + \ linux-cgroup-memory-limit + \ linux-cgroup-processes-limit + \ linux-cgroup-hard-fail + \ gtk-single-instance + \ gtk-titlebar + \ gtk-tabs-location + \ adw-toolbar-style + \ gtk-wide-tabs + \ gtk-adwaita + \ desktop-notifications + \ bold-is-bright + \ term + \ enquiry-response + \ auto-update + \ auto-update-channel + +syn match ghosttyConfigComment /^\s*#.*/ contains=@Spell + +hi def link ghosttyConfigComment Comment +hi def link ghosttyConfigKeyword Keyword + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/bin/share/zsh/site-functions/_ghostty b/bin/share/zsh/site-functions/_ghostty new file mode 100644 index 0000000..05b3246 --- /dev/null +++ b/bin/share/zsh/site-functions/_ghostty @@ -0,0 +1,231 @@ +#compdef ghostty + +_fonts () { + local font_list=$(ghostty +list-fonts | grep -Z '^[A-Z]') + local fonts=(${(f)font_list}) + _describe -t fonts 'fonts' fonts +} + +_themes() { + local theme_list=$(ghostty +list-themes | sed -E 's/^(.*) \(.*$/\1/') + local themes=(${(f)theme_list}) + _describe -t themes 'themes' themes +} +_config() { + _arguments \ + "--help" \ + "--version" \ + "--font-family=-:::_fonts" \ + "--font-family-bold=-:::_fonts" \ + "--font-family-italic=-:::_fonts" \ + "--font-family-bold-italic=-:::_fonts" \ + "--font-style=-:::( )" \ + "--font-style-bold=-:::( )" \ + "--font-style-italic=-:::( )" \ + "--font-style-bold-italic=-:::( )" \ + "--font-synthetic-style=-:::(bold no-bold italic no-italic bold-italic no-bold-italic)" \ + "--font-feature=-:::( )" \ + "--font-size=-:::( )" \ + "--font-variation=-:::( )" \ + "--font-variation-bold=-:::( )" \ + "--font-variation-italic=-:::( )" \ + "--font-variation-bold-italic=-:::( )" \ + "--font-codepoint-map=-:::( )" \ + "--font-thicken=-:::(true false)" \ + "--adjust-cell-width=-:::( )" \ + "--adjust-cell-height=-:::( )" \ + "--adjust-font-baseline=-:::( )" \ + "--adjust-underline-position=-:::( )" \ + "--adjust-underline-thickness=-:::( )" \ + "--adjust-strikethrough-position=-:::( )" \ + "--adjust-strikethrough-thickness=-:::( )" \ + "--adjust-overline-position=-:::( )" \ + "--adjust-overline-thickness=-:::( )" \ + "--adjust-cursor-thickness=-:::( )" \ + "--adjust-box-thickness=-:::( )" \ + "--grapheme-width-method=-:::(legacy unicode)" \ + "--freetype-load-flags=-:::(hinting no-hinting force-autohint no-force-autohint monochrome no-monochrome autohint no-autohint)" \ + "--theme=-:::_themes" \ + "--background=-:::( )" \ + "--foreground=-:::( )" \ + "--selection-foreground=-:::( )" \ + "--selection-background=-:::( )" \ + "--selection-invert-fg-bg=-:::(true false)" \ + "--minimum-contrast=-:::( )" \ + "--palette=-:::( )" \ + "--cursor-color=-:::( )" \ + "--cursor-invert-fg-bg=-:::(true false)" \ + "--cursor-opacity=-:::( )" \ + "--cursor-style=-:::(bar block underline block_hollow)" \ + "--cursor-style-blink=-:::( )" \ + "--cursor-text=-:::( )" \ + "--cursor-click-to-move=-:::(true false)" \ + "--mouse-hide-while-typing=-:::(true false)" \ + "--mouse-shift-capture=-:::(false true always never)" \ + "--mouse-scroll-multiplier=-:::( )" \ + "--background-opacity=-:::( )" \ + "--background-blur-radius=-:::( )" \ + "--unfocused-split-opacity=-:::( )" \ + "--unfocused-split-fill=-:::( )" \ + "--command=-:::( )" \ + "--initial-command=-:::( )" \ + "--wait-after-command=-:::(true false)" \ + "--abnormal-command-exit-runtime=-:::( )" \ + "--scrollback-limit=-:::( )" \ + "--link=-:::( )" \ + "--link-url=-:::(true false)" \ + "--fullscreen=-:::(true false)" \ + "--title=-:::( )" \ + "--class=-:::( )" \ + "--x11-instance-name=-:::( )" \ + "--working-directory=-:::{_files -/}" \ + "--keybind=-:::( )" \ + "--window-padding-x=-:::( )" \ + "--window-padding-y=-:::( )" \ + "--window-padding-balance=-:::(true false)" \ + "--window-padding-color=-:::(background extend extend-always)" \ + "--window-vsync=-:::(true false)" \ + "--window-inherit-working-directory=-:::(true false)" \ + "--window-inherit-font-size=-:::(true false)" \ + "--window-decoration=-:::(true false)" \ + "--window-title-font-family=-:::( )" \ + "--window-theme=-:::(auto system light dark ghostty)" \ + "--window-colorspace=-:::(srgb display-p3)" \ + "--window-height=-:::( )" \ + "--window-width=-:::( )" \ + "--window-save-state=-:::(default never always)" \ + "--window-step-resize=-:::(true false)" \ + "--window-new-tab-position=-:::(current end)" \ + "--resize-overlay=-:::(always never after-first)" \ + "--resize-overlay-position=-:::(center top-left top-center top-right bottom-left bottom-center bottom-right)" \ + "--resize-overlay-duration=-:::( )" \ + "--focus-follows-mouse=-:::(true false)" \ + "--clipboard-read=-:::(allow deny ask)" \ + "--clipboard-write=-:::(allow deny ask)" \ + "--clipboard-trim-trailing-spaces=-:::(true false)" \ + "--clipboard-paste-protection=-:::(true false)" \ + "--clipboard-paste-bracketed-safe=-:::(true false)" \ + "--image-storage-limit=-:::( )" \ + "--copy-on-select=-:::(false true clipboard)" \ + "--click-repeat-interval=-:::( )" \ + "--config-file=-:::_files" \ + "--config-default-files=-:::(true false)" \ + "--confirm-close-surface=-:::(true false)" \ + "--quit-after-last-window-closed=-:::(true false)" \ + "--quit-after-last-window-closed-delay=-:::( )" \ + "--initial-window=-:::(true false)" \ + "--quick-terminal-position=-:::(top bottom left right)" \ + "--quick-terminal-screen=-:::(main mouse macos-menu-bar)" \ + "--quick-terminal-animation-duration=-:::( )" \ + "--shell-integration=-:::(none detect bash elvish fish zsh)" \ + "--shell-integration-features=-:::(cursor no-cursor sudo no-sudo title no-title)" \ + "--osc-color-report-format=-:::(none 8-bit 16-bit)" \ + "--vt-kam-allowed=-:::(true false)" \ + "--custom-shader=-:::_files" \ + "--custom-shader-animation=-:::(false true always)" \ + "--macos-non-native-fullscreen=-:::(false true visible-menu)" \ + "--macos-titlebar-style=-:::(native transparent tabs hidden)" \ + "--macos-titlebar-proxy-icon=-:::(visible hidden)" \ + "--macos-option-as-alt=-:::( )" \ + "--macos-window-shadow=-:::(true false)" \ + "--macos-auto-secure-input=-:::(true false)" \ + "--macos-secure-input-indication=-:::(true false)" \ + "--linux-cgroup=-:::(never always single-instance)" \ + "--linux-cgroup-memory-limit=-:::( )" \ + "--linux-cgroup-processes-limit=-:::( )" \ + "--linux-cgroup-hard-fail=-:::(true false)" \ + "--gtk-single-instance=-:::(desktop false true)" \ + "--gtk-titlebar=-:::(true false)" \ + "--gtk-tabs-location=-:::(top bottom left right hidden)" \ + "--adw-toolbar-style=-:::(flat raised raised-border)" \ + "--gtk-wide-tabs=-:::(true false)" \ + "--gtk-adwaita=-:::(true false)" \ + "--desktop-notifications=-:::(true false)" \ + "--bold-is-bright=-:::(true false)" \ + "--term=-:::( )" \ + "--enquiry-response=-:::( )" \ + "--auto-update=-:::(off check download)" \ + "--auto-update-channel=-:::( )" \ + +} + +_ghostty() { + typeset -A opt_args + local context state line + local opt=('-e' '--help' '--version') + + _arguments -C \ + '1:actions:->actions' \ + '*:: :->rest' \ + + if [[ "$line[1]" == "--help" || "$line[1]" == "--version" || "$line[1]" == "-e" ]]; then + return + fi + + if [[ "$line[1]" == -* ]]; then + _config + return + fi + + case "$state" in + (actions) + local actions; actions=( + '+list-fonts' + '+list-keybinds' + '+list-themes' + '+list-colors' + '+list-actions' + '+show-config' + '+validate-config' + '+crash-report' + ) + _describe '' opt + _describe -t action 'action' actions + ;; + (rest) + if [[ "$line[2]" == "--help" ]]; then + return + fi + + local help=('--help') + _describe '' help + + case $line[1] in + (+list-fonts) + _arguments \ + '--family=-:::( )' \ + '--style=-:::( )' \ + '--bold=-:::(true false)' \ + '--italic=-:::(true false)' \ + ;; + (+list-keybinds) + _arguments \ + '--default=-:::(true false)' \ + '--docs=-:::(true false)' \ + '--plain=-:::(true false)' \ + ;; + (+list-themes) + _arguments \ + '--path=-:::(true false)' \ + '--plain=-:::(true false)' \ + ;; + (+list-actions) + _arguments \ + '--docs=-:::(true false)' \ + ;; + (+show-config) + _arguments \ + '--default=-:::(true false)' \ + '--changes-only=-:::(true false)' \ + '--docs=-:::(true false)' \ + ;; + (+validate-config) + _arguments \ + '--config-file=-:::_files' \ + ;; + esac + ;; + esac +} + +_ghostty "$@" diff --git a/bin/test b/bin/test old mode 100644 new mode 100755 diff --git a/bin/waysnow b/bin/waysnow new file mode 100755 index 0000000..6bdd620 Binary files /dev/null and b/bin/waysnow differ diff --git a/bin/xdg-portal-hyprland b/bin/xdg-portal-hyprland index 1472a5d..83120ab 100755 --- a/bin/xdg-portal-hyprland +++ b/bin/xdg-portal-hyprland @@ -2,10 +2,10 @@ sleep 1 -killall xdg-desktop-portal-hyprland -killall xdg-desktop-portal-gnome -killall xdg-desktop-portal-wlr -killall xdg-desktop-portal +killall -9 xdg-desktop-portal-hyprland +killall -9 xdg-desktop-portal-gnome +killall -9 xdg-desktop-portal-wlr +killall -9 xdg-desktop-portal logger 'killed all xdg-desktop' sleep 1 diff --git a/bin/zsnow b/bin/zsnow new file mode 100755 index 0000000..ccdd9ac Binary files /dev/null and b/bin/zsnow differ